MuleESB (MuleESB)

Перейти к навигации Перейти к поиску
Mule ESB
Тип ESB
Разработчик Mulesoft
Написана на Java
Операционная система кроссплатформенное программное обеспечение
Последняя версия 4.4.0 (Сентябрь 5, 2021)
Репозиторий github.com/mulesoft/mule
Лицензия CPAL
Сайт mulesoft.org

Mule ESB — легковесная интеграционная платформа (сервисная шина предприятия — ESB), которая позволяет разработчику объединять различные информационные системы на основе принципов обмена сообщениями (message routing), сопоставления данных (data mapping), управления сообщениями (orchestration), надежности (контроль за обменом сообщениями), защиты (использование https и опциональных коннекторов) и масштабирования между узлами (коннекторами).

Mule ESB является открытым программным обеспечением (CPAL-лицензия). Название Mule (Мул) было дано, так как Mule ESB «берёт на себя большую разработческую нагрузку» (облегчает труд разработчика интеграционной системы и обеспечивает должную производительность).

Идеология ESB

[править | править код]

ESB — это разновидность сервис-ориентированной архитектуры, предполагающая использование заимствованного из электроники понятия общей шины, заменяющей «салат из проводов» (point-to-point connections). Особенно хорошо эта архитектура зарекомендовала себя для задачи интеграции приложений предприятия, разработанных разными производителями.[1]

Основными задачами ESB являются:

  • Маршрутизация обмена сообщениями между службами (services)
  • Разрешение несогласованностей между взаимодействующими компонентами службы
  • Развертывание (deployment) и управление версиями служб
  • Организация пользования резервными службами
  • Предоставление сервисам услуг общего характера, таких, как обработка событий, преобразования форматов данных и сообщений, управление очередями для событий и сообщений, безопасность или обработку исключений, преобразование протоколов (HTTP, FTP, REST, SOAP, JSON, DCOM, CORBA, SAP RFC и т. д.).

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

Архитектура Mule ESB

[править | править код]

Платформа ориентирована на Java, но может быть брокером для других платформ, таких, как .NET с помощью веб-служб или сокетов.

Архитектура представляет собой масштабируемый[2], распределённый объект-брокер, который может легко управлять взаимодействиями между приложениями различных производителей, включая облачные и с использованием почти всех современных протоколов.

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

Mule ESB в качестве элементов обработки сообщений (трансформаторов) может использовать вставки кода на популярных языках программирования (Java, Groovy, Ruby, JavaScript, Python). Исходные коды Mule ESB написаны на Java (платформа Java EE) и соответственно поддерживается взаимодействие с данным стеком технологий (готовое приложение может быть запущено на сервере приложений Apache Tomcat).

Mule ESB построена на принципе обмена сообщениями между коннекторами — объект «MuleMessage» содержит внутри себя объект «Payload» — полезная нагрузка сообщения. Путём трансформирования и маршрутизации сообщений можно создать необходимый интеграционный процесс (flow). Mule ESB позволяет создавать интеграционные процессы (flow) с использованием паттернов (pattern — не имеют графического отображения в MuleStudio) или непосредственно flow (flow конструируется путём подключения компонентов из нужных палитр MuleStudio). flow Mule ESB являются XML схемами. Приложение может содержать несколько flow для решения различных задач.

Возможности Mule ESB

[править | править код]
  • Mule позволяет связываться с рекордным количеством протоколов: SOAP, REST, JMS, MQ, JBI, AQ, Caching, JavaSpaces, GigaSpaces, Email, IM, JCA, AS400 Data Queues, System I/O.
  • интеграция приложений или систем непосредственно или с использованием облачных коннекторов
  • использование коннекторов «из коробки» для интеграции SaaS приложений
  • создание и экспонирование(предоставление в публичный доступ) API
  • использование готовых API
  • создание веб-сервисов управляющих сообщениями от других веб-сервисов
  • создание интерфейсов для экспонирования приложений (предоставления в публичный доступ)
  • интеграция B2B с решениями, которые просто защищать, имеют высокую эффективность и просты в развертывании
  • вывод приложений в облачные сервисы

Для разработчика предоставляется инструментарий «Mule Studio» — среда разработки основанная на популярной IDE (интегрированной среде разработки) Eclipse, позволяет создавать, запускать и отлаживать Mule проекты.

Примечания

[править | править код]
  1. The Role of the Enterprise Service Bus. Дата обращения: 19 сентября 2013. Архивировано 23 октября 2013 года.
  2. Mule: A Case Study. Дата обращения: 11 мая 2022. Архивировано 8 марта 2022 года.

Литература

[править | править код]