Сервис интеграции с RAS¶
- Table of contents
- Сервис интеграции с RAS
Назначение сервиса¶
Сервис интеграции с RAS (далее "сервис") предназначен для синхронизации рекламного расписания, обмена данными между сервером RAS (далее "RAS") и медиа базой данных/расписанием DIGISPOT и предоставления сведений о вышедших в эфир элементов RAS.
С помощью сервиса осуществляется получение рекламного расписания от RAS, формирование по нему расписания DIGISPOT с последующим получением и обработкой нотификации об изменениях в расписании, предоставление RAS’у сведений о вышедших элементах.
Администрирование доступа к сервису¶
Администратор системы DIGISPOT имеет возможность ограничить доступ к конфигурированию сервиса.
Для ограничения доступа к изменению настроек сервиса используется право Настройка параметров системы администрирования DIGISPOT.
Инсталляция и настройка сервиса¶
Перед настройкой сервиса на комплексе необходимо
- установить ПО DIGISPOT II
- установить DIGISPOT 3 WEB
- подключить ПО DIGISPOT II и DIGISPOT 3 WEB к одной и той же БД
- выполнить на БД скрипт mdb_ras_update.sql для создания в БД пользовательского атрибута RAS
- с помощью параметра Интеграция\RAS\Категория хранения по умолчанию в Общих настройках системы DIGISPOT II настроить категорию для хранения RAS элементов
- установить cервис_sch_to_db
- подключить сервис sch_to_db к БД и корневому каталогу комплекса
- в Общих настройках системы DIGISPOT II на закладке Пользовательские свойства создать пользовательское свойство с параметрами:
- Название = RASGuid
- Описание = RASGuid
- Тип = String
- Применение = Элементы: Реклама
ПРИМЕЧАНИЕ: Создание пользовательского свойства не обязатено. Оно необходимо для возможности отображать значение RASGuid в виде отдельного столбца в модуле расписания и БД.
Настройка сервиса выполняется через web-интерфейс DIGISPOT 3 на странице настроек Radio Ad-Server.
Для настройки необходимо указать расписания, которые подлежат синхронизации. Для каждого расписания нужно задать
- Логин
- Пароль
- Тип запуска сервиса (Автоматический/Ручной):
- Автоматический - при запуске сервиса подключение к RAS выполняется автоматически
- Ручной - управление подключением к RAS осуществляется вручную
Логин и пароль для каждого расписания являются уникальными, их необходимо получить от RAS.
Управление и отслеживание состояния сервиса¶
Управление сервисом и отслеживание его состояния выполняется на странице настроек Radio Ad-Server.
Для каждого расписания отслеживание состояния и управление сервисом осуществляется раздельно.
Состояние работы сервиса определяется положением кнопок:
- – сервис запущен
- – сервис остановлен
Состояние связи сервиса с RAS для каждого из расписаний отображается в столбце Состояние соединения.
Под состоянием соединения понимается статус выполнения последнего запроса между сервисом и RAS.
Состояние соединения может принимать следующие значения:
- ОК - последняя операция отправки данных\запроса данных от сервера RAS выполнена успешно
- Ошибка - в ходе отправки данных\запроса данных от сервера RAS произошла ошибка
- Неизвестно - сведения о состоянии связи с сервером RAS неизвестны
При появлении ошибок в ходе работы сервиса информация о последней ошибке отображается в столбце Последняя ошибка.
Сбросить сведения о последней ошибке можно с помощью кнопки , выделив строку с необходимым расписанием.
При этом состояние связи с сервером "Ошибка" сбрасывается в состояние "Неизвестно".
Просмотреть сведения обо всех событиях для каждого из расписаний за конкретные сутки можно на странице лога выполненных операций, переход на которую осуществляется по кнопке .
Технология работы сервиса интеграции с RAS¶
Идентификация и отображение данных¶
Сервис может получать от RAS следующие данные:
- Ролик. Каждый ролик RAS имеет свой GUID и привязанный к нему звуковой файл
- Элемент расписания. Элемент расписания RAS идентифицируется по BookingId (позиция ролика в расписании) и GUID’у ролика
При получении ролика от RAS GUID ролика сохраняется в значении пользовательского свойства RASGuid элемента БД.
Значение пользовательского свойства RASGuid элемента может отображается в модуле расписания и БД в виде отдельного столбца.
Элементу БД, полученного от RAS, устанавливается пользовательский атрибут RAS.
Значение BookingId отображается в модуле расписания в виде отдельного столбца, а также в окне свойств элемента расписания на закладке Доп.
Редактирование значения BookingId элемента, полученного от RAS, невозможно.
Взаимодействие сервиса и RAS¶
После установления соединения между сервисом и RAS сервис находится в состоянии ожидания данных от RAS.
Взаимодействие между сервисом и RAS’ом осуществляется только по событиям от RAS.
От RAS могут приходить следующие события:
- Создать новый ролик. По команде от RAS ролик скачивается и добавляется в БД. Если ролик в БД уже существует, то он обновляется.
- Создать элемент(ы) расписания. По запросу от RAS по BookingId и GUID выполняется создание элемента в расписании.
Если при добавлении ролика в расписание оказывается, что он отсутсвует в БД, то выполняется создание ролика в БД и связывание нового элемента БД с уже созданным элементов в расписании. - Изменить элемент расписания. По запросу от RAS выполняется изменение элемента расписания с указанным значением BookingId и привязанным к нему GUID.
- Удалить элемент расписания. По запросу от RAS по BookingId сервис удаляет из расписания элементы с соответствующими значениями BookingId.
- Запрос на лог воспроизведения. По запросу от RAS по BookingId сервис передает RAS’у сведения о вышедших элементах.
Таким образом сервис обрабатывает нотификацию от RAS о получении новых роликов и о добавлении, изменении и удалении роликов в расписании.
После обработки нотификации о получении новых роликов, сервис скачивает файлы с сервера RAS и добавляет их в БД, в категорию хранения RAS по умолчанию.
При получении очередного файла от RAS он конвертируется в стандартный формат и все элементы расписания, которые с ним связаны, обновляются на предмет реальной длительности.
ПРИМЕЧАНИЕ: Ролики от RAS должны приходить раньше элементов расписания. Обратное поведение считается нештатным, но сервис его может обрабатывать.
Для того, чтобы ситуация обрабатывалась корректно должна быть включена и настроена система автоматического обновления элементов расписания из БД.
Получение расписания от сервера RAS осуществляется двумя способами:
- Получение расписания от RAS
- Импорт сгенерированного трафик-менеджером txt-файла в расписание DIGISPOT
Получение расписания от RAS¶
Рекламное расписание DIGISPOT II формируется по командам от RAS на создание\изменение\удаление элементов расписаний.
Импорт расписания из txt-файла¶
Для получения расписания посредством импорта из текстового файла в системе DIGISPOT должен быть настроен формат импорта.
При этом в списке полей, указанных в настройках формата импорта должны быть поля RAS Booking Id, RASGuid (GUID элемента) и ID Number.
ПРИМЕЧАНИЕ: В качестве ID Number’a может использоваться значение RASGuid, если у элемента нет своего собственного ID Number’a.
В импортируемом текстовом файле помимо стандартных полей должны присутствовать следующие обязательные поля:
- идентификатор элемента (GUID)
- идентификатор элемента расписания, который добавлен из RAS (BookingId)
- ID Number
Пример импортируемого текстового файла, разобранного по полям:
File | BookingId | RASGuid | ID Number | Time |
test_0.mp3 | DIGV.TST._12_0_0 | ff4edada-9b77-4b01-94cd-63f18775d3aa | ID1 | 12:00 |
test_1.mp3 | DIGV.TST._12_0_1 | cc1a784c-91c6-4b87-963b-74795d57fd7b | ID2 | 12:05 |
При импорте расписания из текстового файла в элемент расписания сохраняются сведения о принадлежности элемента к RAS.
Перед добавлением элемента из RAS в БД выполняется поиск элемента в БД по ID_Number.
- Если элемент найден в БД, он вставляется в расписание.
- Если элемент в БД не обнаружен, то в БД создается пустой элемент (без файла) и вставляется в расписание.
Для пустого элемента файл может быть скачан позже, непосредственно по запросу от RAS.
Для того, чтобы элемент, после привязки к нему файла, обновился в расписании, должна быть включена система автоматического обновления расписания из БД.
В случае обрыва соединения между сервисом и RAS’ом из-за ошибки, выполняется автоматическое восстановление соединения.
В случае неудачи при восстановлении соединения выполняется повторная попытка до тех пор пока соединение не будет установлено.
Формирование списка вышедших в эфир элементов RAS¶
Сведения о проигранных элементах БД DIGISPOT, полученных от RAS, автоматически заносятся в соответствующую таблицу БД с указанием BookingId.
По запросу от RAS по BookingId сервис передает RAS’у сведения о том, какие из этих элементов вышли в эфир.