Сущности Entaxy
Данный раздел представляет основные сущности и их расшифровку в Entaxy.
Список сущностей
Сущность |
Описание |
Схема, визуально отображающая поток данных и компоненты, связанные с их обработкой внутри шины данных. |
|
Сущность за пределами интеграционной платформы Entaxy ION с которой необходимо обмениваться данными. |
|
Представление системы внутри Entaxy. Сообщения можно адресовать непосредственно системе по имени или идентификатору. |
|
Визуальное представление структуры интеграции и доступ к настройкам компонентов. |
|
Компоненты, обеспечивающие связь между вашей системой и внешними системами, обеспечивая обмен данными. |
|
Настройки, определяющие параметры и правила интеграции между различными системами или сервисами. |
|
Маршрутизатор, соединяющий систему отправителя с другими сущностями архитектуры Entaxy. |
|
Маршрутизаторы в системе определяют, как сообщения перемещаются и обрабатываются, а также осуществляют выбор коннекторов для передачи сообщений внутри системы. |
|
Компонент управляющий набором предопределенных маршрутов. |
|
Хранилища, управляющие доступом к данным и их хранением. |
Все установленные параметры, включая профили, коннекции и коннекторы, сохраняются в теге manifest артефакта в формате base64. При необходимости вы можете воспользоваться ими для восстановления работоспособности. |
Расшифровка понятий
Интеграционная схема
Интеграционная схема наглядно отображает, как в рамках платформы Entaxy ION происходит передача и обработка данных.
Дополнительная информация:
Внешняя система
Внешняя система представляет собой сущность, находящуюся за пределами интеграционной платформы Entaxy ION, с которой необходимо обмениваться данными.
Учетная запись (account) - учетные данные систем, используемые для взаимодействия с шиной данных. Для каждой системы должна быть настроена соответствующая учетная запись для возможности отправки сообщений через шину.
Доступ (permission) - разрешение на взаимодействие между двумя системами.
Профили внешних систем
Профиль - описание внешней системы в рамках интеграционной платформы Entaxy ION. Для взаимодействия с внешней системой через шину данных сначала необходимо создать профиль данной системы в шине, затем добавить к нему нужные коннекторы, чтобы обеспечить передачу данных. Сразу после этого профиль будет готов к дальнейшему взаимодействию.
Дополнительная информация:
Диаграмма профиля
Диаграмма профиля визуализирует поток данных и операции в интеграционной схеме.
Она интерактивная и позволяет настраивать компоненты.
Получение данных:
-
Входной поток профиля отправляющей системы (IN-FLOW). Точки кастомизации:
-
pre-route - настройка обработки данных перед их дальнейшей маршрутизацией внутри шины данных.
-
response - настройка обработки ответа перед его передачей во входной коннектор.
-
-
Входной коннектор. Отвечает за получение данных из внешней системы. Точки кастомизации:
-
pre-route - настройка обработки данных перед их передачей во входной поток профиля.
-
response - настройка обработки ответа и выполнения необходимых действий на основе этого ответа перед его передачей в отправляющую систему.
-
Отправка данных:
-
Выходной поток профиля принимающей системы (OUT-FLOW). Точки кастомизации:
-
pre-route - настройка обработки данных перед их передачей в выходной коннектор.
-
postprocess - позволяет осуществить постобработку ответа перед маршрутизацией внутри шины данных.
-
-
Выходной коннектор. Отвечает за получение данных внешней системой. Точки кастомизации:
-
pre-output - позволяет настроить обработку данных до их передачи в принимающую систему
-
postprocess - позволяет настроить и осуществить постобработку отправленного ответа до его передачи в выходной поток профиля принимающей системы
-
Дополнительная информация:
Коннекции
Любой дистрибутив Entaxy ION имеет преднастроенный набор коннекций к компонентам, которые входят в поставку ПО.
В текущей версии этот набор следующий:
Коннекция |
Описание |
коннекция к брокеру сообщений Artemis |
|
коннекция к базе данных cache |
|
коннекция к базе данных storage |
|
коннекция к файловой системе |
|
коннекция к файловой системе для внутреннего использования |
Дополнительно можно создать любое количество необходимых коннекций следующих типов:
Коннекция |
Описание |
для подключения к брокеру сообщений Artemis |
|
для подключения к файловой системе |
|
для подключения к ftp серверу |
|
для подключения к ftps серверу |
|
для подключения к серверу баз данных с помощью JDBC. Поддерживаемые СУБД, протестированные на совместимость: - Oracle (версии: 12c release 2, 19c, 23c) |
|
для подключения к серверу mongo-db |
|
для подключения к sftp серверу |
|
для подключения к мессенджеру telegram |
После изменения конфигурации системных коннекций необходимо перезагрузить Karaf, чтобы изменения вступили в силу. |
Коннекторы
Коннекторы в платформе Entaxy ION — это готовые инструменты, которые обеспечивают связь между Entaxy ION и внешними системами. Они упрощают настройку обмена данными, предоставляя удобный интерфейс для взаимодействия.
Соединение с брокером сообщений через протоколы AMQP, JMS, MQTT и STOMP настраивается с помощью компонентов Camel через интерфейс custom-connector. Аналогично, custom-connector позволяет настроить взаимодействие с любым компонентом Camel, например, Kafka.
Пользовательский интерфейс позволяет настраивать компоненты Apache Camel, используя XML DSL фреймворка Camel. Для использования Java DSL необходимо создать проект, который может быть собран в виде OSGi-бандла и задеплоен в шину.
Использование коннекторов упрощает интеграцию с новыми системами, не требуя глубоких технических знаний и позволяя настраивать параметры без привлечения разработчиков.
Доступные типы коннекторов
Название коннектора | Направление [IN] | Направление [OUT] | Описание |
---|---|---|---|
✅ |
✅ |
Передача данных с помощью брокера сообщений Apache ActiveMQ Artemis |
|
✅ |
✅ |
Передача данных с помощью любого способа, поддерживающего Apache Camel |
|
✅ |
✅ |
Файловый обмен данными |
|
✅ |
✅ |
Передача данных по протоколу FTP |
|
✅ |
✅ |
Передача данных по протоколу FTPS |
|
❌ |
✅ |
Подключение к различным СУБД с помощью JDBC |
|
❌ |
✅ |
Обмен данными по протоколу HTTP |
|
✅ |
✅ |
Интеграция с базой данных MongoDB |
|
✅ |
✅ |
Передача данных по защищенному протоколу SFTP |
|
✅ |
✅ |
Интеграция с мессенджером Telegram для обмена данными |
|
✅ |
✅ |
Универсальный коннектор для периодического опроса системы, работающий в активном режиме |
|
✅ |
✅ |
Универсальный коннектор для выдачи данных по запросу, работающий в пассивном режиме |
Дополнительная информация:
Маршрут по умолчанию (default-route)
Маршрутизатор, соединяющий систему отправителя с другими сущностями архитектуры Entaxy. По умолчанию направление пакета производится в сущность с типом система, но логика может быть изменена для каждой системы индивидуально.
Маршрутизация выполняется по служебным заголовкам ENTAXY_Destination
и ENTAXY_DestinationType
.
ENTAXY_Destination
содержит наименование сущности, определяемое тегом <m:set-destination/>.
ENTAXY_DestinationType
может принимать значения:
-
system.name(по-умолчанию)
-
system-group.name
-
queue.name
-
topic.name
Стандартный маршрутизатор:
<?xml version="1.0" encoding="UTF-8"?>
<entaxy:object-route
xmlns="http://camel.apache.org/schema/blueprint"
xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:entaxy="http://www.entaxy.ru/schemas/1.0"
xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0">
<m:standard-router />
</entaxy:object-route>
Пример использования служебных заголовков:
<!--BEGIN standard-router-->
<choice xmlns:camel="http://camel.apache.org/schema/blueprint" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<when>
<simple>${headers.ENTAXY_Destination} == null</simple>
<log loggingLevel="ERROR" message="${header.NTX_loggingKey} Destination isn't set"/>
<throwException exceptionType="java.lang.IllegalArgumentException" message="Destination isn't set"/>
</when>
<when>
<simple>${headers.ENTAXY_DestinationType} == 'system.name'</simple>
<toD uri="system:${headers.ENTAXY_Destination}"/>
</when>
<when>
<simple>${headers.ENTAXY_DestinationType} == 'system-group.name'</simple>
<toD uri="system-group:${headers.ENTAXY_Destination}"/>
</when>
<when>
<simple>${headers.ENTAXY_DestinationType} == 'queue.name'</simple>
<toD uri="entaxy-broker:queue:${headers.ENTAXY_Destination}"/>
</when>
<when>
<simple>${headers.ENTAXY_DestinationType} == 'topic.name'</simple>
<toD uri="entaxy-broker:topic:${headers.ENTAXY_Destination}"/>
</when>
<otherwise>
<toD uri="system:${headers.ENTAXY_Destination}"/>
</otherwise>
</choice>
Дополнительная информация:
Маршрутизаторы
Механизмы маршрутизации позволяющие выполнить доставку сообщений согласно определенным условиям. Это поведение может быть легко модифицировано без необходимости вносить изменения в сами системы.
-
Pre-route (In-Flow) - позволяет настроить и обработать данные перед их дальнейшей маршрутизацией внутри шины данных.
-
Pre-route (Out-Flow) - позволяет настроить и обработать данные перед их передачей в выходной коннектор.
Дополнительная информация:
Библиотека маршрутов
В разделе Библиотека маршрутов вы можете создавать и настраивать различные библиотеки маршрутов для дальнейшего использования в интеграциях.
Доступные типы маршрутов:
-
AGGREGATOR
Маршруты для объединения нескольких сообщений в одно на основе определенных условий. -
QUARTZ
Маршруты, которые используют планировщик задач QUARTZ для запуска процессов по расписанию. -
TIMER
Маршруты, запускающиеся через регулярные интервалы времени. -
ROUTE-CALLABLE
Динамически создаваемые маршруты, которые можно вызывать программно.