(机械设计及理论专业论文)面向网络化制造的分布式异步通信的研究.pdf_第1页
(机械设计及理论专业论文)面向网络化制造的分布式异步通信的研究.pdf_第2页
(机械设计及理论专业论文)面向网络化制造的分布式异步通信的研究.pdf_第3页
(机械设计及理论专业论文)面向网络化制造的分布式异步通信的研究.pdf_第4页
(机械设计及理论专业论文)面向网络化制造的分布式异步通信的研究.pdf_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

江苏大学硕士学位论文 摘要 过去几年里,网络通信技术和计算机技术得到了迅速发展,单机间通 信也随之发展成为分布式通信,这成为网络化制造支撑网络的基础。但随 着制造网络规模的扩大,分布式事务的复杂,人们对系统的可靠性,通信 效率,成本控制以及信息集成度提出了更高的要求,这促使了对分布式异 步通信的深入研究。这些研究从早期的非阻塞通信到扩展异步r p c 再到 移动a g e n t 应用,分布式异步通信经历了逐步走向完善的演化过程。尽管 如此,这种新的分布式通信模式在预制基础,协作运行以及容错通信等方 面存在诸多不足,成为制造网络进一步发展的阻碍。本文试图对这些问题 作出一些有益的探究,在剖析了异步通信的内核演进机制后,提出并阐述 了在c o m + 基础上构建移动a g e n t 应用的思想,利用c o m + 面向对象特性 和其运行环境作为预制基础,为移动a g e n t 提供有力的平台支持;针对 a g e n t 协作问题,提出了a g e n t 关联组,嵌套组及组协作模式等理论来描 述和定义a g e n t 组的组织结构和行为特征;针对原有通信容错手段的单一 和呆板,提出了树型动态容错结构,多a g e n t 请求多代理和a g e n t 组协作 容错等理论,并对移动环境下的容错技术作了初步阐述,最后以一个原型 系统对部分所述理论进行了验证。 关键词:分布式异步通信:移动a g e n t ;c o m + ;a g e n t 协作;通信容错 江苏大学硕士学位论文 a b s t r a c t i nt h el a s tf e w y e a r s , c o m m u n i c a t i o n t e c h n 0 1 0 9 y a n d c o m p u t i n g t e c h n o l o g y a r eb o t hd e v e l o p i n g r a p i d l y s o i n t e r p r o c e s s o rc o m m u n i c a t i o n d e v e l o p s t od i s t r i b u t e dc o m m u n i c a t i o n t h a tb u i l d st h eb a s eo f s u p p o r t n e t w o r kf o rn e t w o r km a n u f a c t u r i n g b u tw h e n m a n u f a c t u “n gn e t w o r ks y s t e m e x t e n d sa n dd i s t r i b u t e dt r a n s a c t i o nb e c o m e c o m p l e x ,s y s t e m r e l i a b i l i t y c o m m u n i c a t i o ne m c i e n c y ,c o s tc o n t r o ia n di n f o r m a t i o ni n t e g r a t i o na r eh i g h l y d e m a n d e d t h a t p r o p e l sd e e p r e s e a r c hf b rd i s t r i b u t e d a s y n c h r o n o u s c o m m u n i c a t i o n t h e s er e s e a r c h e s d e v e l o p f r o m e a r l yu n b l o c k i n g c o m m u n i c a t i o nt o u p g r a d ea s y n c h r o n o u sr p c , t h e nt om o b i l e a g e n t a p p l i c a t i o n s d i s t r i b u t e d a s y n c h r o n o u s c o m m u n i c a t i o na l s o g r a d u a l l y e x p e r i e n c e sp r o c e s st op e r f e c tf o r m b u tt h en e wc o m m u n i c a t i o nm o d e lh a s s e v e r a ld e f 色c t so n p r e f a b r i c a t eb a s e ,c o o p e r a t i v ew o r ka n df h u l t t o i e r a n t c o m m u n i c a t i o n ,f o r m i n g o b s t r u c tf o r m a n u f a c t u r i n g n e t w o r k sf u r t h e r d e v e l o p m e n t t h ep a p e r t r i e st oe x p l o r et h e s ep r o b l e m s a f t e r a n a t o m i z i n gt h e d e v e l o p m e n to fa s y n c h r o n o u sc o m m u n i c a t i o n sk e r n e l ,t h ep a p e ra d v a n c e sa n e wt h o u g h to f b u i i d i n gm o b i l ea g e n ta p p l i c a t i o n so nc o m + t h ep o w e r f u l s u p p o r t sa r eo f 先r e dt om o b i i ea g e n tb yc o m 十sp r e f a b r i c a t eb a s ef o ri t so o p a n di t se n v i r o n m e n t t h e n a i m i n g a t c o o p e r a t i v ea g e n tp r o b l e m s ,a g e n t a s s o c i a t eg r o u p ,n e s t e dg r o u pa n dc o o p e r a t i v eg r o u pm o d e la r e b r o u g h tt o d e s c r i b et h es t r u c t u r ea n da c t i o no fa g e n t g r o u p t h ed y n a m i c t r e e t y p e f a u l t t o l e r a n t s t r u c t u r e , m u l t i - a g e n tc l a i m i n g m u l t i s u b s t i t u t em o d e la n d f a u l t - t o l e r a n ta g e n tg r o u pa r eb r o u g h tt or e s o l v es i n g l e n e s sa n ds t i f f h e s so f o l df a u l t t 0 1 e r a n tm e a s u r e s a fl a s t ,s o m es h o w e dt h e o r i e sa r ep r o v e di na p r o t o t y p es y s t e mg i v e d k e y w o r d s :d i s t r i b u t e da s y n c h r o n o u sc o m m u n i c a t i o nm o b i l ea g e n t 0 0 m + c o o p e r a t i v ea g e n t f a u l t t 0 1 e r a n tc o m m u n i c a t i o n i i 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学位保 留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借 阅。本人授权江苏大学可以将本学位论文的全部内容或部分内容编入有关数据库 进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 本学位论文属于 保密口,在年解密后适用本授权书。 不保密口。 学位论文作者签名 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进 行研究工作所取得的成果。除文中已注明引用的内容以外,本论文不 包含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研 究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完 全意识到本声明的法律结果由本人承担。 学位论文作者签名 日期: 年月目 江苏大学硕士学位论文 第1 章绪论 近十年来,通信技术和计算机技术都取得了惊人的进步,从而使计算机系统 经历着一场革命1 】 3 7 】。光纤通信技术的成功研究使网络传输速率达到了吉比级的 高度和超低误码率( 受5 1 0 。o ) :无线通信技术则从模拟发展到数字,从窄带发展 到宽带,从区域发展到移动再到全球无缝覆盖:交换技术从电路交换发展到快速 分组交换和多协议标记交换( m p l s ) ;同时计算机技术则在计算处理速率、并行处 理结构以及面向对象的软件技术和分布对象计算技术方面获得突破性发展。计算 机c p u 处理速度按照摩尔定律不断提升,巨型计算机的处理速度已经从每秒执行 亿次指令上升到每秒干亿次、甚至万亿次指令:高性能计算机体系结构和并行计 算结构,使得计算机处理速度已经超越单个c p u 处理速度的限制【l 】【3 7 1 ;分布对象 技术使得异构软件系统在网络环境下可以屏蔽自身差异而容易地实现互操作和 系统集成。 这两项基础技术的发展推动了网络应用的发展,使得由大量孤立c p u 组成的 计算机系统通过高速网络互连成为现实。当前网络应用已经从传输单一的文本数 据,发展到传输话音数据和视频数据,以及集成多种类型数据传输的多媒体网络 应用;从传统的点到点交互,发展到单点到多点交互( 如视频广播和远程教育) 和 多点到多点之间的交互( 如视频会议和协同写作) ;从传统的集中控制结构发展 到分布控制结构再发展到联邦( 多自治域的) 控制结构:从传统的尽力而为的、 没有任何服务质量保证的传输服务模式,发展到高速,安全简捷,具有服务质量 保证( q o s ) 的高性能网络服务i l 】【3 w 。 随着网络技术的进一步发展,其特征开始向开放、集成、高性能和智能化方 向转变,时间和地理上的障碍变得越来越微不足道,电子数据交换成为一种趋势。 应用系统随之开始从一般的数据处理功能向决策支持,智能决策支持和群体决策 支持的功能发展。总之,网络技术的飞速发展使得计算机和网络日益成为对社会 经济增长起决定性作用的生产工具。 在国民经济信息化和全球经济一体化的今天,信息技术已渗透至各个传统行 业。分散化经营或非集中化经营,通过信息手段应用各种先进的现代化管理方法 和技术把企业的所有硬软件科学集成,创造个动态适应能力强,运营效率高的 整体已经成为传统产业发展的出路。 江苏大学硕士学位论文 1 1 传统制造业向信息化的转变 计算机和网络技术的迅猛发展极大的拓展了制造业的广度和深度,产生了一 批新的制造哲理和制造技术,急剧改变了其产品结构和生产过程,触发了制造业 的一场革命。制造业信息化的进程从7 0 年代开始,经历了几个历史阶段: 功能辅助阶段。以c a d ,c a m ,c a p p 为代表,提供了单项的设计活动的计 算机辅助手段; 信息集成阶段。致力于解决各制造业分系统的信息孤岛问题,以信息的共享 和交换为主要目标。以3 c 集成,e r p 和c i m s 技术为代表; 过程优化阶段。以企业生产过程的优化,产品协同设计,统一数据管理等为 主要目标,力图能提供适应动态变化的,更高层次的系统整合能力。以c e ,p d m , 工作流管理的研究为代表: 网络化制造阶段。企业不再局限于内部的集成,开始与整个外在环境融合。 信息集成的规模到达异地化甚至全球化。以敏捷制造( a m ) ,虚拟制造( v m ) 为代 表,同时供应链技术,多a g e n t 协作技术和异构平台下的信息集成技术等成为研 究热点。 网络技术的发展使得设计制造各个环节的各种信息与知识能够得到流通和 集成,分布异地的不同生产单元的资源共享和协同工作从而成为可能,这使以满 足全球化市场需求为目标的快速响应制造过程得以实现,也就是网络化制造得以 实现。网络化制造成为制造业的发展方向。 1 2 网络化制造的关键问题 信息革命促使制造业向全球方向发展,使现代企业呈现多元化,集团化的发 展趋势 4 ”。这些企业需要了解其各个分公司的生产经营状况,同一企业的不同部 门不同子公司也需要共享一些内外部信息,企业与用户及企业与合作伙伴之间也 需要及时的频繁的交流,虚拟企业各成员的协同活动更是要求大量和复杂的信息 交换,所有这些必须要通过良好的网络规划和设计来协调各单元成有机整体【4 。 如图l ,1 所示,网络制造化体系以网络和数据支撑模块为中心,以工程设计,生 产经营管理和企业服务为三大实体模块,中心为模块之间及模块内的信息流转提 供传输支持,信息即网络制造过程的血液是由这个支撑中心驱动的。 2 江苏大学硕士学位论文 i n t e r n e t 财 务 商 嚣 管销 务 作 服 介 务 理 绍 活活 客 动动 户 培 原 训 料 图1 1 网络制造化体系结构 网络支撑系统因此成为网络化制造的关键问题。在网络化制造环境下,信息 的流转和规模都不同于普通的应用系统,具有以下一些特征: 信息的种类多样,数据结构更为复杂,包含图形图像文件,文本文件, 状态文件,控制信息,多媒体等多种文件格式的信恩; 信息传输的规模扩大,交叉运算复杂,个任务的完成可能要涉及多个 不同数据库,一系列的运算过程以及多节点的协作行为; 网络化企业的基础建立在分布式应用系统之上,怎样将分散异地的信息 有效集成以及保持通信的高效和可靠成为亟待解决的问题。 综上所述,笔者认为这样的分布式系统应该提供支持分布式异步通信的能 力,异步的机制将有力保证信息传输的灵活性和离效率,协作行为的系列化和交 叉化以及较强的系统容错运行能力:分布式的机制则能够提供异步运行的基础, 通信和位置的透明性,容错的网络条件以及信息的共享和集成。 1 3 网络化制造通信网络的系统结构 图1 2 显示了网络化制造环境下的通信系统的结构,在图中两个企业内部网 通过i n t e r n e t 或广域网连接,考虑远程通信的复杂性和不确定性,跨企业通信采 用异步通信连接,使得分布异地的协作人员能够更好的交换信息,协同工作,同 时节约链路资源,提高链路使用效率:内部网由于通信带宽和通信质量能得到保 证,故多采用同步通信方式,保障数据传输的及时和数量。中间节点和服务节点 通常是一些执行专项功能的节点,如提供智能实体的停泊点,生产专用智能实体 的工厂,全局共享数据存放处,监控特殊信号的检查点等,它们通常不属于任何 企业范围,面向全局提供服务。 江苏大学硕士学位论文 :囔窭l e 查辫 | | | | | ;罢一 逻异fj 叫溶器l r 戮镰笋割羹占 l 崩寸专竺_ 遮氨赢; f 企业内部网 l 。 1 4 异步通信 图1 2 网络化制造通信网络的系统结构 1 4 1 同步通信和异步通信 两个进程相互制约,互为条件,共同运行,可得到同步效果。在没有任何故 障或延迟的情况下,同步运行是最稳定而且最简单的,但是同步通信有两个缺点: 不可能存在没有故障的系统,而当一方故障或通信通路故障发生时,同步效果将 导致对方或双方阻塞,即进程无限期挂起;同步通信的效率有时很低下,同步的 追求要求通信链路始终保持,而对于计算消耗远大于通信消耗的请求,链路的空 闲时段会远大于占用时段。异步通信则不要求通信双方的互存为前提,它注重即 时的送出和跨时的返回,这种灵活性使得发展异步通信是必然的。但是异步通信 不能完全取代同步通信,有效率的系统是综合两者的优势。比如,我们可以在代 码迁移时用异步,本地交互时用同步;可以在分段传输上用同步,总体策略上用 异步。 1 4 2 异步通信和分布式异步通信 异步通信在加上分布式的定语后,对自身又产生了重大的影响。两机间异步 通信和分布式异步通信存在着本质上的区别: 共享问题。分布式环境下,共享资源的多个并发进程的冲突是不可避免的, 因此要仔细考虑合理的操作和算法来解决这种冲突( 如互斥) :对共享资源不合理 的顺序请求以及占有策略将可能导致死锁,对死锁的预防和避免也是分布式系统 的相关难题。两机间异步通信通常不存在这些问题。 协作问题。分布式环境下,异地的多个进程将协作完成共同任务,如何协调 这些进程,将它们有机“捏合”成一个整体是目前分布式协作研究的难题,复杂的 4 江苏大学硕士学位论文 协作行为给通信语义定义带来很大困难。 容错问题。尽管两机问通信也可能考虑容错问题,但如此简单的环境与复杂 的分布式环境是不可比拟的。两机间通信甚至只需采用专用容错,但分布式通信 必须考虑通用容错,一个开放共享资源面临的服务对象是全体性的,因此它的容 错系统必须兼容所有服务对象,还要考虑对新对象的扩展能力。另外,这些容错 系统要提供多服务器的容错,这使得其自身的团体性行为必须得到规划和加强。 负载平衡问题。在情况变化时,合理和透明的在节点单元间重新分配系统负 载,以达到系统的综合性能最优,这也是分布式通信不可逃避的问题。良好的算 法,机群的拓扑和通信协议都是必不可少的要素因为负载转移都发生在异地进 程间。而这些问题对于两机间通信一般是不用考虑的。 1 4 3网络通信和分布式通信 网络通信和分布式通信是不同的,两者易于混淆,因为它们都是在一个分散 异地的松耦合多机系统环境下,通信的手段也有很多相似,但正如网络与分布式 系统的不同,两者的通信显然存在显著区别: 通信的内容不同。网络通信通常仅用于交换一些信息,如文档,电子邮件。 分布式通信内容要复杂的多,由于协作进程和协作实体的行为很复杂,它们之间 的通信语义要求更强。其通信大量涉及协调信息,指令,状态,控制,实时数据, 容错等内容,是更高层的语义模拟: 通信的目的不同。网络通信的目的是保证信息的共享和成功交换,分布式通 信的目的除了这些,还要包括有效协调合作进程间关系,有效维护合作实体的容 错等,其目的多样而不单一; 通信的主体不同。网络通信的主体是网络中节点,通常以客户机服务器形式 存在。分布式通信双方要求双向交流,地位平等,其通信主体不但包括物理节点, 还包括智能软件实体,该软件实体与其驻留地没有依附关系。 通信的环境不同。这也就是网络与分布式系统的区别。网络中节点大量扮演 着客户机或服务器角色,但分布式系统环境要更为复杂,有对等节点,主从节点, 还有很多后备节点,中间节点,容错节点,回收服务节点,各种专项服务节点( 不 同于服务器,它主要用于产生智能软件实体) 。它们之间的关系也更加复杂,制约 性,关联性更多。 江苏大学硕士学位论文 1 5 研究现状【2 】【3 】【1 3 】 在分布式计算技术发展史上,有两种分布式系统的最重要的分支:分布式系 统环境d s e ( 如d c e ,c o r b a ,d c o m ) 和分布式操作系统d o s ( 如a m o e b a ,m a c h , c h o r u s ) 。这其中包含了很多分布式通信子系统。 a m o e b a 系统起源于1 9 8 1 年荷兰阿姆斯特丹v 墒e 大学的一项研究课题。1 9 8 3 年诞生原型。后扩展到欧洲其他国家的一些节点。目前该系统已具有部分u n i x 模拟,组通信等特征,它采用基于远程进程调用( r p c ) 实现异地通信【2 】。 m a c h 的最早版本是1 9 8 6 年推出,能运行于多c p u 的x 机上,后被移 植到其他系统上( 如s u n ) 。j9 8 8 年c a n l e g j em e j l o nu n j v e r s j t y 精简m a c b 内核, 形成m a c h 微核。目前研究的目的包括为构造其他操作系统提供基础,允许对 网络的透明访问及加强系统并行性,它提供异步消息传递,r p c ,位流等多种 通信方式【2 】。 美国a 唱0 1 1 1 1 e 国家实验室和南c a l i f o m i a 大学联合开发了通信软件包 n e x u s ,它作为元计算系统底层工具g l o b u s 的通信软件包,支持广域网络上 的联合计算。n e x u s 是个服务于高层通信库的可移植的多线程通信库,支持 通信起点的移动性和轻型线程机制瞵j 。 d c e ( d i s t r i b u t e dc o m p u t i n ge n v i r o 啪e n t ) 是o s f ( 开放式系统基金会) 研制的 集成软件包。不同于建立一个崭新的微核系统,d c e 所建立的分布式系统存在 于现有操作系统之上,其主要目标是提供作为分布式应用运行平台的一致和无 缝集成环境,以支持异构环境下的协同设计。它对r p c 进行了一定扩展,可以 处理双向消息传递,并且屏蔽网络细节1 3 ”】。 l i s k o v 和s h r i r a 提出的异步r p c 已经成功运行在m i t 的m e r c u r y 的通信 系统上【5 1 。b e r s h a d 则提出轻量级r p c 利用线程概念提升性能 6 】。各种对r p c 的扩展也不断出现,如r e v ,c d c 等。 组通信方面也有不少研究,代表性作品是c o m e l l 发展起来的i s i s ,是用来 构造分布式协同应用的工具包,提供了很好的同步机制和容错性能,特别是它 提供了松散同步通信,使得组通信的效率有较大提高1 2 j 。 在分布式系统通信的预制基础上也有大的发展。面向对象思想和分布式计 算技术的结合形成了分布式对象模型。1 9 9 1 年o m g 颁布了c o r b a l 0 标准, 主要目标是解决异构应用的互操作问题,目前的版本是3 o 。微软推出了d c o m , 6 江苏大学硕士学位论文 以及后来的c o m + ,成为该领域另一个有力竞争者,尽管c o m 最初只用于 w i n d o w s 平台,但现在s o l a r i s ,u n i x ,d 酒t a l ,l i n u x 及i b mm v s o s 3 9 0 等操作系统也已看到各种版本的c o m 。s u n 公司创建了e j b 规范和j 2 e e 体系 结构,提供了基于w e b 的分布式计算的完整解决方案。这三种模型的应用都很 广泛,为异构异地环境下的制造业网络化提供强有力的预制基础。 近年来,移动a g e n t 技术的兴起又开创了异步通信新的纪元,它完全脱离 传统系统通信的构思,形成了新的异步模式和体系,也因此成为了研究热点。 相关的研究很活跃:m a m i c h i 等人提出了一种计算组织模型,该模型通过信息 解释器实现a g e n t 的自治,通过a g e n t 组构成组织结构,通信采用组播方式, 可在a g e n t 之间以及a g e n t 与环境之间进行通信10 】【1 3 】;l e n a t 提出了一种平行 的组织结构,其中每个a g e n t 是一个专家,a g e n t 之间的交互由行为规划指导, 并选定一个a g e n t 负责处理冲突问题 9 】【1 3 】;s h o h 锄根据面向对象程序设计 ( o o p ) 思想,提出了面向a g e n t 的程序设计框架;l e s s e r 等人在增强单个 a g e n t 适应能力上做了大量工作,通过局部规则来控制a g e m 的动作1 1 2 】【1 3 】。a g e n t 技术在敏捷制造( a m ) ,工作流管理等方面得到了广泛应用。 1 6 本课题的研究意义和内容 本文研究支持网络化制造的分布式异步通信问题。网络化制造环境的复杂 性为构建相应的分布式应用带来了诸多困难,特别在支撑网络的通信方面,通 信的规模,数据的复杂以及节点的分散使得原有适用于局域网和小规模广域网 的通信模式难以维持应用需求。这些问题推动了分布式异步通信的研究,目前 在国内外,相关的理论成果虽然有一些,但由于该领域涉及的面广,问题新, 学科交叉复杂,很多地方的研究不够深入甚至还是空白,特别是在对分布式异 步通信内核发展的分析,异步通信的容错,协作通信等方面的文献较少,而这 些问题都是分布式异步通信的核心问题。因此本文打算在这些方面作一下尝试, 基于上述考虑本文作了以下些工作: 在第一章里简要分析了传统制造业向网络化的转变,并提出了网络化过程 的关键问题,由此引入分布式异步通信的课题,简要介绍了分布式异步通信研 究的过去和现状。 在第二章里剖析了分布式异步通信的内部机制和演变过程,初步探讨了异 步移动a g e n t 应用于分布式系统通信带来的革新性变化,其中对一些内核机制 江苏大学硕士学位论文 的分析笔者加入了自己的理解; 在第三章里笔者提出在c o m + 预制基础上构建移动a g e n t 企业级信息系 统,详细表述了如何将移动a g e n t 技术整合于c o m + 结构之上,并从理论上论 证了方案的可行性和实用性,这是本文的创新点之一: 在第四章里详细分析了多a g e n t 成组行为和协作模式,并阐述了笔者自己 对各种模式的理解和剖析,在最后提出了关联组,嵌套组以及a g e n t 工厂等一 系列概念和理论,并初步讨论了对其研究的方向和必要性,这是本文的创新点 之二; 在第五章里详细讨论各种a g e n t 容错技术,针对当前已有技术的不足,笔 者提出了树型容错结构,多a g e m 请求多代理,a g e n t 嵌套组等新的容错技术, 这是本文的创新点之三,并对移动环境下的容错机制进行了分析。 在第六章里以一个支持异步通信的原型信息系统验证了部分所述理论,系 统简单模仿了移动a g e n t 和c 0 m + 队列的基本功能,并采用了一种简捷有效的 队列容错模型。 3 江苏大学硕士学位论文 第2 章分布式异步通信的发展 分布式异步通信不是蹴而就的,为适应应用需求经历了几个阶段。在构建 分布式系统应用中,我们曾面临过两种环境:局域网络和广域网络。对于相对传 送速度较慢的广域分布式系统来说,需要使用o s i 和t c p i p 这样的面向连接的 分层协议,我们需要克服数据传输的不可靠性和低效率。对于局域分布式系统可 采用较简单的模式,简化协议层,取得更高的性能( 如无连接,阻塞,无缓冲等) 。 本章我们将考察远程通信的减缩原型和远程过程调用的基本原理和进一步的扩 展,从而探究分布式异步通信发展的原动力。 2 1 分层协议 网络系统是复杂的,节点通信需要协调很多工作,除必须有一条数据通路外, 发起方如何将数据通路激活,网络如何识别接收方,发起方如何知道接收方已准 备好接收数据,通信格式是否兼容,如何完成格式转换,对出现的各种差错和意 外事故如何检测和处理等等都是要考虑的问题。为使不同网络体系结构用户能够 互通信息,早期的网络协议0 s i 七层协议模型应运而生,随着i n t e m e t 的快速发 展,t c p i p 协议已成为事实上的广域网通信标准。 这里我们以w i n d o w s 操作系统为例看看实际应用中分层协议的跌射。 w i n d o w s 总体构架分为两层:应用层和核心层。这种分层结构可以实现代码共享, 如多个程序使用相同的网络协议,可以共用驱动程序,就像d l l 库和组件被多个 进程调用样。分层结构还可以提高安全性,应用层代码和核心态下进程被赋予 不同运行权限,前者不能操作内核资源,从而保护内核不受应用程序崩溃的危害。 图2 1 是q q 聊天过程的示意。 。应用层 应用层霾纛薰蘸雾嚣篱篱l l l l l | | 黼 l 在编辑框中输入文字并发选 i 显示数据 i 封应用层图应用程序e x z i 。甚嫠萏箍囊裂罩层即核il 。接收s t 动程;传采的数据包l 翳 冀薹 壤3 坠i 詈芸兰 f 黝籍盛篷螯焉擎数据f 隰磊质嚣婆黍龚麓蓊蚓l 传输层 溱 t n i 帆也s y s ) o o g 同路层珊i s 缸也s y s ) j 网卡拓数据包发出 ? 网卡接收数据包 ji 链路层网骆b cd ,s y = ) i l 核心层i 物理层 网卡 图2 1q q 聊天过程和o s i 七层协议映射 江苏大学硕士学位论文 w i n d o w s 对每一层都作了相应的接口,层次分明,在开发面向底层的网络应 用时( 如防火墙,远程监控) ,通过调用不同层的服务提供者可以满足不同的底层 要求。如现在大多数防毒软件是采用n d i s 中间驱动程序截取网络封包,高级的 木马在与母机联络时也通过这种方法穿透防火墙。 2 2 客户机服务器模式的三个原语 删e ( 1 ) :怒三二置蛆。r 删掣6 7 胁:& ? 1 k 曼蒜意,; s w i t c h ( m 1 a c t i o n ) ;:i :e ( b u f f e i & m 2 j : 二- 江苏大学硕士学位论文 当一个进程调用s e n d 原语后,直到消息传送完毕,其后的指令才能执行。调 用,e c e i v e 时,直到信息被接收并放入指定缓冲区中控制权才返回主进程。在s o c k e t 原函数或m f c 的c s o c k e t 类中,也是这么处理的,如r e c v 函数非要从缓冲区里 读些什么出来否则不能返回,调用它的进程就挂起。这就是阻塞。其优点是有效 控制服务器端和客户端进程的同步,而且易于理解和实现。 如果s e n d 是非阻塞的,则s e n d 被调用后控制权立即返回,信息传送和进程 并行运行,达到这种效果有三种办法:设内核缓冲存放消息( 不直接发给接收进 程) : 使用事件中断通知;多线程下的伪异步。 图2 2 ( a ) 是阻塞模式,( b ) 是内核缓冲模式,进程不等到消息发送完毕,而只 要在消息拷贝至内核缓冲区后就夺回控制权。其阻塞时间大大少于( a ) ,但拷贝仍 然要花费c p u 周期;( c ) 的程序并行性更强,但在通信过程中频繁的中断不利于 系统稳定性,程序控制也更加困难;( d ) 是现在很普遍的做法,它采用线程与内核 和线程与线程交互,在同一进程内对不同任务指派不同线程,保持主线程的活跃, 对副线程采用阻塞方式,因此副线程的阻塞不会影响整个进程的执行,从而在进 程级上呈现出异步的表象,线程级上还是简单稳定的阻塞形式,故称为“伪异步”。 进程执行 进程继续执行 应用层 二器 扬幅燃k 间i 婆熊邃铲 进程等待j ,。l 控制权返回 消息发送i 赳t h _ l 剧i ( a ) 进程执行进程继续执行控制校不转移 应用层 二黼黼露 杨幅黼瓣矧耥用 进程等待 薹k l 缓冲区可用 消息存入缓冲l 啊j q f 进程执行进程继续执行 应脆旦壁 搀幅黼黼抖 进程等特f 薹t 1 i 控制权返回 消恳存入壤冲l 盯1 日j i ( b ) 进程 磊娶覆行 线程1 = = 二二瓣 应用扉 线程3 仁二二二二) i j 鬻囊 ( d ) 图2 2 阻塞与非阻塞模式比较 在w i n d o w s 套接字环境下,其异步i o 模型更加丰富。它们包括s e l e c t ( 选择) , w s a a s y n c s e l e c t ( 异步选择) ,w s a e v e n t s e l e c t ( 事件选择) ,o v e r l a p p e d ( 重叠) 和 江苏大学硕士学位论文 c o m p l e t i o np o r t ( 完成端口) 【1 4 1 【4 7 1 。 s e l e c t :如前所述,调用s e n d 或r e c e i v e 操作空的缓冲区会使进程处于阻 塞状态,如果能对所要操作的套接字进行预判这种情况就能避免。利用 s e l e c t 函数,我们判断套接字上是否存在数据,或者能否向一个套接字写 入数据。这个函数唯一的目的便是防止应用程序在套接字处于锁定模式 中时,在一次i ,o 绑定调用( 如s e n d 或r c c e i v e ) 过程中,被迫进入“锁定” 状态;同时防止套接字处于非锁定模式中时,产生w s a e w o u l d b l o c k 错误; w s a a s y n c s e l e c t :基本和s e l e c t 模型相同,但它更好的结合w i n d o w s 操 作系统,可在套接字上接收以w i n d o w s 消息为基础的网络事件通知( 如 f d r e a d ,f d a c c e p t ,f d p o b 等) 。通过该函数自动将套接字设置 为非阻塞模式,并向w i n s o c kd l l 注册用户要求的网络事件,提供一个 窗口句柄用于接收事件消息,也就是说,它遵循w i n d o w s 消息传递和驱 动机制; w s a e v e n t s e l e c t :同样可在套接字上接收以w i n d o w s 消息为基础的网络 事件通知,但它与w s a a s y n c s e l e c t 的差别在于网络事件被一个事件对象 旬柄接收而不是一个窗口。 o v e r l a p p e d :这种模型面向大规模应用,使程序性能达到一个新的台阶, 相比前几个对内部进行了质的优化。重叠操作的基本含义是发送操作和 接收操作都可以被重叠使用,多次调用将会组成缓冲区队列,灵活应付 数据量不同或落差很大的信息投递,其内部机制能快速定位空缓冲区。 如图2 _ 3 所示缓冲区队列的引入使服务器可以接纳少则一个,多则数千个连 接,减少了本地处理和数据接纳的速度差异,提高了系统并行性。 图2 - 3 重叠端口模型 江苏大学硕士学位论文 c o m p l e t i o np on :一个完成端口其实就是一个通知队列,由操作系统把已 经完成的重叠i o 请求的通知放入其中。当某项i o 操作一旦完成,某个 可以对该操作结果进行处理的工作者线程就会收到一则通知。而套接字 在被创建后,可以在任何时候与某个完成端口进行关联。每个线程都将 分到一定的c p u 时间,在此期间该线程可以运行,然后另一个线程将分 到一个时间片并开始执行。也就是说,完成端口是o v e r i a p p e d 和事件通 知的组合,同时采用了多线程下的伪异步技术。像w i n d o w s3 1 上的 w s a a s y n c s e l e c t ( ) 及u n i x 下的s e l e c t ( ) 那样的函数虽然易于使用,但是它 们不能满足响应规模的需要。而完成端口机制是针对操作系统内部进行 了优化,在w i n d o w sn t 和、聃n d o w s2 0 0 0 上,使用了完成端口的重叠 i o 机制才能够真正扩大系统的响应规模。 2 2 2 有缓冲和无缓冲 如图2 4 ,有无缓冲的基本含义就是内 核缓冲区的存在与否,现在的系统通常都是 有缓冲的。无缓冲系统是不可想象的,那需 要服务器和客户方十分优越的同步性,无论 计算机硬件如何升级,在对多,多对多的 情况下这种同步是不可能的,接下来就只是 频繁的重发和丢包,通信的低效是不可思议 的。当然缓冲区是有限的,但它可以避免绝 无缓冲s e r y e r 图2 4 有缓冲与无缓冲信息传输 大多数的传输冲突,看看操作系统理论中s p o o l i n g 以及i ,o 缓冲对于提高c p u , 通道和i o 设备的利用率和并行度就知道缓冲的重要性了。 2 2 3 可靠与非可靠 这种提法不是绝对的。可靠的典型范例是t c p 的三次握手协议,通信由从客 户到服务器的请求和服务器到客户的应答组成。但根据著名的两军问题可以知 道,保证1 0 0 的可靠是不可能的,因为最后发出响应的一方永远也不知道对方 是否受到或f 确受到它发出的响应。在现实的系统中,采用校验码的方法保证数 据接收的正确性,相当于盖戳或验证密码。 江苏大学硕士学位论文 2 3r p c 的基本原理 尽管分布式系统的基本通信范例是输入输出( s e n d ,r e c e i v e ) ,但输入输出显然 不是单机系统应用的核心,程序员也不喜欢含有显式通信原语的编程风格,网络 系统如果仅仅只是一些s e n d ,r e c e i v e ,那也太没有生命力和乐趣了。r p c f r e m o t e p r o c e d u r ec a l l 远程过程调用) 是一个著名的,支持远程调用函数的标准。它允许程 序调用位于其他机器上的过程,调用方进程挂起,直到被调用方将结果传送回来。 它的显著优点是位置透明性,支持多线程和兼容性,这些观念允许人们把三层系 统扩充到多层系统并引进代理概念,正是r p c 的来临使得企业范围内分布功能和 服务变得容易,因此提到分布式计算就不能不提r p c 。 2 3 1 过程调用 要了解r p c 如何工作,首先要了解单机上的过程调用。考虑如下的函数调用: i n tc a l c u l a t e ( i n tm ) i f ( m 2 2 ) r e t u m m ; e l s er e t u mm c a l c u l a t e ( m - 1 ) ; v o i d m a i n ( v o 试) ( i n ta ,b ; r e a d ( a ) ;设a = 3 , b = c a l c u l a t e ( a ) ; w r i t e ( b ) ; ) k + 1 4c a l 返回结果 k + 1 3m2 k 十1 2参数个数1 k 十1 1 返回地址 k 十1 0k + 5 ( s p l ) k + 9c a l 返回结果 k + 8m3 k + 7 参数个数 i k + 6 返回地址 k + 5 k ( s p 0 ) k + 4c a l 返回结果 k + 3b k + 2a3 k + 1 k老s p k + 3b6 k + 2a3 k + 1 k老s p 图2 5 函数调用时的堆栈变化( 右图是调用后的栈) 江苏大学硕士学位论文 调用开始时,调用者会将形参,局部变量压入堆栈,在每一过程执行后,该 过程将返回值送入寄存器中,从栈中取出返回地址( 即调用语句的下一条指令地址) 并转控制权给调用者,调用者根据s p 值退栈,并从寄存器中取出返回值压栈。 r p c 的目的是使不同机器间的过程调用看上去与本地过程调用一样。在前面 的章节里,我们已经了解到远程通信的最基本模式并知道这早就得到实现,抛开 复杂的通信控制和端口模型不谈,我们离实现r p c 的最基本功能实际上只差一步 之遥,那就是消息的格式化。因为上述栈的变化过程只在服务器上发生,它所需 要的就是参数的数值而己。让我们把图2 1 的q q 图变一个形式: 客户存根服务器存根 i 结果显示i 在编辑框中输入参数数值 | | 被调用的函数运行 ti ti 结果返回 黪鬻獭辩醣 嘲黼黼溯黪黼蜡鞴鞣隧黼剿嘲嬲燃黼l 隧糍徽积锵鳓女嘲舞黼黼嘲鼬麟蠛黼鞘黼瓣嘲麟戮麟照 酬 8将罄驽挥皋蛰式图攀堡以枣垫式洲将数据按一定格式图数据以一定格式6 i 拆包井送入上层 圈打包并佶入下层胂拆琶并送入王层。圈打包异传入下层 j 核心层处理发送 jf 核心层处理发送 图2 6r p c 中的调用过程 可以看到图中的关键就是两个存根,实际上s e n d ,r e c e i v e 原语和参数打包都 隐藏在存根里,存根成为机器间进程通信的代理,其过程对于用户来说是透明的。 2 3 2 参数传递和指针传递 客户机调用的是一个本地代理过程( 存根) ,丽不是实际实现过程的代码。代 理过程与客户机的应用程序一起编译并链接。存根并不包含实现远程过程的实际 代码,而是: 从客户机的地址空间检索需要的参数。 将需要的参数翻译成标准网络数据表示格式( n d r ) ,以在网络上传输。 调用r p c 客户机运行时库中的函数,以将请求和参数传送给服务器。 服务器需要完成以下步骤以调用远程过程: 服务器的r p c 运行时库函数接受请求,调用服务器的代理过程。 服务器的代理过程从网络缓冲区中检索参数,并将其从网络传输格式转 换成服务器需要的格式。 服务器的代理过程调用服务器上的真实过程。 江苏大学硕士学位论文 值返回时的原理是一样的。在r p c 模型中,可以使用一个专门为此目的而设计的 语言,在形式上为远程过程指定接口。这种语言叫接口定义语言( i d l ) ,微软对这 种语言的实现叫做微软接口定义语言( m i d l ) 。 举一个简单的例子,函数c a l c u l a t e ( c h a r x ,l o n g y ,n o a tz 【3 】) 被远程调用,与 本地调用不同,参数类型对于远程服务器是不可知的,因此服务器无法为不可知 类型的参数准备缓冲,所以需要带一个类型标识。如图2 7 所示。客户端按如下 形式将参数打包,服务器端则根据第一个字段选择被调用的 过程。 使用指针作为参数是非常高效的。指针只需少量的字节, 但可用来访问大量的内存。可是,在分布式应用程序中,客 户机和服务器过程驻留在不同的地址空间内,它们可以运行 在不同的机器上。因此,客户机和服务程序常常不能访问同 一内存空间。比如对函数 r e a d ( f d ,b u f 斑r ,n b ”e s ) 调用,b u 肫r 是个

温馨提示

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

评论

0/150

提交评论