¿Cuál es la diferencia entre un adaptador de canal y un patrón de puerta de enlace de mensajería?


No importa cuánto lea sobre esos dos patrones, simplemente no puedo ver la diferencia.

Author: tcarvin, 2011-11-11

3 answers

Esa es una gran pregunta, ya que son similares en que proporcionan una aplicación de acceso a un sistema de mensajería. Creo que es la forma en que lo conciben lo que los diferencia.

El patrón de adaptador de canal se ocupa de cómo obtener datos de un sistema existente sin modificar ese sistema. Por lo general, el adaptador de canal se implementa fuera de proceso. Los ejemplos que se ven a menudo son un programa que recorre periódicamente una base de datos subyacente para encontrar cosas para enqueue. De tal vez una aplicación independiente que llama a una API remota o HTTP para acceder a los datos de un sistema para crear mensajes. El punto es, que el sistema de no mensajería está completamente sin modificaciones.

Creo que Message Gateway está más pensado para la integración de mensajería en proceso. Realmente se trata de aplicar una buena encapsulación de OO alrededor del subsistema de mensajes. Tal vez algún objeto en el sistema se llama WorkOrderSender con un método llamado Send(WorkOrder wo). La implementación de esa clase protege la aplicación de cualquier detalles de messaging...to es la llamada es solo otra llamada de método. De hecho, debería ser posible intercambiar su proveedor de mensajería o incluso intercambiar mensajes por HTTP o FTP, etc.

 16
Author: tcarvin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-11-11 13:01:08

Un canal Adaptador conecta una aplicación al sistema de mensajería.

  • Un adaptador de canal se coloca al comienzo y al final de un flujo de mensaje unidireccional.
  • Adaptador de canal se aplica a cualquier unidireccional adaptador de entrada o de salida.
  • En otras palabras, un adaptador de canal entrante admite un intercambio de solo entrada mensaje
    , y un adaptador de canal saliente admite un intercambio de solo salida intercambio.

Cualquiera bidireccional, o solicitud-respuesta, el adaptador se conoce como Puerta de enlace.

  • Si una solicitud entrante necesita ser atendida por múltiples subprocesos, pero el invocador necesita permanecer inconsciente del sistema de mensajería, una puerta de enlace entrante proporciona la solución.
  • En el lado saliente, se puede usar un mensaje entrante en una invocación síncrona, y el resultado se envía en el canal de respuesta. Por ejemplo, las puertas de enlace salientes se pueden usar para invocar servicios web y para interacciones síncronas de solicitud y respuesta a través de JMS.
 18
Author: Dirk Hoffmann,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-11-28 14:49:36

De los documentos de referencia de la integración de Spring:

Mientras que los adaptadores de canal JMS están diseñados para Mensajería unidireccional (solo envío o solo recepción), la integración de Spring también proporciona puertas de enlace JMS entrantes y salientes para operaciones de solicitud/respuesta.

Véase http://static.springsource.org/spring-integration/reference/htmlsingle/#jms

 2
Author: emush,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-12-09 22:10:23