本申請涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種分布式系統(tǒng)的服務(wù)提供方法及分布式系統(tǒng)。
背景技術(shù):
目前,在大型的互聯(lián)網(wǎng)應(yīng)用系統(tǒng)中,很多系統(tǒng)都采用面向服務(wù)的體系結(jié)構(gòu)(soa,service-orientedarchitecture),面向服務(wù)的體系結(jié)構(gòu)作為一個(gè)新興的組件模型受到廣泛的關(guān)注和使用,面向服務(wù)的體系結(jié)構(gòu)通過建立統(tǒng)一的架構(gòu),使得軟件開發(fā)人員能快速開發(fā)、集成和應(yīng)用。
通常,為了系統(tǒng)的穩(wěn)定性考慮,很多系統(tǒng)在不同的場景下,會采用不同的集群部署模式,例如,對于支付寶的風(fēng)險(xiǎn)控制系統(tǒng),在國內(nèi)場景和國外場景下所使用的集群部署模式是不同的,并且在很多情況下,不同場景下需要提供的服務(wù)不同,為了滿足不同場景的不同需求,業(yè)務(wù)系統(tǒng)需要根據(jù)場景的不同采用不同的處理流程。也就是說,不同場景下的分析流程不同,在開發(fā)過程中,針對不同的場景需要開發(fā)不同的代碼,以完成不同場景流程的定制。
然而,上述基于面向服務(wù)的體系結(jié)構(gòu),針對不同場景開發(fā)不同的代碼的方式存在的問題如下:(1)在開發(fā)新業(yè)務(wù)的過程中,往往無法很好的復(fù)用以往的經(jīng)驗(yàn),即通用邏輯的復(fù)用率低,很多業(yè)務(wù)功能的研發(fā)都需從零開始,且需編寫的大量代碼,研發(fā)效率低下,無法保證軟件質(zhì)量,新業(yè)務(wù)開發(fā)周期較長;(2)不同場景下,各自不同的實(shí)現(xiàn)會增加維護(hù)系統(tǒng)的工作量。
技術(shù)實(shí)現(xiàn)要素:
本申請旨在至少在一定程度上解決相關(guān)技術(shù)中的技術(shù)問題之一。
為此,本申請的第一個(gè)目的在于提出一種分布式系統(tǒng)的服務(wù)提供方法,該方法實(shí)現(xiàn)了待執(zhí)行的任務(wù)的快速布控,提高了通用邏輯的復(fù)用率,進(jìn)而提高了對業(yè)務(wù)的響應(yīng)能力。
本申請的第二個(gè)目的在于提出一種分布式系統(tǒng)。
為達(dá)上述目的,本申請第一方面實(shí)施例提出了一種分布式系統(tǒng)的服務(wù)提供方法,包括:獲取待執(zhí)行的任務(wù),其中,所述任務(wù)包括至少一個(gè)服務(wù)及所述至少一個(gè)服務(wù)的服務(wù)執(zhí)行序列,且每個(gè)所述服務(wù)包括至少一個(gè)組件及所述至少一個(gè)組件的組件執(zhí)行序列;以及根據(jù)所 述服務(wù)執(zhí)行序列依次調(diào)用并執(zhí)行所述至少一個(gè)服務(wù),并接收所述至少一個(gè)服務(wù)的返回結(jié)果,其中,所述至少一個(gè)服務(wù)在執(zhí)行時(shí)根據(jù)所述組件的執(zhí)行序列依次調(diào)用并執(zhí)行所述至少一個(gè)組件。
本申請實(shí)施例的分布式系統(tǒng)的服務(wù)提供方法,獲取待執(zhí)行的任務(wù),其中,任務(wù)包括至少一個(gè)服務(wù)及至少一個(gè)服務(wù)的服務(wù)執(zhí)行序列,且每個(gè)服務(wù)包括至少一個(gè)組件及至少一個(gè)組件的組件執(zhí)行序列;以及根據(jù)服務(wù)執(zhí)行序列依次調(diào)用并執(zhí)行至少一個(gè)服務(wù),并接收至少一個(gè)服務(wù)的返回結(jié)果,其中,至少一個(gè)服務(wù)在執(zhí)行時(shí)根據(jù)組件的執(zhí)行序列依次調(diào)用并執(zhí)行至少一個(gè)組件,由此,實(shí)現(xiàn)了待執(zhí)行的任務(wù)的快速布控,提高了通用邏輯的復(fù)用率,進(jìn)而提高了對業(yè)務(wù)的響應(yīng)能力。
為達(dá)上述目的,本申請第二方面實(shí)施例提出了一種分布式系統(tǒng),包括業(yè)務(wù)管理模塊和業(yè)務(wù)模塊,其中,所述業(yè)務(wù)模塊,用于提供服務(wù),其中,所述服務(wù)包括至少一個(gè)組件及所述至少一個(gè)組件的組件執(zhí)行序列,所述服務(wù)在執(zhí)行時(shí)根據(jù)所述組件的執(zhí)行序列依次調(diào)用并執(zhí)行所述至少一個(gè)組件;以及所述業(yè)務(wù)管理模塊,用于獲取待執(zhí)行的任務(wù),其中,所述任務(wù)包括至少一個(gè)服務(wù)及所述至少一個(gè)服務(wù)的服務(wù)執(zhí)行序列,并根據(jù)所述服務(wù)執(zhí)行序列依次調(diào)用并執(zhí)行所述至少一個(gè)服務(wù),以及接收所述至少一個(gè)服務(wù)的返回結(jié)果。
本申請實(shí)施例的分布式系統(tǒng),通過業(yè)務(wù)模塊提供服務(wù),其中,服務(wù)包括至少一個(gè)組件及至少一個(gè)組件的組件執(zhí)行序列,服務(wù)在執(zhí)行時(shí)根據(jù)組件的執(zhí)行序列依次調(diào)用并執(zhí)行至少一個(gè)組件,以及業(yè)務(wù)管理模塊獲取待執(zhí)行的任務(wù),其中,任務(wù)包括至少一個(gè)服務(wù)及至少一個(gè)服務(wù)的服務(wù)執(zhí)行序列,并根據(jù)服務(wù)執(zhí)行序列依次調(diào)用并執(zhí)行至少一個(gè)服務(wù),以及接收至少一個(gè)服務(wù)的返回結(jié)果。由此,實(shí)現(xiàn)了待執(zhí)行的任務(wù)的快速布控,提高了通用邏輯的復(fù)用率,進(jìn)而提高了對業(yè)務(wù)的響應(yīng)能力。
附圖說明
圖1是本申請一個(gè)實(shí)施例的分布式系統(tǒng)的服務(wù)提供方法的流程圖。
圖2a是業(yè)務(wù)系統(tǒng)a的部署示意圖。
圖2b是業(yè)務(wù)系統(tǒng)b的部署示意圖。
圖3是本申請另一個(gè)實(shí)施例的分布式系統(tǒng)的服務(wù)提供方法的流程圖。
圖4是對新業(yè)務(wù)c進(jìn)行分析的流程示意圖。
圖5是業(yè)務(wù)系統(tǒng)h的部署示意圖。
圖6是本申請一個(gè)實(shí)施例的分布式系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面詳細(xì)描述本申請的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實(shí)施例是示例性的,旨在用于解釋本申請,而不能理解為對本申請的限制。
下面參考附圖描述本申請實(shí)施例的分布式系統(tǒng)的服務(wù)提供方法及分布式系統(tǒng)。
圖1是本申請一個(gè)實(shí)施例的分布式系統(tǒng)的服務(wù)提供方法的流程圖。
如圖1所示,該分布式系統(tǒng)的服務(wù)提供方法包括:
s101,獲取待執(zhí)行的任務(wù)。
其中,任務(wù)包括至少一個(gè)服務(wù)及至少一個(gè)服務(wù)的服務(wù)執(zhí)行序列,且每個(gè)服務(wù)包括至少一個(gè)組件及至少一個(gè)組件的組件執(zhí)行序列。
其中,組件是業(yè)務(wù)語義明確的組件,組件可以提供標(biāo)準(zhǔn)化的服務(wù)。
通常一個(gè)業(yè)務(wù)在不同場景下執(zhí)行的任務(wù)不同,為了減少開發(fā)不同業(yè)務(wù)所需要的工作量,在開發(fā)一個(gè)新業(yè)務(wù)的過程中,可按照場景對新業(yè)務(wù)進(jìn)行拆分,然后,對新業(yè)務(wù)在每種場景下的流程進(jìn)行分析,以確定新業(yè)務(wù)在每種場景下調(diào)用組件的順序,其中,場景和任務(wù)具有映射關(guān)系,一個(gè)場景對應(yīng)一個(gè)任務(wù)。
其中,一個(gè)任務(wù)可以包括一個(gè)服務(wù),也可以包括多個(gè)服務(wù),如果一個(gè)任務(wù)包括多個(gè)服務(wù),還需要根據(jù)組件的執(zhí)行序列確定多個(gè)服務(wù)的服務(wù)執(zhí)行序列。
其中,需要說明的是,為了提高任務(wù)執(zhí)行的穩(wěn)定性,每個(gè)服務(wù)及服務(wù)包括的組件運(yùn)行在各自對應(yīng)的業(yè)務(wù)集群中。
例如,新業(yè)務(wù)為業(yè)務(wù)c,假定業(yè)務(wù)c應(yīng)用在兩個(gè)場景(場景a,場景b)中,即業(yè)務(wù)c對應(yīng)兩個(gè)任務(wù),假定場景a對應(yīng)任務(wù)1,場景b對應(yīng)任務(wù)2,其中,根據(jù)場景a中的業(yè)務(wù)功能的流程邏輯,確定場景a中調(diào)用組件的順序?yàn)榻M件a、b、c、d、e,場景b中調(diào)用組件的順序?yàn)榻M件d、e,出于穩(wěn)定性考慮,可將組件a、b、c部署在業(yè)務(wù)系統(tǒng)a上,并將組件a、b、c的調(diào)用順序固化到服務(wù)a中,系統(tǒng)a對外提供服務(wù)a,以及將組件d、e部署在業(yè)務(wù)系統(tǒng)b上,并將組件d、e的調(diào)用順序固化到服務(wù)b中,業(yè)務(wù)系統(tǒng)b對外提供服務(wù)b。其中,業(yè)務(wù)系統(tǒng)a和業(yè)務(wù)系統(tǒng)b的結(jié)構(gòu)示意圖,如圖2a和2b所示。在確定每種場景下組件的調(diào)用順序后,通過場景1中的組件的調(diào)用順序可以確定任務(wù)1的服務(wù)執(zhí)行序列為先調(diào)用服務(wù)a,再調(diào)用服務(wù)b;通過場景2的組件的調(diào)用順序,可確定完成任務(wù)2只需要調(diào)用一個(gè)服務(wù),即服務(wù)b。
在本申請的一個(gè)實(shí)施例中,在分布式系統(tǒng)提供服務(wù)的過程中,如果接收到調(diào)用方的指令,則根據(jù)指令獲取待執(zhí)行的任務(wù)。
具體地,在接收到調(diào)用方的指令后,可根據(jù)指令對事件的場景進(jìn)行分析,以確定每種場景對應(yīng)的任務(wù)。
其中,待執(zhí)行的任務(wù)可以為一個(gè),也可以為多個(gè)。
s102,根據(jù)服務(wù)執(zhí)行序列依次調(diào)用并執(zhí)行至少一個(gè)服務(wù),并接收至少一個(gè)服務(wù)的返回結(jié)果。
其中,至少一個(gè)服務(wù)在執(zhí)行時(shí)根據(jù)組件的執(zhí)行序列依次調(diào)用并執(zhí)行至少一個(gè)組件。
具體地,在獲取待執(zhí)行的任務(wù)后,如果當(dāng)前任務(wù)包括兩個(gè)或者兩個(gè)以上服務(wù),則根據(jù)服務(wù)執(zhí)行序列執(zhí)行對應(yīng)的服務(wù)。在按照服務(wù)執(zhí)行序列執(zhí)行服務(wù)的過程中,如果當(dāng)前服務(wù)中包含兩個(gè)或者兩個(gè)組件,則根據(jù)服務(wù)中的組件執(zhí)行序列執(zhí)行組件,并返回當(dāng)前服務(wù)的返回結(jié)果。
在本申請的一個(gè)實(shí)施例中,如果一個(gè)任務(wù)包括多個(gè)服務(wù),為了可以為調(diào)用方提供完整的結(jié)果,如圖3所示,在接收至少一個(gè)服務(wù)的返回結(jié)果之后,還可以包括步驟s103。
s103,將至少一個(gè)服務(wù)的返回結(jié)果進(jìn)行合并以生成合并結(jié)果,并返回合并結(jié)果至調(diào)用方。
下面以一個(gè)具體的例子詳細(xì)說明對待執(zhí)行的任務(wù)進(jìn)行執(zhí)行,并將執(zhí)行結(jié)果返回給調(diào)用方式的具體過程。
假定新業(yè)務(wù)c應(yīng)用在兩個(gè)場景(場景a,場景b)中,即業(yè)務(wù)c對應(yīng)兩個(gè)任務(wù),假定場景a對應(yīng)任務(wù)1,場景b對應(yīng)任務(wù)2,假定場景a對應(yīng)任務(wù)1,場景b對應(yīng)任務(wù)2,其中,根據(jù)場景a中的業(yè)務(wù)功能的流程邏輯,確定場景a中調(diào)用組件的順序?yàn)榻M件a、b、c、d、e,場景b中調(diào)用組件的順序?yàn)榻M件d、e,出于穩(wěn)定性考慮,可將組件a、b、c部署在業(yè)務(wù)系統(tǒng)a上,并將組件a、b、c的調(diào)用順序固化到服務(wù)a中,業(yè)務(wù)系統(tǒng)a對外提供服務(wù)a,以及將組件d、e部署在業(yè)務(wù)系統(tǒng)b上,并將組件d、e的調(diào)用順序固化到服務(wù)b中,業(yè)務(wù)系統(tǒng)b對外提供服務(wù)b。其中,業(yè)務(wù)系統(tǒng)a和業(yè)務(wù)系統(tǒng)b的結(jié)構(gòu)示意圖,如圖2a和2b所示。
對于新業(yè)務(wù)c來說,可獲得新業(yè)務(wù)c待執(zhí)行的任務(wù)為任務(wù)1和任務(wù)2,且任務(wù)的執(zhí)行順序?yàn)槿蝿?wù)1、任務(wù)2。其中,任務(wù)的執(zhí)行順序由新業(yè)務(wù)c所在的業(yè)務(wù)系統(tǒng)c的框架層確定。
其中,對新業(yè)務(wù)c進(jìn)行分析的過程,如圖4所示。
s41,業(yè)務(wù)系統(tǒng)c根據(jù)調(diào)用方的指令對新業(yè)務(wù)c的場景進(jìn)行分析,以確定場景對應(yīng)的任務(wù)。
具體地,根據(jù)新業(yè)務(wù)的場景,可確定新業(yè)務(wù)c對應(yīng)的待執(zhí)行的任務(wù)為任務(wù)1和任務(wù)2,任務(wù)1和任務(wù)2即為待執(zhí)行的任務(wù)。
s42,業(yè)務(wù)系統(tǒng)c向業(yè)務(wù)系統(tǒng)a發(fā)送調(diào)用服務(wù)a的服務(wù)請求。
通過上述描述可以確定在執(zhí)行任務(wù)1的過程中,需要調(diào)用兩個(gè)服務(wù),服務(wù)a和服務(wù)b, 且服務(wù)執(zhí)行序列為先服務(wù)a,后服務(wù)b。
s43,業(yè)務(wù)系統(tǒng)a接收到服務(wù)請求,并調(diào)用服務(wù)a,以獲得服務(wù)a的結(jié)果,并將服務(wù)a對應(yīng)的結(jié)果返回給業(yè)務(wù)系統(tǒng)c。
具體地,業(yè)務(wù)系統(tǒng)a在接收到服務(wù)請求后,業(yè)務(wù)系統(tǒng)a的服務(wù)層可根據(jù)固化在服務(wù)a的組件執(zhí)行序列執(zhí)行對應(yīng)的組件,具體而言,先執(zhí)行組件a,然后執(zhí)行組件b,再執(zhí)行組件c,并將執(zhí)行完組件c后所獲得的結(jié)果作為服務(wù)a的結(jié)果,并將服務(wù)a對應(yīng)的結(jié)果返回給業(yè)務(wù)系統(tǒng)c。
其中,需要理解的是,各個(gè)組件的執(zhí)行結(jié)果與組件的功能有關(guān)。
例如,組件為處罰組件,處罰組件的功能是定義各種處罰方式以對欺詐方進(jìn)行處罰,處罰組件的執(zhí)行結(jié)果是針對當(dāng)前交易,需要什么樣的處罰方式來處理欺詐方。對于校驗(yàn)用戶組件,該組件的功能是提供多種校驗(yàn)方式對用戶進(jìn)行校驗(yàn),校驗(yàn)用戶組件的執(zhí)行結(jié)果是輸出具體的校驗(yàn)用戶的方式,以方便后續(xù)根據(jù)校驗(yàn)用戶組件所提供的校驗(yàn)方式完成對用戶的校驗(yàn)。
進(jìn)一步而言,業(yè)務(wù)系統(tǒng)b在接收到任務(wù)1的服務(wù)a的返回結(jié)果后,可通過步驟s44和s45進(jìn)一步獲得服務(wù)b的返回結(jié)果。
s44,業(yè)務(wù)系統(tǒng)c向業(yè)務(wù)系統(tǒng)b發(fā)送調(diào)用服務(wù)b的服務(wù)請求。
s45,業(yè)務(wù)系統(tǒng)b接收服務(wù)請求,并調(diào)用服務(wù)b,以獲得服務(wù)b的結(jié)果,并將服務(wù)b對應(yīng)的結(jié)果返回給業(yè)務(wù)系統(tǒng)c。
具體地,業(yè)務(wù)系統(tǒng)b在接收到調(diào)用服務(wù)b的服務(wù)請求后,業(yè)務(wù)系統(tǒng)b的服務(wù)層可根據(jù)固化在服務(wù)b的組件執(zhí)行序列執(zhí)行對應(yīng)的組件,具體而言,先執(zhí)行組件d,然后執(zhí)行組件e,并將執(zhí)行完組件e后所獲得的結(jié)果作為服務(wù)b的結(jié)果,并將服務(wù)a對應(yīng)的結(jié)果返回給業(yè)務(wù)系統(tǒng)c。
s45,業(yè)務(wù)系統(tǒng)c對服務(wù)a和服務(wù)b進(jìn)行合并,并將合并后的結(jié)果返回給調(diào)用方。
具體地,業(yè)務(wù)系統(tǒng)c獲得服務(wù)a和服務(wù)b的返回結(jié)果后,針對任務(wù)1可將服務(wù)a和服務(wù)b的返回結(jié)果進(jìn)行合并,并將合并后的結(jié)果作為任務(wù)1的結(jié)果。
對于任務(wù)2,由于任務(wù)2對應(yīng)的服務(wù)b,此時(shí),可將服務(wù)b的返回結(jié)果作為任務(wù)2的結(jié)果。
在獲得任務(wù)1和任務(wù)2的結(jié)果后,為了可以為調(diào)用方提供完整的結(jié)果,可將任務(wù)1和任務(wù)2的結(jié)果進(jìn)行進(jìn)一步地合并,并將合并后的結(jié)果返回給調(diào)用方,以使得調(diào)用方根據(jù)返回的結(jié)果確定后續(xù)的操作。
例如,調(diào)用方根據(jù)所獲得的結(jié)果確定當(dāng)前交易有風(fēng)險(xiǎn),需要認(rèn)證用戶,此時(shí),調(diào)用方可終止當(dāng)前交易,并通過校驗(yàn)短信或者其他的認(rèn)證手段對用戶進(jìn)行認(rèn)證。
綜上,可以看出,該實(shí)施例的分布式系統(tǒng)的服務(wù)提供方法,在執(zhí)行待執(zhí)行的任務(wù)的過程中,首先確定任務(wù)所包含的服務(wù)的個(gè)數(shù),并在任務(wù)中包含多個(gè)服務(wù)時(shí),根據(jù)服務(wù)執(zhí)行序列按照順序執(zhí)行服務(wù),并且在執(zhí)行服務(wù)的過程中,根據(jù)服務(wù)中的組件執(zhí)行序列對組件進(jìn)行執(zhí)行,以獲得對應(yīng)服務(wù)的返回結(jié)果。由此,實(shí)現(xiàn)了待執(zhí)行的任務(wù)的快速布控,提高了通用邏輯的復(fù)用率,進(jìn)而提高了對業(yè)務(wù)的響應(yīng)能力。
本申請實(shí)施例的分布式系統(tǒng)的服務(wù)提供方法,獲取待執(zhí)行的任務(wù),其中,任務(wù)包括至少一個(gè)服務(wù)及至少一個(gè)服務(wù)的服務(wù)執(zhí)行序列,且每個(gè)服務(wù)包括至少一個(gè)組件及至少一個(gè)組件的組件執(zhí)行序列;以及根據(jù)服務(wù)執(zhí)行序列依次調(diào)用并執(zhí)行至少一個(gè)服務(wù),并接收至少一個(gè)服務(wù)的返回結(jié)果,其中,至少一個(gè)服務(wù)在執(zhí)行時(shí)根據(jù)組件的執(zhí)行序列依次調(diào)用并執(zhí)行至少一個(gè)組件,由此,實(shí)現(xiàn)了待執(zhí)行的任務(wù)的快速布控,提高了通用邏輯的復(fù)用率,進(jìn)而提高了對業(yè)務(wù)的響應(yīng)能力。
下面以一個(gè)具體的例子說明分布式系統(tǒng)對一個(gè)場景提供服務(wù)的具體過程。
假定新業(yè)務(wù)為業(yè)務(wù)h,假定新業(yè)務(wù)h對應(yīng)的業(yè)務(wù)系統(tǒng)h的業(yè)務(wù)部署示意圖如圖5所示,通過圖5可以看出,業(yè)務(wù)系統(tǒng)h包括四層,分別為框架層、任務(wù)層、服務(wù)層和組件層,其中,框架層可完成對任務(wù)的調(diào)度,具體而言,框架層可通過一個(gè)調(diào)度函數(shù)完成對任務(wù)的調(diào)度。任務(wù)層是對不同場景下的不同流程進(jìn)行編排,服務(wù)層是在集群層面對組件進(jìn)行編排,組件是對提供一段語義明確的組件,通過圖5可以看出,該業(yè)務(wù)系統(tǒng)h對應(yīng)一個(gè)任務(wù),即業(yè)務(wù)系統(tǒng)h分析一個(gè)場景,且該場景的分析流程需要組件h、i、j、k。其中,服務(wù)層的服務(wù)a中保存了組件的調(diào)用順序,假定服務(wù)a中保存的組件的調(diào)用順序?yàn)椋航M件h→組件i→組件j→組件k。
其中,對業(yè)務(wù)系統(tǒng)h進(jìn)行分析的過程為:
(1)、根據(jù)事件的場景找到對應(yīng)的任務(wù)。
具體地,對業(yè)務(wù)系統(tǒng)h進(jìn)行分析,可確定業(yè)務(wù)系統(tǒng)h對應(yīng)一個(gè)場景,且該場景對應(yīng)任務(wù)1。
(2)、執(zhí)行本系統(tǒng)中的服務(wù)a的調(diào)用。
通過調(diào)用服務(wù)a可確定服務(wù)中各個(gè)組件之間的組件執(zhí)行序列。
(3)、服務(wù)a根據(jù)組件執(zhí)行序列調(diào)用組件h、i、j、k,并將組件k執(zhí)行后的結(jié)果返回給任務(wù)1。
(4)任務(wù)層在獲得任務(wù)1的返回結(jié)果后,可將返回結(jié)果提供給框架層。
(5)框架層在獲得任務(wù)層提供的返回結(jié)果后,將對應(yīng)的返回結(jié)果提供給調(diào)用方。
本申請實(shí)施例的分布式系統(tǒng)的服務(wù)提供方法,在執(zhí)行任務(wù)1的過程中,根據(jù)服務(wù)中組件的組件執(zhí)行序列執(zhí)行對應(yīng)的組件,以獲得服務(wù)的返回結(jié)果,并在獲得返回結(jié)果后將返回 結(jié)果提供給調(diào)用方,為調(diào)用方提供了服務(wù)的返回結(jié)果,方便了調(diào)用方對任務(wù)進(jìn)行快速布控,且分布式系統(tǒng)中的各個(gè)組件可以復(fù)用,提高了通用邏輯的復(fù)用率,提高了對業(yè)務(wù)的響應(yīng)能力。
為實(shí)現(xiàn)上述實(shí)施例,本申請還提出了一種分布式系統(tǒng)。
圖6是本申請一個(gè)實(shí)施例的分布式系統(tǒng)的結(jié)構(gòu)示意圖。
如圖6所示,該分布式系統(tǒng)包括業(yè)務(wù)模塊100和業(yè)務(wù)管理模塊200,其中,
業(yè)務(wù)模塊100用于提供服務(wù)。
其中,服務(wù)包括至少一個(gè)組件及至少一個(gè)組件的組件執(zhí)行序列,服務(wù)在執(zhí)行時(shí)根據(jù)組件的執(zhí)行序列依次調(diào)用并執(zhí)行至少一個(gè)組件。
業(yè)務(wù)管理模塊200用于獲取待執(zhí)行的任務(wù)。
具體地,業(yè)務(wù)管理模塊200接收調(diào)用方的指令,并根據(jù)指令獲取待執(zhí)行的任務(wù)。
其中,任務(wù)包括至少一個(gè)服務(wù)及至少一個(gè)服務(wù)的服務(wù)執(zhí)行序列,并根據(jù)服務(wù)執(zhí)行序列依次調(diào)用并執(zhí)行至少一個(gè)服務(wù),以及接收至少一個(gè)服務(wù)的返回結(jié)果。
其中,組件是業(yè)務(wù)語義明確的組件,組件可以提供標(biāo)準(zhǔn)化的服務(wù)。
通常一個(gè)業(yè)務(wù)在不同場景下執(zhí)行的任務(wù)不同,為了減少開發(fā)不同業(yè)務(wù)所需要的工作量,在開發(fā)一個(gè)新業(yè)務(wù)的過程中,可按照場景對新業(yè)務(wù)進(jìn)行拆分,然后,對新業(yè)務(wù)在每種場景下的流程進(jìn)行分析,以確定新業(yè)務(wù)在每種場景下調(diào)用組件的順序,其中,場景和任務(wù)具有映射關(guān)系,一個(gè)場景對應(yīng)一個(gè)任務(wù)。
其中,一個(gè)任務(wù)可以包括一個(gè)服務(wù),也可以包括多個(gè)服務(wù),如果一個(gè)任務(wù)包括多個(gè)服務(wù),還需要根據(jù)組件的執(zhí)行序列確定多個(gè)服務(wù)的服務(wù)執(zhí)行序列。
其中,需要說明的是,為了提高任務(wù)執(zhí)行的穩(wěn)定性,每個(gè)服務(wù)及服務(wù)包括的組件運(yùn)行在各自對應(yīng)的業(yè)務(wù)集群中。
另外,上述業(yè)務(wù)管理模塊200還用于將至少一個(gè)服務(wù)的返回結(jié)果進(jìn)行合并以生成合并結(jié)果,并返回合并結(jié)果至調(diào)用方。
需要說明的是,上述對分布式系統(tǒng)的服務(wù)提供方法實(shí)施例的解釋說明也適用于該實(shí)施例的分布式系統(tǒng),此處不再贅述。
本申請實(shí)施例的分布式系統(tǒng),通過業(yè)務(wù)模塊提供服務(wù),其中,服務(wù)包括至少一個(gè)組件及至少一個(gè)組件的組件執(zhí)行序列,服務(wù)在執(zhí)行時(shí)根據(jù)組件的執(zhí)行序列依次調(diào)用并執(zhí)行至少一個(gè)組件,以及業(yè)務(wù)管理模塊獲取待執(zhí)行的任務(wù),其中,任務(wù)包括至少一個(gè)服務(wù)及至少一個(gè)服務(wù)的服務(wù)執(zhí)行序列,并根據(jù)服務(wù)執(zhí)行序列依次調(diào)用并執(zhí)行至少一個(gè)服務(wù),以及接收至少一個(gè)服務(wù)的返回結(jié)果。由此,實(shí)現(xiàn)了待執(zhí)行的任務(wù)的快速布控,提高了通用邏輯的復(fù)用 率,進(jìn)而提高了對業(yè)務(wù)的響應(yīng)能力。
在本說明書的描述中,參考術(shù)語“一個(gè)實(shí)施例”、“一些實(shí)施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實(shí)施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)包含于本申請的至少一個(gè)實(shí)施例或示例中。在本說明書中,對上述術(shù)語的示意性表述不必須針對的是相同的實(shí)施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)可以在任一個(gè)或多個(gè)實(shí)施例或示例中以合適的方式結(jié)合。此外,在不相互矛盾的情況下,本領(lǐng)域的技術(shù)人員可以將本說明書中描述的不同實(shí)施例或示例以及不同實(shí)施例或示例的特征進(jìn)行結(jié)合和組合。
此外,術(shù)語“第一”、“第二”僅用于描述目的,而不能理解為指示或暗示相對重要性或者隱含指明所指示的技術(shù)特征的數(shù)量。由此,限定有“第一”、“第二”的特征可以明示或者隱含地包括至少一個(gè)該特征。在本申請的描述中,“多個(gè)”的含義是至少兩個(gè),例如兩個(gè),三個(gè)等,除非另有明確具體的限定。
流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個(gè)或更多個(gè)用于實(shí)現(xiàn)特定邏輯功能或過程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本申請的優(yōu)選實(shí)施方式的范圍包括另外的實(shí)現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時(shí)的方式或按相反的順序,來執(zhí)行功能,這應(yīng)被本申請的實(shí)施例所屬技術(shù)領(lǐng)域的技術(shù)人員所理解。
在流程圖中表示或在此以其他方式描述的邏輯和/或步驟,例如,可以被認(rèn)為是用于實(shí)現(xiàn)邏輯功能的可執(zhí)行指令的定序列表,可以具體實(shí)現(xiàn)在任何計(jì)算機(jī)可讀介質(zhì)中,以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備(如基于計(jì)算機(jī)的系統(tǒng)、包括處理器的系統(tǒng)或其他可以從指令執(zhí)行系統(tǒng)、裝置或設(shè)備取指令并執(zhí)行指令的系統(tǒng))使用,或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用。就本說明書而言,"計(jì)算機(jī)可讀介質(zhì)"可以是任何可以包含、存儲、通信、傳播或傳輸程序以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用的裝置。計(jì)算機(jī)可讀介質(zhì)的更具體的示例(非窮盡性列表)包括以下:具有一個(gè)或多個(gè)布線的電連接部(電子裝置),便攜式計(jì)算機(jī)盤盒(磁裝置),隨機(jī)存取存儲器(ram),只讀存儲器(rom),可擦除可編輯只讀存儲器(eprom或閃速存儲器),光纖裝置,以及便攜式光盤只讀存儲器(cdrom)。另外,計(jì)算機(jī)可讀介質(zhì)甚至可以是可在其上打印所述程序的紙或其他合適的介質(zhì),因?yàn)榭梢岳缤ㄟ^對紙或其他介質(zhì)進(jìn)行光學(xué)掃描,接著進(jìn)行編輯、解譯或必要時(shí)以其他合適方式進(jìn)行處理來以電子方式獲得所述程序,然后將其存儲在計(jì)算機(jī)存儲器中。
應(yīng)當(dāng)理解,本申請的各部分可以用硬件、軟件、固件或它們的組合來實(shí)現(xiàn)。在上述實(shí) 施方式中,多個(gè)步驟或方法可以用存儲在存儲器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實(shí)現(xiàn)。例如,如果用硬件來實(shí)現(xiàn),和在另一實(shí)施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項(xiàng)或他們的組合來實(shí)現(xiàn):具有用于對數(shù)據(jù)信號實(shí)現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(pga),現(xiàn)場可編程門陣列(fpga)等。
本技術(shù)領(lǐng)域的普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法攜帶的全部或部分步驟是可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計(jì)算機(jī)可讀存儲介質(zhì)中,該程序在執(zhí)行時(shí),包括方法實(shí)施例的步驟之一或其組合。
此外,在本申請各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理模塊中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)模塊中。上述集成的模塊既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形式實(shí)現(xiàn)。所述集成的模塊如果以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),也可以存儲在一個(gè)計(jì)算機(jī)可讀取存儲介質(zhì)中。
上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。盡管上面已經(jīng)示出和描述了本申請的實(shí)施例,可以理解的是,上述實(shí)施例是示例性的,不能理解為對本申請的限制,本領(lǐng)域的普通技術(shù)人員在本申請的范圍內(nèi)可以對上述實(shí)施例進(jìn)行變化、修改、替換和變型。