Системы Видеонаблюдения Москва


Описание основных компонентов системы
Январь 26, 2017 – 01:42
Remont_provodki
Под катом – сразу к делу.
Архитектура системы построена по модульному принципу, что является стандартом для систем такого масштаба. Но есть одно существенное отличие: этих модулей в системе не просто много, а очень много. Каждый модуль выполняет отдельные узкоспециализированные задачи, связанные с получением видеоизображений и информации от городских и ведомственных информационных систем (ИС), управлением доступом к обрабатываемым данным, предоставлением фото- и видеоизображений пользователям ЕЦХД и различным внешним потребителям, в том числе жителям города.

Модули тесно взаимодействуют между собой на основе различных технологий (в основном – JSON, REST API и SOAP). Сами модули реализованы на различных языках (Java, C#, Java Script и другие), с использованием фреймворков (ASP.NET Web API, WCF, NLog, Entity Framework, MySQL ADO.NET managed drivers, Unity 3, EPPlus, Json.NET, EmitMapper, DotNetZip, jQuery, knockoutjs, Moment.js, underscore.js и так далее).

Всё это программное разнообразие функционирует под управлением различных операционных систем (Windows Server, SUSE Linux Enterprise Server, CentOS и другие) в среде виртуализации VMware vSphere 5.

Архитектура системы приведена на схеме:

Все модули имеют собственные механизмы отказоустойчивости и балансировки. Для этого используются кластерные технологии, различные варианты балансировки HTTP-запросов на основе nginx, а также управление очередями и приоритетами на прикладном уровне. Кроме того, все модули объединены по принципу слабой связности, что существенно повышает возможности развития и модификации системы в целом.

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

Видеоядро, обеспечивающее получение и обработку видеопотоков, представляет собой несколько сотен видеосерверов, работающих на ресурсах выделенных виртуальных машин под управлением Linux, обеспечивающих приём видеотрафика с более чем 145 тысяч камер, кодеров и других систем формирования видеопотока. Приём трафика осуществляется по протоколу (видео в формате H.264), схема приёма трафика может использоваться различная – на постоянной основе с настраиваемой глубиной записи (периодом хранения), или по запросу в случае необходимости простого просмотра видео. Такой гибкий подход позволяет экономить как серверные ресурсы, так и снижать загруженность каналов связи.

В качестве протокола транспортного уровня в основном используется TCP, но в ряде случаев может использоваться и UDP. Видеосервера выполняют несколько задач:

Основную: получение видеопотока, его запись и последующую выдачу потокового или архивного видео серверам ретрансляции или долговременное хранение части архивного видео на отдельном выделенном хранилище;
– Ряд дополнительных: контроль доступности видеоисточника, контроль получения и соответствия видеопотока заданным параметрам (fps, bitrate, потери пакетов), а также через специализированные шины обмена данными информация от видеосерверов поступает в систему контроля оказания услуги для последующего учёта и передачи в службы эксплуатации.

Управление видеосерверами осуществляется через специализированный HTTP API, позволяющий полностью автоматизировать работу через управляющие системы. Функционирование видеосерверов контролируются через Zabbix, с использованием дополнительных внутренних механизмов видеосерверов.

Source: habrahabr.ru
Похожие публикации