В последнем случае вы выполняете синхронную операцию, тогда как первый подход является асинхронным. В сценариях интеграции приложений в приложение (A2A) почти всегда принято решение реализовать асинхронный интерфейс. Об этом написано много, позвольте мне просто обратиться к Java documentation itself, например. Раздел 6.3.3:
При разработке приложения, вы должны решить, следует ли использовать синхронной или асинхронной интеграции с целью EISes и существующих приложений. Оба синхронных и асинхронных интегральных подхода действительны для интеграции приложений, а выбор должен основываться на требованиях интеграции и вариантах использования. Основание Ваше решение по следующим рекомендациям.
- Качество услуг требуется - использование очереди или публикация-подписка система обеспечивает более высокое качество услуг, такие как маршрутизации сообщений и надежную доставку сообщений, чем синхронная связи.
- Производительность приложения - Асинхронный обмен сообщениями может привести к повышению пропускной способности, поскольку буферизация сообщений в очереди, поддержка маршрутизации сообщений, и гарантирует доставку сообщений.
- Транзакционная интеграция. Синхронная коммуникационная модель более подходит, когда приложение должно выполнить безопасное и транзакционный доступ к одному или нескольким EISs синхронно для клиента. обработка запроса. В таких случаях приложение может предоставить служебные данные более плотной связи с EIS для обеспечения более качественной обработки запросов и обработки ошибок.
- Сложность модели программирования. Модель асинхронного коммуникационного программирования более сложна, чем более распространенная синхронная модель запроса-ответа . В то время как асинхронная модель предоставляет больше услуг , стоимость больше сложностей приложений и больше работы на части разработчиков.
В заключение, может быть, это не нужно, но это может быть целесообразно осуществить MDB.
Спасибо за ответ. Правда, но EJB также поддерживают асинхронные методы. Они могут использоваться, если требуется асинхронная обработка. – Dario
@ Dario: Да, но между ними нет механизма обмена сообщениями. Речь идет об асинхронном вызове, а не об обмене сообщениями. В сценарии на основе MDB вы можете определить максимальное количество параллельных MDB, обрабатывающих вашу очередь. У вас есть другой уровень косвенности (и потенциально вы можете реализовать очередь в постоянном режиме). – home
Очень хорошо, спасибо за отзывы. – Dario