Преимущества корпоративного сервисного автобуса - PullRequest
30 голосов
/ 07 января 2010

Где я могу найти информацию об использовании и преимуществах корпоративной сервисной шины (ESB)?

Я ищу информацию о:

  1. виды проблем и ESB помогает решить
  2. альтернативы ESB - и компромиссы при выборе между ними
  3. что нужно сделать разработчику для создания ESB-совместимых систем

Я ищу более тонкий уровень детализации, чем просто Википедия или брошюры онлайн-маркетинга от поставщиков. В идеале, некоторый пример кода поможет прояснить, что входит в использование ESB. Информация с точки зрения .NET или Java была бы наиболее полезной.

Спасибо.

Ответы [ 11 ]

22 голосов
/ 07 января 2010

Я бы предложил ESB или не ESB для начала, написанный создателем Mule .

19 голосов
/ 07 января 2010

ESB - хороший способ реализации шаблонов интеграции предприятия .

Виды проблем, которые ESB помогает решить

  • У вас есть несколько протоколов, которые вы хотите нормализовать для одного протокола (например, FTP, электронная почта, SOAP, XMPP и т. Д. Для системы обмена сообщениями), например ActiveMQ. Это позволяет отделить реализацию служб от протокола.
  • Требуется согласованный способ подключения служб к этой архитектуре, чтобы они могли прослушивать сообщения, обрабатывать сообщения и генерировать сообщения (конечные точки сообщений, адаптеры каналов и т. Д.).
  • Возможно, вы захотите, чтобы управляемый контейнер развернул эти различные компоненты (например, ServiceMix, Mule)
  • Возможно, вам понадобится несколько предварительно собранных компонентов и адаптеров для различных протоколов (например, в ServiceMix, Mule и Camel есть много предварительно собранных компонентов).
  • Возможно, вам потребуются длительные рабочие процессы. Управление бизнес-процессами часто предоставляется вместе с ESB (Apache ODE подключается к ряду ESB с открытым исходным кодом).

Альтернативы ESB

Альтернативы действительно зависят от проблемы, которую вы пытаетесь решить.

  • Чтобы предоставлять распределенные сервисы, люди часто используют серверы приложений, представляющие сервисы через некоторый двухточечный протокол RPC (например, EJB через RMI или веб-сервисы через HTTP). Таким образом, вместо того, чтобы помещать сообщение в «шину», клиент напрямую вызывает сервер.
  • Чтобы ответить на определенные протоколы, вы можете просто создать клиент, который отвечает на этот протокол, например, написать приложение, которое прослушивает электронную почту, используя JavaMail, или приложение, которое прослушивает XMPP, используя Smack. Если ваша проблема ограничена одним или двумя протоколами, возможно, не стоит вводить полный ESB.

Что нужно сделать разработчику для создания ESB-совместимых систем

Это будет зависеть от выбранного вами ESB, хотя, учитывая, что большинство хороших из них предназначены для вызова во все виды протоколов, а также в хост-POJO, вам не нужно много делать для создания ESB-совместимых систем. , Стоит попытаться сделать ваш код асинхронным.

Например, Apache Camel, вероятно, имеет наиболее лаконичную конфигурацию, вот учебник .

7 голосов
/ 29 января 2011

Три ключевых преимущества:

  • Шина позволяет конечным точкам соединяться друг с другом без прямой связи друг с другом. Это упрощает связь для конечных точек, поскольку они должны соответствовать только стандартному интерфейсу связи, шине. (Это касается любой технической шины, а не только ESB)
  • ESB предоставляет единственное место для получения некоторых ключевых показателей конечной точки: частоты, доступности и производительности.
  • ESB имеет тенденцию предоставлять более одного интерфейса связи. Однако разработчику нужно только выбрать самый простой способ получения и получения данных с шины.

Однако убедитесь, что они обеспечат ценность для бизнеса для вашей ситуации. Наличие ESB добавляет еще одну сложность для вашего предприятия. В идеале вы должны выбирать не по нескольким приложениям, а по всей организации. Для организации должен быть только один рабочий кластер ESB.

Альтернативы:

  • Просто соединяйте вещи друг с другом напрямую, особенно если протоколы связи одинаковы. Это хорошо для простых кластеров приложений и не требует слишком много размышлений. Тем не менее, по мере роста количества ваших приложений обслуживание соединений становится затруднительным.
  • Другой альтернативой является реализация MQ. Это даст вам возможность перемещать данные без сложных взаимосвязей, но тогда вы будете вынуждены использовать только один канал связи. К счастью для Java, у них есть стандарт JMS.

Практичность:

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

Если у вас нет ESB, я предлагаю вам попробовать Mule для разработки и WebSphere ESB для тестирования и производства. Я склонен использовать два продукта, которые якобы соответствуют стандартам, чтобы гарантировать честность поставщиков и убедиться, что ваши разработчики соответствуют стандартам, предотвращающим случайную блокировку поставщиков.

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

6 голосов
/ 07 января 2010

В дополнение к сайтам, которые уже были упомянуты. Вам следует прочитать эту статью на тему " Не используйте ESB, если вам абсолютно не нужно ". Он был написан техническим директором MuleSource, одного из самых популярных доступных ESB с открытым исходным кодом. Не совсем ответ на ваш вопрос, а скорее вопрос о том, нужен ли мне ESB?

3 голосов
/ 07 января 2010

В IBM есть приличная серия из трех частей о ESB, которая довольно ориентирована на концепцию и не зависит от поставщика (по большей части). Я нашел много хороших вещей в ESB, просматривая сайт IBM. На сайте BizTalk .

также есть немного приличной информации, видео и прочего.
2 голосов
/ 05 ноября 2013

Enterprise Service Bus (ESB) - это программная архитектура для промежуточного программного обеспечения, предоставляющая базовые сервисы для более сложных архитектур.Например, ESB включает в себя функции, необходимые для реализации сервис-ориентированной архитектуры (SOA).В общем смысле ESB можно рассматривать как механизм, который управляет доступом к приложениям и службам (особенно унаследованным версиям) для представления единого, простого и согласованного интерфейса конечным пользователям через клиентскую часть на основе Web или форм.внешние интерфейсы.

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

http://searchsoa.techtarget.com/definition/enterprise-service-bus

WSO2 Enterprise Service Bus (Продукт)

WSO2 Enterprise Service Bus (ESB) 4.7.0 документация!WSO2 ESB - это быстрый, легкий, 100% открытый исходный код и удобный для пользователя ESB, распространяемый по лицензии Apache Software License v2.0.WSO2 ESB позволяет системным администраторам и разработчикам удобно настраивать маршрутизацию сообщений, передачу, преобразование, ведение журнала, планирование задач, отработку отказа, балансировку нагрузки и многое другое.Он поддерживает наиболее часто используемые шаблоны корпоративной интеграции (EIP) и обеспечивает переключение транспорта, обработку событий, посредничество на основе правил и посредничество на основе приоритетов для расширенных требований интеграции.Среда выполнения ESB спроектирована полностью асинхронной, неблокирующей и потоковой на основе механизма посредничества Apache Synapse.

WSO2 ESB разработан на основе революционной платформы WSO2 Carbon, основанной на OSGi, которая обеспечиваетбесшовная модульность вашей SOA с помощью компонентизации.Он включает в себя множество функций и дополнительных компонентов (надстроек), которые вы можете установить в ESB, и вы можете легко удалить функции, которые не требуются в вашей среде, что позволяет вам полностью настраивать и настраивать WSO2 ESB в соответствии с вашими потребностями в SOA.

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

Интеграция между этими разнородными приложениями жизненно важна для предприятия.Различные службы могут использовать разные форматы данных и протоколы связи.Физическое расположение служб может меняться произвольно.Все эти ограничения означают, что ваши приложения по-прежнему тесно связаны друг с другом.ESB может использоваться для ослабления этих связей между различными службами и потребителями услуг.

WSO2 ESB - это полноценный, готовый к работе ESB.Он построен на проекте Apache Synapse, который построен с использованием проекта Apache Axis2.Все компоненты собраны в пакеты OSGi.

2 голосов
/ 08 января 2010

Проверьте этот Hanselminutes подкаст . Он отвечает на несколько вопросов, которые вы действительно должны задать себе перед внедрением служебной шины.

1 голос
/ 20 марта 2015

Нет нужды использовать ESB. Не делай этого. Излишняя сложность. Зачем идти через посредника, когда вы можете идти прямо? Люди из ESB скажут вам, что точка-точка - это плохо, но каким-то образом точка-точка указывает на то, что ESB хорошо.

1 голос
/ 18 апреля 2013

Взгляните на мою презентацию " Избранный для выбора - Как правильно выбрать ESB ".

Я объясняю, когда использовать ESB, Integration Suite или просто интеграционную платформу (например, Apache Camel). Я также обсуждаю различия между открытыми и проприетарными ESB.

0 голосов
/ 17 февраля 2017

Сначала позвольте мне объяснить SOA . Это касается построения архитектуры в виде набора программных модулей многократного использования, представленных как «Сервисы» с четко определенными интерфейсами. Сервисы обеспечивают слабую связь и абстрагируют детали реализации от клиентов.

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

  • Как узнать, какие услуги используются, а какие нет?
  • Как вы находите клиентов, пользующихся определенным сервисом?
  • Как вы развертываете обновления для службы или предоставляете новые версии существующим службам без сбоев?
  • Как вы поддерживаете обратную совместимость для старых клиентов, использующих старые сервисные интерфейсы
  • Как вы ведете протоколирование, аудит, усиление безопасности и т. Д. Во всех службах для внутреннего / внешнего трафика?

ESB является решением для вышеуказанных проблем. ESB ...

  • Помогает привести в порядок
  • Может строго соблюдать корпоративные политики
    • например. Безопасность, регулирование, аудит и т. Д. Применяются последовательно
  • Виртуализирует конечные точки службы
    • Упрощение управления версиями, гибкие обновления, HA / балансировка нагрузки и т. Д.
  • Выполнение маршрутизации, посредничества, преобразования и т. Д.

Некоторые примеры использования можно найти здесь . Обратите внимание, что они взяты с сайта разработчика AdroitLogic и тесно связаны с UltraESB, ESB AdroitLogic.

...