进程间通信的分布式实现

进程间通信的分布式实现

李勇[1]2004年在《进程间通信的分布式实现》文中研究说明多数大型应用系统,往往需要众多的进程协作,因此程序中都大量的涉及到某种和几种形式的IPC,也就是进程间通信(Inter-Process Communication),所以进程间通信的重要性显而易见。利用IPC进行应用程序设计是一种可以充分利用系统资源、提高程序运行效率的良好方法。近几年,随着网络和分布计算技术的高速发展,在网络,特别是分布式环境下的应用系统越来越多。而在网络和分布程序设计中,通常包括很多需要相互通信的进程,因此进程间通信的机制在程序设计中就显得更为重要。传统的UNIX系统都提供了多种通信机制。从分布式的角度出发,大致可以把这些方法划分为两类:一类是应用在同一节点上的进程间通信方法,主要有管道、FIFO、信号、消息队列和共享内存等;一类是应用在不同节点上的进程间通信方法,只有套接字(sockets)一种。现有的分布式进程间通信机制主要有PVM(并行虚拟机)和MPI(报文传递接口)。传统的UNIX进程间通信机制和现有的分布式进程间通信机制都有各自的优缺点。从分布式的角度来看,传统的UNIX进程间通信方法的主要不足是,用于不同节点上进程间通信的方法过于单一,只有套接字(socket)一种方法,而且其太复杂,使用起来不是很方便,尤其是对于分布式环境下的编程,位置透明性和访问透明性不可能得到保证。而传统的用于同一节点上的进程间通信方法,虽然应用起来很方便,但是不能用于不同节点上进程间的通信,在使用上就受到了很大的局限。而使用现有的基于分布式环境下进程间通信的机制就要学习相关知识,需要大量时间和精力,这给那些已经熟悉UNIX系统的用户带来很多不便。况且这些程序不具有通用性,只能在特定的环境下运行。基于如上原因,本文给出了一种用于不同节点上进程间通信的新机制的设计思想,即将传统的用于同一节点上进程间通信方法用于不同节点上的进程,也就是说,程序员可以应用传统的用于同一节点上进程间通信方法的系统调用接口来实现在不同节点上进程间的通信,而不用关心通信的进程是否在同一节点上,即在位置和访问上实现透明性。与此同时,我们可以应用新设计的分布式进程通信机制,对原有的单机UNIX系统上的并发程序作简单的改动,甚至不作任何改动,就可以实现其在分布式系统上的并行执行。这样就不用为了将单机系统上的程序移植到分布式系统上而重新编制程序(PVM和MPI均需要重新编制程序),从而大大简化了程序从单机系统到分布式系统的移植过程。新的分布式进程间通信的主要是通过一个守护进程(也称为精灵进程,deamon)实现的。在分布式环境下的每个节点上,都有一个守护进程,守护进程负责不同节点之间的通信,而对于本节点内的进程来说,与其他节点上进程的通信就转化为同本节点上守护进程之间的通信,从而可以用现有的用于同一节点上的进程间通信接口来实现在不同节点上进程间的通信。我们在全局的高度维护一个用于通信的数据结构的标识符,也可称之为关键字(Key)。这个关键字是全局唯一的,它的唯一性由守护进程来维护,即守护进程之间通过相互的协调,使得创建的用于通信的数据结构具有全局唯一的关键字(标识符),想要通信的进程通过这个唯一的标识符来访问这个数据结构,从而达到相互通信的目的。这些标识符(描述符)有不同的形式,可以是一个数值,文件名或路径名等等。分布式进程间通信在实现的机制上大都可以分为四个基本的操作:创建(打开)、写(发送)数据、读(接收)数据和控制。在用户执行相应的操作时,首先向本节点内的守护进程发出相应的请求,守护进程接收到相应的请求后,进行不同的处理。如果是本地的,则调用本地的进程间通信接口。如果是异地的,则向所在节点发出对应的请求。异地节点接收到请求后,分析请求信息后给出相应的结果,并将其返回给请求节点的守护进程。请求节点的守护进程在收到应答后,分析应答信息,然后将分析的结果再返回给用户进程。在这期间,如果涉及到关键字值表的操作,还应对其进行必要的维护。在本文中除了提出一种分布式进程间通信机制的设计思想,还给出了一个实例——分布式消息队列。对应地,给出了分布式消息队列的设计思想和具体实现。在实现分布式消息队列的基础上,我们将其与传统的套接字方式进行了对比。在对比的结果中,我们可以看到,分布式消息队列在性能上与套接字方式接近,而在实用性和透明性上都有很好的表现。从而达到了本文的设计目的。本文的创新点是:实现了一种新的分布式进程间通信机制。通过这种机制,传统的UNIX用户可以使用原有的单机内的进程间通信接口就可以编制分布式环境下的程序。而他们不必使用复杂的套接字方式,更不用因为要编制分布式环境下的程序,而去学习现有的分布式进程间通信机制(PVM和MPI等)。并且,应用新的分布式进程通信机制,对原有的在单机系统上运行的并发程序作简单的改动,甚至有些可以不作任何改动,就可以实现在分布式系统环境下的并行执行,从而大大简化了程序从单机系统到分布式系统的移植过程。在当今,虽然分布计算系统已经成为一个重要的研究领域,但是直到现在仍然没有一

林娜, 王长缨[2]2007年在《分布式系统通信中间件开发的必要性及前景》文中提出在大型的应用系统,尤其是网络应用系统的设计中,进程间通信是一种充分利用系统资源、提高程序运行效率的良好方法。但是,现有的通信方式,无论是UNIX系统中套接字方式,还是PVM中提供的报文传递方式,都不能满足用户编程的需要。因此,提出一种用户使用简单,并且很好地保证位置透明性和访问透明性的分布式进程通信机制势在必行。与此同时,应用新设计的分布式进程间通信机制,对原有的单机UNIX系统上的并发程序做简单的改动,甚至不做任何改动,就可以实现其在分布式系统上并行执行。

张洁[3]2005年在《分布式管道通信机制的设计与实现》文中提出本文对进程间通信的机制进行了深入的研究,分析了传统的UNIX 系统环境下的进程间通信机制和现有的分布式环境下的进程通信机制(主要是PVM,并行虚拟机和MPI,报文传送接口)。并在此基础上提出了新的分布式环境下的进程通信机制——分布式管道。本文提出和实现的分布式管道通信机制,能够使传统的UNIX 用户不用熟悉现有的分布式环境下的通信机制,也不必使用较复杂的套接字方法,就可以实现分布式环境下的程序设计。分布式管道通信机制主要是通过一个守护进程(也称为精灵进程,deamon)实现的。在分布式环境下的每个节点上,都有一个守护进程,守护进程负责不同节点之间的通信,而对于本节点内的进程来说,与其他节点上进程的通信就转化为同本节点上守护进程之间的通信。本文中给出了分布式管道的设计思想和具体实现,并将其与传统的套接字方式进行了比较,得出了在性能基本没有降低的情况下,提供更好的用户接口和更高的位置透明性及访问透明性的结论。

李岩[4]2006年在《分布式计算环境下进程间通信策略的研究》文中研究表明如今分布式计算系统的应用非常广泛,它实际上是由一组分布在网络中不同节点上的进程彼此协作来完成任务的,这些进程通过进程间通信(IPC,InterProcess Communication)来完成同步、互斥以及数据传送等操作,进程间通信是分布式系统实现的基础。随着网络应用系统的规模与复杂度的日益增加,不同节点上进程之间的通信也变得越来越频繁,程序中用于网络通信的代码量也就越来越大,这就使得进程间通信机制在网络编程中变得更加重要。本文在深入研究了UNIX系统传统的进程间的通信策略和现有的各种分布式的进程间通信机制的基础上,设计了一个用于支持分布式应用系统开发的通信中间件及相应的调用接口。本文提出的通信中间件机制,对远程通信和本地通信提供相同的简洁的通信接口,使应用开发者可以集中注意力于上层应用的开发而不必过多纠缠于复杂的通信细节的处理,这样就更加合理地划分了不同层次的软件开发的关注域。本文设计的新的分布式进程间通信机制主要是通过作为守护进程运行在各个计算节点上的通信中间件来实现的。在部署了相关应用的每个计算节点上,都有这个通信中间件在运行,上层应用的所有通信需求均通过与通信中间件交换信息来完成。本文给出了相应的设计思想和一些关键处理的流程设计,并将它与现有的其他一些解决方案进行了对比。尽管本系统还有它的一些局限性,但从中可以看出这是一个看待此问题的全新的视角,与现有的各种机制相比它提供了更为友好的用户接口,为上层应用的的开发者屏蔽了一些他们本不应该关注的处理通信的细节。

郭威[5]2006年在《分布式系统的进程间通信技术的研究和开发》文中研究指明进程间通信是所有分布式系统的核心功能。随着Internet及其应用的飞速发展,分布式应用系统间的通信面临巨大的挑战。尤其是随着现代管理的多部门协作和领域间协作越来越广泛,越来越多的应用系统需要跨Internet协作。中间件的管道功能为分布式应用系统跨越多种操作系统进行通信提供统一的环境。然而,基于中间件构建的应用系统很难实现跨异构平台的互操作,而且多数不能穿越防火墙。本文重点研究了基于RPC实现跨平台通信的技术。目前,Web服务技术主要解决异构平台应用系统的集成和互操作问题。SOAP是Web服务技术使用的消息协议。本文以Axis为例详细阐述了SOAP的实现技术。但是,SOAP的结构化标记复杂。SOAP封装后,数据量明显增大。因而,Web服务技术不适用于应用系统间大数据量的数据交换。当前,出现了另一种跨平台的通信协议HBWSP(Hessian Binary Web Service Protocol)。HBWSP规定了数据的编码标准和对RPC的表示。它把本地格式数据编码为二进制数据,并且具有简单的结构化标记。HBWSP封装后的数据增量明显小于SOAP封装后的数据增量。HBWSP比SOAP更适用于分布式应用系统间大数据量的数据交换。本文提出了一种基于JAVA语言实现HBWSP的方案。最后,本文通过中央广播电视大学远程开放教育教务管理系统的实例阐述了跨平台通信技术在分布式应用系统中的应用。中央广播电视大学远程开放教育教务管理系统是一个典型的分布式应用系统,需要实现异地、异构平台应用系统之间的数据交换。同时考虑到网络的通信状况,教务管理系统的数据交换解决方案采用非持久同步和持久异步两种方式。非持久同步方式采用HBWSP;持久异步方式把数据保存成二进制文件后进行数据交换。该解决方案可以实现GB级数据的交换。

陈东[6]2010年在《基于ACE的中厚板轧机二级通信系统的设计与实现》文中提出中厚钢板是一种宽厚比和表面积都很大的扁平钢材,中厚板因其用途广泛,在钢铁行业中有着十分重要的地位。近些年来中厚板生产线的自动化程度不断提高,而轧机是中厚板生产线的核心,所以目前国内很多钢铁厂家都在使用轧机计算机控制系统来辅助人工操作,大幅地提高了生产效率。目前出现了不少轧机计算机自动控制系统,但是这些系统的后期维护费用非常高,关键技术被垄断。因此,开发一个具有自主知识产权的轧钢二级通信系统,最后构建一个通用的、跨平台、易于维护的轧机二级系统具有深远的市场意义和社会意义。公共对象请求代理体系结构(CORBA)是一种分和式系统中的标准体系结构和基础设施规范技术,提供了分布式异构对象的互操作。CORBA能自动运行许多通用的网络编程任务,并被大多数分和式对象计算平台厂商所接受和遵循。自适应通信环境(ACE)是一种免费的、开源的面向对象的框架,这些框架实现了许多用于并发通信软件的核心模式。ACE中包含了丰富的可重用的C++包封装和框架组件,并且可以跨多种平台完成通用的高性能通信任务。TAO是一种免费、符合标准的实时COBRA的C++实现,它可以提供跨系统平台、跨硬件平台和通信协议等实现远程对象调用的服务。本文以首钢3500mm中厚板生产线为研究背景,对轧机二级通信系统进行了系统的需求分析,对CORBA、ACE、TAO等通信中间件和0040等关键技术进行了深入的研究,提出了基于ACE+TAO+OO4O框架的中厚板轧机二级通信系统。本文对中厚板轧机二级通信系统进行了系统的概要设计,重点讨论了数据流、多进程间通信与同步、通信协议等问题,并给出了中厚板轧机二级通信系统的详细设计。然后基于ACE、TAO和0040等技术实现了中厚板轧机二级通信系统的原型。最后将构实现的中厚板轧机二级通信系统的原型在轧机PLC平台下测试。测试的结果证明了本文提出的基于ACE+TAO+OO4O框架实现中厚板轧机二级通信系统设计方案的可行性和正确性。

王云鹏[7]2005年在《分布式信号通信系统的设计与实现》文中指出目前,随着网络应用的日益广泛,分布式系统得到了迅速发展。作为分布式系统实现的基础—进程间通信也就起着越来越重要的作用。然而Linux 操作系统支持的套接字(Socket)通信方式,使用复杂,代码量大,而且不能满足分布式系统对于透明性的需求。现存的RPC 与RMI系统,提供了可以保证透明性的分布式进程通信机制,但其价格昂贵,需要另行安装,还要求程序员对新的进程通信机制进行学习。本文首先介绍了Linux 系统提供的进程通信方式。之后对新的分布式信号通信系统提出要求:具有与单机内进程通信机制相似的调用接口,满足分布式系统对透明性的要求。接下来我们以此为依据,确定了分布式信号通信系统的体系结构模型。本系统由名字服务器与用户节点组件构成。名字服务器负责提供包括注册、注销和查询在内的名字服务,为用户提供全局唯一的名字—分布式进程号pid_d,以保证分布式系统的透明性。用户节点组件采用并发服务器结构,由守护进程负责接收用户请求,并根据请求类型创建合适的子进程来处理该请求。在设计的基础之上我们实现了分布式信号通信系统。最后,通过测试,我们得出:分布式信号通信系统可以稳定的工作,其速度比套接字方式略有下降,但比较接近,新系统满足了分布式系统的透明性要求,并具有与单机内信号通信相似的用户调用接口,从而降低了用户编写网络通信程序的复杂度。分布式信号通信系统可以作为大型分布式系统的一部分提供信号服务,也可以单独满足网络通信中不同节点上的进程发送信号的需求。本系统为分布式系统的实现提供了理论和实践上的基础,具有重要的理论意义和实用价值。

袁菲[8]2006年在《嵌入式环境下分布式操作系统框架研究》文中研究表明由于嵌入式系统在军事、工业生产和生活中被越来越广泛地应用,嵌入式系统的复杂程度不断提高,对嵌入式系统与非嵌入式系统交互能力的需求也在不断上升。其中嵌入式操作系统已经成为嵌入式系统开发过程中最重要的基本软件之一。嵌入式操作系统为多任务执行,降低系统软件开发难度提供了支持。嵌入式操作系统对嵌入式系统的整体功能、可维护性和交互能力都有着十分重要的影响。 论文首先概述了嵌入式操作系统的应用现状,并对嵌入式操作系统从多个角度进行了划分,归纳出了当前嵌入式操作系统中的研究热点。在此基础上提出本文的选题依据。在对嵌入式环境下的分布式操作系统构架方法进行总结后,提出了用于本文的构造方法及其架构。 从提供分布式服务的角度,对嵌入式环境下分布式操作系统架构中高层服务的内容进行了划分,这是本文研究的主要内容。这种划分既是基于分布式理论,又结合了嵌入式应用中的一些特殊需要。总体来说包括进程间通信、代码移动性、命名服务和设备管理四大内容。随后对这些服务内容进行了详细的分析,总结出它们在嵌入式系统中的功能和作用。为了进一步对系统进行定量分析和研究,对部分重要的内容还进行了实现。最后,针对一些分布式应用更高级的内容进行了展望,为进一步的研究提供了建议。

章勤, 刘淑英[9]2004年在《RTLinux中分布式实时IPC的设计与实现》文中指出RTLinux是一个具有硬实时性能的单机实时操作系统 ,它提供了多种进程间通信机制 ,如信号量、消息队列和RT fifo等。在RTLinux提供的进程间通信机制基础上 ,本文提出了一种在RTLinux中设计并实现分布式实时IPC模块的具体方法 ,最后详细阐述了分布式实时IPC模块的工作流程和各功能模块的实现。

张玉[10]2018年在《基于中间件技术的分布式测试技术研究》文中研究表明计算机技术和网络通信技术的发展为军用自动测试技术的发展带来了新的突破,传统的基于总线控制的军用自动测试技术受制于地理环境、空间距离等因素的阻碍,已经不再能够满足复杂度很高的武装设备的测试。计算机技术和网络通信技术发展为其提供了新的解决方案,使其朝着网络信息化的分布式方向发展。本课题的目的是结合当今军用自动测试技术的研究现状,开发出分布式测试系统软件,实现不同厂家仪器相互之间的集成和相互之间的操作、远程测试和故障诊断、测试程序集(Test Program Sets,TPS)的可移植、数据信息管理、信息可以共享等功能,解决军用自动测试系统存在的部分问题。由于中间件技术的发展,导致软件体系结构产生了重大变革,传统的二层C/S软件结构中,加入了中间件层,使其成为叁层C/S软件结构来构建分布式系统。因此,本课题提出了基于中间件技术的分布式测试技术来解决当前军用自动测试系统的问题。通过对中间件技术的深入分析,开发出符合军用自动测试技术的中间件,实现了中间件的仪器控制、进程通信、数据管理等服务。中间件为上层的测试应用程序提供相应的对外操作接口,实现TPS的可移植性;中间件屏蔽了底层仪器之间的异构性,实现了仪器间相互操作和测试平台的通用性和可扩展性;中间件提供了远程过程操作调用的能力,实现了远程测试和故障诊断。本文重点讨论了中间件平台的仪器控制模块设计、进程间通信模块设计、数据管理模块设计,具体实现内容为:(1)根据传统的军用自动测试系统的框架,深入研究当今流行的中间件技术、分布式测试系统,设计出基于中间件技术的分布式测试系统的框架。(2)仪器控制模块设计。分析任意波形发生器(AWG)、程控电源(PPS)、数字万用表(DMM)和C型通用开关(SWTCH)等仪器的控制函数,采用面向对象的思想,并利用IVI(Interchangeable Virtual Instruments,可互换式虚拟仪器规范)开发标准和C语言设计并封装成具有良好的可移植的驱动函数类库。(3)进程间通信模块设计。以RPC(Remote Procedure Call,远程过程调用)远程通信技术实现各个进程间互相通信。(4)数据管理模块设计。采用数据库连接技术,实现对数据库的操作访问;设计了数据存储功能,实现了数据信息的存储。

参考文献:

[1]. 进程间通信的分布式实现[D]. 李勇. 吉林大学. 2004

[2]. 分布式系统通信中间件开发的必要性及前景[J]. 林娜, 王长缨. 吉林省经济管理干部学院学报. 2007

[3]. 分布式管道通信机制的设计与实现[D]. 张洁. 吉林大学. 2005

[4]. 分布式计算环境下进程间通信策略的研究[D]. 李岩. 天津工业大学. 2006

[5]. 分布式系统的进程间通信技术的研究和开发[D]. 郭威. 北京工业大学. 2006

[6]. 基于ACE的中厚板轧机二级通信系统的设计与实现[D]. 陈东. 东北大学. 2010

[7]. 分布式信号通信系统的设计与实现[D]. 王云鹏. 吉林大学. 2005

[8]. 嵌入式环境下分布式操作系统框架研究[D]. 袁菲. 合肥工业大学. 2006

[9]. RTLinux中分布式实时IPC的设计与实现[J]. 章勤, 刘淑英. 计算机工程与科学. 2004

[10]. 基于中间件技术的分布式测试技术研究[D]. 张玉. 电子科技大学. 2018

标签:;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  

进程间通信的分布式实现
下载Doc文档

猜你喜欢