Топология сети ODANT

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

Уровни иерархии

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

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

В аварийной ситуации, когда пропадает связь, узлы сети сохраняют возможность автономного функционирования. При этом страдают только взаимодействия с другими серверами. Возможно и целенаправленное отключение отдельных ветвей дерева от общей сети. Например, если партнер отключается от сервера поддержки (Support) вендора, то его сервер становится корневым для всех клиентов.

Разработка

Уровень вендора — разработка ядра системы и базовых модулей. На сервере Dev происходит тестирование ядра и модулей вендора. На сервере Test — отладка решений. По завершению тестирования обновленные версии поступают на Support, раздающий обновления всем узлам сети, для которых он является сервером поддержки.

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

Связь

С любого уровня можно обратиться к любому серверу. Если адресат находится в той же ветви ниже в иерархии, то инициатор соединения знает, как сопоставить платформенный адрес с IP. Если на том же уровне, или выше, или в другой ветви — инициатор обращается к своему серверу поддержки, тот при отсутствии нужной информации — к своему и так далее до корневого Support. Можно провести аналогию со службой DNS в интернете.

На иллюстрации выше сервер хочет обратиться к сущности с адресом 00000123456, которая находится в другой ветви иерархии сети. Запрос (1) поступает на уровень выше, но там информации об этом адресе нет, поэтому он переадресован еще выше (2). На этом уровне сервер поддержки уже знает, как найти нужную сущность, поэтому он возвращает IP-адрес (3), который по цепочке (4) доходит до спрашивающего. Теперь он может напрямую (5) взаимодействовать с адресатом.

Полная интеграция

Иерархическая сеть способна объединить все информационные системы, построенные на платформе ODANT. Она решает задачи актуализации версий ядра и модулей, организации потоков данных на уровне клиентов, значительно облегчает взаимодействие любых ранее не связанных систем. Остается добавить к этому расширение возможностей сети с помощью блокчейна — после завершения интеграции он эффективно расширит функционал единой системы безопасности и маршрутизации.