Solución funcional cubana para monitorizar el transporte en tiempo real

Temas a tratar:

  1. Veremos lo que se ha hablado de este tema a nivel de país en los medios de prensa.
  2. Se verá una arquitectura de alto nivel de una posible solución arquitectónica a nivel de país o ministerio de transporte.
  3. Se mostrará la solución que actualmente tengo implementada y desplegada en una laptop usando un servidor de mapas local.

Empecemos!!!!!

En una entrada anterior comentaba sobre la posibilidad de monitorizar el transporte en la ciudad en tiempo real, no todo el transporte, pero si aquellos medios que tuvieran GPS y que fueran de servicio público, dígase el transporte de las empresas estatales, tanto interno como para el público.

Las ventajas serían varias, una que se me viene a la cabeza ahora es la del ahorro de combustible y otra sería la de mejorar el servicio de recogida en las paradas cumpliendo con horarios establecidos. Pensando un poco más en los que toman decisiones, cada empresa que tuviera una flotilla de vehículos podría monitorizar en todo momento su uso.

En cubadebate publicaron una entrada con un sistema que están desarrollando los JCC de las Tunas, y que fue publicada primeramente en su periódico provincial. Luego la publicaron en el Granma. La idea es la misma, pero no se dan detalles técnicos.

Como comentaba en la entrada anterior, hacer esta solución no es complicado, su arquitectura a muy muy alto nivel a nivel de ministerio o de país podría ser la siguiente:

Donde en dependencia del dimensionamiento de la cantidad de vehículos a seguir será la infraestructura a necesitar, tal vez para una empresa pequeña no se requiera clusterización y con 1 servidor para BD y 1 servidor para el WSO2 CEP o SP baste.

Continuar leyendo “Solución funcional cubana para monitorizar el transporte en tiempo real”

Monitorización del transporte en la ciudad. ¿En tiempo real?

Te has imaginado estar alguna vez parado/a en una parada, consultar tu teléfono y saber que el ómnibus que esperas llega en 5 minutos? 

Más allá del sueño, o la pesadilla, y de que te lo puedas imaginar en un futuro muy pero muy lejano la realidad es que complicado de implementar no es y explico:

  1. Se necesita tener GPS en cada ómnibus. Ya esto se está logrando al día de hoy en nuestro país, al menos en la capital. Lo que no funcionan en tiempo real pues no tienen como mandar su ubicación. Los datos son descargados al llegar a sus bases quizás con horas de retraso.
  2. Se necesita poder mandar la ubicación en tiempo real. Esto se puede lograr con dispositivos conectados a la red de datos, 2G o 3G, de ETECSA que cada cierto tiempo manden la ubicación obtenida del dispositivo GPS.
  3. Se necesita de un sistema capaz de recopilar todos los eventos generados por los dispositivos de los puntos 1 y 2, procesarlos, almacenarlos en BD relacional o no relacional, y tener facilidades para:
  • Permitir la subscripción a determinados eventos predefinidos, como puede ser que te notifiquen 5 minutos antes de que llegue el bus a la parada X.
  • Permitir la visualización en un mapa de la ubicación de determinado transporte.
  • Generar eventos complejos, como pueden ser notificaciones de accidentes, de retrasos, embotellamientos, detenciones no autorizadas de los bus, no detenerse en las paradas establecidas, etc, etc, etc…

El sistema capaz de permitir todo lo del punto 3 y más, también existe y es gratis bajo licencia Apache v2, se llama WSO2 Stream Processor.

Haciendo copy/paste a lo que dicen en el sitio:

“WSO2  Stream Processor  is a  Streaming SQL based, high performant, lightweight, open source stream processing platform, facilitating the creation of real-time, intelligent, actionable business insights, and data products for digital businesses. It allows you to collects events,  analyzes them in real-time, identify patterns, map their impacts, and react within milliseconds.”

En la práctica su funcionamiento es como sigue:

  1. Se tienen componentes que generan eventos, estos serían los dispositivos GPS en los ómnibus.
  2. Estos eventos son lanzados para cualquiera de las variadas vías de conexión que ofrece la herramienta: HTTP, Kafka,TCP,In-memory,WSO2 Event,Email,JMS,File,RabbitMQ,MQTT.
  3. Una vez que el evento llega usando Shiddi podemos manipularlo, no solo a el si no a todos lo que se hayan definido en una ventana de tiempo,  hasta que sea lanzado a un mecanismo de respuesta, tipo alerta, notificación o lo que sea.
  4. Lo interesante es que al tener almacenada la información en BD esta puede visualizarse en dashboards para generar reportes en tiempo real

Con una solución así los responsables del transporte podrían saber en cualquier momento del día cualquier información que necesiten.

Si alguien tiene dudas de la factibilidad de esta solución, solo tiene que ver este enlace donde se describe una especie de licitación o concurso público para resolver algunos problemas de transportación en Londres, Reino Unido, y WSO2 ganó con un demo de la solución. Y bueno una solución ya pulida la comentan en este otro enlace.

Nada que si de verdad nuestros directivos de la informática quieren informatizar el país no tienen excusa para no hacerlo. Solo voluntad y ganas de trabajar con la comunidad de desarrolladores que existe en nuestro país.

Open Banking, qué es y como puede beneficiar a Cuba

El tema de los bancos viene desde nuestra prehistoria. Desde que alguien aprendió a guardar las piedras al resto de sus cercanos ya estaba actuando como banco.

En nuestro país contamos con instituciones bancarias como: BANDEC, BANMET, BPA, etc…las más conocidas por nuestra población.

Hubo un tiempo es que estas instituciones no se comunicaban bien entre si, de ahí que fuera complicado hacer una transferencia de una cuenta en una de estas instituciones a una cuenta en otra institución, ya sea por el monto a transferir, la lentitud o por X cantidad de otras razones.

Continuar leyendo “Open Banking, qué es y como puede beneficiar a Cuba”

Un sistema de salud cubano conectado. Arquitectura de Referencia

Lograr un sistema de salud cubano, donde todos los componentes de software estén conectados correctamente debe ser un objetivo trazado en cualquier plan de informatización que exista hoy a nivel de país.

Si no se ha definido aún una arquitectura de referencia en este sentido ni se tiene como objetivo tener un gran sistema integrado, poco se podrá avanzar en la informatización del sector salud, tan importante a todos los niveles.

Internacionalmente existen varias arquitecturas de referencia que soportan un objetivo como el que se menciona anteriormente. Usaré una que se adapta muy bien a una de las principales tecnologías que domino, que es gratis y bajo licencia Apache v2.

Lograr definir una arquitectura de referencia e implantarla no es un proceso sencillo. De ahí que se parta de varios elementos que al combinarlos tributen a lograr una interconexión global con todos los requerimientos no funcionales requeridos.

Lo primero es tener un BUS de integración que garantice dicha interconexión entre los actuales y futuros sistemas de información a todos los niveles.

Para lograr este BUS de integración y que funcione correctamente es necesario definir y estandarizar un modelo cánonico de datos a nivel de todo el sector de la salud para tener en lenguaje común que permita el diálogo entre los sistemas.

Lo siguiente es tener un BUS de datos, capaz de extraer la información necesaria de cualquier base de datos o ficheros donde se tenga. En nuestro país es muy común manejar las bases de datos en hojas de cálculo de Excel, así que esta solución debe ser capaz de capturar dicha información.

Además dicha información debe ser expuesta a través de diferentes estándares y ser consumida desde el BUS de integración principalmente.

Lo siguiente sería garantizar la completa seguridad de la solución arquitectónica, a través de la implementación de múltiples mecanismos de autenticación y autorización  a diferentes niveles, usando diferentes estándares y protocolos de seguridad.

Con este nuevo componente se garantizaría el poder distribuir la información de manera segura y que solo pudiera tener acceso a ella quien esté correctamente autorizado.

Lo siguiente sería una solución para la comunicación asincrónica. Para todos es sabido que nuestras redes tienden a saturarse y a veces a mostrar intermitencias en la conexión. Así que es necesario garantizar que aun en un ambiente desconectado no se pierdan los eventos y mensajes enviados y que tan pronto se restablezca la comunicación todo volverá a sincronizarse.

Por eso el uso de colas de mensajería es de vital importancia para gantizar la integridad de todos los datos. Además se incluye un tema de manejo de eventos complejos y su procesamiento, pues en este tipo de sistemas de salud es necesario ser capaz de reaccionar ante eventos simples y eventos complejos, además de ser capaces de aplicar algortimos de máquina de aprendizaje a partir de todo el flujo de eventos generados.

Con el volumen de información de eventos que se puede recopilar tanto de forma síncrona como asincrónica, se pueden elaborar diversos dashboard con gráficas de todo tipo así como ser capaces de enviar notificaciones y alertas a los interesados.

Si logramos que todas estas piezas de software se integren correctamente entre si tendríamos algo como lo siguiente:

Llegados a este punto sería un error garrafal y muy malo tecnológicamente aspirar a:

  1. Implementar todo esto desde 0. Algo que nos encanta a los cubanos por temas de soberanía tecnológica y demás palabritas interesantes, pero que conducen a un desgaste enorme, pérdidas económicas y años y años de desarrollo sin saber si finalmente se logrará el objetivo final.
  2. Comprar soluciones por separado, sin saber si se podrán interconectar entre sí o sin evaluar correctamente el grado de adaptación de las mismas.
  3. Usar un lenguaje de programación con pocas capacidades para implementar soluciones de integración e interoperabilidad. No hay que ir muy lejos para entender que me estoy refiriendo a PHP. Un lenguaje que ha causado destrozos al desarrollo de software a nivel de país y hacia lo interno de las universidades. No porque sea malo, que no lo es, si no por haber sido usado para cosas que no se tenía que haber usado.

La propuesta tecnológica que hago partiendo de la experiencia práctica en este tipo de soluciones y los años de trabajo en diversas soluciones para otros sectores usando tecnologías propietarias y open source, consta de los siguientes elementos:

  1. Libre de costo para el país.
  2. Open Source completamente distribuida bajo licencia Apache v2 y con acceso a los fuentes en todo momento, disponibles en github.
  3. Preparada para docker y otros ambientes de contenedores.
  4. Tener una comunidad activa, que responde rápido y que ante cualquier bug es capaz de brindar un fix rapidamente.
  5. Tener personal con conocimientos suficientes como para realizar una inducción y adiestramiento de un equipo de trabajo de analistas, diseñadores, desarrolladores, probadores y arquitectos.
  6. Evolucionar constantemente adoptando las mejores prácticas de la industria, compliendo con los estándares y protocolos de comunicación.
  7. Y lo fundamental, que ya tenga implementada la mayor cantidad de funcionalidades vistas anteriormente y que se pueda conectar con cualquier otra solución.

En la siguiente imagen se muestra como la suite de WSO2, ampliamente abordada en este otro blog  también de mi autoría, se ajusta a los requerimientos y necesidades para implementar un sistema de salud cubano conectado.

 

 

 

WSO2 en la meterorología Cubana?

En estos días de frío por toda Cuba  ¿cuántos no han querido saber que temperatura está haciendo en su lugar de residencia, no digo en su casa, si no en su ciudad, pueblo o municipio? Me imagino que todos aquellos que no tengan internet en su casa o un termómetro o dispositivo que le de esa información al instante. Yo me sumo a ellos 😀

Resulta que me han facilitado un servidor de WSO2 ESB en internet y hay que aprovecharlo así que me puse a pensar como tener la temperatura en mi teléfono actualizada y he aquí una solución buena, bonita y barata:

 

Continuar leyendo “WSO2 en la meterorología Cubana?”

Tiene WSO2 futuro dentro de Cuba? I.

 Alguien hace poco me hizo la pregunta del asunto al conocer que una buena parte de mis habilidades se centran en esta suite, y mi respuesta fue: obvio.
Y claro, aproveché para enumerarle una buena cantidad de escenarios donde veía la necesidad/utilidad imperiosa del uso de una suite para temas de integración e interoperabilidad en nuestro país, y que aprovecho para compartir con la comunidad.
Suite de WSO2
WSO2 es una empresa de Sri Lanka que se especializa en el desarrollo de una suite (colección de herramientas con un fin relacionado) para temas de integración e interoperabilidad o más concretamente centrada en temas de SOA y BPM. Sus desarrollos son completamente Open Source bajo licencia Apache v2, o sea 0 $, y se prestan para casi cualquier escenario que imaginemos.

Continuar leyendo “Tiene WSO2 futuro dentro de Cuba? I.”