Соединитель Java EE для доставки в EJB вместо MDB - PullRequest
0 голосов
/ 11 января 2012

Я пишу адаптер входящего ресурса (модуль коннектора) на Glassfish 3.1, и в примерах Java EE SDK я заметил, что MDB используется для доставки сообщений из EIS в приложения Glassfish. Необходимо ли использовать MDB, если целевой объект является EJB? Было бы разумно выполнить поиск JNDI для целевого EJB и доставить его напрямую, полностью избегая MDB?

Спасибо!

1 Ответ

3 голосов
/ 11 января 2012

В последнем случае вы выполняете синхронную операцию, тогда как первый подход - асинхронный.В сценариях интеграции между приложениями (A2A) почти всегда хорошее решение реализовать асинхронный интерфейс.Об этом много написано, позвольте мне просто сослаться на саму документацию по Java , например, раздел 6.3.3:

При разработке приложения вам нужно решить, стоит лииспользовать синхронную или асинхронную интеграцию с целевыми EIS и существующими приложениями.Оба подхода синхронной и асинхронной интеграции действительны для интеграции приложений, и выбор должен быть основан на требованиях интеграции и случаях использования.Основывайте свое решение на следующих рекомендациях.

  • Требуемое качество услуг - использование очереди или системы публикации-подписки обеспечивает более высокое качество услуг, таких как маршрутизация сообщений и надежная доставка сообщений, чем синхронная связь.
  • Пропускная способность приложения - асинхронный обмен сообщениями может привести к повышению пропускной способности, поскольку очередь буферизует сообщения, поддерживает маршрутизацию сообщений и гарантирует доставку сообщений.
  • Транзакционная интеграция - модель синхронной связи больше подходит, когда приложение должно выполнятьбезопасный и транзакционный доступ к одной или нескольким EIS синхронно для обработки клиентских запросов.В таких случаях приложение может позволить себе более жесткую связь с EIS для обеспечения более качественной обработки запросов и обработки ошибок.
  • Сложность модели программирования - модель программирования асинхронной связи является более сложной, чем более распространенный синхронный запросмодель ответа.В то время как асинхронная модель предоставляет больше сервисов, стоимость усложняется приложениями и требует больше работы со стороны разработчиков.

В заключение, возможно, в этом нет необходимости, но может быть целесообразно реализоватьMDB.

...