CN102591623A - 分布式模块间通信方法 - Google Patents

分布式模块间通信方法 Download PDF

Info

Publication number
CN102591623A
CN102591623A CN2012100189368A CN201210018936A CN102591623A CN 102591623 A CN102591623 A CN 102591623A CN 2012100189368 A CN2012100189368 A CN 2012100189368A CN 201210018936 A CN201210018936 A CN 201210018936A CN 102591623 A CN102591623 A CN 102591623A
Authority
CN
China
Prior art keywords
module
module instance
instance
remote end
local terminal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012100189368A
Other languages
English (en)
Other versions
CN102591623B (zh
Inventor
周超勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201210018936.8A priority Critical patent/CN102591623B/zh
Publication of CN102591623A publication Critical patent/CN102591623A/zh
Application granted granted Critical
Publication of CN102591623B publication Critical patent/CN102591623B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供一种分布式模块间通信方法,应用于包括一个以上模块和管理平台的系统中;各个所述模块存在于分布式环境中的各物理节点,每一个所述模块代表一组数据以及对该组数据进行操作的集合。各模块与C++、JAVA中类的概念类似,同时,由管理平台向各个远端模块实例和本端模块实例分配唯一的模块实例标识,可以实现本端模块实例与各个远端模块实例之间、以及各个远端模块实例之间、以及本端模块实例与自身的通信,并且,本端模块实例与各个远端模块实例的类型可以相同或不同,从而有利于在各模块间灵活进行并行调度。

Description

分布式模块间通信方法
技术领域
本发明属于计算机技术领域,具体涉及一种分布式模块间通信方法。
背景技术
随着信息时代的迅速发展,人们需要处理的信息量日益增大,所以,现有技术中出现了分布式环境下的并行处理方法。通过并行处理方法,由主进程向每个结点的子进程动态地分配一个任务,然后等待各子进程返回结果。因此,实现了由若干个结点的子进程共同处理一项任务的效果,从而提高了信息处理速度。
但是,在实现本发明的过程中,发明人发现,现在技术至少存在以下缺点:在面向对象语言中的类(CLASS)在运行期间生成实例,而这些实例只存在于单台物理机器上,因此,在分布式环境下,各台物理机器上的实例不能彼此访问,从而限制了对实例进行并行调度的应用。其中,面向对象语言包括:C++、JAVA。
发明内容
针对现有技术存在的缺陷,本发明提供一种分布式模块间通信方法,各模块与C++、JAVA中类的概念类似,同时,分布于不同物理节点的模块间可以相互通信,从而有利于在各模块间进行并行调度。
本发明采用的技术方案如下:
本发明提供一种分布式模块间通信方法,应用于包括一个以上模块和管理平台的系统中;各个所述模块存在于分布式环境中的各物理节点,每一个所述模块代表一组数据以及对该组数据进行操作的集合;所述分布式模块间通信方法包括以下步骤:
S1,被用户触发的应用程序启动本端模块,得到本端模块实例;
S2,所述本端模块实例向所述管理平台发送模块激活指令;所述模块激活指令中携带有需要被激活的远端模块的模块类型、模块实例个数和负载均衡策略;
S3,所述管理平台根据所述模块激活指令启动一个以上远端模块,得到模块实例池;其中,所述模块实例池包括一个以上远端模块实例以及所述负载均衡策略;其中,每一个所述远端模块实例具有唯一模块实例标识;所述模块实例池归属于发起模块激活指令的所述本端模块实例;
S4,所述本端模块实例根据所述模块实例池中的一个以上所述模块实例标识寻址与所述模块实例标识对应的一个以上所述远端模块实例;
S5,所述本端模块实例与S4寻址到的一个以上所述远端模块实例通信。
优选的,所述管理平台包括平台本端和一个以上平台远端,所述平台本端和所述一个以上平台远端为一个逻辑平台;其中,所述平台本端用于接收所述本端模块实例发送的所述模块激活指令;
S3中,所述管理平台根据所述模块激活指令启动一个以上远端模块具体包括以下步骤;
S31,所述平台本端接收所述本端模块实例发送的所述模块激活指令;
S32,所述平台本端根据所述模块激活指令生成一个以上任务请求;
S33,所述平台本端将一个以上所述任务请求分发给所述一个以上平台远端;
S34,所述平台远端接收并执行所述任务请求;其中,执行所述任务请求为启动所述远端模块。
优选的,S3中,每一个所述远端模块实例中具有的所述唯一模块实例标识由所述管理平台分配。
优选的,S5中,所述通信方式包括:将所述模块实例池告知与所述模块实例池中的所有模块实例标识对应的远端模块实例。
优选的,S5之后,还包括:
S6,所述模块实例池中的所有模块实例标识对应的远端模块实例之间相互通信。
优选的,S5中,所述通信方式还包括:
S51,所述本端模块实例向归属于所述本端模块实例的一个所述模块实例池发送任务;所述任务包括一个以上任务请求;每一个所述任务请求中携带有指定的远端模块实例标识;
S52,所述模块实例池接收所述任务,并读取所述模块实例池中的所述负载均衡策略,判断读取到的所述负载均衡策略是否为空,如果判断结果为是,则执行S53-S54,如果判断结果为否,则执行S55-S57;
S53,所述模块实例池将所述任务请求发送给与所述指定的远端模块实例标识对应的远端模块实例;
S54,所述远端模块实例执行所述任务请求;
S55,所述模块实例池选择符合所述负载均衡策略的远端模块实例;
S56,所述模块实例池将所述任务请求发送给S55选择到的所述远端模块实例;
S57,S55选择到的所述远端模块实例执行所述任务请求。
优选的,S51中,所述任务请求为远端模块的操作访问。
优选的,所述远端模块的操作访问包括两种以上操作以及与所述操作对应的操作参数表。
优选的,所述操作包括:启动本端模块的操作、停止本端模块的操作和对本端模块数据的操作;其中,模块实例标识参数存在于与所述停止本端模块的操作和对本端模块数据的操作对应的操作参数表中。
优选的,S3之后,还包括:
所述本端模块实例向所述模块实例池发送模块去激活指令;
所述模块实例池停止所述模块实例池中的所有所述远端模块实例;同时将与所述远端模块实例对应的远端模块实例标识归还给所述管理平台。
本发明的有益效果如下:
本发明提供一种分布式模块间通信方法,各模块与C++、JAVA中类的概念类似,同时,由管理平台向各个远端模块实例和本端模块实例分配唯一的模块实例标识,可以实现本端模块实例与各个远端模块实例之间、以及各个远端模块实例之间、以及本端模块实例与自身的通信,并且,本端模块实例与各个远端模块实例的类型可以相同或不同,从而有利于在各模块间灵活进行并行调度。
附图说明
图1为本发明提供的分布式模块间通信方法的流程示意图;
图2为本发明提供的管理平台进行任务分发的结构示意图;
图3为本发明提供的分布式模块间通信方法的原理图。
具体实施方式
如图1所示,本发明提供一种分布式模块间通信方法,应用于包括一个以上模块和管理平台的系统中;各个所述模块存在于分布式环境中的各物理节点,每一个模块代表一组数据以及对该组数据进行操作的集合;所述分布式模块间通信方法包括以下步骤:
S1,被用户触发的应用程序启动本端模块,得到本端模块实例;
本发明中,启动模块后即得到模块实例,其中,模块的概念为一组数据以及对该组数据进行操作的集合,模块变为模块实例的过程与类变为类的实例的过程相似。
S2,所述本端模块实例向所述管理平台发送模块激活指令;所述模块激活指令中携带有需要被激活的远端模块的模块类型、模块实例个数和负载均衡策略。
其中,远端模块的模块类型包括但不限于矩阵模块和分布式文件模块。本发明中,本端模块实例可以通过管理平台激活一类远端模块,例如:本端模块实例激活矩阵模块或分布式文件模块等,从而实现本端模块实例与各类远端模块实例的通信。
S3,所述管理平台根据所述模块激活指令启动一个以上远端模块,得到模块实例池;其中,所述模块实例池包括一个以上远端模块实例以及所述负载均衡策略;其中,每一个所述远端模块实例具有唯一模块实例标识;所述模块实例池归属于发起模块激活指令的所述本端模块实例;其中,每一个所述远端模块实例中具有的所述唯一模块实例标识由所述管理平台分配。
本步骤为模块激活过程,在模块被激活之后,还包括模块被去激活的过程,详见步骤S7、S8。
需要说明的是,向各个远端模块实例分配的模块实例标识的作用是标识分布式环境下的各个远端模块实例。在具体实现上,可以只向各个远端模块实例分配一个全局唯一的标识符;也可以向各个远端模块实例分配局部唯一标识符,然后通过局部唯一标识符与若干其它类型的标识符结合在一起,构成全局唯一标识符,例如,通过三元标识符组(机器节点标识符,进程标识符,局部唯一标识符)实现全局唯一标识作用。本发明对远端模块实例所具有的唯一模块实例标识的实现方式并不限制。
本发明中,如图2所示,为管理平台进行任务分发的结构示意图,管理平台包括平台本端和一个以上平台远端,所述平台本端和所述一个以上平台远端为一个逻辑平台;其中,所述平台本端用于接收所述本端模块实例发送的所述模块激活指令;本步骤中,所述管理平台根据所述模块激活指令启动一个以上远端模块具体包括以下步骤:
S31,所述平台本端接收所述本端模块实例发送的所述模块激活指令;
S32,所述平台本端根据所述模块激活指令生成一个以上任务请求;
S33,所述平台本端将一个以上所述任务请求分发给所述一个以上平台远端;
S34,所述平台远端接收并执行所述任务请求;其中,执行所述任务请求为启动所述远端模块。
S4,所述本端模块实例根据所述模块实例池中的一个以上所述模块实例标识寻址与所述模块实例标识对应的一个以上所述远端模块实例;
S5,本端模块实例与S4寻址到的一个以上所述远端模块实例通信。
本步骤中,通信方式包括:将所述模块实例池告知与所述模块实例池中的所有模块实例标识对应的远端模块实例,从而可以实现模块实例池中的所有模块实例标识对应的远端模块实例之间相互通信。例如:与本端模块实例A对应的模块实例池A中存储有远端模块实例B、C、D的标识,则本端模块实例A将远端模块实例B、C、D的标识同时告知远端模块实例B、C、D,因此,远端模块实例B获知远端模块实例C、D的标识,同时,远端模块实例C获知远端模块实例B、D的标识,远端模块实例D获知远端模块实例B、C的标识,从而可以实现远端模块实例B、C、D之间的通信。上述通信方式在具体实现上为广播。当然,本领域普通技术人员可以理解,本端模块实例A也可以采用单播或组播的方式将其获知的远端模块实例标识告知特定的远端模块实例,例如:本端模块实例A将远端模块实例B、C、D的标识同时只告知远端模块实例B和C,从而实现远端模块实例B和C之间的通信。
S5中,所述通信方式还包括:
S51,所述本端模块实例向归属于所述本端模块实例的一个所述模块实例池发送任务;所述任务包括一个以上任务请求;每一个所述任务请求中携带有指定的远端模块实例标识;其中,任务请求为远端模块的操作访问。远端模块的操作访问包括两种以上操作以及与所述操作对应的操作参数表。所述操作包括:启动本端模块的操作、停止本端模块的操作和对本端模块数据的操作;其中,模块实例标识参数存在于与所述停止本端模块的操作和对本端模块数据的操作对应的操作参数表中,而不存在于与启动本端模块的操作对应的操作参数表中。
S52,所述模块实例池接收所述任务,并读取所述模块实例池中的所述负载均衡策略,判断读取到的所述负载均衡策略是否为空,如果判断结果为是,则执行S53-S54,如果判断结果为否,则执行S55-S57;
S53,所述模块实例池将所述任务请求发送给与所述指定的远端模块实例标识对应的远端模块实例;
S54,所述远端模块实例执行所述任务请求;
S55,所述模块实例池选择符合所述负载均衡策略的远端模块实例;
S56,所述模块实例池将所述任务请求发送给S55选择到的所述远端模块实例;
S57,S55选择到的所述远端模块实例执行所述任务请求。
S3之后,还包括对模块去激活部分,具体为:
S7,所述本端模块实例向所述模块实例池发送模块去激活指令;
S8,所述模块实例池停止所述模块实例池中的所有所述远端模块实例;同时将与所述远端模块实例对应的远端模块实例标识归还给所述管理平台。
如图3所示,为本发明提供的分布式模块间通信方法的一个具体实施例,A类模块实例1与B类模块实例1位于同一物理节点,而B类模块实例2和B类模块实例3分布于与A类模块实例1的物理节点不同的物理节点,通过任务驱动的方式,A类模块实例1既可以与位于同一物理节点的B类模块实例1通信,同时A类模块实例1还可以与位于不同物理节点的B类模块实例2和B类模块实例3通信。并且,A类模块实例与B类模块实例的模块类型既可以相同,也可以不相同。也就是说,本发明既可以实现相同类型的模块实例之间的通信,也可以实现不同类型的模块实例之间的通信。
需要说明的是,本发明中,本端模块和远端模块是两个相对的概念,其中,本端模块为任务的发起者,远端模块为任务的接收者,并且,本端模块和远端模块并不局限于两个分布在不同物理节点的模块,也可以为同一个模块,例如:本端模块A可以向自身发起任务,然后由本端模块A接收该任务并处理。同样的,本发明中,平台本端和平台远端是两个相对的概念,其中,平台本端为本端模块所在的平台,平台远端为远端模块所在的平台,平台本端为通信的发起者,平台远端为通信的接收者,并且,平台本端和平台远端并不局限于两个分布在不同物理节点的平台,也可以为同一个平台,例如:平台本端A可以向自身发起通信,然后由平台本端A接收该通信。
因此,通过使用本发明提供的分布式模块间通信方法,各模块与C++、JAVA中类的概念类似,同时,由管理平台向各个远端模块实例和本端模块实例分配唯一的模块实例标识,可以实现本端模块实例与各个远端模块实例之间、以及各个远端模块实例之间、以及本端模块实例与自身的通信,并且,本端模块实例与各个远端模块实例的类型可以相同或不同,从而有利于在各模块间灵活进行并行调度。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

Claims (10)

1.一种分布式模块间通信方法,其特征在于,应用于包括一个以上模块和管理平台的系统中;各个所述模块存在于分布式环境中的各物理节点,每一个所述模块代表一组数据以及对该组数据进行操作的集合;所述分布式模块间通信方法包括以下步骤:
S1,被用户触发的应用程序启动本端模块,得到本端模块实例;
S2,所述本端模块实例向所述管理平台发送模块激活指令;所述模块激活指令中携带有需要被激活的远端模块的模块类型、模块实例个数和负载均衡策略;
S3,所述管理平台根据所述模块激活指令启动一个以上远端模块,得到模块实例池;其中,所述模块实例池包括一个以上远端模块实例以及所述负载均衡策略;其中,每一个所述远端模块实例具有唯一模块实例标识;所述模块实例池归属于发起模块激活指令的所述本端模块实例;
S4,所述本端模块实例根据所述模块实例池中的一个以上所述模块实例标识寻址与所述模块实例标识对应的一个以上所述远端模块实例;
S5,所述本端模块实例与S4寻址到的一个以上所述远端模块实例通信。
2.根据权利要求1所述的分布式模块间通信方法,其特征在于,所述管理平台包括平台本端和一个以上平台远端,所述平台本端和所述一个以上平台远端为一个逻辑平台;其中,所述平台本端用于接收所述本端模块实例发送的所述模块激活指令;
S3中,所述管理平台根据所述模块激活指令启动一个以上远端模块具体包括以下步骤:
S31,所述平台本端接收所述本端模块实例发送的所述模块激活指令;
S32,所述平台本端根据所述模块激活指令生成一个以上任务请求;
S33,所述平台本端将一个以上所述任务请求分发给所述一个以上平台远端;
S34,所述平台远端接收并执行所述任务请求;其中,执行所述任务请求为启动所述远端模块。
3.根据权利要求1所述的分布式模块间通信方法,其特征在于,S3中,每一个所述远端模块实例中具有的所述唯一模块实例标识由所述管理平台分配。
4.根据权利要求1所述的分布式模块间通信方法,其特征在于,S5中,所述通信方式包括:将所述模块实例池告知与所述模块实例池中的所有模块实例标识对应的远端模块实例。
5.根据权利要求4所述的分布式模块间通信方法,其特征在于,S5之后,还包括:
S6,所述模块实例池中的所有模块实例标识对应的远端模块实例之间相互通信。
6.根据权利要求1所述的分布式模块间通信方法,其特征在于,S5中,所述通信方式还包括:
S51,所述本端模块实例向归属于所述本端模块实例的一个所述模块实例池发送任务;所述任务包括一个以上任务请求;每一个所述任务请求中携带有指定的远端模块实例标识;
S52,所述模块实例池接收所述任务,并读取所述模块实例池中的所述负载均衡策略,判断读取到的所述负载均衡策略是否为空,如果判断结果为是,则执行S53-S54,如果判断结果为否,则执行S55-S57;
S53,所述模块实例池将所述任务请求发送给与所述指定的远端模块实例标识对应的远端模块实例;
S54,所述远端模块实例执行所述任务请求;
S55,所述模块实例池选择符合所述负载均衡策略的远端模块实例;
S56,所述模块实例池将所述任务请求发送给S55选择到的所述远端模块实例;
S57,S55选择到的所述远端模块实例执行所述任务请求。
7.根据权利要求6所述的分布式模块间通信方法,其特征在于,S51中,所述任务请求为远端模块的操作访问。
8.根据权利要求7所述的分布式模块间通信方法,其特征在于,所述远端模块的操作访问包括两种以上操作以及与所述操作对应的操作参数表。
9.根据权利要求8所述的分布式模块间通信方法,其特征在于,所述操作包括:启动本端模块的操作、停止本端模块的操作和对本端模块数据的操作;其中,模块实例标识参数存在于与所述停止本端模块的操作和对本端模块数据的操作对应的操作参数表中。
10.根据权利要求1所述的分布式模块间通信方法,其特征在于,S3之后,还包括:
所述本端模块实例向所述模块实例池发送模块去激活指令;
所述模块实例池停止所述模块实例池中的所有所述远端模块实例;同时将与所述远端模块实例对应的远端模块实例标识归还给所述管理平台。
CN201210018936.8A 2012-01-20 2012-01-20 分布式模块间通信方法 Expired - Fee Related CN102591623B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210018936.8A CN102591623B (zh) 2012-01-20 2012-01-20 分布式模块间通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210018936.8A CN102591623B (zh) 2012-01-20 2012-01-20 分布式模块间通信方法

Publications (2)

Publication Number Publication Date
CN102591623A true CN102591623A (zh) 2012-07-18
CN102591623B CN102591623B (zh) 2014-04-02

Family

ID=46480356

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210018936.8A Expired - Fee Related CN102591623B (zh) 2012-01-20 2012-01-20 分布式模块间通信方法

Country Status (1)

Country Link
CN (1) CN102591623B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108287710A (zh) * 2018-02-11 2018-07-17 北京恒华伟业科技股份有限公司 一种Java模块通讯方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050081200A1 (en) * 2001-12-14 2005-04-14 Rutten Martijn Johan Data processing system having multiple processors, a task scheduler for a data processing system having multiple processors and a corresponding method for task scheduling
CN101902436A (zh) * 2009-05-31 2010-12-01 华为技术有限公司 板间通信方法、装置及系统
CN101980170A (zh) * 2010-10-20 2011-02-23 北京星网锐捷网络技术有限公司 一种微内核系统中软件模块的通信方法、系统及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050081200A1 (en) * 2001-12-14 2005-04-14 Rutten Martijn Johan Data processing system having multiple processors, a task scheduler for a data processing system having multiple processors and a corresponding method for task scheduling
CN101902436A (zh) * 2009-05-31 2010-12-01 华为技术有限公司 板间通信方法、装置及系统
CN101980170A (zh) * 2010-10-20 2011-02-23 北京星网锐捷网络技术有限公司 一种微内核系统中软件模块的通信方法、系统及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108287710A (zh) * 2018-02-11 2018-07-17 北京恒华伟业科技股份有限公司 一种Java模块通讯方法及系统
CN108287710B (zh) * 2018-02-11 2021-02-12 北京恒华伟业科技股份有限公司 一种Java模块通讯方法及系统

Also Published As

Publication number Publication date
CN102591623B (zh) 2014-04-02

Similar Documents

Publication Publication Date Title
CN100389392C (zh) 一种集群系统中实现负载均衡的方法、系统和存储控制器
CN105760214A (zh) 一种设备状态及资源信息监测方法、相关设备及系统
CN102185718B (zh) 一种系统升级方法及其装置
CN103298016A (zh) 移动终端的测试系统
CN102546778B (zh) 基于代理跨平台的无线网络接入控制器板间通信方法
CN103532823A (zh) 物联网消息处理方法、装置及系统
CN102196039B (zh) 基于云计算的多机器人系统及其实现方法
CN104123265A (zh) 一种众核间通信方法及系统
CN105103493A (zh) 实现网络虚拟化的方法及相关装置和通信系统
USRE46770E1 (en) Computer managing method
CN107220102A (zh) 虚拟机的休眠与唤醒方法及系统
CN102622229A (zh) 一种不同类型的开发框架的融合方法、系统和装置
CN102511146A (zh) 会话边界控制器池的实现方法和会话边界控制器
CN108279649A (zh) 工业设备管理方法以及相关装置
CN110290009A (zh) 一种数据调度方法、装置及计算机可读存储介质
CN104090733A (zh) 网络打印机
CN102591623A (zh) 分布式模块间通信方法
CN102571595A (zh) 一种堆叠系统的路由转发信息同步方法和装置
CN100388745C (zh) 一种中继资源分布式管理方法和系统
CN111459510A (zh) 跨网络操作系统的安装方法、装置、电子设备及介质
CN101170584B (zh) 分布式系统及其中的数据配置方法
CN101247401B (zh) 基于消息驱动的状态机处理方法和装置
CN102025534A (zh) 单板资源配置方法及装置
CN104104594A (zh) Vsu的协议报文发送与接收方法、设备及系统
CN103914339A (zh) 服务器管理系统及服务器管理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20120718

Assignee: Masterpiece Educational Technology (Beijing) Co., Ltd.

Assignor: Zhou Chaoyong

Contract record no.: 2014990000723

Denomination of invention: Distributed inter-module communication method

Granted publication date: 20140402

License type: Exclusive License

Record date: 20140828

LICC Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140402

Termination date: 20160120

EXPY Termination of patent right or utility model