浅议进程间通信的分布式实现

时间:2022-10-14 02:16:59

浅议进程间通信的分布式实现

摘 要:利用进程间通信进行应用程序设计是一种可以充分利用系统资源、提高程序运行效率的良好方法。近年来,随着网络和分布计算技术的高速发展,在网络,特别是分布式环境下的应用系统越来越多。而在网络和分布程序设计中,通常包括很多需要相互通信的进程,因此进程间通信的机制在程序设计中就显得更为重要。本文主要讨论了分布式的概述和进程间的通信机制,以及分布式系统中多层分布式系统的应用和特点,得出分布式系统在进程间通信过程中的应用和实现,从而大大提高了计算机的工作效率。分布式系统在使计算机用户实现数据的透明访问的同时提高了计算机的性能和可靠性。相信随着科技的进步,分布式系统将大大提高服务性能,更好的满足客户的需求。

关键字:分布式系统;进程间通信;通信方法

中图分类号:TP31文献标识码:A文章编号:2095-2104(2012)01-0020-02

Research on Process Communication Realized by Distributed System

WANG Lichuang, ZHOU Zengming,

(1. Hebei Far East Harris Communications Company Ltd,Shijiazhuang 050000, China)

Abstract: Using inter-process communication in application programming design is a good method, which can make full use of system resources as well as improving the efficiency. The Internet and distributed computing technology develop fast recent years, as a result, more and more application systems applied to the network aspect, especially to the distributed environment. But progresses communication are usually contained in the network and the distributed programming design, therefore, the communication mechanism among processes becomes even more important. This paper focuses on the overview of distributed system and process communication mechanism, also the applications and characteristics of the multilayer distributed system, make a conclusion by the applications of distributed system, can greatly improve the computer efficiency. With distributed system, computer users can get data by transparent access , this also could improve computer performance and reliability. The distributed system would greatly improve the service performance itself, and meet the needs of the customers more perfect in future.

Keywords: Distributed systems; Inter-Process Communication; Communication methods

前言

从上个世纪四五十年代,伴随着计算机的产生和发展,计算机的处理系统也在进一步地发展。五十年代,计算机是通过串行处理,一次进行一个作业直到结束,这种处理是需要操作员通过操纵台进行操作,普通用户无法访问。六十年代,以一组相似的作业进行批量操作处理,进步在于减少了计算机的空闲时间。七十年代,进一步发展,产生了分时系统,进一步提高了计算机的利用率。八十年代,则主要是个人计算机发展的阶段,相应的处理器是用户个人专用的。分布式系统随着分时系统的进一步发展和网络技术的提高成为了现实。用户在完成任务时,分布式系统提供了对尽可能多的计算机能力和数据的透明访问,并且提高了性能和可靠性。

1 分布式系统概述

分布式系统是指是建立在网络之上的软件系统。其特点是具有很高的透明性和内聚性。分布式系统是一个相对新的领域,与顺序计算相比,并行的、并发的和分布式的计算包括多个PE见的集体协同动作,这些属于在范围上相互覆盖,可以互换使用。

并行式的是指从一个单一控制现成对数据集的lockstep动作。在并行计算机级别上,单指令流多数据流(SIMD)计算机就是一个使用多个数据处理单元在多个数据项上同时进行相同或相似操作的例子。

并发式的是指,一些动作可以任意次序执行。比如,可以在较高级别上和多指令流、多数据流(MIMD)并行计算机上进行部分独立的操作。

分布式的则指计算的成本或性能取决于控制和数据的通信。

集中式的是指一个系统的部件局限在一个地方,分散式的则指系统的部件不在一个地方,部件之间或者不存在或只存在有限的合作,或者存在紧密的合作。网络式的是指当一个分散式系统不存在或只存在有限的合作的情况,否则被称为分布式的,即在不同地方的部件之间存在着紧密的合作。分布式系统通常以控制、数据、硬件这三个维度进行检验。

于是,分布式控制+分布式硬件+分布式数据=分布式系统。

2 进程间通信概述

进程通信是指进程间的信息交换,是分布式系统的核心。进程间进行消息传递需要支持两个消息通信语,分别是发送(send)和接收(receive)。分布式系统的通信是以底层网络提供底层消息传递机制为基础的。现代分布式系统中的进程数量达上百万个,替代计算机网络的原始通信功能的技术已是必然趋势。

2.1分布式系统进程通信

分布式应用系统可以直接使用网络操作系统所提供的编程接口。但是这种方式难以使分布做到透明化,对于编写大规模分布式应用程序不适用。现在常用的编程平台是中间件,中间件系统提供多种通用的服务,通过计算机网络进行的底层消息传递的隐藏可以通过提供高层通信动能来实现,以便访问的透明性。支持通信的具体方式,随中间件系统向用户和应用程序提供的分布模型的不同而形成较大的差异,例如RPC,RMI和消息队列。

2.2进程通信中的持久性和同步性

在分布式系统中,消息的发送者和接受者可能在同时运行中也可能不在同时运行中,所以进程通信分为持久通信和暂时通信,持久通信需要传输的消息在提交之后由通信系统来存储,直到将其交付给接收者为止。持久通信要求存在持久保存消息的消息服务器,消息保存在硬盘中,消息服务器给发送者和接收者起到桥梁作用,因此,发送消息的应用程序不必在提交消息后保持运行。同样,要接收消息的应用程序在消息提交到消息服务器时也可以不处于运行状态。

暂时通信只在发送和接收消息的应用程序运行期间存储消息,如果路由器无法将消息递送到下一个路由器或者接收者,消息将会被简单地丢弃。例如传输层通信服务都仅仅提供暂时通信。

持久通信和暂时通信各有优缺点.暂时通信有很高的效率, 实时性强, 而且不需要额外的硬件支持.然而, 暂时通信很难做到地域扩展,暂时通信的容错能力也较弱,系统发生故障时,难于将故障屏蔽并启动恢复过程.持久通信能克服暂时通信的缺点。分布式系统由局域网环境向互联网环境扩展过程中,持久通信就能发挥重大作用.在不可靠的互联网中,可能由于网络故障或者进程故障导致访问受到限制,并且很难做到发送应用程序和接收应用程序同时处于工作状态,持久通信牺牲通信延时,但可以保证消息可靠接收.持久通信的另一个优点是,系统存在坚固存储器,容易屏蔽故障及从故障中恢复出来。

3 分布式系统的应用和标准

分布式系统应用于许多不同的应用中,在众多的应用中使用分布式系统要明显优于其他系统,特别是在单机处理和共享存储器多处理机方面,以下列举一些具体应用:

3.1容错应用

由于每个PE的自治性特点,分布式系统更具有可靠性,可以使机器的某一部件出现故障时不影响其他部件的正常功能。

3.2并行和高性能应用

并行应用原则上可以在共享存储器多处理机上运行,但是,共享存储器系统无法很好地扩大规模已包括大量的处理机。高性能计算和通信(HPCC)应用一般需要一个可以伸缩的设计,这种设计正是由分布式处理决定。

3.3固有的分布式应用

许多应用是固有分布式的,这些应用不是批量模式二是突发模式的,比喻有事务处理和Internet Java小程序。这些应用的性能取决于事务相应时间或每秒完成事务量即吞吐量,并非一般多处理机所用的执行时间。

分布式系统对于一组用户来说,具有一个特别的应用成为计算机支持的协同工作或者群件,支持用户协同工作。另一个应用是通过物理的分布式网络进行电子会议即分布式会议。

适合于分布式系统的通信机制有:并行度,进程网络拓扑,程序验证的复杂性,系统死锁,通信规约的复杂度,缓冲区。

由于在不同的平台上就可以获得不同的多样的应用,比如在工作站,PC,局域网和广域网。用户希望能超出他们PC的限制以获得更广泛的特性、性能和功能等。不同环境和网络下的互操作性变得越来越重要,为了达到这一目标,用户需要在一个标准的分布式环境中,使所有的资源和系统都可以利用。

多层分布式应用体系中,系统资源可以被统一管理和使用,用户可以通过网格门户透明地使用整个网络资源,多层分布式体系有安全性,因其中间层隔离了客户直接对数据服务器的访问,保护了数据库的安全。还有稳定性,易维护,相应快速、系统扩展灵活等特点。对于多层分布式系统的开发和应用,主要是针对开发环境、应用程序的集成和应用程序的配置三个方面的技术开发。目前多层次系统的开发的两种规范是:用于Windows 平台的COM+和用于跨平台的CORBA两种。其应用主要是在三个层次分别是:表示层,业务逻辑层,数据存储层。

4 结语

进程通信是分布式系统的核心,是开发分布式应用程序和研究分布式系统的基础。分布式系统的应用和实现为计算机进步又提升了一个大的空间,随着科学技术的不断进步,分布式系统仍需要不断改进和完善,最终以满足用户的需要,提供更方便快捷的操作系统,进一步助推科技进一步发展。本文主要从对分布式系统的介绍,通信进程的概述和分布式系统在进程间通信的实现展开讨论。相信随着科技的进步分布式系统会提高服务性能,更好的满足客户的需求。

参考文献:

[1]王宇,王志坚《基于志愿计算模式的分布式水文计算》,《水利学报》,2007年10月增刊.

[2]徐高潮,《分布计算系统》,北京:高等教育出版社, 2004 .

[3]陆丽娜等译 ,《分布式操作系统》北京:电子工业出版社,1999.

[4](美)特尼博姆 等著,辛春生等译,《分布式系统原理与范型》清华大学出版社2008.6.

[5]黄光球,陆秋琴,李艳编:《分布式系统设计原理与应用》第五章 《西北工业大学出版社》2008.8.

上一篇:综合分析高层建筑对邻近建筑物产生的影响及应... 下一篇:建筑消防给水系统设计之我见