一种进程间通信方法和系统.pdf

上传人:t**** 文档编号:971278 上传时间:2018-03-22 格式:PDF 页数:13 大小:625.19KB
返回 下载 相关 举报
摘要
申请专利号:

CN200910085993.6

申请日:

2009.06.03

公开号:

CN101572710A

公开日:

2009.11.04

当前法律状态:

授权

有效性:

有权

法律详情:

专利权人的姓名或者名称、地址的变更IPC(主分类):H04L 29/06变更事项:专利权人变更前:杭州华三通信技术有限公司变更后:新华三技术有限公司变更事项:地址变更前:310053 浙江省杭州市高新技术产业开发区之江科技工业园六和路310号华为杭州生产基地变更后:310052 浙江省杭州市滨江区长河路466号|||授权|||实质审查的生效|||公开

IPC分类号:

H04L29/06; H04L29/12; G06F9/46

主分类号:

H04L29/06

申请人:

杭州华三通信技术有限公司

发明人:

盖建华; 乔会来; 杨 其; 牟宣理; 杨荣虎

地址:

310053浙江省杭州市高新技术产业开发区之江科技工业园六和路310号华为杭州生产基地

优先权:

专利代理机构:

北京德琦知识产权代理有限公司

代理人:

谢安昆;宋志强

PDF下载: PDF下载
内容摘要

本发明提出一种进程间通信方法和系统,其中方法包括:客户端的进程间通信(IPC)模块接收客户端进程发送的发起连接指令,根据所述发起连接指令中包含的服务器进程的标识,查找预先记录的服务器进程的标识和服务器地址的对应关系,获取服务器的地址;客户端的IPC模块根据所述服务器的地址,向所述服务器的IPC模块发送连接消息,请求建立客户端进程与服务器进程之间的进程间通信。本发明能够适应分布式系统的需要,在客户端进程和服务器进程之间的及时高效地建立进程间通信。

权利要求书

1、  一种进程间通信方法,该方法应用于包括客户端和服务器的系统,其中客户端包括客户端进程和客户端的进程间通信IPC模块,服务器包括服务器进程和服务器的IPC模块,其特征在于,所述方法包括:
客户端的IPC模块接收客户端进程发送的发起连接指令,根据所述发起连接指令中包含的服务器进程的标识,查找预先记录的服务器进程的标识和服务器地址的对应关系,获取服务器的地址;
客户端的IPC模块根据所述服务器的地址,向所述服务器的IPC模块发送连接消息,请求建立客户端进程与服务器进程之间的进程间通信。

2、
  根据权利要求1所述的方法,其特征在于,所述预先记录对应关系的方式为:
服务器的IPC模块广播发布消息,该发布消息携带所述服务器进程的标识,要求接收所述发布消息的IPC模块记录所述服务器进程的相关信息;
客户端的IPC模块接收所述发布消息,记录所述发布消息中的服务器进程的标识与服务器地址的对应关系。

3、
  根据权利要求2所述的方法,其特征在于,所述方法进一步包括:
服务器的IPC模块广播取消发布消息,该取消发布消息携带所述服务器进程的标识,要求接收所述取消发布消息的IPC模块清除预先记录的所述服务器进程的相关信息;
客户端的IPC模块接收所述取消发布消息,清除预先记录的所述服务器进程的标识与服务器地址的对应关系。

4、
  根据权利要求2或3所述的方法,其特征在于,所述服务器的IPC模块广播发布消息或广播取消发布消息是由服务器进程启动的。

5、
  根据权利要求4所述的方法,其特征在于,所述服务器进程启动服务器的IPC模块广播发布消息的方式为:服务器进程向服务器的IPC模块发送侦听消息。

6、
  根据权利要求5所述的方法,其特征在于,所述服务器进程启动服务器的IPC模块广播取消发布消息的方式为:服务器进程向服务器的IPC模块发送关闭消息。

7、
  一种进程间通信系统,其特征在于,该系统包括客户端和服务器,其中客户端包括客户端进程和客户端的IPC模块,服务器包括服务器进程和服务器的IPC模块;其中,
所述客户端进程,用于向客户端的IPC模块发送发起连接指令;
所述客户端的IPC模块,用于根据所述发起连接指令中包含的服务器进程的标识,查找预先记录的服务器进程的标识和服务器地址的对应关系,获取服务器的地址;根据所述服务器的地址,向所述服务器的IPC模块发送连接消息,请求建立客户端进程与服务器进程之间的进程间通信。

8、
  根据权利要求7所述的系统,其特征在于,所述服务器的IPC模块,用于广播发布消息,该发布消息携带所述服务器进程的标识,要求接收所述发布消息的IPC模块记录所述服务器进程的相关信息;
所述客户端的IPC模块,还用于接收所述发布消息,记录所述发布消息中的服务器进程的标识与该服务器地址的对应关系。

9、
  根据权利要求8所述的系统,其特征在于,所述服务器的IPC模块,还用于广播取消发布消息,该取消发布消息携带所述服务器进程的标识,要求接收所述取消发布消息的IPC模块清除所述服务器进程的相关信息;
所述客户端的IPC模块,还用于接收所述取消发布消息,清除预先记录的所述服务器进程的标识与该服务器地址的对应关系。

10、
  根据权利要求8或9所述的系统,其特征在于,所述服务器进程用于,启动所述服务器的IPC模块广播发布消息或广播取消发布消息。

说明书

一种进程间通信方法和系统
技术领域
本发明涉及通信技术领域,特别涉及一种进程间通信方法和系统。
背景技术
进程间通信(IPC)最初是指在一个设备内部各个进程之间的通信,伴随着网络技术的不断发展,IPC逐渐被发展并应用于分布式设备。分布式设备包括多个在物理位置上分离的业务板,每个业务板上都存在一个或多个独立的CPU,每个CPU称为一个节点,在该节点上运行的程序称为进程。客户端/服务器模型是一种典型的IPC模型,在这种模型中,通信双方的进程分别为客户端进程和服务器进程。参见图1,图1为现有技术中客户端和服务器的结构及连接关系示意图,客户端进程和下层的IPC模块组成客户端,服务器进程和下层的IPC模块组成服务器,客户端的IPC模块和服务器的IPC模块之间为上层的客户端进程和服务器进程提供可靠的进程间通信。
现有技术中,在以太网中进行远程通信时,客户端进程首先需要获知服务器的IP地址信息,通常的做法是在网络中设置一台DNS Server(域名服务服务器),客户端进程从DNS Server上获取服务器的IP地址,之后客户端进程通过客户端和服务器双方的IPC模块向该服务器中的服务器进程发起进程间通信连接,如图2所示,图2为现有技术中客户端进程和服务器进程之间进行IPC的示意图。
上述客户端进程和服务器进程之间进行进程间通信的模式运用到分布式系统时,将会导致无法及时高效地建立进程间通信。具体原因是:第一,当DNS Server是一个分布式设备时,由于分布式设备本身的特点,DNSServer某一时间内提供DNS服务的单板并不固定,并且随时可能发生单板复位,导致客户端进程无法及时获取服务器的地址,因而无法及时建立进程间通信;第二,由于客户端进程每次发起建立IPC连接之前都要远程查找服务器的地址,对于分布式系统来说,查找地址对系统的开销过大,因而无法高效地建立进程间通信。
发明内容
本发明提出一种进程间通信方法,该方法能够适应分布式系统的需要,在客户端进程和服务器进程之间及时高效地建立进程间通信。
本发明还提出一种进程间系统,能够适应分布式系统的需要,在客户端进程和服务器进程之间及时高效地建立进程间通信。
本发明的技术方案是这样实现的:
一种进程间通信方法,该方法应用于包括客户端和服务器的系统,其中客户端包括客户端进程和客户端的IPC模块,服务器包括服务器进程和服务器的IPC模块,该方法包括:
客户端的IPC模块接收客户端进程发送的发起连接指令,根据所述发起连接指令中包含的服务器进程的标识,查找预先记录的服务器进程的标识和服务器地址的对应关系,获取服务器的地址;
客户端的IPC模块根据所述服务器的地址,向所述服务器的IPC模块发送连接消息,请求建立客户端进程与服务器进程之间的进程间通信。
一种进程间通信系统,该系统包括客户端和服务器,其中客户端包括客户端进程和客户端的IPC模块,服务器包括服务器进程和服务器的IPC模块;其中,
客户端进程,用于向客户端的IPC模块发送发起连接指令;
客户端的IPC模块,用于根据所述发起连接指令中包含的服务器进程的标识,查找预先记录的服务器进程的标识和服务器地址的对应关系,获取服务器的地址;根据所述服务器的地址,向所述服务器的IPC模块发送连接消息,请求建立客户端进程与服务器进程之间的进程间通信。
可见,本发明提出的进程间通信方法和系统,当客户端IPC模块接收到客户端进程发送的发起连接指令后,根据该指令中包含的服务器进程的标识,查找预先记录的服务器进程的标识与服务器地址的对应关系,获取服务器的地址;客户端IPC模块根据获取的服务器的地址,向该服务器的IPC模块发送连接消息,请求建立客户端进程和服务器进程之间的进程间通信。本发明中,客户端的IPC模块内部查找并获取服务器地址的方式,替代了现有技术中客户端进程从DNS Server上获取服务器地址的方式,使客户端能够及时地获取服务器的地址,而不会受分布式DNS Server的影响。因此,本发明的方案能够适应分布式系统的需要,在客户端进程和服务器进程之间及时高效地建立进程间通信。
附图说明
图1为现有技术中客户端和服务器的结构及连接关系示意图;
图2为现有技术中客户端进程和服务器进程之间进行IPC的示意图;
图3为本发明进程间通信的模型图;
图4为本发明实施例进程间通信方法的流程图;
图5为本发明进程间通信时客户端进程和服务器进程的位置示意图。
具体实施方式
本发明实施例提出一种进程间通信方法,参见图3,图3为本发明进程间通信的模型图。该方法不需要客户端进程从DNS Server中获取服务器的地址;而只需要客户端的IPC模块进行内部查找(inner lookup),获取服务器的地址,之后,客户端进程与服务器进程建立进程间通信。
为了实现上述进程间通信模型,本发明中在服务器的IPC模块提供了发布(publish)和取消发布(unpublish)机制,在客户端的IPC模块提供了查找(lookup)机制,用于实现客户端的IPC模块查找服务器的地址,从而客户端进程和服务器进程之间建立进程间通信。参见图4,图4为本发明实施例进程间通信方法的流程图。包括:
步骤401:服务器进程建立之后,服务器进程向服务器的IPC模块发送侦听(listen)消息,启动IPC模块发布服务器进程的相关信息。其中,服务器进程向服务器的IPC模块发送listen消息是现有技术中已有的技术,在现有技术中,一般情况下,发送listen消息只是表明服务器进程已经做好了与客户端进程建立进程间通信的准备,之后服务器的IPC模块将会等待客户端的IPC模块发送connect消息,请求建立进程间通信;但在本实施例中,将listen消息作为启动服务器的IPC模块发布服务器进程相关信息的机制,当然,也可以采用现有技术中服务器进程向服务器的IPC模块发送的其他消息,或者采用新定义的消息,作为启动服务器的IPC模块发布服务器进程相关信息的机制。
步骤402:服务器的IPC模块向网络中所有节点的IPC模块广播发布(publish)消息,该publish消息中携带服务器进程的标识,要求接收该publish消息的所有IPC模块记录该服务器进程的相关信息。
步骤403:网络中所有节点的IPC模块收到publish消息后,记录该消息中的服务器进程的标识与服务器地址的对应关系(由于publish消息是来自于服务器的,因此,接收该publish消息的IPC模块能够获知服务器的地址)。
步骤404:客户端进程建立后,客户端进程向客户端的IPC模块发送发起连接指令,要求建立与服务器进程间的进程间通信;该发起连接指令中包含服务器进程的标识。
步骤405:客户端的IPC模块根据发起连接指令中包含的服务器进程的标识,查找步骤403中记录的对应关系,获取服务器的地址。
步骤406:客户端的IPC模块根据查找到的服务器的地址,向该服务器的IPC模块发送连接(connect)消息。
服务器的IPC模块收到connect消息后,服务器的IPC模块、服务器进程以及客户端的IPC模块相互协作,按照与现有技术中相同的方式建立客户端进程和服务器进程之间的进程间通信。
以上介绍了本发明中建立客户端进程和服务器进程之间建立进程间通信的过程,下面介绍服务器进程终止运行后的后续处理过程。
步骤407:当服务器进程将终止运行时,服务器进程向服务器的IPC模块发送关闭(close)消息,启动IPC模块取消服务器进程相关信息的发布。其中,与步骤401中的情况类似,服务器进程向服务器的IPC模块发送close消息也是现有技术中已有的技术,在现有技术中,一般情况下,发送close消息只是表明服务器进程将要终止运行,之后服务器的IPC模块将会等待客户端的IPC模块请求取消之前建立的进程间通信。在本实施例中,将close消息作为启动IPC模块取消服务器进程相关信息的发布的机制,当然,也可以采用现有技术中服务器进程向服务器的IPC模块发送的其他消息,或者采用新定义的消息,作为启动服务器的IPC模块取消发布服务器进程相关信息的机制。
步骤408:服务器的IPC模块向网络中所有节点的IPC模块广播撤回发布(unpublish)消息,该unpublish消息中携带服务器进程的标识,要求接收所述消息的IPC模块清除所述服务器进程的相关信息;
步骤409:网络中所有节点的IPC模块收到unpublish消息后,清除对该服务器进程的记录(即步骤403中记录的服务器进程的标识与该服务器地址的对应关系)。
这样,当客户端进程再次向客户端的IPC模块发送发起连接指令,要求与服务器进程建立进程间通信时,由于客户端的IPC模块已经清除了对该服务器进程的记录,无法查找到该服务器的地址,也就无法向该服务器中的IPC模块发送connect消息,请求建立进程间通信。
上述方案可以屏蔽服务器进程的位置信息,如图5所示,图5为本发明进程间通信时客户端进程和服务器进程的位置示意图。服务器进程与客户端进程进行进程间通信时,可以位于同一个节点上(如图5中的P1和P2),也可以位于不同的节点上(如图5中的P1和P3、或者P1和P4);客户端进程多次与服务器进程进行进程间通信时,服务器进程每次的位置也可以不同,也就是服务器进程可以位于不同的节点上。可见,本发明提出的进程间通信方法与服务器进程的位置无关,客户端进程不需要感知服务器进程的具体位置,服务器进程可以随意分布,这种方式的优点是:多个服务器进程可以运行在不同的主节点(运行服务器进程的节点称为主节点)上,所有的主节点都可以处于活动状态,实现了CPU负载分担;相反,在传统的分布式架构上,由于服务器进程的位置必须是固定的,通常所有的服务器进程都运行在一个活动主节点上,其他主节点都待命,这导致活动主节点的CPU负载过重。
上述方法中,步骤402中广播的publish消息、以及步骤408中广播的unpublish消息中携带的服务器进程的标识可以具体为服务器的端口号,以80服务器进程为例,当80服务器进程启动后,服务器的IPC模块广播publish消息,该publish消息中包含80服务器进程的端口号(即80端口);当该80服务器进程将终止运行时,服务器的IPC模块广播unpublish消息,该unpublish消息中包含80服务器进程的端口号(即80端口)。
本发明实施例还提出一种进程间通信系统,该系统包括客户端和服务器,其中客户端包括客户端进程和客户端的IPC模块,服务器包括服务器进程和服务器的IPC模块;其中,
客户端进程,用于向客户端的IPC模块发送发起连接指令;
客户端的IPC模块,用于根据所述发起连接指令中包含的服务器进程的标识,查找预先记录的服务器进程的标识和服务器地址的对应关系,获取服务器的地址;根据服务器的地址,向服务器的IPC模块发送连接消息,请求建立客户端进程与服务器进程之间的进程间通信。
上述服务器的IPC模块,用于广播发布消息,该发布消息携带所述服务器进程的标识,要求接收所述发布消息的IPC模块记录所述服务器进程的相关信息;
上述客户端的IPC模块,还可以用于接收所述发布消息,记录发布消息中的服务器进程的标识与该服务器地址的对应关系。
上述服务器的IPC模块,还可以用于广播取消发布消息,该取消发布消息携带所述服务器进程的标识,要求接收所述取消发布消息的IPC模块清除所述服务器进程的相关信息;
上述客户端的IPC模块,还可以用于接收取消发布消息,清除预先记录的所述服务器进程的标识与该服务器地址的对应关系。
上述系统中,服务器进程可以用于,启动服务器的IPC模块广播发布消息或广播取消发布消息。
综上可见,本发明提出的进程间通信方法和系统,由服务器的IPC模块广播携带服务器进程标识的发布(publish)消息;客户端的IPC模块记录服务器进程的标识和服务器地址的对应关系;当客户端IPC模块接收到客户端进程发送的发起连接指令后,根据该指令中包含的服务器进程的标识查找预先记录的对应关系,获取服务器的地址;客户端IPC模块根据获取的服务器的地址,向该服务器的IPC模块发送连接消息,请求建立客户端进程和服务器进程之间的进程间通信。本发明中服务器的IPC模块广播publish消息、以及客户端的IPC模块内部查找服务器地址的方式,替代了现有技术中客户端进程从DNS Server上获取服务器地址的方式,使客户端能够及时地获取服务器的地址,而不会受分布式DNS Server的影响。因此,本发明的方案能够适应分布式系统的需要,在客户端进程和服务器进程之间及时高效地建立进程间通信。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

一种进程间通信方法和系统.pdf_第1页
第1页 / 共13页
一种进程间通信方法和系统.pdf_第2页
第2页 / 共13页
一种进程间通信方法和系统.pdf_第3页
第3页 / 共13页
点击查看更多>>
资源描述

《一种进程间通信方法和系统.pdf》由会员分享,可在线阅读,更多相关《一种进程间通信方法和系统.pdf(13页珍藏版)》请在专利查询网上搜索。

本发明提出一种进程间通信方法和系统,其中方法包括:客户端的进程间通信(IPC)模块接收客户端进程发送的发起连接指令,根据所述发起连接指令中包含的服务器进程的标识,查找预先记录的服务器进程的标识和服务器地址的对应关系,获取服务器的地址;客户端的IPC模块根据所述服务器的地址,向所述服务器的IPC模块发送连接消息,请求建立客户端进程与服务器进程之间的进程间通信。本发明能够适应分布式系统的需要,在客户端。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1