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

Аутентификация 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 операции;
- хранит информацию о загруженных схемах в базе данных;
- Сamel компонент, который используется в маршрутах для валидации 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.

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

Cellar - модуль для загрузки сгенерированных blueprint в шину (в несколько карафов).

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

Liquibase - модуль для поддержки актуальной схемы бд.