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