?

Log in

No account? Create an account

April 2019

S M T W T F S
 123456
78910111213
14151617181920
21222324252627
282930    
Powered by LiveJournal.com

Основные функции сервера

Мое решение позволяет работать с контроллером напрямую (через клиента).
Кроме этого есть сервер предоставляющий облачное решение.

Здесь описан функционал именно сервера, много другого функционала будет описано при рассмотрении остальных узлов системы.

1) Сбор статистики с возможностью выгрузки с агрегацией за час, день, неделю и детальной за любой период
2) Передача команд контроллеру, далее конечным устройствам, с гарантией доставки данных и таймаутом. Реализован механизм обратной связи клиента - вы всегда будете знать выполнена ваша команда или нет.
3) Лог истории действий над исполнительным устройством, а также API для его выгрузки.
4) Хранение проекта с поддержкой версионности (частичная реализация), здесь же механизмы оффлайн редактирования проекта с защитой от одновременного редактирования несколькими пользователями и полноценного информирования.
5) Обеспечение связи всех узлов, узлы могут быть в локальной сети(за натом). Никаких статических внешних IP и настроек NAT не требуется. Также гарантируется передача информации между узлами без задержек за исключением действительных проблем с сетью.
6) Кроме механизмов передачи команд контроллеру и показаний клиенту реализован механизм заявок как мгновенных (синхронных) так и без ожидания ответа (асинхронных), в том числе и односторонних.
7) Возможность изменения 'на лету' некоторых данных проекта, не существенных для контроллера, например название исполнительного устройства.
8) Механизмы взаимодействия клиента с сервером не зависят от состояния контроллера. К примеру, настройки проекта активируются даже если контроллер в данный момент недоступен.
9) Возможность привязки к проекту локаций другого проекта.
10) Поддержка неограниченного количества пользоваетелей  с одновременным использованием устройств и функционала.
11) Разграничение доступов как на уровне локаций так и на уровне конечных устройств.
12) Профили пользователей, полный функционал - смена паролей, подтверждение email, ФИО, контактные данные и т.п.
13) Поддержка сценариев как независимого функционала от проекта, пользователь может иметь доступ к сценариям не имея доступа к редактированию проекта, в том числе когда проект кем-то редактируется.
14) Поддержка сторонних сервисов, таких как Алиса, Telegram и SMS(частичная реализация)
15) На базе п.6, возможность организации моста между клиентом и контроллером(далее интерфейсом конечного устройства - к примеру моста TCP/IP c хоста клиента в интерфейс RS232 конечного устройства)
16) Широкие возможности информирования, в клиент, email, Telegram, SMS(частичная реализация)
17) Наблюдение за доступностью узлов - возможность информирования при потери связи с контроллером и т.п.
18) Много языковая поддержка(частичная реализация).
19) Вся служебная информация хранится в виде словарей, которая обновляется налету и не требует обновления контроллера или клиента. Т.е. обновлять эти узлы необходимо только в случае значительных изменений функционала узла, такие изменения, как ввод новых устройств в систему обновления не требуют.

При этом обращаю внимание, что проект постоянно дорабатывается, т.е. функционал постоянно растет по мере необходимости.

Comments