(计算机应用技术专业论文)基于请求策略和状态切换的服务器推送技术研究.pdf_第1页
(计算机应用技术专业论文)基于请求策略和状态切换的服务器推送技术研究.pdf_第2页
(计算机应用技术专业论文)基于请求策略和状态切换的服务器推送技术研究.pdf_第3页
(计算机应用技术专业论文)基于请求策略和状态切换的服务器推送技术研究.pdf_第4页
(计算机应用技术专业论文)基于请求策略和状态切换的服务器推送技术研究.pdf_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

硕士学位论文 m a s t e r st h e s i s 摘要 随着信息技术的不断发展,信息推送技术成为了即时发布和获取信息的一种重 要方式。它不同于传统的信息拉取方式,能够将信息主动实时推送给用户,满足人 们及时获取有用信息的需要。服务器信息推送是信息推送技术的一种常见形式,目 前随着浏览器技术的快速发展和不断突破,也开始从桌面平台转向浏览器平台。由 于浏览器基于i - i t t p 协议,传统的在服务器端和客户端建立永久连接,双向通信的服 务器推送方式,无法直接在浏览器上运用,如何实现基于浏览器的服务器推送技术, 满足实时性应用程序的需求成为了一个迫切需要解决的问题。 目前通过结合a j a x 技术,基于浏览器的服务器推送技术有了重大突破,出现 了多种技术实现方案和基于这些方案的开发框架,并有效的改进了服务器推送应用 中的服务器负载过重的性能问题。但是他们都将注意力放在如何改进服务器性能的 问题上,而没有考虑具体的应用需求和实际应用中服务器的应用性能和服务质量。 针对这种情况,本文通过对目前常见的服务器推送技术的深入研究和分析,从 应用性能的角度出发,探索性地提出并设计了一种基于请求策略和状态切换的服务 器推送应用框架,它以混合使用常见的推送技术为基础,以请求调度为核心,状态 切换为辅助,根据具体应用中的信息类型和用户类型对请求进行分类,权衡不同请 求的优先级别,选择合适的技术方案,局部动态地调整请求相应的技术方式,优先 保证用户服务体验,实现服务器资源的合理分配,使得应用性能最大化。 关键字:信息推送;服务器推送技术;请求策略;动态切换:服务质量 a b s t r a c t w i t ht h ec o n t i n u o u sd e v e l o p m e n to fi n f o r m a t i o nt e c h n o l o g y ,i n f o r m a t i o np u s h t e c h n o l o g yi sb e c o m i n go n eo ft h em o s ti m p o r t a n tm e t h o d so fp u b l i s h i n ga n da c q u i r i n g i n f o r m a t i o n w h a ti sd i f f e r e n tf r o mt h et r a d i t i o n a li n f o r m a t i o np u l la p p r o a c hi st h a tt h e i n f o r m a t i o np u s h i n ga p p r o a c hs e n d si n f o r m a t i o nd i r e c t l yt ou s e r s ,m e e t i n gt h et i m e l y n e e d so fa c c e s st ou s e f u li n f o r m a t i o n s e r v e rp u s ht e c h n i q u ei sac o m m o nf o r mo f i n f o r m a t i o np u s ht e c h n o l o g y :w i t ht h er a p i dd e v e l o p m e n ta n dc o n t i n u o u sb r e a k t h r o u g h s i nb r o w s e rt e c h n o l o g yf i e l d ,s e r v e rp u s ht e c h n o l o g yh a v eb e g u nt os h i f tf r o mt h e d e s k t o pp l a t f o r mt ob r o w s e rp l a t f o r m a st h eb r o w s e ri sb a s e do nt h eh t t pp r o t o c o l ,t h e t r a d i t i o n a ls e r v e r - s i d ea n dc l i e n t - s i d en e e dt oe s t a b l i s hap e r m a n e n tc o n n e c t i o n , t w o - w a y c o m m u n i c a t i o ns e r v e rp u s h i n gm e t h o dc a nn o tb ed i r e c t l yu s e di nt h eb r o w s e r s oh o wt o a c h i e v eb r o w s e r - b a s e ds e r v e rp u s ht e c h n i q u et om e e tt h en e e d so fr e a l t i m ea p p l i c a t i o n s h a sb e c o m ea nu r g e n tp r o b l e mt ob ea d d r e s s e d a tp r e s e n t ,t h r o u g ht h ec o m b i n a t i o no fa j a xt e c h n o l o g y ,b r o w s e r - b a s e ds e r v e rp u s h t e c h n o l o g yh a sm a d ea ne v e n t f u lb r e a k t h r o u g h :al o to fs c h e m e sa n dt h ef r a m ew o r k b a s e do nt h e mh a v eb e e ne m e r g e d , a n ds e r v e rp u s ho v e r l o a dp r o b l e mh a sb e e n e f f e c t i v e l yi m p r o v e d h o w e v e r , m o s to ft h e ma r ef o c u so nt h ei s s u eo fh o w t oi m p r o v e t h es e r v e rp e r f o r m a n c e ,w i t h o u tt a k i n gi n t oa c c o u n tt h es p e c i f i cn e e d so fa p p l i c a t i o n sa n d p r a c t i c a ls e r v e ra p p l i c a t i o np e r f o r m a n c e t oa d d r e s st h i ss i t u a t i o n , t h i sa r t i c l et h r o u g ht h ei n - d e p t hr e s e a r c ha n da n a l y s i so f t h ec u r r e n tc o m m o ns e r v e rp u s ht e c h n i q u e s ,f r o mt h ep o i l l to fv i e wo fa p p l i c a t i o n p e r f o r m a n c e ,e x p l o r a t o r yp r o p o s e sa n dd e s i g n saf r a m e w o r kw h i c hi s b a s e do nt h e c o m b i n a t i o no fr e q u e s t i n gs t r a t e g ya n ds t a t u st r a n s i t i o n i tm a k e su s eo ft h em i x i n g c o m m o np u s ht e c h n o l o g ya si t sf o u n d a t i o n , t h er e q u e s ts c h e d u l i n ga si t sc o r e , s t a t e - t r a n s i t i o na sa u x i l i a r y a c c o r d i n gt ot h es p e c i f i ca p p l i c a t i o no fi n f o r m a t i o na n d u s e r s r e q u e s tt y p e ,t h i sf r a m e w o r kc a t e g o r i z et h eu s e r st y p e ,w e i g h te a c ht y p ea d i f f e r e n tp r i o r i t yl e v e l ,a n dt h e nc h o o s ea na p p r o p r i a t et e c h n i c a ls c h e m e i no r d e rt o a c q u i r et h eb e s tp e r f o r m a n c e , t h ef r a m e w o r kd y n a m i c a l l ya d j u s t st h ec o r r e s p o n d i n g t e c h n i c a ls c h e m e ,g i v ep r i o r i t yt oe n s u r ec u s t o m e rs e r v i c ee x p e r i e n c e ,r e a l i z et h e r e a s o n a b l ed i s t r i b u t i o no ft h es e r v e rr e s o u r c e s k e yw o r d s : i n f o r m a t i o np u s h ;s e t v e rp u s ht e c h n o l o g y ;r e q u e s ts t r a t e g y ;d y n a m i c s w i t c h i n g ;q u a l i t yo f s e r v i c e 硕士学位论文 m a s t e r st h e s i $ 华中师范大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,独立进行研究工 作所取得的研究成果。除文中已经标明引用的内容外,本论文不包含任何其他个 人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体, 均已在文中以明确方式标明。本声明的法律结果由本人承担。 作者签名: 同玩日期:泖产6 月口日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,o p 学校有 权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和 借阅。本人授权华中师范大学可以将本学位论文的全部或部分内容编入有关数据 库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。同 意华中师范大学可以用不同方式在不同媒体上发表、传播学位论文的全部或部分 内容。 作者签名:阎巷良 日期:湖7 年多月de l 本人已经认真阅读“c a l i s 高校学位论文全文数据库发布章程 ,同意将本人 的学位论文提交“c a l i s 高校学位论文全文数据库 中全文发布,并可按“章程 中的规定享受相关权益。 作者签名:同黪 日期:7 年占月 硕士学位论文 m a s t e r st h e s i s 第一章绪论 1 1 论文研究的背景和意义 随着互联网信息技术的快速发展,网络技术的不断成熟,人们逐渐将互联网络 作为信息获取的主要平台和途径。互联网丰富的信息资源、直观的信息表示、快捷 的信息获取,极大的满足了人们对信息知识的需求。当网络逐渐改变人们知识获取 方式的同时,它也带来了相当多的麻烦和难题。以普通的信息浏览方式在信息量每 天都在剧增的互联网上获取所需要的信息,越来越难以满足现代快节奏的信息获取 需求,人们迫切的需要能够帮助他们快速获取信息的技术和工具,这时搜索技术和 成熟的搜索引擎出现了,并成为了信息获取的主要方式。 g o o g l e 、百度、y a h o o 等搜索引擎的出现,影响并改变了人们获取信息的方式i l j , 它简化了人们获取信息的浏览、查看、对比、分析的繁琐,节约了大量的因信息查 询花费的时间,带来了很多的便利,但是也存在很多的不足和缺陷。第一,搜索引 擎只是根据用户提供的关键字或词,在网络上查询匹配的信息数据资源,对用户的 真实需求并不理解;第二,搜索引擎依据给出的关键字词,将所有吻合的信息统统 以列表的形式给出,数据量依然庞大,用户仍1 日需要自主去辨识信息的价值,效率 不高且额外花费了不少的时间;第三,在使用搜索前,用户必须知道准确的关键字, 如无法确定或获知自己的关键字词,用户需要经过多次尝试,这使得用户很容易在 搜索的过程中迷失方向;最后,现在搜索引擎技术并没有对重复信息进行处理、过 滤,也使得获得所需信息的成本越来越高。正因为这些原因,在大多数情况下,用 户通过搜索这种典型的信息拉取方式来获取信息所付出的代价高于所需要的信息 本身的价值。搜索方式的效益低下,信息获取的粗放性、需要用户全程参与、高昂 的搜索代价,已不能满足现代化社会的快节奏工作方式,存在较大的不足。 以搜索为代表的信息拉取方式已经不能满足目前用户的需要,与之相对应的信 息推送技术成为了信息获取的新的发展趋势。信息推送方式完全不同于信息拉取方 式。信息推送方式中,服务器不再是被动等待用户请求 2 1 ,而是主动的向客户发送 信息,用户也不必时常要进行操作,查询服务器寻找信息。这种方式具有信息及时, 效率高的特点,重要的是它无须用户参与,用户可以在第一时间即时的获知自己所 需要的信息和内容。这种方式与拉取方式最大的区别就在于信息的主被动关系完全 转换了1 4 】 硕士学位论文 m a s t e r st h e s i s 近几年来,随着浏览器w e b 开发技术的蓬勃发展,浏览器应用程序采用的b s 模式以其较低的硬件需求、无需客户端安装与维护、能够跨平台和防火墙、方便简 单使用、扩展性好等特性得到广泛的关注和应用。越来越多的应用开始转移到浏览 器平台上【5 j ,所涉及应用领域也逐渐丰富,博客、即时通信、电子商务、网络视频、 网络游戏等,丰富了人们的网上生活。在以服务为中心思想的w e b 2 0 1 7 j 应用趋势下, 更多的应用服务都迫切的需要将信息推送技术应用在浏览器上,来更好的为用户提 供服务,满足更多的应用需求,比如实时监控、即时通信、电子金融等等。信息推 送技术开始重新回来浏览器应用平台。但信息推送技术一直没有进入浏览器应用领 域,是因为那时浏览器技术不成熟,存在相当多不足,很难直接将信息推送技术实 现在浏览器上嗍。如何将信息推送技术运用于w e b 平台上成为个亟待解决的问题。 1 2 国内外发展历史和研究现状 信息推送服务最早出现在图书情报部门,主要是为部分用户提供专业的定题服 掣引。后来随着网络的兴起和发展,开始出现基于网络的信息推送系统。 美国的一家名为p o i n t c a s t 的公司于1 9 9 6 年首先提出推送技术 9 1 ,这个技术目 的在于充分利用网络,向用户推送定制的信息,如新闻、经济、体育等。这种技术 从根本上改变了网络信息的服务方式,将原先用户查找信息的方式,转变成为了用 户等待服务器主动推送信息的方式。在推送概念出现后的几年间,推送技术成为了 最热门的研究技术【1 0 】【1 1 1 【m 2 1 ,发展非常迅速,很多公司如微软、网景等纷纷对这项 技术进行相关研究,推出了自己的产品,如微软i e 4 中,专门设计和采用了c d f 频道定义格式以解决传统推送技术的各种不足。网景公司推出面向企业信息系统的 c r o s s w a v e 概念的推送技术,以统一的服务器集中管理的方式,实现不同系统平台 和网络环境下都适用的应用程序软件。 我国的第一个推送产品来自于北京世纪集团名为“资讯天使”,它的出现代表 着我国开始对推送技术进行研究,它通过对信息的集中智能化的预采集后,对信息 进行及时、准确的跟踪,然后将用户需要、预定的信息发回给客户,实现网上信息 的收集分类主动推送信息给用户的功能。我国的一些企业内网中也出现了大量的应 用,如中国金属网站提供的专业信息服务、中国在线的“网站信息推送刀、上海证 券公司的“证券之星 0 0 l 、移送通讯的手机短信定制服务【l l j 等。 推送技术在桌面应用越来越普遍,很多的桌面应用程序都带有p u s h 信息的功 能,如公告新闻、定制消息、软件更新和维护、用户在线监测、个性化服务定制、 搜索内容定制等都使用到了推送技术。 2 硕士学位论文 m a s t e r st h e s i $ 服务器推送技术是信息推送技术在网络浏览器平台的得以实现的一种技术。 以前基于浏览器的推送技术一直停滞,是因为浏览器技术的发展缓慢,没有为推 送的实现提供很好的支持,以纯浏览器的方式很难去实现信息推送。最近几年, 因为a j a x 技术的普及等其他技术的出现,使得服务器推送有了技术支撑,出现了 很多应用如一些在线通信的应用,如m e e b o ;同时推送在现实应用中有很多的需 要。因为这些理由,基于纯浏览器的“服务器推”技术开始受到较多关注。目前已 经出现了一些成熟的服务器推送应用以及各种开源框架d o j o + j e t t y ,d w r 等。一 些w e b 服务器如j e t t y 为大量并发的长连接进行了很多改进【l 引。 服务器推送技术的出现填补服务器推送技术在浏览器平台的空白,实现了真 正意义上的推送。随着它的日渐成熟,服务器推送可以被应用到任何具有实时性 需求的领域和应用中去,再加上浏览器平台并不仅仅局限于p c ,随着移动互联网 成为一个网络发展热点,逐渐和传统互联网的融合,手机、m i d 等各种终端也开 始集成浏览器,人们可以摆脱时空的限制,任何地点、任何时间都能够进行信息 的实时获取。总之,服务器推送应用的前景是广阔的。 1 3 服务器推送技术的应用 服务器推送技术目前的应用空间比较广泛,可以用来开发多种类型的网络应用 程序,主要可以包括这几个应用领域: 1 实时监测领域 可以应用于任何的需要实时监测各种类型的源数据的领域,比如股票、天气、 交通、灾害、物资等。 2 在线游戏领域 w e b 游戏逐渐成为了人们游戏的另一种娱乐的选择,不用安装庞大的客户端, 具有方便的在线,即开即玩的特点,任何地方都可以无障碍的立刻游戏,这种新型 的游戏类型,从最初的五子棋游戏到现在复杂、元素更多的多人游戏。 3 在线即时通信 服务器推送技术最初进入我们的视野的就是这类应用,如r e e c h o ,g t a l k 等。越 来越多的企业需要更便利的信息通信工具,即时通信的简单、高效,不仅可以有效 节约成本,还能帮助企业完善自身的管理,加强部门间的信息沟通,提高企业的整 体工作效率。 4 r i a 的w e b 应用程序 服务器推送技术,是在a j a x 技术之后的一种新的应用形式。它又大幅度的提 3 硕士学位论文 m a s t e r st h e s i s 高了w e b 应用的交互性,响应度,缩小了和桌面应用的距离。 5 内容信息管理 典型的应用场景就是网络教学的应用。基于服务器推送技术可以很方便的开发 类似网络电子教室的应用程序,轻松实现及时与学生沟通,在线播放各种教学资源 的功能。 1 4 本文研究内容和组织结构 基于浏览器的服务器推送技术作为一种新型的信息推送技术,能够主动地将服 务器端的数据变化,异步的推送到客户端,具有响应速度快、交互性好、实时性高 的优点。但是由于浏览器基于8 t t p 协议,传统的在服务器端和客户端建立永久连接, 双向通信的服务器推送方式,无法直接在浏览器上运用。本文从提高服务器推送的 应用性能和服务器推送技术的合理应用入手,提出了一种基于请求调度和状态切换 的服务器推送应用框架模型,引入了请求策略的思想,分别对不同的请求分配适当 的推送技术方式,将轮询、长轮询和流三种方式有机结合,充分发挥各种方式的优 点;在服务器端的性能调整方面,提出了一种结合应用策略,动态调整相应请求的 推送技术方案,能够实时的感知应用的变化,及时的合理调配系统资源,优化了整 体的应用性能,切实的保障用户的应用权益。通过实际的应用开发和测试表明,其 能够有效提高应用的服务质量。 全文组织结构如下: 第一章首先介绍了本文研究的目的及意义,从信息推送技术的历史和现状入 手,指出了本文的主要的研究内容和重点方向。 第二章主要介绍了服务器推送技术的概念,分析讨论了服务器推送技术目前 的实现方式,并通过对比分析了现有服务器推送技术方案的优劣和适用的场景,为 下文的论述奠定了基础。 第三章提出了一种基于请求策略和状态切换的服务器推送应用框架,给出了 系统框架,做了详尽的模块说明,并对框架的两个重要核心请求策略和状态切 换进行了重点介绍。 第四章采用本框架进行了一个应用实现,对其性能进行了分析,并进行了相 应的测试 第五章总结了本文所做的工作,对其下一步的发展趋势和存在问题进行了展 望。 4 硕士学位论文 m a s t e r st h e s i s 第二章服务器推送技术的研究 a j a x 1 4 】技术尽管给w 曲应用程序开发带了一场革新,但是它仍旧存在不足。 首先,服务器端无法直接与客户沟通。这使得服务器端事件驱动的消息通信 无法得到完善解决,仍然需要客户端不断的从服务器端拉取数据。 其次,对于客户端与服务器的实时通信,还是存在少许的延迟。每次都需要 建立和关闭h t t p 或者是t c p 艘连接,需要耗费不少的时间。 服务器推送技术是一个新的技术名词,它描述了服务器端异步的将后台数据 的变化直接“推送到客户端的一类应用,能够满足某些实时性交互应用系统的 需求,具有广阔的应用空间。目前已有比较多的有效的实现方案。 2 1 服务器推送技术概述 服务器推送技术是浏览器技术的一个新技术名词,目前相当流行,又被称为 c o m e t ”】。它是一种新的w | e b 应用模式,通过在浏览器和服务器间建立的h t q p 长 连接,当后台数据发生变化或者有新数据到达时,服务器端主动的将数据“推送 到客户端,无须客户端明确的请求或刷新。由于节省了建立连接,关闭连接的时 间,服务器推送应用具有低延时的特性,特别适合实时性和交互性强的应用。 严格地说,这里所指的服务器推送并不是一种新技术或者开发方式,它代表 的一类特殊的应用,这种应用之前就有了很多的名称,如s e r v e rp u s h 或p u s h 。不 同于这些以往的应用,服务器推送特指基于w e b 平台的,通过h t t p 长连接,无 须在浏览器安装插件的方式工作的信息推送方式。即完全依赖于浏览器自身特性 技术的纯浏览器解决方案,比如使用j a v a s c r i p t 。 服务器推送技术的流行与a j a x 技术有着密切的关系【1 6 1 。a j a x 技术的应用增强 了浏览器应用程序的交互性,减少了在客户端和服务器间传输的数据量,给用户 提供了响应更及时的体验,另外采用“异步 的数据传输,动态更新页面的方式 也使得浏览器应用程序更加接近桌面应用程序。但是它仍然是基于传统的w e b 应 用模型,以客户端发送请求,服务器被动处理的方式工作。从图2 1 和图2 2 可以 看出,服务器推送与a j a x 的不同在于服务器能在事件发生的任何时刻将数据发送 给客户端,而不再是被动的响应用户的请求,也不需要客户端请求或刷新。由于 数据传送是在一个已打开的连接上进行的,节省了建立连接,分配请求资源的时 问,服务器推送缩短了数据传送的延迟时间,具有实时的特性。 5 图2 1 基于a j a x 的w e b 应用模型 图2 2 使用服务器推送技术的w e b 应用模型 6 硕士学位论文 m a s t e r st h e s i s 浏览器应用程序受限于h t t p 协议规范,是以客户端主动发起请求,服务器被动 响应提供服务的方式来进行工作。这种方式决定了任何数据信息的传送都是由客户 端首先发起请求,建立连接,处于主动地位,服务器总是在等待用户的请求,根据 请求提供对应的服务,处于被动地位。 a j a x 技术尽管通过异步请求的方式,提高了应用的响应度和交互性,改变了原 先页面刷新,用户等待的缺陷,给浏览器平台应用带来了类似桌面应用的体验,使 得大多数桌面应用可以在浏览器平台得以实现,但是却无法解决服务器传递信息的 问题【1 6 1 。在一些应用里,需要将服务器端的信息推送客户端,例如实时监控、及时 报价系统等。这类需求在传统的桌面应用中很容易通过建立长久连接,双向数据传 送的方式将服务器端的数据变化及时发送给客户端。但是在浏览器平台却很难实 现,因为任何数据信息必须是客户端浏览器明确请求后,才能从服务器端获得。 用户浏览器服务器 刷新 刷新 刷新 等待 = r 。 _ 等待 = 了 一一一一一一一。 _ 等待等待 p r 硕士学位论文 m a s t e r st h e s i s 数据嚣。这样处理对于服务器事件频繁的应用来说也存在较大的性能问题,过于频 繁的建立和关闭连接、分配系统资源,耗费服务器大量的c p u 时间和内存等资源, 同时由于h t t p 连接的建立也需要花费一定的时间,从而带来了时间延迟,不能满足 实时性要求。 服务器推送技术的出现,解决服务器传递信息的问题,它通过保持客户端与服 务器端的连接,当服务器端有事件发生时,将数据发送给客户端浏览器,由浏览器 负责显示这些数据,然后连接继续被维持,等待下一次服务器推送。关键的技术在 与如何保持原有连接不中断,这样当服务器端需要传送数据时,就可以直接将信息 推送到客户端。 2 2 服务器推送技术实现方案 基于浏览器的服务器推送技术并不是一种新的技术,很久以前它就曾出现过, 但是由于当时浏览器技术比较落后,没有为推送的实现提供很好的支持。例如网景 公司就曾经推出过一种专门用于推送的浏览器、并针对推送应用扩展了部分h t m l 语言。但是这样的推送实现只能在特定的浏览器上才能使用,在其它的浏览器上无 法奏效。 一以往的大多数服务器推送技术都是通过在浏览器上安装插件【3 】,建立基于套接 口的方式进行信息推送,如在客户端使用f l a s h 的x m l s o c k e t 或j a v aa p p l e t 套接 口建立与服务器端的套接口连接实现推送;或使用r m i 、c o r b a 进行远程调用来 实现服务器推送。但这类浏览器插件技术过于复杂,本身也存在很多的问题:技术 难以实现、不能跨越浏览器,无法跨越防火墙,存在插件版本兼容问题,系统维护 升级成本高,不能直接的操作h t m l 页面元素等问题,同时使用插件的方式也使得 浏览器应用失去了原有的优势。 服务器推送技术目前的作法是在现有的h t t p 协议基础上,改变服务器端的处理 方式,由服务器将客户端发起的连接维持成一个材长连接一,通过这个已经建立的 h t t p 连接,服务器便能够主动及时的向客户端发送信息数据。 2 2 1 基于a j a x 的轮询方式 如图2 3 所示,使用a j a x 技术在后台异步的发送请求,轮询服务器的方式,是 实现服务器推送的最容易、也是最常见的方法,它仍然是属于拉取的方式。 为了能够保证数据获取的实时性,常常需要以相对较高的频率去访问服务器, 检查数据是否发生了变化,以便及时的将新产生的数据显示在客户端页面上。但是 8 高频率的访问会带来一系列的问题,因为服务器事件发生具有随机性,大多数的检 查都是多余的,这只会白白增加了网络流量,浪费了服务器的资源。特别在连接数 量大时,更会使服务器都在忙于应付这种额外的请求,而造成系统整体性能的下降。 另外如果以低频率来访问服务器,又可能会错过新数据,造成数据的丢失,不能保 证数据的有效性。最佳的情况是,设定的轮询时间间隔应该恰好等同于服务器端事 件产生和状态变化的频率时间。 轮询的主要不足在于大量的用户连接访问服务器时,将产生大量的网络数据 量,给服务器和客户端都会带来相当大的负载压力。特别是在处理大量不频繁事件 时,使用轮询方式,将使得服务器的性能大幅降低,大量没必要的客户轮询占据了 大量的服务器资源如c p u 时间、内存资源、端口等。如果选择调整轮询频率,扩 大时间间隔来减轻服务器的压力负担,但是这样又会使得数据实时性无法保证,不 能满足服务器推送的要求。 轮询的方式较适合简单的应用,通过对应用的发生频率和数据的重要程度要做 些权衡,从而找出合理的轮询时间间隔,获得可接受的轮询。 9 硕士学位论文 m a s t e r st h e s i s 2 2 2 基于a j a x 的长轮询( 1 0 n g p o l l i n g ) 方式 客户端 服务器 建立连接、 - 夕 哆多矽一 奄新建立连牝、 - t 直到有新事件产生或 超时才会返回 - 副关一 上 啦连接、 - 图2 4 基于长轮询的服务器推送 如图2 4 所示,a j a x 的长轮询是对a j a x 标准轮询的一种改进,它不同于轮询方 式,通过a j a x 在后台异步的向服务端发送的请求不会立刻被返回,而是在服务器 端驻留一段时间,当有事件产生或连接超时才将其返回,返回的数据将由客户端的 j a v a s o i p t 处理函数进行处理,动态的调整h t m l 页面,将结果展示在页面上。 基于a j a x 的长轮询方式和轮询方式的主要区别如下: 1 服务器端通过阻塞客户端请求直到事件发生或连接超时才返回。即长连接的 维持。阻塞请求,将额外耗费服务器的内存资源,在这段没有任何事件发生的等待 时间里,服务器端仍然要为空闲的s e r v l e t 分配线程。在连接数量大时,这将严重影 响服务器的扩展性。 1 0 2 客户端j a v a s c r i p t 处理函数在处理完服务器返回的响应数据后,立刻重建连 接,发送请求。为了保证连接的持续性,实现“长连接”,客户端必须尽快的重新建 立连接,但是无论是客户端的处理响应数据,还是重新建立连接都需要花费一段时 间,服务器端在这期间可能有新的数据到达,这会导致数据丢失的问题。我们可以 在服务区端设置缓存,将这时产生的信息数据保存起来,等到客户端重新建立连接 后,由客户端一次性的将这些的事件信息数据取回。 长轮询的方式充分利用了服务器端需要对请求进行处理的时间,比如分配其它 资源,访问数据库等再给出响应等,并通过阻塞机制,将原本很短暂的服务器端停 留时间,尽可能地拉长使之成了一个较长的时间,成为了类似持久连接的“长连接”, 满足了实时推送的要求。使用长轮询方式最大的特点是具有较大的高效性,且减少 了平均请求数量,不会产生较大的网络数据量,是目前最主流的服务器推送技术。 2 2 3 基于i f t a m e 的流( s t r e a m i n g ) 方式 流方式是通过在h t n d 页面里嵌入一个i f i a m e 隐藏帧,并设置它的s r c 属性为一 个长连接请求,这个长连接在执行过程将永不关闭,服务器端会源源不断地通过这 个连接将数据传送到客户端的隐藏帧里,由客户端根据这些传递的数据内容进行处 理执行。 流方式不同于上述两种基于a j a x 的服务器推送技术方式,它并不是返回可以 在客户端j a v a s c r i p t 的处理解析的数据如x m l 、j s o n ,而是直接返回j a v a s c r i p t 代码,或者是j a v a s c r i p t 的函数调用,如 j s _ t i m e ( ”d a t a f r o m r v e r ”) 。当这样的j a v a s c r i p t 代码被传送回客户端页面时,将会由客 户端浏览器内置的j a v a s c r i p t 引擎直接解释处理,来完成修改页面、显示信息内容 等相关工作。由于j a v a s c r i p t 已经标准化,大多数浏览器平台都可以按照统一的方 式处理j a v a s e r i p t 代码,直接推送j a v a s c r i p t 的数据传送方式,使得流方式可以很 方便的在各种浏览器平台上使用,不存在跨平台的问题。 硕士学位论文 m a s t e r st h e s i s 客户端服务器 图2 5 基于流方式的服务器推送 从图2 5 可以发现,每次数据传送都在重复使用同一个连接,在一个连接上传 送多次的数据,这些数据其实是服务器响应的一部分,由于不是给出的完整的响应, 这个连接不会关闭,服务器和浏览器值之间的t c p 连接会一直保持连接状态,当 服务器有事件时就能直接将数据传送到客户端,不需要重新建立连接,与长轮询相 比较节省了重新建立连接的时间,减少了网络负担。直到发生网络通信错误或者超 时,或是通信的一方发送了一个明显的关闭连接的消息时,这个连接才会被断开关 闭。当出现网络断开问题后,连接将会重新请求建立连接,同时会去检查原先连接, 确认其己关闭。 使用流的方式同样会存在性能方面的问题,当服务器端事件频繁发生时,服务 器端会不断的向客户端推送多个j a v a s e r i p t 代码,客户端的j a v a s c r i p t 引擎可能来不 及去处理不能保证全部都被执行,造成数据的客户端数据丢失。当然也可以在客户 1 2 端设置缓存队列将传回的j a v a s c r i p t 代码存储起来,依次进行执行来解决数据丢失 问题。 2 3 服务器推送技术方案比较 本小节对轮询、长轮询、流3 种方式进行了比较,如表2 1 所示 表2 1 轮询、长轮询、流三者的比较 轮询长轮询流 实时性不合适合适 合适 数据丢失率高一般较少 请求频率高一般少 内存需求 一般较高高 工作方式 同步异步异步 适用场景事件频率固定、实时性要求低大多数情况实时性高、事件频率高 1 轮询 ( 1 ) 实时性 对于实时性要求高的应用来说,轮询的方式是不合适。太过频繁的请求会使应 用的整体性能下滑,服务器和客户端都处于繁忙中。 ( 2 ) 数据丢失率 轮询是以一个设定时间间隔去询问服务器,这个时间间隔的大小在一定程度上 影响了数据的获取,使得数据丢失率高 ( 3 ) 请求频率 为了实时获取数据,必须设置较高的频率。 ( 4 ) 内存需求 一般,除非出现共振现象,即所有客户端同一时刻请求服务器。 ( 5 ) 工作方式 仍然是请求响应,同步方式。 ( 6 ) 使用的场景 如果可以预知事件的周期,明确事件频率不高或者应用对实时性要求一般, 轮询是可取的。 2 长轮询 长轮询是是轮询的一种改进,它不再每次请求立刻返回,发送的请求将被服务 1 3 器阻塞,直到真正的事件发生或者超时,所以性能上要比轮询好,不会浪费大部分 的时间在连接的建蓟关闭,线程的创建、调度、释放上,但是也存在一种极端的问 题。 长轮询,这种方案在服务器端事件频繁发生时存在明显的不足,如下图2 6 所 示,当服务器端事件变得频繁,原本可以在服务器端保持一段时间,不会被立刻返 回的请求,将会被新事件马上返回。在这种情况下,a j a xl o n gp o l l i n g ( 长轮询) 将 退化成p o l l i n g ( 轮询) 的方式。而轮询又是低效的,使服务器和客户端都会有性能 压力的问题。 客户靖 服务器 客户端 、k - 事件 - 一乡秽渺甏看 、豺建立连牝 - t 直到有新事件产 生或超时才返回 1 l - 一种关旷 、连妊 - 服务器 一般状态下的a j a x 长轮循 事件发生频繁时的长轮循 图2 6 长轮询在事件频繁发生时的状态 在客户端获得服务器端返回的事件数据进行处理,准备下一次请求的这段时间 里,会有更多的事件产生。这些事件很有可能会丢失,因为新请求来不及获取这些 事件数据,后面新产生数据很快就将这些数据覆盖掉了,这往往使得用户不能如实 地看到所关注的数据所正在发生的变化,出现信息遗失,“丢帧的现象。如果服 务器端对这种未能被客户端及时取走的事件数据进行了缓存,这些事件数据也因为 不再具有实时性,成为“过期数据,即使它们能够被下一次的请求一次性带回, 1 4 硕士学位论文 m a s t e r st h e s i s 这些数据在客户那里也可能没有太大的意义。另一方面,这样的处理需要额外的缓 存空间,将进一步的消耗服务器的内存资源,使得已经很紧张的服务器资源雪上加 霜。 在事件频率较低时,长轮询的优势也很明显,在接到请求后,返回客户之后, 资源会被释放,而不是被空闲线程占有。 客户端 服务器 时 图2 7 流方式在事件频繁发生时的状态 3 流方式 在服务器端以流的方式运行就不会存在这样的问题,如图2 7 。服务器的事件 数据将会被作为响应的一部分接连不断的返回。即使在处理过程中出现与服务器端 的断连的情况,这种情形下造成的数据损失也会比已变成轮询的长轮询要少。 从图2 6 中可以看出当服务器端事件频繁的时候。使用长轮询的方式也开始不 合适,只有流方式是适合在事件频繁的发生的时期,但是流方式会消耗多一些内存。 1 5 硕士学位论文 m a s t e r st h e s i s 4 “按需 选择不同的方式 通过对服务器推送技术的横向比较,发现每种推送技术各有自己的优点和适用 的场景: ( 1 ) 轮询方式:对于服务器端事件发生频率较稳定,时间间隔较大、实时性 要求不高的推送请求,轮询方式有着较大的优势。 ( 2 ) 长轮询方式:在服务器端事件发生时间具有较小间隔的情况下,能够满 足绝大多数的实时信息推送要求,是目前主要的推送技术方式。 ( 3 ) 流方式:符合服务器端事件发生频繁,实时性能要求高的推送请求的请 求,长轮询方式在这种情况下会出现数据丢失,退化成为“轮询”的缺点。 分析发现,这三种方式恰好能够满足具体应用中对推送信息的实时性的不同要 求,对应如下: ( a ) 实时性特别高的需求,适合采用的流方式。 ( b ) 实时性要求一般,采用长轮询方式。 ( c ) 实时性要求较低,采用轮询方式。 如果能够明确应用中各种信息事件发生的频率和不同用户对信息实时性的真 实需求,“按需 选择服务器推送方式,实现三种方式在一个应用中混合使用,使 得每个请求都使用最合适的推送方案,将更有效的利用服务器资源,在保证整体应 用服务的质量的同时,应用不同的分配策略也能在一定程度上提高服务器的性能, 降低服务器的负载压力。 那么问题的关键在于是否存在一个合理的请求策略,能够按照不同的请求需 要,来进行推送技术的分配。为了解决这个问题,我们在下一章引入了请求策略, 试图寻找到一种合理的分配方案。 2 4 本章小结 本章节首先对服务器推送技术进行了概述,说明了它与传统浏览器应用的主要 区别、目前最主要的实现技术a j a x 的关系,然后对目前服务器推送技术的三种实 现方案进行了详细阐述,并对这三种方式作了详尽的对比和分析,提出了混合使用 这三种方式的一种设计思路,引入了请求策略的概念。 1 6 硕士擘位论文 m a s t e r st h e s i s 第三章基于请求策略和动态切换的服务器推应用框架设计 服务推送技术是基于浏览器平台的信息推送技术,能够主动的将服务端的信息 推送到客户端,满足客户端实时获知所需信息的需求。但由于服务器推送技术目前 还不成熟,没有考虑具体的应用需求,在实际应用中还存在着较大的困难。 3 1 系统框架设计思路 3 1 1 现有技术框架的不足 当前服务器推送技术已有了较大的发展,出现了较为成熟的服务器推送技术框 架。这些技术框架都将注意力放在服务器端的性能问题上,力求使服务器能够以较 少内存资源,提供更多的连接数量,支持更大的并发用户数,但却没有关注具体的 应用需求,忽略了不同应用需求间的差异,对所有的服务请求采用了单一的服务器 推送技术方案( 主要是长轮询) ,造成大部分应用的需求难以被满足,主要存在以 下缺陷: ( 1 ) 使用单一的服务器推送技术方案,如长轮询,不能完全的满足应用的需 求。如对于实时性要求和事件频率要求都很高的应用,使用长轮询的方式将造成延 时和数据丢失;对于实时性要求低的应用,事件发生频率低的服务请求,使用长轮 询又浪费了不必要的处理时间和系统资源。 ( 2 ) 没有根据请求的重要程度区别对待。而是对所有的请求都按照统一的方 式进行处理。在服务器资源发生负载过重时,关键请求需要与次要请求争抢资源, 不能优先保障关键请求的性能,造成整体服务质量不高。 ( 3 ) 没能充分地利用现有推送技术的优点。 ( 4 ) 不能根据请求事件的频率变化动态切换服务器推送技术方案,使得服务 请求不能得到应用的资源保证。 目前的服务器推送技术在实现上没有关注应用的具体需要,都是出于服务器性 能的角度。很难满足实际应用的需求。 3 1 2 框架核心设计思想 本框架的核心设计思想是: 一按需定制:按照用户对信息推送的实时性的实际需求,分配合适的技术方 式,以满足用户的需要,合理分配系统资源。 1 7 硕士学位论文 m a s t e r st h e s i s 优先策略:通过对用户需求和推送服务进行分类、排序,将用户请求级别 高的应用优先处理,保证系统关键需求的处理,提高系统的应用性能。 一动态调整:对用户关注的事件进行分析,当事件频率变化时,适度的转换 技术方式有效的在应用性能和资源利用上做到平衡。 基本思路是:按照用户的角色类型和请求信息事件,将两者按照一定的比例进 行运算,获得用户请求的优先

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论