Сервисная шина предприятия - Enterprise service bus
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 поставщики должны предоставить решение интеграции, которое будет недорогим, легко настраиваемым, интуитивно понятным, удобным для пользователя и открытым для любых инструментов по выбору клиентов.
Характеристики
Категория | Функции |
---|---|
Призыв | поддержка синхронных и асинхронных транспортных протоколов, отображение сервисов (определение местоположения и привязка) |
Маршрутизация | адресуемость, статическая / детерминированная маршрутизация, маршрутизация на основе содержимого, маршрутизация на основе правил, маршрутизация на основе политик |
Посредничество | адаптеры, преобразование протоколов, отображение сервисов |
Обмен сообщениями | обработка сообщений, преобразование сообщений и улучшение сообщений |
Хореография процесса ¹ | реализация сложных бизнес-процессов |
Сервисная оркестровка ² | координация нескольких услуг по внедрению, представленных как единая совокупная услуга |
Обработка сложных событий | интерпретация событий, корреляция, сопоставление с образцом |
Другой качество обслуживания | безопасность (шифрование и подпись), надежная доставка, управление транзакциями |
Управление | мониторинг, аудит, ведение журнала, учет, консоль администратора, БАМ (BAM не является функцией управления, другими словами, ESB не реагирует на определенный порог. Это возможность бизнес-службы, доступная конечным пользователям.) |
Агностицизм | общий агностицизм по отношению к операционным системам и языкам программирования; например, он должен обеспечивать взаимодействие между Ява и .СЕТЬ Приложения |
Преобразование протокола | комплексная поддержка актуальных стандартов обслуживания протоколов связи |
Шаблоны обмена сообщениями | поддержка различных MEP (Шаблоны обмена сообщениями ) (например: синхронный запрос / ответ, асинхронный запрос / ответ, отправить и забыть, опубликовать / подписаться) |
Адаптеры | адаптеры для поддержки интеграции с устаревшими системами, возможно, на основе таких стандартов, как JCA |
Безопасность | стандартизированная модель безопасности для авторизации, аутентификации и аудита использования ESB |
Трансформация | содействие трансформации форматов данных и значений, включая услуги преобразования (часто через XSLT или же XQuery ) между форматами приложения-отправителя и приложения-получателя |
Проверка | проверка по схемам для отправки и получения сообщений |
Управление | возможность единообразного применения бизнес-правил |
Обогащение | обогащающие сообщения из других источников |
Разделить и объединить | разделение и объединение нескольких сообщений и обработка исключений |
Абстракция | предоставление единой абстракции на нескольких уровнях |
Маршрутизация и преобразование | условная маршрутизация или преобразование сообщений на основе нецентрализованной политики (без необходимости в центральной системе правил) |
Товарные Услуги | предоставление часто используемых функций в качестве общих служб в зависимости от контекста |
¹ Некоторые не считают хореографию процесса функцией ESB. Например, см. М. Ричардс.[5]
² Хотя хореография процессов поддерживает реализацию сложных бизнес-процессов, требующих координации нескольких бизнес услуги (обычно использующие BPEL ), оркестровка служб обеспечивает координацию нескольких служб реализации (наиболее подходящих для представления в виде совокупной службы) для обслуживания индивидуальных запросов.
Эти решения часто ориентированы на низкоуровневые функции ESB, такие как подключение, маршрутизация и преобразование, и требуют кодирования или написания сценариев для реализации оркестровки.[6] Разработчики, работающие на проектном или тактическом уровне, например, просто пытаясь решить проблему, часто тяготеют к облегченным технологиям служебной шины, но часто существует постоянное противоречие между этими инициативами и архитектурой предприятия, целью которой является оптимизация инфраструктуры для нескольких проектов.[7]
Если брокер сообщений, программное обеспечение ESB, переводит сообщение из одного формата в другой, то, как и при любом переводе, возникает проблема семантики сообщения. Например, запись может быть преобразована из JSON в XML, но один и тот же набор полей может интерпретироваться по-разному в разных приложениях, особенно в различных угловых случаях, которые обычно известны только разработчикам, имеющим большой опыт работы с приложением. который подключен к ESB. Для известных угловых случаев количество тестов, охватывающих все угловые случаи, увеличивается экспоненциально с каждым приложением, подключенным к ESB, потому что каждое приложение, подключенное к ESB, должно быть протестировано против всех других приложений, подключенных к ESB.
Ключевые преимущества
- Масштабирование от точечных решений до развертывания в масштабе предприятия (распределенная шина)
- Больше конфигурации, чем интеграционного кодирования
- Нет центрального механизма правил, нет центрального брокера
- Простая система подключения и отключения и неплотного соединения
Ключевые недостатки
- Более низкая скорость связи, особенно для уже совместимых сервисов
- Единая точка отказа, может отключить все коммуникации на предприятии
- Высокая сложность настройки и обслуживания
Товары
Известные продукты включают:
- Коммерческий
- IBM App Connect, ранее IBM Integration Bus и IBM WebSphere ESB
- InterSystems Ансамбль
- Информация_Застройщики Менеджер по обслуживанию iWay
- Microsoft Azure Служебная шина
- Microsoft BizTalk Server
- Мул ESB
- Сервисная шина Oracle Enterprise
- Программное обеспечение Progress Sonic ESB (приобретен Трилогия )
- Интеграция процессов SAP
- Программное обеспечение TIBCO ActiveMatrix BusinessWorks
- webMethods служебная шина предприятия (приобретена Software AG )
- Звуковой ESB от Aurea
Смотрите также
- Шаблоны корпоративной интеграции
- Обмен сообщениями на основе событий
- Бизнес-интеграция с Java
- управление бизнес-процессами
- Универсальная интеграционная платформа
- Интеграция корпоративных приложений
- Поставщик бизнес-услуг
- По промежуточного слоя, ориентированного на сообщения
- Обработка сложных событий
- Обработка потока событий
- Событийное программирование
- Сравнение программного обеспечения для бизнес-интеграции
- Сравнение двигателей BPEL
- Сравнение двигателей BPMN 2.0
- Составное приложение
- SOA, управляемая событиями
- Платформа интеграции как услуга (iPaaS)
Рекомендации
- ^ Лапейра, Рауль. «ESB - это архитектурный стиль, программный продукт или группа программных продуктов?». Консультации по Артефактам. Архивировано из оригинал на 2014-08-08. Получено 2010-04-16.
Первое, что должен иметь в виду архитектор ESB, это то, что по состоянию на 2010 год не существует глобального стандарта для ESB.
- ^ Карри, Эдвард. 2004 г. «По промежуточного слоя, ориентированного на сообщения»[постоянная мертвая ссылка ]. В Промежуточное ПО для коммуникаций, изд. Кусай Х. Махмуд, 1-28. Чичестер, Англия: Джон Уайли и сыновья. Дои:10.1002 / 0470862084.ch1. ISBN 978-0-470-86206-3
- ^ «Разница между брокером сообщений и ESB». Получено 2017-07-19.
- ^ http://shop.oreilly.com/product/9780596006754.do
- ^ Ричардс, Марк. «Роль служебной шины предприятия (презентация)». Получено 2009-06-04.
Я не считаю хореографию процессов частью ESB, если мы рассматриваем ESB как промежуточное ПО для высокоскоростного обмена сообщениями. Однако я считаю хореографию процесса частью платформы ESB * *. К счастью, большинство поставщиков ESB разделяют эти основные компоненты на разные продукты, но объединяют их в единое предложение ESB. Итак, в самом строгом смысле слова, нет, я бы не стал рассматривать это как часть ESB. Это связанная возможность.
- ^ Ферага, Матиас (6 июня 2011 г.). «Как: выбирать между легкими и традиционными ESB». Octo. Получено 23 апреля 2014.
- ^ Фултон, Ларри (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)
внешняя ссылка
- "Прочная концепция или последнее модное словечко?" (Николас Фаржес, 2003)
- Автобусы корпоративного уровня отправляются в путь: испытательный центр Infoworld (22 июля 2005 г.)
- JSR-208: бизнес-интеграция Java (Август 2005 г.)
- Роль служебной шины предприятия (InfoQ - видео-презентация) (23 октября 2006 г.)
- Обзор ESB, часть первая: определение ESB (InfoQ) (13 июля 2006 г.)
- Обзор ESB, часть вторая: сценарии использования (InfoQ) (5 июля 2006 г.)
- "Сервисная ткань - тонкие ткани для систем новой эры" (Бинильдас А. Христудас, 2007 г.)
- «ESB в 2007 году: переход от шины с открытым исходным кодом к SOA» (Деннис Байрон, 20 сентября 2007 г.)
- Агрегатные сервисы в ServiceMix JBI ESB: PACKT Publishers (Бинильдас А. Христудас, 30 ноября 2007 г.)
- Альтернативы топологии ESB (InfoQ, А. Луи, 23 мая 2008 г.)
- Переосмысление ESB: создание простой, безопасной, масштабируемой служебной шины с помощью шлюза SOA (Computerworld, Дж. Райан, 2011 г.)
- Луи, Адриан; Марк Дуту (02.07.2010). «Выбор между маршрутизацией и оркестровкой в ESB». InfoQ. Получено 2009-07-02.
- Корпоративная служебная шина, пересмотренная (IBM Developer Works, Грег Флурри и Ким Кларк, май 2011 г.)