Интеграция различных ИТ-систем — задача, с которой сталкиваются многие компании, особенно когда необходимо объединить все существующие решения в единую экосистему. Думаю, что все хорошо знакомы с тем самым спагетти-стайлом, страшилкой про то как не надо делать это объединение. Для наглядности картинка ниже.
Наведение общего порядка и уюта в межсистемных коммуникациях - задача достаточно глобальная, но, как известно, без первого шага не будет и пройденного пути. Этой статьёй мы открываем небольшой цикл о том как наша интеграционная low-code платформа Entaxy ION решает интеграционные задачи любой сложности. При этом процесс создания интеграций удобен и доступен и не требует глубоких знаний в области разработки.
Начнём. У вас есть две системы – 1С и CRM и вам требуется настроить обмен данных между ними. Театр начинается с вешалки, а процесс создания интеграции в Entaxy ION начинается с конфигурирования профилей систем. Продемонстрируем, что представляют собой профиль, коннектор и маршрут в рамках интеграционной платформы:
«Профиль» представляет собой описание интегрируемой системы, взаимодействие системы с платформой обеспечивает технический компонент — коннектор. Точки кастомизации доступны как на уровне профиля (IN-FLOW (pre-route/response), OUT-FLOW (pre-route/connector-selector/postprocess), так и коннектора (pre-route/response/pre-output/postprocess). За соединение систем отвечает маршрутизатор default-route.
Подробнее об архитектуре платформы вы можете узнать из ролика "Entaxy - архитектура и работа универсального коннектора".
Процесс построения интеграции включает несколько ключевых этапов:
Этапы интеграции
Настройка профилей
Первый шаг в создании интеграции – это настройка профилей взаимодействующих систем. Профиль – это описание внешней системы в рамках интеграционной платформы Entaxy ION.
На этом этапе определяется, с какими внешними системами будет происходить обмен данными, и для каждой системы создается профиль.
Настройка коннекторов
Здесь выбираются необходимые типы коннекторов (входные или выходные), которые будут использоваться для передачи и получения данных. Entaxy ION предоставляет поддержку всех компонентов Apache Camel. Наиболее часто используемые представлены в виде коннекторов Entaxy ION «из коробки», включая решения для работы с файлами, базами данных, брокером сообщений и другими популярными технологиями.
НАЗВАНИЕ |
НАПРАВЛЕНИЕ |
ОПИСАНИЕ |
|
IN |
OUT |
||
ARTEMIS |
V |
V |
для работы с брокером сообщений Apache ActiveMQ Artemis |
CUSTOM |
V |
V |
для передачи данных с помощью любых методов, поддерживающих Apache Camel |
FILE |
V |
V |
для файлового обмена данными |
FTP |
V |
V |
для обмена данными через протокол FTP |
FTPS |
V |
V |
для обмена данными через протокол FTPS |
SFTP |
V |
V |
для обмена данными через протокол SFTP |
MONGO |
V |
V |
для интеграции с MongoDB |
TELEGRAM |
V |
V |
для интеграции с мессенджером Telegram |
UNIFORM ACTIVE |
V |
V |
универсальный коннектор для периодического опроса системы, работающий в активном режиме |
UNIFORM PASSIVE |
V |
V |
универсальный коннектор для выдачи данных по запросу, работающий в пассивном режиме |
HTTP |
X |
V |
обмен данными по протоколу HTTP |
JDBC |
X |
V |
подключение к различным СУБД с помощью JDBC |
Каждый коннектор включает:
Базовые параметры: настройка действий перед обработкой данных, параметры обработки ошибок, настройка повторной доставки сообщений, маршруты, обработка ответов и другие.
Дополнительные настройки, уникальные для конкретного типа коннектора: например, для файлового коннектора можно указать путь к директории, а для HTTP – URL-адрес и параметры аутентификации.
Входной коннектор отвечает за получение данных из внешней системы. Для корректной обработки данных необходимо указать целевую систему, в которую они будут отправлены.
Выходной коннектор отвечает за передачу обработанных данных в целевую систему или их сохранение в указанном месте.
Для добавления коннектора к профилю перейдите на вкладку «Connectors», нажмите кнопку «Add connector» (либо используйте палитру коннекторов, перетащив плитку с нужным коннектором на диаграмму профиля), выберите тип коннектора и его направление (In или Out), заполните необходимые параметры и нажмите кнопку «Add» для добавления коннектора к профилю.
Создание файлового входного коннектора
Создание HTTP выходного коннектора
Настройка маршрутов
После настройки профилей и коннекторов следующий этап интеграции – настройка маршрутов для обработки данных. Маршрут определяет процесс обработки данных в платформе: от получения данных через входной коннектор до их передачи в целевую систему через выходной коннектор.
В рамках маршрута можно настроить различные процессы, такие как:
-
Преобразование данных
В процессе интеграции часто возникает необходимость преобразовывать данные из одного формата в другой. Entaxy ION поддерживает преобразование между форматами (XML, JSON, CSV и др.) с помощью встроенного инструмента Entaxy Transformation.
-
Обработка ошибок
Для повышения надежности маршрутов можно настроить механизмы обработки ошибок. Например, можно настроить повторные попытки доставки сообщений и запись ошибок в лог.
-
Агрегация данных
-
Entaxy ION поддерживает механизм агрегации, который позволяет объединять несколько сообщений в одно на основе заданных условий. Среди доступных критериев завершения агрегации:
определённое количество сообщений;
максимальное время ожидания новых сообщений;
наличие специальных признаков или параметров в данных.
-
Используя маршруты, можно настроить процесс, при котором данные из нескольких входных сообщений объединяются для их совместной обработки. Например, агрегация может быть полезна для:
сбора транзакций за определённый период;
группировки данных перед их отправкой в целевую систему;
формирования сводных отчётов из множества отдельных событий.
-
-
Добавление бизнес-логики на скриптовых языках (Groovy) или Java
-
Groovy — лёгкий и гибкий язык, встроенный в платформу, который идеально подходит для быстрого написания пользовательской логики. С его помощью можно:
Использовать динамическую типизацию, что позволяет избегать явного указания типов данных и ускоряет разработку;
Применять замыкания для передачи блоков кода как объектов, что упрощает работу с коллекциями и функциями;
Перегружать операторы, что позволяет создавать более компактный и выразительный код, например, для работы с математическими операциями;
Динамически изменять поведение классов и объектов (метапрограммирование), что даёт гибкость при настройке логики в реальном времени;
Интегрировать с Java: Groovy тесно интегрируется с Java, что позволяет использовать существующие библиотеки и классы Java в коде Groovy без дополнительных настроек. Это облегчает совместную работу с Java-реализациями и расширяет возможности интеграции с другими частями системы.
-
Java обеспечивает максимальную гибкость и масштабируемость для сложных сценариев интеграции. С его помощью можно:
Разрабатывать сложные алгоритмы обработки данных;
Реализовывать многоуровневую валидацию данных с учётом сложных бизнес-правил;
Генерировать динамические маршруты и управлять ими на основе параметров сообщений;
Управлять состоянием сообщений и процессов в рамках маршрутов;
И многое другое.
-
-
Дополнительные настройки
Также поддерживаются другие возможности, включая фильтрацию данных, маршрутизацию сообщений на основе условий и динамическую настройку маршрутов в зависимости от параметров.
Для редактирования маршрута перейдите на вкладку «Диаграмма профиля», где отображаются все доступные для изменения настройки и параметры маршрута. Внесите необходимые изменения, затем сохраните их непосредственно на диаграмме. На данный момент редактирование маршрутов осуществляется через XML-редактор, который предоставляет подсказки и автодополнение. В будущем планируется интеграция графического редактора для более интуитивного и визуального редактирования маршрутов.
Управление интеграцией
На заключительном этапе осуществляется управление всей интеграцией, включая запуск, остановку и настройку параметров профилей и коннекторов, что позволяет изменять конфигурацию интеграции в реальном времени без необходимости перезапуска системы.
Entaxy ION упрощает процесс интеграции, делая его гибким и управляемым. Entaxy ION позволяет в короткое время создавать даже самые сложные интеграционные маршруты.
Продолжение следует…