entaxy-public/documentation/entaxy_main.adoc

12 KiB
Raw Blame History

Entaxy

Entaxy - шина, которую можно конфигурировать извне с помощью графического интерфейса или API, состоящая из модулей:

Entaxy

Управленческий слой(core):

basic-auth

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

Для разработчиков:
-имеет Api, который занимается Crud операциями,
-хранит учетные записи в базе данных,
-предоставляет файл с актуальной информацией для nginx,
-выставляет interсeptor для аутентификации в других сервисах,
-выставляет interсeptor для определения принадлежности аккаунта определённой системе.

permission

модуль, отвечающий за управление правами доступа.

Для разработчиков:
-имеет Api, который занимается Crud операциями
- хранит права в базе данных,
-(camel)компонент, который используется в маршрутах, для проверки возможности отправки из системы a в систему b.
-выставляет interсeptor для авторизации в служебных сервисах.

system-management-api

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

Для разработчиков:
-имеет Api, который занимается Crud операциями
-хранит параметры в базе данных,
-генерирует профиля и коннекторы на основе переданных через Api параметров и деплоит их через репозиторий nexus или файловую систему и cellar (блок Deployer) в шину.
-также имеет возможность Crud прав доступа над учетными записями систем.

system-registry

модуль, осуществляющий поддержку динамического управления профилями систем(профиль - это отражение параметров системы в шине)

Для разработчиков:
-хранит информацию о системах в базе данных,
-(camel)компонент, который используется в маршрутах для определения нужной системы и коннектора для отправки сообщения в нее.

system-group-registry

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

Для разработчиков:
-хранит информацию о группах в базе данных,
-(camel)компонент, который используется в маршрутах для определения нужной системы из группы.

events

модуль, для работы с топиками(по схеме Publisher (издатель)-Subscriber (подписчик)) для систем.

Для разработчиков:
-хранит информацию о топиках в базе данных,
-имеет Api(Rest), который занимается Crud операциями

schema

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

Для разработчиков:
-имеет Api, который занимается Crud операциями
-хранит информацию о загруженных схемах в базе данных,
-(camel)компонент, который используется в маршрутах для валидации xml через xsd, которую загрузили в бд.
-service, который подключается к xslt компоненту для подгрузки xsl из бд
-service, который подключается к cxf компоненту для подгрузки xsd и wsdl из бд

bridge

модуль, осуществляющий передачу сообщений в другую шину.

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

Error Handler

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

Централизованный обработчик ошибок для формирования кодов ошибок, их синхронного возврата клиенту и для асинхронного дублирования более подробного описания ошибки (для клиента и для Центральной Базы Интеграции).

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

Deployer

набор модулей осуществляющих работу с бандлами

Для разработчиков:
-deployer-api - интерфейс репозитория для хранения артефактов
-file-system-deployer - реализация репозитория в папке
-nexus-deployer - реализация репозитория в Sonartype Nexus
-cellar-deployer - система управления бандлами через Apache Cellar

Также как вспомогательные инструменты используется следующие модули:

сellar - модуль для загрузки сгенерированных blueprint в шину(в несколько карафов).
ignite - модуль для создания распределенного хранилища ключ-значение.(используется для более быстрой работы некоторых компонентов, которым нужно хранилище)
liquibase - модуль для поддержки актуальной схемы бд.

Клиентский слой

US - универсальный коннектор, через который можно отправлять сообщения в другие системы.
(делится на обычный и служебный)
Универсальный сервис

file-connector - коннектор, который сообщения для определенной системы отправляет с помощью файла(получая сообщение, проводит необходимые преобразования, нпрм архивацию, и складывает в определенную папку).

db-connector - коннектор, который осуществляет обмен сообщениями с системой через бд. (сообщение полученное из другой системы конвертируется в запись в бд, и для отправки сообщения в шину необходимо сделать запись в бд)

deployment schema

nsi - soap коннектор, который был поднят с помощью клиентской wsdl и работает по специальной схеме, определенной клиентом с помощью бд.
big-packets-connector - soap коннектор, через который можно отправлять сообщения в другие системы, предназначенный для отправки больших сообщений, которые отправляются по частям.

Необходимые для шины внешние модули

nginx(опционально) - балансировщик нагрузки, также занимается предварительной аутентификацией.
nexus(опционально) - необходим для хранения и динамической развертки блюпринтов.
db(поддерживается mssql и postgresql) esb_entaxy - необходима для хранения служебных данных(связанных с настройкой маршрутов в шине).
db(поддерживается mssql и postgresql) cache - необходима для хранения временных данных, связанных с определенным сообщением.
artemis - брокер сообщений.
file-storage(nfs) - необходим для работы сервиса больших пакетов, nginx и тд.

Схема прохождения пакета

Для разработчиков:

Message

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

Общее описание Entaxy: