用于對分布式計(jì)算進(jìn)行組件化管理的方法和系統(tǒng)的制作方法
【專利摘要】本申請?zhí)峁┮环N用于對分布式計(jì)算系統(tǒng)進(jìn)行組件化管理的方法和系統(tǒng)。該系統(tǒng)可以包括:組件倉庫,用于存儲組件;組件管理控制臺,被配置成與組件分發(fā)中心進(jìn)行交互,并向組件分發(fā)中心發(fā)送與一個(gè)或多個(gè)組件相關(guān)的第一管理指示;組件分發(fā)中心,被配置成基于所述第一管理指示,調(diào)度與所述一個(gè)或多個(gè)組件相關(guān)的部署,所述組件分發(fā)中心還被配置成向組件執(zhí)行引擎組發(fā)送調(diào)度命令;組件執(zhí)行引擎組,被配置成基于所述調(diào)度命令,執(zhí)行與所述一個(gè)或多個(gè)組件相關(guān)的操作。
【專利說明】用于對分布式計(jì)算進(jìn)行組件化管理的方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本申請涉及分布式計(jì)算領(lǐng)域,尤其涉及一種用于對分布式計(jì)算進(jìn)行組件化管理的方法和系統(tǒng)。
【背景技術(shù)】
[0002]分布式計(jì)算目前大多在解決一個(gè)大型計(jì)算如何分解為多個(gè)小型計(jì)算的問題,但在分布式計(jì)算的應(yīng)用部署上卻困難重重。通常分布式計(jì)算都是集群化運(yùn)行,對于幾十、幾百、甚至幾千臺的服務(wù)器來說,如何在這些機(jī)器上分發(fā)程序,管理程序是一個(gè)難題。
[0003]應(yīng)用程序的發(fā)布需要先停止程序的運(yùn)行,然后更新代碼,再重啟程序,這對于一臺或幾臺機(jī)器來說,運(yùn)維還能接受,但對于成千上萬臺的服務(wù)器集群來說,這是一個(gè)不可接受的任務(wù)。對這個(gè)情況的解決辦法,通常都是使用腳本,通過執(zhí)行在每臺機(jī)器部署上的腳本,來自動進(jìn)行發(fā)布動作。但是,如果一個(gè)計(jì)算集群中的各個(gè)計(jì)算程序多了,那么管理龐大的腳本庫也是一個(gè)令人煩惱的工作。通常分布式計(jì)算都需要不間斷運(yùn)行,發(fā)布新功能時(shí),如何進(jìn)行熱部署是一個(gè)極大困難。熱部署的主要困難是,當(dāng)程序在運(yùn)行的時(shí)候,如何不停止提供服務(wù)更新代碼。目前熱部署是一個(gè)業(yè)界的難題,這涉及.net和java平臺上所有應(yīng)用。
[0004]通常分布式計(jì)算的計(jì)算單元都是一個(gè)個(gè)互不相關(guān)的組件,如何對各種計(jì)算組件統(tǒng)一管理,將有利于功能的復(fù)用和組合。從業(yè)務(wù)上來說,分布式計(jì)算中的各種計(jì)算模型都是相互獨(dú)立的,最多模型和模型之間有一定的依賴關(guān)系,但計(jì)算都是獨(dú)自進(jìn)行的。傳統(tǒng)分布式計(jì)算為提高計(jì)算效率都是由一個(gè)程序提供全部功能,因此單個(gè)模型的算法更新會影響到其他模型的功能。此外新模型的開發(fā)是從頭開發(fā)的,除了一些公共函數(shù)之外,有很多程序邏輯需要重復(fù)編程實(shí)現(xiàn),很難做到模型間的復(fù)用。
[0005]為了解決上述分布計(jì)算系統(tǒng)中的應(yīng)用部署問題,本申請?zhí)岢隽艘环N用于對分布式計(jì)算進(jìn)行組件化管理的方法和系統(tǒng)。本申請通過組件化管理,把一個(gè)大的應(yīng)用程序拆分成多個(gè)組件,每個(gè)組件的生命周期相互獨(dú)立,并交由底層組件化執(zhí)行引擎統(tǒng)一管理。部署時(shí)只要更新單個(gè)組件,而對其他組件的功能沒有影響。由于每個(gè)組件可以單獨(dú)部署,因此這樣做可以把熱部署的影響范圍減小到最小。
【發(fā)明內(nèi)容】
[0006]本申請的主要目的在于提供一種用于對分布式計(jì)算進(jìn)行組件化管理的方法和系統(tǒng),以解決現(xiàn)有技術(shù)存在的大型計(jì)算系統(tǒng)中的應(yīng)用部署困難的問題。
[0007]在本申請的一方面中,提供一種用于對分布式計(jì)算系統(tǒng)進(jìn)行組件化管理的系統(tǒng)。該系統(tǒng)可以包括:組件倉庫,用于存儲組件;組件管理控制臺,被配置成與組件分發(fā)中心進(jìn)行交互,并向組件分發(fā)中心發(fā)送與一個(gè)或多個(gè)組件相關(guān)的第一管理指示;組件分發(fā)中心,被配置成基于所述第一管理指示,調(diào)度與所述一個(gè)或多個(gè)組件相關(guān)的部署,所述組件分發(fā)中心還被配置成向組件執(zhí)行引擎組發(fā)送調(diào)度命令;組件執(zhí)行引擎組,被配置成基于所述調(diào)度命令,執(zhí)行與所述一個(gè)或多個(gè)組件相關(guān)的操作。[0008]根據(jù)本申請的實(shí)施例,在該系統(tǒng)中,該組件執(zhí)行引擎組還被配置成從所述組件倉庫下載所述一個(gè)或多個(gè)組件;并對其進(jìn)行加載。
[0009]根據(jù)本申請的實(shí)施例,該系統(tǒng)還包括:組件劃分單元,被配置成將所述分布式計(jì)算系統(tǒng)中的各個(gè)應(yīng)用劃分成組件。
[0010]根據(jù)本申請的實(shí)施例,在該系統(tǒng)中,該組件執(zhí)行引擎組還被配置成從所述組件分發(fā)中心下載與所述一個(gè)或多個(gè)組件相關(guān)的組件運(yùn)行時(shí)配置。
[0011]根據(jù)本申請的實(shí)施例,在該系統(tǒng)中,該組件是獨(dú)立管理生命周期的計(jì)算模塊。
[0012]根據(jù)本申請的實(shí)施例,在該系統(tǒng)中,該組件分發(fā)中心還被配置成確定組件分發(fā)規(guī)則。
[0013]根據(jù)本申請的實(shí)施例,在該系統(tǒng)中,該組件管理控制臺還被配置成建立一個(gè)或多個(gè)組件目錄結(jié)構(gòu),所述組建目錄結(jié)構(gòu)的每一個(gè)包含一個(gè)或多個(gè)組件。
[0014]根據(jù)本申請的實(shí)施例,在該系統(tǒng)中,該組件管理控制臺還被配置成向所述組件倉庫發(fā)送第二管理指示,所述組件倉庫還被配置成根據(jù)第二管理指示增加、更新或刪除組件。
[0015]在本申請的另一方面中,提供一種用于對分布式計(jì)算系統(tǒng)進(jìn)行組件化管理的方法。該方法包括:組件管理控制臺與組件分發(fā)中心進(jìn)行交互,并向組件分發(fā)中心發(fā)送與一個(gè)或多個(gè)組件相關(guān)的第一管理指示;所述組件分發(fā)中心基于所述第一管理指示,調(diào)度與所述一個(gè)或多個(gè)組件相關(guān)的部署,所述組件分發(fā)中心還被配置成向組件執(zhí)行引擎組發(fā)送調(diào)度命令;所述組件執(zhí)行引擎組基于所述調(diào)度命令,執(zhí)行與所述一個(gè)或多個(gè)組件相關(guān)的操作。
[0016]根據(jù)本申請的實(shí)施例,在該方法中,該組件執(zhí)行引擎組從組件倉庫下載所述一個(gè)或多個(gè)組件;并對其進(jìn)行加載。
[0017]根據(jù)本申請的實(shí)施例,該方法還包括將所述分布式計(jì)算系統(tǒng)中的各個(gè)應(yīng)用劃分成組件的步驟。
[0018]根據(jù)本申請的實(shí)施例,在該方法中,該組件執(zhí)行引擎組從所述組件分發(fā)中心下載與所述一個(gè)或多個(gè)組件相關(guān)的組件運(yùn)行時(shí)配置。
[0019]根據(jù)本申請的實(shí)施例,在該方法中,該組件管理控制臺建立一個(gè)或多個(gè)組件目錄結(jié)構(gòu),所述組建目錄結(jié)構(gòu)的每一個(gè)包含一個(gè)或多個(gè)組件。
[0020]根據(jù)本申請的實(shí)施例,該方法還包括:所述組件管理控制臺向所述組件倉庫發(fā)送第二管理指示,所述組件倉庫還被配置成根據(jù)第二管理指示增加、更新或刪除組件。
[0021]根據(jù)本申請的實(shí)施例,在該方法中,該組件是獨(dú)立管理生命周期的計(jì)算模塊。
[0022]與現(xiàn)有技術(shù)相比,根據(jù)本申請的技術(shù)方案實(shí)現(xiàn)了分布式計(jì)算系統(tǒng)的組件化管理,進(jìn)一步在對組件化分布式計(jì)算系統(tǒng)進(jìn)行熱部署時(shí)將熱部署操作的影響減小到最小、并且實(shí)現(xiàn)了對組件化計(jì)算模塊的統(tǒng)一管理。
【專利附圖】
【附圖說明】
[0023]此處所說明的附圖用來提供對本申請的進(jìn)一步理解,構(gòu)成本申請的一部分,本申請的示意性實(shí)施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當(dāng)限定。在附圖中:
[0024]圖1是本申請實(shí)施例的用于對分布式計(jì)算進(jìn)行組件化管理的系統(tǒng)的結(jié)構(gòu)示意圖。
[0025]圖2是本申請實(shí)施例的用于對分布式計(jì)算系統(tǒng)進(jìn)行組件化劃分的示意結(jié)構(gòu)圖。
[0026]圖3是本申請實(shí)施例的用于對分布式計(jì)算進(jìn)行組件化管理的方法的流程圖。【具體實(shí)施方式】
[0027]本申請的主要思想在于,提供一種用于對分布式計(jì)算進(jìn)行組件化管理的系統(tǒng)和方法。該系統(tǒng)可以包括組件倉庫,用于存儲組件;組件管理控制臺,被配置成與組件分發(fā)中心進(jìn)行交互并向組件分發(fā)中心發(fā)送第一管理指示;組件分發(fā)中心,被配置成基于所述第一管理指示,調(diào)度與所述一個(gè)或多個(gè)組件相關(guān)的部署;以及組件執(zhí)行引擎組,被配置成基于所述調(diào)度命令,執(zhí)行與所述一個(gè)或多個(gè)組件相關(guān)的操作。利用該系統(tǒng),實(shí)現(xiàn)對于集群化的分布式計(jì)算系統(tǒng)組件化管理。
[0028]為使本申請的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,以下結(jié)合附圖及具體實(shí)施例,對本申請進(jìn)一步地詳細(xì)說明。
[0029]根據(jù)本申請的實(shí)施例,提供了一種本申請實(shí)施例的用于對分布式計(jì)算進(jìn)行組件化管理的系統(tǒng)和方法。
[0030]參考圖1,圖1是本申請實(shí)施例的用于對分布式計(jì)算進(jìn)行組件化管理的系統(tǒng)的結(jié)構(gòu)示意圖。該系統(tǒng)可以包括:組件倉庫101,用于存儲組件,也即是說,所述組件倉庫101是用于存儲組件的物理存儲;組件管理控制臺102,被配置成與組件分發(fā)中心進(jìn)行交互,并向組件分發(fā)中心發(fā)送與一個(gè)或多個(gè)組件相關(guān)的第一管理指示;組件分發(fā)中心103,被配置成基于所述第一管理指示,調(diào)度與所述一個(gè)或多個(gè)組件相關(guān)的部署,所述組件分發(fā)中心還被配置成向組件執(zhí)行引擎組發(fā)送調(diào)度命令;以及組件執(zhí)行引擎組104,被配置成基于所述調(diào)度命令,執(zhí)行與所述一個(gè)或多個(gè)組件相關(guān)的操作。該系統(tǒng)可以包括組件執(zhí)行引擎集合,其包括多個(gè)組件執(zhí)行引擎組,每個(gè)組件執(zhí)行引擎組可以包括一個(gè)或多個(gè)組件執(zhí)行引擎111、112、
113等等 O
[0031]下面參照圖1更詳細(xì)地描述用于對分布式計(jì)算進(jìn)行組件化管理的系統(tǒng)。該系統(tǒng)還可以包括組件劃分單元(未示出),其可以被配置成將分布式計(jì)算系統(tǒng)中的各個(gè)應(yīng)用劃分成組件。組件是能夠獨(dú)立管理生命周期的計(jì)算模塊,并且其還可以用于進(jìn)行分布式計(jì)算。為了實(shí)現(xiàn)本申請的對分布式計(jì)算進(jìn)行組件化管理的系統(tǒng),首先需要利用組件劃分單元將分布式計(jì)算系統(tǒng)中的應(yīng)用進(jìn)行劃分或者說組件化,從而形成能夠獨(dú)立管理生命周期的計(jì)算模塊,也就是形成組件。
[0032]具體而言,在現(xiàn)有技術(shù)中,傳統(tǒng)應(yīng)用都是分層架構(gòu),在每一個(gè)層中處理相應(yīng)的邏輯。因?yàn)槭且粋€(gè)整體,所以傳統(tǒng)應(yīng)用各層之間的關(guān)聯(lián)十分緊密,一般來說不會也沒有必要考慮每一個(gè)功能的獨(dú)立性。傳統(tǒng)應(yīng)用是一個(gè)整體,在部署時(shí)也必需所有代碼一起啟動,一起停止。當(dāng)有熱部署需求時(shí),就會影響到整個(gè)應(yīng)用的范圍,熱部署的代價(jià)和成本非常高昂。
[0033]然而,根據(jù)本申請,組件化應(yīng)用程序可以采用微內(nèi)核架構(gòu),其通過整理和設(shè)計(jì)出核心層,并在核心層的基礎(chǔ)上按照功能劃分應(yīng)用程序模塊,并在編譯或運(yùn)行時(shí)組裝成所需的程序功能。單個(gè)組件又借用了分層架構(gòu)的思想有獨(dú)立劃分的不同邏輯層次,以保證組件自身是可以獨(dú)立運(yùn)行的。組件化應(yīng)用程序有不同部件組成,在設(shè)計(jì)時(shí)充分考慮了功能模塊應(yīng)該如何劃分和隔離,以便最小依賴進(jìn)行組合,因此在設(shè)計(jì)時(shí)就考慮到每個(gè)模塊的獨(dú)立性。組件化應(yīng)用程序不需要所有代碼一起啟動,只需啟動核心層,然后按照需要通過核心層加載各個(gè)功能模塊,因此在熱部署時(shí)影響的范圍很小,代價(jià)和成本都會得到很好的控制。
[0034]更具體地說,組件劃分單元針對應(yīng)用設(shè)計(jì)核心層,并在核心層的基礎(chǔ)上按照功能將應(yīng)用劃分成組件,并在編譯或運(yùn)行時(shí)再組裝成所需的應(yīng)用功能。另一方面,對于單個(gè)組件而言,其具有獨(dú)立劃分的不同邏輯層次,從而單個(gè)組件自身也是可以獨(dú)立運(yùn)行的。例如,可以采用OSGI (Open Service Gateway initiative開放服務(wù)網(wǎng)關(guān))框架作為核心層,在OSGI框架上劃分組件,每個(gè)組件是一個(gè)bundle (包)。在運(yùn)行時(shí)通過OSGI和配置加載所需的 bundle。
[0035]在核心層上,本申請將一些公共組件、框架組件作為核心層之上的基礎(chǔ)層bundle,然后把各種業(yè)務(wù)功能進(jìn)行縱向切分,作為業(yè)務(wù)層bundle。根據(jù)本申請的實(shí)施方式的各組件劃分例如可以如下圖2所示。
[0036]從圖上可以看到,本方案根據(jù)功能的不同劃分了很多獨(dú)立的組件,其中組件執(zhí)行引擎、日志組件、決策計(jì)算引擎、任務(wù)調(diào)度引擎、數(shù)據(jù)模型管理服務(wù)、數(shù)據(jù)字典管理服務(wù)、異步消息服務(wù)、RPC同步調(diào)用接口、數(shù)據(jù)源管理、RESTf接口等可以屬于核心組件;各種計(jì)算模塊組件可以屬于功能組件。
[0037]核心組件間通過不同的組合提供計(jì)算模塊組件一些基礎(chǔ)的服務(wù),如:數(shù)據(jù)的輸入/輸出、熱部署、任務(wù)調(diào)度等。計(jì)算模塊的劃分一般按照算法劃分,為了便于復(fù)用和組合算法,計(jì)算模塊也分為公共計(jì)算模塊和專有計(jì)算模塊。公共計(jì)算模塊提供一些公共算法,如合計(jì)、平均等公共函數(shù)。公共計(jì)算模塊目前只有一個(gè)bundle。專有計(jì)算模塊一般是涉及具體分布式計(jì)算需求的算法,如營銷模型、客戶關(guān)系模型等。將應(yīng)用劃分為組件后,利用本申請的系統(tǒng),實(shí)現(xiàn)分布式計(jì)算系統(tǒng)的組件化管理。
[0038]本申請的系統(tǒng)還可以包括組件倉庫101。組件倉庫101可以存儲組件。更進(jìn)一步地,組件倉庫101例如可以利用文件服務(wù)器存儲并管理關(guān)于各個(gè)組件及其配置信息。用戶可以通過文件上傳或下載把組件或其配置上傳到組件倉庫或者從組件倉庫下載組件或其配置。此外,組件倉庫還可以對組件進(jìn)行組管理,并且保存組件倉庫產(chǎn)生的組件元信息、組件組信息、組件配置信息等數(shù)據(jù),并且還可以保存它們的版本信息。
[0039]本申請的系統(tǒng)還可以包括組件管理控制臺102,其實(shí)際上可以是最終用戶實(shí)現(xiàn)系統(tǒng)管理的交互接口。所述組件管理控制臺103可以被配置成建立一個(gè)或多個(gè)組件目錄結(jié)構(gòu)(例如,建立樹狀結(jié)構(gòu)的目錄結(jié)構(gòu)),所述組建目錄結(jié)構(gòu)的每一個(gè)包含一個(gè)或多個(gè)組件。組件管理控制臺102還可以與組件倉庫101進(jìn)行交互,組件管理控制臺102還可以與組件分發(fā)中心103進(jìn)行交互。
[0040]例如,組件管理控制臺102可以與組件倉庫101進(jìn)行交互從而將組件上傳到組件倉庫或者從組件倉庫刪除組件。也即是說,組件倉庫101接收組件管理控制臺102的第二管理指示,根據(jù)第二管理指示增加、更新或刪除組件。
[0041]組件管理控制臺102還可以與組件分發(fā)中心103進(jìn)行交互,向組件分發(fā)中心103發(fā)送與一個(gè)或多個(gè)組件相關(guān)的第一管理指示。例如要卸載組件時(shí),如果所述組件已被部署,則組件管理控制臺102將發(fā)送第一管理指示到組件分發(fā)中心103以執(zhí)行該組件的卸載。該第一管理指示可以認(rèn)為是控制命令。
[0042]例如,組件管理控制臺102還可以發(fā)送所述控制命令以指示組件分發(fā)中心103對一個(gè)或多個(gè)組件進(jìn)行編輯。如果控制命令指示組件分發(fā)中心103對組件的元信息進(jìn)行編輯,則組件分發(fā)中心103基于該控制命令對元信息進(jìn)行編輯并保存編輯后的元信息。所述元信息可以包括組件名稱、組件說明、組件分類以及組件類型等。例如,如果控制命令指示組件分發(fā)中心103對組件的配置信息進(jìn)行編輯,則組件分發(fā)中心103基于該控制命令對配置信息進(jìn)行編輯并保存并更新配置。然后組件分發(fā)中心103可以與組件執(zhí)行引擎104進(jìn)行交互,例如,組件分發(fā)中心103發(fā)送調(diào)度指示給組件執(zhí)行引擎組104,則組件執(zhí)行引擎組104基于所述調(diào)度指示執(zhí)行與組件相關(guān)的操作。更具體地,組件分發(fā)中心103還可以被配置成確定組件分發(fā)規(guī)則。例如,與組件分發(fā)時(shí)的依賴關(guān)系的處理、組件在運(yùn)行時(shí)的更新、組件不存在時(shí)進(jìn)行下載等等相關(guān)的規(guī)則。備選地,所述調(diào)度指示包含所述組件分發(fā)規(guī)則。組件執(zhí)行引擎104可以從組件分發(fā)中心103下載與所述組件相關(guān)的組件運(yùn)行時(shí)配置,并通過配置解析功能將其解析為組件執(zhí)行引擎組104可理解的數(shù)據(jù)和信息。然后,組件執(zhí)行引擎組104執(zhí)行與所述組件相關(guān)的操作,例如,啟動、重啟或停止組件等等。
[0043]根據(jù)本申請的實(shí)施例,通常,根據(jù)組件執(zhí)行引擎完成的功能特性,將組件執(zhí)行引擎集合中的若干組件執(zhí)行引擎形成組件執(zhí)行引擎組,從而該集合中形成多個(gè)組件執(zhí)行引擎組。對于每組組件執(zhí)行引擎都為其分配一組組件。從而對組件實(shí)現(xiàn)系統(tǒng)集群化的統(tǒng)一管理和維護(hù)。也即是說,組件分發(fā)中心103至少針對一個(gè)組件而與一組組件執(zhí)行引擎進(jìn)行交互,從而實(shí)現(xiàn)組件的分發(fā)。
[0044]利用一種用于對分布式計(jì)算進(jìn)行組件化管理的系統(tǒng)實(shí)施組件化管理,并交由組件執(zhí)行引擎統(tǒng)一管理所述組件。從而在部署時(shí)只要更新單個(gè)組件,而對其他組件的功能沒有影響。最終實(shí)現(xiàn)了分布式計(jì)算系統(tǒng)的組件化管理,進(jìn)一步地,實(shí)現(xiàn)了分布式計(jì)算系統(tǒng)的熱部署。
[0045]圖3是本申請實(shí)施例的用于對分布式計(jì)算進(jìn)行組件化管理的方法的流程圖。
[0046]根據(jù)本申請的實(shí)施例,可以利用組件化的方法來在分布式計(jì)算系統(tǒng)中實(shí)現(xiàn)熱部署??梢詫⒏鱾€(gè)應(yīng)用劃分成能夠獨(dú)立管理生命周期的計(jì)算模塊,也即是組件,并且其還可以用于進(jìn)行分布式計(jì)算。繼而利用本申請的方法對所述組件進(jìn)行各種操作從而實(shí)現(xiàn)分布式計(jì)算系統(tǒng)的組件化管理。下面參考圖2和圖3對發(fā)明的方法進(jìn)行詳細(xì)描述。
[0047]該方法開始于步驟301。在步驟301處,組件管理控制臺102可以與組件分發(fā)中心103進(jìn)行交互,并向組件分發(fā)中心103發(fā)送與一個(gè)或多個(gè)組件相關(guān)的第一管理指示。該第一管理指示可以認(rèn)為是控制命令。所述組件可以是獨(dú)立管理生命周期的計(jì)算模塊;并且所述組件可以存儲在組件倉庫中。例如要?jiǎng)h除組件時(shí),如果所述組件已被部署,則組件管理控制臺102將發(fā)送第一管理指示到組件分發(fā)中心103以執(zhí)行該組件的卸載。該第一管理指示可以認(rèn)為是控制命令。例如,組件管理控制臺102還可以發(fā)送第一管理指示以指示組件分發(fā)中心103對一個(gè)或多個(gè)組件進(jìn)行編輯。例如,如果第一管理指示表明組件分發(fā)中心103對組件的元信息進(jìn)行編輯,則組件分發(fā)中心103基于該指示對元信息進(jìn)行編輯并保存編輯后的元信息。例如,如果該指示表明組件分發(fā)中心103對組件的配置信息進(jìn)行編輯,則組件分發(fā)中心103基于該指示對配置信息進(jìn)行編輯并保存并更新配置。
[0048]在步驟302處,組件分發(fā)中心103基于所述第一管理指示,調(diào)度與所述一個(gè)或多個(gè)組件相關(guān)的部署,組件分發(fā)中心103向組件執(zhí)行引擎組104發(fā)送調(diào)度命令。組件分發(fā)中心103還可以被配置成確定組件分發(fā)規(guī)則。例如,與組件分發(fā)時(shí)的依賴關(guān)系的處理、組件在運(yùn)行時(shí)的更新、組件不存在時(shí)進(jìn)行下載等等相關(guān)的規(guī)則。備選地,所述調(diào)度指示包含所述組件分發(fā)規(guī)則。
[0049]在步驟303處,組件執(zhí)行引擎104基于所述調(diào)度命令,執(zhí)行與所述一個(gè)或多個(gè)組件相關(guān)的操作。
[0050]組件執(zhí)行引擎104可以從組件分發(fā)中心103下載與所述組件相關(guān)的組件運(yùn)行時(shí)配置,并通過配置解析功能將其解析為組件執(zhí)行引擎組104可理解的數(shù)據(jù)和信息。然后,組件執(zhí)行引擎組104執(zhí)行與所述組件相關(guān)的操作,例如,啟動、重啟或停止組件等等。更具體而言,通常,根據(jù)組件執(zhí)行引擎完成的功能特性,將組件執(zhí)行引擎集合中的若干組件執(zhí)行引擎形成組件執(zhí)行引擎組,從而該集合中形成多個(gè)組件執(zhí)行引擎組。對于每組組件執(zhí)行引擎都為其分配一組組件。從而對組件實(shí)現(xiàn)系統(tǒng)集群化的統(tǒng)一管理和維護(hù)。也即是說,組件分發(fā)中心103至少針對一個(gè)組件而與一組組件執(zhí)行引擎進(jìn)行交互。從而實(shí)現(xiàn)組件的分發(fā)。
[0051]正如參照圖2所述的,在其中實(shí)施本申請的方法的分布式計(jì)算系統(tǒng)中,可以包括由多個(gè)組件執(zhí)行引擎組形成的組件執(zhí)行引擎集合,每個(gè)組件執(zhí)行引擎組可以包含一個(gè)或多個(gè)組件執(zhí)行引擎。
[0052]此外,根據(jù)本申請的方法,組件執(zhí)行引擎組還可以從組件倉庫下載一個(gè)或多個(gè)組件;并對其進(jìn)行加載。在根據(jù)本申請的方法中,組件執(zhí)行引擎組從組件分發(fā)中心下載與所述一個(gè)或多個(gè)組件相關(guān)的組件運(yùn)行時(shí)配置。組件管理控制臺還可以建立一個(gè)或多個(gè)組件目錄結(jié)構(gòu),所述組建目錄結(jié)構(gòu)的每一個(gè)包含一個(gè)或多個(gè)組件。
[0053]此外,本申請的方法還可以包括這樣的步驟:將分布式計(jì)算系統(tǒng)中的各個(gè)應(yīng)用劃分成組件。例如,可以通過組組件劃分單元將各個(gè)應(yīng)用劃分成組件。件是能夠獨(dú)立管理生命周期的計(jì)算模塊,并且其還可以用于進(jìn)行分布式計(jì)算。根據(jù)本申請的實(shí)施方式,組件劃分步驟可以在步驟301之前執(zhí)行。
[0054]根據(jù)本申請的實(shí)施方式,組件劃分單元針對應(yīng)用設(shè)計(jì)核心層,并在核心層的基礎(chǔ)上按照功能將應(yīng)用劃分成組件,并在編譯或運(yùn)行時(shí)再組裝成所需的應(yīng)用功能。另一方面,對于單個(gè)組件而言,其具有獨(dú)立劃分的不同邏輯層次,從而單個(gè)組件自身也是可以獨(dú)立運(yùn)行的。
[0055]在核心層上,本申請將一些公共組件、框架組件作為核心層之上的基礎(chǔ)層bundle,然后把各種業(yè)務(wù)功能進(jìn)行縱向切分,作為業(yè)務(wù)層bundle。根據(jù)本申請的實(shí)施方式的各組件劃分例如可以如下圖2所示。
[0056]從圖上可以看到,根據(jù)功能的不同而劃分了很多獨(dú)立的組件,其中組件執(zhí)行引擎、日志組件、決策計(jì)算引擎、任務(wù)調(diào)度引擎、數(shù)據(jù)模型管理服務(wù)、數(shù)據(jù)字典管理服務(wù)、異步消息服務(wù)、RPC同步調(diào)用接口、數(shù)據(jù)源管理、RESTf接口等可以屬于核心組件;各種計(jì)算模塊組件可以屬于功能組件。
[0057]此外,本申請的方法還可以包括這樣的步驟:組件管理控制臺向組件倉庫發(fā)送第二管理指示,組件倉庫可以根據(jù)第二管理指示增加、更新或刪除組件。用戶可以通過文件上傳或下載把組件或其配置上傳到組件倉庫或者從組件倉庫下載組件或其配置。
[0058]本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本申請可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
[0059]以上所述僅為本申請的實(shí)施例而已,并不用于限制本申請,對于本領(lǐng)域的技術(shù)人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請的權(quán)利要求范圍之內(nèi)。
【權(quán)利要求】
1.一種用于對分布式計(jì)算系統(tǒng)進(jìn)行組件化管理的系統(tǒng),包括: 組件倉庫,用于存儲組件; 組件管理控制臺,被配置成與組件分發(fā)中心進(jìn)行交互,并向組件分發(fā)中心發(fā)送與一個(gè)或多個(gè)組件相關(guān)的第一管理指示; 組件分發(fā)中心,被配置成基于所述第一管理指示,調(diào)度與所述一個(gè)或多個(gè)組件相關(guān)的部署,所述組件分發(fā)中心還被配置成向組件執(zhí)行引擎組發(fā)送調(diào)度命令; 組件執(zhí)行引擎組,被配置成基于所述調(diào)度命令,執(zhí)行與所述一個(gè)或多個(gè)組件相關(guān)的操作。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述組件執(zhí)行引擎組還被配置成從所述組件倉庫下載所述一個(gè)或多個(gè)組件;并對其進(jìn)行加載。
3.根據(jù)權(quán)利要求1所述的系統(tǒng),還包括:組件劃分單元,被配置成將所述分布式計(jì)算系統(tǒng)中的各個(gè)應(yīng)用劃分成組件。
4.根據(jù)權(quán)利要求1-3任一項(xiàng)所述的系統(tǒng),其中所述組件執(zhí)行引擎組還被配置成從所述組件分發(fā)中心下載與所述一個(gè)或多個(gè)組件相關(guān)的組件運(yùn)行時(shí)配置。
5.根據(jù)權(quán)利要求1-3任一項(xiàng)所述的系統(tǒng),其中,所述組件是獨(dú)立管理生命周期的計(jì)算模塊。
6.根據(jù)權(quán)利要求1-3任一項(xiàng)所述的系統(tǒng),其中,所述組件分發(fā)中心還被配置成確定組件分發(fā)規(guī)則。
7.根據(jù)權(quán)利要求1-3`任一項(xiàng)所述的系統(tǒng),其中,所述組件管理控制臺還被配置成建立一個(gè)或多個(gè)組件目錄結(jié)構(gòu),所述組建目錄結(jié)構(gòu)的每一個(gè)包含一個(gè)或多個(gè)組件。
8.根據(jù)權(quán)利要求1-3任一項(xiàng)所述的系統(tǒng),其中,所述組件管理控制臺還被配置成向所述組件倉庫發(fā)送第二管理指示,所述組件倉庫還被配置成根據(jù)第二管理指示增加、更新或刪除組件。
9.一種用于對分布式計(jì)算系統(tǒng)進(jìn)行組件化管理的方法,包括: 組件管理控制臺與組件分發(fā)中心進(jìn)行交互,并向組件分發(fā)中心發(fā)送與一個(gè)或多個(gè)組件相關(guān)的第一管理指示; 所述組件分發(fā)中心基于所述第一管理指示,調(diào)度與所述一個(gè)或多個(gè)組件相關(guān)的部署,所述組件分發(fā)中心還被配置成向組件執(zhí)行引擎組發(fā)送調(diào)度命令; 所述組件執(zhí)行引擎組基于所述調(diào)度命令,執(zhí)行與所述一個(gè)或多個(gè)組件相關(guān)的操作。
10.根據(jù)權(quán)利要求9所述的方法,其中所述組件執(zhí)行引擎組從組件倉庫下載所述一個(gè)或多個(gè)組件;并對其進(jìn)行加載。
11.根據(jù)權(quán)利要求9所述的方法,還包括將所述分布式計(jì)算系統(tǒng)中的各個(gè)應(yīng)用劃分成組件的步驟。
12.根據(jù)權(quán)利要求9-11任一項(xiàng)所述的方法,其中所述組件執(zhí)行引擎組從所述組件分發(fā)中心下載與所述一個(gè)或多個(gè)組件相關(guān)的組件運(yùn)行時(shí)配置。
13.根據(jù)權(quán)利要求9-11任一項(xiàng)所述的方法,其中,所述組件管理控制臺建立一個(gè)或多個(gè)組件目錄結(jié)構(gòu),所述組建目錄結(jié)構(gòu)的每一個(gè)包含一個(gè)或多個(gè)組件。
14.根據(jù)權(quán)利要求9-11任一項(xiàng)所述的方法,還包括:所述組件管理控制臺向所述組件倉庫發(fā)送第二管理指示,所述組件倉庫還被配置成根據(jù)第二管理指示增加、更新或刪除組件。
15.根據(jù)權(quán)利要求9-11任一項(xiàng)所述的方法,其中,所述組件是獨(dú)立管理生命周期的計(jì)算模塊。
【文檔編號】G06F15/16GK103678240SQ201210348209
【公開日】2014年3月26日 申請日期:2012年9月18日 優(yōu)先權(quán)日:2012年9月18日
【發(fā)明者】方亮 申請人:阿里巴巴集團(tuán)控股有限公司