分布式系统进程通信模型的选择.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
分布式系统进程通信模型的选择 进程通信是进程之间信息的交换。进程间通信是所有分布系统的核心。在进程之间存储信息需要两个消息通信原始语言:发送和发送。在分散的系统中,通信通常基于低级网络提供的低息传输机制。现代分布统计通常包含数千万个进程,需要一种取代计算机网络的原始通信功能。否则,很难开发大规模的分布式应用程序。在分布式系统中,要解决的重要问题是,提供更高级的抽象以实现通信层接口提供的支持,以便更容易实现进程之间的通信。在本文中,我们分析了分散进程中的通信模型,并提出了在开发分割应用程序时选择通信模型的原则。 1 中间件协议协议的独立 分布式应用程序可以直接使用网络操作系统提供的编程接口如套接字,这种方法使得分布难以做到透明,不利于编写大规模分布式应用程序.现在常用的编程平台是中间件,中间件系统提供多种通用的服务,并通过提供高层通信功能以隐藏通过计算机网络进行的低层消息传递,力图实现访问透明性.支持通信的具体方式,随中间件系统向用户和应用程序提供的分布模型的不同而有较大差异,如RPC,RMI和消息队列等. 中间件包含了许多通用的协议,协议独立于特定的应用程序;同时,将中间件协议与应用层协议区分开来,有利于应用程序的开发,例如认证(Authentication)协议的定位,建立认证机制来确认身份,由于认证协议并不仅限于一个特定的应用,它用于分布式系统的许多方面,它应被集成到中间件系统中作为一个特定的服务.因此中间件需构建在一个独立的层次上.中间件通信协议应支持高层通信服务,如RPC支持一个进程以透明的方式调用另一台机器上的一个过程;RMI支持一进程以透明方式访问远程机器上的一个对象.因此在网络通信分层结构模型的基础上,分布式系统的通信模型可以构成如图1所示的六层模型,同OSI/RM相比,OSI/RM的对话层和表示层被中间件层所取代,它包含一些独立于特定应用程序的协议.传输层服务可以不加修改地作为中间层服务. 如图2所示,中间件层位于应用层和传输层之间.中间件层又分为两部分:RPC,RMI等中间件服务和编码及外部数据.前者在下节将做重点说明.编码和外部数据表示,存在两种比较流行的风格:CORBA公共数据表示和Java对象序列化.CORBA采用的编码数据方式要求接收者具有各个成分的类型知识,还需要编码(如IDL)数据项类型的规范,以便生成编码和解码方法.相反,Java序列化数据包括了关于内容类型的所有信息,允许接收方根据内容重构,而且Java使用反射,进行序列化对象和解序列化串行格式的对象. 2 持久通信.关于用户体验管理 在分布式系统中,消息的发送者和接收者有时可能都在运行中,有时可能不同时运行.根据是否要求发送者和接收者同时处于运行中,进程通信分为持久通信和暂时通信.持久通信需要传输的消息在提交之后由通信系统来存储,直到将其交付给接收者为止.持久通信要求存在持久保存消息的消息服务器,消息保存在硬盘中,消息服务器给发送者和接收者起到桥梁作用,因此发送消息的应用程序不必在提交消息后保持运行.同样,要接收消息的应用程序在消息提交给消息服务器时也可以不处于运行状态. 暂时通信只在发送和接收消息的应用程序运行期间存储消息.如果路由器无法将消息递送到下一个路由器或者接收者,消息将会被简单地丢弃.例如传输层通信服务都仅仅提供暂时通信. 持久通信和暂时通信各有优缺点.暂时通信有很高的效率,实时性强,而且不需要额外的硬件支持.然而,暂时通信很难做到地域扩展,暂时通信的容错能力也较弱,系统发生故障时,难于将故障屏蔽并启动恢复过程.持久通信能克服暂时通信的缺点.分布式系统由局域网环境向互联网环境扩展过程中,持久通信就能发挥重大作用.在不可靠的互联网中,可能由于网络故障或者进程故障导致访问受到限制,并且很难做到发送应用程序和接收应用程序同时处于工作状态,持久通信牺牲通信延时,但可以保证消息可靠接收.持久通信的另一个优点是,系统存在坚固存储器,容易屏蔽故障及从故障中恢复出来. 另一种进程通信分类方法根据通信过程中是否存在阻塞及阻塞状态,通信又分为同步通信和异步通信.异步通信的特征:发送者把要传输的消息提交之后立即继续执行其它程序,因此该消息存储在发送端主机的本地缓冲区中,或者存储在送达的第一个通信服务器上缓冲区中.在异步通信中,send操作是不阻塞的,因为只要消息被复制到一个本地缓冲区,发送进程就允许继续进行其它处理,消息的传递与发送进程是并行工作的.receive操作可用阻塞和非阻塞两种.阻塞型receive的显著优点是根据到达的消息同步接收线程在实现上很简单.尽管阻塞型原语会牺牲并发性,可是在支持多线程的系统环境如java中,此缺点可以克服,因为receive操作可由一个线程发出,而该进程中的其它线程仍然是活动的. 同步通信的发送者在提交消息之后会

文档评论(0)

182****7741 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档