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

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

Info

Publication number
CN102591623B
CN102591623B CN201210018936.8A CN201210018936A CN102591623B CN 102591623 B CN102591623 B CN 102591623B CN 201210018936 A CN201210018936 A CN 201210018936A CN 102591623 B CN102591623 B CN 102591623B
Authority
CN
China
Prior art keywords
module
remote end
local terminal
instance
module instance
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.)
Expired - Fee Related
Application number
CN201210018936.8A
Other languages
English (en)
Other versions
CN102591623A (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 (9)

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

Families Citing this family (1)

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

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1459179A2 (en) * 2001-12-14 2004-09-22 Koninklijke Philips Electronics N.V. Data processing system having multiple processors and task scheduler and corresponding method therefor
CN101902436A (zh) * 2009-05-31 2010-12-01 华为技术有限公司 板间通信方法、装置及系统
CN101980170B (zh) * 2010-10-20 2012-09-05 北京星网锐捷网络技术有限公司 一种微内核系统中软件模块的通信方法、系统及装置

Also Published As

Publication number Publication date
CN102591623A (zh) 2012-07-18

Similar Documents

Publication Publication Date Title
CN108282514B (zh) 一种分布式业务建立方法及装置
CN103744719B (zh) 锁管理方法及系统、锁管理系统的配置方法及装置
CN101262501B (zh) 一种多核系统中的核间通信方法和一种多核系统
CN105978781A (zh) 建立Docker容器的网络连接的方法、系统以及客户端
CN101951411A (zh) 云调度系统及方法以及多级云调度系统
CN101739287A (zh) 管理虚拟机的装置、系统和方法
CN104123265A (zh) 一种众核间通信方法及系统
WO2010036656A2 (en) Directing data units to a core supporting tasks
CN102684923A (zh) 一种半双工异步通信自愈组网方法
CN107220102A (zh) 虚拟机的休眠与唤醒方法及系统
CN103634225A (zh) 云计算网络虚拟化中的业务带宽扩展方法
CN102957594A (zh) 基于消息队列的消息处理方法、相关设备及系统
CN105302759A (zh) 485通信芯片收发数据自动切换电路装置及方法
CN102511146A (zh) 会话边界控制器池的实现方法和会话边界控制器
CN102591623B (zh) 分布式模块间通信方法
WO2007146473B1 (en) Method and system for distributing data processing units in a communication network
CN104090733A (zh) 网络打印机
CN110290009A (zh) 一种数据调度方法、装置及计算机可读存储介质
CN103765837B (zh) 多cpu的报文处理方法及系统、交换单元、单板
CN104104594A (zh) Vsu的协议报文发送与接收方法、设备及系统
CN100388745C (zh) 一种中继资源分布式管理方法和系统
CN109120680A (zh) 一种控制系统、方法及相关设备
CN105306614A (zh) 地址管理方法、系统、地址管理器与本地地址管理装置
CN105939242A (zh) 实现虚拟系统的方法及装置
CN103870499A (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