论文部分内容阅读
【摘要】 东南卫视节目编排系统是东南卫视自主研发的软件项目。是东南卫视总编室管理系统的重要组成部分。该系统遵循SOA面向服务的体系架构,在.NET平台上开发而成。本文介绍该编排服务的使用流程和设计思路。
【关键词】 电视台总编室 节目编排软件 播出串联单
一. 项目背景
随着电视市场的日益成熟,互联网等新媒体介质的发展,电视媒体面临着竞争环境的加剧,电视媒体以传播者为中心的时代已演变为以电视受众为中心的时代。观众的价值取向、收视偏好和收视行为决定着电视媒体的传播效果、市场价值和经营收益。提高收视率的一个重要环节就是要不断优化电视节目编排,在众多频道的竞争中编排出自己的特色。
东南卫视的总编室编排系统经历了三个阶段。从最初的Novell无盘工作站,到后来的纯C/S模式的单用户版本,再到现在基于SOA架构的松耦合的编排模块。前两个版本的编排系统是封闭模式,不和其他系统共享和交换数据。随着电视节目编排的理念和方式的发展,原先的电视节目编排系统已不能跟上新思维的进度,阻碍了编排的效率。本文介绍的是最新版本的开发和设计思路。新编排系统从2009年使用至今已有四年的时间了,使用过程中,不断汲取总编室一线编排人员提出的改进意见,我们不断的对系统进行改进,目前可以算是一个较为完善的软件。在此,我对这些年中本系统设计与改进的经验做一个总结。
二. 编排系统整体概述
东南卫视的节目编排系统是总编室管理系统的重要组成部分,在此之前,我们已完成了磁带库智能管理系统的开发。编排系统共享磁带库系统共享节目数据,共用企业服务总线(ESB)。此外,广告部门有独立的广告支持系统,节目编排系统需要和广告支持系统交换数据。
我们的节目编排系统提供单纯的节目编排功能,与播出系统的数据交换可通过两种实现方式。一种是输出标准的XML格式的播出串联单,一种是提供一式三份的票据打印方式输出的特定格式播出串联单。对于XML格式的电子串联单,可以使用数字签名的方式保证传输过程中的完整性,也可起到防抵赖的作用,可有效确认编播双方的责任。我们最终使用的是打印加书面签字确认的方式。
1. 节目编排分工与流程
由于有前两个版本的使用经验沉淀,总编室已经形成一个较为固定的使用模式和分工模式。一份节目单由以下几个岗位合作完成:磁带库负责节目资料的编目审核和磁带入库;节目编排人员负责节目单框架的制作和节目编排;广告公司媒介部负责广告时长校对;串联单审核员负责串联单生成、审核、打印;最后送播出部进入播出系统。
使用前要先做好数据的初始化工作,建立当前用到的栏目库,新建第一份节目框架。栏目是组成节目框架的基本元素,节目框架是节目单的模板。编辑好当前使用的节目框架后,可以用此框架生成以后各周的粗编节目单,然后再对粗编节目单做具体节目的编排和时间的微调。
2. 主要功能介绍
电视节目编排是指把待播出的节目提前编排组合成一次次的节目播出流程,它是对节目播出架构的综合规划,体现为节目播出表的安排(1)。学术界普遍对它的定义是:在节目资源有限、收视时间有限的前提下,对现有节目资源进行“最优”配置,从而取得最佳播出效果的创造性工作。使用节目编排软件的目的就是使用电脑辅助人脑实现节目编排,提高编排效率。对于一些突发事件,能在很短的时间内完成对已编排好的节目单的调整,提高电视节目的时效性。
我们的编排系统组实现以下七个主要的功能:
(1)节目框架编辑和节目单生成
本系统提供的最基础的功能就是能方便的编剧节目框架,并有节目框架生成自动生成每一天的原始节目单。编排人员再在原始节目单上做节目调整和电视剧编排。在操作界面上充分考虑操作和录入的便捷,尽量减少人工输入量,改由电脑智能提示并回车选择,减少出错的概率。
(2)电视剧自动编排
我台将一天中的电视剧分为五大剧场:传奇剧场、偶像剧场、东南剧苑、热播剧场和夜间剧场,这五个剧场分别安排与一天中的五个连续时段中,在节目框架中体现一个个的剧场占位标记。电视剧编排功能可以将节目选定的电视连续剧按顺序编排到节目单中的指定剧场中。该功能提供两种模式,一是被编排的连续剧已经入节目库,则可以从库中查询并选中一定数量的要播出的连续剧进行编播,这种情况下节目单中能自动填写节目名称、集数、磁带号和节目长度。
在使用过程中,我们发现时常会出现节目单编排在先,节目入库在后的情况。这种情况下,我们增加了手动录入电视剧名和电视剧集数的方式,这样在节目单中会生成该部剧的占位信息,待节目入库后再更新节目资料。
在实际工作中,节目单的编排一般是提前两周进行的。随着播出日期的临近,常会因一些临时的播出任务,挤占电视剧的播出时段,这时就需要整体的平移已编排好的电视剧播出时段。本系统提供了方便的电视剧平移的操作界面,便于有应急任务时迅速的调整节目单。
(3)时间校验与纠错
该功能对编辑好的节目单进行校验,对存在的时间空隙和超时节目给予提醒。该功能在节目框架制作和临时调整节目单时比较实用。
在使用该系统前,编排员花费大量的时间和精力在节目长度的计算上,编排软件的使用,使得他们从繁杂死板的劳动中解脱出来,可以把主要精力放于编排规划上,放在优化电视节目编排上。
(4)数据输入输出功能
在编排系统中,有大量的数据需要以TXT、XML或EXCEL文档的形式输出,或以特定的格式打印输出。每天提交给总编室主任的日播节目单摘要、每天给播出部的节目串联单、每天提供给广告部的广告时段和时间长度、每周给报社的节目预告单等等。系统根据不同需求,设计了各种版式的输出模板以满足各方面的需求。采用文本而非二进制的文件格式,便于在各种异构系统中交换数据。 (5)统计功能
按需统计一段时间内各类型节目的播出总时长和集数(期数)。该功能以服务(Web Service)的形式发布,用户可以通过总编室系统的网页,直观的查看统计结果。
(6)用户角色与权限
我们将用户分为编排员、节目审核员、磁带库节目编目员、广告编排员、系统管理员五种角色。每个角色有自己对应的权限范围,仅能操作自己权限范围内的功能模块。
用户的身份识别和其他在用系统一致,由ESB提供的身份认证服务来实现。
(7)日志记录
系统投入使用初期,常会因操作失误,造成各种出现非预期的编排结果。我们设计了日志记录的功能,记录用户的每一次修改数据库的操作,方便排查是系统缺陷还是用户的操作不当。
三. 开发环境和运行环境
本编排软件使用B/S与C/S相结合的方式开发,Client端用来节目编排,浏览器用来实现查看节目单、查询统计、用户授权、Client端安装等功能。此前的总编室管理系统已完成了用户管理、用户认证、节目编目、磁带借还等模块,这些模块均是基于B/S方式开发。
考虑节目编排对用户界面(UI)的要求较高,为能提供更佳的用户体验,决定使用C/S模式开发编排系统的主体部分。节目单查看、统计报表等功能,因使用面较大,为方便部署,用B/S方式实现。编排结果存储使用MS SQL Server 2005数据库。服务器操作系统使用windows server 2008,Web服务器使用IIS 7。
编排软件客户端我们使用ClickOnce的方式来发布。有权限使用该软件的用户,只要用浏览器访问总编室系统的页面,进入节目编排的板块,点击节目编排相应的链接,即可运行此软件。如果系统中曾经安装编排客户端,系统将直接运行安装在系统中的软件;如果之前未安装,将自动为其安装并运行之。用户也可从windows的程序菜单中,点击相应的快捷方式运行编排软件。软件运行前会先连接的服务器,比对版本信息,如果有新版本,会提示升级。
下面先对软件开发中用到的几个关键技术进行介绍:
1. NET Framework 3.5和C#语言
NET Framework是由微软开发,支持生成和运行下一代应用程序和XML Web Services的内部Windows组件。.NET Framework旨在实现:提供一个一致的面向对象的编程环境;提供一个将软件部署和版本控制冲突最小化的代码执行环境;提供一个可提高代码执行安全性的代码执行环境;提供一个可消除脚本环境或解释环境的性能问题的代码执行环境;按照工业标准生成所有通信,以确保基于.NET Framework的代码可与任何其他代码集成。
NET Framework具有两个主要组件:公共语言运行时(Common Language Runtime)和.NET Framework类库。公共语言运行时是.NET Framework的基础。类库是一个与公共语言运行库紧密集成的可重用的类型集合。
3.5版本与语言集成查询(LINQ)和数据感知紧密集成。借助这个新功能,可以使用相同的语法,在任何支持LINQ的语言中编写相关代码,以筛选和枚举多种类型的SQL数据、集合、XML和数据集,以及创建它们的投影。
C#是微软在2000发布的一种基于.NET框架的、面向对象的高级编程语言。C#由C语言和C++派生而来,继承了其强大的性能,同时又以.NET框架类库作为基础,拥有类似Visual Basic的快速开发能力。
2. ClickOnce部署
ClickOnce是一种部署技术,使用该技术可创建自行更新的基于Windows的应用程序,这些应用程序可以通过最低程度的用户交互来安装和运行(2)。ClickOnce部署克服了部署中所固有的三个主要问题:
(1)使用 ClickOnce部署,可以自动提供更新。只有更改过的应用程序部分才会被下载,然后从新的并行文件夹重新安装完整的、更新后的应用程序。避免了用户重新安装整个程序。
(2)使用ClickOnce部署时,每个应用程序都是独立的,不会干扰其他应用程序。不再发生版本冲突。
(3)ClickOnce 部署允许非管理用户安装应用程序并仅授予应用程序所需要的那些代码访问安全权限。
我们的编排软件是以ClickOnce技术发布的应用程序,从网页发布,安装在最终用户的计算机上并在本地运行。既有和WEB应用程序一样便捷的使用方式,又不失Windows窗体丰富的用户界面和响应性。用户还可以对更新进行回滚,使应用程序恢复到早期的版本,让用户有效大的选择空间。
用这种方式部署,既简化和第一次安装和软件升级的麻烦,又带来了windows客户端比WEB方式更加友好便捷的操作体验。
3. 数据的断开式访问
ADO.NET利用XML的力量来提供对数据的断开式访问。ADO.NET DataSet是专门为独立于任何数据源的数据访问而设计,它可以用于多种不同的数据源,用于XML数据,或用于管理应用程序本地的数据。DataSet包含一个或多个DataTable对象的集合,这些对象由数据行和数据列以及有关DataTable对象中数据的主键、外键、约束和关系信息组成。
它能在应用程序中将数据缓存在本地,以便可以对数据进行处理;在层间或从XML We服务对数据进行远程处理;与数据进行动态交互;对数据执行大量的处理,而不需要与数据源保持打开的连接,从而将该连接释放给其他客户端使用(2)。
利用ADO.NET DataSet的这种特性,我们可以在本地的内存中构建特点的数据结构来存储节目编排的过程数据,当编排完成,校验无误后提交到数据库保存。这样可以有效的防止误操作。 由于是断开式编辑,我们对节目单以天为单位来锁定。同一天的节目单不允许两人或两人以上同时编辑。
四. 总体架构及设计思路
一个优良的编排软件,其数学模型的建立是一个关键所在,它的算法设计如何、总体框架的架构优劣,决定了该软件是否能得到正常的应用。
从电视编排的过程来看,电视节目编排,就是将已经制作完成的电视节目,合理优化地安排在电视播出的不同时间段上,所以,时间和节目就是电视节目编排首先要考量的两大要素。
1. 编排系统的总体模型
软件设计的要点就是要怎样组合时间与节目。本软件的总体模型是将节目归分为不同的栏目,先建栏目、再由栏目组成框架、最后由框架生成节目单并由节目单导出串联单。
数据库操作采用非连接模式,所有编辑结果存储在本地的缓存中,验证无误后,按保存按钮将所有更改一并提交到数据库。有效防止误操作带来的莫名错误。
(1)栏目库
栏目库中存放的是所有用来编排的栏目资料,包括当前播出的栏目和已停播的旧栏目。栏目分定点栏目和非定点栏目,栏目是组成框架的基本单位,编排中我们把广告看作栏目对待。编辑节目框架时,可以通过拖放的方式从当前栏目库中选中栏目,并拖放到节目框架中的目标位置;也可以在框架中的目标位置点击鼠标右键,在弹出对话框中输入栏目编码,快速定位到想要的栏目并插入。
(2)节目框架
节目编排部门常根据受众收视习惯,对频道节目配置、播出安排因季节性的变化,而进行应对性的调整,即“播出季”(4)。节目框架随“播出季”而调整。每个播出季有自己独立的播出框架,播出框架是栏目与广告分时段的组合。图2是节目框架的编辑界面。一组周节目框架由周一至周日七份日框架组成。我们为每一个节目框架命名,并限制其有效日期,这样便于不同的播出季使用不同的节目框架来生成节目单。
框架可单日复制,也可按周复制。
在编辑节目框架时,我们充分考虑用户的方便,可以随意的从左侧的栏目面板中拖动选中的栏目放入右侧的节目框架中;右侧框架中的栏目顺序可以上下拖动来组合;显示校验栏后,对时间是否超时或还有空隙能一目了然。该软件使得原本繁琐的编辑过程变得非常的轻松。
(3)节目单
节目单是由节目框架自动生成的。刚生成的节目单中只有栏目信息,没有节目信息。需要编排人员调用电视剧编排功能,为其编入电视剧。以及根据实际需求微调每天播出的节目。
图3是节目编排的主要操作界面。
为让编排人员在编排过程中,随时掌握广告时长,我们提供了广告长度计算功能。同框架编辑时一样,同样支持拖拽操作,方便对节目单的细节调整。电视剧自动编排到指定栏目也在这个界面下操作。
(4)串联单
节目单编辑定稿后,由系统生成相对应的串联单。串联单去除了节目单中冗余的时间信息,仅留下播出系统需要的简洁的数据。增加了广告插播点、广告版序、倒计时等广告相关的资讯。
2. 时间要素——时间值的存储和计算
时间计算是本软件的一个最重要的功能。软件中涉及到的时间量有三个:播出框架中的定点播出时间、节目长度、节目单中的节目播出时间。
框架中的时间表示的是时间间隔(TimeSpan),其值指的是节目播出时间距节目单日期00:00:00点的时间长度。比如,播出时间是2012-1-1 20:00:00,则其框架时间就是20:00:00;播出时间是次日凌晨2012-1-2 00:50:00,习惯上节目单的日期还是2012-1-1,则其框架时间是1.00:50:00,表示其距离节目单日期的零点有1天零五十分钟。由于数据中没有对应的类型,我们将其存储为char(10)类型。
节目长度也是表示时间间隔TimeSpan,节目长度总是小于24小时,我们将其存储为char(8)类型。
节目单中的播出日期是实际的日期,在数据库中存储为Datatime类型。
通过定点时间和节目长度的加减运算,就能唯一确定每一条非定点节目的播出时间,能计算出到下一个定点时间是否超时或还有时间空隙,并在界面上显著位置提示。这样节目编排时就能有的放矢的插入宣传片或安排广告时间。
软件还提供了选定时间范围内广告时长累加的功能,便于控制广告长度和节目长度的比例,以及指定时间内广告总长度是否超时等。
3. 节目要素
节目编排模块是总编室管理系统的一部分,编排模块可以直接读取编目模块生成的数据作为节目编排的原料。节目编目时已生成了编排所需的各种信息,包括节目名称、集数、时长、磁带号、入出点、广告插播点、授权使用期限等信息。节目编排时,可直接查询节目库中的节目信息并拷贝到节目单中。
4. 存储架构——数据库结构设计
我们定义了六个主要的数据表来存储节目单的相关信息,分别是栏目表、栏目类别表、节目框架表、框架信息表、节目单表、串联单表。
(1)我们将所有栏目存放在栏目表中,并存储栏目的类别、长度、是否定点播出、定点播出时间、是否当前播出栏目等信息。
(2)在框架表中,每一天的栏目按播出的时间顺序存储。定点栏目存储相对的播出时间和节目长度,非定点栏目播出时间留空仅保留节目长度。需要冠名的栏目存储其冠名信息。由一周的节目模板组成一组节目框架。
(3)节目单表存放具体的每一天的节目。存储绝对播出时间和具体的节目信息,这是节目编排的结果。
(4)串联单表中存放的是有定稿的节目表中导出的不带任何冗余信息的节目单,以及有串联单审核人员加入的播出控制信息,比如广告插播点、是否倒计时等。
五. 总结与展望
本文就电视节目编排系统的设计和实现作了较深入的分析,系统上线使用四年,各方面均达到预期目标。随着东南卫视信息化工作的不断发展,如何实现本系统与将来的媒资系统的结合,将是进一步的研究方向。B&P
参考文献:
1. 纪宁 媒介新动向 沈阳:沈阳出版社 2001年1月版
2. MSDN
3. 吴锦前 杭州市广播电视局技术中心 论总编室编排软件的设计思路 广播与电视技术 2003
4. 钱睿 编播季—电视节目编排创新的突破口 视听界,2007年第2期
【关键词】 电视台总编室 节目编排软件 播出串联单
一. 项目背景
随着电视市场的日益成熟,互联网等新媒体介质的发展,电视媒体面临着竞争环境的加剧,电视媒体以传播者为中心的时代已演变为以电视受众为中心的时代。观众的价值取向、收视偏好和收视行为决定着电视媒体的传播效果、市场价值和经营收益。提高收视率的一个重要环节就是要不断优化电视节目编排,在众多频道的竞争中编排出自己的特色。
东南卫视的总编室编排系统经历了三个阶段。从最初的Novell无盘工作站,到后来的纯C/S模式的单用户版本,再到现在基于SOA架构的松耦合的编排模块。前两个版本的编排系统是封闭模式,不和其他系统共享和交换数据。随着电视节目编排的理念和方式的发展,原先的电视节目编排系统已不能跟上新思维的进度,阻碍了编排的效率。本文介绍的是最新版本的开发和设计思路。新编排系统从2009年使用至今已有四年的时间了,使用过程中,不断汲取总编室一线编排人员提出的改进意见,我们不断的对系统进行改进,目前可以算是一个较为完善的软件。在此,我对这些年中本系统设计与改进的经验做一个总结。
二. 编排系统整体概述
东南卫视的节目编排系统是总编室管理系统的重要组成部分,在此之前,我们已完成了磁带库智能管理系统的开发。编排系统共享磁带库系统共享节目数据,共用企业服务总线(ESB)。此外,广告部门有独立的广告支持系统,节目编排系统需要和广告支持系统交换数据。
我们的节目编排系统提供单纯的节目编排功能,与播出系统的数据交换可通过两种实现方式。一种是输出标准的XML格式的播出串联单,一种是提供一式三份的票据打印方式输出的特定格式播出串联单。对于XML格式的电子串联单,可以使用数字签名的方式保证传输过程中的完整性,也可起到防抵赖的作用,可有效确认编播双方的责任。我们最终使用的是打印加书面签字确认的方式。
1. 节目编排分工与流程
由于有前两个版本的使用经验沉淀,总编室已经形成一个较为固定的使用模式和分工模式。一份节目单由以下几个岗位合作完成:磁带库负责节目资料的编目审核和磁带入库;节目编排人员负责节目单框架的制作和节目编排;广告公司媒介部负责广告时长校对;串联单审核员负责串联单生成、审核、打印;最后送播出部进入播出系统。
使用前要先做好数据的初始化工作,建立当前用到的栏目库,新建第一份节目框架。栏目是组成节目框架的基本元素,节目框架是节目单的模板。编辑好当前使用的节目框架后,可以用此框架生成以后各周的粗编节目单,然后再对粗编节目单做具体节目的编排和时间的微调。
2. 主要功能介绍
电视节目编排是指把待播出的节目提前编排组合成一次次的节目播出流程,它是对节目播出架构的综合规划,体现为节目播出表的安排(1)。学术界普遍对它的定义是:在节目资源有限、收视时间有限的前提下,对现有节目资源进行“最优”配置,从而取得最佳播出效果的创造性工作。使用节目编排软件的目的就是使用电脑辅助人脑实现节目编排,提高编排效率。对于一些突发事件,能在很短的时间内完成对已编排好的节目单的调整,提高电视节目的时效性。
我们的编排系统组实现以下七个主要的功能:
(1)节目框架编辑和节目单生成
本系统提供的最基础的功能就是能方便的编剧节目框架,并有节目框架生成自动生成每一天的原始节目单。编排人员再在原始节目单上做节目调整和电视剧编排。在操作界面上充分考虑操作和录入的便捷,尽量减少人工输入量,改由电脑智能提示并回车选择,减少出错的概率。
(2)电视剧自动编排
我台将一天中的电视剧分为五大剧场:传奇剧场、偶像剧场、东南剧苑、热播剧场和夜间剧场,这五个剧场分别安排与一天中的五个连续时段中,在节目框架中体现一个个的剧场占位标记。电视剧编排功能可以将节目选定的电视连续剧按顺序编排到节目单中的指定剧场中。该功能提供两种模式,一是被编排的连续剧已经入节目库,则可以从库中查询并选中一定数量的要播出的连续剧进行编播,这种情况下节目单中能自动填写节目名称、集数、磁带号和节目长度。
在使用过程中,我们发现时常会出现节目单编排在先,节目入库在后的情况。这种情况下,我们增加了手动录入电视剧名和电视剧集数的方式,这样在节目单中会生成该部剧的占位信息,待节目入库后再更新节目资料。
在实际工作中,节目单的编排一般是提前两周进行的。随着播出日期的临近,常会因一些临时的播出任务,挤占电视剧的播出时段,这时就需要整体的平移已编排好的电视剧播出时段。本系统提供了方便的电视剧平移的操作界面,便于有应急任务时迅速的调整节目单。
(3)时间校验与纠错
该功能对编辑好的节目单进行校验,对存在的时间空隙和超时节目给予提醒。该功能在节目框架制作和临时调整节目单时比较实用。
在使用该系统前,编排员花费大量的时间和精力在节目长度的计算上,编排软件的使用,使得他们从繁杂死板的劳动中解脱出来,可以把主要精力放于编排规划上,放在优化电视节目编排上。
(4)数据输入输出功能
在编排系统中,有大量的数据需要以TXT、XML或EXCEL文档的形式输出,或以特定的格式打印输出。每天提交给总编室主任的日播节目单摘要、每天给播出部的节目串联单、每天提供给广告部的广告时段和时间长度、每周给报社的节目预告单等等。系统根据不同需求,设计了各种版式的输出模板以满足各方面的需求。采用文本而非二进制的文件格式,便于在各种异构系统中交换数据。 (5)统计功能
按需统计一段时间内各类型节目的播出总时长和集数(期数)。该功能以服务(Web Service)的形式发布,用户可以通过总编室系统的网页,直观的查看统计结果。
(6)用户角色与权限
我们将用户分为编排员、节目审核员、磁带库节目编目员、广告编排员、系统管理员五种角色。每个角色有自己对应的权限范围,仅能操作自己权限范围内的功能模块。
用户的身份识别和其他在用系统一致,由ESB提供的身份认证服务来实现。
(7)日志记录
系统投入使用初期,常会因操作失误,造成各种出现非预期的编排结果。我们设计了日志记录的功能,记录用户的每一次修改数据库的操作,方便排查是系统缺陷还是用户的操作不当。
三. 开发环境和运行环境
本编排软件使用B/S与C/S相结合的方式开发,Client端用来节目编排,浏览器用来实现查看节目单、查询统计、用户授权、Client端安装等功能。此前的总编室管理系统已完成了用户管理、用户认证、节目编目、磁带借还等模块,这些模块均是基于B/S方式开发。
考虑节目编排对用户界面(UI)的要求较高,为能提供更佳的用户体验,决定使用C/S模式开发编排系统的主体部分。节目单查看、统计报表等功能,因使用面较大,为方便部署,用B/S方式实现。编排结果存储使用MS SQL Server 2005数据库。服务器操作系统使用windows server 2008,Web服务器使用IIS 7。
编排软件客户端我们使用ClickOnce的方式来发布。有权限使用该软件的用户,只要用浏览器访问总编室系统的页面,进入节目编排的板块,点击节目编排相应的链接,即可运行此软件。如果系统中曾经安装编排客户端,系统将直接运行安装在系统中的软件;如果之前未安装,将自动为其安装并运行之。用户也可从windows的程序菜单中,点击相应的快捷方式运行编排软件。软件运行前会先连接的服务器,比对版本信息,如果有新版本,会提示升级。
下面先对软件开发中用到的几个关键技术进行介绍:
1. NET Framework 3.5和C#语言
NET Framework是由微软开发,支持生成和运行下一代应用程序和XML Web Services的内部Windows组件。.NET Framework旨在实现:提供一个一致的面向对象的编程环境;提供一个将软件部署和版本控制冲突最小化的代码执行环境;提供一个可提高代码执行安全性的代码执行环境;提供一个可消除脚本环境或解释环境的性能问题的代码执行环境;按照工业标准生成所有通信,以确保基于.NET Framework的代码可与任何其他代码集成。
NET Framework具有两个主要组件:公共语言运行时(Common Language Runtime)和.NET Framework类库。公共语言运行时是.NET Framework的基础。类库是一个与公共语言运行库紧密集成的可重用的类型集合。
3.5版本与语言集成查询(LINQ)和数据感知紧密集成。借助这个新功能,可以使用相同的语法,在任何支持LINQ的语言中编写相关代码,以筛选和枚举多种类型的SQL数据、集合、XML和数据集,以及创建它们的投影。
C#是微软在2000发布的一种基于.NET框架的、面向对象的高级编程语言。C#由C语言和C++派生而来,继承了其强大的性能,同时又以.NET框架类库作为基础,拥有类似Visual Basic的快速开发能力。
2. ClickOnce部署
ClickOnce是一种部署技术,使用该技术可创建自行更新的基于Windows的应用程序,这些应用程序可以通过最低程度的用户交互来安装和运行(2)。ClickOnce部署克服了部署中所固有的三个主要问题:
(1)使用 ClickOnce部署,可以自动提供更新。只有更改过的应用程序部分才会被下载,然后从新的并行文件夹重新安装完整的、更新后的应用程序。避免了用户重新安装整个程序。
(2)使用ClickOnce部署时,每个应用程序都是独立的,不会干扰其他应用程序。不再发生版本冲突。
(3)ClickOnce 部署允许非管理用户安装应用程序并仅授予应用程序所需要的那些代码访问安全权限。
我们的编排软件是以ClickOnce技术发布的应用程序,从网页发布,安装在最终用户的计算机上并在本地运行。既有和WEB应用程序一样便捷的使用方式,又不失Windows窗体丰富的用户界面和响应性。用户还可以对更新进行回滚,使应用程序恢复到早期的版本,让用户有效大的选择空间。
用这种方式部署,既简化和第一次安装和软件升级的麻烦,又带来了windows客户端比WEB方式更加友好便捷的操作体验。
3. 数据的断开式访问
ADO.NET利用XML的力量来提供对数据的断开式访问。ADO.NET DataSet是专门为独立于任何数据源的数据访问而设计,它可以用于多种不同的数据源,用于XML数据,或用于管理应用程序本地的数据。DataSet包含一个或多个DataTable对象的集合,这些对象由数据行和数据列以及有关DataTable对象中数据的主键、外键、约束和关系信息组成。
它能在应用程序中将数据缓存在本地,以便可以对数据进行处理;在层间或从XML We服务对数据进行远程处理;与数据进行动态交互;对数据执行大量的处理,而不需要与数据源保持打开的连接,从而将该连接释放给其他客户端使用(2)。
利用ADO.NET DataSet的这种特性,我们可以在本地的内存中构建特点的数据结构来存储节目编排的过程数据,当编排完成,校验无误后提交到数据库保存。这样可以有效的防止误操作。 由于是断开式编辑,我们对节目单以天为单位来锁定。同一天的节目单不允许两人或两人以上同时编辑。
四. 总体架构及设计思路
一个优良的编排软件,其数学模型的建立是一个关键所在,它的算法设计如何、总体框架的架构优劣,决定了该软件是否能得到正常的应用。
从电视编排的过程来看,电视节目编排,就是将已经制作完成的电视节目,合理优化地安排在电视播出的不同时间段上,所以,时间和节目就是电视节目编排首先要考量的两大要素。
1. 编排系统的总体模型
软件设计的要点就是要怎样组合时间与节目。本软件的总体模型是将节目归分为不同的栏目,先建栏目、再由栏目组成框架、最后由框架生成节目单并由节目单导出串联单。
数据库操作采用非连接模式,所有编辑结果存储在本地的缓存中,验证无误后,按保存按钮将所有更改一并提交到数据库。有效防止误操作带来的莫名错误。
(1)栏目库
栏目库中存放的是所有用来编排的栏目资料,包括当前播出的栏目和已停播的旧栏目。栏目分定点栏目和非定点栏目,栏目是组成框架的基本单位,编排中我们把广告看作栏目对待。编辑节目框架时,可以通过拖放的方式从当前栏目库中选中栏目,并拖放到节目框架中的目标位置;也可以在框架中的目标位置点击鼠标右键,在弹出对话框中输入栏目编码,快速定位到想要的栏目并插入。
(2)节目框架
节目编排部门常根据受众收视习惯,对频道节目配置、播出安排因季节性的变化,而进行应对性的调整,即“播出季”(4)。节目框架随“播出季”而调整。每个播出季有自己独立的播出框架,播出框架是栏目与广告分时段的组合。图2是节目框架的编辑界面。一组周节目框架由周一至周日七份日框架组成。我们为每一个节目框架命名,并限制其有效日期,这样便于不同的播出季使用不同的节目框架来生成节目单。
框架可单日复制,也可按周复制。
在编辑节目框架时,我们充分考虑用户的方便,可以随意的从左侧的栏目面板中拖动选中的栏目放入右侧的节目框架中;右侧框架中的栏目顺序可以上下拖动来组合;显示校验栏后,对时间是否超时或还有空隙能一目了然。该软件使得原本繁琐的编辑过程变得非常的轻松。
(3)节目单
节目单是由节目框架自动生成的。刚生成的节目单中只有栏目信息,没有节目信息。需要编排人员调用电视剧编排功能,为其编入电视剧。以及根据实际需求微调每天播出的节目。
图3是节目编排的主要操作界面。
为让编排人员在编排过程中,随时掌握广告时长,我们提供了广告长度计算功能。同框架编辑时一样,同样支持拖拽操作,方便对节目单的细节调整。电视剧自动编排到指定栏目也在这个界面下操作。
(4)串联单
节目单编辑定稿后,由系统生成相对应的串联单。串联单去除了节目单中冗余的时间信息,仅留下播出系统需要的简洁的数据。增加了广告插播点、广告版序、倒计时等广告相关的资讯。
2. 时间要素——时间值的存储和计算
时间计算是本软件的一个最重要的功能。软件中涉及到的时间量有三个:播出框架中的定点播出时间、节目长度、节目单中的节目播出时间。
框架中的时间表示的是时间间隔(TimeSpan),其值指的是节目播出时间距节目单日期00:00:00点的时间长度。比如,播出时间是2012-1-1 20:00:00,则其框架时间就是20:00:00;播出时间是次日凌晨2012-1-2 00:50:00,习惯上节目单的日期还是2012-1-1,则其框架时间是1.00:50:00,表示其距离节目单日期的零点有1天零五十分钟。由于数据中没有对应的类型,我们将其存储为char(10)类型。
节目长度也是表示时间间隔TimeSpan,节目长度总是小于24小时,我们将其存储为char(8)类型。
节目单中的播出日期是实际的日期,在数据库中存储为Datatime类型。
通过定点时间和节目长度的加减运算,就能唯一确定每一条非定点节目的播出时间,能计算出到下一个定点时间是否超时或还有时间空隙,并在界面上显著位置提示。这样节目编排时就能有的放矢的插入宣传片或安排广告时间。
软件还提供了选定时间范围内广告时长累加的功能,便于控制广告长度和节目长度的比例,以及指定时间内广告总长度是否超时等。
3. 节目要素
节目编排模块是总编室管理系统的一部分,编排模块可以直接读取编目模块生成的数据作为节目编排的原料。节目编目时已生成了编排所需的各种信息,包括节目名称、集数、时长、磁带号、入出点、广告插播点、授权使用期限等信息。节目编排时,可直接查询节目库中的节目信息并拷贝到节目单中。
4. 存储架构——数据库结构设计
我们定义了六个主要的数据表来存储节目单的相关信息,分别是栏目表、栏目类别表、节目框架表、框架信息表、节目单表、串联单表。
(1)我们将所有栏目存放在栏目表中,并存储栏目的类别、长度、是否定点播出、定点播出时间、是否当前播出栏目等信息。
(2)在框架表中,每一天的栏目按播出的时间顺序存储。定点栏目存储相对的播出时间和节目长度,非定点栏目播出时间留空仅保留节目长度。需要冠名的栏目存储其冠名信息。由一周的节目模板组成一组节目框架。
(3)节目单表存放具体的每一天的节目。存储绝对播出时间和具体的节目信息,这是节目编排的结果。
(4)串联单表中存放的是有定稿的节目表中导出的不带任何冗余信息的节目单,以及有串联单审核人员加入的播出控制信息,比如广告插播点、是否倒计时等。
五. 总结与展望
本文就电视节目编排系统的设计和实现作了较深入的分析,系统上线使用四年,各方面均达到预期目标。随着东南卫视信息化工作的不断发展,如何实现本系统与将来的媒资系统的结合,将是进一步的研究方向。B&P
参考文献:
1. 纪宁 媒介新动向 沈阳:沈阳出版社 2001年1月版
2. MSDN
3. 吴锦前 杭州市广播电视局技术中心 论总编室编排软件的设计思路 广播与电视技术 2003
4. 钱睿 编播季—电视节目编排创新的突破口 视听界,2007年第2期