(计算机系统结构专业论文)高性能远程控制系统的研究与开发.pdf_第1页
(计算机系统结构专业论文)高性能远程控制系统的研究与开发.pdf_第2页
(计算机系统结构专业论文)高性能远程控制系统的研究与开发.pdf_第3页
(计算机系统结构专业论文)高性能远程控制系统的研究与开发.pdf_第4页
(计算机系统结构专业论文)高性能远程控制系统的研究与开发.pdf_第5页
已阅读5页,还剩82页未读 继续免费阅读

(计算机系统结构专业论文)高性能远程控制系统的研究与开发.pdf.pdf 免费下载

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

文档简介

摘要 摘要 高性能远程控制系统( r e m o t ec o n t r o ls y s t e m ,r c s ) 是信息产业部电子发展 基金所赞助的项目。随着i n t e m e t 与软件业的迅猛发展,软件使用维护上的复杂度 和一些特殊领域( 如网吧和政府机关等) 对于远程桌面监控的迫切要求,都在刺 激和推动着远程控制系统的研究与开发。然而目前在远程控制软件领域内国外软 件还处于主导地位,因此开发具有自主知识产权的高性能远程控制系统将为我国 的信息化进程提供坚实的保证,具有重大的社会意义和市场价值。 高性能远程控制系统为多人合作开发完成,本论文将重点论述作者所做的工 作。主要包括两个方面:第一,设计和实现用于将模板语言转化为h t m l 语言的 小型高效模板引擎;第二,设计和实现高性能的通信服务器。模板引擎的设计中, 首先分析了设计的必要性,研究了编译原理和编译器结构,介绍了编译器设计的 过程和自动化工具。然后重点提出了模板引擎设计中使用的关键技术:包括词法 器、语法器和解释器的设计方法,c a c h e 机制和纠错机制等几个方面。高性能服 务器的设计中,首先研究了高性能服务器的几种网络i o 机制,指出若采用基于传 统的网络i o 模型来提供高并发连接服务并且在并发客户数量超过服务器最大支 持数时,会出现服务器负载达到饱和或服务器崩溃而网络带宽并没有得到充分利 用的现象,得出单进程事件驱动( s i n g l ep r o c e s se v e n td r i v e n - - s p e d ) + e p o l l ( e v e n tp o l l ) 的结构适合用于实现高性能的通信服务器,同时分析并给出了单进 程并发服务器中关键的网络i 0 实现技术。此外,给出了高性能远程控制系统的通 信协议和系统安全机制,阐述了设计和实现基于单进程事件驱动的通信服务器的 过程,分析了服务器几个主要模块。设计中采用了立即转发和完整转发两种转发 模式,以及动态调整发送缓冲区水线的发送模式。 论文的最后是测试与结果分析部分。通过对模板引擎和同类产品的功能和性 能测试,得出模板引擎的适用范围,并证明模板引擎具有较高的性能。通过对通 信服务器的功能和性能测试,表明服务器达到了设计目标并具有较高的性能。 关键词:模板引擎,f l e x ,b i s o n ,e p o l l ,s p e d a b s t r a e t a b s t r a c t t h ep r o j e c t ,“h i 曲一p e r f o r m a n c er e m o t ec o n t r o ls y s t e m ( r c s ) ”,i ss u p p o r t e db y e l e c t r o n i c d e v e l o p m e n t f u n do fi n f o r m a t i o n i n d u s t r ym i n i s t r y a s t h e r a p i d d e v e l o p m e n to fi n t e m e ta n ds o f t w a r ei n d u s t r y , t h er e s e a r c ha n dd e v e l o p m e n to fr e m o t e c o n t r o ls y s t e mi sm o t i v a t e db yv a r i o u sr e q u i r e m e n t s ,s u c ha s ,t h ec o m p l e x i t yo ft h e o p e r a t i o na n dm a i n t a i n a n c eo fs o f t w a r e ,t h en e e do fr e m o t ed e s k t o pm o n i t o r i n gi n s p e c i f i ca r e a s ,e t c h o w e v e r , t h ef o r e i g ns o t t w a r ea r e t h eo n t h ed o m i n a t i n gp o s i t i o ni n t h er e m o t ec o n t r o lf i e l d i ti sn o to n i yt h e o r e t i c a l l ys i g n i f i c a n tb u ts o c i a l l ym e a n i n g f u l t or e s e a r c ha n dd e v e l o p et h er e m o t ec o n t r o ls o f t w a r eo f o u ro w nc o u n t r y t h ep r o j e c ti sc o m p l e t e db yag r o u p ,a n dt h i sd i s s e r t a t i o nw i l lp u te m p h a s i so nm y c o n t r i b u t i o nt ot h ep r o j e c t i ti n c l u d e st w oc o m p o n e n t s :t h em i n o re f f i c i e n tt e m p l a t e e n g i n ea n dt h eh i g h - p e r f o r m a n c ec o m m u n i c a t i o ns e r v e r i nt h ef i r s tc o m p o n e n t ,t h e n e c e s s i t yi sp r e s e n t e da tt h eb e g i n n i n g ,t h e nt h ec o m p i l i n gp r i n c i p l ea n dc o m p i l e r d e s i g n p r o c e s sa r er e s e a r c h e d ,a f t e rt h a t , a u t o m a t i ct o o l sf o rc o m p i l e rd e s i g na r e i n t r o d u c e d ;b e s i d e s ,t h ek e yt e c h n o l o g i e si nt h ed e s i g n s ,s u c ha ss c a n n e r , p a r s e r , i n t e r p r e t e r , c a c h e m e c h a n i s ma n de r r o r - c o r r e c t i o nm e c h a n i s ma r ep r e s e n t e di nd e t a i l i nt h es e c o n dc o m p o n e n t , t h es e v e r a lt r a d i t i o n a li 0m e c h a n i s m sa r er e s e a r c h e df i r s t l y , a n dt h ep r o b l e mi sr e v e a l e dt h a ti fa p p l y i n gt h et r a d i t i o n a ln e t w o r ki om o d e l 、i t i lt h e h i 曲c o n c u r r e n c en e t w o r kc o n n e c t i o n s ,t h e s e r v e rm a yc r a s hh o w e v e rt h en e t w o r k b r a n d w i t hm a yn o tf u l l yb eu t i l i z e d ,f i g u r i n go u tt h em o d e lw h i c he m p l o y ss i n g l e p r o c e s se v e n td r i v e np l u se p o l lw i l lm e e t t h er e q u i r e m e n to fi m p l e m e n t i n gt h eh i g h p e r f o r m a n c ec o m m u n i c a t i o ns e r v e rb e s t f u r t h e r m o r e ,t h ec o m m u n i c a t i o np r o t o c o la n d s y s t e ms e c u r i t ym e c h a n i s ma r ep r e s e n t e d ,t h ed e s i g na n di m p l e m e n t a t i o no fs p e d c o m m u n i c a t i o ns e r v e ra r ed e s c r i b e d ,a n ds o m em o d u l e so ft h es e r v e ra r ea n a l y s e da s w e l l b e s i d e s ,k e yt e c h n o l o g i e s ,s u c ha s ,t w of o r w a r d i n gm o d e so fp a r t i a lp a c k e ta n d e n t i r ep a c k e tf o r w a r d i n g ,a n dt h ed y n a m i cw a t e rl e v e lo fs e n d i n gb u f f e r , a r ep r e s e n t e d a tt h ee n d ,t h et w oc o m p o n e n t sa r et e s t e db o t hi nf u n c t i o na n dp e r f o r m a n c e t h e t e s tr e s u l t sa r ea n a l y s e da n dt h e yp r o v et h eh i 曲p e r f o r m a n c eo f t h es o f t w a r e k e yw o r d s :t e m p l a t ee n g i n e ,f l e x ,b i s o n ,e p o l l ,s p e d i i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均己在论文中作了明 确的说明并表示谢意。 签名:堡日期:2 _ o o d 年f 月弘日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:刻玺导师签 日期:a o 。年1 月4 日 迎 智 第一章引言 1 1 课题背景和意义 第一章引言 随着i n t e m e t 的普及和发展,网络及软件已成为信息传递的主要工具之一。无 论在商业活动、政府办公还是在日常生活中,甚至在军事领域,网络和软件都发 挥着重要的作用。但是,一些问题也由此而生。 首先是软件使用和维护的复杂度。由于软件的使用人员并不定都具有某种 软件的使用能力,而且在用户量较大的情况下,软件公司疲于应付自己软件产品 的售后服务,所以如果有某种先进的支持平台能远程提供这种服务,那将极大的 节省时间和财力。其次远程监控的需求。在一些企事业单位、政府机关和网吧, 希望对内部被使用的电脑进行实时监控,如希望阻止电脑用户使用非法的软件( 如 网上聊天软件) 和访问非法的站点( 如包含色情暴力内容的站点) ,希望能对被控 机进行资产管理( 如检查c d r o m 是否被盗或更换) 。 这样的需求刺激和推动着远程桌面控制技术的发展和成熟。目前,远程桌面 控制已经是当前信息技术领域的热点。 国内外现有的远程控制软件已经在不同程度上实现了以下功能:可以通过远 程控制技术管理远端电脑,解决远端电脑的故障,与其他同事通过网络实现远程 协作,在家里或旅途中使用公司内部网络的数据与办公设备,实现远程办公。此 外,可以实现远程教学,或者与多位远程连接用户进行多点会话。当前流行的远 程控制工具软件,高端产品有国外的n e t o pr e m o t ec o n t r o l ,该软件功能非常强大, 而且可以跨平台,几乎具备了其他同类产品的所有功能,但是价格也很昂贵;性 能比较稳定且经常被使用的如s y m a n t e cp c a n y w h e r e ,n e t m e e t i n g 和w i n d o w sx p 的远程桌面控制,但是在图像压缩算法上还有待改进,而且即便在局域网表现良 好,可是面对广域网就显得无能为力了:不仅支持浏览器控制,而且支持p d a 与 手机控制的r e m o t e l y a n y w h e r e ,提供了十分强大的远程控制功能,但是对电脑的 硬件需求也相对较高,而且其复杂的功能设置也不适合那些不具备专业电脑知识 的用户使用。还有些免费的软件,如u i 廿 v n c ,连接快速,值得一提的是它采 用了灵巧的网络技术,和我们的产品不谋而合,但是安全性能比较差,不适合在 工作或其他比较重要的场合使用。其他诸如适合初学者使用的r e m o t e a d m i n i s t r a t o r 和功能简单的r e a l v n c ,不论从软件的功能还是从安全性来说,都 电子科技大学硕士学位论文 和前面介绍的那些软件有一定差距。 可以看到,目前流行的远程控制软件都是国外软件,国内目前还没有出现有 竞争力的同类产品。所以开发具有自主知识产权的高性能远程控制系统将为我国 的信息化进程提供坚实的保证,具有重大的社会意义和市场价值。经过市场调研, 我们了解到不论是政府机关,还是企事业单位,对高效、安全和经济的远程控制 软件的需求量是很迫切的。因此,对高性能远程控制系统的研究与开发是很有意 义的。 1 2 项目目标 本课题研发的“高性能远程控制系统”由信息产业部“电子发展基金”支持, 其中包含的系统通信平台、高性能动态图形压缩算法、中心服务器、通信服务器 和客户端程序几个部分分别为该项目下的予课题。 因为项目为多人合作完成,我将重点介绍我在项目中所做的工作。 第一,设计一个模板引擎实现t e m p l a t e t o o l k i t 模板语言到h t m l 语言的转化。 系统的中心服务器上的网页开发是使用t e m p l a t et o o l k i t 模板完成的,需要 a p a c h e 中的p e r l 解释器将其解释为h t m l 语言用于显示。然而为了提高服务 器的性能采用单线程架构后,p e r l 模块并没有集成到服务器中,因而需要开发一 个模板引擎实现p e r l 解释器的翻译功能。此外,模板引擎可以方便对p e r l 语言 不太熟悉的c + + 开发人员对p e r l t e m p l a t et o o l k i t 模板系统的使用,因为 模板引擎可以让开发人员使用c + + 而非p e r l 语言写的程序来调用模板系统。 第二,通信服务器( c o m m s v r ) 的设计,即设计一种通信模式取代传统的点 对点远程控制方法。因为我们要提供广域网上的远程控制服务,而广域网上不同 于局域网,控制方和被控制方不一定知道对方的i p 地址,比如:有的计算机采用 拨号上网的方式,或d h c p 协议动态分配地址;而有的计算机是通过s q u i d 这样 的代理服务器连接到因特网的,根本没有可以连接的外部i p 地址。而且随着计算 机安全问题的日益突出,防火墙和其它的入侵检测技术限制了直接访闯用户计算 机的可能。即使用户自己的计算机没有安装防火墙软件,很可能用户所在局域网 已限制可使用的端口,并且不允许外部主动发起的连接。因此,需要设计一种新 的通信模式。 2 第一章引言 1 3 章节内容安排 后续章节内容安排如下: 第二章是系统整体架构分析。从宏观上介绍系统的各个组成部分的功能。 第三章是模板引擎的设计与实现。主要介绍由我设计实现的中心服务器b r o k e r 的核心模块模板引擎。 第四章是c o m m s v r 的设计与实现。主要介绍用来取代点对点远程控制方法的 通信服务器c o m m s v r 的设计与实现。 第五章是测试与结果分析。分别对前述工作进行功能和性能方面的测试,并 对结果进行分析。 第六章结论。总结论文的意义、目的和工作内容。 正文后是致谢、参考文献和作者在学期间的研究成果。 妻王型垫垄堂堡圭堂垡堡壅 2 1 组成及功能 2 1 1 系统组成 第二章系统整体架构分析 如图2 - 1 所示,系统由三大部分组成:中心服务器( b r o k e r ) 、通信服务器 ( c o m m s v r ) 和客户端( 包括被控端h o s t 和监控端v i e w e r ) 。约定:h o s t 指安装 了h o s t 客户端软件的计算机或者就是指h o s t 客户端软件;同理v i e w e r 指安装了 v i e w e r 客户端软件的计算机或者就是指v i e w e r 客户端软件。 图2 - 1 系统组成图 系统大致工作原理是: 中心服务器b r o k e r 作为系统的核心负责存储被控端h o s t 的系统信息,对h o s t 进行分组,提供基于b r o w s e r 的界面供管理员使用帐户管理、进程管理、网络地址 管理和远程桌面管理,提供基于b r o w s e r 的界面v i e w e r f h o s t 计算机的操作者下载 安装客户端程序,跟踪被管理计算机的状态并及时地更新这些计算机上的与系统 有关的配鼍信息。 h o s t 首先在b r o k e r 上进行注册,并定期向b r o k e r 汇报自身的运行情况和在线 h o s t 首先在b r o k e r 上进行注册,并定期向b r o k e r 汇报自身的运行情况和在线 4 电子科技大学硕士学位论文 2 1 组成及功能 2 1 1 系统组成 第二章系统整体架构分析 如图2 - l 所示,系统由三大部分组成:中心服务器( b r o k e r ) 、通信服务器 ( c o m m s v r ) 和客户端( 包括被控端h o s t 和监控端v i e w e r ) 。约定:h o s t 指安装 了h o s t 客户端软件的计算机或者就是指h o s t 客户端软件;同理,v i e w e r 指安装了 v i e w e r 客户端软件的计算机或者就是指v i e w e r 客户端软件。 图2 - 1 系统组成图 系统大致工作原理是: 中心服务器b r o k e r 作为系统的核心负责存储被控端h o s t 的系统信息,对h o s t 进行分组,提供基于b r o w s e r 的界面供管理员使用帐户管理、进程管理、网络地址 管理和远程桌面管理,提供基于b r o w s e r 的界面v i e w e r h o s t 计算机的操作者下载 安装客户端程序,跟踪被管理计算机的状态并及时地更新这些计算机上的与系统 有关的配置信息。 h o s t 首先在b r o k e r 上进行注册,并定期向b r o k e r 汇报自身的运行情况和在线 4 第二章系统整体架构分析 状态等信息。v i e w e r 登陆到b r o k e r 上查看h o s t 的状态,或者对h o s t 进行远程桌 面管理、进程管理和网络地址管理等管理任务。 h o s t 和v i e w e r 没有直接进行数据交换,因为通信结点可能处于防火墙或者 n a t 之后,直接通信很可能会受到阻碍,因此想到设计通信服务器c o m m s v r 进行 中转服务。h o s t 和v i e w e r 通过与b r o k e r 的交互认证了对方的身份并且获取b r o k e r 为本次会话( s e s s i o n ) 所分配的提供中转服务的通信服务器c o m m s v r 的地址,然 后都连接到c o m m s v r 进行数据中转,这样就可以畅通无阻地进行通信了。c o m m s v r 根据实际情况可能有多个,b r o k e r 将根据c o m m s v r 的负载等指标为客户端选择最 合适的c o m m s v r 进行通信中继。 下一节将简略介绍高性能远程控制系统主要模块的功能和作用。 2 1 2 功能描述 2 1 2 1b r o k e r 功能描述 b r o k e r 是整个系统的指挥中心。图2 2 为b r o k e r 的主界面。 饶穗曩蕊安金 躅2 - 2b r o k e r 的主界面 b r o k e r 的主要功能包括: 存储各类系统信息。如管理员帐户信息、被管理计算机的软硬件配置信息、 被管理计算机的进程黑白名单和被管理计算机的网络地址黑白名单等。 对被管理计算机进行分组。这样做的好处是可以对同一个组内的计算机应用 相同的规则,便于统一管理。 提供基于b r o w s e r 的界面供管理员使用帐户管理、进程管理、网络地址管理和 5 电子科技大学硕士学位论文 远程桌面管理等具体功能。图2 3 所示为帐户管理中管理员修改口令的界面。图 2 4 所示为计算机管理界面。 祆捷翁爝安全 图2 - 3 管理员修改口令 块捷茹穗安全 图2 - 4 计算机管理界面 提供基于b r o w s e r 的界面v i e w e r h o s t 计算机的操作者下载安装客户端程序, 如图2 5 所示。 6 第二章系统整体架构分析 抉捷嚣国安全 图2 - 5v i e w e r h o s t 的操作者下载安装客户端程序 如果因为各种原因,自动安装页面的a p p l e t 没能正常启动,页面中内嵌的 j a v a s c r i p t 代码会自动转向到客户程序手工安装场景,或者用户可以点“这里”连 接手工转向到手工安装场景,如图2 - 6 所示。 快捷易踊安全 图2 - 6 操作者手动安装客户端程序 跟踪被管理计算机的状态,并及时地更新这些计算机上的和系统有关的配置 信息,比如进程黑8 名单或网络地址黑白名单。 b r o k e r 是由c + + 编写的一个基于事件驱动模式的单线程程序。它由一组核心 功能模块和各种应用服务所构成。如图2 7 所示。 7 电子科技大学硕士学位论文 图2 - 7b r o k e r 模块结构图 1 核心功能模块: 为了使得服务的实现更容易,b r o k e r 本身实现了一系列的核心功能模块,如 图2 7 中非阴影部分所示。 ( 1 ) d b x m l 模块:主要功能是为各个服务所需要的数据提供一个基于主存 ( 也会在适当时机保存到磁盘上) 的x m l 数据库。d b x m l 是基于b e r k e l e y d b x m l 来实现的。 ( 2 ) 模板引擎模块:主要功能是编译和解释使用模版语言( t e m p l a t et o o l k i t 中定义语言的一个子集) 编写的网页。第三章中将具体阐述其设计思想和方法。 ( 3 ) 事件分发驱动模块:驱动整个程序的运行的模块。它是基于a c e t lj 开发 的,a c e ( a d a p t i v e c o m m u n i c a t i o n e n v i r o n m e n t ) 是一个开源的专门用于开发网络 通信程序的程序框架库。b r o k e r 的底层网络通信直接建立在a c e 的代码基础上, 并主要使用了它提供的r e a c t o r 设计模式。 2 各种应用服务: 构建与核心功能模块之上的各种应用服务: ( 1 ) h t t p 服务:主要功能是响应不含动态内容的h t t p 请求,比如回送客 户一个静态的网页或一个g i f 图片等。为性能考虑,h t t p 服务在初始化时,应该 把b r o k e r 上的所有静态内容全部装载到内存中。 ( 2 ) 资产管理服务:主要功能是处理与资产管理有关的h 1 _ r p 请求,包括来 自v i e w e r 的b r o w s e r 的h r r p 请求和来自h o s t 的e n d p o i n t a p p l i c a t i o n 的 r r t p 请 求。h o s t 上的e n d p o i n ta p p l i c a t i o n 会周期性地收集自己所在计算机的软硬件配置 信息,然后编码在h r r p 请求中送给b r o k e r 。资产管理服务会把这些数据保存在 b r o k e r 的d b x m l 中。收到来自v i e w e r 的b r o w s e r 的哪请求后,资产管理服 8 第二章系统整体架构分析 务从d b x m l 中读取数据,然后生成相应网页返回给b r o w s e r 。 ( 3 ) 系统管理员帐号服务:主要功能是处理来自v i e w e r 的b r o w s e r 的与管理 员帐号管理有关的h t t p 请求。它根据这些请求的内容,或查询修改d b x m l , 或生成并回送相关网页。除了这些对“外”的服务外,该模块还向b r o k e r 的其它 模块提供管理员帐号,权限认证服务。 ( 4 ) 进程管理服务:主要功能有二,一是允许管理员通过b r o w s e r 存取系统 ( 或菜计算机) 的进程黑名单( 即禁止h o s t 运行的进程) ,二是把最新的黑名单反 馈给h o s t 。 ( 5 ) 网络地址管理服务:主要功能有二,一是允许管理员通过b r o w s e r 存取 系统( 或某计算机) 的网络地址黑名单,二是把最新的黑名单反馈给h o s t 。 2 1 2 2c o m m s v r 功能描述 c o m m s v r 的功能简述如下: ( 1 ) c o m m s v r 可提供即时通讯中继服务,利用h t t p 的扩展协议,使得客户 可以通过8 0 端口( h r r p 常用端口) 登录服务器并与同一会话中的连接进行通信, 而不会受通信端口和专用协议的限制,在登录成功后会话双方按照协议( 详见4 4 节) 进行数据通信; ( 2 ) 接收并验证客户的连接请求,为一对网络连接创建通信会话,在属于同 一会话的两条连接之间相互转发数据,同时维护每个通信会话以及每个网络连接 的状态; ( 3 ) 由于会话中一对连接的带宽可能差异较大,需要提供流量控制( 应用层) ; ( 4 ) 记录并定时刷新当前服务器负载,为b r o k e r 提供选路资源信息; ( 5 ) 负责当会话结束时注销会话并释放相应的系统资源。为支持高并发网络 连接采用s p e d + e p o l l 的网络i ,o 方式。 详细功能及设计实现请见第四章。 2 1 2 3 客户端功能描述 客户端框架为客户端应用程序以静态库( s t a t i cl i b r a r y ) 的形式提供了基础的 框架功能。为了实现客户端的功能模块的可定制、易扩展和易于再次开发,各个 功能模块以插件的形式提供,客户端框架主要完成以下功能: ( 1 ) 管理己注册的插件,根据插件的类型创建插件的实例; ( 2 ) 管理会话和会话的视图,会话是广泛意义上的和对方的连接: 9 电子科技大学硕士学位论文 ( 3 ) 在会话上启动或停止插件; ( 4 ) 提供异步删除对象的机制: ( 5 ) 提供将代码同步到框架线程中执行的机制; ( 6 ) 提供在会话内部和会话外部的消息通知机制。 客户端框架的应用范围: 基于客户端框架提供的功能,对于需要有会话并且具体功能是工作在会话上 的客户端程序,可以使用框架来完成主程序,配合功能插件来完成工作。 客户端应用程序分为两个部分:一个部分运行在h o s t 上,另外一部分运行在 v i e w e r 上。 ( 1 ) 运行在h o s t 上的程序没有g u i 界面,由框架代码和功能插件组成,框 架代码在主线程中被使用,功能插件可以拥有自己的线程。h o s t 上程序的主要功 能有: ( a ) 主机注册( 根据h o s t 的特征,生成一个i d ,将主机i d 和主机名称送到 b r o k e r 进行注册) : ( b ) 定期向b r o k e r 发送p i n g 命令( 通知b r o k e r ,当前主机还在线,同时从 主机获取一些信息) ; ( c ) 和v i e w e r 的电脑建立逻辑上的连接; ( d ) 屏幕截取并且发送数据或鼠标键盘事件回放: ( e ) 进程控制( 获取黑名单,禁止在名单上的进程的启动) ; ( f ) 网络地址控制( 获取需要禁止的口地址和端口列表,实现禁止的功能) ; ( g ) 资产管理( 获取h o s t 本机的信息,将信息送到b r o k e r 上) 。 ( 2 ) 运行在v i e w e r 上的程序,由框架代码和功能插件组成,框架代码在主线 程中被使用,功能插件可以拥有自己的线程。v i e w e r 上的程序的主要功能有: ( a ) 和h o s t 建立逻辑上的连接; ( b ) 显示并且控制远程桌面。 2 2 主要工作 r c s 系统研发过程耗时大约一年半,由多人合作完成。我的主要工作是 ( 1 ) b r o k e r 中核心功能模块模块引擎的设计与开发。详见第三章。 ( 2 ) 通信服务器c o m m s v r 的设计与开发。详见第四章。 其它部分为他人完成,本论文中不详述。 1 0 第三章模板引擎的设计与实现 第三章模板引擎的设计与实现 3 1 模板引擎在b r o k e r 中的作用 图2 7 中b r o k e r 模块结构图中已经表示出b r o k e r 核心功能模块与各种应用服 务。为了更好的描述b r o k e r 中对模板引擎的调用关系,图3 1 将列出更为细化的 b r o k e r 的模块结构图。 图3 - 1 细化的b r o k e r 模块结构图 用户服务层的模块只需要和基础设施层的d b x m l 或模板引擎模块打交道。 比如,基础设施模块收到一个来自管理员b r o w s e r 的与帐户管理有关的h t t p 请求 后,会把这个请求整理封装后传送给管理员帐户管理模块。该模块通过调用 d b x m l 模块提供的方法来存取管理员帐户信息,然后再调用模板引擎模块格式化 显示请求处理结果的网页。最后,它把格式化好的网页送交给基础设施层的s e n d e r 模块,由其通过网络传送给用户。 3 1 1b r o k e r 的主要设计模式 b r o k e r 所采用的主要设计模式来自a c e 1 1 和c l i c k t 2 l 。 3 1 1 1a c e 的r e a c t o r 模式 b r o k e r 是一个单线程的基于事件驱动工作模式的网络应用程序。在这里,事 件主要指网络事件( 比如有来自客户的新的t c p 连接、某t c p 连接上有新的数据 可读、某t c p 连接上有了空出来的系统缓存可供新的数据输出、某t c p 连接被用 1 1 电子科技大学硕士学位论文 户正常关闭或某t c p 连接异常中断等) 和b r o k e r 设定的时钟事件( 比如远程桌面 服务模块收到某方的请求后,会设置一个时钟,如果在时钟到期时,服务的另一 方还没准各好,那么这次服务就会被取消) 。 在r e a c t o r 模式中,a c e 提供了基础代码来收集分发各类事件,这是系统运行 的唯一驱动力。各个功能模块可以注册自己感兴趣的事件。下面举例说明; ( 1 ) a c c e p t o r 注册了侦听套接字上的“连接到来”事件,当有新的客户连接 到来时,a c er e a c t o r 就会调用a c c e p t o r 的h a n d l e 方法,在这个方法里,_input0 a c c e p t o r 会调用s o c k e t 的a c c e p t 函数去获取这个新的客户连接; ( 2 ) d i s p a t c h e r 在多个代表客户t c p 连接的套接字上注册了“有新数据到” 事件,当任何一个套接字上有新数据到来时,a c er e a c t o r 就会调用d i s p a t c h e r 的 h a n d l ei n p u t 0 方法,在这个方法里,d i s p a t c h e r 会从有新数据到来的套接字上把新 数据读进来; ( 3 ) d i s p a t c h e r 还会周期性的注册时钟事件,当时钟到期时,a c er e a c t o r 会调用d i s p a t c h e r 的h a n d l et i m e r o 方法,在这个方法里,d i s p a t c h e r 会检查有哪些 套按字已经停留了很长时间但客户却还没有送过来一个完整的h 下r p 请求,这样 它可以清除那些行动过于迟缓的客户; ( 4 ) s e n d e r 会在一些套接字上注册“可以发送更多数据”事件,当某套接字 可以发送更多数据时,a c er e a c t o r 会调用s e n d e r 的h a n d l eo u t p u t ( ) 方法,在这个 方法里,s e n d e r 会把和这个套接字相关联的数据写一部分( 或者全部) 到网络上 去。 在程序的整个运行过程中,每个功能模块并没有自己独立的线程。它们只相 当于提供了若干函数,供系统中唯一的线程即驱动r e a c t o r 的那个线程在需要的时 候调用。所以,每个功能模块不需要考虑并发同步互斥的问题,这简化了功能模 块的开发。 3 1 。1 2 从c l i c k 中借鉴的设计模式 b r o k e r 从c l i c k 中借鉴的思想是:每个功能模块都是一个e l e m e n t 。系统的主 要功能模块,不论是属于网络基础设施的a c c e p t o r 、d i s p a t c h e r 或s e n d e r ,还是属 于用户服务层的h 1 v r p 服务、管理员帐号管理服务或进程管理服务等,都是一个 e l e m e n t 。一个e l e m e n t 就是一个c l a s s ,并且是从虚基类c e l e m e n t 继承而来的。 c e l e m e n t 定义了每个e l e m e n t 需要实现的初始化、收尾和信息查询等方法。 和c l i c k 不同的是,在c l i c k 中,每个e l e m e n t 只完成很简单的工作,比如为 1 2 第三章模板引擎的设计与实现 某个记数器加一,一个完整的系统往往是由上万个e l e m e n t 相互连接而成。而在我 们的系统中,一个e l e m e m 的粒度是比较大的。比如管理员帐号管理这个e l e m e n t , 它负责所有和帐号管理有关的处理。 另一点值得指出的是,我们并不是为每个客户的每个新的请求都产生一个新 的e l e m e n t ,而是一个e l e m e n t 处理有同类请求的所有客户。比如管理员帐号管理 的e l e m e n t 就负责处理所有与帐号管理有关的请求。而且,所有的e l e m e n t 都是在 b r o k e r 启动时就生成并一直存在。 目前基础设旌部分主要由以下几个e l e m e n t 构成: ( 1 ) c a c c e p t o r 一它负责接收新到的客户请求,并把他们转发给c d i s p a t c h e r 。 ( 2 ) c d i s p a t c h e r 一它负责从客户连接上读取一个完整的h t t p 请求,并解析 这个h t t p 请求,然后转交给相关的用户服务e l e m e n t 处理。 ( 3 ) 静态h 们限服务一它不直接和网络i o 打交道。它接收从c d i s p a t c h e r 传来的静态h t t p 请求,然后从文件系统( 或内存缓冲) 读取相应的静态网页g i f 图像,然后把数据再转交给s e n d e r 这个e l e m e n t 来处理。 ( 4 ) c s e n d e r 一负责网络的写,与c d i s p a t e h e r 是负责网络的读相对。它接收 来自其他模块的数据,然后把它们写到网络上。 需要指出的是,d b x m l 和模板弓l 擎并没有以e l e m e n t 的模式出现,它们是以 函数库类库的形式出现的。在阐述模板引擎的设计与实现前,3 1 2 节将先通过一 个例子来说明模板引擎的调用关系。 3 1 2 模板引擎应用举例 图3 2 将描述管理员通过m 更改自己口令的过程,通过这个案例可以清楚的 看出模板引擎在b r o k e r 中被调用的过程。 1 3 电子科技大学硕士学位论文 ( 6 b 一蝴儿 a7,7v 噬1 1 e l e m e n t 广逐 戛酬一j 吵生 a c er e a c t o r 图3 - 2 管理员通过i e 更改自己的口令 ( 1 ) 客户端软件( 比如蕊) 和b r o k e r 建立一条t c p 连接; ( 2 ) a c er e a c t o r 把这个事件通知给a c c e p t o r ; ( 3 ) a c c e p t o r 得到通知后取出这个连接,创建一个c i o r e q u e s t 对象,然后交 给d i s p a t c h e r 处理; ( 4 ) d i s p a t c h e r 向a c e r e a c t o r 注册“有数据可读”的事件,然后在 a c er e a c t o r 的调度下陆续把一个完整的h t t p 请求读到内存中; ( 5 ) d i s p a t c h e r 把读到的h r r p 请求送给a d m i n e l e m e n t 处理; ( 6 ) a d m i n e l e m e n t 分析请求后,修改d b x m l 中存储的管理员口令; ( 7 ) a d m i n e l e m e n t 通过模板引擎生成返回给用户的结果页面; ( 8 ) a d m i n e l e m e n t 把结果页面封装在c i o r e q u e s t 中,然后送给s e n d e r 处理: ( 9 ) s e n d e r 向a c e 注册“有数据可写”的事件,然后在_reactor a c er e a c t o r 的调度下陆续把一个完整的h r r p 响应写到网络上: ( 1 0 ) s e n d e r 释放c i o r e q u e 甜占用的全部资源。 模板引擎实质上包含一个编译器和一个解释器,涉及到编译原理的内容。下 面的一节将做这方面的背景知识陈述。 1 4 第三章模板引擎的设计与实现 3 2 编译原理 3 2 ,1 编译器结构 编译器是将一种语言翻译为另一种语言的计算机程序。编译器将源语言编写 的程序作为输入,而产生用目标语言编写的等价程序【3 】【4 】。 编译器包括了许多阶段( p h a s e ) ,它们执行不同的逻辑操作。图3 - 3 是编译器 中各阶段以及它们和三个辅助部件( 文字表、符号表和错误处理器) 之间的交互 图。 源代码 臼 曰标代 图3 - 3 编译各阶段 ( 1 ) 扫描程序( s c a n n e r ) 即词法分析器,在这个阶段编译器会实际阅读( 扫描) 源程序( 通常以字符 流的形式表示) 。扫描程序执行词法分析( l e x i c a l a n a l y s i s ) :它将字符序列收集到 】5 电子科技大学硕士学位论文 称作记号( t o k e n ) 的有意义单元中,记号同自然语言,如英语中的字词相似。因 此可以认为扫描程序执行与拼写相似的任务。 例如在下面的c 语言代码行中: a i n d e x = 4 + 2 这个代码包括了1 2 个非空字符,但只有8 个记号: a 标识符 【左括号i n d e x 标识符 右括号 = 赋值号4 数字+ 加号2 数字 每一个记号均由一个或多个字符组成,在进一步处理之前它已被收集在一个 单元中。扫描程序还可完成与识别记号一起执行的其他操作。例如,它可将标识 符输入到符号表中,将文字输入到文字表中( 文字包括诸如3 1 4 1 5 9 2 6 5 3 5 的数字 常量,以及诸如“h e l l o ,w o r t d ! ”的引用字符串) 。 ( 2 ) 语法分析程序( p a r s e r ) 语法分析程序从扫描程序中获取记号形式的源代码,并完成定义程序结构的 语法分析( s y n t a xa n a l y s i s ) ,这与自然语言中句子的语法分析类似。语法分析定 义了程序的结构元素及其关系。通常将语法分析的结果表示为分析树(

温馨提示

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

评论

0/150

提交评论