
吴爱峰毕政钟亦平张世永(复旦大学网络信息工程中心,上海200433)
摘
要
分布式视频点播系统是解决视频点播系统的负载瓶颈的有效解决方案。论文提出使用Agent技术来实现分布
式视频点播系统,并利用一套成熟的开放源代码的Agent实现框架JADE加以设计和原形实现。关键词
分布式视频点播系统
代理JAVA代理开发环境
文章编号1002—8331一(2006)08一0227—03文献标识码A中图分类号TIBll
Designand
ImplementationofaVODSystemBasedonjADEFramework
Wu
Aifeng
BiZheng
ZhongYiping
Zhang
Shiyong
(NetworkandInformationEngineeringCentre,FudanUniversity,Shanghai200433)
Abstract:DistributedVideo
Demand(DVOD)Systemis
effectivesolutionfortheloadbottleneck
ofVODsystem.
Wepropose
to
implementtheDVOD
systemwith
Agenttechnology,and
set
ofopen
agentimplementation
framework-JADE-todesignandprototyperealize.Keywords:DVOD,Agent,JADE
视频点播系统(VOD系统)是~种交互式的多媒体信息服务系统,用户可以根据自己的需要和兴趣选择多媒体信息过程.并控制其播放过程12]。随着互联网的普及以及网络带宽的不断增加.越来越多的VOD系统开始基于互联网构建。首先因为低廉的费用及易用的软件,吸引固有的大量的网络用户,其次可以利用互联网已有的一些基础设施,包括硬件和软件,从而
节省投资。
早期的VOD系统可以简单地认为是客户一服务器架构,存在一个中心服务器,专门存放各种影视数据资源。当一个用户点播时.就让他连接到此服务器索取他想要的资源。如果用户数较少的时候,还没有问题,但是当用户数逐渐增多时,此服务器就有些不堪重负,出现了至少两个主要的瓶颈:系统负载瓶颈和网络带宽瓶颈。而分布式的视频点播系统是解决这些瓶颈的很好的办法。
1
分布式视频点播系统简介
为了解决系统负载的瓶颈问题,首先对视频服务器的性能
提出了较高的要求,如大容量、支持同步、响应迅速等。为适应这些要求,发展了许多新技术或应用了许多的现有的技术,如集群技术口I、磁盘Cache技术和一些新的调度算法等等。这些技术的应用在一定程度上缓解了VOD系统对服务器性能的需求。
为了解决网络带宽的瓶颈问题,最简单且应用最多的方法就是采用分布式的VOD系统。即把视频服务器在物理上分布在不同的区域,从而把用户的访问请求分散到不同的网络中去.这样就不会在视频服务器的网络出口处造成瓶颈。而且也可以把用户应用某种策略调度到较近的视频服务器上。从而提供更好的用户体验。一个分布式的视频点播系统的示意图如图l所示(基于Berkeley的分层视频点播模型)。
图1
Berkeley分布式VOD体系结构
分布式的视频点播除了能够实现业务要求的定义外,还对以下参数提出特定的要求:
(1)性能;
(2)伸缩性;(3)可维护性;(4)安全性;(5)可靠性。
在分布式系统中实现这些属性,需要认真和复杂的设计,还要对组件之间的交互作用给予特别的注意。
在以往的分布式视频点播系统的软件设计中,大多是基于CORBA应用程序框架进行的设计。在~定程度上实现了上面提到的几个额外需求的特点,但CORBA实现起来较为复杂,且学习曲线起始阶段较陡。所以我们提出使用基于代理(Agent)的方法的另外一种实现,可结合CORBA的体系架构作为组件,也可单独作为系统框架。而JADE是开发中间件的一个框架,用它开发Agent系统减少了复杂性。第二部分我们就
作者简介:吴爱峰(1978一),男,硕士研究生,研究方向为计算机网络与多媒体应用。毕政(1982一),男,硕士研究生,研究方向为计算机网络与多媒
体应用。钟亦平,副教授。张世永,教授,博导。
计算机工程与应用2006.08
227
万方数据
2JADE原理
JADE(JavaAgentDEvelopmentFramework)即基于JAVA语言的Agent开发框架.是由TILAB开发的开放源代码的自由软件。它包括一个中间件和用来调试和配置的一套图形化的工具,简化了一个多Agent系统的开发过程。JADE完全是用JAVA语言实现的,当前要求的最低的JAVA版本是1.4,详细见[2]。
图2是利用JADE开发的软件系统的一个基本的架构图。可以看到,JADE是建构在iava虚拟机之上的,从而具有了天生的跨平台的能力。而JADE作为一个中间件,与JAVA虚拟机协同工作.屏蔽了底层的细节。JAVA虚拟机主要是屏蔽了底层操作系统以及硬件的细节,而JADE在这个基础之上会根据环境自动选择网络的传输协议,从而屏蔽了网络传输的细节。作为整个应用程序一部分的Agent工作在JADE所提供的容器中,它所接触到的环境在任何的机器上全部都是一致的。在这些基础之上开发Agent非常的方便,不需要再考虑底层的任何细节,所以开发过程被简化且开发出来的Agent系统移植性很强。
Multi—agent分布式应用程序
咏。锹。Ⅲ啄咿鞭鲫。q刚q咿。
llllJADE层llr_矿广耐厂矿厂扩
I(c。ntainer)J|(c。ntainer)l(c。ntainer)JI(c。ntainer)
JAVA虚拟机层
卜e卜EI麓出i『∞c『
图2基于JADE系统的基本架构
一个典型的基于JADE的系统包括平台(Platforill)、容器(Container)和代理(Agent)。每一个JADE运行环境的实例成为一个容器,一个容器中可以容纳数个代理运行。而一系列运行中的容器就组成一个平台。每个平台都包含一个唯一的主容器,平台巾的其他的容器在起始的时候都要向主容器注册。而启动这个平台的第一个容器自动成为主容器,平台中的其他的容器在启动的时候都需要被告知在哪里能够找到主容器。主容器自动包含两个代理:AMS和DF。
表1主容器中必须包含的两个Agent
2282006.08’计算机工程与应用
如图3所示,平台1包含3个容器,而平台2只包含1个容器。容器2和容器3都要向它所属平台的主容器——容器1注册。由于JADE屏蔽了底层的操作系统、硬件和网络的细节,代理可以只需认为自己运行在一个平台和容器中就可以了。
图3~个典型的基于JADE的系统
Agent实际上执行的工作基本上都是在“行为”(Behaviours)内完成的。行为代表了一个Agent能够完成的任务,他们是继承了jade.core.behaviours.Behaviour的类的一个实例。常用的行为列举如表2。
表2几种较常用JADE行为
行为描述
这个行为在Agent中只执行一次
这种行为永远不能停止,会一直循环执行下去
此行为内置一个状态.根据这个状态执行不同的动作
根据一个内置的问隔时间定期的执行一个行为
定义一个时间.在这个时间过期就开始执行这个行为
JADE是融合P2P技术、Agent技术、中间件技术、JAVA技术等当前较为先进的多种技术的软件框架,现在已经被较多的厂商和应用软件系统所采用。适合采用此框架的软件系统如下:由一些自治实体组成的分布式应用软件,需要协商或协作的软件系统,非C/S结构的P2P的软件系统,开放的交互式的软件系统。而分布式的视频点播软件系统正是包含在其中的,所以用JADE来实现分布式的视频点播软件系统是非常合适的。
3系统设计与实现
由以上的介绍和分析我们可以看出.使用JADE来实现一个分布式的视频点播系统有其先天的优越型。首先是跨平台特性.这是因为用JAVA语言实现的缘故。然后是可伸缩性.一个代理可以很方便地加入或退出整个Agent系统,这样在系统的规模上就有很强的伸缩性。至于性能,我们可以根据Agent系统提供的数据判断出能够给用户提供服务的最佳站点,从而优化了用户体验。由此我们设计并实现一个基于Web的视频点播系统原形.来考察基于JADE的多Agent系统在分布式视频点播的应用能力。
3.1基本架构
我们的原形系统包括:
(1)一个较典型的多层Web应用程序,包括一套网页和一l-1.1-i.~
蒹淼
裟黑~ 万
方数据个数据库。
(2)一个运行在分布式环境中的Agent系统。
如图4所示。
图4原形系统整体结构及流程图
3.2基本工作流程
工作流程分为两个部分。一是用户访问时的前端系统的基本工作流程,二是系统在后端的Agent系统的工作流程。
用户访问的基本流程如下:
(1)用户访问网页,选择一部影片。
(2)Web系统提取数据库中存取的整个系统中的媒体服务器的数据,如主机负载情况、存储器负载情况、网络出口负载情况。而这些数据是由在后端运行的Agent系统所收集的:分布的Agent把其所在的本地媒体服务器数据提交到一个
SupervisorAgent,然后再填人数据库。
(3)根据某种策略,决定哪一台服务器能够为此提供最佳的服务,然后把用户的访问引导到那个媒体服务器。
后端的Agent系统工作情况如下:在每个媒体服务器上有一个JADE的容器。每个容器里运行着一个Agent.称为监控者代理(MonitorAgent)。存在一个主容器,在这个容器中工作着一个Agent,称为管理者代理(SupervisorAgent)。上述的容器和Agent共同组成系统后端运行的Agent平台。
系统后端运行的基本工作流程如下:
信息收集流程:
(1)监控者代理中运行着一段称为通知行为的程序,它是一个所谓的Ticker,每隔一段时间向管理者代理发送一个包含本地系统地性能指标的信息报文。
(2)如果媒体服务器是Real服务器,就通过它默认的9090端口收集相应的Real服务器的负载信息,包括CPU和内存的使用情况,连线人数和打开文件的数目等等。同样如果是微软的WINDOWSMEDIASERVICE.可以用它提供的SDK采集到所需要的信息。同时还可以利用JAVA的JNI(JAVA本地接口)技术、操作系统的SDK直接采集所在机器的性能信息。
(3)相对应的,管理者代理中运行着一个接收行为,这是一个Cyclic行为.循环地运行,若消息队列中没有特定的消息,就阻塞并等待。若收到监控者代理发送来的媒体服务器的性能指标报文。则解析这个报文并且将相应数据存人数据库。
协同工作流程:
(1)管理者代理中运行着一个命令行为,这是一个Ticker行为,每间隔一段时间就从数据库读取相应的信息,包括媒体服务器当前性能指标、访问情况等等,然后根据某种策略或算法.向在监控者代理中运行的执行行为下达某种命令。
(2)在监控者代理中运行的执行行为没有任务时处于阻塞状态,当发现消息队列有任务时就取出第一个任务执行。执行行为工作时可能需要两个监控者代理协作执行,比如说转移一个文件或分发一个文件就需要两个或多个代理协同工作。
总结上述的系统后段情况.可得出表3。
表3系统原形中的代理清单
代理名称描述包含的行为行为描述
3.3实现概述
根据上述介绍的基本架构.我们用JAVA语言实现了一个原形。下面分别介绍一下实现代码。
首先列出Supervisor代理的部分主干源代码:
publicclassSupervisorAgentextendsAgent{
protectedvoidsetup(){
,/把supervisior代理注册到平台上的目录服务上
//…此处省略若干代码
DFService.register(this,dfd);
//运行接收行为.接收各媒体服务器的性能参数信息
addBehaviour(newReceiver());
/,运行命令行为,每隔一定时间做出命令
addBehaviour(newCommander(this,6000));
)
privmeclassReceiverextendsCyclicBehaviour(
publicvoidaction(){
…/,具体行为的描述在这里
】
)
privateclassCommanderextends
TickerBehaviourf
publicCommander(AgentargO,longar91)(
super(argO,ar91);
)
protectedvoidonTick()f
/,具体行为的描述在这里
Ⅲ
Monitor代理的源代码与Supervisor的相似,就不再列出。
媒体信息表实现为一个JAVABEAN,如下所示:
publicclassServerlnfoimplementsSerializable{
pnvateimcpuUsage;
pn‘vme
intmemoryUsage;
pn。vmeiutbandwidthUsage;
pri‘vate
intplayersConnected;
pn‘vate
intfileUsage;
pn。vme
AIDsenderAID;
pn’vmeStringsenderIp;
(下转232)
计算机工程与应用20016.08229
万方数据kt2者疋+者6
其中6为数据托的误差,这主要是由ADC引起的。
由于蜀≈。,得到艿。书,进而得到《+。《书,是常数。
本系统采用的ADC为24bit的高精度∑-△ADC,其转换精度6=拿=争·专=2瑙,所以采用该算法得到的期望值的所带来的额外算法误差很小而且固定。不会随采集数目的增加而游走。
(2)方差
由方差的定义有:
V=E(X-E(X))=E(X2)-E2㈤:登一盟
可得方差的递推公式为:
yw2者Vn+斋[(E-x“)2m姚2+·]
误差公式:
△矿者(a+2x∥6)
近似有△。:△。+玖。·乱
由于△l=O,所以递推得到△。=23·(nE叫1)。
显然,这种算法计算方差所带来的误差具有随机性。但是有一点需要考虑的是,这里的z。+。是船载气阵列所产生声波的体现,该声波在500ms以后强度已经很小了,而通常情况下的采集时间是6s,所以戈。在n很大,也就是采集时间足够长的时候可以忽略。同时由于波形的对称性,可知采样点足够大(采样点数=0.5ms采样率x6s=12000个)的时候,E。一0,所以误差公式可以简化为:△。=一筋·戈。虽然戈-是不确定的,但它的值比较小,从而△。在ADC的满刻度范围内来看影响很小。
最终的测试运行结果表明.期望在刷新3次以后就趋于稳定,rawseismic波形的积分噪音得到了很好的抑制;方差需要在刷新6次以后趋于平缓。
5测试
系统在实验室环境下做过大量测试.数据来源分别是嵌入式节点模拟的数据、平放在室内的电缆采集到的数据,嵌入式节点可以模拟若干种波形的数据来检验软件的正确性和稳定性,包括正弦波、方波、三角波等,在模拟系统最大负荷(16"l920通道)时,系统运行一直稳定.振子图刷新速度比较快,可以持续运行一周以上.达到用户测试使用的需求。
系统还做过两次海上实地测试,用船载气阵列在海水中放炮,采集板在水中采集放炮和海底反射引起的海水振动噪声,记录了许多有研究意义的数据和图形。
6结论
本软件采用多线程和分布式处理技术。优化的设计很大程度上提高了系统的数据处理能力,能实时处理16"1920通道的地震数据,并高效监控整个系统的运作。测试证明本系统采用的算法实时性强,运行稳定,扩展性好。
(收稿日期:2005年9月)
参考文献
1.GerardTel著.霍红卫译.分布式算法导论[M】.机械工业出版社,2004—09
2.算法设计与分析[M】.清华大学出版社,2003
3.徐守时著.信号与系统一理论.方法和应用【M】.中国科学技术大学出版社.1999
4.赵克佳,沈志宇,赵慧.Unix程序设计教程【M】.清华大学出版社,2001一04
5.计算机技术开发人员宝典丛书编委会.Sun核心技术内幕--Solaris多线程程序设计指南【M】.北京希望电子出版社,2000—04
(上接229页)
m一
)}
4实验数据与小结
根据上述介绍的基本情况.我们在校园网内搭建了一个原
ServerStatusList
Itt“),P.‘Ⅻ,T4q,Pr.vsh。-rio~jIt“s),GoToh‘.i衙回
s—aV;-ct。CP.。U。Y。a。l*。甚:.。::美t…
10跎105
1D敛121
821屿9∞弱O
图5Agent系统从不同媒体服务器采集的数据
2322006.08计算机工程与应用形系统。由三台计算机组成,两台运行媒体服务器,一台运行Web服务器。
图5是我们在Web上显示收集到的服务器的负载数据。
我们安排了多个人员分别点播放于两台媒体服务器的影片资源。从具体的应用效果来看,对相同名称的影片的访问可以被引导到不同的服务器上.从而实现了一定程度上的负载平衡的功能。而热点影片也能够从一台服务器转移到另外一台服务器。由此看出,我们的原形系统基本实现了分布式的视频点播服务器的功能,从而也证明了结合JADE实现分布式的视频点播系统是可行的。(收稿13期:2005年6月)
参考文献
1.苟宏.基于CORBA的分布式视频点播系统的设计与研究【D】顾士学位论文.西安电子科技大学.2002
2.FBellifemine,GCaire,APoggia1.JADEAWhitePaper.20033.郭相勇,黄站.基于可扩展视频服务器集群的视频点播系统设计[J】.计算机工程与应用,2003;39(7):153~155
万方数据
基于JADE视频点播系统的设计与实现
作者:吴爱峰, 毕政, 钟亦平, 张世永, Wu Aifeng, Bi Zheng, Zhong Yiping, Zhang Shiyong
作者单位:复旦大学网络信息工程中心,上海,200433
刊名:
计算机工程与应用
英文刊名:COMPUTER ENGINEERING AND APPLICATIONS
年,卷(期):2006,42(8)
引用次数:4次
1.苟宏基于CORBA的分布式视频点播系统的设计与研究[学位论文] 2002
2.F Bellifemine.G Caire.A Poggi JADE A White Paper 2003
3.郭相勇.黄战基于可扩展视频服务器集群的视频点播系统设计[期刊论文]-计算机工程与应用 2003(7)
1.期刊论文孙松林.SUN Song-lin分布式视频点播系统中代理视频服务器的效率模型-通信学报2006,27(5)
针对传统的成本代价模型无法体现出系统网络和存储资源利用率的问题,考察代理服务器上单位时间内单位容量的服务用户数,并考虑了不同级网络成本的差异,提出了效率模型.通过对常用多播协议的比较,利用效率模型对代理服务器的性能进行了详细讨论.仿真实验表明,效率模型对分布式视频点播系统的设计和评估非常有效.
2.期刊论文朱强.Zhu Qiang多服务器模型下的服务器选择算法及仿真-计算机工程与应用2005,41(29)
在分布式视频点播系统中,由于不同视频服务器到代理服务器之间的网络QoS状况可能存在较大的差异,因此多媒体代理服务器必须引入有效的服务器选择算法.文章主要讨论所提出的在多服务器模型下基于增益模型的服务器选择算法;通过仿真实验测试其性能、与其他算法进行比较;并分析此算法对环境参数变化的适应性.
3.学位论文黄伟基于有限带宽的VOD系统的解决方案2005
视频点播是一种宽带实时的信息检索技术,大都是园区级产品,少量的如NCVB,IBM移植到MPP或集群等超级计算机系统中,只能用于专用硬件之上,造价极高,且以集中式为主,播放中心需要带宽极高的主干网络,本文采用分布式技术,通过对节目点播的预测,设计了一种超大规模的视频点播系统。 1、在论文中提出了一种由节目中心、点播中心和代理构成的分布式视频点播系统模型,以满足大地域、大量用户和节目的应用需求。在该模型中通过将点播中心推向网络末梢,使大量用户请求在本地完成,以降低对主干网络的带宽要求。同时通过有效的节目缓存策略只将一些高点播率的节目缓存在点播中心,来降低整个系统的存储容量需求。该模型具有很好的扩展性。用户可以根据需要灵活扩展整个系统。 2、因为点播中心需要同时服务很多用户,往往超过一个视频服务器可承载的能力,因此有效使多个视频服务器间协同工作并实现各视频服务器之间的负载均衡是十分重要的。在论文中将提出多服务器协同工作方式,并详细论述了各方式的工作原理及其所需使用的相应算法。 3、在各种结构的VOD系统中,视频服务器均依据节目点播概率来组织节目的存储和轮换。由于点播概率是随时间变化的,所以在其预测基础上,进行节目轮换,可以进一步优化系统性能。本文将就分布式服务器的节目存储及轮换问题,讨论了点播概率整个变化过程的预测。 4、通过在湖南经济电视台VOD项目实际验证文中涉及的研究内容,通过各个服务器协同工作实现服务器之间的负载均衡,并根据论文中的节目点播预测分析在项目实践中进行验证。
1.徐守祥.杨孝宗基于Agent技术的移动异构信息多播平台的研究与设计[期刊论文]-计算机工程与科学 2007(12)
2.徐守祥.张基宏基于FIPA架构的移动服务中间件的设计与实现[期刊论文]-小型微型计算机系统 2007(06)
3.徐守祥.张基宏基于FIPA架构的移动服务中间件的设计与实现[期刊论文]-小型微型计算机系统 2007(06)
4.张维勇.梅勃.钱军.许磊基于多智能代理的供应链仿真模型的构建[期刊论文]-计算机应用 2007(z1)
本文链接:http://d.g.wanfangdata.com.cn/Periodical_jsjgcyyy200608067.aspx
下载时间:2010年5月5日
