Patrones de Integración

Documentos relacionados
Consumo de Servicios RESTful (II)

Integración de datos

Modelado de Arquitectura Software

Introducción a la Integración Software

BLOQUE II: Integración de Sistemas Software. Integración Web. Arquitectura e Integración de Sistemas Software Curso 2012/2013.

Arquitectura Web. Arquitectura e Integración de Sistemas Software Curso 2012/2013. Índice

Desarrollo de Aplicaciones con GWT (I)

Pruebas de Integración

Consumo de Servicios RESTful (III)

Introducción a las Aplicaciones Web

2. APROXIMACIÓN A SOA: EL ESB

Introducción a la Arquitectura del Software

TEMA2: REDES INFORMÁTICAS

1 Introducción. 2 Que es una Red de Ordenadores

Tema 2 Redes e Internet

Hub, switch y Routers son nombres dados a dispositivos de hardware que posibilitan la conexión de computadores a redes.

BROKER Publicador Suscriptor. Jonnathan Corredor Lorena Arrieta Alejandro Mosquera

Conceptos de DBMS Y Arquitectura

PIPES & FILTERS. Lorena Arrieta Jonnathan Corredor Alejandro Mosquera

SWITCHE. SILVIO RADA RODRÍGUEZ Ingeniero de Sistemas

Integración de Aplicaciones *

Unidad 2 La red informática

Greetings. Lists and TPR Sheets The Enlightened Elephant

Control interno del flujo de un programa 1-14

TEMA 6: CORREO ELECTRÓNICO

3. Topologías 3.1 En canal.

Contenido OFFICE CORPORATIVO

. Envia un paquete de datos con eco, que se envia a un dispositivo de red para que este emita una respuesta

HERRAMIENTAS DE COMUNICACIÓN DE VEHÍCULO VIDA ALL-IN-ONE

Repaso de funciones exponenciales y logarítmicas. Review of exponential and logarithmic functions

Establecimiento de la reserva de recursos

Enterprise Integration Patterns. Apache Camel. Domingo Suárez Torres CTO SynergyJ

2. Cuál de los siguientes protocolos es usado en la Telnet: a). FTP b).tcp/ip c). NFS d). LAPB

Protocolos de Comunicación Construcción de datagrama versión 1.0

HIGH IMPACT PRESENTATIONS PRESENTACIONES DE ALTO IMPACTO

PANORAMA GENERAL DE LOS µc

Unidad III. Servicios e Interconexión

Los números. 0 cero 1 uno / un 2 dos 3 tres 4 cuatro. 6 seis 7 siete 8 ocho 9 nueve 10 diez 5 cinco

Diseño de sitios web administrables con Joomla 3

2. Fundamentos de Tecnologías de Información. 2.5 Telecomunicaciones y Redes

Métodos para el diseño de soluciones

3 Interfaz PC DSP. 3.1 Introducción a las comunicaciones serie. 3 Interfaz PC DSP

Impresión de Google Drive. Guía del administrador

Objetivos y Temario CURSO PHP Y MySQL

Creación de Soluciones usando Patrones

Java EE 6: Desarrollo de componentes de negocio con JMS y EJBs


UNIVERSIDAD NACIONAL DEL CALLAO

Modelo OSI y TCP/IP. Teleprocesamiento Ing. Zoila Marquez.

PHP y MySQL Domine el desarrollo de un sitio Web dinámico e interactivo (3ª edición)

Redes Unix 1.- Arquitectura de protocolos de Internet El nivel de red.

Ingreso a DatAcademy mediante Telefónica Accounts. Versiones: Español / Ingles Guía de usuario / User Guide

Capítulo 7 El Futuro de la Automatización de Subestaciones

Versión 28/02/11 aplicación transporte red Redes Privadas enlace física

Pregunta 1 Suponga que una muestra de 35 observaciones es obtenida de una población con media y varianza. Entonces la se calcula como.

Arquitectura de Computadoras

FUNDAMENTOS DE REDES CONCEPTOS DE LA CAPA DE RED

Oracle Database 12c SQL and PLSQL Fundamentals

Youjie YJ HF600. Guía de inicio rápido. Lector de Area Imagen. YJ-HF600-ESES-QS Rev A 5/16

20480 Programación en HTML5 con JavaScript y CSS3

MVC (Model-View-Controller)

10.1 PLANIFICAR LA GESTIÓN DE LAS COMUNICACIONES

Arquitectura de computadores I

GUÍAS FÁCILES DE LAS TIC

Vamos a definir un ordenador, lo que hay en la diapositiva son ordenadores, algunos más especializados que otros, pero todos son ordenadores.

SISTEMAS ELECTRÓNICOS DIGITALES

Servicio de Reclamos Amadeus Guía Rápida

Aprovechar las capacidades nativas de los dispositivos. Diseño y experiencia de usuario nativa. Seguridad y reportes automáticos e integrales

EQUIPO DE INTERCONEXION ROUTER

FACEBOOK ES EL MENSAJE PDF

Investiga cuales son los dispositivos y manejadores de dispositivos mediante conceptos e imágenes.

Transcripción:

Departamento de Lenguajes y Sistemas Informáticos BLOQUE II: Integración de Sistemas Software Patrones de Integración Tema 9 Arquitectura e Integración de Sistemas Software Curso 2012/2013 1

Introducción Ejemplo Una empresa quiere hacer que varias de sus herramientas trabajen juntas ofreciendo una nueva funcionalidad. Han decidido usar mensajería para llevar a cabo la integración. Problemas: Cómo diseñar una solución adecuada? Cómo describir la solución de integración? 2

Introducción Una idea! Usar un conjunto de soluciones predefinidas para problemas recurrentes (patrones). Usar un vocabulario consistente y una notación visual para describir soluciones de integración a gran escala e independientes de la tecnología usada. Introducción Un patrón es una solución general para un problema que aparece con frecuencia en un dominio determinado. Un patrón no es una solución completa sino un una guía/esqueleto que debe ser adaptado para cada problema específico. Idea intuitiva: Cuando te encuentres este problema, aplica esta solución. Problema Solución 3

Introducción Introducción 4

Patrones básicos Canales de mensajes Construcción de mensajes Enrutamiento de mensajes Manipulación de mensajes Extremos de mensajería Gestión del sistema Resumen Message channel Cómo puede una aplicación comunicarse con otra usando mensajería? Conectar la aplicación usando un canal de mensajes (message channel), donde una aplicación escribe información en un extremo del canal y la otra lee la información en el otro extremo. 5

Message (I) Cómo pueden dos aplicaciones conectadas por un canal de mensajes intercambiar información? Empaquetar la información en un mensaje (message), un conjunto de datos que el sistema de mensajería puede transmitir a través de un canal de mensajes. Message (II) Un mensaje consta de dos partes básicas: Cabecera. Información usada por el sistema de mensajería para describir los datos que se están transmitiendo (origen, destino, etc.) Cuerpo. Contenido del mensaje. Generalmente es ignorado por el sistema de mensajería y es enviado tal cual. Este sistema es similar al usado en las redes de comunicaciones. 6

Pipes and filters Cómo podemos ejecutar tareas de procesamiento complejas sobre un mensaje manteniendo la independencia y la flexibilidad? Usar el estilo arquitectónico tuberías y filtros (pipes and filters) para dividir tareas de procesamiento largas en una secuencia de pasos pequeños e independientes (filtros) que son conectados por canales de mensajes (tuberías). Message router Cómo podemos desacoplar pasos de procesamiento individuales de manera que los mensajes puedan pasar por distintos filtros dependiendo de una serie de condiciones? Insertar un tipo especial de filtro, enrutador de mensajes (message router), que consume un mensaje de un canal de mensajes y lo redirige a diferentes canales en función de una serie de condiciones. 7

Message translator Cómo pueden sistemas con formatos de datos diferentes comunicarse entre sí usando mensajería? Usar un tipo especial de filtro, un traductor de mensajes (message translator), entre otros filtros o aplicaciones para traducir de un formato a otro. Message endpoint Cómo puede una aplicación conectarse un canal de mensajes para enviar y recibir mensajes? Conectar la aplicación a un canal de mensajes usando un extremo de mensajería (message endpoint), un cliente del sistema de mensajería que la aplicación puede usar para enviar y recibir mensajes. 8

Patrones básicos Canales de mensajes Construcción de mensajes Enrutamiento de mensajes Manipulación de mensajes Extremos de mensajería Gestión del sistema Resumen Point-to-point channel Cómo puede la aplicación que envia el mensaje estar segura de que sólo un receptor recibirá el mensaje? Enviar el mensaje usando un canal punto a punto (point-to-point channel), para asegurar que sólo un receptor recibirá el mensaje. 9

Publish-suscribe channel Cómo puede un emisor enviar un evento a todos los receptores interesados? Enviar el evento a través de un canal publicar-suscribir (publish-subscribe channel), que entrega una copia del evento a cada receptor interesado en el mismo. Channel adapter Cómo podemos conectar una aplicación cerrada a un sistema de mensajería de manera que pueda enviar y recibir mensajes? Usar un adaptador (channel adapter) que puede acceder a la API o los datos de la aplicación y publicar mensajes con esos datos en el canal. Así mismo, el adaptador permitirá recibir mensajes e invocar funcionalidad de la aplicación. 10

Message bus Qué arquitectura permite a aplicaciones trabajar juntas pero de una forma desacoplada de manera que las aplicaciones puedan ser añadidas o eliminadas sin afectar a las otras? Estructurar las aplicaciones haciendo uso de un bus de mensajes (Message Bus) que les permita trabajar juntas usando mensajería. Patrones básicos Canales de mensajes Construcción de mensajes Enrutamiento de mensajes Manipulación de mensajes Extremos de mensajería Gestión del sistema Resumen 11

Command message Cómo puede usarse la mensajería para invocar a un procedimiento de otra aplicación? Usar un mensaje comando (command message) para invocar a un procedimiento de otra aplicación. Document message Cómo puede la mensajería utilizarse para transferir datos entre aplicaciones? Usar un mensaje documento (document message) para transferir datos entre aplicaciones. 12

Event message Cómo puede usarse la mensajería para transmitir eventos entre aplicaciones? Usar un mensaje evento (event message) para la notificación asíncrona de eventos entre aplicaciones. Patrones básicos Canales de mensajes Construcción de mensajes Enrutamiento de mensajes Manipulación de mensajes Extremos de mensajería Gestión del sistema Resumen 13

Message filter Cómo puede una aplicación evitar recibir determinados mensajes? Usar un filtro de mensajes (message filter), para eliminar mensajes no deseados de un canal de acuerdo a unos criterios dados. Splitter Cómo podemos procesar un mensaje que contiene múltiples elementos, cada uno de los cuales tiene que ser procesado de una forma diferente? Usar un divisor (splitter) para dividir el mensaje compuesto en un conjunto de mensajes individuales donde cada mensaje contendrá datos que deben ser procesados de forma diferente. 14

Aggregator Cómo podemos combinar mensajes individuales de manera que puedan ser procesados como un todo? Usar un filtro con estado, un agregador (aggregator), para recibir y almacenar mensajes individuales que posteriormente son fusionados en uno sólo. Patrones básicos Canales de mensajes Construcción de mensajes Enrutamiento de mensajes Manipulación de mensajes Extremos de mensajería Gestión del sistema Resumen 15

Content enricher Cómo podemos comunicar una aplicación con otra si el mensaje de origen no tiene toda la información requerida por la aplicación destino? Usar un tipo específico de transformador, un enriquecedor de contenido (content enricher), para acceder a una fuente de datos externos y añadir información adicional al mensaje. Content filter Cómo podemos simplificar el trabajo con un mensaje grande cuando sólo nos interesa parte del contenido? Usar un filtro de contenido (Content Filter) para eliminar los datos no deseados del mensaje. 16

Patrones básicos Canales de mensajes Construcción de mensajes Enrutamiento de mensajes Manipulación de mensajes Extremos de mensajería Gestión del sistema Resumen Messaging gateway Cómo podemos encapsular el acceso al sistema de mensajería desde el resto de la aplicación? Usar un punto de acceso (messaging gateway), un elemento que envuelve a los métodos del sistema de mensajería y expone métodos específicos del dominio a la aplicación. 17

Message dispatcher Cómo pueden múltiples consumidores en un único canal coordinarse para procesar los mensajes? Crear un distribuidor de mensajes (message dispatcher) que consuma los mensajes del canal y los distribuya entre los responsables de procesarlos. Patrones básicos Canales de mensajes Construcción de mensajes Enrutamiento de mensajes Manipulación de mensajes Extremos de mensajería Gestión del sistema Resumen 18

Control Bus Cómo podemos administrar eficientemente un sistema de mensajería distribuido? Usar un bus de control (control bus) para gestionar una solución de integración. El bus usa los mismos mecanismos que el sistema de mensajería pero usa sus propios canales y mensajes para transmitir datos relevantes para la gestión y monitorización del sistema. Patrones básicos Canales de mensajes Construcción de mensajes Enrutamiento de mensajes Manipulación de mensajes Extremos de mensajería Gestión del sistema Resumen 19

Resumen Categoría Patrones básicos Canales de mensajes Construcción de mensajes Enrutamiento de mensajes Manipulación de mensajes Extremos de mensajería Gestión del sistema Patrones Message channel Message Pipes and filters Message router Message translator Message endpoint Point-to-Point channel Publish-suscribe channel Channel adapter Message bus Command message Document message Event message Message filter Splitter Aggregator Content enricher Content filter Messaging gateway Messaging dispatcher Control bus 20

Bibliografía Gregor Hohpe, Bobby Woolf. Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions http://www.eaipatterns.com/ Disclaimer and Terms of Use All material displayed onthis presentation is for teaching and personal use only. Many of the images that have been used in the presentation are Royalty Free images taken from http://www.everystockphoto.com/. Other images have been sourced directly from the Public domain, from where in most cases it is unclear whether copyright has been explicitly claimed. Our intention is not to infringe any artist s copyright, whether written or visual. We do not claim ownership of any image that has been freely obtained from the public domain. In the event that we have freely obtained an image or quotation that has been placed in the public domain and in doing so have inadvertently used a copyrighted image without the copyright holder s express permission we ask that the copyright holder writes to us directly, upon which we will contact the copyright holder to request full written permission to use the quote or images. 21