EPG即时更新系统前端信息推送浅析
2015-09-27林斌黄元江苏省广播电视总台
林斌 黄元 江苏省广播电视总台
EPG即时更新系统前端信息推送浅析
林斌黄元江苏省广播电视总台
当前,EPG节目预告信息最常用的即时更新前端解决方案,是在播出网内部署EPG自动更新设备,运用安全单工传输、哈希加密、VPN等一系列技术手段,以确保播出系统网络安全并及时对节目条目予以过滤、筛选,再通过可靠的传输信道上传发布。相比传统处理方式,该方案的效率和准确性均有显著提高,但其也存在一些不足有待完善。本文从提升系统健壮性,改进应对临时变化的响应能力,及增强播出机构控制权限等角度出发,对前端系统的技术改造和升级展开了探讨。并结合江苏台初步升级串行单向EPG数据传送器等软硬件设施后实际测试的效果及相关技术分析,对未来的研发和应用加以展望。
数字电视EPG同步更新系统正则表达式
一、技术背景
1.EPG即时更新系统简述
电视播出机构作为节目编排和播出信息的唯一准确来源, 向有线网络运营商和EPG(电子节目指南Electronic Program Guide)信息服务商提供节目预告。由于其编排及播出系统通常与公网隔离,传统上从这些系统获取节目信息也主要依赖于U盘拷贝和人工录入手段;前者容易引入网络安全威胁,而后者操作繁琐,速度、准确性均不理想。而人工发送环节也加长了预告信息推送的延迟。
为此,EPG 即时更新系统应运而生。按其基本架构(如图1所示)和运作方式,可大体划分为三个子系统。即:同步传送、发布、覆盖。同步传送子系统通过在播出系统中部署专用设备,来确保串联单提取环节的安全、稳定和高效,得以构建自动化同步传送机制。在专用设备中实施数据校验、文件加密后,得到符合预定义标准的EPG信息数据集核心元数据,再将该元数据通过安全信道传送给发布管理系统。发布子系统主要用于接收加密元数据,对其进行解密、过滤、验证后再实施加密、压缩、打包等处理并通过安全专用信道发送给覆盖子系统,还能根据覆盖网络的回传数据,调整自身收发策略。而在覆盖子系统中,依靠同步更新模块实时接收卫星、广播等信道传输的EPG信息元数据,解密解压后参照预定义的关键字过滤、处理并覆盖至终端用户;而回传设备实时接收数字电视系统终端的信号,通过解析EIT表生成EPG元数据文件,并加密回传至发布子系统。
整个系统在确保EPG预告信息全天候高效率实时传输的同时,既很好维护了播出系统的安全性,又提升了传输信道和元数据文件的可靠性。
二、系统前端同步更新方案
下面结合江苏台的实际应用状况,对EPG即时更新系统前端的同步传送子系统及其工作原理做简要的探讨和分析。
1.串行单向EPG数据传送器
如前所述,在EPG即时更新系统方案中,实现前端同步传送功能的核心关键技术就集中在播出网内运行的专用设备上,即“串行单向EPG数据传送器”(简称VT)。VT 设备采用冗余双电源,具备用于暂存数据的缓存区,可避免因断电、断网等意外造成的数据丢失,一旦网络连接恢复正常,即可重新发送所有缓存的预告文件,很好地确保了前端同步传送子系统对节目预告信息的自动抓取、过滤和推送。
VT设备与播出设备通过 RS232 串口连接,其独具的“单向传输无回传”机制限制了仅能由播出设备向VT设备的采集端发送数据,而反向传输通道已被物理截断。由于采用了低速串口通讯,无需建立新的逻辑端口,病毒、木马无法通过端口扫描发现新连接并进行感染,由此几乎杜绝了任何潜在的对播出系统的网络安全影响。而VT自身的网卡工作于办公网段,通过VPN连接向服务商的EPG数据中心回传经安全加密的节目信息,破解难度极大,能很好的防止向EPG 数据链路中插入非法数据。
专用串口传输程序SendEPG用于与VT配合来更好地适配各类自动播出系统。SendEPG程序采用被动式应答机制,可在后台实时监测新进入预设目录的文件,并通过安全单工连接将其传入VT设备,系统资源占用小,响应时间短。该程序还实现了可靠的报错及重传机制。
VT设备接收到文件后,首先校验确认串联单所属频道及节目条目是否有效,时间信息是否合乎规范。验证通过后,按素材类型等字段对节目条目实施筛选、过滤;再与早先推送的串联单比对,若检测到有效更新,即对文件内容进行散列(HASH)运算,将运算结果—32字节的特征字串与播出机构代码、文件序列号合成为新的文件名(如图2所示)。这样,EPG数据中心收到上传文件后,即可通过散列运算与文件名核对,确保文件未损坏或被篡改。而序列号与文件修改时间信息共同确保了当网络延迟等因素导致文件接收顺序错乱时,系统也能准确识别最近的有效更新。
2.本地过滤及上传
(1)客户端软件
集成式客户端软件——TVEdit。它既可联网实时查看节目预告,又能对本地串联单实施自动过滤和人工编辑并上传。其界面如图3所示:右侧预告区域显示从数据中心下载并通过校验的当前频道预告,左侧区域则用于显示和处理本地文件。
(2)基于正则表达式的字符串处理
正则表达式(Regular Expression)是计算机科学的一个概念,它使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。TVEdit软件就运用了基于Unix语法的正则表达式处理引擎来对节目条目进行筛选、过滤。使用该软件打开本地串联单文件后,用户可以自主设置由正则表达式指定的行过滤、行删除和行截断条件。其中,行删除功能指删除含有匹配字串的行(每行对应一条节目);行过滤指删除行内匹配的关键字;而行截断是指若某行出现匹配字串,则自动删除从该字串至行结尾的所有字符。通过以上功能对软件导入的串联单描述文件实施自动处理,可以大幅减少人工编辑的工作量。
3.现有方案的不足
在多个频道的实际应用表明,上述EPG系统前端自动更新方案,无论在获取预告的便捷性和安全性上,还是信息传输的效率和稳定性上,较之传统方式都有了长足进步,但它也仍存在一些遗憾和不足:对于电视播出机构而言,现有系统的信息过滤、传输机制透明度不足,难于控制。还不能很好地适配和满足一些特殊需求,如“应对节目紧急调整”、“提升保密级别”等。节目条目及过滤条件的临时调整,都需要播出机构和服务商双方接洽和人工处置,显得效率不彰。
TVEdit软件也亟需改进:现有版本中,行过滤功能只针对每行首先匹配到的字串生效,行截断功能也会偶尔出现错乱,这都大大限制了软件对复杂文本的处理能力。此外,下载预告的相关信息提示得不够及时、准确,编辑、上传等功能的用户体验也不甚理想。
三、同步传送系统前端升级方案
鉴于以上问题和不足,很有必要对系统实施针对性的功能改造和升级,以增强其适应性,更好的满足应用需求。升级方案如图4所示。
1.并发上传
VT设备当前采用的单路上传方式,不利于播出机构开展有效的监控并在必要时进行干预,也不利于及时检测出传输信道的故障。
为此,很有必要改进VT的工作机制,实现双路上传,将向EPG数据中心上传的预告文件,同步发送给备路FTP服务器,以便尽快确认文件上传状态,并可通过查看、编辑收到的文件来进一步完善预告信息的管理。
2.前端过滤及校验机制
目前,部署于播出机构的整个前端系统对节目数据的检测和处理都完全依赖于VT设备,无论过滤、校验还是检测更新机制,也都还停留在一些最简单、基本的形式,灵活、智能程度都有待提升。
实际测试表明,目前VT设备的过滤功能,仅限于对数值字段的精确匹配,筛去取值在预设的“忽略数值集合”内的记录。而尚未引入与节目名称等文本字段相关的条件匹配、批量匹配等手段。检测更新也只是对过滤后文件的散列校验值进行对比。因此,像节目信号源、播出方式等最终不纳入预告的字段出现变化也会影响系统判断,即便节目名称、播出时间等有效信息一成不变,也可能触发VT设备多次上传。
因此,通过升级固件和配置来优化VT设备功能,提升过滤能力,减少重复信息上传,可以降低前后端系统的负荷,提升效率。
四、系统测试
在对VT设备及TVEdit、SendEPG等软件进行升级和重新配置后,江苏台的前端EPG同步传送系统已初步实现了“双路上传”、“检测前置”等新特性,下面就通过实际测试来检验其功能的运作。
1.测试环境搭建及调试
因地制宜采用办公PC搭建测试环境无疑是最简便、节约且可行的选择。在安装Windows Server 2003系统的PC上部署开源的FTP服务器端(FileZilla)及TVEdit软件,即可同时接收来自VT设备上传的文件与EPG数据中心发布的预告信息。
由于网络环境的特殊性——防火墙设置了“屏蔽桥接以防范潜在跳板攻击”过滤规则,还需要额外的技术手段进行配置。经反复测试、排查,需保持VT与FTP2之间的连接活跃方能确保预告文件的正常接收。在Telnet客户端中设置周期性发送FTP协议的noop指令,既能确保连接通畅,还利于FTP服务器记录日志以便追查。
配置完成后,检查接收到的串联单XML文件,得以确认测试时段中,FTP2成功接收到了所有文件,且VT设备的过滤功能也符合预期——指定节目类型的条目均已被筛去。
2.测试方案
此测试需要验证的是,在链路1断开之后,VT设备的文件上传和过滤功能仍能正常运作,备用的FTP2服务器还能通过链路2收到经过处理的串联单文件。
利用被测频道每日特定时段两次例行的、间隔较近的播出线上串联单调整,即可触发VT设备推送串联单文件,便于实施测试计划。具体测试步骤如下:
(1)断开“链路1”;
(2)由第一次播出线上的串联单调整触发第一次文件推送;
(3)查验FTP2接收到的串联单XML文件信息,与TVEdit软件接收的节目信息进行比对;
(4)恢复“链路1”;
(5)由第二次播出线上的串联单调整触发第二次文件推送;
(6)再次查看FTP2接收到的文件,并与TVEdit软件中显示的节目信息对照。
3.测试结果
链路1(VT与数据中心的连接)切断后,在被测频道播出工作站上执行串联单加载操作,很快就在FTP2上收到与此次操作对应的新推送XML文件,其中包含了新加载的19点以后直至次日凌晨的节目条目,而与此同时,TVEdit软件所收到的同一频道预告还只包含19点前的节目条目。将XML文件中ITEM标签time属性对应的时间与播出线上的节目单时间进行比对即可确认,FTP2所收到的文件已经过VT设备的过滤、筛选,无需预告的条目均已被过滤掉。
而在恢复“链路1”之后,TVEdit软件很快也获取到了完整的晚间节目信息。
测试中也发现,“链路1”断开后,VT设备多次登陆FTP1服务器失败,就会进入“缓存等待”状态,向备服务器上传的进程也随之阻塞。由SendEPG程序发送来的文件,均被VT自动置入缓存,暂缓发送,待VT重新登录上FTP1之后,才集中将所有缓存的文件一并发送给主备路服务器。因此,一旦链路1断开,FTP2也仅能在很短时间内继续接收到预告文件。
五、对未来升级的展望
由测试可见,上述系统及其配置还有很大的升级、改进空间。
1.升级数据传送器
VT设备的“并发上传”功能还需要做进一步的调整优化,以期能实现在链路1意外中断期间,该设备能够一面缓存节目数据,以备链路1恢复后集中给发送FTP1,一面继续向FTP2服务器实时推送新收到的来自SendEPG程序的节目数据。这样无疑能显著改善系统的健壮性,提升节目信息获取的安全系数。将来面临特殊的信息保密需求时,播出机构甚至可以主动断开链路1,并利用FTP2上部署的软件进行二次筛选及审核后,再将预告信息上传给EPG数据中心。
就数据过滤能力而言,VT的提升空间也很大。比如目前该设备还缺失的字符串字段处理能力,以后就可以考虑引入基于正则表达式的匹配、筛选机制。在通讯的及时性、稳定性得到保障的前提下,还可以更进一步,通过将节目条目筛选策略配置信息置于EPG数据中心或是备路的FTP,来实现准实时的过滤条件更新,以更好的适应节目预告相关需求的持续调整和变化。
2.客户端系统升级
这里的“客户端”囊括了需要与EPG数据中心的“服务器端”进行通讯的多种实体,包括可以部署多个实例的桌面TVEdit程序,以及在播出机构用于接收VT上传文件的备FTP服务器上逐步构建的可处理和上传串联单文件的系列程序。
如前所述,TVEdit程序的正则表达式匹配功能还有待完善,涉及与EPG数据中心交互的多项功能也都需要改进。在FTP2服务器上,可以应用与SendEPG程序类似的机制,收到串联单文件后,自动触发一系列文件校验、数据过滤等处理,将无需预告的节目条目筛去,必要时还可提醒责任人员及时审核并对疑似有误的条目给出警示,以确保节目信息及时、有效且不包含播出机构要求保密的信息。而当满足一定预设条件时(例如过滤后的文件已符合‘免审核’条件,或已提交审核通过),系统还能自动将处理后文件上传至EPG数据中心。这些新特性也都对系统的文件自动解析、验证能力提出了更高的要求。
[1] GY/T 231-2008,数字电视广播电子节目指南规范[S].
[2] GD-J 053-2014,EPG信息数据集核心元数据即时更新系统技术规范[S].
[3] 刘家宝.数字电视系统的节目复用和条件接收技术[D].山东大学硕士学位论文.
[4] Electronic Program Guide (EPG) [EB/OL].http://www.abc.net.au/reception/digital/EPG.htm 2005.12.16.
[5] Ciciora W S.Inside the Set-Top Box[C].In IEEE Spectrum.1995,(4):70~75.
[6] Perkowsky S, Jaeger R.The Set-Top Box as Multi-Media Terminal[C].In IEEE Transaction on Consumer Electronic,1998,44(3):833~840.
[7] 汪志明,邹道文,周源华.数字电视中电子节目指南系统的研究[J].数字电视与数字视频,2002,11(245):(4~6).