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