(计算机应用技术专业论文)基于rdp的应用服务推送模型.pdf_第1页
(计算机应用技术专业论文)基于rdp的应用服务推送模型.pdf_第2页
(计算机应用技术专业论文)基于rdp的应用服务推送模型.pdf_第3页
(计算机应用技术专业论文)基于rdp的应用服务推送模型.pdf_第4页
(计算机应用技术专业论文)基于rdp的应用服务推送模型.pdf_第5页
已阅读5页,还剩71页未读 继续免费阅读

(计算机应用技术专业论文)基于rdp的应用服务推送模型.pdf.pdf 免费下载

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

文档简介

中山大学硕士学位论文 论文题目:基于r d p 的应用服务推送模型 专业:计算机应用技术 硕士生:刘伟 指导老师:林小拉教授 摘要 云计算作为一种以网络为基础的计算模式和服务提供方式,一方面,它集中了c s 计算、对等计算、分布式计算、协同计算等计算模式的优点;另一方面,它屏蔽了各类 终端在c p u 处理能力、存储能力、可接入带宽等的方面的差异。服务质量与应用服务和 网络结构的复杂性息息相关,而远程桌面协议( r d p ) 是局域网内高效、可靠的应用界面 传输技术。 本文研究利用r d p 协议构建一个高效的跨平台应用推送模型。r d p 协议的关键技 术是对系统桌面进行绘图命令级的抽象和压缩、加密后进行增量传输。本文通过分析 r d p 的抽象、多通道压缩传输原理,结合x w i n d o w 的绘图机制,提出基于元素的应用 界面抽象机制,并利用该机制实现了x w i n d o w 系统应用界面的抽象和绘图信息的获取。 针对不同类型终端的物理性能差异和系统平台差异,本文构建了一个w i i l d o w s 平 台访问l i n u x 平台应用的服务推送原型,并提出一种基于命令映射的平台绘图解释机制。 该机制利用终端的平台特性构建一个特定的命令映射表;并且提供一套映射表的维护方 法。 同时,为进一步提高网络传输速率和响应速度,充分利用终端性能,在界面抽象机 制的基础上,提供三种终端加速机制,实验证明这些机制对降低网络时延和服务端资源 消耗有显著效果。 关键词:云计算,远程桌面协议,界面抽象,增量传输 中山大学硕士学位论文 t i t l e :a na p p l i c a t i o ns e r v i c ep u s h i n gm o d e lb a s e do nr d p m a j o r :c o m p u t e ra p p l i c a t i o nt e c h n o l o g y n a m e :w e il i u s u p e r v i s o r :p r o f x i a o l al i n a n a p p l i c a t i o ns e r v i c ep u s h i n gm o d e lb a s e do nr d p a b s t r a c t t h ec l o u dc o m p u t i n ga sa l la p p l i c a t i o nd e l i v e r i n g s y s t e ma n da l s oac o m p u t i n g p a r a d i g mb a s e do nt h en e t w o r k ,o no n el l a n d ,i tc o n v e r g e st h ea d v a n t a g e so fl o t so f c o m p u t i n gp a r a d i g m si n c l u d i n g c l i e n t s e r v e r c o m p u t i n g ,p e e r - t o p e e rc o m p u t i n g , d i s t r i b u t e dc o m p u t i n ga n dc o l l a b o r a t i o nc o m p u t i n g ;o nt h eo t h e rh a n d i th i d e st h e d i v e r s i t i e so fa l lk i n d so ft e r m i n a l si nc p u ,m e m o r ya n da c c e s s i b l eb a n d w i d t h h o w e v e r , t h e c o m p l e x i t yo fa p p l i c a t i o n sa n dn e t w o r ke n v i r o n m e n ts e r i o u s l ya l j f b c t sq o s s ot h i sp a p e r d i s c u s s e sh o wt ob u i l dah i g h - e f f i c i e n c ya p p l i c a t i o ns t r e a m i n gm o d e lw i t hr d pw h i c hi sa n e f f i ci e n ta n dr e l i a b l ep r o t o c o lw i l d l yu s e di nt h el a n t h ek e yt e c h n o l o g i e so fr d pi n c l u d e sd e s k t o pc o m p o s i t i o nw i t hd r a w i n go r d e r s ,t h e m e c h a n i s mo fc o m p r e s s i n ga n d e n c r y p t i n g d a t aa n di n c r e m e n t a ld e l i v e r i n g t h r o u g h a n a l y z i n gt h ep r i n c i p l eo fa b s t r a c t i o na n dm u l t i c h a n n e ld e l i v e r i n gi nr d p , i n t e g r a t i n gw i t h t h ed r a w i n gm e c h a n i s mo fx w i n d o w , t h i sp a p e rp r e s e n t sa ni n t e r f a c ea b s t r a c t i o np r i n c i p l e b a s e do nd r a w i n ge l e m e n t sa n du s ei ti nx - w i n d o wa sa ne x a m p l e c o n s i d e r i n gt h ed i f f e r e n c ei nt e r m i n a l s h a r d w a r ea n ds y s t e m , t h i sp a p e ri st r y i n gt o b u i l da na p p l i c a t i o ns t r e a m i n gm o d e lt h a ta l l o wu s e r so nw i n d o w sc a l la c c e s st h ea p p l i c a t i o n s i n s t a l l e di nl i n u x , a n da l s oi t p r e s e n t sad r a w i n go r d e ri n t e r p r e t a t i o nm e c h a n i s mb a s e do n o r d e r - m a p t h r o u g ha d d i n go ru p d a t i n go r d e r - m a p ,i tc a l la d j u s tt ot h ec h a n g eo fs y s t e m p l a t f o r m m e a n w h i l e i no r d e rt oi m p r o v eo nt h en e t 、) r o r kt r a n s m i s s i o nr a t ea n dt h es p e e do f r e s p o n s ea n df u l l yu t i l i z i n gt h ep e r f o r m a n c eo ft e r m i n a l s ,t h r e ea c c e l e r a t i o nm e c h a n i s ma r e a d d r e s s e di nt h ep a p e ri n c l u d i n gf a k e - u p d a t i n g ,c o m p r e s s o ra n dp u s ho nt h eb a s i so f i n t e r f a c ea b s t r a c t i o np r i n c i p l ew h i c hh a v es i g n i f i c a n te f f e c to nr e d u c i n gt h eo v e r h e a do f n e t w o r ka n ds e r v e r k e yw o r d s :c l o u dc o m p u t i n g ,r d p ,i n t e r f a c ea b s t r a c t i o n ,i n c r e m e n t a ld e l i v e r i n g 1 1 1 论文原创性声明内容 本人郑重声明:所呈交的学位论文,是本人在导师的指导下, 独立进行研究工作所取得的成果。除文中已经注明引用的内容外, 本论文不包含任何其他个人或集体己经发表或撰写过的作品成 果。对本文的研究做出重要贡献的个人和集体,均已在文中以明 确方式标明。本人完全意识到本声明的法律结果由本人承担。 学位论文作者签名: 望l 垄 日期:矽徊年歹月7 日 学位论文使用授权声明 本人完全了解中山大学有关保留、使用学位论文的规定,即: 学校有权保留学位论文并向国家主管部门或其指定机构送交论文 的电子版和纸质版,有权将学位论文用于非赢利目的的少量复制 并允许论文进入学校图书馆、院系资料室被查阅,有权将学位论 文的内容编入有关数据库进行检索,可以采用复印、缩印或其他 方法保存学位论文。 学位论文作者签名: 日期:矽沪年月 导师签名:掘整 日期:2 , ot o 年乡月3 日 中山大学硕士学位论文 第一章引言弟一卑jl 百 随着计算机应用在各个领域的不断深入,应用本身的开发和维护变得复杂;加之网 络技术的发展,促进了人们之间的交流,应用数据海量增长,应用的需求亦丰富多样。 设计和开发高效响应、低成本、独立于平台的应用服务提供模式是我们信息技术人员所 面临的重大挑战。 当提及应用服务时,人们想到的往往都是本机上的简单的应用程序。由于p c 的普 及和其性能的不断提升,人们可以通过本地应用程序完成各种任务。如办公、娱乐、学 习等。这种应用服务的提供模式有很大的弊端,高昂的应用开发和维护成本、较低的灵 活性、可移植性、功能的局限性等,难以满足海量用户、不同终端、平台、复杂计算任 务等现实要求。 本文正是从现有的主流应用服务提供模式着手,导出一种高效的跨平台应用服务提 供模型,尝试解决应用服务提供模式的困窘。 1 1 当前应用服务提供模式及其问题 当前主流的一种服务提供模式是本地安装,用户事先购买自己需要的应用程序并将 其在本机进行安装,使用应用服务的处理结果保存在本机档案中,同时被动地更新这些 应用服务。这种相对封闭的服务提供模式有以下弊端: 高昂的应用管理和维护成本。在某些基于大量p c 机的领域,如商业领域的信息 管理系统,系统的安装、升级和业务的变更带来大量客户机重复操作;另外应 用的升级和更新对用户来说常需要新的资本和时间投入。 较低的可移植性。无论是操作系统、硬件芯片、还是数据库软件等都存在着一 定程度上的垄断,其中以操行系统和应用绑定最为明显。当用户安装一种操作 系统平台后,就无法使用另一种操行系统平台上的应用。另外,为适用不同的 系统平台和硬件体系结构,同一应用需要开发不同平台的版本,这给用户带来 不便的同时无形中也加大了应用开发方的投入。 较低的安全性。当用户p c 机遗失或者硬盘损坏或崩溃,将造成所有应用数据丢 失。这种数据丢失通常是无法恢复的。 计算能力和资源的严重浪费。虽然应用服务在不同的p c 机上多次安装后,它们 在使用时完全有终端用户控制的,这从某种程度上也造成了大量p c 机物理资源 的浪费。 基于r d p 的应用服务推送模型 另一种近些年来较为火热的应用服务提供模式基于网络的应用服务提供模式【l j 。 在这种模式下,用户无需安装软件,只需借助浏览器或客户端软件通过网络使用已经发 布或己部署在服务端的应用服务。这种模式固然很大程度上克服了本地安装模式的不足, 但其在安全性和用户体验上仍存在很大的不足。 较低的网络安全性。虽然用户数据都存储在服务端,用户只能通过网络查看和 修改,数据不会因客户端的宕机而丢失,但这种模式很难避免客户端的恶意入 侵和在网络中传输数据时的恶意篡改或截获。 较差的应用服务质量。由于应用通过网络来传输,和本地安装的应用相比,在 操作效率、时延、响应速度、应用画面质量、应用灵活性等方面仍有较大的差 距。 以上各种应用服务提供模式的弊端将随着用户使用方式的灵活化和应用的复杂化 而愈加明显。 1 2 未来的应用服务提供模式 随着网络技术的推广和普及,经历数年后,网络已深深渗入人们生活的方方面面。 人与人之间、人与组织、团体、企业之间的交互越来越频繁,应用数据海量增长。安全 而高效地管理维护这些数据以实现用户间的充分协作,普通客户机是难以胜任的。所以 本地安装模式是行不通的。 未来的应用服务提供模式将以网络为基础,使用网络推送的模式。在应用服务的部 署和应用数据的维护上应该更灵活、健壮、安全、高效。从用户角度看,基于网络推送 的应用同本地安装的应用在用户体验上应该没有区别( 如果所有的应用都是以网络推送 的模式提供,这个差异也就不存在了) ,这就需要从该模式的推送效率和服务质量上进 行改善;另外,用户使用基于网络推送的应用服务,其应用粒度和一次使用的应用数量 是不应该受到限制的;同时,从安全角度看,不同用户使用同一基于网络推送的应用服 务,其个人应用数据是应该完全隔离的,除非用户将其数据共享。从应用服务提供方来 看,单用户使用应用和海量用户使用应用时的应用服务质量是不应该有很大差异的;另 外,来自不同终端的用户使用该模式下的应用服务的服务质量是不应该有显著的终端差 异的。再次,从硬件设施的角度来看,应用服务的提供不应当受到终端类型、网络类型、 平台类型等因素的限制。任何手持设备,如p d a 、上网本、智能手机、笔记本等,只要 能够接入网络,不管使用什么方式,都能使用远端推送的应用服务。总之,未来应用服 务提供的模式如图1 1 所示: 2 中山大学硕士学位论文 一一一 图卜l 服务提供模式图 1 3 研究现状 针对未来应用服务提供模式的各种挑战一系列的研宄正陆续展开。这些研宄主要 集中解决以下两个问题:一个是如何让持有不同性能终端的用户高效地使用远程应用服 务;另一个是如何有效而安全的维护不同用户的数据和应用状态。第一个问题主要是从 应用提供的铷议和终端特性出发解决这种服务提供模式下的效率问题和终端差异。第 二个问题从应用提供方出发,解决应用开发、部署和维护中的安全性和健壮性等问题。 目前,国内外对这种服务提供模式中的上述问题有一系列的研究,这里我们介绍几 种主流的研究观点:应用的逻辑和显示的分离、远程服务传输协议、云计算。其中这 里的云计算指的是这种应用服务提供模式框架的整体实现。 1 3 1 用逻辑执行与显示分离 应用的逻辑执行和显示分离的方法最早由c i t r i x 公司引入,该公司通过使用 i c a f i n d e p e n d e n tc o m p u t i n ga r c h i t e c t u r e ) :睦术t 2 嗡应用程序的逻辑执行和界面显示分离, 基于r d p 的应用服务推送模型 应用程序完全在服务端执行,通过网络协议( t c p i p 、s p x 、i p x 、n e t b e u i 、n w l r n k ) 将显示界面在客户端呈现。具体的分离技术由i c a 协议实现。该协议是一个类似 x w i n d o w 的c s 架构的协议,利用h o o k 机制实现应用逻辑和显示的分离。 另一种实现应用显示和逻辑分离的方法是在开发应用的基础语言上进行扩展设计, 将应用进行分层设计,包括逻辑执行层和界面显示层。借助扩展语言中的界面资源申请 中断机制和重定向机制,将逻辑和显示住服务端和客户端分开执行。这种技术叫做 r d a ( r e m o t ed i s p l a yu s i n ga s p e c t s ) 3 1 ,目前它主要用于开发j 2 m e 应用。r d a 的具体架 构如图1 2 : 应用逻辑服务端 图形界面客户端 图1 - 2r d a 架构图 第一层代表的是应用的执行和界面显示的重定向。在该层中,通过j 2 m e 模拟器对 j 2 s e 应用程序进行模拟,当j 2 s e 应用从j 2 m e 的l c d u i 包中唤醒一个方法时,远程执行 层面( 一个利用h a l f - o b j e c t 模式实现c h o 与s h o 之间的通信协议的模块) 会捕获到这个 唤醒请求,交给l c d u i 客户端执行,同时l c d u i 客户端还会在执行界面时做一些本地化的 渲染工作。第二层序列化层负责对客户端和服务端传递的参数和应用数据进行序列化。 第三层通过套接字模式处理客户端和服务端之间的t c p i p 通信。 4 中山大学硕士学位论文 当然还有一些实现应用逻辑执行和显示分离的其他技术,如:重新开发和再包装 g u i 框架、s w i n g a p i 、改写a w l 类让它具备远程通信和中断功能;或者开发应用的不 同版本以支持单机模式和c s 分离模式。不过这些方法由于对开发者缺乏透明性而适应 范围不广。 1 3 2 远程服务传输协议 将应用逻辑执行数据和界面显示数据分离后,需要借助网络通信将显示数据传输到- 客户端进行显示。这需要为服务端和客户端之间的远程应用传输提供一个稳定而高效地 协议。目前在远程服务传输协议上的研究主要集中在开源的v n c 模式、微软的r d p 协 议和c i t r i x 的i c a 协议。这些协议各具特点。 v n c ( v i r t u a ln e t w o r kc o m p u t i n g ) 是一种借助r f b 协议实现远程共享和远程操作的 软件【4 1 ,它借助网络传送鼠标、键盘动作和画面更新数据。由于v n c 使用最底层的绘 图信息( 指向显卡显存的屏幕像素数据) 来进行协议封包和传送,所以其传输数据量大, 网络带宽要求很高、效率也相对较低;另外,v n c 缺乏统一规范的安全机制。但也正 是因为它传输的是平台无关的底层像素信息,这些信息在其他任何平台都可以进行重绘, 所以v n c 能很好地支持各类p c 终端的跨平台操作。 i c a ( i n t e l l i g e n tc o n s o l ea r c h i t e c t u r e ) 是c i t r i x 公司的未开源的通用服务显示协议,它 让应用逻辑在一个多用户应用服务器上执行,而将显示界面、鼠标、键盘动作通过网络 进行传输。为优化传输效率以适应瘦客户端模式,使用t h i n w i r e 技术1 5 j ,对应用图像的 绘图原语及g d i 等进行封装后传输,同时使用虚拟通道a p i 提高界面重绘的效率。为 了保证通信的可靠性i c a 协议服务端将t h i n w i r e 逻辑数据流( 封装g d i 、视频驱动等驱 动子系统,这些协议驱动最终产生高度优化的构图原语) 包装成i c a 协议包,然后通过 加密、打包、装帧等操作后交给传输层处理,客户端以相反的顺序接受数据,最终显示 远程应用的界面。i c a 协议架构如图1 3 : 基于r d p 的应用服务推送模型 应用服务端 i c a 霜:f - * 端 图1 - 3i c a 协议架构图 r d p ( r e m o t ed e s k t o pp r o t o c 0 1 ) 协议【6 】是m i c r o s o t t 与c i t r i x 合作在i c a 协议的基础上 结合w m d o w $ 终端服务技术开发的专有协议。原理上它和i c a 一样通过传输应用界面 的构图命令的更新信息、鼠标、键盘数据来降低传输的网络数据量。不同之处在于,和 i c a 相比,它是一个重量级的多层次多虚拟通道协议,它结合m c s 协议【7 】的多通道并 行数据传输、清晰的功能分层结构、w i n d o w s 终端服到8 j 【9 】的多种缓冲机制和屏幕加速 技术而成为现今远程服务传输的主流协议,被应用到各种特定系统中【i 们。 1 3 3 云计算 云计算一种新潮的信息存储方式和应用服务提供方式。在这种方式下,一切都 托管到“云 中一个可以通过网络访问的,由大量个人计算机和服务器构成的资源 集合。通过“云”用户能够从世界任何地方访问自己所拥有的资源( 包括自己定制的服 务应用程序和文件等) 而不再受到桌面程序的限制,因而也使得异地组群成员之间的协 助也变得更加容易。 而以云计算为基础所提供的各种基于w ,e b 的应用或服务称为云服务【l ,如在线日 历、文字处理、演示文稿等。现今的许多公司都在开发各种类型的云服务。利用云计算, 应用程序本身由云提供,用户常通过w e b 浏览器访问云服务,在浏览器的窗口中打开 一个应用实例,然后像一个标准的桌面应用程序一样使用该云服务,唯一不同的是应用 数据和程序驻留在云端服务器上。这样一来,如果用户的终端崩溃并不会影响云端的应 6 中山大学硕士学位论文 用程序和用户的个人数据和操作状态;另外,用户的个人数据和文件都放在云里而不再 以机器为中心,经授权的多个用户可以利用任何可用的i n t e r n e t 连接在同一个文件上进 行实时协作。 从计算方式上来看,云计算的出现相当于以前的电力革命,它意味着以资源池为基 础的计算能力可以像商品一样进行流动,就像水力、电力一样,用户按需使用【i2 1 。应用 程序、计算任务等并不运行在用户的个人终端( 包括个人电脑、手机、上网本、p d a 等 各种终端设备) ,用户的个人数据也不用存储在用户的本地终端,而是云端。诚然云背 后的技术和基础设施对用户是不可见的。数据存储、数据维护、应用和计算任务的执行 由云端提供,以下简称服务。用户可以在任何时间、任何地点通过互联网访问云端使用 服务,只要求用户的终端有简单的服务界面显示、输入功能即可。如g o o g l e 所提供的 g o o g l eo f f i c e 就是采用该种模式。总之,云计算能给用户和企业带来许多便利,如:更 低成本的用户电脑、更高的性能、更低的i t 基础设施成本、更低的软件成本、即时的 软件更新、超强的计算能力、无限的存储容量、较强的数据安全、不同o s 系统间的兼 容、不同文件格式的兼容、便捷的组群协作、文档的普适访问、较低的终端设备依赖等。 该模式的简单结构如图1 4 所示。 图1 - 4 应用服务提供整体架构图 1 4 本文的贡献 针对当前应用服务提供模式的问题,参考未来服务提供模式的各项指标,本文试图 解决基于网络的应用服务推送模式中的若干问题,并由此导出一个跨平台服务推送模型 基于r d p 的应用服务推送模型。该模型能将一个平台的应用程序或已经部署的网 络化服务通过r d p 协议推送到客户端终端平台,使远程用户像使用本地桌面应用一样 平滑地使用远程应用。同时,该结构结合虚拟化技术将服务端资源进行整合,实现资源 到应用的大规模共享。 对于应用,无论是本地化的程序还是网络化得服务,根据其执行过程和开发原理, 可将其分为应用界面视图、应用逻辑执行、应用数据处理3 个部分。和开发模式m v c 7 基于r d p 的应用服务推送模型 相对应,其中应用界面视图部分负责人机交互、输入、输出;应用逻辑执行则运行于后 端或服务端,以二进制代码形式执行计算并得出结果;应用数据处理指的是数据存取, 数据存储在后端硬盘或阵列之中。在传统的p c 模式下,应用的这3 个部分集中在一台 计算机中,无法充分利用应用分层的特点。 本文正是借用已有的云存储技术和虚拟化技术【i3 1 ,对应用分层中的交互界面部分进 行统一抽象,并通过协议包装后进行网络传输,最终将应用的交互界面部分在客户终端 呈现。对于应用的逻辑执行,对终端用户而言是透明的,它们可能运行在中央服务器集 群中的某些机器上,也可能运行在网络上的某台空闲机器上;对于应用数据的存储,它 们可能存储在云端的磁盘成列,也可能是任何一台虚拟了的网络计算机中,以下称为数 据中心。除了数据备份外,数据中心的数据是没有冗余的并能实时同步更新。 本文通过分析主流终端平台的绘图机制和应用显示原理,研究应用界面的抽象方法 和能高效传输应用界面的协议,以实现远程应用、服务对不同终端设备的高效推送。其 中应用界面抽象是对应用的交互界面进行大粒度的分割,主要是图元的分类和绘图信息 的获取,这样可以通过大粒度封装减少传输数据量;应用界面传输协议优化主要在协议 的封包和协议接u 上来进行,以提高协议与其他协议或平台之间的转换效率;终端平台 绘图解释机制的研究是为了提高远程应用服务交互界面的客户端重现效率。通过以上三 个方面的优化最终提供远程应用服务的高效推送。 1 5 论文的组织 论文从分析现今基于网络的应用推送模式中的各种问题着手,第一章介绍当前应用 服务提供方式下的研究现状,并尝试提出解决该模式中诸多问题的优化方案。 第二章,从整体上介绍一个基于网络的跨平台应用推送的模型,以及实现对应原型 所面临的诸多挑战。 第三章,介绍应用界面数据的获取、分类和抽象机制,以及原型中实现这些机制所 使用的关键技术。 第四章,详细介绍一种远程服务传输协议r d p ,并从协议与其他协议或平台的接口 上对其进行优化。 第五章,为解决远程应用的交互界面在终端的重现,对当前终端平台的本地解析机 制进行阐述。 第六章,对该原型中应用的交互性能进行评估,并比较它与基于v n c 的应用推送 服务的网络效率。 中山大学硕士学位论文 第二童基于r d p 的应用服务推送模型的基本框架 在应用复杂化和需求多样化的今天,为满足各种终端用户的应用需求,应用服务提 供方需要针对不同平台、不同终端环境开发不同的应用服务。为解决终端需求的应用服 务同特定平台之间的矛盾,我们提出平台无关应用服务推送模型。在该模型中,平台无 关应用服务指的并不是将应用程序或服务从它的运行平台环境中独立出来,而是将应用 服务的显示结果当作一种资源经过包装和网络传输在其他平台显示。对其它用户而言, 该应用服务是一种透明的资源。 本章先介绍该模型的整体框架,然后再详细介绍模型中各个部分的功能和原型中实 现这些功能所面临的挑战。 2 1 整体视图 如图所示,基于r d p 的应用服务推送模型借助r d p 协议能让各种终端访问l i n u x 平台或w i n d o w s 平台所推送的应用服务。 岛旬毋 目酗n 尊 丽 一 堕毋9 州圈 p 惫 图3 - 1 模型整体视效图 根据基于r d p 的应用服务推送框架可知,该模型有着明显的层次关系。从上往下 依次说明:首先是用户终端平台,我们的实验模型以w i n d o w s 平台为主,可蛆是智能手 基于r d p 的应用服务推送模型 机的w i n d o w sm o b i l e 或其它终端的w m d o w s 操作系统,用户终端平台需要安装客户端 软件,该软件负责应用请求的发送;经协议包装的应用服务显示数据的接收和本地解析; 本地平台的用户输入的获取、转换和回传。客户端软件的以上工作都是在终端用户平台 的协助下完成,而且可以以定制的形式与终端平台的窗e 1 管理器进行协作,给不同终端 用户提供不同的窗口风格和显示效果。 其次是网络和网络传输协议层,不同终端可以根据自己的实际环境以灵活的方式接 入i n t e m e t ,如无线、有线、手机网络接入等。应用服务传输协议r d p ,负责端到端参 数的协商、数据的协议封包、压缩和规则描述,然后通过t c p i p 、s p x i p x 等进行网络 传输。 最下面是应用服务层,该模型中,这层只负责应用服务的界面描述和界面数据获取, 然后将界面对象资源交由应用服务平台进行统一管理,同时将界面数据进行协议封装、 压缩后交给上层网络进行传输。从物理实现上来讲,应用服务提供方平台需要安装本文 设计的服务端软件模块来完成上述功能。至于应用服务的统一管理、执行和后端存储可 以借助已有的模式一能力服务模型与虚拟桌面架构来实现【1 4 】。 2 2 应用服务的后台架构 能力服务模型和虚拟桌面架构是由中科院计算所提出并实现的,该模型借助虚拟化 技术将应用从它所执行的物理平台中独立出来,形成应用服务池,并对它们进行统一管 理、部署以适应多用户、并发请求:同时将应用服务池以轻量级虚拟机【1 5 】的形式和物理 资源池进行映射,通过对虚拟机的统一分配和管理实现对物理资源的充分利用。 能力服务模型架构如图2 2 : l o 中山大学硕士学位论文 囵墨 臣圃巨臣固 巨0 物理- 务- i 图2 - 2 能力服务模型架构 需要说明的是应用服务推送模型是以该能力服务模型为基础。应用服务实例运行所 需要的物理资源和环境也由此后台架构来提供,而且该后台架构能够实现物理资源的虚 拟化和存储资源虚拟化,最终通过维护一个抽象的物理资源池对上层提供可以灵活配置 的虚拟服务器,为海量用户的请求提供不同级别的支持。 d v m m 是后台架构中的核心部分,它负责虚拟机的管理和维护;能够根据应用请 求的粒度实现物理资源到虚拟机的灵活映射,而不是提供固定计算能力的虚拟机。通过 这种基于操作系统层的全虚拟化而非基于硬件模拟的虚拟化方式最终实现计算能力在 各个虚拟机之间的灵活流动,从而实现资源应用请求与物理资源最大效用的匹配。 2 3 应用服务推送模型及其关键技术 应用服务推送模型包括应用服务响应部分和应用服务推送部分。其中,服务响应部 分负责应用请求的接收、处理、应用的实际调度。而作为模型的核心一应用服务推送 部分,则负责应用界面数据的获取和预处理、信道传输、信息的终端解释以及终端交互 等。整个模型的模块架构如图2 3 所示。 基于r d p 的应用服务推送模型 图2 - 3 模型整体架构图 整个模型由d a e m o n 、m a n a g e r 、a g e n t 所构成的应用服务响应部分以和由a g e n t 和 c l i e n t 所构成的应用服务推送部分所组成。其中,在应用响应部分,d a e m o n 负责监听 所有客户端的请求、验证客户端、维护客户端信息以及应用请求的传递和反馈信息的维 护。m a n a g e r 负责接收并响应d a e m o n 传递过来的应用请求,管理节点以及应用在节点 之间的调度。a g e n t 负责响应m a n a g e r 的轮询、执行应用以及加入与离开m a n a g e r 管理 队列。在应用服务推送部分,c l i e n t 模块负责接收并解释执行应用界面数据以及终端输 入信息的搜集与回传。a g e n t 负责应用界面数据的获取、包装与传输,回传输入事件的 接收与提交。 在应用服务推送模型中,整个运行场景大致如下:第一阶段,c l i e n t 部署在终端平 台上,通过网络与部署在服务端某台机器上的d a e m o n 建立连接,然后通过输入用户名 与密码进行认证;d a e m o n 接收用户输入后进行验证并返回验证后的结果给c l i e n t ,在 得到合法认证后,c l i e n t 发送应用列表请求,负责维护用户列表和用户对应应用列表的 d a e m o n 将用户所具有使用权限的应用以列表的形式发送给c l i e n t 供其选择使用;c l i e n t 通过选择某些具体应用并提交给d a e m o n ;至此,c l i e n t 与d a e m o n 的交互工作己基本完 成。第二阶段,d a e m o n 收到c l i e n t 发送的应用请求,通过查找c l i e n t 信息列表判断该 应用是否已经被该用户所使用;如果用户已经使用则直接将应用运行的实例激活,否则 d a e m o n 将用户应用请求向下传递给m a n a g e r 调度,自己继续监听该c l i e n t 的其他消息 和其他c l i e n t s 的消息;至此d a e m o n 基本完成其使命。第三阶段,m a n a g e r 同时开启两 个端口进行监听,一边监听来自d a e m o n 发送的应用调用请求,一边监听下层各个机器 1 2 中山大学硕士学位论文 请求加入m a n a g e r 队列成为a g e n t 的请求。对下层节点虚拟机的加入请求,m a n a g e r 将 该节点加入到其管理链表中成为a g e n t 并返回加入结构,使节点成为活动可控的a g e n t ; 对d a e m o n 发送过来的应用调用请求,m a n a g e r 接收后,对其所维护的a g e n t s 链表里的 每个a g e n t 发送轮询消息p o l l ,然后等待所有a g e n t 的返回,所有收到p o l l 消息的 a g e n t 通过获取其所在的节点虚拟机的空闲c p u 的百分比、当前任务队列中的任务总数、 当前活动的任务数,然后将这三个参数根据特定的权值计算出一个负载值以 p o l lb a c k 的消息形式发送给m a n a g e r ,m a n a g e r 从所有a g e n t 的负载值中挑选出负 载值最小的节点,将其地址记录并返回给d a e m o n ,d a e m o n 将其记录到对应的c l i e n t 信息中,同时m a n a g e r 向该最小负载的a g e n t 发送运行应用指令,至此第三阶段完成。 第四阶段负责应用推送的具体实现,a g e n t 接收到运行应用指令,启动一个进程运行该 应用,同时通过a g e n t s 中的绘图请求获取引擎获得运行应用的同步界面信息,发送给 c l i e n t 去解释执行,对c l i e n t 回传的输入事件提交到运行的应用实例所对应的事件队列 并继续等待界面更新信息,如此直至应用执行完毕或者客户端的退出,最后d a e m o n 关 闭该c l i e n t 通信套接字。至此,整个模型的应用场景基本完成。 对于应用服务响应部分,作为本模型的一个基础框架,以下将不再详述,本文将对 模型中的核心部分一应用服务推送进行详细论述。根据应用服务推送模型中应用推送 部分的层次划分及其功能需求,我们面临三个问题。第一,如何获取到不同平台应用服 务的界面信息;第二,如何对应用服务的界面信息进行高效地传输:第三,客户端对接 收到的应用服务界面信息如何解析才能快速地显示,如何对本地的输入信息进行快速地 响应。对于不同平台的应用服务界面信息,需要先分析应用服务所在平台的应用界面显 示原理才能通过有效手段获取到这些信息。对于高效传输应用界面信息,可以通过r d p 协议对这些界面信息进行更大粒度的包装、压缩后传输。至于客户端对接收的界面信息 的解析,可根据界面元素属性调用客户端系统a p i 结合客户端的窗口管理器来完成;而 对于本地输入消息的获取和响应,可以利用客户端系统a p i 或h o o k 机制获取并借助 r d p 协议回传给应用服务提供平台进行执行并将后续界面更新返回并返回给客户端。 2 3 1 应用服务界面信息获取描述 获取不同平台应用服务的界面信息,可以根据应用程序的开发和执行过程,从不同 层次上去获取,如:应用程序级、操作系统级、硬件设备层等。不管是命令行界面还是 图形界面,它的开发创建的原理和执行过程大致如图2 - 4 。 基于r d p 的应用服务推送模型 应用层 系统层 指令层 物理层 图2 - 4 应用服务界面执行层次图 带界面的应用服务,通过支持界面绘制的程序语言来开发。在程序语言中,通过调 用系统平台a p i ( 封装绘图a p i 以库的形式提供的用户图形接口,这些a p i 中包含最初 始的绘图请求和绘图参数等信息) 来实现;最终应用服务通过编译、链接,产生二进制 码或可执行文件并进行发布。另外,系统a p i 是实现了指令集( i s a ) 的系统接口,它通 过某一类中断( 如i n t l 0 中断) 进入设备驱动程序,将指令所管理的部分寄存器、存储器信 息经设备驱动程序处理,对显示卡缓存进行数据填充,显示卡缓存可以看作是与屏幕上 像素分布一一对应的二维矩阵,其中的每一个元素对应屏幕的某个像素点。最后,显示 处理器读取显示卡缓存中的数据信息并查找彩色表地址获得颜色信息( r g b 值) ,经过信 号转换后最后在显示器上显示出来。 根据界面执行和绘制过程,理论上可以获得不同层次和阶段的绘图信息,只是获取 的方式、代价、效率各不相同。在应用层,通过高层绘图库一方面隐藏绘图底层细节同 时保留绘图请求信息,另一方面提供功能强大的绘图接口供应用服务开发人员使用。应 用层对显示系统的整体特性进行抽象表示,这些特性包括:绘图操作的描述、绘图资源 的管理、系统显示性能等。因此,通过对高层绘图库的扩展,引入绘图中断重定向技术 ( 如j a v a 中的r d a ) ;或者引入对绘图统一描述代理技术的支持,如h t m l 和基于m x m l 语言的富客户端技术r i a s t l 6 1 。这样,在应用层可直接获得上层绘图信息并将其通过网 1 4 中山大学硕士学位论文 络传输到其他平台进行解释后重绘。不过这要求终端客户端具备一定的计算能力和应用 逻辑库( 如基本绘图库) ,同时这也容易引起远端应用服务与本地应用的同步问题。 系统中间层,作为对显示设备的一个设备无关的抽象层,它通过图形引擎与绘图设 备驱动进行交互,通过提供退回机制和软件例程来抽象硬件特性,并将绘图操作传输给 硬件驱动层。它有套完整的绘图系统和运行机制,如x f r e e 8 6 。在中间层获取绘图信 息,需要对整个绘图系统进行干扰、或者重新修改整个绘图系统。 在指令层,可以通过操作系统提供的底层接口( 系统调用) 来获取显示卡缓存中的屏 幕像素信息。由于这些信息是对屏幕像素的直接描述,所以具有很好的平台无关性。对 所有支持f r a m e b u f f e r 的终端,可广泛使用这种方式。然而,操作这些信息要陷入内核态, 系通开销比较大,另外网络传输数据量也相对较大,而且它只能对整个屏幕进行描述, 在粒度上很难进行优化。 通过分析不同平台的g u i 解决方梨r 7 】【埽】,根据获取的效率和代价不同,在系统中 间层截获绘图信息是一个有效地绘图信息获取手段。对于l i n u x 等系统,其g d i 解决方 案采用x w i n d o w i l 9 】,对于构建在x w i n d o w 上的应用程序都是客户端,它们不能直接 创建任何有关显示的东西,而是通过向服务端( 一个和底层绘图硬件通信的实际绘图实 体) 发送绘图请求数据然后进行具体的绘制。因此,可以获取到这些绘图请求数据就相 当于获得了绘图的所有信息,而后续的绘图工作,可以让其它任何终端的平台去完成。 在x w i n d o w 系统中,所有应用程序都将通过x 基础库【2 0 j 形成绘图r e q u e s t ,然后通 过网络或其他方式交给x 服务器端处理,而用户的所有输入都通过x 服务器端感知、 包装成e v e n t 交给具体某个应用程序处理。具体的x w i n d o w 架构如图2 5 : 基于r d p 的应用服务推送模型 图2 - 5xw i n d o w 系统架构图 对于以动态链接库封装和分层形式提供g u i 解决方案的平台,如大家熟知的 w i n d o w sg d l 3 2 d l l ,它对内核态g d i 提供系统调用的封装,通过图形引擎与显示设备 驱动的交互,加上窗口管理系统的协助来完成实际绘图工作。要想获得w i n d o w s 应用 中的高层绘图信息( 而不是设备上下文那样经过抽象的底层绘图数据) ,可以开发一个类 似于窗口管理器的绘图对象管理器,该管理器对应用界面中的绘图对象( 如按钮、菜单、 文本输入、图形等控件) 进行管理和维护,每当w i n d o w s 应用程序请求创建绘图对象时, 绘图对象管理器感知绘图请求并记录绘图对象信息( 类型、位置、所属窗口等属性) 。通 过它与窗口管理器的协作就可以在上层得到全部的绘图信息。在类似于w i n d o w s 操作 系统的具有对象管理功能的绘图体系结构如图2 - 6 : 1 6 中山大学硕士学位论文 图2 - 6 具有绘图对象管理功能的w i n d o w s 图形界面系统模型 本文的应用服务推送模型中,由于服务提供平台系统统一采用x w i n d o w ,我们需 要详细分析x w i n d o w 的绘图机制以及负责实际绘图的x s e r v e r 的原理,导出一套图形 对象描述结构,提供一种合适而有效的绘图信息描述和获取方法。 2 3 2 应用服务推送协议及其接口设计 在己成功获得应用服务界面信息的前提下,为实时传输它们,协议应当具备高效、 可靠、安全、可扩展等特性。这里以趋于成熟的r d p 协议模型f 2 l j 为参考,对应用服务推 送协议的各项要求及相应得解决方案进行简单说明。 在效率上,为了达到远程应用具有近似本地应用的反应速度和使用效果,协议提供 绘图命令和绘图元素统一的协议格式;另外,为了提供可定制的应用风格和应用粒度, 协议支持传输底层绘图信息,如:显卡缓存数据或驱动的绘图原语甚至可执行程序的比 特流等。在网络传输效率上,网络数据特别是虚键消息等输入数据统一使用t c p 无缓 冲传输,增强了用户体验。为进一步提高效率,协议需要提供多种压缩器,如基于流的 压缩、基于块的压缩、基于字符的压缩、基于位的压缩等。为充分利用终端资源,协议 需要有选择地提供终端缓存、持久化存储等机制来进一步

温馨提示

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

评论

0/150

提交评论