ESB
ESB (Enterprise Service Bus, Сервисная шина предприятия, корпоративная шина данных) — связующее программное обеспечение, обеспечивающее централизованный и унифицированный событийно-ориентированный обмен сообщениями между различными информационными системами на принципах сервис-ориентированной архитектуры.
Принцип работы
Основной принцип сервисной шины — концентрация обмена сообщениями между различными системами через единую точку, в которой, при необходимости, обеспечивается транзакционный контроль, преобразование данных, сохранность сообщений. Все настройки обработки и передачи сообщений предполагаются также сконцентрированными в единой точке и формируются в терминах служб, таким образом, при замене какой-либо информационной системы, подключённой к шине, нет необходимости в перенастройке остальных систем.
Когда нужна ESB
При наличии более двух автоматизированных систем (модулей, подсистем) в структуре информационной системы компании задача контролируемого обмена информацией между ними становится весьма нетривиальной. Ситуация усугубляется, когда в системах или в составе данных происходят изменения.
Для решения задачи прозрачного обмена информацией между системами и снижения трудозатрат и финансовых затрат на перенастройку всех участвующих в обменах автоматизированных систем предназначены системы класса «Корпоративная сервисная шина данных» или «Сервисная шина данных предприятия» (ESB – Enterprise Service Bus) и «Управление очередями сообщений» (MQ – Message Queuing).
Использование шины существенно упрощает управление потоками данных между приложениями, снижает вероятность возникновения ошибок, сокращает трудозатраты на разработку интерфейсов и их администрирование.
Когда ESB избыточна
При небольшом числе систем (2–3) и стабильных интеграциях проще и дешевле прямые связи «точка-точка»: меньше инфраструктуры, нет единой точки отказа, проще внедрение. ESB оправдана, когда систем много, топология связей меняется часто или требуется централизованное преобразование данных, маршрутизация и журналирование обмена.
ESB и MQ — в чём разница
- MQ (Message Queuing) — транспорт: надёжная доставка сообщений, очереди, гарантии доставки. Решает задачу «донести байты из точки A в точку B» без потерь.
- ESB — строится поверх (или включает) транспорт и добавляет бизнес-логику интеграции: преобразование и трансформацию данных, маршрутизацию по содержимому, оркестрацию служб, мониторинг.
Проще говоря, MQ отвечает за доставку, ESB — за то, что и как передаётся между системами.
ESB и API-шлюз / микросервисы
В современной архитектуре роль ESB частично берут на себя API-шлюзы и микросервисная интеграция. Ключевые отличия:
- API-шлюз ориентирован на интерфейсы (REST), безопасность и доступ к сервисам для внешних и внутренних потребителей, а не на обмен событиями и преобразование данных между монолитными системами.
- ESB традиционно заточена под событийно-ориентированный обмен и интеграцию унаследованных (legacy) систем с разными протоколами и форматами данных.
Выбор зависит от ландшафта: для множества классических корпоративных систем ESB остаётся удобным решением; для облачных, API-ориентированных архитектур чаще используют интеграционные платформы (iPaaS) и API-шлюзы.
Параметры выбора приложений ESB
Приложения сервисной шины данных характеризуются следующими параметрами:
- Состав коннекторов к сторонним приложениям или технологиям и возможность создания собственных коннекторов.
- Поддержка синхронного и/или асинхронного способа вызова служб.
- Поддержка транспортных протоколов с гарантированием доставки сообщений.
- Поддержка статической и/или алгоритмической маршрутизации сообщений.
- Наличие функции обработки и преобразования сообщений.
- Механизмы контроля и управления (аудиты, протоколирование).
- Стек технологий, требуемый для работы системы (ОС, СУБД, среды и пр.).
- Производительность системы (количество сообщений в минуту, количество подключенных систем).
Смотрите также
Эта страница упоминается здесь:
