Сущности Entaxy

Данный раздел представляет основные сущности и их расшифровку в Entaxy.

Список сущностей

Сущность

Описание

Интеграционная схема

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

Внешняя система

Сущность за пределами интеграционной платформы Entaxy ION с которой необходимо обмениваться данными.

Профили внешних систем

Представление системы внутри Entaxy. Сообщения можно адресовать непосредственно системе по имени или идентификатору.

Диаграмма профиля

Визуальное представление структуры интеграции и доступ к настройкам компонентов.

Коннекторы

Компоненты, обеспечивающие связь между вашей системой и внешними системами, обеспечивая обмен данными.

Коннекции

Настройки, определяющие параметры и правила интеграции между различными системами или сервисами.

Маршрут по умолчанию (default-route)

Маршрутизатор, соединяющий систему отправителя с другими сущностями архитектуры 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 имеет преднастроенный набор коннекций к компонентам, которые входят в поставку ПО.

В текущей версии этот набор следующий:

Коннекция

Описание

entaxy-broker

коннекция к брокеру сообщений Artemis

entaxy-db-cache

коннекция к базе данных cache

entaxy-db-storage

коннекция к базе данных storage

entaxy-file

коннекция к файловой системе

entaxy-file-internal

коннекция к файловой системе для внутреннего использования

Дополнительно можно создать любое количество необходимых коннекций следующих типов:

Коннекция

Описание

ARTEMIS

для подключения к брокеру сообщений Artemis

FILE

для подключения к файловой системе

FTP

для подключения к ftp серверу

FTPS

для подключения к ftps серверу

JDBC

для подключения к серверу баз данных с помощью JDBC.

Поддерживаемые СУБД, протестированные на совместимость:

- Oracle (версии: 12c release 2, 19c, 23c)
- PostgreSQL (версии: 12.15, 14.x, 15.3, 16.2)
- H2 (версии: 1.4.x)
- MySQL (версии: 5.7, 8)
- Microsoft SQL Server (версии: 2017, 2019, 2022)

MONGO

для подключения к серверу mongo-db

SFTP

для подключения к sftp серверу

TELEGRAM

для подключения к мессенджеру 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] Описание

ARTEMIS

Передача данных с помощью брокера сообщений Apache ActiveMQ Artemis

CUSTOM

Передача данных с помощью любого способа, поддерживающего Apache Camel

FILE

Файловый обмен данными

FTP

Передача данных по протоколу FTP

FTPS

Передача данных по протоколу FTPS

JDBC

Подключение к различным СУБД с помощью JDBC

HTTP

Обмен данными по протоколу HTTP

MONGO

Интеграция с базой данных MongoDB

SFTP

Передача данных по защищенному протоколу SFTP

TELEGRAM

Интеграция с мессенджером Telegram для обмена данными

UNIFORM :: ACTIVE

Универсальный коннектор для периодического опроса системы, работающий в активном режиме

UNIFORM :: PASSIVE

Универсальный коннектор для выдачи данных по запросу, работающий в пассивном режиме

Дополнительная информация:

Маршрут по умолчанию (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
    Динамически создаваемые маршруты, которые можно вызывать программно.

Репозитории

Репозитории играют важную роль в управлении артефактами и ресурсами в системе Entaxy ION.