Integrantes: Marcelo Caponi Pablo Rodriguez Pablo Zamudio Tutores: Leonardo Rodríguez Diego Rivero.

29
Integrantes: Marcelo Caponi Pablo Rodriguez Pablo Zamudio Tutores: Leonardo Rodríguez Diego Rivero

Transcript of Integrantes: Marcelo Caponi Pablo Rodriguez Pablo Zamudio Tutores: Leonardo Rodríguez Diego Rivero.

Page 1: Integrantes: Marcelo Caponi Pablo Rodriguez Pablo Zamudio Tutores: Leonardo Rodríguez Diego Rivero.

Integrantes:

Marcelo CaponiPablo RodriguezPablo Zamudio

Tutores:

Leonardo RodríguezDiego Rivero

Page 2: Integrantes: Marcelo Caponi Pablo Rodriguez 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

Estudiar EIP en SOA

SOA ∩ Mensajería

Futuro EIP → SOA

WS-* → EIPs

Frameworks y ESBs → EIPs

Page 3: Integrantes: Marcelo Caponi Pablo Rodriguez Pablo Zamudio Tutores: Leonardo Rodríguez Diego Rivero.
Page 4: Integrantes: Marcelo Caponi Pablo Rodriguez Pablo Zamudio Tutores: Leonardo Rodríguez Diego Rivero.
Page 5: Integrantes: Marcelo Caponi Pablo Rodriguez Pablo Zamudio Tutores: Leonardo Rodríguez Diego Rivero.

Dibujo:canal + mensaje (decir que es) + endpoints

que consumen y producen los mensajes

Page 6: Integrantes: Marcelo Caponi Pablo Rodriguez Pablo Zamudio Tutores: Leonardo Rodríguez Diego Rivero.

Brinda:Bajo AcoplamientoComunicación AsíncronaComunicación ConfiableOperación sin conexión

Pero …Modelo de Programación complejo

Page 7: Integrantes: Marcelo Caponi Pablo Rodriguez Pablo Zamudio Tutores: Leonardo Rodríguez Diego Rivero.

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

Page 8: Integrantes: Marcelo Caponi Pablo Rodriguez Pablo Zamudio Tutores: Leonardo Rodríguez Diego Rivero.

Integración de aplicaciones

Diseminación de Información

Sistemas de Monitoreo Distribuido

Sistemas Móviles

Page 9: Integrantes: Marcelo Caponi Pablo Rodriguez Pablo Zamudio Tutores: Leonardo Rodríguez Diego Rivero.

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.

Page 10: Integrantes: Marcelo Caponi Pablo Rodriguez Pablo Zamudio Tutores: Leonardo Rodríguez Diego Rivero.

Permite la comunicación entre aplicaciones mediante el intercambio de mensajes.

Características:ConfiableAsíncronaCon garantía de entregaCon notificación de entregaCon manejo transaccional

Page 11: Integrantes: Marcelo Caponi Pablo Rodriguez Pablo Zamudio Tutores: Leonardo Rodríguez Diego Rivero.
Page 12: Integrantes: Marcelo Caponi Pablo Rodriguez Pablo Zamudio Tutores: Leonardo Rodríguez Diego Rivero.

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

Page 13: Integrantes: Marcelo Caponi Pablo Rodriguez Pablo Zamudio Tutores: Leonardo Rodríguez Diego Rivero.

Channel Patterns Point-to-Point Channel

Message Patterns Return Address

Routing Patterns Message Router

Transformation Patterns Content Filter

Endpoint Patterns Event-Driven Consumer

Management Patterns Wire Tap

Page 14: Integrantes: Marcelo Caponi Pablo Rodriguez Pablo Zamudio Tutores: Leonardo Rodríguez Diego Rivero.

UML (Diagramas de estados, Diagramas de Actividad, Diagramas de secuencia, etc)

Diagramas de Contexto

Signal Wiring Diagrams

SysML

Workflow diagrams

SDL

Page 15: Integrantes: Marcelo Caponi Pablo Rodriguez Pablo Zamudio Tutores: Leonardo Rodríguez Diego Rivero.

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

Page 16: Integrantes: Marcelo Caponi Pablo Rodriguez Pablo Zamudio Tutores: Leonardo Rodríguez Diego Rivero.
Page 17: Integrantes: Marcelo Caponi Pablo Rodriguez Pablo Zamudio Tutores: Leonardo Rodríguez Diego Rivero.

Porque EIP en SOA?

SOA ∩ Mensajería?Futuro EIP → SOA?WS-* → EIPs?Frameworks y ESBs → EIPs?

Page 18: Integrantes: Marcelo Caponi Pablo Rodriguez Pablo Zamudio Tutores: Leonardo Rodríguez Diego Rivero.

Estándares WS-*WS-NotificationWS-AdressingWS-ReliableMessagingWS-CoordinationWS-AtomicTransactionWS-BusinessActivityWS-EnumerationWS-PolicyWS-ResourceFramework

Page 19: Integrantes: Marcelo Caponi Pablo Rodriguez Pablo Zamudio Tutores: Leonardo Rodríguez Diego Rivero.

Apache CamelMotor de reglas de ruteo y transformacion de

mensajesSoporta varios protocolosImplementa gran parte de los EIPReglas expresables mediante:

○ POJOs + DSL○ POJOs + XMLs de configuración (Spring

fashion)

Page 20: Integrantes: Marcelo Caponi Pablo Rodriguez Pablo Zamudio Tutores: Leonardo Rodríguez Diego Rivero.

Implementables mediante WS-* No implementables mediante WS-*

Basados en el canalRuteo de mensajesManipulación de mensajesTransformación de mensajesSystem Management

Page 21: Integrantes: Marcelo Caponi Pablo Rodriguez Pablo Zamudio Tutores: Leonardo Rodríguez Diego Rivero.

Message Filter.

Problema

Evitar que un componente reciba mensajes que no le son de interés

SoluciónUtilizar un ruter, que filtre los mensajes que no son de interés, en función de criterios definidos con anterioridad.

Page 22: Integrantes: Marcelo Caponi Pablo Rodriguez Pablo Zamudio Tutores: Leonardo Rodríguez Diego Rivero.

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ésCondiciones sobre las notificaciones usando Xpath

Se utilizo Apache Muse, como plataforma que implementa estas especificaciones.

Page 23: Integrantes: Marcelo Caponi Pablo Rodriguez Pablo Zamudio Tutores: Leonardo Rodríguez Diego Rivero.

Dead Letter Channel.

Problema

Resolver a donde van los mensajes que no

pueden ser entregados.

SoluciónEspecificar un canal donde se envíen los mensajes que no se pueden entregar.

Page 24: Integrantes: Marcelo Caponi Pablo Rodriguez Pablo Zamudio Tutores: Leonardo Rodríguez Diego Rivero.

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 entregatiempo 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

Page 25: Integrantes: Marcelo Caponi Pablo Rodriguez Pablo Zamudio Tutores: Leonardo Rodríguez Diego Rivero.
Page 26: Integrantes: Marcelo Caponi Pablo Rodriguez Pablo Zamudio Tutores: Leonardo Rodríguez Diego Rivero.

Lo que falta

Page 27: Integrantes: Marcelo Caponi Pablo Rodriguez Pablo Zamudio Tutores: Leonardo Rodríguez Diego Rivero.
Page 28: Integrantes: Marcelo Caponi Pablo Rodriguez Pablo Zamudio Tutores: Leonardo Rodríguez Diego Rivero.
Page 29: Integrantes: Marcelo Caponi Pablo Rodriguez Pablo Zamudio Tutores: Leonardo Rodríguez Diego Rivero.