Можем ли мы реализовать полное решение на основе SOA, используя только JMS-провайдера?

SOA - это интеграция разнородных приложений или составление бизнес-процессов из сервисов более низкого уровня.

Можем ли мы реализовать полное SOA-решение на большом предприятии, где приложения пересекают границы отделов и владений, используя только современный JMS-провайдер, который поддерживает как Java-клиенты, так и JMS-клиенты, отличные от Java, и используя веб-службы и серверы приложений в различных точках интеграции, если это необходимо, без использования более сложный продукт ESB?

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


person ace    schedule 24.05.2011    source источник


Ответы (2)


Да - ESB не требуется для реализации SOA.

Предпочтительно использовать веб-службы поверх JMS для реализации ваших служб.

Вам следует знать о некоторых проблемах, которые обычно решает ESB:

Адаптеры

При использовании устаревшего поставщика услуг или клиента, которые не поддерживают соответствующие технологии (JMS, SOAP, ...), ESB может выступать в качестве адаптера для них - в вашем случае все ваши сервисы и клиенты должны поддерживать эти технологии самостоятельно, или вам нужно будет реализовать адаптер.

Маршрутизация

ESB действует как маршрутизатор, скрывая физический адрес поставщика услуг. вы должны использовать строгое соглашение об именах Queue \ Topic, чтобы обеспечить согласованность и ремонтопригодность вашего решения. при планировании схемы именования учитывайте сосуществование нескольких сред и версий.

Реестр служб

У вас должен быть какой-то реестр со спецификациями всех сервисов.

некоторые проблемы, которые нелегко найти,

Маршрутизация на основе содержания

Централизованное ведение журнала \ Применение политик \ Аудит

person Ophir Yoktan    schedule 24.05.2011
comment
Я не согласен с этим утверждением, что ESB не является необходимым для реализации SOA. Я слышал, как Роб Хай (сотрудник IBM) сделал этот комментарий, когда некоторые спросили, требуется ли ESB для SOA. Это похоже на вождение автомобиля без колес. Ключевая конструкция ESB - действовать как большой мост между поставщиками услуг и потребителями и обеспечивать высокий уровень абстракции. SOA вращается вокруг слабой связи между поставщиками услуг и потребителями, а ESB играет ключевую роль в этой слабой связи. - person Manglu; 25.05.2011
comment
Я не согласен. Если вы посмотрите за рамки модных словечек на то, что на самом деле делает ESB, вы увидите, что это не так уж и много - и во многих случаях вы можете получить такие же или лучшие результаты, используя более легкие строительные блоки (например, инфраструктуру обмена сообщениями, технологию конечных веб-служб, такую ​​как .Net и J2EE и т. д.) - person Ophir Yoktan; 25.05.2011

В дополнение к тому, что находится в ответе Офира:

Ваш вопрос переводится как «можно ли использовать JMS для подключения?» Да, может быть. SOAP - суть многих решений SOA - по сути своей является протоколом обмена сообщениями. Это позволяет использовать асинхронное решение, и, следовательно, JMS отвечает всем требованиям. SOAP должен работать на другом протоколе уровня сеанса / приложения, которым может быть JMS.

Представьте себе следующее решение:

  1. поставщики услуг прослушивают шину JMS, возможно, определенную очередь / очередь + селектор сообщений
  2. Потребители службы отправляют сообщения на шину JMS, обращаясь к нужной службе (определенной очереди).
  3. Ответ зависит от требования, обычно это отдельная очередь для ответа (возможно, указанная в свойстве JMS reply-to), которую потребитель ожидает от ответов.

По сути, порт службы - это очередь JMS.

person CMR    schedule 31.05.2011