Despliegue remoto de flujos en Node-RED con Sofia2

Como ya hemos comentado en otros posts, Node-RED es una herramienta visual que proporciona un motor de flujos ligero capaz de ejecutarse en dispositivos de capacidades reducidas, como puede ser una Raspberry Pi.

En este post vamos a mostrar cómo es posible editar de forma centralizada, en la consola de administración de Sofia2, flujos Node-RED, que posteriormente se desplegaran de forma remota en dispositivos. Como dispositivo de ejemplo y de video demostrador utilizaremos una Raspberry Pi modelo A.

El despliegue remoto de flujos, lo realizará en el dispositivo, un ThinKP bastante ligero, cuya misión será, a través del protocolo de mensajería SSAP de Sofia2, recibir nuevos flujos editados en la plataforma y desplegarlos en la instancia de Node-RED local del dispositivo.

image001

Asimismo, la libertad que proporciona el mensaje SSAP de suscripción para ejecutar queries, así como los conceptos Sofia2 de ThinKP e instancia de ThinKP, permiten que la capacidad de despliegue remoto se pueda realizar a nivel de grupos de dispositivos, pudiendo considerarse un ThinKP como un grupo, con distintas instancias en ejecución, cada una con su propio identificador.

image003

El ThinKP en ejecución en el dispositivo, se conectará a la plataforma abriendo una sesión SSAP y se suscribirá para recibir notificaciones de flujos editados en la consola de administración de Sofia2.

Para ello en la query de suscripción indica que se suscribe a su Grupo (en este caso Grupo Raspberry), y dentro de ese grupo, a las notificaciones que vayan dirigidas a su identificador concreto (RaspberryXX) o a todo el grupo (*).

Estas suscripciones se registran en el Semantic Broker de Sofia2, para realizar las notificaciones en un futuro, cuando se desplieguen flujos desde la consola de administración.

image005

Una vez que cada dispositivo está suscrito a notificaciones de despliegue de nuevos flujos desde la plataforma, un usuario con permisos adecuados puede editar y probar un flujo en la consola de administración.

image007

De manera que cuando el usuario termina de editar y probar el flujo, procede a desplegarlo en dispositivos remotos. Para ello debe seleccionar aquellos en los que quiere que se haga el despliegue.

La consola de administración, de forma transparente al usuario, construye un mensaje, que incluirá además del flujo a desplegar, el grupo y dispositivos seleccionados.

Este mensaje se envía al Semantic Broker y se procesa como un mensaje SSAP – INSERT, disparando de este modo las notificaciones oportunas a los ThinKPs suscritos, que incluirán el código json del flujo Node-RED a desplegar.

image009.png

De manera que ya en el dispositivo, una vez notificado el thinKP de cada Raspberry Pi, este procede a desplegar en Node-RED el flujo recibido en el mensaje SSAP de notificación, utilizando el API REST de Node-RED, de forma que el flujo comenzará su ejecución en el dispositivo.

image011

Podemos ver el proceso en el siguiente video demostrador:

Despliegue remoto de flujos en Node-RED con Sofia2

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s