Сервисная шина предприятия - Enterprise service bus

Все клиентские сервисы взаимодействуют с ESB одинаковым образом: ESB переводит сообщение в правильный тип сообщения и отправляет сообщение в нужную потребительскую службу.

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

Архитектура

Концепция служебной шины предприятия аналогична концепции автобус концепция найдена в архитектура компьютерного оборудования в сочетании с модульной и параллельной конструкцией высокопроизводительных компьютерных операционных систем. Мотивом для разработки архитектуры было найти стандартную, структурированную и универсальную концепцию для описания реализации слабосвязанных программных компонентов (называемых Сервисы ), которые, как ожидается, будут независимо развернуты, запущены, разнородны и разрознены в сети. ESB также является распространенным шаблоном реализации для Сервис-Ориентированная Архитектура, включая внутреннюю схему сети Всемирная паутина.

Для концепций или реализаций служебной шины предприятия не существует глобальных стандартов.[1] Большинство поставщиков промежуточное ПО, ориентированное на сообщения приняли концепцию служебной шины предприятия как де-факто стандарт для сервис-ориентированной архитектуры. Реализации использования ESB событийный и ориентированное на стандарты промежуточное ПО, ориентированное на сообщения, в сочетании с очереди сообщений как технологические рамки.[2] Однако некоторые производители программного обеспечения переименовывают существующее промежуточное программное обеспечение и коммуникационные решения как ESB, не принимая важнейший аспект концепции шины.

Функции

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

Основные обязанности ESB:

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

История

Первое опубликованное использование термина «служебная шина предприятия» приписывается Рою В. Шульте из Gartner Group 2002 и книги Сервисная шина предприятия пользователя Дэвид Чаппелл. Хотя ряд компаний считают, что эта фраза была придумана, в интервью Шульте сказал, что впервые услышал фразу от компании Sonic, и продолжил: «Самым прямым предком ESB был продукт Candle's Roma. с 1998 года », но этот продукт Sonic 2002 года был первым ESB на рынке.[3]

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

ESB как программное обеспечение

ESB реализована в программном обеспечении, которое работает между бизнес-приложениями и обеспечивает связь между ними. В идеале ESB должна иметь возможность заменять все прямые контакты с приложениями на шине, чтобы все коммуникации происходили через ESB. Для достижения этой цели ESB должен инкапсулировать функциональные возможности, предлагаемые его компонентными приложениями. Обычно это происходит за счет использования модель корпоративных сообщений. Модель сообщений определяет стандартный набор сообщений, которые передает и принимает ESB. Когда ESB получает сообщение, он направляет его в соответствующее приложение. Часто, поскольку это приложение развивалось без той же модели сообщений, ESB должна преобразовать сообщение в формат, который приложение может интерпретировать. Программный адаптер выполняет задачу по осуществлению этих преобразований аналогично физическому адаптер.[4]

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

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

ESB улей товарных компонентов

Характеристики

КатегорияФункции
Призывподдержка синхронных и асинхронных транспортных протоколов, отображение сервисов (определение местоположения и привязка)
Маршрутизацияадресуемость, статическая / детерминированная маршрутизация, маршрутизация на основе содержимого, маршрутизация на основе правил, маршрутизация на основе политик
Посредничествоадаптеры, преобразование протоколов, отображение сервисов
Обмен сообщениямиобработка сообщений, преобразование сообщений и улучшение сообщений
Хореография процесса ¹реализация сложных бизнес-процессов
Сервисная оркестровка ²координация нескольких услуг по внедрению, представленных как единая совокупная услуга
Обработка сложных событийинтерпретация событий, корреляция, сопоставление с образцом
Другой качество обслуживаниябезопасность (шифрование и подпись), надежная доставка, управление транзакциями
Управлениемониторинг, аудит, ведение журнала, учет, консоль администратора, БАМ (BAM не является функцией управления, другими словами, ESB не реагирует на определенный порог. Это возможность бизнес-службы, доступная конечным пользователям.)
Агностицизмобщий агностицизм по отношению к операционным системам и языкам программирования; например, он должен обеспечивать взаимодействие между Ява и .СЕТЬ Приложения
Преобразование протоколакомплексная поддержка актуальных стандартов обслуживания протоколов связи
Шаблоны обмена сообщениямиподдержка различных MEP (Шаблоны обмена сообщениями ) (например: синхронный запрос / ответ, асинхронный запрос / ответ, отправить и забыть, опубликовать / подписаться)
Адаптерыадаптеры для поддержки интеграции с устаревшими системами, возможно, на основе таких стандартов, как JCA
Безопасностьстандартизированная модель безопасности для авторизации, аутентификации и аудита использования ESB
Трансформациясодействие трансформации форматов данных и значений, включая услуги преобразования (часто через XSLT или же XQuery ) между форматами приложения-отправителя и приложения-получателя
Проверкапроверка по схемам для отправки и получения сообщений
Управлениевозможность единообразного применения бизнес-правил
Обогащениеобогащающие сообщения из других источников
Разделить и объединитьразделение и объединение нескольких сообщений и обработка исключений
Абстракцияпредоставление единой абстракции на нескольких уровнях
Маршрутизация и преобразованиеусловная маршрутизация или преобразование сообщений на основе нецентрализованной политики (без необходимости в центральной системе правил)
Товарные Услугипредоставление часто используемых функций в качестве общих служб в зависимости от контекста

¹ Некоторые не считают хореографию процесса функцией ESB. Например, см. М. Ричардс.[5]

² Хотя хореография процессов поддерживает реализацию сложных бизнес-процессов, требующих координации нескольких бизнес услуги (обычно использующие BPEL ), оркестровка служб обеспечивает координацию нескольких служб реализации (наиболее подходящих для представления в виде совокупной службы) для обслуживания индивидуальных запросов.

Эти решения часто ориентированы на низкоуровневые функции ESB, такие как подключение, маршрутизация и преобразование, и требуют кодирования или написания сценариев для реализации оркестровки.[6] Разработчики, работающие на проектном или тактическом уровне, например, просто пытаясь решить проблему, часто тяготеют к облегченным технологиям служебной шины, но часто существует постоянное противоречие между этими инициативами и архитектурой предприятия, целью которой является оптимизация инфраструктуры для нескольких проектов.[7]

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

Ключевые преимущества

  • Масштабирование от точечных решений до развертывания в масштабе предприятия (распределенная шина)
  • Больше конфигурации, чем интеграционного кодирования
  • Нет центрального механизма правил, нет центрального брокера
  • Простая система подключения и отключения и неплотного соединения

Ключевые недостатки

  • Более низкая скорость связи, особенно для уже совместимых сервисов
  • Единая точка отказа, может отключить все коммуникации на предприятии
  • Высокая сложность настройки и обслуживания

Товары

Известные продукты включают:

Смотрите также

Рекомендации

  1. ^ Лапейра, Рауль. «ESB - это архитектурный стиль, программный продукт или группа программных продуктов?». Консультации по Артефактам. Архивировано из оригинал на 2014-08-08. Получено 2010-04-16. Первое, что должен иметь в виду архитектор ESB, это то, что по состоянию на 2010 год не существует глобального стандарта для ESB.
  2. ^ Карри, Эдвард. 2004 г. «По промежуточного слоя, ориентированного на сообщения»[постоянная мертвая ссылка ]. В Промежуточное ПО для коммуникаций, изд. Кусай Х. Махмуд, 1-28. Чичестер, Англия: Джон Уайли и сыновья. Дои:10.1002 / 0470862084.ch1. ISBN  978-0-470-86206-3
  3. ^ «Разница между брокером сообщений и ESB». Получено 2017-07-19.
  4. ^ http://shop.oreilly.com/product/9780596006754.do
  5. ^ Ричардс, Марк. «Роль служебной шины предприятия (презентация)». Получено 2009-06-04. Я не считаю хореографию процессов частью ESB, если мы рассматриваем ESB как промежуточное ПО для высокоскоростного обмена сообщениями. Однако я считаю хореографию процесса частью платформы ESB * *. К счастью, большинство поставщиков ESB разделяют эти основные компоненты на разные продукты, но объединяют их в единое предложение ESB. Итак, в самом строгом смысле слова, нет, я бы не стал рассматривать это как часть ESB. Это связанная возможность.
  6. ^ Ферага, Матиас (6 июня 2011 г.). «Как: выбирать между легкими и традиционными ESB». Octo. Получено 23 апреля 2014.
  7. ^ Фултон, Ларри (12 сентября 2007 г.). «Узнайте, как использовать легкие ESB». Fo2014.

дальнейшее чтение

  • Дэвид Чаппелл, Enterprise Service Bus (O’Reilly: июнь 2004 г., ISBN  0-596-00675-6)
  • Бинильдас А. Христудас, «Сервис-ориентированная бизнес-интеграция Java» (Packt Publishers: февраль 2008 г., ISBN  1-84719-440-0; ISBN  978-1-84719-440-4)
  • Майкл Белл, «Сервис-ориентированное моделирование: анализ услуг, проектирование и архитектура» (2008 г., Wiley & Sons, ISBN  978-0-470-14111-3)

внешняя ссылка