Подтвердить что ты не робот

В чем разница между канальным адаптером и шаблоном шлюза обмена сообщениями?

Независимо от того, насколько я читал об этих двух шаблонах, я просто не вижу разницы.

4b9b3361

Ответ 1

Это отличный вопрос, так как они похожи на то, что они обеспечивают доступ приложения к системе обмена сообщениями. Это то, как они достигают этого, я думаю, это отличает их.

Шаблон адаптера канала описывает, как получить данные из существующей системы без изменения этой системы. Как правило, адаптера канала реализована вне процесса. Часто встречаются примеры программ, которые периодически просматривают базовую базу данных, чтобы найти вещи в очереди. Возможно, автономное приложение, которое вызывает удаленный или HTTP API для доступа к системным данным для создания сообщений. Дело в том, что система без обмена сообщениями полностью не модифицирована.

Я думаю, что Message Gateway больше предназначен для интеграции в процесс обмена сообщениями. Речь идет о применении хорошей OO-инкапсуляции вокруг подсистемы сообщений. Возможно, какой-то объект в системе называется WorkOrderSender с помощью метода Send (WorkOrder wo). Реализация этого класса защищает приложение от любых деталей обмена сообщениями... к нему вызов - это еще один вызов метода. Фактически, должно быть возможно обменять поставщика сообщений или даже обмен сообщениями для HTTP или FTP и т.д.

Ответ 2

Канал Адаптер подключает приложение к системе обмена сообщениями.

  • Адаптер канала размещается в начале и в конце однонаправленного потока сообщений.
  • Адаптер канала применяется к любому однонаправленному входящему или исходящему адаптеру.
  • Другими словами, адаптер входящего канала поддерживает обмен сообщениями в режиме "только в одном", а адаптер исходящего канала поддерживает обмен только с выходом.

Любой адаптер двунаправленный или запрос-ответ известен как Шлюз.

  • Если входящий запрос должен обслуживаться несколькими потоками, но вызывающий должен оставаться не осведомленным о системе обмена сообщениями, входящий шлюз предоставляет решение.
  • В исходящей стороне входящее сообщение может использоваться в синхронном вызове, и результат отправляется по каналу ответа. Например, исходящие шлюзы могут использоваться для вызова веб-служб и для синхронных взаимодействий request-reply через JMS.

Ответ 3

Из Spring справочных документов интеграции:

В то время как адаптеры канала JMS предназначены для однонаправленных сообщений (только для отправки или получения), Spring Интеграция также обеспечивает входящие и исходящие JMS-шлюзы для операций запроса/ответа.

См. http://static.springsource.org/spring-integration/reference/htmlsingle/#jms