• No se han encontrado resultados

La tesis propone G-EEG (Government-Enterprise Ecosystem Gateway) como solución para el problema formulado en la Sección 1.4. G-EEG es una plataforma de comunicación de alto nivel que soporta la ejecución de procesos de negocios inter-organizacionales. Permite la construcción, aplicación, y evolución de estructuras de comunicación complejas para el intercambio asincrónico de mensajes en varios contextos de aplicación, como por ejemplo, la entrega colaborativa de servicios públicos. Se diferencia de otras soluciones por su habilidad para crear y configurar dinámicamente las estructuras de comunicación, y proveer un mecanismo de extensión, que permite agregar la funcionalidad requerida por aplicaciones que usan la mensajería, integrando ésta funcionalidad con los servicios básicos, todo bajo la misma solución.

Esta sección introduce brevemente G-EEG. Presenta sus atributos (Sección 1.5.1), estructura (Sección 1.5.2) y comportamiento (Sección 1.5.3). La presentación en detalle de G-EEG es el objetivo de los Capítulos 4 (Fundamentos) y 5 (Implementación).

1.5.1 Atributos de G-EEG

G-EEG se compone de tres conceptos principales: núcleo del framework de mensajería (G-EEG-CORE), un repositorio de extensiones para proveer funcionalidad enriquecida por encima del núcleo (G-EEG-EXTEND), y un ambiente de desarrollo para construir nuevas extensiones (G-EEG-DEVELOP). El objetivo de esta estructura es garantizar que G-EEG sea minimalista, extensible, dinámico y confiable:

1) Minimalista – G-EEG-CORE se construye con la menor cantidad posible de conceptos – mensajes, miembros, canales, propietarios y suscriptores, y su objetivo es permitir el servicio de mensajería básico – intercambio asincrónico de mensajes entre miembros registrados a través de canales creados y suscriptos dinámicamente. 2) Extensible – G-EEG-EXTEND provee a las aplicaciones funcionalidad de mensajería adicional, usualmente

requerida por ellas, a través de un repositorio de extensiones independientes (horizontales) y dependientes de los procesos (verticales).

3) Dinámico –G-EEG-CORE y G-EEG-EXTEND contienen provisiones para que G-EEG pueda responder a los cambios en el ambiente de operación: las estructuras de comunicación pueden evolucionar con el paso del tiempo y las extensiones pueden ser habilitadas, configuradas, y deshabilitadas según las necesidades de las aplicaciones. 4) Confiable – G-EEG está basado en modelo formal que permite el análisis de propiedades importantes,

permitiendo el desarrollo riguroso de nuevas extensiones y guiando el desarrollo de software de G-EEG.

1.5.2 Estructura de G-EEG

G-EEG-CORE – Un framework de mensajería de tiempo de ejecución que permite el intercambio asincrónico de mensajes entre miembros registrados a lo largo de canales creados y suscriptos dinámicamente. Los miembros pueden ser personas, software u organizaciones que lleven a cabo la mensajería como parte de un proceso inter- organizacional más extenso, como por ejemplo, la entrega de servicios integrados. G-EEG-CORE ofrece lo mínimo indispensable en cuanto a funcionalidad para sus usuarios – habilidad para registrarse y des-registrarse como miembros, crear y destruir canales, suscribirse y des-suscribirse a canales, y enviar y recibir mensajes.

G-EEG-EXTEND – Un repositorio de extensiones horizontales y verticales y un mecanismo para habilitarlas dinámicamente sobre G-EEG-CORE. Las extensiones horizontales son independientes de cualquier proceso que requiera el intercambio de mensajes. Por ejemplo: (H1) generación de la historia de mensajes que circulan a través de un canal, (H2) validación de mensajes enviados a través de un canal con respecto a un formato dado; (H3) transformación de mensajes enviados a través de un canal de un formato a otro; (H4) cifrado y des-cifrado de mensajes a través de un canal; (H5) control de que sólo miembros autorizados puedan usar servicios de mensajería; (H6) información provista acerca de miembros o canales; y (H7) uniendo miembros en alianzas para llevar a cabo el envío de mensajes en conjunto. Las extensiones verticales son específicas para procesos, por ejemplo: (V1) garantizando que el flujo de los mensajes a través de algunos canales esté en conformidad con los procesos de negocios predefinidos; (V2) verificando si el intercambio de mensajes está en conformidad con ciertas políticas de comunicación; (V3) permitiendo la composición de canales existentes en canales más complejos; y (V4) determinando la ubicación de un mensaje en tránsito a través de un canal complejo. La Tabla 1 presenta la lista de estas extensiones.

Tabla 1: Ejemplo de Extensiones Horizontales y Verticales de G-EEG

H1 Auditoría V1 Orden H2 Validación V2 Puntualidad H3 Transformación V3 Composición H4 Cifrado V4 Seguimiento H5 Autenticación H6 Localización H7 Alianza

G-EEG DEVELOP – Un marco de desarrollo para especificar, diseñar y verificar rigurosamente las extensiones de mensajería, construido sobre la funcionalidad central ofrecida por G-EEG CORE y contribuyendo a G-EEG-EXTEND con nuevas extensiones. Para poder facilitar el desarrollo riguroso de extensiones, G-EEG-DEVELOP permite su descripción en diferentes niveles de abstracción:

o Nivel Abstracto – En este nivel, el comportamiento de los servicios de mensajería está descripto en términos de los cambios que se espera que causen en el estado global del Gateway (compuesto por los estados de los miembros y canales), sin determinar cómo se realizan tales cambios. Este nivel permite especificar el comportamiento esperado.

o Nivel Concreto – En este nivel, los servicios de mensajería involucran un intercambio concreto de mensajes entre miembros a lo largo de canales creados y suscriptos dinámicamente, produciendo cambios en los estados locales de miembros y canales, y, por consiguiente, cambios al estado global. Este nivel describe el comportamiento de la mensajería a medida que va sucediendo.

Cambios de estado a nivel global o local, no solo involucran el envío y recepción de mensajes por parte de los miembros, sino también la evolución del Gateway mismo: (i) los miembros pueden suscribirse o des-suscribirse al Gateway en cualquier momento; (ii) los canales pueden ser creados o destruidos dinámicamente por sus miembros,

(iii) los canales pueden ser suscriptos o des-suscriptos dinámicamente por los miembros, y (iv) funcionalidad de mensajería adicional puede ser habilitada o deshabilitada en canales individuales o a través de miembros.

Vinculando los niveles abstractos y concretos se crea una oportunidad para la verificación – probar que una extensión de mensajería implementa correctamente su especificación. Sin embargo, un requerimiento necesario para esto es la existencia de una semántica formal que sustente las descripciones en ambos niveles, haciendo posible que se relacionen. G-EEG-DEVELOP provee semánticas formales que no sólo cubren estos dos niveles, sino también a G-EEG- CORE. Efectivamente, los servicios de mensajería básicos de G-EEG-CORE son especificados, implementados y verificados en la misma manera que los servicios de mensajería extendidos de G-EEG-EXTEND.

1.5.3 Comportamiento de G-EEG

Durante el desarrollo de G-EEG, abstracción fue el principio conductor usado para: resolver los desafíos tecnológicos de Gobierno Integrado (Sección 1.2), proveer una solución al problema principal (Sección 1.4), realizar los atributos que apuntalan a G-EEG (Sección 1.51.), permitir el desarrollo riguroso (Sección 1.5.2), y simultáneamente ocultar la complejidad de G-EEG a desarrolladores y aplicaciones que lo usan. Esta sección presenta el comportamiento de G- EEG en tres niveles relacionados de abstracción, pero a su vez incrementalmente más concretos: abstracto (Figura 4) intermedio (Figura 5) y concreto (Figura 6).

Figura 4: Comportamiento de G-EEG – Abstracto

En el nivel abstracto, G-EEG comprende el Gateway y el ecosistema de miembros que interactúan al enviar y recibir mensajes a través de él. A cada miembro se le asigna: gate-in – un contenedor para los mensajes enviados por el miembro; gate-out – un contenedor para los mensajes recibidos por un miembro; y el estado local.

Los siguientes pasos se llevan a cabo con el envío de un mensaje por parte de un miembro, hasta la recepción del mismo por parte de otro.

1) El mensaje es insertado en la estructura gate-in del emisor y procesado por la función de pre-entrega, posiblemente cambiando el contenido del mensaje, los receptores deseados y el estado local del emisor.

2) El mensaje es distribuido desde la estructura gate-in del emisor a la estructura gate-out de todos los receptores. gate-out

member2 member2

transfer

pre-deliver post-deliver

send gate-in receive

gate-in gate-out state send receive gate-in gate-out state send receive transfer transfer Member 1 Gateway Eco-System Eco-System Member 1 pre-deliver post-deliver pre-deliver post-deliver Member 2 Member 2 Member 3 Member 3

3) Para cada miembro receptor, el mensaje recibido es procesado por la función post-entrega, posiblemente afectando su contenido y el estado local del receptor, y posteriormente es recibido por el miembro.

4) En vez de recibir un mensaje como en (3), el mensaje es transferido de la estructura gate-out a la estructura gate- in del receptor, como preparación para posteriores entregas, en cuyo caso, se vuelve a ejecutar el paso (1). La Figura 4 presenta un escenario particular a través del cual el Miembro 1 entrega un mensaje a los Miembros 2 y 3 – el mensaje es insertado en el gate-in del Miembro 1 y posteriormente trasladado a los gate-out de los Miembros 2 y 3. Luego de recibir este mensaje, el Miembro 2 se lo transfiere al Miembro 3 – el mensaje es trasladado desde el gate- out al gate-in del Miembro 2, y posteriormente al gate-out del Miembro 3. Cuando el Miembro 3 recibe ambos mensajes, los mismos son efectivamente removidos del gate-out. Mientras el mensaje se traslada entre los gate-in y gate-out, su contenido y los estados locales de los miembros pueden cambiar a través de funciones de pre-entrega, post-entrega y transferencia.

En el nivel actual, G-EEG omite donde deberían entregarse los mensajes. La conexión entre Miembro 1, y Miembro 2 y Miembro 3 (primer mensaje) y entre Miembro 2 y Miembro 3 (segundo mensaje) se decide implícitamente en base al contenido del mensaje, y no por el mecanismo de mensajería del Gateway. La decisión principal cuando se va bajando en el nivel de abstracción es hacer explícito este mecanismo de entrega. Ver Figura 5.

Figura 5: Comportamiento de G-EEG – Intermedio

A fin de explicitar el mecanismo de entrega, se introduce el concepto de canal – una conexión lógica entre miembros. Ciudadano de primera clase para el Gateway, un canal puede ser creado y destruido por los miembros, y suscriptos y des-suscriptos por ellos. El miembro que crea un canal se convierte en su propietario. Cuando un suscriptor envía un mensaje a través de un canal, el mismo es entregado al resto de los suscriptores. La existencia de un canal, al igual que su conjunto de suscriptores, puede cambiar con el paso del tiempo.

La Figura 5 muestra la estructura de canal para el escenario en la Figura 4, donde el primer mensaje es enviado por el Miembro 1 al Canal 1, suscripto por los Miembros 1, 2 y 3, mientras que el segundo es enviado por el Miembro 2 al Canal 2, suscripto por los Miembros 2 y 3. Luego de recibir el mensaje a través del Canal 1, el Miembro 2 lo envía al Canal 2. gate-in gate-out state transfer pre-deliver post-deliver send receive channel 1 gate-in gate-out state send receive channel 2 gate-in gate-out state send receive transfer transfer Member 1 Gateway Eco-System Eco-System Member 1 pre-deliver post-deliver pre-deliver post-deliver channel 1 channel 1 channel 1 Member 2 Member 2 Member 3 Member 3 channel 2 channel 1 channel 2 channel 1 channel 2

En el nivel actual se mantiene oculto cómo los mensajes son procesados y cómo la funcionalidad de mensajería, más allá del simple envío y recepción de mensajes, puede ser integrada en el Gateway. En el nivel concreto, tal funcionalidad es implementada e integrada al Gateway a través de extensiones. Ver Figura 6.

Figura 6: Comportamiento de G-EEG – Concreto

Las extensiones son principalmente habilitadas en canales para implementar funcionalidad sobre la transferencia de mensajes a través de un canal, por ejemplo validando un mensaje con respeto a un formato dado, cifrando y descifrando un mensaje, etc. Lo que permite tal proceso es el hecho de que un mensaje es enviado a un canal enviándolo primero al propietario de ese canal, quien posteriormente puede invocar funcionalidad adicional. Varias extensiones pueden ser habilitadas a un canal, y el propietario puede invocarlas a todas y coordinar una respuesta conjunta. Las extensiones también pueden ser habilitadas a miembros, por ejemplo, una alianza de miembros (H7). Un miembro especial, representando a todos los miembros de la alianza, es creado para que implemente la extensión. Las extensiones pueden ser horizontales (independientes de los procesos) o verticales (dependientes de los procesos). La distinción, en el lenguaje de canales, es que las extensiones horizontales se refieren a un solo canal – afectando la transferencia de mensajes a través de ese canal, mientras que las extensiones verticales se pueden referir a varios canales – coordinando la transferencia de mensajes a través esos canales.

La Figura 6 representa el escenario de la Figura 5 involucrando las extensiones. Muestra que el Canal 1 (c1) está configurado con la extensión de Validación (V), mientras que el Canal 2 (c2) está configurado con la extensión de Transformación (T). Adicionalmente, muestra que la extensión vertical Orden (O) controla el flujo de los mensajes que circulan por los Canales 1 y 2.

Documento similar