Java EE Connector, доставляющий EJB вместо MDB
-
27-10-2019 - |
Вопрос
Я пишу входящий адаптер ресурсов (модуль разъема) на Glassfish 3.1, и я заметил в образцах Java EE SDK, что MDB используется для доставки сообщений из приложений EIS в Glassfish. Необходимо ли использовать MDB, если целевой объект является EJB? Было бы разумно сделать поиск JNDI для целевого EJB и доставить его напрямую, что вообще избегает MDB?
Спасибо!
Решение
В последнем случае вы выполняете синхронную операцию, тогда как первый подход является асинхронным. В сценариях интеграции приложения к приложению (A2A) почти всегда является хорошим решением реализовать асинхронный интерфейс. Много было написано об этом, позвольте мне обратиться к Ява сама документация, например, раздел 6.3.3:
При разработке вашего приложения вам необходимо решить, использовать ли синхронная или асинхронная интеграция с его целевыми EISES и существующими приложениями. Как синхронная, так и асинхронная интеграционная подходы действительны для интеграции приложений, и выбор должен основываться на требованиях к интеграции и вариантам использования. Основыте свое решение на следующих рекомендациях.
- Требуется качество услуг. Использование очереди или системы Publish-Subscribe обеспечивает более высокое качество услуг, таких как маршрутизация сообщений и надежная доставка сообщений, чем синхронные сообщения.
- Пропускная способность приложения-Асинхронный обмен сообщениями может привести к лучшей пропускной способности, поскольку очередь буферирует сообщения, поддерживает маршрутизацию сообщений и гарантирует доставку сообщений.
- Транзакционная интеграция-синхронная модель связи является более подходящей, когда приложению необходимо выполнить безопасный и транзакционный доступ к одному или нескольким синхронно EISES для обработки запросов клиента. В таких случаях приложение может позволить себе накладные расходы более жесткой связи с EIS, чтобы обеспечить более высокую обработку запросов и обработку ошибок.
- Сложность модели программирования-асинхронная модель программирования связи более сложна, чем более распространенная модель синхронного запроса-ответа. В то время как асинхронная модель предоставляет больше услуг, стоимость является большей сложностью применения и большей работой со стороны разработчиков.
В заключение, возможно, это не обязательно, но может быть разумно реализовать MDB.