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 проекты.
Примечания
[править | править код]- ↑ 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)