Управление и настройка
Аутентификация 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, который выполняет CRUD операции.
Реестр схем (schema)
Модуль, осуществляющий хранение всех схем, через которые делаются преобразования сообщений, валидация, поднятие сервиса в шине.
Для разработчиков:
- имеет API, который выполняет CRUD операции;
- хранит информацию о загруженных схемах в базе данных;
- Camel компонент, который используется в маршрутах для валидации xml через xsd, которую загрузили в бд;
- Service, который подключается к xslt компоненту для подгрузки xsl из бд -service, который подключается к cxf компоненту для подгрузки xsd и wsdl из бд.
Мост (bridge)
Модуль, осуществляющий передачу сообщений в другую шину.
Для разработчиков:
- знает о всех подключенных шинах и их именах в рамках всей системы;
- осуществляет передачу сообщений через ArtemisMQ, также получает сообщения из другой шины;
- в перспективе будет создан компонент который по названию будет определять в какую шину отправить, а не напрямую через очереди, как это сделано сейчас.
Обработчик ошибок (Error Handler)
Модуль, осуществляющий за обработку ошибок в шине.
Централизованный обработчик ошибок для формирования кодов ошибок, их синхронного возврата клиенту и для асинхронного дублирования более подробного описания ошибки (для клиента и для Центральной Базы Интеграции).
Для разработчиков:
- знает о всех подключенных шинах и их именах в рамках всей системы;
- осуществляет передачу сообщений через artemis, также получает сообщения из другой шины;
- в перспективе будет создан компонент, который по названию будет определять в какую шину отправить, а не напрямую через очереди, как это сделано сейчас.
Установщик (Deployer)
Набор модулей осуществляющих работу с бандлами
Для разработчиков:
- deployer-api - интерфейс репозитория для хранения артефактов;
- file-system-deployer - реализация репозитория в папке -nexus-deployer;
- реализация репозитория в Sonartype Nexus;
- cellar-deployer - система управления бандлами через Apache Cellar.
Также, как вспомогательные инструменты используется следующие модули:
Cellar - модуль для загрузки сгенерированных blueprint в шину(в несколько карафов)
Ignite - модуль для создания распределенного хранилища ключ-значение.(используется для более быстрой работы некоторых компонентов, которым нужно хранилище)
Liquibase - модуль для поддержки актуальной схемы бд.