本發(fā)明的實施方式涉及計算機領(lǐng)域,并且更具體地,涉及用于向硬件資源遞送軟件解決方案的方法和裝置。
背景技術(shù):
在向終端用戶提供產(chǎn)品時,產(chǎn)品制造商通常需要根據(jù)終端用戶的需求從硬件資源池中獲取終端用戶所需的硬件資源,在所獲取的硬件資源上部署所需的軟件解決方案,并且隨后在所部署的軟件解決方案上進行相關(guān)測試,以確保終端用戶的正常使用。
目前,上述硬件資源的獲取過程以及軟件解決方案的部署和測試過程中的至少一個過程是由制造商手動完成的,因而效率是很低的。
技術(shù)實現(xiàn)要素:
因此,為了解決一個或多個現(xiàn)有技術(shù)中存在的問題,需要一種高效地向硬件資源遞送軟件解決方案的技術(shù)方案。
根據(jù)本發(fā)明實施方式的第一方面,提供了一種用于遞送軟件解決方案的方法。該方法包括:接收與該軟件解決方案相關(guān)聯(lián)的硬件需求和軟件需求;根據(jù)該硬件需求和該軟件需求,基于預(yù)定義的策略集合來確定硬件資源以及與該軟件解決方案相關(guān)聯(lián)的遞送內(nèi)容;從硬件資源池中獲取所確定的硬件資源;以及向該硬件資源遞送該遞送內(nèi)容。
在一些實施方式中,接收與該軟件解決方案相關(guān)聯(lián)的硬件需求和軟件需求包括:分別接收與第一軟件解決方案相關(guān)聯(lián)的硬件需求和軟件需求、以及與第二軟件解決方案相關(guān)聯(lián)的硬件需求和軟件需求,該第一軟件解決方案不同于該第二軟件解決方案。
在一些實施方式中,該預(yù)定義的策略集合包括預(yù)定義的第一策略集合和第二策略集合,該第一策略集合不同于該第二策略集合;該方 法進一步包括:分別向該第一軟件解決方案和該第二軟件解決方案指派該第一策略集合和該第二策略集合;并且其中基于預(yù)定義的策略集合來確定硬件資源以及與該軟件解決方案相關(guān)聯(lián)的遞送內(nèi)容包括:分別基于該第一策略集合和該第二策略集合來確定針對該第一軟件解決方案的硬件資源和遞送內(nèi)容、以及針對該第二軟件解決方案的硬件資源和遞送內(nèi)容。
在一些實施方式中,該預(yù)定義的策略集合包括全局的策略集合;并且其中基于預(yù)定義的策略集合來確定硬件資源以及與該軟件解決方案相關(guān)聯(lián)的遞送內(nèi)容包括:基于該全局的策略集合來分別確定針對該第一軟件解決方案的硬件資源和遞送內(nèi)容、以及針對該第二軟件解決方案的硬件資源和遞送內(nèi)容。
在一些實施方式中,該策略集合包括多個策略,該多個策略中的每一個包括屬性集合與遞送內(nèi)容之間的映射關(guān)系,該屬性集合中的每個屬性表示與待遞送的軟件解決方案相關(guān)聯(lián)的硬件需求或軟件需求。
在一些實施方式中,該多個策略至少包括第一策略以及與該第一策略不同的第二策略。
在一些實施方式中,該屬性集合中的每個屬性被賦予權(quán)重;其中基于預(yù)定義的策略集合來確定硬件資源以及與該軟件解決方案相關(guān)聯(lián)的遞送內(nèi)容包括:將所接收的硬件需求和軟件需求分別與該第一策略和該第二策略進行比較;基于該比較,分別針對該第一策略和該第二策略確定與所接收的硬件需求和軟件需求相匹配的屬性的權(quán)重的總和;響應(yīng)于針對該第一策略的權(quán)重的總和大于針對該第二策略的權(quán)重的總和,基于該第一策略來確定該硬件資源和該遞送內(nèi)容。
根據(jù)本發(fā)明實施方式的第二方面,提供了一種用于遞送軟件解決方案的裝置。該裝置包括:需求處理單元,被配置為接收與該軟件解決方案相關(guān)聯(lián)的硬件需求和軟件需求,并且根據(jù)該硬件需求和該軟件需求,基于預(yù)定義的策略集合來確定硬件資源以及與該軟件解決方案相關(guān)聯(lián)的遞送內(nèi)容;硬件資源管理單元,被配置為從硬件資源池中獲取所確定的硬件資源;以及遞送單元,被配置為向該硬件資源遞送該 遞送內(nèi)容。
在一些實施方式中,該需求處理單元被進一步配置為:分別接收與第一軟件解決方案相關(guān)聯(lián)的硬件需求和軟件需求、以及與第二軟件解決方案相關(guān)聯(lián)的硬件需求和軟件需求,該第一軟件解決方案不同于該第二軟件解決方案。
在一些實施方式中,該預(yù)定義的策略集合包括預(yù)定義的第一策略集合和第二策略集合,該第一策略集合不同于該第二策略集合;該需求處理單元被進一步配置為:分別向該第一軟件解決方案和該第二軟件解決方案指派該第一策略集合和該第二策略集合;并且分別基于該第一策略集合和該第二策略集合來確定針對該第一軟件解決方案的硬件資源和遞送內(nèi)容、以及針對該第二軟件解決方案的硬件資源和遞送內(nèi)容。
在一些實施方式中,該預(yù)定義的策略集合包括全局的策略集合;并且其中該需求處理單元被進一步配置為:基于該全局的策略集合來分別確定針對該第一軟件解決方案的硬件資源和遞送內(nèi)容、以及針對該第二軟件解決方案的硬件資源和遞送內(nèi)容。
在一些實施方式中,該策略集合包括多個策略,該多個策略中的每一個包括屬性集合與遞送內(nèi)容之間的映射關(guān)系,該屬性集合中的每個屬性表示與待遞送的軟件解決方案相關(guān)聯(lián)的硬件需求或軟件需求。
在一些實施方式中,該多個策略至少包括第一策略以及與該第一策略不同的第二策略。
在一些實施方式中,該屬性集合中的每個屬性被賦予權(quán)重;其中該需求處理單元被進一步配置為:將所接收的硬件需求和軟件需求分別與該第一策略和該第二策略進行比較;基于該比較,分別針對該第一策略和該第二策略確定與所接收的硬件需求和軟件需求相匹配的屬性的權(quán)重的總和;響應(yīng)于針對該第一策略的權(quán)重的總和大于針對該第二策略的權(quán)重的總和,基于該第一策略來確定該硬件資源和該遞送內(nèi)容。
根據(jù)本發(fā)明實施方式的第三方面,提供了一種服務(wù)器,包括:一 個或多個處理器;存儲有計算機程序指令的存儲器,當(dāng)由該一個或多個處理器執(zhí)行該計算機程序指令時使得該服務(wù)器執(zhí)行根據(jù)本發(fā)明實施方式的方法。
根據(jù)本發(fā)明實施方式的第四方面,提供了一種計算機程序產(chǎn)品,包括計算機程序指令,當(dāng)由計算設(shè)備執(zhí)行該計算機程序指令時使得該計算設(shè)備執(zhí)行根據(jù)本發(fā)明實施方式的方法。
本發(fā)明的實施方式利用預(yù)定義的策略集合來確定將向其遞送軟件解決方案的硬件資源以及與待遞送的軟件解決方案相關(guān)聯(lián)的遞送內(nèi)容,從而提供了自動化的軟件解決方案遞送過程。
附圖說明
結(jié)合附圖并參考以下詳細(xì)說明,本發(fā)明的各實施方式的特征、優(yōu)點及其他方面將變得更加明顯,在此以示例性而非限制性的方式示出了本發(fā)明的若干實施方式。在附圖中:
圖1示出了本發(fā)明的實施方式可以實現(xiàn)于其中的示例性環(huán)境的框圖;
圖2示出了根據(jù)本發(fā)明的一個實施方式的用于遞送軟件解決方案的方法的流程圖;
圖3示出了軟件需求和硬件需求的示例;
圖4示出根據(jù)本發(fā)明的一個實施方式的用于遞送軟件解決方案的裝置的框圖;
圖5示出了根據(jù)本發(fā)明實施方式的用于遞送軟件解決方案的裝置的架構(gòu)圖;以及
圖6示出了一個可以用來實施本發(fā)明實施方式的設(shè)備的示意性框圖。
具體實施方式
下面將參考附圖中示出的若干示例實施方式來描述本發(fā)明的原理。應(yīng)當(dāng)理解,描述這些實施方式僅僅是為了使本領(lǐng)域技術(shù)人員能夠 更好地理解進而實現(xiàn)本發(fā)明,而并非以任何方式限制本發(fā)明的范圍。
為了提高向硬件資源遞送軟件解決方案的效率,本發(fā)明的實施方式提供了一種通過策略驅(qū)動來向硬件資源遞送軟件解決方案的技術(shù)方案。
圖1示出了本發(fā)明的實施方式可以實現(xiàn)于其中的示例性環(huán)境100的框圖。如圖1所示,環(huán)境100包括軟件管理單元110和硬件資源管理單元120。
軟件管理單元110被配置為從終端用戶接收與待遞送的軟件解決方案相關(guān)聯(lián)的需求111。需求111可以包括與該軟件解決方案相關(guān)聯(lián)的軟件需求和硬件需求。軟件管理單元110被進一步配置為根據(jù)需求111,基于預(yù)定義的策略集合來確定將要向其遞送軟件解決方案的硬件資源。
此外,軟件管理單元110還被配置為與硬件資源管理單元120進行通信,以使得硬件資源管理單元120從硬件資源池121中獲取所確定的硬件資源,例如硬件資源122。在一些實施方式中,硬件資源池121中的硬件資源可以包括聚合基礎(chǔ)設(shè)施(convergedinfrastructure,ci)資源。在另一些實施方式中,硬件資源池121中的硬件資源可以包括定制的資源。
另外,軟件管理單元110還被配置為基于預(yù)定義的策略集合來確與該軟件解決方案相關(guān)聯(lián)的遞送內(nèi)容,并且向所獲取的硬件資源122遞送該遞送內(nèi)容。
圖2示出了根據(jù)本發(fā)明的一個實施方式的用于遞送軟件解決方案的方法200的流程圖。在一些實施方式中,方法200可以由圖1中所示出的軟件管理單元110和硬件資源管理單元120來實施。因此,在下文中將參照圖2并借助于圖1所示的示例性環(huán)境100,詳細(xì)描述根據(jù)本發(fā)明的實施方式的用于遞送軟件解決方案的方法。
如圖2所示,在步驟s210,軟件管理單元110從終端用戶接收與待遞送的軟件解決方案相關(guān)聯(lián)的需求111。需求111可以包括與待遞送的軟件解決方案相關(guān)聯(lián)的軟件需求和硬件需求。
作為一個示例,與待遞送的軟件解決方案相關(guān)聯(lián)的軟件需求可以包括待遞送的軟件解決方案的名稱,例如人力資源管理方案、財務(wù)管理方案等。
作為一個示例,與待遞送的軟件解決方案相關(guān)聯(lián)的硬件需求可以包括所需的硬件資源的型號(model)名稱,例如quanta(廣達)、rinjin等。此外,與待遞送的軟件解決方案相關(guān)聯(lián)的硬件需求還可以包括計算需求和存儲需求,例如對于cpu的需求和存儲容量的需求。
可以理解,軟件解決方案通常包括多個軟件包。就此而言,與待遞送的軟件解決方案相關(guān)聯(lián)的軟件需求可以包括軟件解決方案中的軟件包的名稱,例如apacheserver1.0、mysqldatabase2.1等。
繼續(xù)參照圖2,在步驟s220,軟件管理單元110根據(jù)與待遞送的軟件解決方案相關(guān)聯(lián)的硬件需求和軟件需求,基于預(yù)定義的策略集合來確定硬件資源以及與軟件解決方案相關(guān)聯(lián)的遞送內(nèi)容。作為一個示例,可以采用策略數(shù)據(jù)庫來維護和管理預(yù)定義的策略集合。
在一些實施方式中,與軟件解決方案相關(guān)聯(lián)的遞送內(nèi)容包括部署(deployment)內(nèi)容。部署內(nèi)容的示例包括但是不限于:部署腳本的集合、與部署腳本相關(guān)聯(lián)的軟件包、以及配置文件。
在一些實施方式中,與軟件解決方案相關(guān)聯(lián)的遞送內(nèi)容還包括測試內(nèi)容。測試內(nèi)容的示例包括但是不限于:測試腳本的集合、順序文件(sequencefile)以及相關(guān)的可執(zhí)行文件。
在一些實施方式中,預(yù)定義的策略集合可以是特定于待遞送的軟件解決方案。換言之,針對不同的軟件解決方案采用不同的策略集合,從而可以避免出現(xiàn)同一需求與多個策略項匹配的情況。
具體而言,接收與軟件解決方案相關(guān)聯(lián)的硬件需求和軟件需求可以包括:分別接收與第一軟件解決方案相關(guān)聯(lián)的硬件需求和軟件需求、以及與第二軟件解決方案相關(guān)聯(lián)的硬件需求和軟件需求,第一軟件解決方案不同于第二軟件解決方案。預(yù)定義的策略集合可以包括預(yù)定義的第一策略集合和第二策略集合,并且第一策略集合不同于第二策略集合。由此,方法200可以進一步包括分別向第一軟件解決方案 和第二軟件解決方案指派第一策略集合和第二策略集合,并且基于預(yù)定義的策略集合來確定硬件資源以及與軟件解決方案相關(guān)聯(lián)的遞送內(nèi)容包括:分別基于第一策略集合和第二策略集合來確定針對第一軟件解決方案的硬件資源和遞送內(nèi)容、以及針對第二軟件解決方案的硬件資源和遞送內(nèi)容。
根據(jù)本發(fā)明的實施方式,多個策略中的每一個策略包括屬性集合與遞送內(nèi)容之間的映射關(guān)系,該屬性集合中的每個屬性表示與待遞送的軟件解決方案相關(guān)聯(lián)的硬件需求或軟件需求。
可以理解,在實際應(yīng)用中,終端用戶可以采用任何適當(dāng)?shù)姆绞絹硐虍a(chǎn)品制造商提出與所需的軟件解決方案相關(guān)聯(lián)的軟件需求和硬件需求。例如,終端用戶可以采用訂單的方式來提出該軟件需求和硬件需求,如圖3所示。
圖3所示的訂單包括訂單編號。應(yīng)當(dāng)理解,在該示例中,訂單編號被預(yù)先與待遞送的軟件解決方案相關(guān)聯(lián)。由此,訂單編號隱含地指明了待遞送的軟件解決方案??商鎿Q地,取代訂單編號,可以通過采用待遞送的軟件解決方案的名稱而在訂單中顯式地指明待遞送的軟件解決方案。
圖3所示的訂單還包括多個訂單項目。多個訂單項目中的每一個包括所需的硬件資源的型號名稱(例如quanta或rinjin)和將要向該硬件資源遞送的軟件包的名稱(apacheserver1.0或mysqldatabase2.1)
在下文中將結(jié)合圖3并參照以下的表1至表4來描述其中預(yù)定義的策略集合是特定于待遞送的軟件解決方案的實施方式。
表1
表2
表3
表4
待遞送的軟件解決方案的名稱(未示出)例如可以為“人力資源管理方案”。如以上參照圖3所描述的,訂單編號可以預(yù)先與待遞送的軟件解決方案相關(guān)聯(lián)。由此,表1至表4中的訂單編號“12345”隱含地指明了待遞送的軟件解決方案。因而,表1至表4示出了特定于訂單編號“12345”(即,特定于“人力資源管理方案”)的策略集合的示例,其中表1至表4中的每一個示出了該策略集合中的一個策略。
根據(jù)本發(fā)明的實施方式,多個策略中的每一個策略包括屬性集合與遞送內(nèi)容之間的映射關(guān)系,該屬性集合中的每個屬性表示與待遞送的軟件解決方案相關(guān)聯(lián)的硬件需求或軟件需求。
例如,如表2所示的策略包括由屬性“model”、“orderno.”和“package”構(gòu)成的屬性集合,其中屬性“model”表示與待遞送的軟件解決方案相關(guān)聯(lián)的硬件需求,屬性“orderno.”和“package”表示與待遞送的軟件解決方案相關(guān)聯(lián)的軟件需求。
此外,如表2所示,遞送內(nèi)容可以包括部署內(nèi)容,例如apachehigh_1.2。另外,如表2所示,遞送內(nèi)容還可以包括測試內(nèi)容,例如apachetest_1.1。再者,遞送內(nèi)容還可以可選地包括與操作系統(tǒng)(os)相關(guān)的內(nèi)容,例如ubuntu。應(yīng)當(dāng)理解,策略中可以不包括與操作系統(tǒng)相關(guān)的內(nèi)容。在此情況下,可以根據(jù)硬件資源的型號來向硬件資源加載缺省的操作系統(tǒng)。
在一些實施方式中,預(yù)定義的策略集合可以不是特定于待遞送的軟件解決方案,而是全局的策略集合。換言之,針對不同的軟件解決方案采用相同的策略集合。在此情況下,基于預(yù)定義的策略集合來確定硬件資源以及與軟件解決方案相關(guān)聯(lián)的遞送內(nèi)容包括:基于全局的策略集合來分別確定針對第一軟件解決方案的硬件資源和遞送內(nèi)容、以及針對第二軟件解決方案的硬件資源和遞送內(nèi)容。在一些實施方式中,多個策略至少包括第一策略以及與所述第一策略不同的第二策略,并且每個策略的屬性集合中的每個屬性可以被賦予權(quán)重。
在此情況下,基于預(yù)定義的策略集合來確定硬件資源以及與軟件解決方案相關(guān)聯(lián)的遞送內(nèi)容包括:將所接收的硬件需求和軟件需求分別與第一策略和所述第二策略進行比較;基于該比較,分別針對第一策略和第二策略確定與所接收的硬件需求和軟件需求相匹配的屬性的權(quán)重的總和;響應(yīng)于針對第一策略的權(quán)重的總和大于針對第二策略的權(quán)重的總和,基于第一策略來確定該硬件資源和遞送內(nèi)容。
舉例而言,第一策略包括如表2所示的策略,并且第二策略包括如表4所示的策略。表2所示的策略的屬性“model”、“orderno.” 和“package”可以被分別賦予權(quán)重0.2、0.3和0.5。表4所示的策略的屬性“model”、“orderno.”和“package”可以被分別賦予權(quán)重0.3、0.4和0.3。
例如,如果所接收的硬件需求和軟件需求分別為“model=quanta”、“package=apacheserver1.0”,那么在確定采用如表2所示的策略還是采用如表4所示的策略來確定硬件資源和遞送內(nèi)容時可以執(zhí)行以下操作:將所接收的硬件需求和軟件需求分別與如表2所示的策略和如表4所示的策略進行比較;基于該比較,針對表2的策略,確定與所接收的需求相匹配的屬性的權(quán)重的總和為0.7(0.2+0.5),而針對表4的策略,確定與所接收的需求相匹配的屬性的權(quán)重的總和為0.6(0.3+0.3);響應(yīng)于針對表2所示策略的權(quán)重的總和大于針對表4所示策略的權(quán)重的總和,基于表2所示的策略來確定硬件資源和遞送內(nèi)容。
由此,在采用全局的策略集合的實施方式中,通過為每個策略的每個屬性賦予權(quán)重,可以避免出現(xiàn)同一需求與多個策略項匹配的情況。
應(yīng)當(dāng)理解,以上所描述的特定于待遞送的軟件解決方案的策略集合以及全局的策略集合僅僅是預(yù)定義的策略集合的具體示例。根據(jù)具體的應(yīng)用場景,制造商可以預(yù)先定義除了以上所描述的策略集合之外的任何適當(dāng)?shù)牟呗约?,本發(fā)明實施方式的范圍在此方面不受限制。
繼續(xù)參照圖2,在步驟s230,硬件資源管理單元120從硬件資源池121中獲取所確定的硬件資源。在步驟s240,軟件管理單元110向所確定的硬件資源遞送所確定的遞送內(nèi)容。
圖4示出根據(jù)本發(fā)明的一個實施方式的用于遞送軟件解決方案的裝置400的框圖。在一些實施方式中,裝置400可以在圖1所示的環(huán)境100中實施。
如圖4所示,裝置400包括需求處理單元410,被配置為接收與該軟件解決方案相關(guān)聯(lián)的硬件需求和軟件需求,并且根據(jù)該硬件需求和該軟件需求,基于預(yù)定義的策略集合來確定硬件資源以及與該軟件 解決方案相關(guān)聯(lián)的遞送內(nèi)容;硬件資源管理單元420,被配置為從硬件資源池中獲取所確定的硬件資源;以及遞送單元430,被配置為向該硬件資源遞送該遞送內(nèi)容。
在一些實施方式中,需求處理單元410被進一步配置為:分別接收與第一軟件解決方案相關(guān)聯(lián)的硬件需求和軟件需求、以及與第二軟件解決方案相關(guān)聯(lián)的硬件需求和軟件需求,該第一軟件解決方案不同于該第二軟件解決方案。
在一些實施方式中,該預(yù)定義的策略集合包括預(yù)定義的第一策略集合和第二策略集合,該第一策略集合不同于該第二策略集合;需求處理單元410被進一步配置為:分別向該第一軟件解決方案和該第二軟件解決方案指派該第一策略集合和該第二策略集合;并且分別基于該第一策略集合和該第二策略集合來確定針對該第一軟件解決方案的硬件資源和遞送內(nèi)容、以及針對該第二軟件解決方案的硬件資源和遞送內(nèi)容。
在一些實施方式中,該預(yù)定義的策略集合包括全局的策略集合;并且需求處理單元410被進一步配置為:基于該全局的策略集合來分別確定針對該第一軟件解決方案的硬件資源和遞送內(nèi)容、以及針對該第二軟件解決方案的硬件資源和遞送內(nèi)容。
在一些實施方式中,該策略集合包括多個策略,該多個策略中的每一個包括屬性集合與遞送內(nèi)容之間的映射關(guān)系,該屬性集合中的每個屬性表示與待遞送的軟件解決方案相關(guān)聯(lián)的硬件需求或軟件需求。
在一些實施方式中,該多個策略至少包括第一策略以及與該第一策略不同的第二策略。
在一些實施方式中,該屬性集合中的每個屬性被賦予權(quán)重;并且需求處理單元410被進一步配置為:將所接收的硬件需求和軟件需求分別與該第一策略和該第二策略進行比較;基于該比較,分別針對該第一策略和該第二策略確定與所接收的硬件需求和軟件需求相匹配的屬性的權(quán)重的總和;響應(yīng)于針對該第一策略的權(quán)重的總和大于針對該第二策略的權(quán)重的總和,基于該第一策略來確定該硬件資源和該遞 送內(nèi)容。
本發(fā)明的實施方式還提供了一種服務(wù)器,包括:一個或多個處理器;存儲有計算機程序指令的存儲器,當(dāng)由所述一個或多個處理器執(zhí)行所述計算機程序指令時使得所述服務(wù)器執(zhí)行根據(jù)本發(fā)明實施方式的方法。
本發(fā)明的實施方式還提供了一種計算機程序產(chǎn)品,包括計算機程序指令,當(dāng)由計算設(shè)備執(zhí)行所述計算機程序指令時使得所述計算設(shè)備執(zhí)行根據(jù)本發(fā)明實施方式的方法。
圖5示出了根據(jù)本發(fā)明實施方式的用于遞送軟件解決方案的裝置500的架構(gòu)圖。裝置500可以作為圖1所示的環(huán)境100的一種示例性實現(xiàn)方式。
如圖5所示,裝置500包括訂單處理單元510、部署單元540和測試執(zhí)行單元550。在一些實施方式中,訂單處理單元510可以在圖1的軟件管理單元110或圖4的需求處理單元410中實施。在一些實施方式中,部署單元540和測試執(zhí)行單元550可以在圖1的軟件管理單元110或圖4的遞送單元430中實施。
作為一個示例,可以通過向現(xiàn)有的軟件管理工具中添加訂單處理單元510、部署單元540和測試執(zhí)行單元550來實施這些單元?,F(xiàn)有的軟件管理工具的示例包括但是不限于cumulus。如本領(lǐng)域中所已知的,cumulus是一種基于云的制造解決方案,其目標(biāo)在于將制造過程中的所有通用的計算和存儲需求移動到數(shù)據(jù)中心中的基于云的平臺上。
裝置500進一步包括硬件資源管理單元530。在一些實施方式中,硬件資源管理單元530可以在圖1中的硬件資源管理單元120或圖4中的硬件資源管理單元420中實施。作為一個示例,可以利用現(xiàn)有的硬件管理工具來實施硬件資源管理單元530?,F(xiàn)有的軟件管理工具的示例包括但是不限于onrack。如本領(lǐng)域中所已知的,onrack是一種ci管理和協(xié)調(diào)軟件,其提供了軟件的基礎(chǔ)設(shè)施管理和協(xié)調(diào)層所需的功能。此外,onrack提供了軟件抽象的集合,這些軟件抽象從基礎(chǔ)設(shè) 施管理和協(xié)調(diào)層上部隱藏了聚合基礎(chǔ)設(shè)施的細(xì)節(jié)。這些軟件抽象可以采取restfulapi和分布/訂閱api的形式。通過提供這種類型的api,基礎(chǔ)設(shè)施層可以位于網(wǎng)絡(luò)中可以與onrack管理和協(xié)調(diào)工具進行通信的任何位置。
在下文中將結(jié)合圖5并參照以上描述的表1和表2來描述裝置500的各個單元的操作。
在步驟s1,訂單處理單元510接收用戶以訂單形式提供的、與待遞送的軟件解決方案相關(guān)聯(lián)的軟件需求和硬件需求,并且對所接收的訂單進行解析。
在步驟s2,針對每個訂單項目,訂單處理單元510利用“訂單編號”和“型號名稱”來訪問策略數(shù)據(jù)庫520,以例如通過表1確定相應(yīng)的硬件資源配置(profile)。例如,訂單處理單元510利用訂單編號“12345”和型號名稱“quanta”來訪問策略數(shù)據(jù)庫520,以從中映射出相應(yīng)的硬件資源配置“high(高級配置)”。這意味著,需要向型號名稱“quanta”并且資源配置為“high(高級配置)”的硬件資源遞送由訂單編號“12345”隱含地指明的軟件解決方案。應(yīng)當(dāng)理解,“high(高級配置)”、“medium(中等配置)”和“l(fā)ow(低級配置)”可以由制造商來預(yù)先定義。
在步驟s3,訂單處理單元510向硬件資源管理單元530發(fā)送資源發(fā)現(xiàn)請求,該請求中包括在步驟s2中確定的型號名稱“quanta”和資源配置“high”。
響應(yīng)于接收到該資源發(fā)現(xiàn)請求,硬件資源管理單元530從硬件資源池(未示出)中確定與型號名稱“quanta”和資源配置“high”相匹配的硬件資源集合,從所確定的硬件資源集合選擇可用的硬件資源,并且在步驟s4將所選擇的硬件資源的信息發(fā)送至訂單處理單元510。如圖5所示,所選擇的硬件資源的信息例如可以包括型號名稱“quanta”、ip地址、mac地址等。此外,可選地,硬件資源管理單元530可以向所選擇的硬件資源加載適當(dāng)?shù)牟僮飨到y(tǒng)??商鎿Q地,可以由訂單處理單元510來向所選擇的硬件資源加載適當(dāng)?shù)牟僮飨到y(tǒng)。
接下來,訂單處理單元510利用“訂單編號”、“型號名稱”和“軟件包名稱”來訪問策略數(shù)據(jù)庫520,以例如通過表2確定與軟件解決方案相關(guān)聯(lián)的部署內(nèi)容和測試內(nèi)容。例如,訂單處理單元510利用訂單編號“12345”、型號名稱“quanta”和軟件包名稱“apache_1.0”來訪問策略數(shù)據(jù)庫520,以從中映射出相應(yīng)的部署內(nèi)容“apachehigh_1.2”和測試內(nèi)容“apachetest_1.1”。這意味著,將在硬件資源管理單元530所選擇的硬件資源上部署“apachehigh_1.2”并且執(zhí)行測試“apachetest_1.1”。此外,訂單處理單元510在該步驟獲得的部署內(nèi)容還包括相應(yīng)的操作系統(tǒng)鏡像的名稱“ubuntu”??梢杂捎布Y源管理單元530向所選擇的硬件資源加載所確定的操作系統(tǒng)。可替換地,硬件資源管理單元530可以根據(jù)硬件資源的型號來向硬件資源加載缺省的操作系統(tǒng)。
在步驟s5,訂單處理單元510向部署單元540提供所確定的部署內(nèi)容(軟件包),使得部署內(nèi)容可以被提取出并且被推送到所選擇的硬件資源上,并且使得部署腳本在所選擇的硬件資源上運行??商鎿Q地,所選擇的硬件資源可以下載所提取出的部署內(nèi)容。此外,部署單元540的操作還可以包括監(jiān)管程序安裝、虛擬機創(chuàng)建、系統(tǒng)配置和附加的軟件應(yīng)用安裝等。
在步驟s6,訂單處理單元510向測試執(zhí)行單元550提供所確定的測試內(nèi)容(軟件包),以進行測試。具體地,例如,在通過向cumulus中添加測試執(zhí)行單元550的實現(xiàn)方式中,可以利用cumulussequencer(定序器)來驅(qū)動python格式的測試腳本的執(zhí)行,并且可以在python格式的順序文件中定義工作流。此外,測試結(jié)果和錯誤細(xì)節(jié)可以由測試執(zhí)行單元550收集并且向終端用戶顯示以用于進一步分析。
可以理解,本發(fā)明的實施方式利用預(yù)定義的策略集合提供了自動化的軟件解決方案遞送過程。此外,在將根據(jù)本發(fā)明實施方式的遞送過程與cumulus和onrack相結(jié)合時可以提供統(tǒng)一的軟件解決方案遞送平臺。具體而言,cumulus是高度可擴展的,因為其能力僅僅取決于其測試執(zhí)行系統(tǒng)和部署系統(tǒng)的數(shù)目,而每個系統(tǒng)可以支持100個或 者更多個硬件資源。制造商可以非??焖俚卦黾訙y試執(zhí)行系統(tǒng)和部署系統(tǒng)的數(shù)目,而不會引起任何附加的操作困難。此外,cumulus還支持在相同機器上執(zhí)行不同的部署策略和測試策略。這使得可以在同一時間毫無困難地遞送多個方案。再者,onrack為資源發(fā)現(xiàn)和資源配置的讀取提供了統(tǒng)一的api。這使得可以自動地發(fā)現(xiàn)目標(biāo)資源。
圖6示出了一個可以用來實施本發(fā)明實施方式的設(shè)備600的示意性框圖。如圖所示,設(shè)備600包括中央處理單元(cpu)601,其可以根據(jù)存儲在只讀存儲器(rom)602中的計算機程序指令或者從存儲單元608加載到隨機訪問存儲器(ram)603中的計算機程序指令,來執(zhí)行各種適當(dāng)?shù)膭幼骱吞幚?。在ram603中,還可存儲設(shè)備600操作所需的各種程序和數(shù)據(jù)。cpu601、rom602以及ram603通過總線604彼此相連。輸入/輸出(i/o)接口605也連接至總線604。
設(shè)備600中的多個部件連接至i/o接口605,包括:輸入單元606,例如鍵盤、鼠標(biāo)等;輸出單元607,例如各種類型的顯示器、揚聲器等;存儲單元608,例如磁盤、光盤等;以及通信單元609,例如網(wǎng)卡、調(diào)制解調(diào)器、無線通信收發(fā)機等。通信單元609允許設(shè)備600通過諸如因特網(wǎng)的計算機網(wǎng)絡(luò)和/或各種電信網(wǎng)絡(luò)與其他設(shè)備交換信息/數(shù)據(jù)。
上文所描述的各個過程和處理,例如方法100,可由處理單元601執(zhí)行。例如,在一些實施例中,方法100可被實現(xiàn)為計算機軟件程序,其被有形地包含于機器可讀介質(zhì),例如存儲單元608。在一些實施例中,計算機程序的部分或者全部可以經(jīng)由rom602和/或通信單元609而被載入和/或安裝到設(shè)備600上。當(dāng)計算機程序被加載到ram603并由cpu601執(zhí)行時,可以執(zhí)行上文描述的方法100的一個或多個步驟。
一般而言,本發(fā)明的各種示例實施方式可以在硬件或?qū)S秒娐?、軟件、邏輯,或其任何組合中實施。某些方面可以在硬件中實施,而其他方面可以在可以由控制器、微處理器或其他計算設(shè)備執(zhí)行的固件或軟件中實施。當(dāng)本發(fā)明的實施方式的各方面被圖示或描述為框圖、 流程圖或使用某些其他圖形表示時,將理解此處描述的方框、裝置、系統(tǒng)、技術(shù)或方法可以作為非限制性的示例在硬件、軟件、固件、專用電路或邏輯、通用硬件或控制器或其他計算設(shè)備,或其某些組合中實施。
而且,流程圖中的各框可以被看作是方法步驟,和/或計算機程序代碼的操作生成的操作,和/或理解為執(zhí)行相關(guān)功能的多個耦合的邏輯電路元件。例如,本發(fā)明的實施方式包括計算機程序產(chǎn)品,該計算機程序產(chǎn)品包括有形地實現(xiàn)在計算機可讀介質(zhì)上的計算機程序,該計算機程序包含被配置為實現(xiàn)上文描述方法的程序代碼。
在公開的上下文內(nèi),計算機可讀介質(zhì)可以是包含或存儲用于或有關(guān)于指令執(zhí)行系統(tǒng)、裝置或設(shè)備的程序的任何有形介質(zhì)。計算機可讀介質(zhì)可以是機器可讀信號介質(zhì)或機器可讀存儲介質(zhì)。計算機可讀介質(zhì)可以包括但不限于電子的、磁的、光學(xué)的、電磁的、紅外的或半導(dǎo)體系統(tǒng)、裝置或設(shè)備,或其任意合適的組合。機器可讀存儲介質(zhì)的更詳細(xì)示例包括帶有一根或多根導(dǎo)線的電氣連接、便攜式計算機存儲盤、存儲盤、隨機存儲存取器(ram)、只讀存儲器(rom)、可擦除可編程只讀存儲器(eprom或閃存)、光存儲設(shè)備、磁存儲設(shè)備,或其任意合適的組合。
用于實現(xiàn)本發(fā)明的方法的計算機程序代碼可以用一種或多種編程語言編寫。這些計算機程序代碼可以提供給通用計算機、專用計算機或其他可編程的數(shù)據(jù)處理裝置的處理器,使得程序代碼在被計算機或其他可編程的數(shù)據(jù)處理裝置執(zhí)行的時候,引起在流程圖和/或框圖中規(guī)定的功能/操作被實施。程序代碼可以完全在計算機上、部分在計算機上、作為獨立的軟件包、部分在計算機上且部分在遠程計算機上或完全在遠程計算機或服務(wù)器上執(zhí)行。
另外,盡管操作以特定順序被描繪,但這并不應(yīng)該理解為要求此類操作以示出的特定順序或以相繼順序完成,或者執(zhí)行所有圖示的操作以獲取期望結(jié)果。在某些情況下,多任務(wù)或并行處理會是有益的。同樣地,盡管上述討論包含了某些特定的實施細(xì)節(jié),但這并不應(yīng)解釋 為限制任何發(fā)明或權(quán)利要求的范圍,而應(yīng)解釋為對可以針對特定發(fā)明的特定實施方式的描述。本說明書中在分開的實施方式的上下文中描述的某些特征也可以整合實施在單個實施方式中。相反地,在單個實施方式的上下文中描述的各種特征也可以分離地在多個實施方式或在任意合適的子組合中實施。
針對前述本發(fā)明的示例實施方式的各種修改、改變將在連同附圖查看前述描述時對相關(guān)技術(shù)領(lǐng)域的技術(shù)人員變得明顯。任何及所有修改將仍落入非限制的和本發(fā)明的示例實施方式范圍。此外,前述說明書和附圖存在啟發(fā)的益處,涉及本發(fā)明的這些實施方式的技術(shù)領(lǐng)域的技術(shù)人員將會想到此處闡明的本發(fā)明的其他實施方式。
將會理解,本發(fā)明的實施方式不限于公開的特定實施方式,并且修改和其他實施方式都應(yīng)包含于所附的權(quán)利要求范圍內(nèi)。盡管此處使用了特定的術(shù)語,但是它們僅在通用和描述的意義上使用,而并不用于限制目的。