Интеграция корпоративных информационных систем с помощью Mule ESB

У владельцев и руководства бизнеса есть 2 выхода из этого технологического тупика:

  1. Написать новую монолитную информационную систему, которая будет включать в себя функции уже имеющихся и эксплуатируемых систем.
  2. Организовать автоматический перенос и конвертацию данных между имеющимися системами без их глобального изменения.

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

 Базовое ПО для выполнения подобной интеграции

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

Нашими специалистами была выполнена интеграция информационных систем (1С и внешние сервисы) для федеральной сети розничных магазинов на базе MULE ESB CE.

Были разработаны архитектурные решения:

  • двухуровневая система логирования всех операций (родительская операция и дочерние операции);
  • автоматическое построение маршрутов доставки на основе метаданных, хранящихся в БД;
  • автоматическая конвертация данных на основе сценариев написанных на языке 1С, для этих целей был разработан метаконвертер языка сценариев из 1С в Groovy, который непосредственно выполнял конвертацию;
  • разработан MuleConnector к сторонней системе (CRM);
  • разработаны маршруты доставки данных.

    Используемые технологии:

Языки программирования: Java, Groovy
Базовый фреймворк: MULE ESB
Библиотеки: Apache Commons

Что такое Mule ESB?

Mule ESB — это легковесная интеграционная платформа (сервисная шина масштаба предприятия – ESB), позволяющая разработчикам быстро и легко организовывать обмен между разнообразными приложениями путем обмена данными.

С помощью Mule ESB можно с минимальными затратами интегрировать между собой информационные системы, которые уже есть у компании, сервисы и приложения, независимо от технологий которые они используют, включая JMS, веб сервисы (Web Services), JDBC, HTTP и многие другие. Интеграционная шина может интегрировать события и управлять их взаимодействием как в реальном времени, так и в пакетном режиме, так же шина обладает множеством средств подключения к ней, независящих от языка программирования и технологий с помощью которых написана интегрируемая система.

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

  • Создание и хостинг сервисов – шина может выступать в качестве легковесного контейнера многократно используемых сервисов.
  • Посредничество между сервисами (Service mediation) – шина «защищает» сервисы от необходимости знать форматы сообщений поступающих от приложений и протоколы, по которым эти сообщения были доставлены. Это позволяет отделить бизнес логику сервисов от реализации обмена сообщениями и обращаться к сервисам не заботясь об их фактическом расположении.
  • Маршрутизация сообщений – маршрутизация, фильтрация, агрегирование и повторная отправка сообщений на основе контента сообщений и заданных правил.
  • Преобразование данных – в ходе передачи данные могут преобразовываться в разнообразные форматы и передаваться с помощью различных транспортных протоколов.