Reglas Scripting/CEP

Con la liberación de la versión 2.9.0 de Sofia2 se ha dotado al motor de ejecución de Script de un nuevo modelo de parametrización.

Hasta esta versión, solamente podíamos asociar una única Ontología o un Temporizador que desencadenase la ejecución de un Script. Ahora esta limitación desaparece, pudiendo asociar varias Ontologías a un único Script, también se permite asociar Ontologías Padre, lo que permite que los desencadenantes también sean todas las Ontologías que heredan de estas Ontologías. Y por último se permite asociar Reglas CEP como origen de la ejecución de los Script.

tiposcript

 

Este último tipo de Script son los que centran la atención de este Artículo, por dos importantes características.

  • Son un nuevo modelo de ejecución de Reglas Script que difiere del modelo de trabajo basado en ontologías
  • Permite integrar los Dos motores principales de procesamiento de los mensajes en Sofia2, el Motor Cep y el Motor Script.

El Motor CEP nos permite evaluar la información de todas las Instancias de una o varias Ontología junto a la variable tiempo, lo que nos permite establecer condiciones complejas que son procesadas de una manera óptima.

ReglaCep

 

Si bien el Motor CEP evalúa todas las Instancias de las Ontologías asociadas, únicamente desencadena la ejecución de los Script cuando se cumple la condición que este evalúa.

La principal diferencia con el modelo de Script Basado en Ontologías es que al Motor Script no le llega la infancia de la Ontología que ha desencadenado el Evento Cep, si no  el resultado de este. Para el ejemplo anterior nos llegará una ontología con la siguiente información

{“Ontology”:”SensorTemperatura”,”Subscription”:”alarmatemperatura”,”inEvents”:{“medida”:51.0}}

Donde nos indica la ontología que ha desencadenado este evento, en este caso SensorTemperatura, la Regla Cep que lo ha desencadenado, alarmatemperatura y en un atributo denominado inEvents , los valores almacenados, en este caso únicamente almacenábamos la medida y la insertábamos en un atributo llamado de la misma forma.

Throwable error

String ontology

String ontologyName

List<String>ontologyId

String typeMessage

String sessionKey

String scriptName

String cepData

String cepName

String scriptType

La estructura de información con la que podremos trabajar dentro del Script, en cualquier de los bloques es la que se detalla en el punto anterior, donde destacan los siguientes atributos, que reitero, están disponibles en todos los Script Cep.

  • cepData, que es la ontología resultante de la Regla Cep.
  • cepName, el nombre de la Regla Cep.
  • ontologyName, el nombre de la ontología que ha desencadenado la regla Cep.
  • ScriptName, el nombre del Script que se está ejecutando.
  • scriptType tipo de Script que puede tomar los valores ONTOLOGY, CEP o QUART.

Una peculiaridad de los Script CEP es que al ser desencadenados estos por una condición previa, que se cumpla la Regla Cep!, no tenemos la obligación de definir una condición If, por lo que podemos únicamente establecer el código para el bloque Then.

Thennoif

En este caso el bloque Then obtiene el valor de la propiedad inEvents.medida, y lo evalúa, de forma que si es menor o igual de 50 envía un correo de Alarma Naranja y si es mayor de Alarma roja por Alta temperatura.
Esto podríamos haberlo echo usando el bloque if para establecer la condición
if
Y en los bloques Then y Else cada uno de los procesos específicos.
then
else
Reglas Scripting/CEP

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