RIW:Среда сетевого взаимодействия на базе Корневого Сервера

Материал из ЛОКАРУС
Перейти к: навигация, поиск

Статья еще не закончена

Содержание

Введение

Смысл всего этого - гальванически отделить рабочие места клиентов от телематического программного обеспечения, таким образом

  • во-первых, унифицировать интерфейс доступа к данным со стороны конечного юзера,
  • во-вторых - радикально снизить нагрузку на телематический сервер.

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

Концепция

Топологически система сетевого взаимодействия построена по принципу “звезды”. В центре ее - Корневой сервер (КС), который с одной стороны осуществляет асинхронный обмен данными с Конечными клиентскими серверами (ККС), с другой - обеспечивает возможность сторонним приложениям получать данные с Конечных серверов через JSON интерфейс посредством HTTP/HTTPS запросов.

Принципы авторизации

Для получения доступа к данным в системе должна быть создана учетная запись Пользователя. Основная учетная запись создается на Конечном сервере его владельцем, который определяет для нее параметры входа - логин и пароль, а также список доступного транспорта.

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

Авторизация пользователя в системе осуществляется посредством HTTP аутентификации (basic или digest), т.е. логин и пароль передается в HTTP заголовке каждого запроса к серверу.

Понятие сессии

Сессия - это сеанс работы конечного пользователя с системой. Любой запрос Пользователя к Корневому серверу инициирует создание Сессии. При этом Корневой сервер определяет по полученному в HTTP заголовке запроса логину параметры Конечного сервера, с которого Пользователь был делегирован, отправляет на Конечный сервер логин и пароль для проверки, и в случае успешной авторизации получает с него детальные параметры Пользователя и список доступного транспорта.

Корневой сервер создает для Пользователя дескриптор Сессии, в рамках которого осуществляется контроль запросов Пользователя и асинхронное получение данных с Конечного сервера. Список таких дескрипторов формирует список активных пользователей в рамках Корневого сервера.

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

Завершение работы

Корневой сервер контролирует активность Пользователя, и завершает Сессию после установленного в системе периода бездействия (по умолчанию - 15 минут). При этом Конечному серверу отправляется сигнал о необходимости прекращения трансляции текущих навигационных данных.

Конечный сервер периодически сверяет собственный список активных пользователей со списком дескрипторов Сессий Корневого сервера, и в случае расхождений корректирует собственный список и список транспорта для трансляции.

Кроме того существует специальный запрос с помощью которого Пользователь может завершить свой сеанс работы с системой принудительно.

Требования к системе

Конечные сервера, работающие с системой межсерверного обмена, должны иметь версию не ниже 3.1.197

Адреса Корневого сервера, указываемые в настройках Конечного сервера: root.locarus.ru (Бельгия, DNS - Spaceweb), root.locarus.pro (Бельгия, DNS - 1gb) - основной сервер, reserved.locarus.ru (Бельгия, DNS - Spaceweb), reserved.locarus.pro (Бельгия, DNS - 1gb), rus.locarus.ru (Россия, DNS - Spaceweb), rus.locarus.pro (Россия, DNS - 1gb) - резервные. Поддерживаемые в настоящее время порты - 2020, 2021, 2022.

Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты