Шаг 1. Чтобы хоть что-то полезное работало

Рассмотрим самую простую систему, работающую на одном сервере. Там работает экземпляр платформы (программы).

Кейс: администратор домена выполняет API-метод для создания учетной записи другого пользователя.
ws dc

Веб-сервер (роль WS) – приложение платформы «Era», которое открывает на сервере HTTP порт для обслуживания API, и обрабатывает поступающие туда API-запросы. Поступает HTTP запрос – обрабатывается, отправляется ответ, подключение закрывается. Основной формат данных во всех API – JSON.

Основной объем полезных действий WS осуществляет только после авторизации (атрибут качества "защищенность"). Авторизация может производиться отдельным API-запросом, создавая сессию на Cookie-файлах, либо параметры авторизации указываются в каждом API-запросе к системе – логин и пароль. Система при этом должна заранее знать о существовании этого пользователя. Знает она о нем через сущность учетной записи пользователя (user), которая содержится в одном из доменов. Таким образом пользователь для выполнения API должен указать свои домен, логин и пароль.

Администратор домена – это особый пользователь, учетной записи которого выделена роль позволяющая выполнять запросы на управление сущностями домена, в частности просматривать, создавать, удалять, изменять (CRUD) учетные записи других пользователей домена.

seq ws dc simple

или детальнее

seq ws dc

Итак,

  1. Администратор домена выполняет HTTP запрос к серверу с установленной системой на порт HTTP, открытый веб-сервером. Осуществляет его к странице управления учетными записями (/api/crud/v1/user/create). В API-запросе он указывает домен, логин, пароль, а также другие параметры конкретного API-метода (в приведенном примере это data).

  2. WS осуществляет проверку наличия указанной учетной записи в домене путем запроса к доменному центру (роль DC).

  3. При наличии у учетной записи роли позволяющей выполнять запросы на управление сущностями домена WS авторизует запрос и передает его на исполнение доменному центру. Иначе ответ с ошибкой на API запрос.

  4. Доменный центр проверяет корректность параметров запроса и осуществляет CRUD-операцию создания учетной записи пользователя в домене администратора. Если параметры некорректны, то ответ с ошибкой на API-запрос (содержит причину). Затем

    1. сохраняет учетную запись в своей оперативной памяти,

    2. проводит запрос на добавление пользователя в таблицу пользователей в БД этого домена, подключенной к доменному центру.

    3. фиксирует в таблице истории изменений той же БД факт проведенной операции с упоминанием всех [модифицированных] полей.

Похожим образом создаются дочерние домены. Усложняющая разница, важная на этом этапе, состоит в том, что создание домена включает в себя создание новой базы данных в DomainDB. Соответственно запрос выполняется дольше и имеет больше вариантов ошибок.

Table 1. Используемые термины
Термин Определение

WS

!

DC

!

Domain Database (DomainDB)

!

Роль доступа (Role)

!

User

!

CRUD

!

БД домена

!

сущности домена

!

таблица истории изменений

!

таблица пользователей

!

Вопросы для повторения
  1. Какая роль обслуживает web-api запросы?

  2. Какие существуют способы авторизации для выполнения запросов?

  3. Какие данные необходимо указать для авторизации?

  4. Какой ролью доступа должен обладать пользователь для создания учетной записи нового пользователя?

  5. Какая роль выполняет операцию создания учетной записи?