齐风
北京歌华有线电视网络股份有限公司
摘要
本文介绍了歌华有线在线的视频点播应用系统的设计开发过程。通过分析介绍目前制约视频点播业务发展的各种问题,来制定有针对性的解决方案。系统采用了松耦合的模块化方式实现保证了系统的可靠,高效及可扩展性。系统的实施上线也为视频点播业务发展带来了新的模式及活力并在实际的运用过程中取得了理想的效果。 关键词
视频点播,模块化,统一接口,模板
引言
随着数字电视技术的逐渐普及,越来越多的电视用户通过使用高清交互数字收到更多更清晰丰富的数字电视节目。伴随着数字技术的发展,视频点播业务也得到了快速发展。作为交互数字电视的核心业务,全国各地的有线运营商都建设了自己的视频点播系统。视频点播类的应用呈现雨后春笋的发展态势。以北京歌华为例,截止2013年底,共开通双向用户480万户,拥有免费点播、电视院线等十余个视频点播类应用,在线视频点播节目已达 3.8 万小时,视频点播日点击量突破 70 万次。所以视频点播应用的快速开发及部署对广播运营商的业务发展,增值创收有着积极和重要的意义。一套设计合理功能完善的视频点播应用支持系统将加速应用的开发部署更好的支持广电运营商的核心业务。
视频点播应用相关技术介绍
目前大部分有线电视运营商建设的视频点播系统都遵循美国Comcast的NGOD规范或者由国家新闻出版广电总局制定的NGB规范。视频点播应用在NGOD规范中定义为点播客户端(On Demand Client)需要和导航服务器,购买服务器,会话管理器,边缘资源管理器以
及推流服务器集成五类接口。
为了满足用户的交互需求,广电发放的机顶盒都在OS上集成了中间件,应用一般采用浏览器/服务器方式呈现。为了实现应用的设计功能和效果,应用先要针对机顶盒的中间做相关接口的集成工作。
视频应用开发中的技术障碍
基于广电网络的视频点播应用开发有别于基于互联网的应用开发,主要体现在以下的几个方面:
掌握技术成本高
在NGOD的规范中点播客户端的集成接口类型较多,需要相关的开发人员熟悉相关标准,熟悉点流过程的各个技术细节。另外在开放过程中没有一套完整的开发方式和规范,整个系统需要从零开始来搭建,技术成本和时间都比较高。
硬件资源分配
为了满足用户不断增长的点流需求,有线运营商一般采用内容分发网络(CDN)来部署视频点播系统。与之配合视频点播应用也在分区上进行1:1部署。但视频点播应用多为WEB应用具备较好的并发支持能力,如果也采取分区部署的方式往往会浪费大量硬件资源。
运维管理压力
视频点播应用作为整个视频点播业务的表现层,直接面向用户呈现信息。一旦业务出现任何异常都将在点播应用上体现。广电行业对于安全播出的高标准就要求各个视频点播应用都有运维值班人员,这样应用的后期维护成本无疑会大大增加。视频点播应用的数据主要是由后台系统提供,多数应用并未做数据的本地持久化,而后台系统为了满足并发要求一般采用了缓存的处理机制,当内容出现问题时,内容的更新和下发都需要一段时间,无法满足系统对内容维护的高效和高可靠性要求。
数据内容的隔离
视频点播应用使用的数据往往带有一定的业务属性,在应用的制作过程中各应用之间的数据基本是隔离的,各个应用之间彼此平行。在开展一些横向跨应用的业务如搜索,推荐等应用的开发成本比较大,周期比较长,不利于业务的敏捷部署。
基于上述四点原因,目前双向视频点播业务的发展在技术上受到了一定的制约,应用的开发,部署,维护,扩展都存在一些亟待解决的问题,合理科学的解决这些问题,是推动视频点播业务发展的前提条件。
视频点播应用支持系统设计原则
结合北京歌华网络股份有限公司的具体情况,经过对业务的梳理和分析后发现在视频播出系统和视频点播应用之间需要一套中间业务支撑系统,这样才能更好满足视频点播应用的发展要求。视频支持项目(Video Support Program)是为实现这一目标而开发的系统。
在系统设计过程中遵循了几个基本的原则。
可靠性
作为一个支持多套应用的底层平台型系统,系统的可靠性是需要优先考虑的问题,系统的高可用性是需要作为优先考虑的问题。视频支持项目以下简称VSP的可靠性是通过以下几个手段来进行保证的。
架构层面采用模块化的方式进行开发,将系统按照功能划分成若干个功能相对独立的模块,模块之间通过数据接口进行通信,当其中的单个模块出现故障时,不影响其它模块的正常运转。
在部署时充分考虑单点故障带来的影响,牺牲部分硬件资源换来更好的可靠性,所有的模块最少平行部署两套,数据库采用一主多从的模式,消除点单故障点,保证系统建构在稳健的硬件平台上。
在开发层面尽量采用成熟的技术及架构,保证开发人员可以充分理解和使用相关技术,降低由于对技术标准理解不全面而产生的风险,另外单个模块的逻辑功能尽量设计简单,由简单模块拼装来实现复杂的系统功能,简化非必要的功能。使用最合适的技术开发最核心的
功能。
可扩展性
随着业务的发展,无论是业务数量还是用户数量都会呈现不断增长趋势,当对系统的性能提出更高要求时,系统是否可以通过简单手段扩展满足是设计系统时必须要充分考虑的问题。否则,在业务发展后系统会成为制约发展的瓶颈。另外随着业务模式的发展,势必对系统的功能提出新的要求,能否在不对系统核心做大的修改情况尽可能好的满足新功能要求也是在设计时需要考虑的问题。
性能的扩展一般采用的模式垂直扩展和平行扩展两种模式。垂直扩展采用增强单机性能,更大的内存,更快的数据读写,更快的处理速度来提高系统的处理系统。平行扩展则通过简单复制系统提供更好的服务支持能力。目前系统的硬件平台都已经采用虚拟化系统,所以采用平行扩展的模式更符合歌华的业务模式。
功能的扩展则需要充分将业务分解,并对业务的发展做出一定的预判,通过对简单业务的组合来实现复杂业务逻辑,另外就是设计开发一套完善的数据层,通过对数据层的扩展来实现新业务逻辑的添加。
高效率
高效率主要包含两个层面的意思,首先是系统提供的服务高效,另外是用户访问视频点播应用的效率。实现系统的高效率需要多重机制的保证。首先保证数据提取的高效,提高程序的处理效率需要有较好的数据库设计机制。VSP采用了一主多重的集群数据库设计,配置多个读Cluster,主库负责数据的写入,从库负责数据的读取,实现了数据的读写分离。提高了数据访问的效率。在高并发下解决了数据库连接数的限制,提高了数据访问能力。
当数据量不断增加后,系统的性能瓶颈往往会出现在磁盘读写能力上。为了解决这一问题,系统在设计时往往会考虑采用缓存机制,但使用缓存机制的最大问题刷新机制及数据命中率的问题。经过对数据规模的分析测算,最终采用内存数据库的方案,将数据库安装在内存之中,解决了磁盘读写的瓶颈,大大提升了效率。
从用户使用视频点播类应用的场景分析,用户看到的绝大部分内容为相同内容,所以通过对访问页面的静态化可以有效提高应用的加载效率和稳定性。通常来讲,静态容器可以比
动态容器提供更好的应用服务能力。
功能模块功能模块调用DAOWriteMasterRead主从同步SlaveSlaveSlave VSP数据库系统结构图
视频点播应用支持系统详细介绍
在遵循系统设计的原则的基础上,是对服务的对象即视频点播应用的功能拆解,结合已有的业务,将视频点播类应用的基本功能梳理如下图
组件工具搜索首页栏目信息收藏视频点播应用列表 分类详情购买影片详情播放鉴权视频点播应用使用功能分解图
一个典型的视频点播类应用往往会涉及上图所示的功能,用户打开一个应用首先看到的会是这个应用的展示首页,选择分类有会进入列表的页面,通过文字或者海报列出当前分类下的视频影片信息。当用户选择自己感兴趣的影片时可以进入影片的详情页面,进一步了解影片的相关信息。如果用户想观看影片,则对用户进行鉴权动作,当鉴权通过后则为用户播放影片,如果鉴权不通过则会提示用户购买或者给出相应的失败信息。
打开视频点播应用搜索感兴趣的视频打开分类列表返回搜索结果视频详情页面收藏视频点播视频用户鉴权成功失败播放视频购买流程 标准点播业务流程图
通过对流程和场景梳理分析,作为视频应用的支持系统需要设计六类的接口。分类接口,用来获取分类下的影片信息;元素接口,获取单个影片的详细信息;收藏接口,实现对视频的搜藏功能;播放接口,实现影片的播放;鉴权接口,获取用户的权限信息;搜索接口,通过一些条件返回搜索结果。
VSP对应用的支持主要通过两种方式来实现:开放供应用调用的开发接口(Open API)以及通过模板生成静态应用。两种方式的选择则可以结合具体的应用情况选择,如果是BS架构的应用,模板方式更适合将列表页面和详情页面等用户共同访问无差别的内容做静态化,提升访问效率。如果是CS架构,则选择接口方式来获取数据更为合理。当然鉴权,搜索,收藏等功能在所有场景下都需要通过调用接口来实现。
系统模块分解
VSP采用了模块化的设计及实现。模块的分解主要依据是该模块需要承担的业务功能和整个系统未来具备功能扩展的最小单元。
测试系统TestNFSHTTP/JSONXML区域运营管理系统RBO前端应用系统WFESHTTP/JSON系统控制模块CommandJSONNFS应用系统APPHTTP/JSONHTTP用户机顶盒STB中央运营管理系统CBONGOD A3/A5内容适配模块AdapterHTTP/JSON数据交换模块SwithJDBC统一应用接口Outlet内容分发网络CNDTS/IP分区QAM统一数据存储系统DBRFJDBCVSP模块分布图
视频点播系统的前端应用系统WFES是作为整个系统的对外终点,对VSP,WFES是数据的来源是整个系统的起点,终端为应用可以直接使用的API接口和符合规范的应用页面模板。
系统主要由内容适配模块,数据交换模块,系统控制模块及统一应用接口模块构成,其中:
内容适配模块主要负责从歌华视频点播系统中的前端点播系统(WFES)获取原始的视频点播数据,并对基础数据进行数据格式和类型的转换;
数据交换模块将内容适配模块转化后的数据进行存储操作,写入数据库中,数据交换模块可以对接多个内容适配模块;
系统控制模块对已经存储入系统的数据进行各种管理操作包括:编辑,分类,重组等,
另外系统的各种配置及参数也通过此模块进行管理;
统一应用接口模块,提供一套封装后的应用开发接口,为基于Web技术开发的视频点播类应用提供数据获取,内容检索,影片收藏,影片播放等一些列服务功能。
首先系统初始化对配置前端点播系统(WFES)的节点信息,然后通过内容适配模块获取原始的视频数据。
进一步通过数据交换模块将数据插入到数据库中持久化为可供本地使用的基础数据。 再进一步,通过系统控制模块配置前端应用的相关信息,包括应用名称,授权代码等,使开发者具备基于原始数据开发应用的条件。
更进一步,通过统一接口模块,通过HTML页面使用AJAX方式直接获取统一接接口模块提供数据,完成应用的各项展示需求和功能需求。
内容适配模块介绍
内容适配模块的主要功能是对视频点播系统提供对外数据的适配功能。WFES系统本身提供一套数据接口,内容适配模块的主要功能是将通过WFES接口获取的数据转化成可供VSP使用数据模型。由于WFES接口并不具备变更通知功能,所以内容适配模块采用轮询的方式来查询获取数据。轮询的频率和策略可以通过系统来进行配置。另外为了保证接口的效率,内容适配模块采用多线程机制,可以多个线程同时进行数据查询,提高了数据的时效性,最大的程度保证VSP的数据和原始数据的同步。
将内容适配模块独立为一个模块是基于未来系统调整的考虑,由一个单独的模块负责对数据模型进行转换,当数据的提供方调整,替换或升级时只需要单独维护此模块即可,降低开发和实现成本。
数据交换模块
数据交换模块是实现数据读写的中间模块,其它模块对数据的操作都需要经由数据交换模块来完成,相当于系统的数据流转的一个中枢。这样实现的最大好处是可以更好地优化系统数据的读写效率,另外这样有利于未来系统能力的扩展,以及当系统出现问题后最大程度保证数据及系统的稳定及可用性。
系统控制模块
系统控制模块是VSP的支撑后台,系统的主要功能及配置都是由系统控制模块来实现的。系统控制模块主要包含五个部分的功能,用户管理,内容管理,应用管理,日志管理及配置管理。五个部分的功能配合使用可以完成一个视频点播应用的配置,开发,部署等流程,支持应用的开发上线工作。
用户管理功能可以实现对系统用户和应用用户的查看和管理。系统用户是指可以登录VSP系统后台对系统进行配置和管理的用户,应用用户是指使用基于VSP平台和标准开发的视频点播应用的用户。通过用户管理功能,管理员可以新建,删除,修改系统用户。可以查看应用用户的信息,包括用户的点播,收藏信息。
内容管理功能将已经持久化到本地的视频数据进行展示和管理,在内容管理功能中以树型结构呈现所有数据。数据分为原始数据和系统数据两个类型,原始数据是指由视频点播系统获取的数据,系统数据是指根据原始数据重组后的新的数据结构。用户可以对获取的视频信息进行编辑,复制,下架,上架等一些列操作。用户也可以新建分类,调整顺序等操作。将数据组合成符合应用使用要求的结构,满足应用的使用要求。针对单个的视频元素,通过内容管理可以实现对元素的各项属性进行编辑,例如名称,海报,介绍等信息。通过内容管理功能可以最大满程度足视频应用运营者对视频应用内容管理的要求。
应用管理功能可以对基于VSP开发的视频点播应用进行查看和管理,应用的开发主要基于两种模式:接口和模板,如果采用接口模式可以通过应用管理功能上传应用到VSP服务器并根据配置发布到应用服务器上。如果采用模板方式需要新建模板,将符合开发规范的模板包上传后挂接到应用即可完成配置工作。应用的发布具备多种方式,包括手动发布,自动发布,自动发布可以灵活配置策略,可做到按周期或按时间点发布。
日志管理功能可以方便系统使用人员了解系统的运营及使用情况,包括用户的操作记录,应用发布记录,内容更新记录及系统异常记录。日志管理功能也具备应用的视频访问统计能力,可以了解基于VSP标准开发的视频应用点播收藏情况,可以了解影片的观看排行。
配置管理功能是通过可视化的节目对系统的各项参数进行配置和管理,包括系统运行必须的各项参数,以及系统各服务器的配置和管理。
系统用户用户管理应用用户原始数据内容管理系统数据应用管理系统控制模块应用管理模板管理系统日志日志管理数据统计配置管理 系统控制模块功能分解图
统一应用接口
统一应用接口模块是为视频点播类应用提供接口服务的模块,可以满足一个典型视频点播类应用的各项对接口的各项功能和数据要求。统一应用接口可以由应用页面直接通过AJAX调用,也可以通过后台程序进行调用。统一应用接口是VSP的核心功能模块,经过处理转化的数据都是由统一应用接口模块对外提供服务。应用开发者只需要掌握接口的使用规范就可以迅速的基于广电网络的视频点播平台进行应用开发,上手简单,维护容易。接口的
安全通过授权码机制进行保障,保证数据和接口调用的安全。
应用的接口采用的HTTP方式调用,返回的结构为JSON数据,通过一系列的接口参数来返回不同的数据。通过使用这些数据完成视频点播应用的展现,使用和播放。
应用系统
应用系统是用来存储基于VSP开发的视频点播应用的访问页面,开发者无论使用模板还是接口开发可以通过控制模块上传然后发布到应用系统,应用系统由一组静态的Nginx 服务器构成,由硬件负载均衡服务器来分配访问压力,做到利用保证稳定性的同时消耗最少的硬件资源来支持最大的访问请求。
视频支持系统的应用优势
通过开发实施VSP系统,视频点播类应用的开发方式,速度,成本及运维模式都发生了重大的变化。
首先是引入更多源的开发力量,实现了应用开发的开放性。由于对复杂的视频点播接口及流程进行了封装,供应用使用的接口更加简单,方便。更多的开发则具备了基于广电视频点播系统开发点播客户端的能力。开发竞争的格局无疑有利于业务的多样性及发展。
由于开发者无需在关心复杂的后台技术,而可以集中精力于前端内容展示的开发,开发的速度得到了明显的提高。一般一套应用开发时间可以明显缩短60%,而由于可以集中精力在前端WEB部分的调优,应用质量也得到了明显的提高。
由于开发者的引入以及开发速度的提高,所以单个点播客户端的开发成本明显下降,有利于运营商控制成本提高盈利,获得更佳的投入产出比。
由于VSP的设计及实现充分分析和研究了应用开发维护过程中存在的问题,所以在系统设计时通过多种机制及技术手段解决了运维上面的问题,包括:通过定时或自动的任务来实现更新发布的自动化,日常的维护可以通过可视化节目完成,以及各种日志数据的收纳通过统一的规划完成,保证系统在日常的运行过程中做到稳定,高效。另外在正式运营之前进行了充分的功能,性能测试,保证了系统最终的运行达到了设计的目标,基本可以做到无人值守。
运营业务模式的变化,VSP具备了一定的用户数据采集能力,可以了解用户的行为以及
内容的点播次数,这些数据为了解用户行为,内容喜好提供了数据支持,有利于更加准确的了解和改善应用。
由于系统在设计时采用了模块化松耦合的方式,所以无论在稳定性和扩展性上都得到了很好的保证,系统都可以通过新的适配模块快速将新数据,新业务,新功能接入VSP平台,为应用开发提供有力支持。
结语
一套可靠,高效的视频应用支持系统的开发涉及的不仅仅是简单的技术问题,首先是要充分的了解和分析现有系统的运营情况,定位制约发展的根本原因,才能做到有的放矢。系统要能实现设计目标则需要有一套简明清晰的设计原则,并有可以履行这些设计原则的技术实现方法。
北京歌华有线通过实施部署VSP系统,获得理想的运营性效果,无论在业务的部署周期及业务的实现效果和后期的运维模式上都得到了明显的改善,也提升了用户的使用体验,增加了增值业务的粘性,目前歌华有线的主要收费点播业务大部分是基于VSP系统开发的,业务的更新周期和对新要求的响应速度都明显提高,值得向更多有类似的需求的运营商进行介绍和推广。
因篇幅问题不能全部显示,请点此查看更多更全内容