專利名稱:分布式模塊間通信方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計算機技術(shù)領(lǐng)域,具體涉及一種分布式模塊間通信方法。
背景技術(shù):
隨著信息時代的迅速發(fā)展,人們需要處理的信息量日益增大,所以,現(xiàn)有技術(shù)中出現(xiàn)了分布式環(huán)境下的并行處理方法。通過并行處理方法,由主進程向每個結(jié)點的子進程動態(tài)地分配一個任務(wù),然后等待各子進程返回結(jié)果。因此,實現(xiàn)了由若干個結(jié)點的子進程共同處理一項任務(wù)的效果,從而提高了信息處理速度。但是,在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn),現(xiàn)在技術(shù)至少存在以下缺點在面向?qū)ο笳Z言中的類(CLASS)在運行期間生成實例,而這些實例只存在于單臺物理機器上,因此,在分布式環(huán)境下,各臺物理機器上的實例不能彼此訪問,從而限制了對實例進行并行調(diào)度的應(yīng)用。其中,面向?qū)ο笳Z言包括C++、JAVA。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)存在的缺陷,本發(fā)明提供一種分布式模塊間通信方法,各模塊與 C++、JAVA中類的概念類似,同時,分布于不同物理節(jié)點的模塊間可以相互通信,從而有利于在各模塊間進行并行調(diào)度。本發(fā)明采用的技術(shù)方案如下本發(fā)明提供一種分布式模塊間通信方法,應(yīng)用于包括一個以上模塊和管理平臺的系統(tǒng)中;各個所述模塊存在于分布式環(huán)境中的各物理節(jié)點,每一個所述模塊代表一組數(shù)據(jù)以及對該組數(shù)據(jù)進行操作的集合;所述分布式模塊間通信方法包括以下步驟SI,被用戶觸發(fā)的應(yīng)用程序啟動本端模塊,得到本端模塊實例;S2,所述本端模塊實例向所述管理平臺發(fā)送模塊激活指令;所述模塊激活指令中攜帶有需要被激活的遠端模塊的模塊類型、模塊實例個數(shù)和負載均衡策略;S3,所述管理平臺根據(jù)所述模塊激活指令啟動一個以上遠端模塊,得到模塊實例池;其中,所述模塊實例池包括一個以上遠端模塊實例以及所述負載均衡策略;其中,每一個所述遠端模塊實例具有唯一模塊實例標識;所述模塊實例池歸屬于發(fā)起模塊激活指令的所述本端模塊實例;S4,所述本端模塊實例根據(jù)所述模塊實例池中的一個以上所述模塊實例標識尋址與所述模塊實例標識對應(yīng)的一個以上所述遠端模塊實例;S5,所述本端模塊實例與S4尋址到的一個以上所述遠端模塊實例通信。優(yōu)選的,所述管理平臺包括平臺本端和一個以上平臺遠端,所述平臺本端和所述一個以上平臺遠端為一個邏輯平臺;其中,所述平臺本端用于接收所述本端模塊實例發(fā)送的所述模塊激活指令;S3中,所述管理平臺根據(jù)所述模塊激活指令啟動一個以上遠端模塊具體包括以下步驟;
S31,所述平臺本端接收所述本端模塊實例發(fā)送的所述模塊激活指令;S32,所述平臺本端根據(jù)所述模塊激活指令生成一個以上任務(wù)請求;S33,所述平臺本端將一個以上所述任務(wù)請求分發(fā)給所述一個以上平臺遠端;S34,所述平臺遠端接收并執(zhí)行所述任務(wù)請求;其中,執(zhí)行所述任務(wù)請求為啟動所述遠端模塊。優(yōu)選的,S3中,每一個所述遠端模塊實例中具有的所述唯一模塊實例標識由所述管理平臺分配。優(yōu)選的,S5中,所述通信方式包括將所述模塊實例池告知與所述模塊實例池中的所有模塊實例標識對應(yīng)的遠端模塊實例。優(yōu)選的,S5之后,還包括S6,所述模塊實例池中的所有模塊實例標識對應(yīng)的遠端模塊實例之間相互通信。優(yōu)選的,S5中,所述通信方式還包括S51,所述本端模塊實例向歸屬于所述本端模塊實例的一個所述模塊實例池發(fā)送任務(wù);所述任務(wù)包括一個以上任務(wù)請求;每一個所述任務(wù)請求中攜帶有指定的遠端模塊實例標識;S52,所述模塊實例池接收所述任務(wù),并讀取所述模塊實例池中的所述負載均衡策略,判斷讀取到的所述負載均衡策略是否為空,如果判斷結(jié)果為是,則執(zhí)行S53-S54,如果判斷結(jié)果為否,則執(zhí)行S55-S57 ;S53,所述模塊實例池將所述任務(wù)請求發(fā)送給與所述指定的遠端模塊實例標識對應(yīng)的遠端模塊實例;S54,所述遠端模塊實例執(zhí)行所述任務(wù)請求;S55,所述模塊實例池選擇符合所述負載均衡策略的遠端模塊實例;S56,所述模塊實例池將所述任務(wù)請求發(fā)送給S55選擇到的所述遠端模塊實例;S57,S55選擇到的所述遠端模塊實例執(zhí)行所述任務(wù)請求。優(yōu)選的,S51中,所述任務(wù)請求為遠端模塊的操作訪問。優(yōu)選的,所述遠端模塊的操作訪問包括兩種以上操作以及與所述操作對應(yīng)的操作
參數(shù)表。優(yōu)選的,所述操作包括啟動本端模塊的操作、停止本端模塊的操作和對本端模塊數(shù)據(jù)的操作;其中,模塊實例標識參數(shù)存在于與所述停止本端模塊的操作和對本端模塊數(shù)據(jù)的操作對應(yīng)的操作參數(shù)表中。優(yōu)選的,S3之后,還包括所述本端模塊實例向所述模塊實例池發(fā)送模塊去激活指令;所述模塊實例池停止所述模塊實例池中的所有所述遠端模塊實例;同時將與所述遠端模塊實例對應(yīng)的遠端模塊實例標識歸還給所述管理平臺。本發(fā)明的有益效果如下本發(fā)明提供一種分布式模塊間通信方法,各模塊與C++、JAVA中類的概念類似,同時,由管理平臺向各個遠端模塊實例和本端模塊實例分配唯一的模塊實例標識,可以實現(xiàn)本端模塊實例與各個遠端模塊實例之間、以及各個遠端模塊實例之間、以及本端模塊實例與自身的通信,并且,本端模塊實例與各個遠端模塊實例的類型可以相同或不同,從而有利于在各模塊間靈活進行并行調(diào)度。
圖I為本發(fā)明提供的分布式模塊間通信方法的流程示意圖;圖2為本發(fā)明提供的管理平臺進行任務(wù)分發(fā)的結(jié)構(gòu)示意圖;圖3為本發(fā)明提供的分布式模塊間通信方法的原理圖。
具體實施例方式如圖I所示,本發(fā)明提供一種分布式模塊間通信方法,應(yīng)用于包括一個以上模塊和管理平臺的系統(tǒng)中;各個所述模塊存在于分布式環(huán)境中的各物理節(jié)點,每一個模塊代表一組數(shù)據(jù)以及對該組數(shù)據(jù)進行操作的集合;所述分布式模塊間通信方法包括以下步驟SI,被用戶觸發(fā)的應(yīng)用程序啟動本端模塊,得到本端模塊實例;本發(fā)明中,啟動模塊后即得到模塊實例,其中,模塊的概念為一組數(shù)據(jù)以及對該組數(shù)據(jù)進行操作的集合,模塊變?yōu)槟K實例的過程與類變?yōu)轭惖膶嵗倪^程相似。S2,所述本端模塊實例向所述管理平臺發(fā)送模塊激活指令;所述模塊激活指令中攜帶有需要被激活的遠端模塊的模塊類型、模塊實例個數(shù)和負載均衡策略。其中,遠端模塊的模塊類型包括但不限于矩陣模塊和分布式文件模塊。本發(fā)明中, 本端模塊實例可以通過管理平臺激活一類遠端模塊,例如本端模塊實例激活矩陣模塊或分布式文件模塊等,從而實現(xiàn)本端模塊實例與各類遠端模塊實例的通信。S3,所述管理平臺根據(jù)所述模塊激活指令啟動一個以上遠端模塊,得到模塊實例池;其中,所述模塊實例池包括一個以上遠端模塊實例以及所述負載均衡策略;其中,每一個所述遠端模塊實例具有唯一模塊實例標識;所述模塊實例池歸屬于發(fā)起模塊激活指令的所述本端模塊實例;其中,每一個所述遠端模塊實例中具有的所述唯一模塊實例標識由所述管理平臺分配。本步驟為模塊激活過程,在模塊被激活之后,還包括模塊被去激活的過程,詳見步驟 S7、S8。需要說明的是,向各個遠端模塊實例分配的模塊實例標識的作用是標識分布式環(huán)境下的各個遠端模塊實例。在具體實現(xiàn)上,可以只向各個遠端模塊實例分配一個全局唯一的標識符;也可以向各個遠端模塊實例分配局部唯一標識符,然后通過局部唯一標識符與若干其它類型的標識符結(jié)合在一起,構(gòu)成全局唯一標識符,例如,通過三元標識符組(機器節(jié)點標識符,進程標識符,局部唯一標識符)實現(xiàn)全局唯一標識作用。本發(fā)明對遠端模塊實例所具有的唯一模塊實例標識的實現(xiàn)方式并不限制。本發(fā)明中,如圖2所示,為管理平臺進行任務(wù)分發(fā)的結(jié)構(gòu)示意圖,管理平臺包括平臺本端和一個以上平臺遠端,所述平臺本端和所述一個以上平臺遠端為一個邏輯平臺;其中,所述平臺本端用于接收所述本端模塊實例發(fā)送的所述模塊激活指令;本步驟中,所述管理平臺根據(jù)所述模塊激活指令啟動一個以上遠端模塊具體包括以下步驟S31,所述平臺本端接收所述本端模塊實例發(fā)送的所述模塊激活指令;S32,所述平臺本端根據(jù)所述模塊激活指令生成一個以上任務(wù)請求;S33,所述平臺本端將一個以上所述任務(wù)請求分發(fā)給所述一個以上平臺遠端;
S34,所述平臺遠端接收并執(zhí)行所述任務(wù)請求;其中,執(zhí)行所述任務(wù)請求為啟動所述遠端模塊。S4,所述本端模塊實例根據(jù)所述模塊實例池中的一個以上所述模塊實例標識尋址與所述模塊實例標識對應(yīng)的一個以上所述遠端模塊實例;S5,本端模塊實例與S4尋址到的一個以上所述遠端模塊實例通信。本步驟中,通信方式包括將所述模塊實例池告知與所述模塊實例池中的所有模塊實例標識對應(yīng)的遠端模塊實例,從而可以實現(xiàn)模塊實例池中的所有模塊實例標識對應(yīng)的遠端模塊實例之間相互通信。例如與本端模塊實例A對應(yīng)的模塊實例池A中存儲有遠端模塊實例B、C、D的標識,則本端模塊實例A將遠端模塊實例B、C、D的標識同時告知遠端模塊實例B、C、D,因此,遠端模塊實例B獲知遠端模塊實例C、D的標識,同時,遠端模塊實例C 獲知遠端模塊實例B、D的標識,遠端模塊實例D獲知遠端模塊實例B、C的標識,從而可以實現(xiàn)遠端模塊實例B、C、D之間的通信。上述通信方式在具體實現(xiàn)上為廣播。當然,本領(lǐng)域普通技術(shù)人員可以理解,本端模塊實例A也可以采用單播或組播的方式將其獲知的遠端模塊實例標識告知特定的遠端模塊實例,例如本端模塊實例A將遠端模塊實例B、C、D的標識同時只告知遠端模塊實例B和C,從而實現(xiàn)遠端模塊實例B和C之間的通信。S5中,所述通信方式還包括S51,所述本端模塊實例向歸屬于所述本端模塊實例的一個所述模塊實例池發(fā)送任務(wù);所述任務(wù)包括一個以上任務(wù)請求;每一個所述任務(wù)請求中攜帶有指定的遠端模塊實例標識;其中,任務(wù)請求為遠端模塊的操作訪問。遠端模塊的操作訪問包括兩種以上操作以及與所述操作對應(yīng)的操作參數(shù)表。所述操作包括啟動本端模塊的操作、停止本端模塊的操作和對本端模塊數(shù)據(jù)的操作;其中,模塊實例標識參數(shù)存在于與所述停止本端模塊的操作和對本端模塊數(shù)據(jù)的操作對應(yīng)的操作參數(shù)表中,而不存在于與啟動本端模塊的操作對應(yīng)的操作參數(shù)表中。S52,所述模塊實例池接收所述任務(wù),并讀取所述模塊實例池中的所述負載均衡策略,判斷讀取到的所述負載均衡策略是否為空,如果判斷結(jié)果為是,則執(zhí)行S53-S54,如果判斷結(jié)果為否,則執(zhí)行S55-S57 ;S53,所述模塊實例池將所述任務(wù)請求發(fā)送給與所述指定的遠端模塊實例標識對應(yīng)的遠端模塊實例;S54,所述遠端模塊實例執(zhí)行所述任務(wù)請求;S55,所述模塊實例池選擇符合所述負載均衡策略的遠端模塊實例;S56,所述模塊實例池將所述任務(wù)請求發(fā)送給S55選擇到的所述遠端模塊實例;S57,S55選擇到的所述遠端模塊實例執(zhí)行所述任務(wù)請求。S3之后,還包括對模塊去激活部分,具體為S7,所述本端模塊實例向所述模塊實例池發(fā)送模塊去激活指令;S8,所述模塊實例池停止所述模塊實例池中的所有所述遠端模塊實例;同時將與所述遠端模塊實例對應(yīng)的遠端模塊實例標識歸還給所述管理平臺。如圖3所示,為本發(fā)明提供的分布式模塊間通信方法的一個具體實施例,A類模塊實例I與B類模塊實例I位于同一物理節(jié)點,而B類模塊實例2和B類模塊實例3分布于與A類模塊實例I的物理節(jié)點不同的物理節(jié)點,通過任務(wù)驅(qū)動的方式,A類模塊實例I既可以與位于同一物理節(jié)點的B類模塊實例I通信,同時A類模塊實例I還可以與位于不同物理節(jié)點的B類模塊實例2和B類模塊實例3通信。并且,A類模塊實例與B類模塊實例的模塊類型既可以相同,也可以不相同。也就是說,本發(fā)明既可以實現(xiàn)相同類型的模塊實例之間的通信,也可以實現(xiàn)不同類型的模塊實例之間的通信。需要說明的是,本發(fā)明中,本端模塊和遠端模塊是兩個相對的概念,其中,本端模塊為任務(wù)的發(fā)起者,遠端模塊為任務(wù)的接收者,并且,本端模塊和遠端模塊并不局限于兩個分布在不同物理節(jié)點的模塊,也可以為同一個模塊,例如本端模塊A可以向自身發(fā)起任務(wù),然后由本端模塊A接收該任務(wù)并處理。同樣的,本發(fā)明中,平臺本端和平臺遠端是兩個相對的概念,其中,平臺本端為本端模塊所在的平臺,平臺遠端為遠端模塊所在的平臺,平臺本端為通信的發(fā)起者,平臺遠端為通信的接收者,并且,平臺本端和平臺遠端并不局限于兩個分布在不同物理節(jié)點的平臺,也可以為同一個平臺,例如平臺本端A可以向自身發(fā)起通信,然后由平臺本端A接收該通信。因此,通過使用本發(fā)明提供的分布式模塊間通信方法,各模塊與C++、JAVA中類的概念類似,同時,由管理平臺向各個遠端模塊實例和本端模塊實例分配唯一的模塊實例標識,可以實現(xiàn)本端模塊實例與各個遠端模塊實例之間、以及各個遠端模塊實例之間、以及本端模塊實例與自身的通信,并且,本端模塊實例與各個遠端模塊實例的類型可以相同或不同,從而有利于在各模塊間靈活進行并行調(diào)度。以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應(yīng)視本發(fā)明的保護范圍。
權(quán)利要求
1.一種分布式模塊間通信方法,其特征在于,應(yīng)用于包括一個以上模塊和管理平臺的系統(tǒng)中;各個所述模塊存在于分布式環(huán)境中的各物理節(jié)點,每一個所述模塊代表一組數(shù)據(jù)以及對該組數(shù)據(jù)進行操作的集合;所述分布式模塊間通信方法包括以下步驟Si,被用戶觸發(fā)的應(yīng)用程序啟動本端模塊,得到本端模塊實例;S2,所述本端模塊實例向所述管理平臺發(fā)送模塊激活指令;所述模塊激活指令中攜帶有需要被激活的遠端模塊的模塊類型、模塊實例個數(shù)和負載均衡策略;S3,所述管理平臺根據(jù)所述模塊激活指令啟動一個以上遠端模塊,得到模塊實例池;其中,所述模塊實例池包括一個以上遠端模塊實例以及所述負載均衡策略;其中,每一個所述遠端模塊實例具有唯一模塊實例標識;所述模塊實例池歸屬于發(fā)起模塊激活指令的所述本端模塊實例;S4,所述本端模塊實例根據(jù)所述模塊實例池中的一個以上所述模塊實例標識尋址與所述模塊實例標識對應(yīng)的一個以上所述遠端模塊實例;S5,所述本端模塊實例與S4尋址到的一個以上所述遠端模塊實例通信。
2.根據(jù)權(quán)利要求I所述的分布式模塊間通信方法,其特征在于,所述管理平臺包括平臺本端和一個以上平臺遠端,所述平臺本端和所述一個以上平臺遠端為一個邏輯平臺;其中,所述平臺本端用于接收所述本端模塊實例發(fā)送的所述模塊激活指令;S3中,所述管理平臺根據(jù)所述模塊激活指令啟動一個以上遠端模塊具體包括以下步驟S31,所述平臺本端接收所述本端模塊實例發(fā)送的所述模塊激活指令;S32,所述平臺本端根據(jù)所述模塊激活指令生成一個以上任務(wù)請求;S33,所述平臺本端將一個以上所述任務(wù)請求分發(fā)給所述一個以上平臺遠端;S34,所述平臺遠端接收并執(zhí)行所述任務(wù)請求;其中,執(zhí)行所述任務(wù)請求為啟動所述遠端模塊。
3.根據(jù)權(quán)利要求I所述的分布式模塊間通信方法,其特征在于,S3中,每一個所述遠端模塊實例中具有的所述唯一模塊實例標識由所述管理平臺分配。
4.根據(jù)權(quán)利要求I所述的分布式模塊間通信方法,其特征在于,S5中,所述通信方式包括將所述模塊實例池告知與所述模塊實例池中的所有模塊實例標識對應(yīng)的遠端模塊實例。
5.根據(jù)權(quán)利要求4所述的分布式模塊間通信方法,其特征在于,S5之后,還包括S6,所述模塊實例池中的所有模塊實例標識對應(yīng)的遠端模塊實例之間相互通信。
6.根據(jù)權(quán)利要求I所述的分布式模塊間通信方法,其特征在于,S5中,所述通信方式還包括S51,所述本端模塊實例向歸屬于所述本端模塊實例的一個所述模塊實例池發(fā)送任務(wù); 所述任務(wù)包括一個以上任務(wù)請求;每一個所述任務(wù)請求中攜帶有指定的遠端模塊實例標S52,所述模塊實例池接收所述任務(wù),并讀取所述模塊實例池中的所述負載均衡策略, 判斷讀取到的所述負載均衡策略是否為空,如果判斷結(jié)果為是,則執(zhí)行S53-S54,如果判斷結(jié)果為否,則執(zhí)行S55-S57 ;S53,所述模塊實例池將所述任務(wù)請求發(fā)送給與所述指定的遠端模塊實例標識對應(yīng)的遠立而|吳塊實例;S54,所述遠端模塊實例執(zhí)行所述任務(wù)請求;S55,所述模塊實例池選擇符合所述負載均衡策略的遠端模塊實例;S56,所述模塊實例池將所述任務(wù)請求發(fā)送給S55選擇到的所述遠端模塊實例;S57,S55選擇到的所述遠端模塊實例執(zhí)行所述任務(wù)請求。
7.根據(jù)權(quán)利要求6所述的分布式模塊間通信方法,其特征在于,S51中,所述任務(wù)請求為遠端模塊的操作訪問。
8.根據(jù)權(quán)利要求7所述的分布式模塊間通信方法,其特征在于,所述遠端模塊的操作訪問包括兩種以上操作以及與所述操作對應(yīng)的操作參數(shù)表。
9.根據(jù)權(quán)利要求8所述的分布式模塊間通信方法,其特征在于,所述操作包括啟動本端模塊的操作、停止本端模塊的操作和對本端模塊數(shù)據(jù)的操作;其中,模塊實例標識參數(shù)存在于與所述停止本端模塊的操作和對本端模塊數(shù)據(jù)的操作對應(yīng)的操作參數(shù)表中。
10.根據(jù)權(quán)利要求I所述的分布式模塊間通信方法,其特征在于,S3之后,還包括所述本端模塊實例向所述模塊實例池發(fā)送模塊去激活指令;所述模塊實例池停止所述模塊實例池中的所有所述遠端模塊實例;同時將與所述遠端模塊實例對應(yīng)的遠端模塊實例標識歸還給所述管理平臺。
全文摘要
本發(fā)明提供一種分布式模塊間通信方法,應(yīng)用于包括一個以上模塊和管理平臺的系統(tǒng)中;各個所述模塊存在于分布式環(huán)境中的各物理節(jié)點,每一個所述模塊代表一組數(shù)據(jù)以及對該組數(shù)據(jù)進行操作的集合。各模塊與C++、JAVA中類的概念類似,同時,由管理平臺向各個遠端模塊實例和本端模塊實例分配唯一的模塊實例標識,可以實現(xiàn)本端模塊實例與各個遠端模塊實例之間、以及各個遠端模塊實例之間、以及本端模塊實例與自身的通信,并且,本端模塊實例與各個遠端模塊實例的類型可以相同或不同,從而有利于在各模塊間靈活進行并行調(diào)度。
文檔編號G06F9/38GK102591623SQ20121001893
公開日2012年7月18日 申請日期2012年1月20日 優(yōu)先權(quán)日2012年1月20日
發(fā)明者周超勇 申請人:周超勇