Разработка специализированного программного обеспечения для телекомпании
Любая российская телекомпания нуждается в ряде специализированных программных продуктов, используемых при формировании эфира: приложениях для показа бегущей строки, телевизионном суфлере, отображении логотипа, титровании и т. д. Подобные программы, как правило, характеризуются узкой функциональностью, жесткой зависимостью от используемого аппаратного обеспечения, высокими требованиями к возможностям настройки и расширения функциональности, а также необходимостью тесной интеграции с другим используемым в компании ПО.
Кто-то покупает готовые решения, кто-то разрабатывает собственные программы. В телекомпании «ТВК-6 канал» (г. Красноярск) придерживаются второго подхода. Многолетний опыт работы в телекомпании ТВК позволил нам выработать несколько специфический и достаточно удачный подход к разработке такого рода ПО.
Какое решение выбрать?
Итак, как поступить: покупать готовое программное обеспечение или разрабатывать его своими силами? На первый взгляд, готовые решения, по сравнению с собственными разработками, обладают рядом важных преимуществ. Первое — малое время внедрения. Программы уже готовы, их остается только купить и настроить под свои задачи. Второе — высокая степень надежности. Покупая готовую программу, клиент вправе ожидать, что код программы хорошо отлажен и всесторонне протестирован командой разработчиков. Третье — низкая стоимость. В индустрии разработки ПО уже давно доказано, что купить готовую программу дешевле, чем разработать такую же самостоятельно. И, наконец, четвертое — нет необходимости содержать собственную команду разработчиков.
На практике, однако, все оказывается не так просто. Проблемы, главным образом, возникают из-за особенностей рассматриваемого класса программ, которые имеет смысл перечислить.
Прежде всего, ПО должно учитывать специфику канала. Так или иначе, у каждой телекомпании имеются свои ноу-хау. Например, индивидуальные особенности во внешнем оформлении канала. Скажем, логотип с хитро анимированными часами. Такие индивидуальные решения могут быть реализованы только собственноручно, и никакие готовые решения не в состоянии заранее учесть все варианты полета фантазии дизайнера.
Далее, ПО должно интегрироваться с другими программами, используемыми на канале. Типичная проблема — используемая система управления базами данных (СУБД). Готовое программное обеспечение ориентировано на СУБД одного производителя, а на канале традиционно используется СУБД другого производителя. Такие проблемы обычно разрешить достаточно сложно, если вообще возможно.
Кроме того, ПО должно обеспечивать требуемый уровень автоматизации, а также позволять со временем его изменять. Возьмем, к примеру, работу выпускающего по включению и выключению бегущей строки на рекламных врезках. Автоматизация — нулевая. Выпускающий эти операции всегда проводил вручную. Скажем, после перехода на вещание с видеосервера появляется возможность автоматизировать эту операцию. Сделать это можно только в том случае, если программа для вывода бегущей строки изначально поддерживала эту возможность. А если нет?
Также ПО должно быть «железонезависимым». Проще говоря, должна быть возможность переводить его с одного типа аппаратного обеспечения на другой. Отсутствие такой возможности обычно приводит к отказу от его использования. В частности, в нашей компании в разное время для вывода бегущей строки применялись видеоплаты Alpha Stream, PKV и CG 2000.
И, наконец, должна быть возможность оперативно дорабатывать функциональность ПО. К примеру, возникла потребность реализовать новый эффект в оформлении канала. Длительные задержки в его реализации, как правило, недопустимы, временные рамки заданы обычно достаточно жестко. Готовые решения вынуждают обращаться по таким вопросам к их разработчикам, у которых, как правило, работы и без того много.
Перечисленные выше достоинства и недостатки удобно представить в виде таблицы.
| Параметры | Готовое решение | Собственная разработка |
|---|---|---|
| Уровень функциональности | Весь диапазон функций, который может потребоваться среднестатистическому клиенту | Только необходимые функции |
| Учет специфики канала | Отсутствует | 100% |
| Уровень автоматизации | Фиксированный | Необходимый |
| Скорость модифицирования | Медленная | Быстрая |
| Интеграция с другим ПО | Возможность интеграции закладывается сторонними разработчиками | Возможность интеграции закладывается разработчиками компании |
| Зависимость от аппаратного обеспечения | Определяется сторонними разработчиками | Определяется разработчиками компании |
| Скорость первоначального запуска в работу | Быстрая | Медленная |
| Качество кода | Высокое, код полностью протестирован | Зависит от уровня разработчиков. Код обычно протестирован не полностью |
| Стоимость | Низкая (большое количество клиентов позволяет снизить удельную стоимость) | Определяется количеством требуемых функций |
| Повторное использование кода | Как правило, невозможно | 100% |
Итак, достоинства и недостатки имеются как у готовых решений, так и у собственных разработок. Во многих случаях, по всей видимости, оптимальным вариантом является комплексный подход, в основу которого положена идея компонентной разработки ПО.
Идея подхода проста. Конечное высокоуровневое программное обеспечение собирается из готовых низкоуровневых составляющих — компонентов, каждый из которых выполняет одну единственную функцию. При этом в такую высокоуровневую программу закладывается вся необходимая для компании функциональность, обеспечивается требуемый уровень автоматизации и интеграции с другими используемыми программными продуктами. Если подходящие низкоуровневые компоненты уже существуют, они покупаются готовыми. При этом достигаются все преимущества готовых решений без снижения гибкости программы, поскольку такие компоненты фактически являются миниатюрными готовыми решениями. Если нужных компонентов не существует, они разрабатываются самостоятельно или заказываются сторонним разработчикам. Удачно созданные компоненты могут использоваться одновременно во многих проектах, что приводит к увеличению скорости разработки конечного приложения.
Такой комплексный подход дает еще несколько важных преимуществ. Во-первых, появляется возможность прозрачной замены одного компонента без переработки программы в целом. Например, замена компонента-драйвера позволяет перейти от одного аппаратного обеспечения к другому, замена компонента, отвечающего за визуальный эффект в эфире, позволяет легко изменить дизайн канала, и т. д. Во-вторых, компонентный подход позволяет строить приложения с применением технологии подключаемых модулей (plug-ins). Например, программа «Интерактивная ТВ-консоль», разработанная в нашей телекомпании, реализует общий интерфейс, позволяющий выпускающему режиссеру управлять отображением графических эффектов в эфире. В то же время, сами эффекты разрабатываются по мере необходимости и подключаются к готовой программе в качестве модулей. Наконец, программное обеспечение, построенное на основе компонентов, становится гораздо более гибким готовым решением для использования в других компаниях, поскольку позволяет сторонним разработчикам дорабатывать его под свои нужды. Гибкость достигается за счет применения современных технологий разработки программного обеспечения: COM (компонентная модель объектов) и XML (расширяемый язык разметки). Технология COM обеспечивает стандартный способ использования программного кода, написанного другими разработчиками. XML — стандартный способ хранения и обмена данными между приложениями. Именно применение этих стандартных технологий обеспечивает простоту использования и возможность доработки таких компонентов сторонними разработчиками. В качестве примера программного продукта, в котором широко используются обе эти технологии, можно привести Microsoft Office. Существуют тысячи программ, использующих функции приложений Microsoft Office на программном уровне, и их количество непрерывно растет.
Программные продукты, разработанные в телекомпании ТВК
Далее представлено описание трех программ, разработанных с применением компонентного подхода и успешно используемых в нашей компании. Для каждой программы приводится краткое описание функциональных возможностей и схема построения программы. На схеме приведены основные компоненты каждой программы, а также указаны потенциальные возможности расширения функциональности.
Телесуфлер ТВК Prompter
![]() |
| Рис. 1. Схема построения комплекса «Телевизионный суфлер ТВК». Пунктиром указаны возможные пути расширения функциональности |
Программа предназначена для подготовки и вывода информации на экран телевизионного суфлера и состоит из двух основных частей: «Редактора» и «Суфлера». «Редактор» предназначен для создания и редактирования сюжетов и предоставляет возможности импорта сюжетов из «Фабрики Новостей», а также многопользовательской работы над созданием сюжетов (за счет использования СУБД).
«Суфлер» предназначен для управления показом сюжетов на экране телевизионного суфлера. Его возможности включают:
- два режима вывода текста: прямой и зеркальный;
- гибкую настройку параметров отображения текста;
- поддержку команд управления (с возможностью гибкой настройки) увеличением и изменением скорости прокрутки текста, остановкой/запуском прокрутки текста, переходом к следующему или предыдущему сюжету, переключением на начало заданного сюжета, включением заданной скорости прокрутки текста (из списка скоростей), обновлением списка сюжетов.
«Редактор» является достаточно простым приложением, оптимизированным под требования нашей компании. Он легко может быть заменен другой программой, использующей, например, в качестве источника данных не СУБД, а текстовый файл. В то же время, архитектура «Суфлера» позволяет легко «прикрутить» его к такой программе.
Функциональность «Суфлера» может быть расширена в нескольких направлениях: может быть изменено устройство вывода (в настоящее время поддерживается вывод на один или на два монитора), могут быть добавлены поддерживаемые устройства управления (по умолчанию поддерживаются мышь и клавиатура).
Комплекс программ «Интерактивная ТВ-консоль»
![]() |
| Рис. 2. Схема построения комплекса «Информационная ТВК-консоль» Пунктиром указаны возможные пути расширения функциональности. |
![]() |
| Рис. 3. Схема построения комплекса RCL. Пунктиром указаны возможные пути расширения функциональности |
Комплекс предназначен для управления отображением графических эффектов в эфире в режиме реального времени. Он построен с использованием технологии подключаемых модулей. Есть единая управляющая программа, при помощи которой выпускающий режиссер включает и отключает показ графических эффектов в эфире. В настоящее время поддерживаются следующие эффекты анимированного логотипа, бегущей строки, титров и информационного угла (часы, термометр, спецэффекты).
Все графические эффекты реализуются в виде отдельных компонентов, подключаемых к основной программе в качестве модулей. При необходимости реализовать новый эффект пишется очередной модуль и подключается к программе.
Комплекс программ RCL для показа бегущей строки
Комплекс программ предназначен для подготовки и вывода бегущей строки в эфир. Он состоит из трех программ: клиентского приложения базы данных, генератора выборки бегущей строки и модуля для «Интерактивной ТВ-консоли», осуществляющего вывод бегущей строки в эфир.
Клиентское приложение служит для ввода операторами объявлений в базу данных (Interbase), построения отчетности, просмотра мониторинга эфира и т. д. Это приложение жестко привязано к структуре базы данных, применяемой на ТВК.
Генератор служит для периодического формирования выборки бегущей строки и ее передачи по запросу клиенту. Сам генератор не зависит от структуры базы данных — источники данных, формирующие выборку бегущей строки, к нему подключаются, опять же, как модули. В случае перехода на другую СУБД, как правило, достаточно изменить настройки соответствующего модуля. Если же источник данных меняется кардинально, можно разработать новый модуль, формирующий текст выборки.
Бегущая строка является одним из графических эффектов в оформлении эфира, поэтому компонент, отображающий бегущую строку, реализован в виде модуля «Интерактивной консоли». В процессе работы компонент с заданной периодичностью обращается к генератору за обновленной выборкой, что позволяет добиться практически мгновенных обновлений списка объявлений в эфире.
К особенностям комплекса следует отнести поддержку вывода бегущей строки при помощи нескольких наиболее распространенных видеоплат (Alpha Stream, PKV, CG 2000), гибкие возможности по настройке параметров внешнего вида и прокрутки бегущей строки (шрифты, скорость и т. п.), поддержку анимированных логотипов.
Выводы
Практика показывает, что применяемый в телекомпании ТВК комплексный подход к разработке специализированного программного обеспечения достаточно эффективен. С одной стороны, он позволяет достичь при разработке необходимой гибкости, с другой — снизить затраты и время на разработку. Разработанные в рамках этого подхода программы «Телевизионный суфлер ТВК», «Информационная ТВ-консоль» и «Комплекс программ RCL для показа бегущей строки» функционируют, развиваются и, благодаря своей компонентной архитектуре, могут быть полностью или частично использованы в любой другой телекомпании.



