(通信与信息系统专业论文)高效网络服务框架的设计与实现.pdf_第1页
(通信与信息系统专业论文)高效网络服务框架的设计与实现.pdf_第2页
(通信与信息系统专业论文)高效网络服务框架的设计与实现.pdf_第3页
(通信与信息系统专业论文)高效网络服务框架的设计与实现.pdf_第4页
(通信与信息系统专业论文)高效网络服务框架的设计与实现.pdf_第5页
已阅读5页,还剩54页未读 继续免费阅读

(通信与信息系统专业论文)高效网络服务框架的设计与实现.pdf.pdf 免费下载

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

文档简介

高效网络服务框架的设计与实现 摘要 随着因特网在全球的迅速扩张,信息化的服务遍及人们生活的各 个领域,极大的提高了整个人类社会的信息化程度。 在网络体系结构逐渐成熟的今天,因特网的诸多问题成了人们的 研究热点。涉及网络安全的加密技术,改善干线路由的新的交换机制 等等。其中最为终端用户所能直接感受到的就是网络服务程序的有效 性和健壮性。有效性体现在用户呼叫处理及响应时间:健壮性体现在 处理并发请求能力以及容错的能力。当然,网络服务的性能就有效性 和健壮性这两点来看,影响因素很多,但其中最根本的因素还是网络 服务程序本身。 本论文研究、设计和实现网络服务框架属于软件中间件范畴。网 络服务框架的应用有助于提高网络服务程序的有效性,健壮性和可扩 展性。本论文遵循提出问题,分析问题,解决问题的三个阶段来完成。 首先针对网络服务程序开发中普遍存在的服务访问,事件处理, 并发策略三个问题进行分析,进而提出旨在解决这些问题的网络服务 框架的体系结构封装层和框架层。 第二章介绍t c p i p 网络协议族和由操作系统提供的一系列系统 机制。这些操作系统的机制将作为网络服务框架的底层素材。应用系 统i o 多路复用机制,构建传统的单线程并发服务器。 第三章引入设计模式的概念和应用,设计模式是实现网络服务框 架的指导理论。 第四章首先应用排队论分析在处理实际事务情况下循环和并发 服务器的效率。进而给出了两种应用多线程实现的并发服务器模式。 第五章结合成熟的设计模式,首先通过对底层面向过程a p i 的封 装,实现了包装器外观设计模式,得到网络服务框架的基础封装 层。然后对第二章和第四章用底层a p i 实现的单线程并发服务器和预 先创建线程池的多线程服务器分别应用反应器和半同步半异步两种 设计模式进行面向对象的抽象,构建并实现了解决事件处理,并发策 略二大问题的反应器框架和半同步半异步框架。 这些已经实现的类和框架初步构成了我们要设计的网络服务框 架。需要说明的是,设计模式是比较成熟的概念,然而将设计模式应 用到网络程序开发则是比较新的领域。本论文从系统底层接口和传统 设计方案出发,结合了w a p 网关的w i g 并发请求模块这个实际程序, 重新发现,归纳,总结,并实现了包装器外观,反应器,半同步半 异步这些网络程序设计模式,并以此初步完成了网络服务框架的构 建。 在第六章,对目前实现的网络服务框架进行了总结,并指出了今 后的工作将在于i 在实际应用中验证框架的性能。2 通过实际程序 发现、总结、实现更多的网络服务程序设计模式,丰富网络服务框架。 关键词服务访问并发策略框架设计模式 d e s i g na n di m p l e m e n t a t i o no fh i g h e f f i c i e n c yn e t w o r k s e r v i c ef r a m e w o r k a b s t r a c t w i t ht h ef a s t g r o w i n gi n t e r n e t ,m o r e a n dm o r ei n f o r m a t i o n a n d c o m m u n i c a t i o ns e r v i c e sa r ea v a i l a b l ei ne v e r ya s p e c to fp e o p l e sl i r e t h ep e r f o r m a n c eo ft h e s es e r v i c e sd e p e n d sm o s t l yo nt h eq u a l i t yo fn e t w o r k s e r vi c es o f t w a r e t h ist h e s i si s t a r g e t o r i e n t e d t h et a r g e t i st ob u i l dr o b u s t e f f i c i e n ta n de x t e n s i b i en e t w o r ks e r v i c es o f t w a r e t oo b t a i nt b i sg o a l , t h r e ec o m m o np r o b l e m sn e e dt ob es o l v e d t h e ya r es e r v ic ea c c e s s ,e v e n t d e m u l t i p l e xa n dc o n c u r r e n c ys t r a t e g y t h ew h o l et h e s i si so r g a n i z e di n t ot h r e ep a r t s :p r e s e n t ,a n a l y s jsa n d s o l v ep r o b l e m s i nt h ef i r s tc h a p t e rw ea n a l y s i st h e s e t h r e ec o m m o n c h a l l e n g e s ,t h e ng i v eo u rs o l u t i o ni d e a :n e t w o r ks e r v i c ef r a m e w o r k ,f o r s h o r tn s f n s fisak i n do fm i d d l e w a r ea n ds h o u l db ec l a s s i f i e da s h o s t i n f r a s t r u c t u r em i d d l e w a r ew h o s em a i nf u n c t i o ni s t o e n c a p s u l a t e e n h a n c en a t i v eo sc o m m u n i e a t i o n c o n c u r r e n c ym e c h a n i s m s t oc r e a t e r e u s a b l en e t w o r kp r o g r a m m i n gc o m p o n e n t s i nt h i st h e s i st h en s fc o n s i s t s t w o l a y e r s f i r s te n c a p s u l a t i o nl a y e ra n ds e c o n df r a m e w o r kl a y e r c o n s t r u c t i n g n s fi ss t a r t e df r o m s t u d y i n g t h en a t i v eo s c o m m u n i c a ti o n c o n c u r r e n c ym e c h a n i s m s t ob es p e c i f i c ,t h e ya r et c p i p s t a c ki n t e r f a c e :s o c k e ta n dm u l t i t h r e a di n t e r f a c e :p t h r e a d sl i bc a l l s t h ef i r s tl a y e ro fn s fw i i ib eb u i i td i r e c t l yo nt h e s eo sa p i s w i t h g o o du n d e r s t a n d i n go ft h e s em e c h a n is m s ,w ei m p l e m e n tt r a d i t i o n a ls i n g l e t h r e a d c o n c u r r e n c y s e r v e rw i t ho s i 0d e m u l t i p l e xr u n e t i o na n d p r e s p a w n e dt h r e a dp o o lc o n c u r r e n c ys e r v e r t h ed e s i g no fn s fi sb a s e do nd e s i g np a t t e r n w ei n t r o d u c ep a t t e r n t h e o r yi nc h a p t e r3 i n c h a p t e r4 ,w eu s eq u e u i n gt h e o r yt oa n a l y s i st h ep e r f o r m a n c eo f t w ok i r i d so fs e r v e ra l g o r i t h m t h ec o n c l u s i o nisw h e nt r a n s a c t i o n si n c l u d e m u c hi ow o r k ,t h em u l t i t h r e a dc o n c u r r e n c yo f t e nh a sb e t t e ra n ds a f e r p e r f o r m a n c et h a ns i n g l e t h r e a d e dc o n c u r r e n c y i nc h a p t e r5 ,w eu s em a t u r ed e s i g np a t t e r n s ,f i r s t ,w r a p p e rf a v a d e t oo b t a i nt h ef i r s tl a y e ro fn s f t h is e n c a p s u a t i o n1 a y e rc o n s i s i s0 f as e r i e so fc l a s sa s t h r e a d m u t e x ,t h r e a d m a n a g e r ,t h r e a d c o n d i ti o n s o c k s t r e a ma n d s oo n t h e nw ec o n s t r u c tr e a c t o rf r a m e w o r ka n dh a l ? s y n c h a l fas y n c f r a m e w o r kb y0 0a b s t r a c t i o nf r o mt r a d i t i o n a l s i n g l e t h r e a do su o d e m u l t i p l e xc o n c u r r e n c ys e r v e ra n dp r e s p a w n e dt h r e a dp o o l c o n c u r r e n c ys e r v e rw it hr e a c t o ta n dh a fs y n c h a lfas y n cp a t t e r n t h e s ei m p l e m e n t e dc l a s s e sa n df r a m e w o r k sb a s i c a l l yf o r mt h en s f i t s n e c e s s a r yt od e c a r et h a td e s i g np a t t e r n sa r en o ti n v e n t e db yt h i st h e s i s b u tu s ed e s i g np a t t e r n si nn e t w o r kp r o g r a m m i n gi sr a t h e rn e w t h i st h e s i s c o n c e r n st h e p r o c e d u r e t o d i s c o v e r ,s u m m a r i z e a n d i m p l e m e n t t h e s e p a t t e r n s c h a p t e r6is a b o u tt h ef u t u r ew o r k ,t h a ti st o1 ) u s ea n dt e s tt h i s n s fi nr e a l a p p l i c a t i o n s ,2 ) d i s c o v e ra n di m p l e m e n tm o r ep a t t e r n s t o p e r f e c tn s f k e yw o r d ss e r v i c ea c c e s sc o n c u r r e n c ys t r a t e g yd e s i g np a t t e r nf r a m e w o r k 独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他 教育机构的学位或汪书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:日期: 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即: 研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保 留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被奄阅和借 阕;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它 复制手段保存、汇编学位论文。( 保密的学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密在一年解密后适用本授权书。非保密论 文注释:本学位论文不属于保密范围,适用本授权书。 本人签名: 导师签名: 日期: 和籀出壮嘿_ 乒 | 北京邮电大学硕七学位论文高效网络服务框架的设计与实现 1 1 背景 第一章构建高效网络服务框架的原因 计算机通信作为计算机应用领域中数据存储,数据计算,数据通信的三大功 能之一,其地位和作用越来越为人所共识。继i p 协议诞生之后,i n t e r n e t 在全 球以超过几何增长的速度迅速扩张。i n t e r n e t 的成熟和发展最主要体现在两个 相关的领域。 其一,从网络硬件方面看,v l s i 技术使计算机的处理能力以3 4 个数量缴 增长,同时随着干路传输采用光纤波分复用技术,网络的连接速度也以6 7 个 数量级增长。有专家预测如果这个趋势持续下去的话,那么到这个十年结束时: 台式电脑的时钟速度可能达到l o o g h z 局域网的连接速度将在l o o g b s 无线连接速度将在1o o m b s 互联网主干网连接速度将在1 0 t b s 其二,从网络的体系结构的成熟度看,以i e t f ,i t u 为主的国际信息通信领 域标准化组织每年发布大量的r f c ,d r a f t 以及各种协议标准,这些协议标准针 对o s i 的模型的不同层面提出诸如交换路由机制m p l s ,保障信息网络安全的加 密技术p k i ,媒体流传输协议r t p ,会话初始协议s i p 等等。其中面向应用层新 标准和协议最终转化为新的互联网应用。互联网早已不等同与人们最初认i = w o r l dw i d ew e b ,更新、更多样化的网络应用将深入社会生活的个个领域。 伴随以上两个方面的发展,网络化应用程序的开发设计也面临新的问题。从 最直观的角度看,i n t e r n e t 每年仍以数百万的新用户增长,这在某种程度上加 大了网络服务程序的负载;另一方面,人们对网络服务的功能要求越来越高,网 络服务程序本身的复杂程度大大增加。 网络服务程序如何在规模,功能和复杂性要求逐渐提高的基础上保证质量 和生产率? 生产率在一定程度上体现在项目的周期,如今技术进步的速度以及市场的需 求瞬息变化,要求软件开发领域同样要提高软件项目的开发效率、缩短软件项目 的开发周期,以取得最大化的市场竞争力和收益。 第1 页 北京邮电犬学硕士学位论文 高效网络服务框架的设计与实现 网络服务程序的质量具体可以归结为; 1 )有效性:具体体现在用户呼叫处理及响应时间等 2 )健壮性:体现在处理并发请求能力以及容错的能力上 3 )可扩展性:体现在新模块添加,为新组件留出配鼍接口 虽然传统的软件工程提出了软件开发设计中所遇到问题的解决方法,但是与 独立( s t a n d a l o n e ) 应用程序开发设计有所不同,网络服务程序面临其特有的难 题。这些难题是开发者必须考虑的。这包括: 建立连接和初始化服务 事件多路分解和事件处理程序分配 进程间通信和网络协议 主存储器和次级存储器的管理和缓存 并发与同步 等等 下面将进一步讨论这些网络服务程序中所遇到的问题。 1 2 网络服务程序所面临的难题 1 2 1 服务访问 在网络化应用程序中,组件可以使用下列手段进行通信,或者说在下列的不 同层面上进行通信: v ,i p c 机制,例如共享内存,管道,和套接字。它们基于网络的传输层和网络 层协议如t c p d p i p ,a t m 等协议 应用层协议,如t e l n e tf t ps m t ph t t p 等等 使用成熟的中间件,例如c o m + ,c o r b a 在应用级服务组件上进行远程操 作 如图所示的网络通信实体在不同层面有不同层面的应用编程接口。设计有效 的应用程序编程接口是十分重要的。因为这些接口直接由应用程序的开发人员应 用。举例来说,开发一个基于操作系统a p i 的f t p 服务器程序,传统情况下将 调用如下a p l ; 调用并发服务访问a p i 来管理并发,比如u n i x 进程,p o s i xp t h r e a d s 或 者是w i n 3 2 线程 调用i p c 服务访问a p i ,例如u n i x 的s o c k e t 来完成客户机与服务器之间 的通信 第2 页 北京邮电大学硕士学位论文高教网络服务框架的设计与实现 :舻区舯鼢 八八 ( a p i )( a p i ) 、 i中间件 li 广秦秦 操作系统与协议操作系统与协议 图1 一l 访问接口 以上所说的服务访问实际上就是指功能调用,功能即操作系统所提供的诸如多进 程,多线程处理并发的能力、t c p i p 协议栈的网络通信功能等等,而所谓的访 问就是通过接口函数的调用来使用这些功能。但是通过调用操作系统c 语言级 的a p i 构建服务程序时通常会发生以下问题: 复杂的底层细节:这些问题是由操作系统内部机制复杂性所带来的。一部分 系统调用的返回结果必须由程序员自行判断复杂的返回错误原因,由于过多 的这些问题的困扰使开发人员难以集中精力在服务程序逻辑的开发。 并不兼容的高级抽象的重复发明:这是对于第中问题的一种解决办法,同 时也是o o p 的一个步骤,然而在实际中,开发人员花费很大工作量完成的 所谓新的高级抽象,如文件高速缓存组件,线程池组件等等都是重复的劳动。 这种问题可以被形象的叫做重复发明轮子。 缺乏移植性:每个平台都有自己的一套a p i ,网络服务程序在不同平台之间 的移植要做不同程度的修改,这在某种程度上等于重新开发一样的难度,解 决这种问题的最成功例子之一就是j v m ,其实就是通过提供跨平台的中间 件来解决程序移植问题,其特点正如 a v a 的口号”o n c e 、r i t e ,r u ne v e r y w h e r e ”。 不能处理更高的复杂性:o sa p i 为一些机制定义了基本接口,像进程和线 程管理、进程问通信、文件系统,以及内存管理。但是,当应用的大小和复 杂性增长时,这些基本接口无法适当地升级。例如,典型的u n i x 进程只允 许缓冲大约7 个待处理连接。对于被大量访问的、必须处理成百并发客户的 w e b 服务器来说,这个数目是不够的。 第3 页 北京邮电大学硕士学位论文高效网络服务框架的设计与实现 1 2 2 事件处理 在网络服务程序系统中,程序的行为被异步出现的外部或内部事件触发。这 些事件包括设备驱动程序,i 0 端口,传感器,键盘或者鼠标,信号,定时器 或者其他异步软件组件。大多数的事件要求网络服务程序对事件做出迅速的处 理。事件是激活和驱动网络服务程序的直接原因,也是进一步构建分布式对象管 理的基础。构建合理的事件处理模型,对于提高网络服务程序的效率是至关重要 的。 事件驱动的应用模型如图: 应用程序 事件处理函数 1 lt 多路分解器 事件源 图1 2 事件处理结构 底层是事件源,它从各种硬件设备或者驻留在操作系统中的底层软件设备驱 动程序那里检测和检索事件。 上面一层是事件多路分解器,他的机制类似于系统s e l e c t ( ) 调用,在各种事 件源上等待事件的到来,然后为相应的事件分配事件处理程序。 最高层是事件处理程序( e v e n th a n d l e r ) 在通常的网络服务程序中,大量的连接请求,数据请求都可以被抽象为“事 件”。创建可以复用的,与应用无关的事件分派框架,从而使事件多路分配模块 与时间处理模块达到最不紧密的耦合程度。要解决的问题最终可以归结为: 如何在单线程控制中高效地多路分离来自多个事件源的多种类型事件,在扩 展应用行为的同时无需改动事件分派框架,尽可能不再需要更为复杂的线程、同 步,或锁定。 1 2 3 并发与同步 并发与同步是一对相辅相成的概念。存在并发的同时就可能会出现同步的问 题。为网络服务程序设计合理的并发策略会显著地影响系统性能。对现有w e b 服 务器( 包括a p a c h e 、n e t s c a p e 羊【j j a v a w e b 服务器) 的实验研究表明大部分与 第4 页 北京邮电入学硕士学位论文高效网络服务框架的设计与实现 i 0 无关的w e b 服务器开销来自w e b h 艮务器的并发策略。关键的开销包括同步、 线程进程创建,以及上下文切换。因此,选择高效的并发策略对于获取高性能 来说是至关紧要的。 传统的u n i x 进程是一种“重量级”的实体,其中含有一个单线程控制。以 s o l a r i s 系统为例,m p m t 体系结构在两个层面上运作( 内核空间和用户空间) , 并古有以下4 种组件 t o l : 处理单元( p r o c e s s i n g e l e m e n t ) : 这是执行用户级和内核级指令的c p u 。s u n m p m t 模型的语义意图能同时 用于单处理器和共享内存的硬件上的对称多处理器。 内核线程( k e r n e lt h r e a d ) : 这是处理单元( p e ) 在内核空间中调度和执行的基本实体。o s 内核为每一内 核线程维护一个小数据结构和栈。内核线程间的上下文切换相对较快,因为它不 要求改变虚拟内存信息。 轻量级进程( l i g h t w e i g h tp r o c e s s ,或l w p ) : 它们与内核线程相关联。在s o l a r i s2 x 中,一个u n i x 进程不再是一个线程 控制,而是在其中含有一或多个l w p 。在l w p 和它的内核线程间存在着l 对1 的映射。s o l a r i s 中的内核级调度器使用l w p ( 因而也包括内核进程) 来调度应 用任务。l w p 含有数量相对较多的状态( 比如寄存器数据、特征信息、虚拟内 存地址范围和定时器) 。因而,l w p 间的上下文切换相对较慢。 对于分时调度器类别( 缺省) ,调度器通过“占先”( p r e e m p t i o n ) 将可用的 p e 在多个活动的l w p 间进行划分。通过这种技术,每个l w p 运行一段有限的 时间( 通常为1 0 毫秒) 。当前l w p 的时间片到期后,o s 调度器选择另一个可用 的l w p ,执行一次上下文切换,并将被占先的l w p 放置到一个队列中。内核使 用若干标准( 比如优先级、资源可用性、调度类别,等等) 来调度l w p 。在分 时调度器类别中,没有固定的l w p 执行顺序。 应用线程: 每个l w p 可被认为是一个“虚拟p e ”,在其上应用线程被一个用户级的线 程库调度和多路复用。每个应用线程与其他线程一起共享它的进程地址空问,尽 管它拥有唯一的栈和寄存器组。应用线程还可以派生出其他应用线程。在进程中, 每个这样的应用线程都独立地执行。 s o l a r i s2 x 提供一种多层的并发模型,允许使用下面的两种模式来派生和调 度应用线程: 1 绑定线程( b o u n d t h r e a d ) :它被1 对1 地映射到l w p 和内核线程。绑定线 程允许独立任务在多p e 上并行执行。因而,如果两个应用线程运行在分离的l w p 第5 页 北京邮电大学硕士学位论文 高效网络服务框架的殴计与实现 上( 因而也是分离的内核线程上) ,它们也就可以并行地执行( 假定它们运行舟 多处理器上,或使用异步i 0 ) 。而且,应用线程可以执行阻塞的系统调用并处 理页错误,而不会阻止其他应用线程的运行。重新调度绑定线程需要一次内核级 上下文切换。同样地,绑定线程上的同步操作也需要o s 内核的干预。当应用被 设计利用在硬件平台上可用的并行性优点时,绑定线程最为有用。因为每个绑定 线程都要求分配内核资源,分配大量绑定线程可能导致效率低下。 2 非绑定线程:它们被一个线程运行时库以多对多的方式在一或多个l w p 和内核线程上多路复用。该用户级库实现了一个非占先的协作式多任务并发模 型。在使内核干预最少化的同时,它调度、分派,并挂起非绑定线程。与使用绑 定到l w p 的应用线程相比较,非绑定应用线程的派生、上下文切换和同步所需 的开销较小。取决于应用和或库与一个进程相关联的内核线程的数目,可以在 多p e 上并行执行一或多个非绑定线程。因为每个非绑定线程并不分配内核资 源,有可能分配数量相当大的非绑定线程,而不会显著地降低性能。 在多处理器上,可以在分离的多个p e 上并行地运行多于一个的l w p 。在单 处理器上,在任何时刻只能有一个活动的l w p ,操作系统完成l w p 的调度不 管是怎样的硬件平台,程序员必须确保对共享资源( 比如文件、数据库记录、网 络设备、终端,或共享内存) 的访问是依次进行的,以防止“竞争:陕念”( r a c e c o n d i t i o n ) 。竞争状态在两个或多个并发l w p 的执行顺序会导致1 i 刈预测刷错 误的结果时发生( 比如数据库记录被留在了不一致状态) 。竞争状态可使用同步 机索4 来加以排除。这些机制序列化对共享资源的代码临界区的访问。 除了并发控制的挑战,当使用多线程( 而不是多进程,或单线程的反应式事 件循环) 实现并发应用时还会出现以下的限制: 健壮性:在单进程地址空间中通过线程执行所有任务可能会降低应用的健壮 性。该问题之所以发生,是因为在同一进程地址空间中的分离线程彼此间并没有 受到保护。为了降低上下文切换和同步开销,硬件内存管理单元( m m u ) 对 线程的保护很少,或者根本没有。因为线程不受保护,进程中一个有缺陷的服务 可能破坏它与在进程的其他线程中运行的服务共享的全局数据结构。于是这就可 能导致不正确的结果,毁坏整个进程,致使网络服务器无限期地挂起,等等。 个相关的问题是在某个线程中调用的某些u n i x 系统调用可能对整个进程产生小 希望产生的副作用。例如,e x i t 系统调用具有销毁进程中所有线程的副作用l 应 使用t h r e x i t 来终止当前线程) 。 访问特权:多线程的另一局限是一个进程中的所有线程共享同样的用户i d 和访问文件和其他受保护资源的特权。因此,为防止对未授权资源意外或故意的 访问,那些将安全机制建立在进程所有权之上的网络服务( l g _ f l n i n t e m e tf t p 和 第6 页 北京邮电大学硕士学位论文高敛网络服务框架的设计与买现 t e l n e t 服务) 通常都在分离的进程中实现。 性能:一种常见的误解是认为使应用多线程化将自动提高性能。其实在许多 环境中,多线程并不会提高性能。例如,单处理器上专事计算的应用并不会从多 线程中获益,因为计算不会涉及通信。另外,细粒度的锁定会导致高昂的同步开 销。这也阻止了应用对并行处理的优点进行全面利用。 在有些环境中多线程可以显著地提高性能。例如在多处理器平台,同样地, 在单处理器上,专事i o 的应用也可以从多线程中获益,因为计算涉及到通信 和磁盘操作。 总之,在开发网络服务程序的时候,要权衡各种可能的并发策略。影响决策 的有动态和静态两种因素。静态因素可被预先确定。这些因素包括硬件配置( 例 如,处理器数目、内存数量,以及网络连接速度) 、o s 平台( 是否支持线程) , 以及高层应用协议。动态因素是那些在系统执行过程中发生的可检测和可度量的 情况。这些因素包括、并发请求的分布函数、平均的事务时间以及事务的构成, 服务器创建进程或者线程的开销等等。 现代操作系统通常采用互斥锁来处理进程或者现成间的同步问题。如果使用 如p o s 的比较低级的互斥锁调用,那就要保证在临界区存在多个返回路径的情 况下,在每个返回路径都要显式的调用释放锁函数。这样的话,如果其中任何一 个返回路径上程序员忽略了释放互斥锁,那么势必将造成系统的死锁。在以后的 讨论中这个问题将通过对操作系统互斥锁原语的封装来解决。 1 3n s f 的性质和结构 从以上的分析我们可以看出,网络服务程序开发中所面i 临的问题是很复杂 的。问题本身处在不同的层面上。本论文中所要讨论设计和实现的n s f 网络服务 框架,也必然存在一个层次结构的概念以解决这些出现在不同层面的问题。首先 从n s f 所处的大的体系结构讲,n s f 介于操作系统与网络应用程序之间, 网络应用程序 ,、 n s f 、 操作系统与协议 图1 3n s f 所处的位置 第7 页 北京邮电人学硕e 学位论文 这个特点完全符合i d c 对于中问件定义的表述:中间件是一种独立的系统软 件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间 件位于客户机服务器的操作系统之上,管理计算资源和网络通信。 i d c 对中间件的定义表明,中间件是一类软件,而非一种软件:中倒件小仪 仅实现互连,还要实现应用之间的互操作:中问件是基于分靠式处理的软件,最 突出的特点是其网络通信功能。因此,也有人把中间件定义为:中间件= 平台 + 通信。 基于以上的定义和分析,我们可以把n s f 归类为某种中间件。接下来的问题 是- n s f 属于那一种类型的中间件呢? 如同计算机网络存在不同的层次结构一样,中问件也存在小l 刮未灾。i = _ 晌比 较权威的中间件层次结构为一】: 图l 一4 中间件的层次结构 基础中间件:封装并加强原始的操作系统通信和并发机制,提供可重用的网 络编程组件【注这里的组件是广义组件】。这些组件屏蔽了底层操作系统a p i 郇d 易出错性。这种中间件的代表是j v m 。 分布中间件:定义高层的分布式编程模型。这些模型的可重用编程接口自动 化并且扩展了本地操作系统的网络编程能力。程序调用远程目标对象,不用指定 他们的地址,实现语言,协议,就如同调用本地对象。使用者感觉编写网络程序 就如同编写独立应用程序一样。 这种中间件的代表为- o m gc o r b a ,s u n sr e m o t em e t h o di n v o c a t i o n 【r m m i c r o s o f t sd i s t r i b u t e dc o m p o n e n to b j e c tm o d e l ( d c o m ) 。 第8 页 北京邮电大学硕士学位论文高效网络服务框架的设计与实现 图1 - - 5c o r b a 体系结构图 通用型中间件:提供诸如事务行为,安全,数据库连接池,进一步增强分佃 中间件的功能,从而是开发者集中精力编写业务逻辑。 其代表有s u n sj 2 e e ,m i c r o s o f t s n e t 从以上对于中间件的分析,我们现在明确定位n s f 为基础型中间件。其主要 的功能如前所述,“封装并加强原始的操作系统通信和并发机制,提供可重用的 网络编程对象”。然而这只是第一步,是我们完成的n s f 的最基本一层。在这一 层我们应用成熟的设计模式包装器外观,针对不同的操作系统机制创建一组 可复用的,安全的n s f 底层模块。这一层的完成基本上解决了网络程序设计中服 务访问这个难题,我们的包装器外观类屏蔽异种的复杂的操作系统的接口,增强 了程序的可移植性。 而对于事件处理和并发策略这样的难题,应用n s f 第一层所提供的类和对象 是解决不了问题的。实现同步事件触发和选定的并发方式需要更高层次的抽象, 具体就是需要一组对象间的协同来实现。人们对传统的网络程序设计中重复出现 的结构进行抽象,归结为几种设计模式,这几种设计模式提供了对如事件处理和 并发策略的解决方案。这种解决方案的具体实现称为框架。框架是一系列对象和 类的有机集合,通过框架内对象的协作来完成应用程序的部分功能。所以,框架 也可以说是可以复用的半成品应用。 第9 页 北京邮电大学硕十学位论文高效网络服务框架的设计o 实现 1 4 总结 下面用框图的方式给出我们要设计和实现的n s f 的结构 图1 6 n s f 结构图 如图所示,我们要设计和实现的n s f n 部可以分为两个层次,封装层和框架 层。框架层位于封装层之上,框架层使用封装层提供的类。两个层次的设汁都心 用设计模式。在封装层应用包装器外观设计模式,构造封装不同操作系统功能的 包装器外观类。在框架层应用如反应器模式解决事件多路分解,半同步半异步 模式的并发策略。 第1 0 页 北京邮电大学硕士学位论文高技网络服务框架的改计与实现 第二章n s f 中网络与系统理论基础 本论文要设计和实现的n s f 网络服务框架构建于特定的t c p i p 网络协议族 和由操作系统提供的一系列系统接口( 包括系统标准库函数调用) 之上。网络模 型和协议提供了网络问通信实体的基本规则和约定,在目前流行的操作系统中, 通信协议栈驻留在o s 内核的保护地址空间中。运行在用户地址空阳j 中的应用程 序通过像s o c k e t 、t l i 或w i n 3 2 命名管道这样的接口来访问驻留内核的协议栈。 这些接口对本地和远地的通信端点这样来进行管理:允许应用打开到远地主机的 连接、磋商和启用禁用特定的选项、交换数据、以及在传输完成时关闭全部或 部分连接。目前,操作系统普遍都支持多进程与多线程的机制,如u n i x 中的 p t h r e a d s 线程库。我们将考虑用这些操作系统的机制,作为n s f 最底层的素材, 构建n s f 的封装层,同时从传统的服务器设计中发掘可复用的解决方案,构建n s f 的框架层。 2 1 网络基本原理和模型 在信息化社会中,人们对于信息共享和交互的需求促成计算机从单一的应用 发展到集群使用。计算机网络是由通信电缆或无线电波链接的由计算机、打印设 备、网络设备和计算机软件组成的系统。是计算机技术与通信技术的结合产物。 最早的计算机网络是在铜线上传送数据的,但如今网络可以通过电线、光纤介质、 无线电波和微波来传输数据、声音和视频。作为一种技术,计算机网络具有无可 比拟的可扩展性,与其他通信形式( 如无线电、电视、电话等) 相比,具有极大的 优越性。 1 9 7 8 年i s o 开放系统互联( o s i ) 参考模型被引进以规范网络体系结构模型。 i s o i e c 是国际标准化组织和国际电工委员会的英文缩写,它是致力于国际标准 的、自愿和非赢利的专门机构。o s i 体系结构标准定义了异质系统互联的七层框 架,也称为o s i 参考模型。基于此模型,各协议规范可进一步详细地规定每一层 的功能,而每一层使用下层提供的服务,并向其上一层提供服务。 o s i 的七层模型具体为 一物理层( p h y s i c a ll a y e r ) 提供机械、电气、功能等特性。如规定使用电缆和接头的类型,传送信 号的电压等。在这一层,数据还没有被组织,仅作为原始的位流或电气电压处理。 第1 1 页 北京邮电大学硕士学位论文高效网络服务框架的殴计与实现 数据链路层( d a t a l i n kl a y e r ) 一实现数据的无差错传送。它接收物理层的原始数据位流以组成帧f 位 组) ,并在网络设备之间传输。帧含有源点和目的点的物理地址。 一网络层r n e t w o r kl a y e r ) 一处理网络问路由,确保数据及时传送。将数据链路层提供的帧组成数据 包,包中封装有网络层包头,其中含有逻辑地址信息源点和目的点地址的网 络地址。 一传输层( t r a n s p o r tl a y 提供建立、维护和取消传输连接功能,负责 可靠地传输数据。 一会话层( s e s s i o nl a y e r ) 提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制。 如服务器验证用户登录便是由会话层完成的。 表示层( p r e s e n t a t i o nl a y e r ) 提供格式化的表示和转换数据服务。如数据的压缩和解压缩,加密和解 密等工作都由表示层负责。 一应用层( a p p t i c a f i o nl a y e r ) 一提供网络与用户应用软件之间的接口服务。 2 2t c p i i p 协议体系和分析 在计算机网络中,网络用户可以共享网络资源及相互通信。网络中互通信的 主体并不是计算机系统整体,而是网络中不同的系统实体涮进行的通信。这里, 实体是指各种能够发送和接受消息的应用程序。两个实体间要实现通信,双方必 须具有相同的语言,交流的内容,发言开始的时间和顺序等等必须遵从实体阃某 些互相都能接受的规则。这些规则的集合称为协t s ( ( p r o t o c 0 1 ) 。 协议可定义为一系列描述控制和数据信息如何在通信实体间传递的规则。 t c p i p 是传输控制协议网际协议( t r a n s m i s s i o nc o n t r o lp r o t o c o l i n t e r n e t p r o t o c 0 1 ) 雕j 缩写,t c p 佃协议形成于7 0 年代,是由美国国防部( d o d ) 出于构建不 同类型计算机间的数据通信网a r p a n e t 的需要而主持开发的。8 0 年代初, a r 剧州e t 完成了向t c p i p 的全部转换工作,同时加州伯克利大学将t c p i p 作为 u n i x 操作系统的通信协议栈放入内核中。 t c p i p 协议是先于0 s i 模型开发的,故并非完全符合o s i 标准。大致来说,t c p 对应于o s i 模型的传输层,i p 对应于网络层。而今天所说的t c p i p 协议,早超出 了这个概念,已成为一个完整的协议族。该协议族除了包含作为传输控制协 义的 t c p 和网际协议i p 之外,还包括多种其他协议,其中有工具性协议,管理协议及 第1 2 页 北京邮电大学硕士学位论文高效网络服务框架的殴计与实现 应用性协议。t c p i p 协议族体系结构图如下【1 2 高层 t c pu d p i p 物理层 图2 1t c p i p 协议族体系 绝大多数网络服务程序程序都使用t c p 或u d p 作为传输层协议。这两个协议 转而使用网络层协议i p 。 u d p 是一种简单的,不可靠的数据报协议,而t c p 是一种精致的、可靠的字 节流协议。 我们必须了解由这两个传输层提供给应用进程的服务,这样才能弄清这些伪 议处理什么,我们的应用进程又需要处理什么。 理解t c p 、u d p 的特性是编写网络服务程序的基础。 2 2 1lp 协议 网络的传输层协议有很多。 目前来讲,i p ( i n t e m e t p r o t o c 0 1 ) 协议即互联协议,是t c p i p 体系的核心协议。 它提供无连接的路由服务。它在执行包传输时并不首先建立连接,没有反馈重发 机制。正是由于这些原因,i p 协议没有可靠性保证。 2 2 1 t c p 协议 向应用进程提供的t c p 服务与u d p 服务不相同。( t c p 定义在r f c 7 9 3 ) 首先,t c p 提供客户与服务器的连接。一个t c p 客户建立与一个给定服务器 的连接,跨越连接与那个服务器交换数据,然后终止连接。 其次,t c p 提供可靠性。当t c p 向另一端发送数据时,它要求对方返回一个 确认。如果确认没有收到,t c p 自动重传数据并等待更长时间。在数次重传失败 后,t c p 才放弃。重传数据所花的总时间传统上是4 一l o 分钟( 与协议实现有关) 。 t c p 含有用于动态估算客户到服务器往返所花时问r t t 的算法,因此它知道等待 确认需要多少时间。例如,r t t 在局域网上大约几毫秒,而跨过广域网则需数秒 钟。另外,某时s t j t c p 可能测到客户到服务器的r t t 为1 秒钟,而过3 0 秒后却检 第13 页 北京邮电大学硕士学位论文高效网络服务框架的设计与实现 测到同一连接的r t t 为2 秒钟,这是因为网络传输的拥挤情况是在不断变化的。 第三,t c p 通过给所发

温馨提示

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

评论

0/150

提交评论