已阅读5页,还剩51页未读, 继续免费阅读
(计算机软件与理论专业论文)移动流媒体代理服务器设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浙江大学硕i 学位论文 摘要 随着我国3 g 牌照的发放,无线通信的带宽将会得到极大的提高,移动流媒 体作为3 g 网络中一个重要应用,具有广阔的发展前景,而代理服务器作为移动 流媒体应用中的核心组件,是当前的研究热点之一。该文结合当前移动流媒体技 术的发展现状,对移动流媒体代理服务器在体系结构( 包括单服务器和分布式体 系结构) ,协议设计及移动流媒体质量控制机制等方面进行了较深入研究。 在单服务器体系结构上,提出了基于消息映射的服务器控制模式,把 w i n d o w s 编程中对于消息的处理机制和服务器程序中常见的自动状态机( f s m ) 设 计结合起来,能够解决多服务多版本统一处理、用户当前服务类型的无缝切换、 方便的服务实现变更和程序流程的重定义等在流媒体代理服务器设计中碰到的 问题。在分布式体系结构上提出了一种基于集中控制的对等服务器分布式体系结 构,能够有效地解决分布式流媒体系统中的负载均衡和容错问题。 在无线网络上的文件传输协议方面,提出了一种基于u d p 协议的无线网络 媒体文件传输协议,能够较有效地解决在无线网络传输错误率高,网络不稳定下 视频文件的传输问题。同时,通过对媒体质量控制机制的比较,使用了码流切换 和适当丢帧的方法提高移动流媒体服务质量的方法,取得了较好的效果。 关键词:移动流媒体;代理服务器;服务器体系结构;文件传输协议;服务质量 控制 浙江大学硕十一学位论文 a b s t r a c t f o l l o w i n gt h e3 gt ob ed e p l o y e di nc h i n a t h eb a n d w i d t ho fm o b i l en e t w o r k w i l lg r e a t l yi n c r e a s ea n dt h es t r e a m i n gm e d i as e r v i c ea sam a i na p p l i c a t i o ni n3 gi st o d e v e l o pq u i c k l yt o o a i m i n ga tt h ev a r i o u sr e q u i r e m e n t s ,s u c ha sf l e x i b l e ,r o b u s ta n d s c a l a b l ea r c h i t e c t u r e ,n e wt r a n s p o r tp r o t o c o ld e s i g no fm e d i af i l ea n dq o si nt h e m o b i l e s t r e a m i n g m e d i as e r v i c e ,t h ep a p e rr e s p e c t i v e l y p r e s e n t s c o r r e s p o n d i n g s o l u t i o n st ot h e m f i r s t ,am e s s a g e - m a pb a s e dc o n t r o lp a t t e r ni sp r e s e n t e d ,w h i c hi n t e g r a t e st h e m e s s a g eh a n d l i n gm e c h a n i s mi nw i n d o w sp r o g r a m m i n ga n df s mo f t e nu s e di n d a e m o nd e s i g ns ot h a ti tc a ns u p p o r tc o n s i s t e n th a n d l i n gt od a e m o n sm u l t i s e r v i c e a n dm u l t i v e r s i o n ,s m o o t hs w i t c ho fu s e r s c u r r e n tt y p eo fs e r v i c e ,c o n v e n i e n t m o d i f i c a t i o no f i m p l e m e n t a t i o na n dr e d e f i n i t i o no f p r o g r a m sf l o w s e c o n d ,ac o o r d i n a t o rb a s e dp e e rt op e e r d i s t r i b u t e ds e r v e ra r c h i t e c t u r ei s p r e s e n t e d ,w h i c hc a ne f f i c i e n t l yh a n d l el o a d b a l a n c ea n de r r o r r e s i l i e n tp r o b l e m si n t h ed i s t r i b u t e ds y s t e m t h i r d ,t h ep a p e rp r e s e n t san e wu d p b a s e dt r a n s p o r tp r o t o c o lo ft h em e d i af i l e o v e rl o w b a n d w i d t he r r o r - p r o n ew i r e l e s sl i n k s + t h ep r o t o c o li sb a s e do nt h ec o n c e p t o fa p p l i c a t i o n - l e v e lf r a m i n ga n dt c p - f r i e n d l yd u et oi t sf l o wc o n t r o lm a dc o n g e s t i o n a v o i d a n c ec h a r a c t e r i s t i c s f i n a l l y ,t h ep a p e ri n t r o d u c e sf l o ws w i t c h i n ga n df r a m e d i s c a r d i n gm e t h o d si no r d e r t oi m p r o v et h eq u a l i t yo fl i v ev i d e ob r o a d c a s t k e yw o r d s :m o b i l es t r e a m i n gm e d i a ;p r o x ys e r v e r ;d a e m o na r c h i t e c t u r e ;f i l et r a n s p o r t p r o t o c o l ;q o s i i 浙江人学碗上学位论义 第一章绪论 1 1 移动流媒体介绍 流媒体是指视频、声音等数据以实时传输阱议承载,并以连续的流的形式 从源端向目的端传输,在目的端接收到一定缓存数据后就可以播放出来的多媒 体应用。流媒体技术应用到移动网络和终端卜,称之为移动流媒体技术。 在无线网络,流媒体业务主要面向c d m a 、g p r s 等提供较高带宽的无线 分组网络,可根据流媒体源的不同分为视频、【k 务和音频业务。目前,基于有线 的v o d 、a o d 业务,已经受到了用户的广泛欢迎。在无线网络,空中接口带 宽的增加为流媒体业务的开展提供了受好的基础,结合无线系统不受时间、地 点限制的特点,使得移动流媒体业务更具吸引力。随着3 g 在全国即将推广, 用户无线网络接入带宽的进一步提高,移动流媒体技术所封装出的应用将会成 为3 g 的一类主要应用。 基于流媒体的业务应用非常广泛,如世界杯精彩进球片段回放、移动商务 的股指和期指回放、电影精彩片断欣赏、流行音乐欣赏等,同时通过视频卡进 行视频、音频源的采集,还可进行实时监控,电视、c d 等节目源的实时播放。 移动流媒体业务可为移动用户提供在线不间断的声音、影像或动画等多媒体的 播放,用户无须事先下载到本地,可以播放音频、视频以及混合媒体格式。移 动流媒体可以提供视频点播、视频直播、音频点播、音频直播等业务,内容包 括电视、录像、娱乐信息、体育频道、音乐欣赏、新闻、动画等。 同时,面向移动网络的流媒体应用对当前的编码和传输技术提出了更大的 挑战,首先,相对于有线网络而言,无线网络状况更不稳定,除去网络流量所 造成的传输速率的波动外,手持设备的移动速度和所在位置也会严重地影响到 传输速率,因此高效的可自适应的编码技术至关重要。其次,无线信道的环境 也要比有线信道恶劣的多,数据的误码率也要高许多,而高压缩的码流对传输 错误非常敏感,还会造成错误向后面的图像扩散,因此移动流媒体在信源和信 道编码上需要很好的容错技术。在移动流媒体业务的发展过程巾,存在如下问 题: ( 1 ) 无线网络带宽窄,干扰严重 浙江大学硕上学位论文 c d m a l x 与g p r s 分别作为当前中国联通与中幽移动的主流2 ,5 g 无线例 络技术,网络传输带宽较之以前有了很大的提高。但仍然十分有限。c d m a l x 在理论峰值情况下下载传输速率达到】4 4 k b p s ,但实际情况下,稳定的传输速 率通常在7 0 k b p s 左右。g r p s 在理论上可以达到1 1 5 k b p s ,但实际情况卜,稳 定的传输速率通常在2 0 k b p s 左右。并且随蓿使用用户的增加,网络的性能将 会进一步下降。另外无线网络的干扰严重,导致网络传输的误码的可能性大大 增加。 ( 2 ) 移动终端处理能力低,内存容量小 虽然目前国内市场上基于a r m 9 或是与此同等能力的芯片的高端手机已 经越来越多,但由于手机中低端用户基数庞大而带来的巨大的市场商机,使得 各个终端厂家对中低端用户尤为重视。因此目前占市场份额最多的、主流的手 机仍然采用的是a r m 7 系列的芯片,处理能力在几十个m i p s 左右。 目前移动终端的内存容量通常也比较有限。市场上主流的b r e w 手机预留 给应用程序的动态内存通常在7 0 0 k b 左右:基于j 2 m e 的手机预留给应用程 序的动态分配的内存通常在6 4 k b 或1 2 8 k b ;基于s y m b i a r d l i n u x w i n d o w s m o b i l e 等高端手机预留给应用程序的动态分配的内存在1 - 4 m b 左右。 ( 3 ) 移动终端的电池能源有限 尽管手机设备的运算能力越来越强,但是由于它是由电池供电的,因此编 解码处理不能太复杂,并且最好能够根据用户设备的电池来调整流媒体的接收 和处理,能源管理技术也是移动流媒体的一个研究热点。 从以上可以看出,移动网络和移动终端的发展共同决定移动流媒体业务市 场的发展进程。不同国家由于其移动运营商和设备制造商的已有基础和发展战 略不同,移动流媒体业务市场的发展过程也不相同:如日本和韩国的3 g 网络 发展迅速,基于移动流媒体的应用也相对较为丰富;美国的3 g 网络发展相对 较慢,手机终端的发展相对较快。而目前国内运营商则普遍处于试验阶段。 2 0 0 4 年,中国联通联合各厂家针对在c d m a 2 0 0 0l x 无线网络上开展流媒体 业务提出了解决方案、意见和建议,并对技术体制、业务规范进行补充和完善。 目前已开展了手机看电视直播以及“千里眼”等新业务。中国移动的3 g 外场 测试中也包括了流媒体系统,制定了相应规范。并在苏州g p r s 网络上开展手 浙江大学硕士学位论文 机电视业务,还和央视等媒体升始演示用g p r s 刚络平台观看电视节目。 通过以上的实际分析我们发现,有线网络卜i 的v o d 技术可能还不能马上 运用到无线网络中,目前移动流媒体业务的主要方向应该是: ( 1 ) 短片卜| 载播放,这里短片主要包括剪辑的影视片断,专门制作的f l a s h 动画等播放时间较短的娱乐节目,用户可以f 载并保存到手机上以便随时播 放; ( 2 ) 实时视频应用,其中包括实时新闻、体育节日的直播或无线实时视频监 控等。 以上两种服务构成了系统的主要应用,本文以下的内容都是以上述两种业 务为背景而展开。 1 2 移动流媒体代理服务器概述 移动流媒体代理服务器位于i n t e m e t 网络边缘,一端通过2 5 g 或3 g 平台 支持无线手机用户,另一端连接接入i n t e m e t 的多媒体节目源,这里的多媒体 节目源主要是指用于视频监控或电视节目制作的采集编码服务器。 在这种体系结构下,采集端作为视频或音频源,实时地接收各种多媒体信 号,然后在本地把这些多媒体信号进行量化编码,再通过i n t e m e t 把编码后的 数据上传至代理服务器。当手机用户需要使用该媒体服务时,首先和代理服务 器进行连接,在通过身份认证和权限检查后,由代理服务器把实时的多媒体数 据发送到用户手机上,从而实现多媒体节日的实时观看。 移动流媒体代理服务器在网络中的位置如下图所示: 图】1 基本网络结构图 浙江大学倾士学位论文 对于流媒体代理服务器来说,最主要的问题是能够根据手机用户当前的网 络状况,提供稳定的保证质量的媒体流,凼为潜在的用户数是巨大的,所以也 必须考虑能够最火程度地支持大量并发用户的问题。 为了能够有效地实现上述目标,需要重点考虑如下几个问题: ( 1 ) 服务器体系结构:服务器体系结构包括单服务器和分布式服务器体系 结构两个部分,一个设计优秀的系统结构不仅能够灵活地处理诸如服务器 负载均衡、系统容错、资源最优化使用等问题,还能够极大地简化编程的 复杂性,增强系统的可扩展性和可维护性。 ( 2 ) 流媒体质量控制:对于无线网络来浣,无线信道的传输带宽低,当前 最快的2 5 g 联通c m d a l x 只能提供稳定的7 0 kb p s 带宽,远远小于 i n t e r n e t 上一般网络带宽,在上面只能传输码率极低的媒体流。此外,无 线信道传输可靠性差,误码率高,一般无线信道中的误码率可高达1 0 。 数量级,所以必须采取有效的媒体质量控毒, l o l n ,能够动态地根据用户当 前的网络状况来决定当前码率,减小端到端的延迟和抖动,从而提高整体 服务质量。 ( 3 ) 传输协议:在流媒体系统中,传输协议的选择和制定是非常重要的内 容,它直接影响到服务器的体系结构和流媒体的质量控制机制。对于下层 传输协议来说,t c p 或u d p 的不同选择能导致不同的质量控制机制;而 应用层协议的制定也对于体系结构和质量控制起着非常重要的作用。 为了充分发挥软件系统的性能,需要综合考虑与硬件设备合理配合使用。 通常从如下几方面入手: a 服务器网络i o b 服务器总线i o 和c p u 处理能力 c 磁盘i o d 内存容量 简单分析如下: c p u ;通常当服务器的瓶颈出现时,添加更多的c p u 并不能较大地提高其 吞吐量。代理服务器处理能力在一个到两个c p u 之间会是线性增长的,这是 因为可以使用更多的线程、加快网络协议栈的处理和系统缓存处理,但超出两 4 浙江人学硕j 学位论文 个以后并不能得到较好的性价比。 力荐j 增加更多的内存会提高流媒体服务器的并发数,但首先必须是如c p u 、 磁盘1 1 0 、网络1 o 没有超出最火值,比较合理的配置是5 1 2m b ,超过5 1 2 m b 后十牛价比f 降。 网络罄,7 j 考虑采用多块网膏,一块专用于和局域网外连接,一块用于服务 器之间通讯的局域网内连接。 磁蕴o ;磁盘是文件下载服务中的主要瓶颈,如何优化磁盘读写速度至关 重要,在系统中最重要的就是优化缓存管理。 从以上可以看出,在移动流媒体应用系统中,代理服务器起着非常重要的 作用,是系统的核心组成部分。它不仅有效地把音视频源和手机联系了起来, 并在服务的质量控制、并发大用户量支持、可能的编码转换、用户管理和记帐 等各方面发挥了核心作用。同时代理服务器的设计也是系统开发中比较困难的 部分,只有对它所涉及的各方面都有比较深入的理解和把握,才能设计出一个 实用的高性能的代理服务器系统。 1 3 本文的主要工作和论文章节安排 本文主要探讨了在移动流媒体代理服务器设计中的几个关键技术问题,并 提出了相应的解决方案。采用这些解决方案的流媒体系统在实际运行中也表现 出了良好的性能指标,取得了较好的效果。 论文章节安排如下: 第二章介绍了基本的视频点播数学模型和体系结构分析,是后面一些具体 设计的理论依据。 第三章详细介绍了代理服务器体系结构设计,包括单服务器和分布式服务 器体系结构,是文章的重点内容。 第四章介绍了代理服务器协议设计,重点是无线环境下的媒体文件传输协 议,并介绍了当前系统对于视频直播所选用的质量控制机制。 第:f i 章介绍了分布式代理服务器的实现,重点是系统体系结构。 第六章总结了本文的研究工作,并展望了进一步的研究方向。 5 浙江人学硕士学位论文 第二章视频点播的数学模型和控制模型介绍 2 1 视频点播的基本数学模型 点播系统的组织结构是系统设计的核心内容之一,对系统的整体性能有千日 当大的影响作用,在系统设计开始阶段就需要对其进行仔细的分析。凶为视频 直播的情况和点播在很多方面的类似性,这里主要通过对视频点播数学模型的 分析,得出一些具有普遍意义的结论,用于指导系统体系结构的设计。 建立数学模型是采用数学的方法,为系统中各个活动实体建立模型,模拟 系统的运行情况,得到系统的运行参数和性能状况。数学模型是算法研究的熏 要工具。 由于一个点播系统所针对的情况是节目和用户数量很多,系统的建设投资 庞大,在进行设计之前模型分析是非常重要的工作。另外在系统的运行过程中, 对各个实体活动的跟踪是很困难的,为获得性能参数又将增加额外的开销。采 用数学模型,使用数学工具进行定量的分析,模拟系统的运行情况,可以指导 系统的结构设计,使设计出来的系统满足实际需求,具有可行性。并且很容易 根据模型的特点,对系统进行优化。同时,系统的数学模型分析可以成为理论 研究的框架,一旦有了新的思路,可以很容易的结合进去,替换旧的算法,并 检验新算法的有效性。一个视频点播的基本流程如图2 - 1 所示: ! ! 图2 - 1 视频点播基本流程 本节将对用户点播请求的到达时间、节目访问频率和服务器的排队模型进 行分析。 2 1 1 点播请求到达的模型 用户点播请求达到的时间分析,主要是讨论在点播系统来了。个新的用户 点播的时候,下- 一个点播用户到达时问问隔的概率分布以及相关特性。 6 浙江“学硕j 学垃论殳 第二章视频点播的数学模型和控制模型介绍 2 1 视频点播的基本数学模型 点播系统的组织结构是系统议计的核心内容之一,对系统的整体性能有相 当大的影响作用,在系统设计开始阶段就需要列其进行仔绌的分析。因为视频 直播的情况和点播在很多方血的类似性,这里主要通过对视频点播数学模型的 分析,得出一些具有普遍意义的结论,用于指导系统体系结构的设计。 建立数学模型是采用数学的方法,为系统中各个活动实体建立模型,模拟 系统的运行情况,得到系统的运行参数和性能状况。数学模型是算法研究的重 要工具。 由于一个点播系统所引对的隋况是节目和用户数量很多,系统的建设投资 庞大,在进行设汁之前模型分析是非常重要的t 作。另外在系统的运行过程中, 刘各个实体活动的跟踪是很困难的,为获得性能参数又将增加额外的开销。采 用数学模型,使用数学t 具进行定量的分析,模拟系统的运 i 情况,叫以指导 系统的结构设计,使设计出来的系统满足实际需求,具有可行性。并且很容易 根据模型的特点,对系统进行优化。同时系统的数学模型分析可以成为理论 研究的框架,一旦有了新的崽路,可以很容易的结合进去,替换旧的算法,并 检验新算法的有效眭。个视频点播的基本流程如型2 - 1 所示: li l 一一一一: 图2 - 1 视频点播基本流程 本节将对用户点播请求的到达时间、节日访问频率和服务器的排队模型进 行分析。 2 1 1 点播请求到达的模型 用户点播请求达到的时间分析,主要是讨论在点播系统来了一个新的用户 点播的时候,下一个点播用p 到达时间间隔的概率分布以及丰甘关特性。 点播的时候,下一个点播用p 到达时间间隔的概率分布以及相关特性。 6 浙江大学颂十学位论殳 设九是某一段时间内用户点播请求到达的平均速率,在实际应用巾,九是 一个随时问变化的函数,这是由人们的生活习惯和节目的冷热决定的。例如 般卜午和晚上的点播用j ,较多,九比较大,在午夜和凌晨点播用户要少很多,九 明显减小。个热门的影片或实时的体育节目直播,在播出的那段时问内九会 一下了 变得很大,然后又急剧减小,会有明疑的峰值出现,所以要求服务器的 负载能力必须以九的峰值为设计目标。 如果设九为某段时间间隔内请求到达的平均速率,则一般可以认为用户的 点播请求满足泊松过程,在一个小的时间间隔内,用户点播请求到达的概率与 时间长度基本成正比。设,例为时间问隔t 内有k 个点播请求到达的概率,则: 跗) = 等e ”,l 2 公式( 2 - 1 ) e k 】_ 2 t 公式( 2 - 2 ) 其中e k j 是时间问隔t 内到达请求数的数学期望。 根据排队论的知识,到达次数遵守洎松分布,其到达时间间隔t 。则遵守负 指数分布,而且平均到达时间间隔是到达速率的倒数,所以t 。的概率分布为: p l o ,公式( 2 - 5 ) 7 寥 去 功纵 浙江人学硕二t 学位论史 2 。2 系统控制模型 服务器的控制模型是代理服务器设爿中非常重要的内容之,也是系统体 系结构的主要组成部分。根据以上视频点播的基本模型分析可以知道,代理服 务器应该包括多台服务器,组成个服务器集群,以提高系统的整体服务能力。 所以服务器的控制模型也应该分为单服务器控制模型和分向式服务器控制模 型两部分,单服务器的控制模型应该做到充分发挥该台服务器的最大服务能 力,而分布式服务器控制模型主要工作集中于系统的负载均衡和容错能力,卜 面分别进行讨论。 2 2 1 单服务器控制模型 由于网络服务器主要使用处理器、磁盘和网络三种资源,所以控制模型设 计的一个主要目的是能够使得处理器、磁盘和网络三者能够最大程度的著行, 充分发挥服务器的处理能力,提高系统的吞吐量。 另外,在引言中已经提到,系统主要提供两种服务,一种是短片文件的下 载,一种是实时视频应用,而这两种应用对于资源的使用是有所不同的。对于 短片下载来说,磁盘和网络是主要使用的资源;而对于实时视频应用来说,处 理器和网络是主要使用的资源。所以如果我们在每台服务器上都同时配置这两 种服务就比每种服务配置在单独的机器上能得到更好的资源利用率,所以在系 统的控制模型设计上,必须考虑在单台服务器上同时支持多个服务。 一般的服务器控制模式,用接收模块接收用户请求,分派给不同的服务进 程线程,服务进程线程使用s w i t c h 结构,根据 ,调用与之对应的服务例程,进行计算并把结果返回给客户。这样的实现 方式在一个需要支持多服务多版本协议的服务器中时,由于 的组合会把控制流程分散到众多的分支中,同样是用户请求,使 用了不同的处理,导致流程的一致性难以维护,代码难以阅读,系统的灵活性 和可扩展性差。 在针对服务器控制逻辑中对于用户状态的处理上,文献 3 中的s t a t e 模式 提出了一个实现方法,即把每个状态作为一个类实现。但该方法足建立在每个 状态下的操作相同的基础上的,即系统只提供一种服务( 一组操作集合) 。如 8 浙江大学顾十学位论文 果使用该方法实现提供多种服务类型( 多组操作集合) 的能力,则需要实现的 状态类极大增加,状态类数等于用户可能的状态数日与系统提供的服务数之间 的乘积,这就极大增加了系统实现的复杂性,降低了系统的町维护性,并且这 种方式下很难实现用户当前服务类型的动态切换。 综上,服务器的设计必须考虑在同时支持多种服务情况下系统控制结构的 灵活性、健壮性利可扩展性。综合考虑各种因素,本文提出了十基于消息映 射的服务器控制模式,它围绕命令的注册、分发和处理三个核心问题,把一般 w i n d o w s 程序常用的消息处理机制和自动状态机有效的整合在一起,能够很好 地解决上述提到的诸多问题,形成一个完整的服务器控制框架。 2 2 2 分布式服务器控制模型 和单服务器控制模型不同,分布式服务器控制模型主要考虑系统的负载均 衡和容错能力,特别是在突发大量用户的情况f 系统仍然可以正常工作。和集 中式流媒体服务器相比,基于集群的的系统有如下优势: ( 1 ) 系统有极强的可扩展性。从单台p c 或工作站,到数百个节点大规模服 务器,集群结构几乎可以满足所有层次的需要。它的增量式扩展既能保证 原有投资,又能随意地扩充系统规模。相反,利用传统的高档服务器,一 丌始就意味着很高的投入,且其扩展性方面不如集群系统灵活。 ( 2 ) 集群系统有潜在的高容错性。多个在物理上松散耦合的部件,很容易 做到故障隔离,即单个部件的故障不会波及系统其他部分,利用软件,可 以使任务平滑地从一台机器迁移到另一台机器。 ( 3 ) 较高的性价比。集群系统往往由普通工作站或p c 构成,这类机器由于 其大规模应用背景,成本已经非常低,一个集群系统和一台同等能力的高 档服务器相比,价格往往相差一个数量级。 同时,由于无线运营商给服务提供商( s p ) 的单机带宽往往是比较有限的, 所以在我们的系统中使用集群也极大的增加了整个系统的可用带宽,从而提高 系统整体服务能力。 在有线网络环境中,基于集群的流媒体服务器系统业已有了比较多的研究, 但是它们研究的重点主要是面向v o d 系统的,提出了很多关于流媒体文件的 分布式条纹化放置,视频流的合并等设计方案,而在本文的系统中主要服务是 9 浙江人学硕 一学位论文 短片的下载和实时视频应用,所以需要重新加以考虑。 由于分布式系统中采用分布式协议控制算法往往比集中式控制算法更加复 杂,所以系统中采用了集中式控制方案。在集群流媒体服务器中一般存在两种 基本类型的节点,接入节点( a c c e s sn o d e ,以下简称a n ) 和服务节点( s e r v i c e n o d e ,以下简称s n ) 。当用户希望使用流媒体服务时,他必须首先和a n 建立 连接,a n 通过准入控制决定是否接纳_ j 户请求,如果请求被接纳,则a n 将 向用户发送用于后续操作所必须的相关信息,使用这些信息,用户可以和s n 建立连接并开始接受服务,其中用户所请求的媒体数据可以经过a n 转发或直 接由s n 传送给用户。流媒体数据在服务器中的传输处理过程对服务器性能有 重要影响,根据数据传输和处理的不同特点,分布式流媒体服务器可以分为两 种结构:代理传输结构和直接传输结构。 ( 1 ) 代理传输结构 在代理传输结构中,用户请求的媒体数据由s n 传送到a n ,再经过a n 处 理后发送给用户,数据流动如图2 2 所示。 图2 2 代理传输结构 在这种结构中,接入节点对外屏蔽了服务节点,a n 不仅提供和用户的交 互功能,还负责媒体数据的转发。这种结构的优点是服务器结构对外界是透明 的,服务节点不需要分配专用的i p 地址,并且系统实现简单。但是存在最大 的问题就是所有媒体数据都要通过接入节点中转,不仅浪费了a n 和s n 间的 连接带宽和资源消耗,而且由于接入节点承担的任务过重,特别是它的出1 2 1 带 宽将成为系统性能瓶颈。 ( 2 ) 直接传输结构 在直接传输结构中,接入节点只负责与用户的交互操作,所有媒体数据都 1 0 浙汀大学碗l 学位论文 不需耍a n 中转,而由s n 直接发送给用户,数据流动如图2 3 所示。 l i 竺竺竺竺生- i 图2 - 3 直接传输结构 从上图可以看到,由于直接传输结构减少了数据传输的中转环节,避免了 大量数据在服务器内部流动所带来的资源消耗,也有效地取消了系统单一瓶颈 点,能极大地提高系统的整体吞吐量,但是,它同时也带来了新的问题。第一, 由于数据传输的需要,服务节点和手机用户之间必须建立数据连接,从而必须 给每个服务节点分配单独的i p 地址,不仅不能实现单一的系统镜像,也给服 务提供商带来了较大负担。第_ 二,它的结构比代理传输结构复杂,相比较而言 实现的难度加大。 从以上对分布式服务器控制模型的分析可以看出,系统的设计必须综合考 虑各种方面,在满足要求的情况下需要尽量减小系统开发的复杂程度。为此, 本文提出了一种基于集中控制的对等服务器分布式体系结构,能够有效地解决 分布式流媒体系统中的性能、可扩展性、负载均衡和容错等问题。 浙江人学预i 学位沦文 第三章代理服务器体系结构设计 3 1 单服务器体系结构设计 3 1 1 需求简介 在引言中已经谈到,在我们开发的移动流媒体代理服务器中,提供短片卜 载播放和实时视频应用二种基本服务,划分为三种业务类型: 短片业务,服务器提供各种短片下载,然后在本地播放; 视频直播,系统提供实时电视直播服务; , 监控业务,这种业务需要用户自己提供视频源,通过移动流媒体平台在手 机上进行实时监控,并可以提供视频录像功能。 客户可以同时订阅多种服务,对于这三种服务,他们的功能不同,但处理 的流程基本相同,状态转换图如下所示: 图3 - 1 用户状态转换 上图中各个节点状态解释如下: n o t l d 眺用户刚接入,还未登陆; i d l e :用户已登陆,系统等待用户进一步的指令 s e 腮用户已选择一个节目; p l a y i n g :正在播放该节目; 浙江大学硕:l 学位论文 l o g o u t :用户已退出。 实际系统中还有个错误状态,表示各指令出错的情况,这里为了状态图 的简洁性而没有画出。各种状态f 的指令是一目了然的,这里小再赘述。 三种业务下每个客户所经过的状态是相同的,各种操作的含义也基本相同, 但实际的处理不同。如对于短片用,、来说,q u e r y 命令只能查询短片,而视频 直播用户只能查询当前可用直播节目。如果一个客户订阅了多种服务,那么他 可以随时切换当前业务类别,即系统必须支持服务类型的动态转换。 同时,控制模型的设计必须使得处理器、磁盘和网络三者能够最大程度的并 行,才能够充分发挥服务器的处理能力,提高系统的吞吐量。这主要涉及到系统 的进线程模型和i o 处理方式,而两者又是紧密地联系在一起的。因为线程具有 占用资源少,相互之间通信方便等特点,所以在目前的服务器设计中得到了广泛 使用。一个好的线程模型,能带来i o 操作相当程度的方便性,所以在后面我们 将集中于线程模型的讨论。 综上所述,代理服务器体系结构的设计不仅要考虑一般的服务器设计需求, 还必须满足流媒体服务中的业务需求,并且能够把二者很好地结合起来,实现 控制模型极大的灵活性、可扩展性和健壮性。 3 1 2 基于消息映射的服务器控制模式 在一般的w i n d o w s 程序设计中,消息的映射和处理机制是系统的核心控制结 构,所有的w i n d o w s 程序都使用消息来驱动系统的运行。同样,在一般的网络服 务器里,由用户发出的命令来驱动服务器的执行,从而使得用,_ 使用该服务器提 供的某种服务,这里用户的命令就等同于消息,文中以后对这两个词不再加以区 分。 两者不同的是在一般的网络服务器中,都会保存用户的当前状态,系统根据 用户的状态来决定该用户能否使用某些功能。例如,在用户未登陆前,不能使用 任何功能;在一个流媒体系统中,如果用户正在观看视频,则他只能停止播放或 退出,而不能发出其它命令。在网络服务器中,这种能根据用户的当前状态决定 他的当前行为的能力一般都使用自动状态机技术来实现。 而基于表格的消息映射和处理机制业已被广泛运用于w i n d o w s 程序设计中, 例如在微软公司的m f c ( m i c r o s o f tf o u n d a t i o nc l a s s e s ) r = p ,使用了类似表格的技术 浙江大学硕l 学位论文 来实现消息的映射,对于每个需要处理的消息,系统存预定义好的消息映射表中 查找相应的处理函数,并执行该函数即可。 自动状态机的面向对象实现存在多种方式,其中使用表格技术是坪十比较方 便且高效的实现方式。这样,在表格数据结构的基础上,就能够很好地把消息映 射机制和自动状态机整合起来,形成一个既实用又具有极大的灵活性和可扩展性 的控制结构,再结合一些相关的设计模式,就构成了一个实用的能满足各种服务 器设计要求的应用逻辑层上的控制模式。 3 ,1 ,2 1 消息映射和自动状态机设计 在表格数据结构的基础上,消息映射和自动状态机的实现如下图所示 消息映射表 l 一 堂 蚕q “i n s 僦嘲雠妇坞咖1 、l 卜 萎 叶c m d l d , s u c c s t a t e , f a i l s t a t e , p f n 【渺t 歌 1 国- 影 l c m d l d , s u c c s t 峨f 埘s 铡e t 面、 蟛广- e ( c r e d i d , s u c c s t a t e , f a i l s t a t e , p f n ) i 状态命令映射丢一 ) 1 和某服务相关的数据结构 图3 2 消息映射和自动状态机实现 首先定义一个四元组e n t r y , s t r u c te n t r y ,命令类型 c m d t y p ec m d l d ; 偷令执行成功后用户所处状态 s t a t es u c c s t a t e ; 命令执行失败后用户所处状态 s t a t e f a i l s t a t e ; ,命令处理函数指针 i n t ( c m d h a n d l e :* p f n ) ( c l i e n t 。) ; ) 浙江大学硕上学位沦文 对每种服务类型来说,根据具体应用的要求,用多个e n t r y 填充一个消息 映射表。同时,对该服务中用户叮能的每个状态设置个命令集,该集合的元 素为该消息映射表的指引,表示在该状态下用户所允许的所有命令。该服务。 j 所有的状态和它们分别对应的命令集i j 以用一个关联式容器m a p 来表示。 对系统的每种服务都需要设置以卜的数据结构,但如果两个服务它们的状 态集或命令处理函数原型相同,它们也可以萸享某些数据结构。在一些复杂的 环境下,这些数据结构可以用指针关联起来,形成一个c h a i no f r e s p o n s i b i l i t y 。 对每个用户命令,首先根据该用户的当前状态和命令类型查找相应的处理 函数,如果存在,就执行该命令,并在命令完成后根据执行结果改变用户的当 前状态:如果没有找到,则转入出错处理,可能也需要改变当前用户状态。这 样,我们就比较方便地实现了自动状态机的功能。 如果某个服务提供的命令较多,则这种查找方式可能效率不高,为了提高 查找速度,引入了一个哈希查找表。一个简单但有效的实现为:用尽可能少的 位数分别编码状态和命令,然后根据状态命令映射表构造一个e n t r y 数组,使得 每个状态编码和命令编码组合起来构成的数字都能够作为该数组的下标。如果 某状态下允许某个命令,则在数组中存放对应的处理方式,否则把处理函数设 置为空,表示该状态下不允许该命令。这样,对于每个 对,都能 在o d ) 时间内找到对应的处理函数。例如,状态用3 位编码,命令用5 位编码, 则该数组的长度为2 5 6 ,对于状态0 0 1 和命令0 0 0 1 0 ,构成下标0 0 1 0 0 0 1 0 ,即为3 4 , 然后用该下标直接在该e n t r y 数组中取出对应的处理方式即可。 这种消息映射的实现方式需要注意的另一个问题是处理函数的函数原型 ( f u n c t i o ns i g n a t u r e ) 定义。在m f c 中,采用的是事先定义好所有可能的返回类 型和参数类型,并采用一个标识表示当前函数原型,这样在具体调用时就可以 根据该标识强制转换取得的函数指针,并传送相应的参数来调用该函数。但在 服务器程序设计中,一般把关于某个用户所有的状态数据都封装在一p 一个类中, 如图3 3 所示的c i i e n t 类,而处理函数也就是存取并改变这些数据状态,所以 这里处理函数都可以采用相同的原型:传入c l i e n t 对象的指针或引用,用函数 返回值表示命令成功与否,这样就简化了命令处理函数的使用和实现。 3 1 2 2 整体结构设计 浙江大学硕学位论文 在消息映射和自动状态机的基础上,我们还引入了一些相关的对象,它们 一起构成了完整的服务器控制模式,对象间的关系如r 图所示: 图3 - 3 整体结构图 在图3 3 中,c m d h a n d l e m a p 类为整个消息映射机制的对外公共搜索接口, 该接口隐藏了消息映射机制的具体内部表示,从而可以对该机制的实现方法进 行扩充或优化而不影响其它程序模块。 c m d h a n d l e 抽象类定义了消息处理的抽象接口,其实也就定义了服务类型 接口,不同的服务类型可以继承该类,并实现接口中所定义的各种方法,对于 各服务都需要的公共操作,可以提升到基类或一些处于中间层次的类里实现。 因为c m d h a n d l e 类只是一个处理函数集,所以可以设计为不需要成员变量,这 样它们能够被共享,每个子类只需一个实例,可以采用文献【3 】中的s i n g l e t o n 模 式实现。 c l i e n t 表示系统中的每个客户,它维护一个表示当前状态的状态对象s t a l e ( s t a t e 的一个实例) ,对于以上谈到的流媒体服务器来说,就是“已登陆”, “正在播放”等状态。它还维护了一个当前处理对象h a n d l e ( c m d h a n d l e 子类 的一个实例) ,c l i e n t 把各命令的具体实现委托给这个处理对象,并在切换当 前服务类型时改变该处理对象。 3 1 - 2 - 3 处理流程 对于用户的每个命令,系统处理流程如下图所示( 只表示了命令处理函数 查找成功的情况) : 1 6 浙江人学棚士学位论文 r 一一l 一一 m a i np r o g r a m h a n d l e :c m d h a n d l em a pc r n d h a n d l e m a p 一1 一1 一r 一 i = c i i ,一j l 矧3 4 处理流程图 上图中的g e t m e s s a g e 从底层控制机制中得到当前的用户命令,然后根据命 令类型和他的当前状态,通过c m d h a n d l e m a p 接口取出对应的处理函数,并通 过用户当前的处理对象h a n d l e 调用该函数,最后根据处理的结果改变该用户的 当前状态,完成一个完整的处理过程。 3 1 2 4 效果 通过运用上述模式,可以有效地解决需求中提出的如下问题: ( 1 ) 多服务多版本统一处理 对于每个服务的每个版本来说它们之间的差别是命令类型不同,命令的 处理不同,用户在该服务中所经历的状态也不同。但是在上面的设计中,这些 都可以用统一的数据结构表示,而针对这些数据结构的处理是相同的,所以在 多服务多版本的情况下,只需要修改或增加相应的数据结构,并分别实现具体 的功能即可,服务器的控制逻辑不需要任何改变。 ( 2 ) 用户当前服务类型的无缝切换 因为用户请求的操作都委托给相应的c m d h a n d l e 子类执行,从而可以在运 行时用c m d h a n l e 的其他子类对象替换当前子类对象,实现服务类型的无缝切 换。同时由于各个服务需要使用的数据不同,例如在短片中需要知道该短片编 号,短片文件对应的文件描述符等,而实时视频则需要知道视频流编号等信息, 一种实现方式是根据不同的服务采用l a z ya c q u i s i t i o n 的方法分配或释放相应 的资源。 ( 3 ) 方便的服务实现变更和程序流程的重定义 1 7 浙江人学硕士学位论文 服务实现的变更和程序流程的重定义基本上都。,r 以归结为对自动状态机的 修改,因为在以上的设计中自动状态机是通过消息映射表实现的,所以仟何对 自动状态机的修改只需要修改相应数据结构巾的内容即可,程序流程不需任何 改动。 3 1 _ 3 线程模型 对于服务器的线程模型,已经存在相当多的研究工作,当前一般流行的服 务器线程模型都采用了多线程流水线方式,具体步骤如下: ( 1 )首先把整个系统划分为各个阶段,例如请求接入、请求处理和请求的 回应,每个阶段分别处理不同的任务,分别用一个或几个线程表示; ( 2 )阶段的划分不是任意的,尽量将可能发生阻塞的操作单独划分为一个 阶段,并使代码具有好的模块化和易读性因为易发生阻塞的操作一般是 i o 操作,将它们单独划分出来可以很容易地应用不同的i o 策略( 同步或 异步) ,而不影响其他阶段的处理如果该阶段发生阻塞,也不会阻塞其 他不会发生阻塞的操作,这样可以使系统的资源,如磁盘和c p u 重叠地 并行利用,发挥最大的效能。 ( 3 ) 在各阶段之间通常使用队列来传递消息,如果消息具有不同的优先级, 则可以采用优先队列表示; ( 4 )使用一个总控线程监视各个线程的运行情况,它可以根据需要产生新 线程或杀死多余的线程,并可以向其他服务器通报本机的运行状态。 整个系统运行情况如下图所示: 圈3 - 5 线程流水线结构 1 8 浙江大学硕十学位论文 在上图中,每个阶段使用了一个线程池结构,它从消息队列中读出需要处 理的消息,处理完后又把该消息发往其他的阶段或者释放该消息,表明整个处 理结束。进程监控器负责监控各个阶段的消息队列和线程运行情况,如果发现 某阶段的消息队列长度过长,则表明该阶段当前处理能力不足,口j 以根据系统 当前资源情况增加该阶段的线程数量,提高它的处理能力;如果发现某阶段的 线程大多处于阻塞状态,则表明该阶段存在资源浪费,可以根据需要杀死某些 线程,回收系统资源。 这种多线程流水线控制模型有如下优点: ( 1 ) 线程数和同时服务的客
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物业车辆押金合同范本
- 演出个人合同范本模板
- 美甲学徒招人合同范本
- 网红物品售卖合同范本
- 货物仓库租赁合同范本
- 溧水位食堂外包协议书
- 2025年人力压迫性测试题及答案
- 2025年安徽文科数学试卷及答案
- 签了三方协议签了合同
- 行政服务外包合同范本
- 【《基于单片机和面部识别的考勤机系统设计》8000字】
- 彩泥鱼世界(课件)-广美版美术二年级上册
- 2026年湖南食品药品职业学院单招职业技能测试题库附答案
- 山东高速安全员考试题库及答案解析
- 《生活中的东、南、西、北》课件
- 二方连续图案课件
- 2025-2026学年第一学期九年级道德与法治备考指导
- 昆山编外人员考试真题
- 2025安徽淮南交通控股(集团)有限公司二级公司外包服务人员招聘16人笔试考试参考试题及答案解析
- 药品相关法律法规培训
- 专题03 立方根重难点题型专训(3个知识点+8大题型+3大拓展训练+自我检测)(解析版)
评论
0/150
提交评论