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

Динамика и развёртывание в C4

Статические представления отвечают на вопрос «из чего состоит система». Динамическая диаграмма отвечает на вопрос «как эти части взаимодействуют в одном важном случае». Она использует людей, контейнеры или компоненты из ранее построенной диаграммы и нумерует сообщения.

Для сценария записи на консультацию можно показать:

1. Студент выбирает свободный интервал в веб-приложении.
2. Веб-приложение передаёт запрос серверному приложению.
3. Служба записи проверяет личность через адаптер единого входа.
4. Служба записи проверяет доступность и сохраняет запись.
5. Серверное приложение публикует событие записи.
6. Обработчик уведомлений передаёт сообщение студенту и преподавателю.

Динамика создания записи на консультацию

Это не полная диаграмма последовательности: на ней не нужны все объекты, циклы и технические вызовы. Добавьте только такой порядок, который объясняет архитектурное решение, критичную зависимость, асинхронность или альтернативу. Для подробного протокола сценария используйте расширенную нотацию последовательностей и сценарии и потоки.

Диаграмма развёртывания C4 уточняет, где работают экземпляры контейнеров: в какой среде, на каком узле, в какой сети и с какими внешними зависимостями. Она нужна, когда размещение влияет на доступность, безопасность, производительность, стоимость или соблюдение ограничений.

Элемент Пример
Среда развёртывания учебная, тестовая, рабочая
Узел развёртывания управляемая платформа, виртуальная машина, кластер
Экземпляр контейнера экземпляр веб-приложения, серверного приложения, обработчика
Хранилище управляемая база данных, объектное хранилище
Сетевая связь закрытая сеть, внешний канал, защищённое соединение

На схеме сервиса записи веб-приложение и серверное приложение могут выполняться на платформе приложений, база данных — в управляемом хранилище, обработчик — в отдельной среде задач, а службы единого входа и уведомлений — за пределами границы проекта. Показывайте конкретные узлы только когда решение действительно зависит от них.

Развёртывание сервиса записи на консультации

Контейнеры — логическая форма системы. Развёртывание — конкретные экземпляры контейнеров и среда их выполнения. Поэтому один контейнер на диаграмме контейнеров может иметь несколько экземпляров в рабочей среде, а один узел — выполнять несколько контейнеров.

Для точной семантики узлов, сред выполнения, артефактов и связи размещения используйте диаграмму развёртывания UML и её расширенную нотацию. В C4 достаточно той физической детализации, которая объясняет архитектурное решение.

  • Повторять пользовательский сценарий во всех динамических диаграммах. Выбирайте только сложные или рискованные случаи.
  • Вводить на динамической диаграмме новый контейнер. Сначала добавьте его в статическую модель.
  • Рисовать серверы на диаграмме контейнеров. Перенесите их в представление развёртывания.
  • Считать каждый экземпляр отдельным контейнером. Экземпляр — реализация контейнера в окружении.
  • Описывать подробный сетевой протокол, когда он не влияет на решение. Это перегружает архитектурную карту.

Для динамики: элементы существуют на статической диаграмме; сообщения имеют порядок и смысл; сценарий связан с требованием или риском.

Для развёртывания: каждый экземпляр соответствует контейнеру; видны значимые среды, узлы и каналы; внешние системы остаются внешними; физическое решение можно связать с ограничением или ADR.

Далее: C4, UML и согласованность модели.