Documentación Uso de Ice Storm - ASTROINGENIERIA/ASTROUFRO GitHub Wiki

Uso de IceStorm

Entendiendo el Patrón de Diseño Publish-Subscribers.

Lo primero es entender como funciona el patrón de desiño publisher-subscribers, básicamente consiste en que alguien que envía notificaciones (publisher) y hay otros objetos que las reciben (subscribers).

Fig. 1 Patrón de diseño Publish-Subscribers.

Fig. 2 A weather monitoring application using IceStorm.

(Link: https://doc.zeroc.com/ice/3.7/ice-services/icestorm)

Como se puede ver en la Fig. 2, que es una imagen tomada de la documentación oficial de IceStorm, se puede ver como se replica el patrón de diseño Publisher-Subscriber.

Entendiendo funcionamiento de IceStorm

Para comprender mejor el funcionamiento de IceStorm trabajaremos con el ejemplo del reloj descrito en su repositorio oficial: https://github.com/zeroc-ice/ice-demos/tree/3.7/python/IceStorm/clock

Lo primero es iniciar el servicio de IceStorm.

icebox --Ice.Config=config.icebox

Esta configuración asume que aquí hay un subdirectorio llamado db en el directorio de trabajo.

En una terminal separada se ejecuta el subcriber quien recibe los datos del publisher a través del IceStorm:

python subscriber.py

Y en otra ventana se ejecuta el publisher quien genera los datos y los envía a IceStorm:

python publisher.py

Mientras el publisher continua ejecutándose , el mensaje "tick" será mostrado en la ventana del subscriptor.