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 года.

Литература

  • Tijs Rademakers and Jos Dirksen, «Open-Source ESBs in Action» (Manning Publications: Oct 2008, ISBN 1-933988-21-5; ISBN 978-1-933988-21-4), https://web.archive.org/web/20081121175852/http://www.esbinaction.com/
  • Peter Delia and Antoine Borg, «Mule 2: A Developer’s Guide» (Apress: Nov 2008, ISBN 1-4302-0981-X; ISBN 978-1-4302-0981-2), http://www.ricston.com/mule-2-developer-guide-to-esb-and-integration-platform/
  • David Dossot and John D’Emic, «Mule in Action» (Manning Publications: Apr 2009, ISBN 1-933988-96-7; ISBN 978-1-933988-96-2)
  • Getting Started with Mule Cloud Connect (O’Reilly Media: Dec 2012, Print ISBN 978-1-4493-3100-9; ISBN 1-4493-3100-9; Ebook ISBN 978-1-4493-3095-8; ISBN 1-4493-3095-9), http://oreil.ly/mule-cloud
  • David Dossot, John D’Emic and Victor Romero, «Mule in Action, Second Edition» (Manning Publications, Early Access Program)

Ссылки

  • [1]