RIW:Среда сетевого взаимодействия на базе Корневого Сервера
Murray (обсуждение | вклад) (Новая страница: «{{Notready}} Как строится классическая навигационная мониторинговая система? Есть навигацио…») |
Murray (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
{{Notready}} | {{Notready}} | ||
− | |||
− | |||
== Концепция == | == Концепция == | ||
Версия 09:02, 22 ноября 2013
Статья еще не закончена
Содержание |
Концепция
Топологически система сетевого взаимодействия построена по принципу “звезды”. В центре ее - Корневой сервер (КС), который с одной стороны осуществляет асинхронный обмен данными с Конечными клиентскими серверами (ККС), с другой - обеспечивает возможность сторонним приложениям получать данные с Конечных серверов через JSON интерфейс посредством HTTP/HTTPS запросов.
Принципы авторизации
Для получения доступа к данным в системе должна быть создана учетная запись Пользователя. Основная учетная запись создается на Конечном сервере его владельцем, который определяет для нее параметры входа - логин и пароль, а также список доступного транспорта.
После этого учетная запись делегируется на Корневой сервер, для чего в интерфейсе администратора Конечного сервера предусмотрена специальная операция. Корневой сервер хранит в своей базе данных созданную в процессе делегирования корневую учетную запись, которая включает логин делегированного Пользователя, который должен быть уникален в рамках всей системы, и параметры сервера, с которого Пользователь был делегирован. Пароль учетной записи в базе данных Корневого сервера НЕ хранится.
Авторизация пользователя в системе осуществляется посредством HTTP аутентификации (basic или digest), т.е. логин и пароль передается в HTTP заголовке каждого запроса к серверу.
Понятие сессии
Сессия - это сеанс работы конечного пользователя с системой. Любой запрос Пользователя к Корневому серверу инициирует создание Сессии. При этом Корневой сервер определяет по полученному в HTTP заголовке запроса логину параметры Конечного сервера, с которого Пользователь был делегирован, отправляет на Конечный сервер логин и пароль для проверки, и в случае успешной авторизации получает с него детальные параметры Пользователя и список доступного транспорта.
Корневой сервер создает для Пользователя дескриптор Сессии, в рамках которого осуществляется контроль запросов Пользователя и асинхронное получение данных с Конечного сервера. Список таких дескрипторов формирует список активных пользователей в рамках Корневого сервера.
Конечный сервер, сразу после авторизации Пользователя, включает его в свой список активных пользователей, анализирует доступный список транспорта и запускает по этому списку трансляцию текущих навигационных данных на Корневой сервер. Данные транслируются в реальном времени по событию поступления данных с конечных приборов.
Завершение работы
Корневой сервер контролирует активность Пользователя, и завершает Сессию после установленного в системе периода бездействия (по умолчанию - 15 минут). При этом Конечному серверу отправляется сигнал о необходимости прекращения трансляции текущих навигационных данных.
Конечный сервер периодически сверяет собственный список активных пользователей со списком дескрипторов Сессий Корневого сервера, и в случае расхождений корректирует собственный список и список транспорта для трансляции.
Кроме того существует специальный запрос с помощью которого Пользователь может завершить свой сеанс работы с системой принудительно.