Шаг 2. Многодоменная система для обеспечения инкапсуляции данных

Дополним деталями шаг 1, включив в рассмотрение дерево доменов.

Домены существуют в структуре дерева произвольной глубины. У каждого домена есть родительский домен. И только один домен не имеет родителя – это мастер-домен. Мастер-домен – корень для всех других доменов. Имеет специальный состав типов сущностей, отличающийся от других доменов. Мастер-домен служит для обеспечения функционирования доменного дерева и ряда функций централизованного управления системой.

Любой домен может содержать дочерние домены. Их составом управляет администратор текущего домена. Создавая дочерний домен, администратор выделяет туда часть лицензий своего домена, таким образом количественные лицензии распределяются от мастер-домена по всему дереву. Сам мастер-домен получает их из лицензионного файла. Имена доменов содержат только строчные латинские буквы, цифры, тире, символ подчеркивания и точки в качестве разделителей. Например domain.r2 может содержать дочерние домены a1.domain.r2, 123.domain.r2 и т.д. При этом администратор мастер-домена при наличии соответствующей лицензионной возможности может задавать произвольные имена дочерним доменам. Дочерние домены мастер-домена относятся к категории доменов первого уровня.

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

В соответствии с действиями шага 1, администратор А создает дочерний домен Б. Для него создается база данных в DomainDB. Какие же учетные данные предоставить администратору Б?

Чтобы администратор Б сумел что-либо сделать в домене Б, домен Б должен его авторизовать, соответственно содержать его учетную запись. Администратор А не может получить доступа к домену Б, поскольку он является администратором домена А, и не является администратором вновь созданного домена Б.

Решению этой задачи служат два независимых подхода на выбор:

  1. Базы данных доменов не создаются с нуля, а копируются из шаблонной базы данных домена (ШБДД) вместе с ее содержимым. Достаточно в ШБДД создать учетную запись admin – admin, как это принято на оборудовании, и созданный домен будет содержать учетную запись с этими дефолтными логином и паролем. Этой учетной записью можно воспользоваться с тем, чтобы изменить ее пароль, или создать новую учетную запись, а эту удалить.

  2. Администратор А выполняет CRUD-запрос на создание учетной записи в дочернем домене. Этому служит метод /api/crud/v1/domainuser/create. Таким образом администратор А имеет возможность задать произвольные логин и пароль для учетной записи администратора Б. Администратор А может выполнять и остальные CRUD запросы к учетным записям пользователей дочерних доменов.

seq multidomain domain tree Теперь WS может независимо обрабатывать запросы от администраторов обоих доменов – каждый администратор управляет сущностями только своего домена (исключая кейс domainuser). Если каждый из них, например, создаст еще по дочернему домену, то схема дерева доменов и последовательность обслуживания будут следующими (см.рис.)

DC владеет информацией обо всем доменах и их сущностях и предоставляет доступ к ней внутренним сервисам системы. Это основное назначение этой роли.

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

Дерево доменов

!

Мастер-домен

!

Типы сущностей

!

дочерний домен

!

домен первого уровня

!

домен второго уровня

!

лицензия

!

количественные лицензии

!

лицензионный файл

!

crud-запрос

!

шаблонная база данных домена

!

Вопросы для повторения
  1. Что является корнем дерева доменов?

  2. Какой домен может содержать дочерние домены?

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

  4. Каким образом можно создать домен google.com?