Entaxy

Управленческий слой

Аутентификация basic-auth

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

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

Управление правами доступа (permission)

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

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

API для управления системами (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 - модуль для поддержки актуальной схемы бд.