Первым комментарием к моей статье про головную станцию IPTV был «Хотелось бы услышать поподробнее про middleware. Что оно из себя представляет, как работает?». Ну что ж, попробую.
Middleware — это серверное ПО для управления всеми компонентами комплекса IPTV, это ключевой компонент, так как именно он является лицом всей системы — интерфейсом пользователя (в IPTV его обычно называют «Абонентский портал»).
Абонентский портал
STB
Set-Top-Box — абонентское устройство состоит из двух основных программных частей: плеер и браузер. Нижний слой всегда видеоплеер, а над ним полупрозрачный браузер, который работает с Middleware.
При загрузке STB отправляет свои идентификационные данные (это может быть MAC address, username/password, серийный номер) на сохраненный в памяти или полученный по сети адрес сервера Middleware, которая уже в свою очередь загружает портал, либо предлагает загрузится.
Обычно, браузер с помощью JavaScript передает от Middleware команды на внутренний API видеоплеера (адрес телеканала, громкость, переключение звуковой дорожки) попутно выводя название телеканала, телепрограмму, уровень звука и прочее.
PC
Принципиально PC-интерфейс не отличается от STB-версии, просто он заточен на управление с помощью мыши.
Другие приложения
Middleware предоставляет программный интерфейс (API) для любых других приложений. Можно написать клиент для Android/iOS, которое не будет загружать веб-портал, а будет лишь выводить необходимую информацию в native-приложение, что позволяет экономить трафик и ускорять работу интерфейса.
Виджеты
Этот элемент запрашивает данные с новостных ресурсов, социальных сетей и т.д., и предоставляет их пользователю в удобном виде для чтения с экрана ТВ. Здесь Middleware выполняет роль прокси-сервера для STB (которые не имеют прямого доступа в интернет).
Провайдеры сами могут добавлять функционал, например, создав версию личного кабинета для приставки, в котором можно посмотреть статусы услуг, номер телефона технической поддержки, кнопка «обещанный платеж», смена тарифного плана и т.д.
Другие системы
CAS
Для доступа к платному контенту, зашифрованного провайдером, CAS-клиенту в плеере приставки необходимо обратится к CAS-серверу, для получения ключей доступа. Middleware контролирует доступ приставок к CAS-серверу, передавая ему список устройств и телеканалов, доступных на этом устройстве, согласно его тарифному плану.
Система условного доступа (англ. Conditional Access System) — программно-аппаратный механизм для доступа к платным кодированным цифовым спутниковым, эфирным и кабельным телеканалам и радиостанциям (радиоканалам).
VOD
В базе данных MW (Middleware) хранятся названия фильмов, описание, постеры, список актеров и т.п, для отображения на абонентском портале. Так же она хранит путь к файлу на видео-сервере, чтобы отдать его клиенту, если он решит посмотреть фильм.
EPG
Этот модуль загружает из различных источников телепрограмму для телеканалов и сохраняет ее в свою базу данных, для отображения на клиентских устройствах и для других внутренних служб, например, nPVR.
nPVR
MW планирует запись телеканалов на видеосервере согласно телепрограмме, что позволяет пользователям планировать запись телепрограмм, а так же ставить на паузу текущую передачу.
Когда на абонент ставит на паузу просмотр, приставка автоматически переключается на RTSP-поток и ждет команды от абонента для продолжения просмотра.
Записанные передачи MW показывает в меню абонентского портала и автоматически удаляет с видеосервера после определенного времени для экономии места.
Биллинг
Биллинг сообщает Middleware о новых клиентах, передает статус услуг, подключает и удаляет пакеты телеканалов.
MW сообщает биллингу о покупках VOD.
Middleware делегирует биллингу управление клиентами через программный интерфейс, а может и сама управляет клиентами.
Ядро
Ядро управляет и следить за всеми процессами, которые я описал выше, собирая статистику, необходимую для руководителей и маркетологов, предоставляет единый административный интерфейс для управление тарифными планами, телеканалами, VOD, EPG, клиентами.
Складывает данные в кеш, чтобы снизить нагрузку на базу данных. Следит за работой всех компонентов. Именно тут происходит магия, понятная лишь разработчикам.
Вывод
К сожалению, мне неизвестна ни одна полностью открытая Middleware, чтобы мы могли рассмотреть ее работу под капотом, а обзор платной Middleware будет либо рекламой, либо раскрытием секретов.
Какие темы IPTV еще не раскрыты на Хабре? Стоит ли пытаться делать обзор коммерческой Middleware?
Автор: klu4ik