Перейти к основному содержимому

Программная архитектура

Программная архитектура Платформы Multi-D включает следующие компоненты:

  • Среда выполнения (см. следующий рисунок). Представляет вычислительное окружение, необходимое для выполнения разработанного на базе Платформы Multi-D приложения и доступное во время его выполнения.

    Программная архитектура платформы.png
    Программная архитектура Платформы Multi-D: среда выполнения
  • Среда разработки. Представляет комплекс программных средств, например, редакторов, трансляторов, инструментов сборки, для разработки приложений на базе Платформы Multi-D. Среда разработки и ее связь со средой выполнения в Платформе Multi-D показаны на следующем рисунке.

    Архитектура среды разработки Платформы Multi-D.png
    Программная архитектура Платформы Multi-D: среда разработки и среда выполнения

Платформа Multi-D и приложения на ее основе состоят из клиентской части, разработанной на JavaScript и выполняющейся в браузере, и серверной части. Клиентская и серверная части взаимодействуют через пограничный шлюз на базе Nginx. Шлюз фильтрует потоки данных между клиентами и сервером, а также маршрутизирует запросы и балансирует нагрузку между микросервисами.

Платформа Multi-D включает следующие микросервисы:

  • Сервис пользовательского интерфейса динамически формирует пользовательский интерфейс клиента на основе метаданных компонентов интерфейса, а также типов запросов и типов данных.

  • Сервис аутентификации аутентифицирует пользователей, используя локальную базу данных пользователей, а также доверенные внешние поставщики аутентификации по протоколам OAuth2 и Active Directory.

  • Сервис авторизации контролирует права доступа к объектам и функциям Платформы Multi-D. Контроль прав доступа к компонентам пользовательского интерфейса, клиентские запросы к серверу Платформы Multi-D, межсервисные коммуникации внутри Платформы Multi-D, доступ к файлам и данным требуют предварительной настройки. Возможно расширение точек контроля прав доступа к любому компоненту Платформы Multi-D.

  • Сервис аудита обеспечивает ведение и хранение журналов событий безопасности в Платформе Multi-D. Список событий безопасности и точек их генерации является расширяемым.

  • Сервис доступа к данным выступает в роли слоя абстракции между объектной моделью бизнес-данных, используемой в Платформе Multi-D, и физическим реляционным хранилищем данных в PostgreSQL или Postgres Pro. Для доступа к данным в Платформе Multi-D используется протокол GraphQL.

    Хранилище файлов обеспечивает загрузку, хранение и выгрузку файлов любых типов и размеров. Протокол доступа к хранилищу файлов совместим с протоколом Amazon S3.

  • Сервис BPMS координирует исполнение бизнес-процессов. Ядро сервиса BPMS основано на программном обеспечении с открытом кодом Camunda и дополнено разработанными для Платформы Multi-D механизмами контроля прав доступа и исполнения процессов и их шагов.

  • Сервисы диагностики централизованно собирают, обрабатывают и хранят следующие диагностические данные:

    • журнал событий;
    • журнал трассировки;
    • метрики.

    Для хранения и обработки данных диагностики используется программное обеспечение с открытым кодом из стеков Grafana и Elasticsearch. Для сбора и передачи диагностических данных используются открытые стандарты OpenTelemetry, которые позволяют перенаправить диагностические данные во внешние по отношению к Платформе Multi-D сервисы хранения и обработки диагностической информации.

  • Сервисы серверной части Платформы Multi-D выполняются в среде ОС Linux с использованием контейнерной виртуализации на базе Docker и Docker Swarm. Использование контейнеров позволяет делать следующее:

    • развертывать Платформу Multi-D в физических и виртуальных средах;
    • обновлять и заменять отдельные компоненты и сервисы, не затрагивая остальные компоненты Платформы Multi-D;
    • масштабировать Платформу Multi-D горизонтально на несколько физических или виртуальных серверов.

Для коммуникации между сервисами Платформы Multi-D используются следующие протоколы:

  • HTTP и REST: для синхронных взаимодействий.
  • WebSocket и SignalR: для синхронных и асинхронных двунаправленных взаимодействий.
  • RabbitMQ: программный брокер сообщений для работы с очередями сообщений в сценариях асинхронного взаимодействия и событийной модели.

Для коммуникации между клиентами и сервером Платформы Multi-D используются следующие протоколы:

  • HTTP и REST: для синхронных взаимодействий.
  • WebSocket и SignalR: для синхронных и асинхронных двунаправленных взаимодействий, а также реализации событийной модели и отправки уведомлений.