当前位置:文档之家› 浅析分布式系统进程间通信

浅析分布式系统进程间通信

浅析分布式系统进程间通信
摘要:若干大量独立的计算机通过网络联系在一起,组成了分布式系统,在这种环境下,合作进程通过消息的传递进行通信需要访问分布在整个网络中的资源,所以一个好的通信机制比较重要。

关键词:分布式系统;进程间通信;通信机制
随着微型电子技术的发展,计算机的硬件成本不断下降,计算机应用技术得到了广泛的应用和很大的提高。

特别是高性能微处理器的开发和高速计算机网络技术的发明,可以把若干由大量计算机组成的计算机系统彼此通过高速网络连接,这种系统一般称为分布式系统。

分布式系统是若干独立计算机和用于交换信息的通信设备的集合,这些计算机对于用户来说就像是单个相关系统。

它主要提供分布计算机和分布处理功能。

随着Internet技术的分速发展和应用,进程间通信已经成为分布式系统的重要核心。

一、分布式系统简介
分布式系统便于资源共享。

各种信息、文件、数据库和各种昂贵的硬件资源被分布式地管理和维护,并为用户的访问提供了方便。

这样就能节省大量的重复投资。

分布式操作系统是运行在分布式计算机系统的操作系统。

它是在多机环境下,负责控制和管理以协同方式工作的多种系统资源,进程的同步和执行,处理机间通信,调度等控制事务,自动实行全系统范围为的任务分配和负载平衡,方便用户使用,并具有高度并行性的一种高级系统软件。

二、分布式系统间的通信
一个分布式操作系统应该包括网络上的所有计算机,在一个分布式环境下,合作进行通过消息的传递进行通信因为需要访问分布在整个网络中的拥有资源,所以一个好的通信机制相当重要,进程间通信是一切分布式系统的核心。

本文主要介绍以下四种通信模型,远程过程调用(remote procedure call,RPC)、远程方法调用(remote method invocation,RMI)、面向消息的中间件(message-oriented
middleware,MOM)以及流(stream)。

三、分布式系统的四种通信模型简介
分布式系统中的远程过程调用RPC ,它的目的在于将消息传递的大部分复杂性隐藏起来,它比较适用于客户-服务器应用程序。

远程过程调用RPC允许程序调用另外机器上的过程。

当机器A的一个进程(或者线程)调用机器B上的一个过程时,A上的调用进程挂起,被调过程在B上开始执行。

调用者以参数形式把消息传送给被调用者,被调用者把过程执行结果回送给调用者。

对程序员来说,完全看不到消息传送或者I/O。

远程过程调用的基本思想很简单,虽然存在一些具体问题,如调用过程和被调用过程运行在不同的机器上,它们在不同的地址空间内执行,带来了复杂性,还需要进行参数和结果传递,但远程过程调用目前在分布式系统中被广泛的应用,已经成为远程进程相互通信的基本方法之一。

远程方法调用RMI是对RPC模型的一种改进形式,它是基于分布式对象概念的。

对象最重要的特征之一就是通过定义良好的接口向外界隐藏其内部结构。

这种机制保证了只要保持对象接口不变,就可以方便地替换或者修改对象。

将客户绑定到对象后,客户通过代理(Proxy)来调用对象的方法。

代理是与客户端对象通信的对象本身。

当客户端创建远程对象的实例时,基础结构就会创建一个代理对象,该对象在客户端与远程类型完全相同。

当客户端调用该代理对象上的一个方法时,该代理就会调用远程处理的基础结构。

远程处理基础结构将请求路由到服务器进程,然后调用服务器对象,并将结果返回给客户端代理,最后客户端代理将结果传递给客户端对象。

由于所有这些操作都是在后台进行的,因此客户端对象可能完全不知道另一个对象驻留在其他计算机上。

远程过程调用和远程对象调用都有助于隐藏分布式系统中的通信,也就是说增强了访问透明性。

但是在许多分布式应用程序中,通信并不遵循严格的客户-服务器交互模式,当无法保证发出请求时接收端一定正在执行,在这种情况下,从消息的角度来考虑会更恰当。

然而,计算机网络的低层通信功能由于缺乏分布透明性,从许多方面来说并不适用。

我们采用高层消息队列模型来替代,也就是分布式系统中面向消息的通信机制。

面向消息中间件(MOM)服务一般称为消息队列系统,或者面向消息的中间件。

中间件是处于操作系统和应用程序之间的软件,也有人认为它应该属于操作系统中的一部分。

人们在使用中间件时,往往是一组中间件集成在一起,构成一个平台(包括开发平台和运行平台),但在这组中间件中必需要有一个通信中间件,这个定义也限定了只有用于分布式系统中才能称为中间件,同时还可以把它与支撑软件和实用软件区分开来。

以上我们讨论的都是对某种程度上独立且完整的消息单元进行交换,这种类型的通信的典型特征是不在乎通信究竟在哪个确切时间发生。

虽然系统可能会运
行得过快或过慢,但是对同步通信的正确性没有影响。

在某些形式的通信中,同步扮演了关键的角色。

随着多媒体分布式系统的出现,需要对音频和视频这样的连续媒体的通信支持。

为此,引入流(stream)的概念,流可以在有时间限制的条件下支持消息的连续流。

四、结语
分布式系统有效地解决了地域分布很广的若干计算机系统间的资源共享、并行工作、信息传输和数据保护等问题,从而把计算机技术和应用推向一个新的阶段。

【参考文献】
[1]分布式操作系统概念与设计[M].机械工业出版社.
[2](美)A.S.塔恩鲍姆(Andrew S.Tanenbaum)著,陆丽娜等译.分布式操作系统Distributed operating systems.
[3]郭威.分布式系统的进程间通信技术的研究和开发[D].北京工业大学,2006.
[4]Andrew S.Tanenbaum等著,杨剑峰等译.分布式系统原理与范型[M].清华大学出版社.
[5]罗武.IPv6分布式路由器中扩展RPC机制的设计与实现[D].西安电子科技大学,2004.。

相关主题