Un protocolo abierto para la mensajería de eventos por Internet

7 abril, 2022
Foto: Clément Hélardot en Unsplash.

Emiliano Spinella es graduado del máster universitario de Ingeniería Informática de la UOC y ha realizado su TFM en el área de Redes Abiertas. Se ha desempeñado varios años como Product Manager en empresas de software y de telecomunicaciones. Actualmente, es el CTO de Syndeno, una startup valenciana dedicada a brindar las mejores innovaciones de software en la comunicación de información. En este artículo nos explica qué son las redes abiertas, así como las principales claves de su TFM.

 

En la historia de Internet resalta la característica abierta de los protocolos de red, la cual ha brindado un marco común para la participación de distintas organizaciones e individuos. Hasta mediados de la primera década del siglo XXI, prácticamente todos los servicios de Internet se basaban únicamente en estos protocolos abiertos. Sin embargo, con el surgimiento de empresas como Google y Facebook se comenzaron a formar “clubes” dentro de Internet.

Los servicios ofrecidos por estas empresas comenzaron a hacer uso de los protocolos estándar y abiertos de Internet pero sobre los mismos agregaron una capa de comunicaciones privada y particular. Hoy en día, nos referimos a esta capa privada llamándola API (Application Programming Interface). Tal es así, que hablamos de la API de Facebook, o de Twitter, etc. 

En este contexto de privatización de las comunicaciones sobre Internet, surge también una tendencia tecnológica a la que llamamos “microservicios”. Si bien son muchos los beneficios de contar con una arquitectura de software basada en microservicios, también aparecen otros problemas, entre los cuales la comunicación de información es quizás el más complicado. 

Si comenzamos a conectar los microservicios uno a uno rápidamente nos encontraremos con la denominada Arquitectura Spaghetti, la cual limita fuertemente la evolución individual de los componentes de software por el nivel de acoplamiento que se genera entre ellos. Por esto mismo, surge la comunicación asíncrona de mensajes como una forma de evitar dicho escenario. Cuando un microservicio necesita comunicarse con otro, en vez de llamar sincrónicamente a una API, envía un mensaje a un agente de mensajería y únicamente espera la confirmación de que el mensaje fue enviado. 

A pesar de que existen múltiples alternativas de agentes de mensajería en el mercado que resuelven el problema técnico (p.ej. Apache Kafka, RabbitMQ, Mosquitto, etc.) surge un nuevo problema y es que cada una de estas herramientas implementa un protocolo de red propio no estándar. 

Todo esto resulta en sistemas de comunicaciones completamente heterogéneos, lo cual no sería un problema si no tuvieran que comunicarse entre sí. Sin embargo, la realidad actual nos demuestra el incremento de valor que obtiene la sociedad en su conjunto cuando las organizaciones pueden compartir información entre sí de forma estándar, simple y segura.

Es precisamente este problema de comunicación del que trata el Trabajo de Final de Master llamado Event Streaming Open Network. A lo largo del trabajo, se hace una descripción del estado del arte de esta tecnología y de las principales herramientas hoy en día utilizadas para dicho propósito. Luego, se utilizan los principios de las Redes Abiertas Libres y Neutrales para definir la primera Red Abierta del mundo en la que los participantes (cualquier empresa, organización o individuo) tienen la capacidad de compartir entre ellos sus flujos de mensajes asíncronos y en tiempo real. Dicho planteamiento incluye la especificación de una arquitectura y de un protocolo abierto de red que aspira a ser un estándar de Internet. Finalmente, se demuestra la factibilidad de dicha propuesta mediante una Prueba de Concepto que demuestra el funcionamiento de la red.

Una red abierta es una red en la que cualquiera puede participar y en la que no existe discriminación alguna para poder formar parte de ella. Básicamente, Internet hoy en día es una especie de red abierta dado que cualquier persona u organización puede conectarse y hacer uso de la misma. No sería una red abierta si al momento de conectarnos se nos pidiera un documento de identificación y en base a algún conjunto de reglas se nos denegara la conectividad. Por otro lado, que el acceso sea abierto no significa que sea gratuito, dado que uno debe pagar por los servicios de infraestructura que dan acceso a la red. 

De la misma forma, tanto la World Wide Web como el Email son también redes abiertas. Tan sólo con registrar un dominio y contar con un acceso a internet de determinadas características, uno puede levantar sus propios servidores Web y de correo electrónico. Además, dichas redes ofrecen una URI para facilitar la localización de los recursos y es así que existen URIs tales como juan@email.com o URLs como http://www.uoc.edu.

En el desarrollo de este trabajo se propone una nueva URI para flujos de mensajes asíncronos, de la forma flow://incripciones.alumnos.uoc.edu. O sea, se plantea que los canales de comunicaciones de flujos de mensajes asíncronos cuenten con una URI mediante la cual se los pueda localizar usando el servicio de resolución de nombres de Internet (DNS).

Básicamente, esto permitiría contar con escenarios como el que se ilustra a continuación. 

Figura 1. Escenario de ejemplo de la Red Abierta de Event Streaming.

En la Figura 1 podemos ver cómo un conjunto de flujos de mensajes iniciales dan lugar a distintas actividades productivas posteriores. En este caso, un aeropuerto con dos terminales publica dos flujos de mensajes con los aterrizajes y los despegues de los vuelos. Dicha información podría estar disponible para que una empresa logística pudiera posteriormente informar a sus clientes sobre un fecha estimada de entrega de alguna mercancía. Luego, utilizando la información de la empresa logística, una fábrica de componentes de la industria automotriz podría estimar la fecha de entrega de sus propios productos e informar a uno de sus clientes, en este caso una fábrica de coches.

Otra característica que fue tenida en cuenta al momento de diseñar la red abierta fue la necesidad de contar con flujos de mensajes públicos y privados. En el ejemplo mencionado, los flujos de mensajes publicados por el aeropuerto podrían ser públicos. Sin embargo, los flujos de mensajes entre la empresa logística y las fábricas contarían con mecanismos de seguridad para garantizar la confidencialidad de la información.

Toda esta composición de procesos de negocio no implicaría un desarrollo de software particular. O sea, no es necesario que los programadores de cada una de estas organizaciones se pongan de acuerdo sobre cómo comunicar estos flujos de mensajes. Se trata de minimizar la comunicación offline de los desarrolladores y que tan sólo baste con compartirse entre sí la URI de los flujos de mensajes. Esto funciona así con la URI de correo electrónico, dado que cuando compartimos nuestra dirección de correo no nos hace falta comunicar las características técnicas de nuestro proveedor de correo electrónico; tan sólo compartimos la dirección. 

También podemos decir que esta red abierta permitiría contar con múltiples flujos de información disponibles para la experimentación, lo cual a su vez podría brindar valor a la sociedad al habilitar actividades productivas que hoy en día no podríamos ni imaginar. Mañana podría aparecer un emprendedor que desarrolle un nuevo modelo de negocios basado en la composición de distintos flujos de mensajes o que solucione más eficientemente un problema que ya creíamos resuelto.

Tras finalizar el Trabajo de Final de Master, la propuesta de esta Red Abierta de Event Streaming ha sido presentada ante la IETF (Internet Engineering Task Force) en formato de Internet Draft, el primer paso que atraviesa todo protocolo estándar de Internet. La propuesta ha sido presentada en el evento IETF113 en Viena, Austria en Marzo de 2022 (presentación).

Finalmente, la startup Syndeno ha tomado el liderazgo de la divulgación y de la implementación de esta red abierta. Actualmente, Syndeno se encuentra desarrollando la primera versión estable de los distintos componentes de software necesarios, los cuales serán liberados con licencia de código abierto. Asimismo, Syndeno está participando del programa de aceleración Hubbik de la UOC, en el cual se plantea la Red Abierta de Event Streaming como el factor más innovador de su propuesta de valor.

(Visited 14 times, 2 visits today)
Autor / Autora
Graduado del máster universitario de Ingeniería Informática de la UOC. Se ha desempeñado varios años como Product Manager en empresas de software y de telecomunicaciones. Actualmente es el CTO de Syndeno, una start-up valenciana dedicada a brindar las mejroes innovaciones de software en la comunicación de información.
Comentarios
Deja un comentario