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.

OpenBanking con WSO2 y cómo implementarla en Cuba.

En la una entrada previa vimos una breve introducción a qué era el OpenBanking, sus beneficios y como podría mejorar la experiencia del usuario cubano en los temas de banca, de aplicarse en nuestro país. En esta entrada veremos una implementación ya existente, las herramientas que usa y si es factible hacer algo similar en nuestro país.

El openbanking es un tema muy de moda en todo el mundo a raíz de nuevas regulaciones en la Unión Europea que se resumen en la PS2D. Lo principal de estas regulaciones son 2 elementos: normaliza/estandariza el uso de las APIs en los bancos y facilita el tema del comercio electrónico, pues hace que los bancos abran sus APIs de pago a 3ros. Ya sabemos que eso acá causará un miedo de “madre pa “alante” pero la realidad es así.  Seguridad por oscuridad (no saber cómo está implementada la seguridad) no sirve, lo seguro es lo que es público y aun así da problema violarlo. Nada de agarrar tijeras y picar el cable de red.   😀

Continuar leyendo “OpenBanking con WSO2 y cómo implementarla en Cuba.”

Segunda edición del TICS 2018 en Cuba.

El día 28 de junio del 2018, se realizó en nuestra capital la segunda edición del evento “Taller de informática y comunicaciones para la sociedad” TICS2018.
Este evento gestionado por el GEIC, Grupo Empresarial para la Informática y las Comunicaciones fue desarrollado en la sede central de los Joven Club de Computación y Electrónica.

Objetivo de la entrada: Determinar lo bueno y lo no tan bueno del evento.

El programa incluía las siguientes actividades:

  1. Conferencia “Tecnología BlockChain”. Del Dr. Miguel Katrib Mora. Duración de 50 minutos más 10 de debate.
  2. Conferencia “Propiedad Intelectual y el desarrollo del software”. De la Máster Juana Lourdes Vallín Sosa. Duración de 20 minutos más 10 de debate.
  3. Intervención de la UIC. De la vicepresidenta primera María Ester Alfonso Suárez. Duración 10 minutos
  4. Conferencia “La Nube, las plataformas y los nuevos modelos de negocio” De DESOFT impartida por su director general Luis Guillermo Fernández. Duración 10 minutos.
  5. Conferencia “Salud con todos y para todos”. De SOFTEL impartida por su directora general Ariadna Curbelo García. Duración 10 minutos
  6. Conferencia “Educación y Tecnología en Cuba, tarea de todos”. CINESOFT impartida por su director general Iván Barreto Gelles. Duración 10 minutos
  7. Conferencia “Experiencia de Joven Club en la implementación de alianzas en el sector de las TIC”. Por su subdirectora general Anamaris Solorzano Chacón. Duración 10 minutos.
  8. Conferencia “Ideas para la colaboración en el desarrollo de aplicaciones y servicios de software”. De XETID impartida por su director general Medardo Morales Martín. Duración 10 minutos y 10 minutos de debate.

Continuar leyendo “Segunda edición del TICS 2018 en Cuba.”

Licitaciones públicas para el desarrollo de software en Cuba

Puede ser que esté equivocado, y así quiero comenzar esta entrada dejando esto claro, pero me parece que en Cuba el software no se licita de manera pública, al menos no se de un registro de licitaciones ni he leído de alguna licitación hecha.

Entiendo por licitación pública de un software aquel procedimiento donde una empresa tiene un problema X en su negocio y ha identificado que necesita automatizar determinadas actividades para darle solución al problema X, así que lanza una oferta pública buscando quien pueda implementarle un software que le resuelva la situación y a través de un procedimiento que puede ser estándar o no, determinar partiendo de varios criterios quien es el que mejor puede resolver su problema teniendo en cuenta los temas técnicos y económicos.

Los pasos pueden variar pero en una licitación no deben faltar los siguientes:

  1. La empresa teniendo claro el problema a resolver, debe hacer un RFP, Request For Proposal, donde explique quizás un poco por arriba inicialmente cual es el problema que tiene y cúal ellos creen puede ser una posible solución técnica. Pidiendo que aquellas empresas interesadas manden su portfolio de soluciones y capacidades técnicas. Este podría ser un primer filtro.
  2. Partiendo del listado inicial de empresas que aplicaron a la solicitud realizar un primer corte usando determinados criterios de selección como puede ser la confiabilidad, años de experiencia, dominio del sector, etc, etc…, y al grupo seleccionado entregarles todo el RFP detallado a nivel técnico, previo acuerdo de confidencialidad,  y solicitarles que:
    1. hagan una prueba de concepto, PoC, donde demuestren que tienen la capacidad técnica para darle solución al problema entregándoles una parte del problema para que lo resuelvan. Deben resolverlo en determinado tiempo y cumplir con determinadas métricas. Y además deben justificar la arquitectura, tecnología y la manera en que implementaron la PoC.
    2. entreguen una estimación en h/h del esfuerzo requerido de manera general para darle solución al problema completo.
    3. entreguen una propuesta del monto del proyecto y de los hitos que se deberán cumplir.
  3. Con los resultados del punto anterior ya la empresa tendrá varias PoC con soluciones a parte de su problema, y una idea clara del tiempo y costo que propone cada empresa licitante. Ya llegado a este punto es decidir cual de las empresas es la que gana la licitación. O bien pueden realizar otra iteración con una selección menor de participantes para determinar algún otro tema de interés para la empresa.

Ahora bien, no todas las empresas son capaces de conducir una licitación, bien porque no tengan personal técnico calificado o porque no quieren meterse en ese tema. Aquí se puede generar un nuevo rol de “gestor de licitación” y podría ser una empresa o persona natural la que se encargue de ser el punto 0. O sea este “gestor de licitación” podría ir a la empresa que tiene el problema X, entender el problema, elaborar una arquitectura de alto nivel con las tecnologías, herramientas y lineamientos para darle solución al problema e incluso elaborar el RFP. Luego junto con personal de la empresa sería quien filtraría en el punto 1 y en el punto 3, para quedarse con una empresa que de verdad pueda asumir el proyecto y llevarlo a buen término.

Este tipo de rol resulta interesante, pues se genera una nueva oportunidad de trabajo que bien puede acompañar o no durante el desarrollo de todo el proyecto, y que puede suplir una carencia que dispongan aquellas empresas que no tengan un equipo de informáticos fuerte.

El tema al día de hoy, estoy asumiendo que esto no se hace en Cuba, es que las empresas que necesitan aplicaciones:

  • No saben si la empresa que contrararon tienen la suficiente capacidad técnica o la experticia para desarrollarles un software de calidad.
  • No saben si se cumplirán con los tiempos de desarrollo, o si existe otra empresa que pudo haber desarrollado lo mismo o mejor en menos tiempo.
  • No saben si la solución les podría haber costado menos de irse con otra empresa.
  • No saben si la solución que les van a entregar será escalable en el tiempo, si cumple con los mejores estándares del sector, si la tecnología empleada es de punta…etc…

De ahí que vea la necesidad que tenemos en el país de comenzar a licitar, y más cuando son empresas públicas que requieren de transparencia constante en todos sus desarrollos.

Pues se podría dar el caso de que la empresa “A” necesita de un sistema, han visto que en el país “B” tienen uno y se gastan “X” cantidad de dinero en comprarlo, sin haber hecho una licitación pública para ver si alguien del patio pudiera haberles hecho algo igual o mejor, con el consiguiente ahorro de recursos monetarios. Al final tienen un software “P” que es posible tengan que pagar todos los años por su uso, que no cumpla con todas sus necesidades actuales y futuras y hayan pagado una enormidad por el mismo.

En fin, la necesidad está creada, los procedimientos existen y la pregunta es: ¿Por qué no se usan?

ToDus, los datos móviles y la futura internet por datos en el cell

Desde esta semana en Cuba se está dando una nueva revolución en la mensajería instantánea con la llegada de todus y apklist

La idea principal es la de cualquier servicio de mensajería instantánea como whatsapp o telegram. No hay nada novedoso a mi entender en la propuesta que nos lleve un Ohhh, lo que si es importante es que es un desarrollo hecho en Casa y que nos hace independientes de esos servicios.

Lo novedoso de verdad es la idea secundaria: darlo gratis a través de los datos móviles, sin aun dar la internet por datos. Ese ha sido el verdadero hito de esta estrategia. Y es lo que está generando toda la locura con la mensajería, que ya los que tienen teléfonos que la 3G no les funciona quieren botarlos y comprarse algún chimbito de ETECSA pero que tenga 3G para estar en este maremoto de mensajes intercambiados.

Como quiera que sea, es algo que es superbienvenido, ha revolucionado la red de ETECSA de seguro, y esperemos que llegue para quedarse con más actualizaciones para que limen los detallitos que les quedan. Pero que no empañan el funcionamiento de la aplicación.

Quisiera comentarles, que al dejar activados los datos móviles solo para usar toDus corremos un riesgo de que tanto el sistema operativo android como el resto de las aplicaciones quieran hacer uso de la red abierta, y aunque ahora no hay internet, dentro de poco “esperemos” si la habrá..De ahí que les dejo algunas ideas a tener en cuenta:

Instalen par de aplicaciones como Glasswire y  la aplicación Datally de google: esta aplicación crea una VPN interna que filtra todo lo que quiera conectarse a la red y ustedes pueden bloquearlo si quieren o dejarlo pasar..les dejo algunas imagenes para que se hagan la idea.

Con glasswire pueden ver el consumo de datos móviles y de wifi por día, mes, etc…vean la siguiente imagen.

Continuar leyendo “ToDus, los datos móviles y la futura internet por datos en el cell”

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”

Gobierno electrónico en Cuba

En nuestro país la frase de moda en estos días relacionada con las tecnologías es  “gobierno electrónico.”

Ya Cubadebate tiene un artículo bien caliente de hoy al respecto que fue tomado de este otro sitio.

Lo fundamental que se puede sacar del escrito son las etapas por las que pasará el gobierno electrónico en nuestro pais:

  1. Presencia de los organismos y gobierno con información útil para la población en el sitio del gobierno.
  2. Interacción de la Administración Pública, el gobierno y el pueblo.
  3. Transacción donde se usen los pagos electrónicos en los trámites y servicios.
  4. Transformación, que incluye la participación del pueblo en la construcción de las políticas públicas y en la gestión de la administración y el gobierno.

Está claro que recién comenzamos con la primera, y en un máximo de 4 provincias con sitios web, de seguro hechos en PHP, con contenido estático dando información que bien puede considerarse de un copy/paste de algún panfleto con listados de trámites y pasos a dar en cada trámite.

Continuar leyendo “Gobierno electrónico en 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.

 

 

 

Cuando las cosas no funcionan.

Era noviembre del 2017, hace unos 4 meses atrás cuando inicié el trámite para hacerme miembro de la “Unión de Informáticos de Cuba”…Entré al portal y de ahí me fui a la sección de https://portal.uniondeinformaticos.cu/inscripcion para entrar mis datos.

En aquella fecha todo bien, puse todos los datos que me pidieron, le di enviar, me indicó que se había enviado la información y ya. No hubo un correo notificándome que se estaba procesando mi trámite ni un número para darle seguimiento al trámite. Solo silencio.

Llegó diciembre, entro a facebook, voy a la página de la UIC y me contacto con alguien para saber cual era el estado de mi solicitud. Sorpresa: Me dicen que la base de datos se perdió y que volviera realizar la solicitud.

Continuar leyendo “Cuando las cosas no funcionan.”