Menu:

Referencias:

Version:

1.0

Arquitectura de la solucion

Los procesos publican colas de mensajes con datos relevantes del dispositivo específico (para este caso de prueba, son reactores reportando temperaturas y presiones).

Los procesos crean conexión TCP con un servidor único que corre ActiveMQ, donde crean colas y publican los mensajes. Tanto el conector de Base de datos en java como el cliente pueden ver y consumir los datos de las colas.


ver en tamaño grande


Adicionalmente, los procesos (reactores) que son los productores de mensajes, también crean colas de control. Ellos mismos consumirán de esas colas, y el cliente/controlador puede enviar mensajes y controlar los reactores enviando mensajes a estas colas de control. Cuando llegue un mensaje a una cola de control (por ejemplo ControlQueue:reactor1), el proceso respectivo (Reactor1) que está escuchando consumirá el mensaje recibido en esa cola y utilizará el mensaje para ejecutar alguna acción en su máquina de estados (por ejemplo, un msg=OFF apagara la maquina respectiva).

Conclusiones y Relevancia de la Solución

Si bien puede implementarse una lógica similar usando solo bases de datos, esta solución es más rápida, más fácil, y además soporta variados protocolos de comunicación; entre ellos, SIP. Además también puede usarse para comunicar procesos en distintos lenguajes, como C++, python, php.

Otra ventaja es que, si uno de los procesos se cae, la cola de mensajes asociado a ese proceso seguirá recibiendo mensajes, y cuando el proceso reviva, recibirá todos los mensajes que se perdieron, en orden FIFO. Además es posible replicar las colas y tener cuantos brokers se desee, agregando redundancia y reduciendo la probabilidad de falla por comunicación.