Integrantes:
Marcelo Caponi
Pablo Rodríguez
Pablo Zamudio
Tutores:
Leonardo Rodríguez
Diego Rivero
- Entender soluciones basadas en mensajería
- Estudiar técnicas y artefactos de diseño para
atacar un problema de mensajería
SOA ∩ Mensajería
Futuro EIP → SOA
WS-* → EIPs
Frameworks y ESBs → EIPs
Estudiar EIP en SOA
- Introducción a Mensajería en Sistemas de Información
- Estado del arte
- Aspectos a especificar
- Herramientas para diseño
- Guía para Diseño
- Herramientas
- Clasificación de Patrones según implementación
- Ejemplos
- Introducción a Mensajería en Sistemas de Información
- Estado del arte
- Aspectos a especificar
- Herramientas para diseño
- Guía para Diseño
- Herramientas
- Clasificación de Patrones según implementación
- Ejemplos
Aplicación 1
Aplicación 2
Canal

Brinda:
 Bajo Acoplamiento
 Comunicación Asíncrona
 Comunicación Confiable
 Operación sin conexión

Pero …
 Modelo de Programación complejo

Definición
“Paradigma en el que tanto la estructura
como la ejecución de los programas están
determinados por los sucesos que ocurran
en el sistema o que ellos mismos
provoquen.”

Puntos de contacto con mensajeria?
 Forma de pensar las soluciones similar

Integración de aplicaciones

Diseminación de Información

Sistemas de Monitoreo Distribuido

Sistemas Móviles

Channels: Direcciones lógicas en el
sistema de mensajería.

Messages: Entidades que transportará el
sistema de mensajería.

Message Endpoint: Permite conectar una
aplicación al sistema de mensajería.

Permite la comunicación entre aplicaciones
mediante el intercambio de mensajes.

Características:
 Confiable
 Asíncrona
 Con garantía de entrega
 Con notificación de entrega
 Con manejo transaccional
- Introducción a Mensajería en Sistemas de Información
- Estado del arte
- Aspectos a especificar
- Herramientas para diseño
- Guía para Diseño
- Herramientas
- Clasificación de Patrones según implementación
- Ejemplos

Identificación del contexto

Especificación del comportamiento de la
aplicación

Definición de los componentes

Definición y estructura de los canales de
comunicación

Especificación de interacción entre
componentes

Patrones de Diseño de Mensajería (EIP)

Diagramas de propósito general
 UML y otros

Channel Patterns
 Point-to-Point Channel

Message Patterns
 Correlation Identifier

Routing Patterns
 Message Router

Transformation Patterns
 Content Filter

Endpoint Patterns
 Message Selector

Management Patterns
 Wire Tap

UML (Diagramas de estados, Diagramas de Actividad,
Diagramas de secuencia, etc)

Diagramas de Contexto

Signal Wiring Diagrams

Block Diagrams

Workflow diagrams

SDL

Identificación del contexto
 Diagrama de Contexto
 Diagrama de Casos de Uso

Especificación del comportamiento de la aplicación
 Diagramas de Actividad UML
 Diagramas de Workflow

Definición de los componentes
 Block Diagrams
 Signal Wiring Diagrams
 Diagramas de Componentes UML

Definición y estructura de los canales de comunicación
 Diagramas de EIP

Especificación de interacción entre componentes
 Signal Wiring Diagrams
 Block Diagrams (SysML)
 Diagramas de Comunicación UML

Identificación del contexto
 Diagrama de Contexto

Especificación del comportamiento de la aplicación
 Diagramas de Actividad UML

Definición de los componentes
 Block Diagrams

Definición y estructura de los canales de comunicación
 Diagramas de EIP

Especificación de interacción entre componentes
 Block diagrams (SysML)
- Introducción a Mensajería en Sistemas de Información
- Estado del arte
- Aspectos a especificar
- Herramientas para diseño
- Guía para Diseño
- Herramientas
- Clasificación de Patrones según implementación
- Ejemplos

Porque EIP en SOA?
 SOA ∩ Mensajería?
 Futuro EIP → SOA?
 WS-* → EIPs?
 Frameworks y ESBs → EIPs?

Estándares WS-*
 WS-Notification
 WS-Adressing
 WS-ReliableMessaging
 WS-AtomicTransaction
 WS-BusinessActivity
 WS-Coordination
 WS-Enumeration
 WS-Policy
 WS-ResourceFramework

Apache Camel
 Motor de reglas de ruteo y transformacion de
mensajes
 Soporta varios protocolos
 Implementa gran parte de los EIP
 Reglas expresables mediante:
○ Java DSL (Domain Specific Languaje)
○ XMLs de configuración (Spring fashion)
Implementables mediante WS-*
 No implementables mediante WS-*

 Basados en el canal
 Ruteo de mensajes
 Manipulación de mensajes
 Transformación de mensajes
 System Management

Message Filter.
 Problema
Evitar que un componente reciba mensajes
que no le son de interés
 Solución
Utilizar un ruter, que filtre los mensajes que
no son de interés, en función de criterios
definidos con anterioridad.

Utilización de:
 WS-Notification (WS-BaseNotification y WS-Topics)

En cada suscripción se especifican filtros para
evaluar si una notificación debe ser enviada al
subscriptor o no. Se puede especificar:
 Tópicos de interés
 Condiciones sobre las notificaciones usando Xpath

Se utilizo Apache Muse, como plataforma que
implementa estas especificaciones.

Dead Letter Channel.
 Problema
Resolver a donde van los mensajes que no
pueden ser entregados.
 Solución
Especificar un canal donde se envíen los
mensajes que no se pueden entregar.

Se utiliza Apache Camel

Se definen políticas a seguir para evaluar si un
mensaje ya no puede ser entregado. Ejemplos:
 cantidad de reintentos de entrega
 tiempo máximo a intentar la entrega.

Se especifican reglas de ruteo de los mensajes
que no pueden ser entregados. Ejemplos:
 Web Services, colas de mensajes, base de datos,
dirección de correo

WS-* + WS-*
 Estándares componibles “por definición”

WS-* + No WS-*
 Factible si el patron no implementado por WS-* tiene
en cuenta compatibilidad con WS-*

No WS-* + No WS-*
 Factible si al implementar un patron se tiene en
cuenta la compatibilidad con el resto

Completar estudio de implementación de EIP
en SOA

Impacto de la implementación de EIP en la
composición

Trazabilidad entre diagramas de diseño

Caso de estudio

Existen aspectos de este tipo de soluciones que no se
pueden especificar con UML.

Falta de propuestas metodológicas de cómo abordar la
parte concerniente a mensajería de una solución.

Implementación de EIP en SOA es factible.

Estándares WS-* tienden a implementar EIP, pero no
los cubren aun en su totalidad.










Enterprise Integration Patterns - Gregor Hohpe, Bobby Woolf
Event-Based Programming - Ted Faison
Unified Modeling Language (UML), version 2.1.1
http://www.omg.org/technology/documents/formal/uml.htm
SysML - http://www.sysml.org/
From use case diagrams to context diagrams http://searchsoftwarequality.techtarget.com/originalContent/0,2891
42,sid92_gci1280295,00.html
Representing Systems With Context Diagrams http://spot.colorado.edu/~kozar/CONTEXT.html
WS-* - Oasis.org - http://www.oasis-open.org
WS-* - W3C - http://www.w3.org/
Apache Camel - http://activemq.apache.org/camel/
Apache Muse - http://ws.apache.org/muse/
Descargar

Diapositiva 1