La estrategia SOA y el IoT (Internet de las cosas) – Parte 1

por

Hasta ahora hemos puesto el foco de atención en el contexto de una empresa o un organismo público, independientemente del sector industrial al que pertenezca. Venimos insistiendo en las bondades que una estrategia SOA puede aportar a los procesos de negocio de cualquier actividad, y por tanto, a las empresas e instituciones, y en última instancia, a la calidad de los servicios que dichas entidades prestan a los ciudadanos. Pero en esta entrada, y en la próxima, vamos a levantar la vista y vamos a mirar más allá, mucho más allá. Y es que en el horizonte, llegando rápidamente a nuestras vidas, nos encontramos con el Internet de las cosas (IoT): la conexión e interacción de todo lo que nos rodea con internet. Nada más y nada menos.

 

La estrategia SOA y el Internet de las Cosas

 

 

El concepto es tan amplio que cuesta abarcarlo, pero también es tan inevitable que resulta preocupante pensar en cómo va a llegar esta nueva ola. Lo que es seguro, es que llegará.

Si en un contexto presuntamente acotado y controlado como es una empresa, resulta tan determinante la manera en que fluye la información, la forma en que se conectan los sistemas, para lograr un ecosistema sostenible, escalable y mantenible con unos costes razonables… ¿qué ocurrirá si el IoT explota sin control?. Dicho de manera menos alarmista pero igual de precisa: ¿puede el IoT pasar por alto los principios y directrices de una estrategia SOA?. Cuestiones que en una escala empresarial han demostrado ser absolutamente críticas y determinantes en el éxito o fracaso de una estrategia de interoperabilidad, ¿cómo impactan en el IoT?.

 

Vamos a tratar de analizar esos factores clave que acompañan a una estrategia SOA, y su papel en el IoT.

 

 

La estrategia SOA en el Internet de las Cosas: factores clave.

 

– Estandarización Semántica.

Hace poco hemos dedicado una entrada a este tema. En el contexto del IoT, vamos a analizarlo con un ejemplo. Imaginemos un frigorífico conectado a internet, y provisto de lectores RFID para controlar el stock de productos que contiene. Imaginemos que el software instalado es capaz de identificar cuando un producto empieza a escasear o se agota, informando al usuario mediante un visor o enviando notificaciones al móvil que puedan verse en tiempo real, o en un informe solicitado por el usuario en su app. Supongamos además que cuando el usuario lo decida, puede generar automáticamente una lista de la compra, que una vez confirmada se envía a un servicio del supermercado elegido por el usuario para encargar la compra, que naturalmente es abonada a través de un servicio de pago telemático.

¿Ciencia ficción? En absoluto. La tecnología necesaria existe y es asequible (a excepción quizás de RFID, algo más costosa). En ese escenario, hay varios mensajes a diseñar entre distintos actores

1. Mensaje de stock bajo: nuestro frigorífico nos avisa de que los yogures se están agotando.

2. Mensaje de stock cero: no quedan yogures.

3. Mensaje para enviar pedido: hemos configurado una lista de la compra en nuestro móvil o en la consola del frigorífico y pulsamos en «comprar».

4. Mensaje de confirmación de compra: validamos la orden de pago y confirmamos el cargo con la pasarela de pago que use nuestro banco. Quizás esto no sea necesario si nuestra consola de pago (o el propio móvil) utiliza sistemas de autenticación de última generación (huella dactilar por ejemplo).

La aplicación que se ejecuta en el frigorífico, identificará al producto “yogur” de una determinada manera. La aplicación que el usuario tiene en su móvil para interactuar con su frigorífico también. El supermercado, por su parte, también. Si estos sistemas no utilizan un sistema común para identificar los productos, este escenario de ejemplo presenta importantes restricciones: no podemos usar cualquier supermercado, por ejemplo. Solo el que resulta compatible con nuestro sistema de identificación de artículos en el frigorífico y app del móvil.

 

En vez de eso, la estrategia de interoperabilidad basada en los principios SOA plantea dos alternativas, compatibles entre sí:

1. Contar con un estándar de interoperabilidad para el comercio minorista (ajustándonos a nuestro ejemplo). Aseguraríamos la interoperabilidad semántica entre los distintos actores dentro de los procesos de negocio del comercio minorista.

2. Introducir entre los distintos actores una plataforma mediadora, orquestadora y transformadora (un ESB), de manera que los actores que no usen la misma semántica en su mensajería se mantengan independientes (desacoplados) del resto de sistemas y sus particularidades semánticas propias.

 

Ambas tácticas son compatibles entre sí, y podrían (deberían) convivir en un ejemplo como el que hemos planteado. De esta forma, la plataforma ESB flexibilizaría los requisitos para cualquier nuevo actor que pueda entrar en escena (nuevos fabricantes de frigoríficos, nuevas apps especializadas, o nuevos comercios) en lo que se refiere al cumplimiento del estándar de interoperabilidad del sector. Y el estándar, garantizaría que en el medio y largo plazo, el usuario no estará atado a una serie de empresas que se entienden sólo entre sí, a nivel de mensajería.

 

– Abstracción

En el día a día de los ciudadanos, se repiten muchos patrones. Incluso en actividades diferentes, vistas con cierto nivel de detalle. Un ejemplo sencillo podría ser el proceso de compra. Comprar algo puede parecer algo muy diferente cuando comparamos lo que hacemos al comprar en un supermercado la compra de la semana o del mes, y lo que hacemos cuando compramos unos zapatos, o cuando compramos una entrada para el cine. En cada caso, el detalle del proceso presenta diferencias evidentes, pero en un cierto nivel de abstracción el proceso de compra es siempre el mismo: un vendedor ofrece un producto (carrito lleno, zapatos o entrada) a un cliente, a cambio del abono de un importe aceptado por ambos (en efectivo, o mediante un medio de pago electrónico).

 

La llegada del IoT debe tener en cuenta esto para diseñar integraciones eficientes y fácilmente mantenibles (desde el punto de vista correctivo y desde el punto de vista evolutivo). La conectividad llevada al extremo que promueve el IoT va a encontrarse sí o sí con una serie de patrones (de hecho, posiblemente hablamos de un conjunto acotable de patrones), que se repiten una y otra vez. Es al bajar a cierto nivel de detalle cuando las diferencias pueden causar la impresión de una variedad abrumadora de procesos.

 

Una correcta estrategia debería buscar siempre un nivel de abstracción que permita manejar los patrones de interoperabilidad muchas veces, en situaciones y usos aparentemente distantes a los ojos del usuario final. Se necesita un análisis profundo de los flujos de información, de los eventos que disparan la comunicación entre los distintos dispositivos, entidades y usuarios. Aquí el análisis y modelado de los procesos puede ayudar a entender perfectamente quién, qué, cuándo y cómo se mueve la información en un determinado escenario a integrar.

 

– Orientación a Eventos y Procesos

El IoT es un excelente ejemplo de lo determinante que puede ser elegir una buena estrategia de integración. El clásico enfoque vertical, que busca encontrar una solución tecnológica a un problema funcional de un determinado perfil de usuario, suele conducir a patrones reactivos, no proactivos. Y el patrón reactivo por excelencia es el patrón petición-respuesta, del que hablamos en la entrada anterior.

 

Pero el IoT tiene bastante en común con la robótica y sobre todo con la domótica. El IoT aspira a llevar las inmensas capacidades de la red de redes a los eventos cotidianos de las personas y al funcionamiento de los dispositivos, aparatos y electrodomésticos que usamos en nuestro día a día. Por lo tanto no puede caer en el clásico enfoque vertical de soluciones reactivas. Sin duda habrá casos en que ese patrón encajará bien, pero nunca por defecto. El enfoque que requiere el IoT, por naturaleza, es el orientado por eventos. Y para descubrir correctamente los eventos significativos en los flujos de información a implementar, nada mejor que un análisis de los procesos transversales, que permita descubrir cómo unos escenarios se relacionan con otros, y cómo el flujo de eventos e información asociada se extiende de forma natural en el comportamiento diario de los ciudadanos y su interacción con las cosas.

 

Aún quedan otros factores clave que analizar, pero para no hacer la entrada demasiado larga, lo haremos en el próximo post.

 

Te puede interesar

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Sigueme en las redes

Share This