lunes, 8 de enero de 2018

Consumiendo API del tiempo OpenWeatherMap con WSO2 en Cuba


Hola a todos. En esta ocasión la entrada es particular para mi país, con poca penetración de internet en nuestro hogares.

El post ampliado lo pueden ver en mi blog de cubava.

En resumen es una pequeña solución usando 2 conectores del WSO2 ESB para obtener los datos de la temperatura en mi ciudad en mi buzón de correo cada 1h. Algo útil para estos días de frio. 

Aquellos que tienen internet en sus celulares no la necesitan pues los gadgets del tiempo dan esa información actualizada casi que en tiempo real, pero quien no tiene internet si la puede ver útil.

En lo particular me sirvió para probar el conector de openweathermap, que no lo había probado antes y para detectar un bug en el uso del payloadfactory de conjunto con el mediador iterate desde un proxy y desde un API, en el caso del consumo del iterate desde el API hay un problema con el namespace del body que usa el de soap12 y no el de soap11 por lo que no funciona como se espera...tuve que mirar bien los mensajes generados por el payloadfactory para darme cuenta y hacer el ajuste necesario.

Saludos.

8 comentarios:

  1. Realmente wso2 me ha desepcionado pero a lo grande. :-)

    ResponderEliminar
  2. Jajaja, hay que buscar la herramienta correcta para el trabajo. Mientras, más y más empresas lo siguen usando, incluso gobiernos en Europa según los últimos eventos de WSO2CON están basando sus plataformas en esta suite...Que no te funcionó?

    ResponderEliminar
  3. Pues la verdad yo logré poner a funcionar las cosas, pero con un trabajo tremendo, incluso fallos que a mi consideración son de hijos de p, porque son cosas básicas que en muchísimas plataformas funcionan sin fallos. El DAS es para mi lo mejor y aún así en procesos complicados hay que trabajar bastante en el tema de la persistencias, El ESB con las API REST funciona, pero suele dar muchos problemas. El IS como SSO yo ni lo consideraría. En fín que aunque puedas hacer cosas hay muchos peros. Lo de que son software libre y ese es su negocio no me vale, porque casi todas las plataformas de software libre funcionan muy bien y puedes hacer de todo sin tener que llamar a soporte salvo en casos extremos. En fin que no me gusta, pero eso es una cuestión personal supongo. Bueno lo de los problemas no creo que sea incapacidad mia, ya leí y tu post y mira todo lo que te pasó para leer el estado del tiempo.

    ResponderEliminar
    Respuestas
    1. Cuando mencionas otras plataformas te refieres a...??? Imagino que no hayas trabajado con la suite de SOA para Oracle o la de IBM, jejeje te invito para que puedas comparar, o probar Mule y hacerlo todo a código en PHP o similar tipo el ERP cubano..el tema es que esta suite es extensible y para extenderla hay que saber como funciona por debajo..Si sabes como funciona y algo te da un problema arreglas el bundle en cuestión y listo..Eso la mayoría de las otras plataformas con las que he trabajado no lo permiten hacer o son más complicadas.

      Puede ser que incluso el problema con el que te topaste esté resuelto en algún fix que liberan, pero si no usas WUM no te enteras hasta el siguiente release público. Y si tienes el contacto con los desarrolladores puede ser que liberen un fix en el repo git, sería cosa de clonar, empaquetar y probar toda la herramienta.

      Para mi el problema está en la falta de documentación bien redactada, porque tienen muchos blogs, una documentación oficial con ejemplos pero que no van del negocio a lo técnico, si no que presuponen que ya tu sabes como funciona algo y ellos solo te demuestran como implementarlo en su suite, así que para introducirse es difícil sin un entrenamiento o una consultoría pagada.

      El bug, que no es tan bug, en el escenario que implementé tiene una solución tan sencilla que en una segunda parte la pondré para que veas, es solo rodear el payload por un envelop y un body con el namespace del soap11 y listo.

      Eliminar
  4. Bueno sigo el debate por aquí. Te estoy subiendo el trend en tu blog, así que no te quejes, jejej. Como suite de aplicaciones ciertamente es muy completo (el que más diría yo). El problema es que muchas aplicaciones no funcionan como esperas y muchas veces tienes que hacer mucho para lograr cosas simples. Del ESB y DAS no tengo quejas, da mucho trabajo ponerlo a funcionar en un entorno complejo, pero funciona y una ves que logras que funcione va bien. Pero si tengo muchas quejas con el IS, con el ML, con el Dashboard,... el GR igual le daría OK. Cuando me refiero a otras plataformas me refiero a componentes por separado. Por ejemplo varias herramientas de apache para cosas como mensajería, enrutamiento, REST o el caso de JBOSS o Mule EE en adaptadores, o productos como grafana para los dashboard (personalmente he tenido buena experiencia integrando grafana con redis para tiempo real y con el DAS para hitórico). Lo que más me molesta es que haces una pregunta luego de probar bastante y te dan respuestas que te das cuenta que les falta algo en la respuesta, te das cuenta porque ya has pasado por eso y sabes que falta algo ahí que desconoces y que no está público en ninguna parte y ellos como que te toman por tonto y te dicen que funciona sin eso. Lo otro es que he reportado bugs y los cierran sin darte respuesta o te dicen que esperes la próxima versión que ya lo van arreglar para la próxima y cuando llega esa próxima ves que no han hecho nada y te lo cierran como resuelto. Eso no es serio. Al final nosotros somos de los que nos importa mucho el hecho de ser gratis y de que tenga una licencia libre. Pero no estoy seguro que sale mas caro, si iniciar una aventura con wso2 o pagar servicios de amazon por ejemplo.

    ResponderEliminar
  5. Eso eso, sube el trending a ver si me posiciono hasta en twitter...

    Sería interesante saber que no les funcionó a ustedes, así otros no pasan por la misma experiencia desagradable.

    Para mi el IS dentro de las herramientas de seguridad es de las más completas, el tema es que hay que meterle cabeza y hay que saber bastante antes de hacer. Ya es un BUS de identidad a mi entender, el SSO funciona bastante bien, las políticas XACML, los flujos de autenticación, la seguridad a nivel de servicios, token STS, OAuth, federación de identidades, todas cosas útiles. Si te lanzas a lo loco te estrellas, hace un par de meses di un curso y los desarrolladores llevaban semanas intentando algo que se resolvía en 2min, pero había que saberlo y eso no estaba escrito de forma clara en ningún lado..esa es la trampa y el gancho para capturar clientes me parece, feo pero funciona.

    El Machine Learning y demás herramientas nuevas son eso, construcciones nuevas con poco tiempo de prueba, no las sugiero para ambientes de producción y en desarrollo solo si tienes tiempo libre para probar y hacer PoC. Prefiero seguir con soluciones viejas y probadas hasta que las nuevas alcancen determinado grado de madures.

    JBOSS jejeje, invitado estás a usar el wildfly para que veas lo que es un servidor dar palos, incluso que se borran configuraciones y como ellos mismos lo saben manejan internamente un histórico de ficheros de configuraciones..O sea que el server te borra el más actual, tú vas al histórico sacas el último, lo revisas, lo reemplazas y arrancas de nuevo el server...Todo un dolor de cabeza, y si reinicias revisa bien los logs porque lo que antes te funcionaba puede ser que ahora no. La suite si tiene cosas buenas como la parte de reglas y al ser EE pues viene ya con muchas cosas propias de EE, sin quejas por ese lado.

    El DAS para tiempo real, si es cierto que aun deja mucho que desear, antes me funcionaba bien, ahora en la versión 3.1.0 la escala del eje de las X no me funciona bien, me tira números feos, algo cambiaron y no avisaron a la comunidad. Eso es normal que pase también a veces. Para el procesamiento de datos si lo recomiendo altamente. Si voy a por tiempo real usar un dashboard de 3ro es la mejor variante creo por el momento hasta tanto no se resuelvan algunos detalles internos.

    Sobre los reportes de bugs, nunca me ha pasado y mira que he puesto unos cuantos, el JIRA de ellos funciona bastante bien y a veces suben el parche ahí mismo o si lo cierran te dicen en que versión saldrá y ahora con la liberación constante de nuevos fix en las versiones más todavía, ejemplo en el WSO2 EI ya iban por el update 13 y subiendo..resolviendo bugs constantemente.

    Mi sugerencia es la siguiente:
    1. Si vas a entrar a usar de manera seria esta suite o cualquier otra, gastaté un poco de $ en entrenamiento, no cuesta tanto, o busca una empresa partner a la que puedas extraerle todo el conocimiento posible si tu idea es después seguir solo. Esto no es una sola tecnología ni un lenguaje de progración, son más de 24 soluciones que se integran cada una con un objetivo diferente.

    2. Vincúlate directamente con los desarrolladores, obtendrás respuestas más rápidas por stackoverflow o por email

    3. Empieza por escenarios de uso ya implementados por otros clientes anteriormente y luego te vas moviendo a esos específicos tuyos. La suite no es una navaja suiza 100% hay cosas que llevan mucho ajuste que hacerlo solo es complicado.

    4. Antes de irte por WSO2 compara la suite con otras, revisa casos de estudio, casos de éxito y de fracaso y ahí decides.

    ResponderEliminar
  6. Actualmente estamos usando en mi empresa el wso2iot server y va que te pelas muy buena herramienta para la gestion de nuestra flota de ventas que usa android

    ResponderEliminar
    Respuestas
    1. Hola Wiki, si tienen intención de contar su experiencia o cómo usan el WSO2 IoT con gusto les proporciono un espacio para que lo hagan. La herramienta tiene sus cosas pero es muy buena para el tema de IoT. Saludos.

      Eliminar