Mule ESB — легковесная интеграционная платформа (сервисная шина предприятия — ESB), которая позволяет разработчику объединять различные информационные системы на основе принципов обмена сообщениями (message routing), сопоставления данных (data mapping), управления сообщениями (orchestration), надежности (контроль за обменом сообщениями), защиты (использование https и опциональных коннекторов) и масштабирования между узлами (коннекторами).
Mule ESB | |
---|---|
Тип | ESB |
Разработчик | Mulesoft |
Написана на | Java |
Операционная система | кроссплатформенное программное обеспечение |
Последняя версия | 4.4.0 (Сентябрь 5, 2021) |
Репозиторий | github.com/mulesoft/mule |
Лицензия | CPAL |
Сайт | mulesoft.org |
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 проекты.
Примечания
править- ↑ The Role of the Enterprise Service Bus . Дата обращения: 19 сентября 2013. Архивировано 23 октября 2013 года.
- ↑ 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)