Tutorial de patrones de integración empresarial (EIP)

Enterprise Integration Patterns  (EIP) es un libro de Gregor Hohpe y Bobby Woolf y describe 65 patrones para el uso de la integración de aplicaciones empresariales orientado a mensajes en forma de un lenguaje de patrones. Nos ayudan a usar formas estandarizadas para integrar aplicaciones, sin necesidad de reinventar la rueda cada vez que tenga un problema.

El objetivo de los patrones de integración empresarial es crear un lenguaje común y un conjunto de acciones de flujo de trabajo para combinarlas y crear un proceso comercial maduro y práctico. Proporciona un catálogo de sesenta y cinco patrones que lo ayudan a diseñar soluciones de mensajería efectivas para su empresa.

El libro distingue cuatro alternativas de alto nivel para la integración:

  1. Transferencia de archivos
  2. Base de datos compartida
  3. Invocación de procedimiento remoto
  4. Mensajería

Se introducen los siguientes tipos de integración:

  • Portal de información
  • Replicación de datos
  • Función comercial compartida
  • Arquitectura orientada a Servicios
  • Proceso de negocio distribuido
  • Integración de empresa a empresa
  • Interacción estrechamente acoplada frente a interacción débilmente acoplada

Dibuje un diagrama de patrón de integración empresarial con una herramienta en línea gratuita

La herramienta gratuita Enterprise Integration Patterns (herramienta de diagrama EIP) de Visual Paradigm   presenta un conjunto de funciones de edición que simplifican y aceleran la creación de diagramas, como arrastrar y soltar y la guía de alineación, que hacen que la edición sea fluida e intuitiva. La herramienta de diagrama EIP también viene con un conjunto de símbolos y formas EIP que le permiten crear diferentes tipos de diagramas EIP.

Puede desarrollar fácilmente sus patrones y luego exportarlos y compartirlos a través de formatos como PNG, JPG, GIF, SVG y PDF.

Aprenda EIP con ejemplos y plantillas

Puede comenzar con un diagrama en blanco o una plantilla EIP. Las siguientes son algunas de las plantillas. Haga clic en el botón Editar para comenzar a editar de inmediato. Es gratis y no es necesario registrarse.

Ejemplo de patrón de integración empresarial: proxy inteligente

Edite instantáneamente en línea

Ejemplo de patrón de integración empresarial: Mensajería compuesta MSMQ

Edite el ejemplo anterior en línea

¿Quiere adoptar otros patrones de integración empresarial?

Repositorio de edición en línea EIP  de  Visual Paradigm

Marco de implementación para los EIP

Apache Camel  es compatible con la mayoría de los  patrones de integración empresarial  del excelente libro de Gregor Hohpe y Bobby Woolf. Basado en patrones de integración empresarial (EIP) para ayudarlo a resolver su problema de integración mediante la aplicación de las mejores prácticas listas para usar. Camel admite la mayoría de los patrones de integración empresarial del excelente libro de Gregor Hohpe y Bobby Woolf, y los patrones de integración más nuevos de las  arquitecturas de microservicios .

Si es nuevo en Camel, tal vez quiera probar los  Primeros pasos  en la Guía del usuario antes de intentar implementar estos patrones.

SISTEMAS DE MENSAJERÍA

Canal de mensajes

¿Cómo se comunica una aplicación con otra mediante mensajería?

Mensaje

¿Cómo pueden dos aplicaciones conectadas por un canal de mensajes intercambiar información?

Tuberías y Filtros

¿Cómo podemos realizar un procesamiento complejo en un mensaje manteniendo la independencia y la flexibilidad?

Enrutador de mensajes

¿Cómo puede desacoplar los pasos de procesamiento individuales para que los mensajes puedan pasar a diferentes filtros según un conjunto de condiciones?

Traductor de mensajes

¿Cómo pueden los sistemas que utilizan diferentes formatos de datos comunicarse entre sí mediante mensajería?

Extremo del mensaje

¿Cómo se conecta una aplicación a un canal de mensajería para enviar y recibir mensajes?

CANALES DE MENSAJERÍA

Canal punto a punto

¿Cómo puede la persona que llama estar segura de que exactamente un receptor recibirá el documento o realizará la llamada?

Publicar Suscribirse Canal

¿Cómo puede el remitente transmitir un evento a todos los receptores interesados?

Canal de letra muerta

¿Qué hará el sistema de mensajería con un mensaje que no puede entregar?

Entrega garantizada

¿Cómo puede el remitente asegurarse de que se entregará un mensaje, incluso si falla el sistema de mensajería?

Adaptador de canal

¿Cómo se puede conectar una aplicación al sistema de mensajería para que pueda enviar y recibir mensajes?

Puente de mensajería

¿Cómo se pueden conectar varios sistemas de mensajería para que los mensajes disponibles en uno también estén disponibles en los demás?

Autobús de mensajes

¿Qué es una arquitectura que permite que aplicaciones separadas funcionen juntas, pero de forma desacoplada, de modo que las aplicaciones se puedan agregar o eliminar fácilmente sin afectar a las demás?

Cambiar la captura de datos

Sincronización de datos al capturar los cambios realizados en una base de datos y aplicar esos cambios a otro sistema.

CONSTRUCCIÓN DEL MENSAJE

Mensaje de evento

¿Cómo se puede usar la mensajería para transmitir eventos de una aplicación a otra?

Solicitar respuesta

Cuando una aplicación envía un mensaje, ¿cómo puede obtener una respuesta del receptor?

Dirección del remitente

¿Cómo sabe un contestador dónde enviar la respuesta?

Identificador de correlación

¿Cómo sabe un solicitante que ha recibido una respuesta para qué solicitud es la respuesta?

Caducidad del mensaje

¿Cómo puede un remitente indicar cuándo un mensaje debe considerarse obsoleto y, por lo tanto, no debe procesarse?

ENRUTAMIENTO DE MENSAJES

Enrutador basado en contenido

¿Cómo manejamos una situación en la que la implementación de una sola función lógica (p. ej., verificación de inventario) se distribuye en múltiples sistemas físicos?

Filtro de mensajes

¿Cómo puede un componente evitar recibir mensajes poco interesantes?

Enrutador dinámico

¿Cómo puede evitar la dependencia del enrutador en todos los destinos posibles mientras mantiene su eficiencia?

Lista de recipientes

¿Cómo enrutamos un mensaje a una lista de destinatarios específicos (estáticos o dinámicos)?

Disidente

¿Cómo podemos procesar un mensaje si contiene múltiples elementos, cada uno de los cuales puede tener que ser procesado de una manera diferente?

agregador

¿Cómo combinamos los resultados de mensajes individuales pero relacionados para que puedan ser procesados ​​como un todo?

resecuenciador

¿Cómo podemos hacer que un flujo de mensajes relacionados pero fuera de secuencia vuelvan al orden correcto?

Procesador de mensajes compuestos

¿Cómo puede mantener el flujo general de mensajes cuando procesa un mensaje que consta de varios elementos, cada uno de los cuales puede requerir un procesamiento diferente?

Dispersión-recopilación

¿Cómo se mantiene el flujo general de mensajes cuando se debe enviar un mensaje a varios destinatarios, cada uno de los cuales puede enviar una respuesta?

Hoja de enrutamiento

¿Cómo enrutamos un mensaje consecutivamente a través de una serie de pasos de procesamiento cuando la secuencia de pasos no se conoce en el momento del diseño y puede variar para cada mensaje?

Gestor de procesos

¿Cómo enrutamos un mensaje a través de varios pasos de procesamiento cuando es posible que los pasos necesarios no se conozcan en el momento del diseño y no sean secuenciales?

Agente de mensajes

¿Cómo puede desvincular el destino de un mensaje del remitente y mantener un control central sobre el flujo de mensajes?

acelerador

¿Cómo puedo acelerar los mensajes para garantizar que un punto final específico no se sobrecargue o que no excedamos un SLA acordado con algún servicio externo?

Muestreo

¿Cómo puedo probar un mensaje de muchos en un período determinado para evitar que la ruta descendente no se sobrecargue?

Retrasante

¿Cómo puedo retrasar el envío de un mensaje?

Equilibrador de carga

¿Cómo puedo equilibrar la carga entre varios puntos finales?

Cortacircuitos

¿Cómo puedo dejar de llamar a un servicio externo si el servicio está roto?

Llamada de servicio

¿Cómo puedo llamar a un servicio remoto en un sistema distribuido donde el servicio se busca desde algún tipo de registro de servicio?

Saga

¿Cómo puedo definir una serie de acciones relacionadas en una ruta de Camel que deben completarse con éxito (todas) o no ejecutarse/compensarse?

multidifusión

¿Cómo puedo enrutar un mensaje a varios puntos finales al mismo tiempo?

Lazo

¿Cómo puedo repetir el procesamiento de un mensaje en un bucle?

TRANSFORMACIÓN DE MENSAJES

Enriquecedor de contenido

¿Cómo nos comunicamos con otro sistema si el remitente del mensaje no tiene todos los elementos de datos necesarios disponibles?

Filtro de contenido

¿Cómo simplifica el manejo de un mensaje grande, cuando solo está interesado en unos pocos elementos de datos?

Cheque de reclamación

¿Cómo podemos reducir el volumen de datos de los mensajes enviados a través del sistema sin sacrificar el contenido de la información?

normalizador

¿Cómo procesa mensajes que son semánticamente equivalentes, pero llegan en un formato diferente?

Clasificar

¿Cómo puedo ordenar el cuerpo de un mensaje?

Texto

¿Cómo ejecuto un script que no puede cambiar el mensaje?

Validar

¿Cómo puedo validar un mensaje?

PUNTOS FINALES DE MENSAJERÍA

Asignador de mensajes

¿Cómo mueve los datos entre los objetos del dominio y la infraestructura de mensajería mientras los mantiene independientes entre sí?

Consumidor impulsado por eventos

¿Cómo puede una aplicación consumir mensajes automáticamente a medida que están disponibles?

Consumidor de sondeo

¿Cómo puede una aplicación consumir un mensaje cuando la aplicación está lista?

Consumidores Competidores

¿Cómo puede un cliente de mensajería procesar varios mensajes al mismo tiempo?

Despachador de mensajes

¿Cómo pueden múltiples consumidores en un solo canal coordinar su procesamiento de mensajes?

Consumidor Selectivo

¿Cómo puede un consumidor de mensajes seleccionar qué mensajes desea recibir?

Suscriptor duradero

¿Cómo puede un suscriptor evitar perder mensajes mientras no los está escuchando?

Consumidor idempotente

¿Cómo puede un receptor de mensajes lidiar con mensajes duplicados?

Cliente Transaccional

¿Cómo puede un cliente controlar sus transacciones con el sistema de mensajería?

Puerta de enlace de mensajería

¿Cómo encapsula el acceso al sistema de mensajería desde el resto de la aplicación?

Activador de servicio

¿Cómo puede una aplicación diseñar un servicio para ser invocado tanto a través de varias tecnologías de mensajería como a través de técnicas que no son de mensajería?

GESTIÓN DEL SISTEMA

ControlBus

¿Cómo podemos administrar de manera efectiva un sistema de mensajería que se distribuye a través de múltiples plataformas y un área geográfica amplia?

Desvío

¿Cómo puede enrutar un mensaje a través de pasos intermedios para realizar funciones de validación, prueba o depuración?

Grifo de alambre

¿Cómo inspecciona los mensajes que viajan en un canal punto a punto?

Historial de mensajes

¿Cómo podemos analizar y depurar de manera efectiva el flujo de mensajes en un sistema débilmente acoplado?

Tronco

¿Cómo puedo registrar el procesamiento de un mensaje?

Paso

Steps agrupa un conjunto de EIP en una unidad lógica compuesta para métricas y monitoreo.

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.