3.2 Composición dinámica en el SLEE
3.2.2 Modelo de composición en el SLEE
3.2.2.1 Definición 1
Para definir formalmente un servicio en el SLEE es necesario adoptar dos definiciones matemáticas, la definición de evento y de componente SBB, que permiten describir el comportamiento e interacción de los componentes de un servicio.
Evento
Si se dice que es el conjunto de tipos de eventos y que es el conjunto de eventos, un evento , es una 5-tupla ordenada:
Dónde:
28 : es el tipo de evento.
: es el contexto de la actividad en la que se generó el evento. : es la dirección que el SLEE ha determinado para el evento. : es el conjunto de servicios.
Componente SBB
Si se dice que es el conjunto de todos los componentes SBB, un componente SBB es una 5-tupla:
Dónde:
: es el conjunto de relaciones hijas del componente SBB.
: es el conjunto de tipos de eventos iniciales del componente SBB. : es el conjunto de tipos de eventos recibidos del componente SBB. : es el conjunto de tipos de eventos mask-on-attach del componente SBB.
: es el conjunto de nombres de eventos mask-on-attach del componente SBB. Para un componente SBB dado,
Utilizando las anteriores definiciones, un servicio en el SLEE se puede representar mediante una FSM de la siguiente forma:
Dónde:
es el conjunto de eventos que forman parte del servicio, tal que:
,
Donde es el conjunto de eventos del SLEE definido en el modelo formal del enrutador de eventos.
es el conjunto de componentes SBB que conforman el servicio, tal que:
,
Donde es el conjunto de componentes SBB del SLEE, definido en el modelo formal del enrutador de eventos.
De esta manera, Los estados de ejecución del flujo del servicio son representados a partir de sus componentes en el orden de procesamiento de sus eventos.
es el componente SBB raíz del servicio, representa el inicio del servicio, tal que:
.
El disparo de un evento inicial por parte del SLEE (representado por el ER) ejecuta el SBB raíz, con lo cual se inicia el servicio y con él, la ejecución de sus componentes tal como se haya definido durante su implementación.
29
es la función de transición definida para establecer el flujo de ejecución del servicio en el
SLEE. La función de transición se define de la siguiente forma:
. La función de transición retorna el nuevo componente SBB encargado de procesar un evento en particular disparado por un componente anterior, es decir, los estados de ejecución del flujo del servicio se definen con la ejecución de sus componentes dependiendo del evento que sea procesado en un componente SBB.
se define como el conjunto de estados finales del servicio. Es representado por los componentes SBB en los cuales se termina el flujo del servicio, tal que:
. Para todo .Donde
La anterior definición de servicio en JAIN SLEE como FSM, permite modelar el comportamiento normal de un servicio, es decir, su flujo de ejecución para realizar su lógica de funcionamiento. La FSM definida abstrae la lógica establecida en fase de desarrollo de un servicio por medio de la representación del flujo de ejecución de los SBB asumiendo el funcionamiento correcto del servicio.
En la figura 5 se observa el diagrama que representa un servicio en el SLEE como una FSM construida a partir de la definición de , donde los estados del servicio son representados como óvalos verdes y los eventos como aristas dirigidas. Se modela un servicio conformado por cuatro SBB, donde cada componente SBB representa un estado del servicio; el SBB raíz inicia la lógica del servicio basada en el disparo de eventos, donde la arista dirigida representa el disparo de un evento desde un SBB a otro, de esta manera el flujo de ejecución se puede construir utilizando la función de transición, partiendo desde el SBB raíz hasta llegar al final del flujo del servicio, representado por los componentes SBB en los cuales se termina la lógica de funcionamiento del servicio, en la figura 5 el representa el estado final del servicio. También se debe mencionar que para el modelado de un servicio, no es necesario conocer la lógica interna de los SBB, sino de los eventos recibidos y disparados entre ellos, con lo que se construye el orden de ejecución de los mismos. Los eventos son entregados y a su vez procesados en un SBB que genera como resultado el disparo de otro evento dirigido a otro SBB para seguir con la lógica del servicio, pero en algunos casos, dependiendo de esta lógica, los eventos disparados son dirigidos al exterior por medio del RA y como resultado generan un nuevo evento entrante debido a una acción en la red, este evento es el dirigido al siguiente SBB en el flujo del servicio; sin embargo, este proceso no es necesario describirlo ni modelarlo en la FSM que representa un servicio puesto que para realizar composición, solo es necesario tener conocimiento de la interacción entre los SBB de un servicio, es decir, es irrelevante tener en cuenta, si un evento recibido por un , fue disparado directamente por el anterior o como resultado de un evento (lanzado por el ) que interactuó con el RA.
30 Figura 5.Diagrama de representación de un servicio en el SLEE
El principal objetivo de esta definición es abstraer el orden de ejecución de los SBB a partir de la secuencia de eventos que requieren ser procesados por estos componentes, logrando determinar el flujo normal de ejecución del servicio, dicho flujo ayudará a deducir el comportamiento predeterminado de los servicios de esta plataforma para poder encontrar diferentes alternativas de componer los servicios cuando uno de sus componentes falle.