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:
- Transferencia de archivos
- Base de datos compartida
- Invocación de procedimiento remoto
- 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?
¿Cómo podemos realizar un procesamiento complejo en un mensaje manteniendo la independencia y la flexibilidad?
¿Cómo puede desacoplar los pasos de procesamiento individuales para que los mensajes puedan pasar a diferentes filtros según un conjunto de condiciones?
¿Cómo pueden los sistemas que utilizan diferentes formatos de datos comunicarse entre sí mediante mensajería?
¿Cómo se conecta una aplicación a un canal de mensajería para enviar y recibir mensajes?
CANALES DE MENSAJERÍA
¿Cómo puede la persona que llama estar segura de que exactamente un receptor recibirá el documento o realizará la llamada?
¿Cómo puede el remitente transmitir un evento a todos los receptores interesados?
¿Qué hará el sistema de mensajería con un mensaje que no puede entregar?
¿Cómo puede el remitente asegurarse de que se entregará un mensaje, incluso si falla el sistema de mensajería?
¿Cómo se puede conectar una aplicación al sistema de mensajería para que pueda enviar y recibir mensajes?
¿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?
¿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?
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
¿Cómo se puede usar la mensajería para transmitir eventos de una aplicación a otra?
Cuando una aplicación envía un mensaje, ¿cómo puede obtener una respuesta del receptor?
¿Cómo sabe un contestador dónde enviar la respuesta?
¿Cómo sabe un solicitante que ha recibido una respuesta para qué solicitud es la respuesta?
¿Cómo puede un remitente indicar cuándo un mensaje debe considerarse obsoleto y, por lo tanto, no debe procesarse?
ENRUTAMIENTO DE MENSAJES
¿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?
¿Cómo puede un componente evitar recibir mensajes poco interesantes?
¿Cómo puede evitar la dependencia del enrutador en todos los destinos posibles mientras mantiene su eficiencia?
¿Cómo enrutamos un mensaje a una lista de destinatarios específicos (estáticos o dinámicos)?
¿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?
¿Cómo combinamos los resultados de mensajes individuales pero relacionados para que puedan ser procesados como un todo?
¿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?
¿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?
¿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?
¿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?
¿Cómo puede desvincular el destino de un mensaje del remitente y mantener un control central sobre el flujo de mensajes?
¿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?
¿Cómo puedo probar un mensaje de muchos en un período determinado para evitar que la ruta descendente no se sobrecargue?
¿Cómo puedo retrasar el envío de un mensaje?
¿Cómo puedo equilibrar la carga entre varios puntos finales?
¿Cómo puedo dejar de llamar a un servicio externo si el servicio está roto?
¿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?
¿Cómo puedo definir una serie de acciones relacionadas en una ruta de Camel que deben completarse con éxito (todas) o no ejecutarse/compensarse?
¿Cómo puedo enrutar un mensaje a varios puntos finales al mismo tiempo?
¿Cómo puedo repetir el procesamiento de un mensaje en un bucle?
TRANSFORMACIÓN DE MENSAJES
¿Cómo nos comunicamos con otro sistema si el remitente del mensaje no tiene todos los elementos de datos necesarios disponibles?
¿Cómo simplifica el manejo de un mensaje grande, cuando solo está interesado en unos pocos elementos de datos?
¿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?
¿Cómo procesa mensajes que son semánticamente equivalentes, pero llegan en un formato diferente?
¿Cómo puedo ordenar el cuerpo de un mensaje?
¿Cómo ejecuto un script que no puede cambiar el mensaje?
¿Cómo puedo validar un mensaje?
PUNTOS FINALES DE MENSAJERÍA
¿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?
¿Cómo puede una aplicación consumir un mensaje cuando la aplicación está lista?
¿Cómo puede un cliente de mensajería procesar varios mensajes al mismo tiempo?
¿Cómo pueden múltiples consumidores en un solo canal coordinar su procesamiento de mensajes?
¿Cómo puede un consumidor de mensajes seleccionar qué mensajes desea recibir?
¿Cómo puede un suscriptor evitar perder mensajes mientras no los está escuchando?
¿Cómo puede un receptor de mensajes lidiar con mensajes duplicados?
¿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?
¿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
¿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?
¿Cómo puede enrutar un mensaje a través de pasos intermedios para realizar funciones de validación, prueba o depuración?
¿Cómo inspecciona los mensajes que viajan en un canal punto a punto?
¿Cómo podemos analizar y depurar de manera efectiva el flujo de mensajes en un sistema débilmente acoplado?
¿Cómo puedo registrar el procesamiento de un mensaje?
Steps agrupa un conjunto de EIP en una unidad lógica compuesta para métricas y monitoreo.