ESB (Enterprise Service Bus)
ESB переводится как «корпоративная шина данных». Основной принцип ее структуры заключается в том, что все корпоративные IT-системы используют единую интеграционную платформу на основе обмена сообщениями. Все системы взаимодействуют через центральную точку, которая обеспечивает целостность запросов, преобразование данных и обработку транзакций.
Целью является создание стандартной модуля (или адаптера) для «подключения» систем к ESB, после чего будет создан вручную алгоритм маршрутизации и обработки сообщений, или алгоритм на заранее заданных бизнес-правилах. Этот подход обеспечивает высокую гибкость, простоту масштабирования и переноса, так что при замене одного из подключенных приложений перенастройка других систем не требуется.
Брокер сообщений
Брокер сообщений — программный компонент, который служит посредником между системой-отправителем и системой-получателем. Это своего рода мост данных для информационных систем.
Важное уточнение
Хоть в данной статье мы и рассуждаем, что же лучше — брокер очередей или ESB, не стоит забывать, что внутри ESB также находятся брокер очередей со всем его функционалом. Таким образом, ESB включает в себя возможности как для маршрутизации, так и для трансформации данных и направления между различными цепями. В то же время брокер очередей выполняет основную функцию доставки сообщений, надежное и асинхронное соединение.
Подробнее о ESB и брокерах сообщений
Рассмотрим, из чего состоит корпоративная шина данных (ESB), и за что отвечает каждый из её модулей:
Модули ESB
Брокер сообщений
Модуль, отвечающий за логистику сообщений между системами.
Модуль преобразования данных
Этот модуль отвечает за функциональность изменения и преобразования данных. Он позволяет изменять формат сообщения для «получателя» данных, обогащать информацию или реструктурировать её до нужного вида.
Модуль безопасности
Модуль, позволяющий отслеживать действия внутри системы, настраивать аутентификацию и доступ к различным компонентам. Он позволяет создавать ролевую политику и контролировать действия пользователей.
Модуль управления и мониторинга
Этот модуль позволяет отслеживать производительность шины и её компонентов, активность конкретных модулей и выявлять ошибки.
Модули брокера сообщений
Управление очередями
Модуль управления очередями отвечает за создание, управление и хранение очередей сообщений.
Маршрутизация сообщений
Модуль маршрутизации определяет, как и куда будут направляться сообщения.
Обработка сообщений
Модуль обработки сообщений отвечает за обработку сообщений, включая их извлечение из очереди и передачу получателям.
Обработка ошибок
Модуль обработки ошибок и управления отвечает за обработку ошибок в процессе передачи и обработки сообщений.
Примеры ESB:
Примеры брокеров:
Сравнение характеристик
Важно!
Перед ознакомлением с таблицей стоит помнить, что внутри корпоративной шины данных также присутствует модуль «брокер сообщений», и весь функционал брокера включен в этот модуль.
| Характеристика | Брокер сообщений | ESB |
|---|---|---|
| Функциональность | Фокусируется на надежной доставке и асинхронной обработке сообщений, предоставляя возможности очереди и публикации/подписки | Предоставляет широкие возможности интеграции, включая преобразование данных, маршрутизацию, оркестрацию, управление потоком сообщений, безопасность, мониторинг |
| Сложность | Проще в использовании и обслуживании, требует меньше вычислительных ресурсов | Более сложный из-за богатой функциональности, требует специализированных знаний для настройки и дальнейшего обслуживания. Как правило используется в кластере |
| Гибкость | Менее гибкий, но обеспечивает простоту и надежность в стандартных сценариях | Более гибкий и настраиваемый, позволяет создавать сложные интеграционные сценарии |
| Стоимость | Низкая стоимость первоначальной покупки, высокая стоимость владения на добавлении сложных сценариев | Более высокая стоимость первоначальной покупки, низкая стоимость владения за счёт скорости и удобства подключения новых систем |
Сценарии применения
Сценарий применения ESB
Компания использует несколько различных систем для управления заказами, складскими запасами и финансами. Каждая из этих систем разработана с помощью команд и требует разных форматов данных. ESB решает проблему обмена данными между последовательностями, выступая посредником, который «переводит» данные в нужные форматы и управляет их передачей.
Заказ оформляется в системе заказов, ESB принимает эти данные, преобразует их в нужный формат и отправляет на склад для резервирования товара, в логистический отдел для формирования путевых листов и расчёта маршрутов движения и сроков доставки.
Затем ESB направляет данные в систему финансов, где информация о заказах преобразуется в финансовый документ.
ESB получает данные из связанных систем и отправляет итоговое сообщение в систему CRM, чтобы клиент автоматически получил подтверждение запроса, с прогнозируемыми датами доставки.
Сценарий применения брокера сообщений
У компании есть интернет-магазин, где клиенты оформляют заказы, компания должна обработать их в первую очередь. Брокер сообщений (например, RabbitMQ или Kafka) позволяет передавать данные о заказах и выполнять обработку без ожидания каждого шага, что обеспечивает быстрое выполнение системы взаимодействия.
Клиент оформляет заказ, и система сразу же отправляет сообщение о новом заказе в очередь брокера.
Сообщение может быть получено одновременно и обработано несколькими сервисами: один резервирует товар на складе, другой обновляет данные в CRM, а третий запускает процесс подготовки доставки.
Каждый сервис обрабатывает сообщение тогда, когда у него есть ресурсы, не мешая другому и не перенося нагрузку на центральную систему.
Что же выбрать: ESB или брокер сообщений?
Важно!
Перед ознакомлением с таблицей просим помнить, что внутри корпоративной шины данных также присутствует модуль «брокер сообщений», и весь функционал брокера включен в этот модуль.
| Критерии | Брокер сообщений | ESB |
|---|---|---|
| Форматы и протоколы | Достаточно одного формата или протокола | Необходима трансформация данных и поддержка разных протоколов |
| Последовательность обработки | Допускается асинхронная обработка | Требуется четкая последовательность передачи данных, может использоваться асинхронная обработка данных |
| Надежность передачи | Важна только устойчивость к сбоям и буферизации сообщений | Необходима централизованная надежность передачи данных |
| Централизованное управление | Легкая интеграция и настройка независимых сервисов | Требуется контроль и управление потоками |
ESB ИЛИ брокер сообщений?
ESB больше подходит для выполнения сложных интеграций или большого количества простых, отвечающих самым строгими требованиями к данным. Тогда как брокер лучше использовать для небольшого количества простых интеграций.
Почему стоит обратиться к нам?
Наши услуги – это сочетание инноваций, профессионализма и индивидуального подхода. Доверьтесь экспертам и добейтесь успеха!
Перейти на страницу