Модель архитектуры С4
Модель С4 используется для графического изображения архитектуры системы и объяснения декомпозиции системы на элементы. Диаграммы в этой модели организуются по принципу увеличения масштаба и детализации элементов:
-
Уровень 1: диаграмма контекста (C1: system context diagram)
Отражает положение системы во внешнем контексте: возможные пользовательские роли и другие системы, непосредственно участвующие в работе.
-
Уровень 2: диаграмма контейнеров (C2: container diagram)
Разбивает систему на контейнеры (основные подсистемы) и отражает основные пути взаимодействия между ними.
-
Уровень 3: диаграмма компонентов (C3: component diagram)
Разбивает каждый контейнер на компоненты и отражает взаимодействие компонентов между собой (внутри одного контейнера) и с другими контейнерами.
-
Уровень 4: диаграмма кода (C4: code diagram)
Описывает элементы кода, с помощью которых реализуются компоненты. Этот уровень не будет описан в документации On-Premise.
Чтобы получить общее представление об устройстве комплекса On-Premise, вам будет достаточно изучить диаграммы уровней С1 и С2. Если же вам интересно устройство каждого сервиса, изучите диаграммы уровней С2 (с фокусом на отдельных сервисах) и С3.
Рекомендация
Чтобы расссмотреть диаграммы в увеличенном масштабе, кликните по нужному изображению правой кнопкой мыши и выберите Открыть картинку в новой вкладке или Сохранить картинку как.
C1: диаграмма системного контекста
В программном комплексе On-Premise предполагаются следующие роли:
- Пользователь: использует установленные продукты комплекса для решения задач.
- Инженер (DevOps): устанавливает и обслуживает систему.
- Оператор: контролирует доступ пользователей к системе.
Взаимодействие с хранилищами данных и публичными серверами обновлений описано в диаграммах следующих уровней.
C2: диаграмма контейнеров
Внутри комплекса On-Premise контейнер - это продукт 2ГИС, который реализует уникальную функцию (например, построение маршрутов), устанавливается отдельно и имеет свой ряд зависимостей. Каждая инсталляция On-Premise может иметь разный набор контейнеров в зависимости от того, какие задачи должен решать установленный комплекс.
Утилита 2GIS CLI является инструментом установки: она позволяет загружать с публичных серверов 2ГИС новые (и обновлять существующие) артефакты установки, с помощью которых разворачиваются все сервисы.
На диаграмме выше представлены все контейнеры, доступные для установки, а также все возможные связи между ними без детализации. Диаграммы ниже "увеличивают масштаб" этого представления и позволяют увидеть, с какими контейнерами взаимодействует каждый сервис в деталях.
C2: Утилита 2GIS CLI
Подробнее о структуре утилиты 2GIS CLI см. в документе Архитектура утилиты 2GIS CLI.
C2: Сервис лицензий
Подробнее о структуре сервиса лицензий:
C2: API карт
Подробнее о структуре API карт:
C2: API поиска
Подробнее о структуре API поиска:
C2: API навигации
Подробнее о структуре API навигации:
C2: 2ГИС Про
Подробнее о структуре 2ГИС Про:
C2: CityLens
Подробнее о структуре CityLens:
C2: Мобильный SDK
Подробнее о структуре мобильного SDK:
C2: GIS-платформа
Подробнее о структуре GIS-платформы:
C2: Platform Manager
Подробнее о структуре Platform Manager:
C3: диаграммы компонентов
Данный раздел иллюстрирует, из каких элементов состоит каждый контейнер (продукт или сервис).
C3: Сервис API-ключей
Подробнее о том, как взаимодействуют компоненты, описано в разделе Архитектура сервиса API-ключей.
C3: API карт
Подробнее о том, как взаимодействуют компоненты, описано в разделе Архитектура API карт.
C3: API поиска
Подробнее о том, как взаимодействуют компоненты, описано в разделе Архитектура API поиска.
C3: API навигации
Сервис навигации работает в 2 основных режимах: стандартный сценарий навигации и обработка асинхронных запросов.
Стандартный сценарий
API навигации обрабатывает запросы на построение маршрутов, содержащих не более 25 начальных и 25 конечных точек. При расчете маршрута может также учитываться информация о пробках и перекрытиях дорог в реальном времени.
Обработка асинхронных запросов
Если необходимый маршрут содержит большое количество точек, для расчета следует использовать Distance Matrix Async API.
Подробнее о том, как взаимодействуют компоненты в обоих сценариях, описано в разделе Архитектура API навигации.
C3: 2ГИС Про
Подробнее о том, как взаимодействуют компоненты, описано в разделе Архитектура 2ГИС Про.
C3: CityLens
Подробнее о том, как взаимодействуют компоненты, описано в разделе Архитектура CityLens.
C3: Мобильный SDK
Подробнее о том, как взаимодействуют компоненты, описано в разделе Архитектура мобильного SDK.
C3: GIS-платформа
Подробнее о том, как взаимодействуют компоненты, описано в разделе Архитектура GIS-платформы.