亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種云計算環(huán)境下基于工作流的軟件部署系統(tǒng)及部署方法

文檔序號:6432319閱讀:253來源:國知局
專利名稱:一種云計算環(huán)境下基于工作流的軟件部署系統(tǒng)及部署方法
一種云計算環(huán)境下基于工作流的軟件部署系統(tǒng)及部署方法技術(shù)領(lǐng)域
本發(fā)明屬于計算機應(yīng)用領(lǐng)域,具體涉及一種云計算環(huán)境下基于工作流的軟件部署系統(tǒng)。
背景技術(shù)
目前,云計算(Cloud Computing)正在被學(xué)術(shù)界及工業(yè)界廣泛關(guān)注,它是分布式計算、并行處理和網(wǎng)格計算的發(fā)展,其目標(biāo)是以互聯(lián)網(wǎng)為中心,為用戶提供安全、快速、便捷的數(shù)據(jù)存儲和網(wǎng)絡(luò)計算服務(wù)。采用云計算后,企業(yè)數(shù)據(jù)中心的運行將與互聯(lián)網(wǎng)更加相似,這使得企業(yè)能夠?qū)①Y源迅速切換到需要的應(yīng)用上,根據(jù)實際需求訪問計算資源和存儲系統(tǒng)。云計算作為一種新型計算技術(shù),它旨在動態(tài)提供所需的計算和存儲資源,管理各種工作負載以滿足大量應(yīng)用的需求。云計算的核心思想是,使用大量的分布式計算機來實現(xiàn)快速、高效的計算,而不是在本地的計算機或者某個獨立的遠程服務(wù)器中。一般情況下,一個云計算平臺的物理資源可能涉及成千上萬臺位于不同云計算中心中的計算機節(jié)點 (包括了計算資源或存儲資源)。然而,伴隨著機器節(jié)點數(shù)目的增多,構(gòu)建、管理和維護如此大規(guī)模的分布式軟件系統(tǒng)的難度也與之俱增。為了構(gòu)建恰當(dāng)?shù)脑朴嬎悱h(huán)境以滿足用戶不斷變化的應(yīng)用需求,常常需要在大量的遠程云計算節(jié)點上動態(tài)地部署或者反部署各種軟件, 而且,即使在某個確定的計算機節(jié)點上,多個待部署的軟件之間往往存在依賴關(guān)系(例如, 要使B軟件能夠部署且成功運行,必須先部署A和C軟件)??偠灾葱铇?gòu)建云計算環(huán)境是一個繁冗復(fù)雜的浩大工程,軟件依賴非常普遍,如果僅僅憑借傳統(tǒng)的部署方式,需要耗費大量的時間和人力,因此,必須借助工作流技術(shù)來實施。當(dāng)前,針對軟件部署的管理系統(tǒng)主要有WPKG和Kaseya。WPKG系統(tǒng)是一個針對Windows環(huán)境的自動化的軟件部署、升級和反部署的開源項目軟件,它能夠使用推送和拉取方式來從中心服務(wù)器上獲得軟件安裝包(包括服務(wù)安裝包、修復(fù)包、程序安裝包等),并部署到一系列工作站上。該系統(tǒng)需要在目標(biāo)機器的后臺中運行特定的軟件部署服務(wù),使之能夠部署.MSI (Microsoft Installer)、. exe、. bat等形式的軟件包。Kaseya是全球知名的IT自動化軟件解決方案提供商,Kaseya軟件自動部署系統(tǒng)允許IT專業(yè)人士通過Web平臺,便捷、高效地監(jiān)控、管理和維護分布式的IT基礎(chǔ)設(shè)施。 Kaseya軟件自動部署系統(tǒng)的宗旨是為IT管理員的需求降低復(fù)雜度、提高生產(chǎn)率,具有強大、安全的特點,同時擁有良好的用戶體驗。該系統(tǒng)的軟件部署過程分為兩個部分,首先是將指定的軟件包通過后臺分發(fā)到目標(biāo)機器,然后再將軟件部署的命令進行分發(fā),目標(biāo)機器根據(jù)接收到的命令對軟件包進行部署。當(dāng)前,Kaseya只支持Windows環(huán)境下的軟件部署??偠灾?,WPKG和Kaseya都在軟件自動化部署方面做出了巨大的探索,并取得了一定的成績。然而,它們還存在以下缺陷(I)WPKG和Kaseya僅局限于Windows環(huán)境下的軟件部署,而目前的云計算平臺大多采用了 Linux/Unix操作系統(tǒng)環(huán)境。(2) WPKG和Kaseya 不支持依賴軟件部署。然而,在云計算平臺中,每臺計算節(jié)點上往往需要部署多個軟件,而軟件之間存在依賴關(guān)系的現(xiàn)象非常普遍。C3)WPKG和Kaseya的部署效率不高。云計算平臺需要能夠快速構(gòu)建滿足用戶應(yīng)用需求的分布式軟件環(huán)境,一般涉及成千上萬臺機器節(jié)點, 這就對部署效率提出了非常高的要求。因此,目前它們還不能滿足快速構(gòu)建云計算環(huán)境軟件部署的需求。

發(fā)明內(nèi)容本發(fā)明的目的在于提供一種云計算環(huán)境下的軟件部署系統(tǒng)及部署方法,該系統(tǒng)基于工作流技術(shù),支持Windows和Linux操作系統(tǒng)下的軟件自動部署,支持依賴軟件部署,能夠彌補現(xiàn)有軟件部署系統(tǒng)的通用性和效率等方面的不足,能夠幫助用戶在云計算環(huán)境下高效地構(gòu)建大規(guī)模分布式軟件系統(tǒng)。為了實現(xiàn)上述目的,本發(fā)明一種云計算環(huán)境下的軟件部署系統(tǒng)采用如下技術(shù)方案一種云計算環(huán)境下基于工作流的軟件部署系統(tǒng),包括用戶接口層、系統(tǒng)邏輯層和云資源層;所述用戶接口層是所述軟件部署系統(tǒng)對外界用戶提供的基于Web頁面的使用接口,該用戶接口層用于用戶描述軟件部署規(guī)劃、定義軟件之間的依賴關(guān)系、查詢目標(biāo)機器節(jié)點狀態(tài)、描述軟件屬性和監(jiān)控軟件部署過程;所述系統(tǒng)邏輯層用于解析用戶提交的軟件部署規(guī)劃文件,然后按照用戶的部署規(guī)劃,將軟件包部署到遠程的云資源節(jié)點上;所述云資源層用于軟件部署。本發(fā)明進一步的改進在于用戶接口層包括Web客戶端,Web客戶端包括軟件部署規(guī)劃定義模塊、依賴軟件流程定義模塊、目標(biāo)機器監(jiān)控模塊、軟件描述模塊和部署狀態(tài)監(jiān)控模塊;所述軟件部署規(guī)劃定義模塊用于描述軟件部署規(guī)劃,最后生成軟件部署規(guī)劃文件,該文件記錄了軟件組件和云資源節(jié)點之間的對應(yīng)關(guān)系;所述依賴軟件流程定義模塊用于描述軟件組件之間的安裝次序;所述目標(biāo)機器監(jiān)控模塊用于了解遠程云資源節(jié)點的運行狀態(tài);所述軟件描述模塊用于填寫軟件的各項屬性,生成軟件描述文件;所述部署狀態(tài)監(jiān)控模塊用于查詢軟件組件的運行狀態(tài)和軟件部署記錄。本發(fā)明進一步的改進在于所述系統(tǒng)邏輯層包括軟件庫、軟件部署核心和信息中心;所述軟件庫用于提供磁盤存儲空間,來存儲基礎(chǔ)軟件和應(yīng)用軟件;所述信息中心用于記錄軟件包信息、云資源物理節(jié)點屬性和狀態(tài)監(jiān)控信息、軟件實時部署記錄;所述軟件部署核心用于解析用戶提交的軟件部署規(guī)劃文件,然后按照用戶的部署規(guī)劃,將軟件包部署到遠程的云資源節(jié)點上去。本發(fā)明進一步的改進在于所述軟件部署核心包括軟件重構(gòu)工具、目標(biāo)機器管理模塊、部署管理器、工作流引擎、數(shù)據(jù)傳輸模塊、軟件配置模塊和安裝檢驗?zāi)K;所述軟件重構(gòu)工具用于提取某一 Windows節(jié)點上的圖形交互式安裝軟件生成安裝文件包、配置文件、注冊表屬性信息,然后生成安裝鏡像文件包,最后將軟件鏡像復(fù)制到遠端云計算節(jié)點上;所述目標(biāo)機器管理模塊用于根據(jù)用戶需求,在遠程云資源中預(yù)留機器節(jié)點,并在目標(biāo)節(jié)點上為用戶創(chuàng)建邏輯用戶并授權(quán);所述部署管理器用于接收來自軟件部署規(guī)劃定義模塊描述好的軟件部署規(guī)劃文件,然后解析它,依照其定義,從軟件庫中選擇需要的軟件包,然后通過數(shù)據(jù)傳輸模塊將軟件包傳輸?shù)竭h端選擇好的云資源節(jié)點上,并開啟軟件部署流程;所述工作流引擎用于接收來自依賴軟件流程定義模塊的描述文件,然后解析該文件獲得依賴語義,然后依照其工作流邏輯進行軟件部署;所述數(shù)據(jù)傳輸模塊用于傳輸部署管理器從軟件庫中選擇的軟件包給遠端選擇好的云資源節(jié)點;所述軟件配置模塊用于執(zhí)行軟件描述文件中配置腳本,以完成軟件環(huán)境變量配置;所述安裝驗證模塊用于執(zhí)行驗證腳本來進行安裝完整性和正確性驗證。本發(fā)明進一步的改進在于遠端云計算節(jié)點的操作系統(tǒng)與所述軟件重構(gòu)工具提取的Windows節(jié)點的操作系統(tǒng)相兼容。本發(fā)明進一步的改進在于每個目標(biāo)節(jié)點心跳式地向目標(biāo)機器管理模塊報告該機器目前的實時狀態(tài)信息。本發(fā)明進一步的改進在于云資源層包括若干預(yù)先安裝Windows或Linux操作系統(tǒng)的目標(biāo)節(jié)點,目標(biāo)節(jié)點須配置網(wǎng)絡(luò),Linux系統(tǒng)開放SSH端口 22,Windows系統(tǒng)開放IPC 和 WMI 端口 139,445,135ο為了實現(xiàn)上述目的,本發(fā)明一種云計算環(huán)境下的軟件部署系統(tǒng)的軟件部署方法采用如下技術(shù)方案一種云計算環(huán)境下基于工作流的軟件部署系統(tǒng)的軟件部署方法,包括以下步驟(1)、用戶通過軟件部署規(guī)劃定義模塊(11)來描述軟件部署規(guī)劃,最后生成軟件部署規(guī)劃文件,該文件詳細地記錄了軟件組件和云資源節(jié)點之間的對應(yīng)關(guān)系;部署管理器 (24)接收來自軟件部署規(guī)劃定義模塊(11)描述好的軟件部署規(guī)劃文件,然后解析它,依照其定義,從軟件庫中選擇需要的軟件包,然后通過數(shù)據(jù)傳輸模塊06)將軟件包傳輸?shù)竭h端選擇好的云資源節(jié)點上,并開啟軟件部署流程;(2)解包在選擇好的云資源節(jié)點上解壓縮軟件包,分離出軟件安裝文件、配置屬性文件、軟件描述文件;(3)安裝環(huán)境檢查解析軟件描述文件,根據(jù)軟件運行環(huán)境配置要求檢查軟硬件屬性;(4)依賴軟件檢查解析軟件描述文件,檢查該軟件的依賴軟件是否已經(jīng)成功安裝;(5)安裝解析軟件描述文件,依照軟件部署腳本安裝本軟件;(6)配置軟件完成后,根據(jù)軟件描述文件,在遠端節(jié)點上進行環(huán)境配置;(7)啟動環(huán)境配置完成后,啟動軟件進程,使軟件處于運行態(tài);(8)安裝成功性驗證軟件進程被啟動后,執(zhí)行驗證腳本,進行安裝完整性和正確性驗證,即檢查軟件是否如期望般成功運行,是否安裝成功。本發(fā)明進一步的改進在于步驟( 中檢查軟硬件屬性包括檢查CPU頻率、磁盤容量、操作系統(tǒng)類型、文件類型。本發(fā)明進一步的改進在于步驟(6)中在遠端節(jié)點上進行環(huán)境配置包括設(shè)置注冊表、設(shè)置守護進程、開機服務(wù)加載、配置線程數(shù)目。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果(1)支持Windows和Linux操作系統(tǒng)下的軟件自動部署。針對Windows操作系統(tǒng),本系統(tǒng)可以提取軟件在Windows系統(tǒng)中安裝后形成的安裝文件、配置文件、注冊表屬性等信息,然后生成安裝鏡像文件,最后能夠?qū)④浖R像“克隆”到遠端云計算節(jié)點上。針對Linux操作系統(tǒng),本系統(tǒng)提供了軟件描述模版,基于此,每個軟件都會附帶一個軟件描述文件。解析該軟件描述文件,遵照軟件安裝腳本,本系統(tǒng)可以在Linux操作系統(tǒng)下自動地部署軟件包。(2)提供軟件部署完整性、正確性驗證。無論在Windows還是在Linux環(huán)境下,本系統(tǒng)都提供安裝前環(huán)境驗證、軟件依賴驗證、安裝完成后自動配置環(huán)境變量、軟件進程啟動、安裝正確性檢驗等。(3)基于工作流技術(shù),支持依賴軟件自動部署。本系統(tǒng)支持在一臺機器上一次性部署多個軟件。根據(jù)用戶選擇的軟件列表,本系統(tǒng)分析每個軟件的描述文檔,并解析出軟件之間的依賴關(guān)系,并自動生成DAG工作流定義。 在工作流引擎的幫助下,本系統(tǒng)能夠按照工作流定義自動部署存在依賴關(guān)系的多個軟件包。(4)支持多機并發(fā)傳輸和部署軟件包,提高了部署效率。為了提高效率,本系統(tǒng)采用多機并發(fā)傳輸機制,將生成的軟件安裝包并發(fā)地傳輸?shù)侥繕?biāo)機器;在各目標(biāo)機器上,并發(fā)地通過軟件部署腳本進行部署。這將極大地縮短部署時間,提高部署效率。(5)支持軟件自動反部署。軟件的反部署是部署的逆過程。本系統(tǒng)通過部署記錄和反部署腳本將目標(biāo)機器自動還原為部署之前的狀態(tài)。

圖1為本發(fā)明云計算環(huán)境的軟件部署系統(tǒng)的拓撲結(jié)構(gòu)示意圖;圖2為本發(fā)明云計算環(huán)境的軟件部署系統(tǒng)的邏輯結(jié)構(gòu);圖3為本發(fā)明云計算環(huán)境下軟件部署系統(tǒng)的模塊結(jié)構(gòu)示意圖;圖4為軟件描述文件模板;圖5為單個軟件部署流程;圖6為軟件依賴實例。
具體實施方式下面結(jié)合附圖對本發(fā)明做進一步詳細描述。
圖1給出了本發(fā)明一種云計算環(huán)境下基于工作流的軟件部署系統(tǒng)的拓撲結(jié)構(gòu)。如圖所示,普通用戶通過Web瀏覽器訪問本發(fā)明的軟件部署系統(tǒng),然后用戶制定部署規(guī)劃(即在軟件組件和云資源之間建立部署計劃)。本軟件部署系統(tǒng)位于軟件部署服務(wù)器上,它負責(zé)將用戶規(guī)劃的軟件組件部署到遠端的云資源節(jié)點上。云資源包括了兩類預(yù)先安裝了宿主操作系統(tǒng)(Windows和Linux)的目標(biāo)機器節(jié)點。對于Windows目標(biāo)機器,本系統(tǒng)采取IPC和 WMI技術(shù)相結(jié)合的通信方式;而對于Linux目標(biāo)機器,本系統(tǒng)則采用SSH技術(shù)的通信方式。如圖2給出的系統(tǒng)邏輯結(jié)構(gòu)所示,整個系統(tǒng)包括三層用戶接口層、系統(tǒng)邏輯層和云資源層。用戶接口層是本系統(tǒng)對外界用戶提供的基于Web頁面的使用接口,它主要幫助用戶描述軟件部署規(guī)劃、定義軟件之間的依賴關(guān)系、查詢目標(biāo)機器節(jié)點狀態(tài)、描述軟件屬性、 監(jiān)控軟件部署過程等。系統(tǒng)邏輯層是本系統(tǒng)的核心,它主要負責(zé)解析用戶提交的軟件部署規(guī)劃文件,然后按照用戶的部署規(guī)劃,將軟件包部署到遠程的云資源節(jié)點上去。云資源層代表了處于云計算中心中的物理資源,包括了大量計算資源和存儲資源,例如,超級計算機、集群、SAN等。如圖3給出基于工作流的軟件部署系統(tǒng)的模塊結(jié)構(gòu)示意圖。如圖3所示,Web客戶端1包括了 5個子模塊。其中,用戶通過軟件部署規(guī)劃定義模塊11來描述軟件部署規(guī)劃,最后生成軟件部署規(guī)劃文件,該文件詳細地記錄了軟件組件和云資源節(jié)點之間的對應(yīng)關(guān)系;對于需要在同一臺機器上部署的多個軟件且軟件包之間存在依賴關(guān)系的情況,用戶可以通過依賴軟件流程定義模塊12描述軟件組件之間的安裝次序(軟件依賴實例見圖6);另外,用戶可以通過目標(biāo)機器監(jiān)控模塊13查詢信息中心四中的信息,來了解遠程云資源節(jié)點的運行狀態(tài)(例如節(jié)點正常、網(wǎng)絡(luò)故障、軟件故障、節(jié)點掛起等);對于向軟件庫21中新增加的每一個軟件,本系統(tǒng)要求提供者通過軟件描述模塊14 來詳細地填寫軟件的各項屬性,包括軟件名、版本號、所需的運行環(huán)境(最低CPU時鐘頻率、 最小內(nèi)存需求、操作系統(tǒng)版本號、文件系統(tǒng)類型)等等,生成軟件描述文件,其中詳細軟件描述模板見圖4 ;通過本系統(tǒng)在遠程云資源節(jié)點上部署好軟件后,用戶可以通過部署狀態(tài)監(jiān)控模塊15查看信息中心四中的信息,進而查詢軟件組件的運行狀態(tài)和軟件部署記錄。另外,軟件庫21提供大容量的磁盤存儲空間,它用來存儲常見的基礎(chǔ)軟件和應(yīng)用軟件,如Apache、Tomcat、Mysql等,當(dāng)然,用戶也可以上傳與應(yīng)用領(lǐng)域相關(guān)的軟件與其他用戶共享。如軟件描述模塊14所示,用戶在上傳某個軟件包之前,需要根據(jù)軟件描述模版(見圖4)來提供詳細的軟件屬性信息。信息中心四負責(zé)記錄軟件包信息、云資源物理節(jié)點屬性和狀態(tài)監(jiān)控信息、軟件實時部署記錄等,以便用戶查詢相關(guān)信息。軟件部署核心2是本系統(tǒng)的核心模塊,它主要負責(zé)解析用戶提交的軟件部署規(guī)劃文件,然后按照用戶的部署規(guī)劃,將軟件包部署到遠程的云資源節(jié)點上去,它主要包括以下七個子模塊(22 觀)軟件重構(gòu)工具22只針對遠程節(jié)點為Windows環(huán)境的圖形交互式安裝軟件。在通常情況下,這類軟件需要人按照安裝提示一步步地設(shè)置,最后軟件會將一些系統(tǒng)相關(guān)信息寫入注冊表。如果沒有相關(guān)工具相助,部署這類軟件到成千上萬臺云資源節(jié)點上難度非常大。因此,用戶只要完成該類軟件在一臺Windows節(jié)點上成功安裝,軟件重構(gòu)工具22將提取該軟件生成安裝文件包、配置文件、注冊表屬性信息,然后生成安裝鏡像文件包,最后將軟件鏡像“克隆”到遠端云計算節(jié)點上。值得注意的是,遠端云資源節(jié)點上的操作系統(tǒng)須與被“克隆”的系統(tǒng)相兼容。普通用戶通過部署軟件包以構(gòu)建云服務(wù),然而,針對大量的目標(biāo)機器節(jié)點,用戶需要對目標(biāo)機器在特定的時間段內(nèi)擁有特定的控制權(quán)限。因此,目標(biāo)機器管理模塊23負責(zé)根據(jù)用戶需求,在遠程云資源中預(yù)留機器節(jié)點(即某個時間段內(nèi)資源可供用戶使用),并在目標(biāo)節(jié)點上為用戶創(chuàng)建邏輯用戶并授權(quán)。另外,在每一臺目標(biāo)機器上,都部署了一個“探針 (probe) ”程序,它“心跳式(heart-beat) ”地向目標(biāo)機器管理模塊23報告該機器目前的實時狀態(tài)信息,如CPU利用率、內(nèi)存大小、網(wǎng)絡(luò)狀態(tài)等。接收到這些信息后,目標(biāo)機器管理模塊 23將其記錄到信息中心四中,以便隨時供目標(biāo)機器監(jiān)控模塊13和部署狀態(tài)監(jiān)控模塊15查詢。部署管理器M接收來自軟件部署規(guī)劃定義模塊11描述好的軟件部署規(guī)劃文件, 然后解析它,依照其定義,從軟件庫21中選擇需要的軟件包,然后通過數(shù)據(jù)傳輸模塊沈?qū)④浖鼈鬏數(shù)竭h端選擇好的云資源節(jié)點上,并開啟軟件部署流程(單個軟件包的部署流程見圖幻。當(dāng)一個軟件包完成部署完成后,軟件配置模塊27執(zhí)行軟件描述文件中的配置腳本(Configuratior^cript,見圖幻,以完成軟件環(huán)境變量配置,如設(shè)置注冊表、設(shè)置守護進程、開機服務(wù)加載、配置線程數(shù)目等。部署流程完成后,安裝驗證模塊觀執(zhí)行驗證腳本 (VerificationScript,見圖幻來進行安裝完整性和正確性驗證。對于依賴軟件部署的情形,工作流引擎25接收來自依賴軟件流程定義模塊12的描述文件,然后解析該文件獲得依賴語義,然后依照其工作流邏輯進行軟件部署。本系統(tǒng)中,工作流引擎25采用了開源的ActiveBPEL引擎。和單獨軟件部署相似的是,在依賴軟件部署過程中,同樣需要部署管理器M調(diào)用數(shù)據(jù)傳輸模塊沈、軟件配置模塊27、安裝檢驗?zāi)K觀的服務(wù)。圖4給出了本系統(tǒng)提供的一個通用的軟件描述模版,該模版基于XMI^chema設(shè)計。依照該模版,軟件提供者描述運行該軟件所需配置的硬件系統(tǒng)和軟件平臺信息(包括須預(yù)先安裝的依賴軟件等)。這些信息包括軟件名稱(Name)、版本號(Version)、 軟件運行環(huán)境配置要求(RunningEnvironment)、依賴軟件(D印endentSoftware)、部署腳本(D印IoymentScript)、配置腳本(ConfigurationScript)、安裝正確性驗證腳本 (VerificationScript)、反部署腳本(Und印IoymenUcript)。其中,軟件運行環(huán)境配置要求包括最低CPU頻率(MinimumCPUClockRate)、最低內(nèi)存容量(MinimumMemory)、最低可用磁盤空間(MinimumDiskCapacity)、最低網(wǎng)絡(luò)帶寬(MinimumNetworkBandwidth)、操作系統(tǒng)類型(OSVersion)、文件系統(tǒng)類型(FileSystem)。另外,依賴軟件屬性包括軟件名(Name)、依賴軟件版本(Version)、依賴軟件是否已安裝驗證腳本(VerificationScript)。通過解析軟件描述文件,本系統(tǒng)可以檢驗?zāi)繕?biāo)機器是否滿足了安裝該軟件所必須的環(huán)境參數(shù);如果是,本系統(tǒng)可以按照部署腳本進行自動化地安裝該軟件,安裝完成后,能夠?qū)ζ涫欠癜惭b成功進行驗證。否則,系統(tǒng)則拒絕軟件安裝。圖5給出了在遠程目標(biāo)節(jié)點正常的情況下(即遠程節(jié)點上已經(jīng)安裝好了宿主操作系統(tǒng),并配置好了網(wǎng)絡(luò)),單個軟件部署的基本過程,其主要包含以下幾個步驟
(1)傳輸將用戶指定的軟件包從軟件庫中傳輸?shù)侥繕?biāo)機器;(2)解包在目標(biāo)機器節(jié)點上解壓縮軟件包,分離出軟件安裝文件、配置屬性文件、軟件描述文件;(3)安裝環(huán)境檢查解析軟件描述文件,根據(jù)軟件運行環(huán)境配置要求檢查軟硬件屬性,如CPU頻率、磁盤容量、操作系統(tǒng)類型、文件類型等;(4)依賴軟件檢查解析軟件描述文件,檢查該軟件的依賴軟件是否已經(jīng)成功安裝;例如,Tomcat依賴于JDK,因此安裝Tomcat前,需要先驗證是否已經(jīng)安裝了 JDK ;(5)安裝解析軟件描述文件,依照軟件部署腳本安裝本軟件;(6)配置軟件完成后,根據(jù)軟件描述文件,在遠端節(jié)點上進行環(huán)境配置,如設(shè)置注冊表、設(shè)置守護進程、開機服務(wù)加載、配置線程數(shù)目等;(7)啟動環(huán)境配置完成后,啟動軟件進程,使軟件處于運行態(tài);(8)安裝成功性驗證軟件進程被啟動后,執(zhí)行驗證腳本,進行安裝完整性和正確性驗證,即檢查軟件是否如期望般成功運行,是否安裝成功。其中,在三個檢查驗證環(huán)節(jié),如果任何一個環(huán)節(jié)驗證結(jié)果顯示出現(xiàn)問題(如操作系統(tǒng)版本不符、所依賴的軟件還未安裝、安裝成功性驗證失敗),安裝流程將停止前進,并報告可能發(fā)生的異常。根據(jù)異常類型,故障排除程序?qū)L試解決,若故障被排除,則返回原驗證環(huán)節(jié),繼續(xù)執(zhí)行;否則,若故障無法排除,則向用戶報告,請求人工解決。圖6給出了一個軟件之間存在依賴關(guān)系的實例示意圖。在向一個遠程目標(biāo)機器上構(gòu)建軟件平臺時,往往可能涉及多個軟件包,而且,這些軟件之間存在依賴關(guān)系的現(xiàn)象也非常普遍。在這種情況下,用戶必須花費大量時間和精力依照依賴關(guān)系,按次序去部署這些依賴軟件。例如,如圖6所示,軟件包php5-mysql的依賴關(guān)系具有4層次,共有8個依賴軟件。本系統(tǒng)基于工作流技術(shù),支持依賴軟件自動部署。根據(jù)用戶選擇的軟件列表,本系統(tǒng)分析每個軟件的描述文檔,并解析出軟件之間的依賴關(guān)系,并自動生成DAG工作流定義。在工作流引擎的幫助下,本系統(tǒng)能夠按照工作流定義自動部署存在依賴關(guān)系的多個軟件包。因此,從宏觀方面來看,本系統(tǒng)能夠并發(fā)地向所有機器節(jié)點傳輸軟件包,并可以并發(fā)執(zhí)行軟件部署;從微觀方面來看,在每臺物理節(jié)點上,倘若多個軟件包之間存在依賴關(guān)系,則可以按照DAG工作流模型實施基于工作流的依賴軟件部署。實例本系統(tǒng)使用了一個集群服務(wù)器的4個節(jié)點來安裝。其系統(tǒng)實例軟硬件配置如表1 所示。如表1所示,集群服務(wù)器的Nodel用來安裝用戶Web客戶端(包括子模塊11_15), Node2安裝系統(tǒng)核心模塊(包括子模塊22-28),Node3用來安裝軟件庫21,Node4用來安裝信息中心四。表1系統(tǒng)實例軟硬件配置表
權(quán)利要求
1.一種云計算環(huán)境下基于工作流的軟件部署系統(tǒng),其特征在于,包括用戶接口層、系統(tǒng)邏輯層和云資源層;所述用戶接口層是所述軟件部署系統(tǒng)對外界用戶提供的基于Web頁面的使用接口,該用戶接口層用于用戶描述軟件部署規(guī)劃、定義軟件之間的依賴關(guān)系、查詢目標(biāo)機器節(jié)點狀態(tài)、描述軟件屬性和監(jiān)控軟件部署過程;所述系統(tǒng)邏輯層用于解析用戶提交的軟件部署規(guī)劃文件,然后按照用戶的部署規(guī)劃, 將軟件包部署到遠程的云資源節(jié)點上; 所述云資源層用于軟件部署。
2.如權(quán)利要求1所述的一種云計算環(huán)境下基于工作流的軟件部署系統(tǒng),其特征在于, 用戶接口層包括Web客戶端(l),Web客戶端(1)包括軟件部署規(guī)劃定義模塊(11)、依賴軟件流程定義模塊(1 、目標(biāo)機器監(jiān)控模塊(13)、軟件描述模塊(14)和部署狀態(tài)監(jiān)控模塊 (15);所述軟件部署規(guī)劃定義模塊(11)用于描述軟件部署規(guī)劃,最后生成軟件部署規(guī)劃文件,該文件記錄了軟件組件和云資源節(jié)點之間的對應(yīng)關(guān)系;所述依賴軟件流程定義模塊(1 用于描述軟件組件之間的安裝次序; 所述目標(biāo)機器監(jiān)控模塊(1 用于了解遠程云資源節(jié)點的運行狀態(tài); 所述軟件描述模塊(14)用于填寫軟件的各項屬性,生成軟件描述文件; 所述部署狀態(tài)監(jiān)控模塊(1 用于查詢軟件組件的運行狀態(tài)和軟件部署記錄。
3.如權(quán)利要求2所述的一種云計算環(huán)境下基于工作流的軟件部署系統(tǒng),其特征在于, 所述系統(tǒng)邏輯層包括軟件庫(21)、軟件部署核心( 和信息中心09);所述軟件庫用于提供磁盤存儲空間,來存儲基礎(chǔ)軟件和應(yīng)用軟件; 所述信息中心09)用于記錄軟件包信息、云資源物理節(jié)點屬性和狀態(tài)監(jiān)控信息、軟件實時部署記錄;所述軟件部署核心( 用于解析用戶提交的軟件部署規(guī)劃文件,然后按照用戶的部署規(guī)劃,將軟件包部署到遠程的云資源節(jié)點上去。
4.如權(quán)利要求3所述的一種云計算環(huán)境下基于工作流的軟件部署系統(tǒng),其特征在于, 所述軟件部署核心( 包括軟件重構(gòu)工具0 、目標(biāo)機器管理模塊、部署管理器04)、 工作流引擎(25)、數(shù)據(jù)傳輸模塊(沈)、軟件配置模塊(XT)和安裝檢驗?zāi)K08);所述軟件重構(gòu)工具02)用于提取某一 Windows節(jié)點上的圖形交互式安裝軟件生成的安裝文件包、配置文件、注冊表屬性信息,然后生成安裝鏡像文件包,最后將軟件鏡像復(fù)制到遠端云計算節(jié)點上;所述目標(biāo)機器管理模塊03)用于根據(jù)用戶需求,在遠程云資源中預(yù)留機器節(jié)點,并在目標(biāo)節(jié)點上為用戶創(chuàng)建邏輯用戶并授權(quán);所述部署管理器04)用于接收來自軟件部署規(guī)劃定義模塊(11)描述好的軟件部署規(guī)劃文件,然后解析它,依照其定義,從軟件庫中選擇需要的軟件包,然后通過數(shù)據(jù)傳輸模塊06)將軟件包傳輸?shù)竭h端選擇好的云資源節(jié)點上,并開啟軟件部署流程;所述工作流引擎0 用于接收來自依賴軟件流程定義模塊(1 的描述文件,然后解析該文件獲得依賴語義,然后依照其工作流邏輯進行軟件部署;所述數(shù)據(jù)傳輸模塊06)用于傳輸部署管理器04)從軟件庫中選擇的軟件包給遠端選擇好的云資源節(jié)點;所述軟件配置模塊(XT)用于執(zhí)行軟件描述文件中配置腳本,以完成軟件環(huán)境變量配置;所述安裝驗證模塊08)用于執(zhí)行驗證腳本來進行安裝完整性和正確性驗證。
5.如權(quán)利要求4所述的一種云計算環(huán)境下基于工作流的軟件部署系統(tǒng),其特征在于, 遠端云計算節(jié)點的操作系統(tǒng)必須與所述軟件重構(gòu)工具02)提取的Windows節(jié)點的操作系統(tǒng)相兼容。
6.如權(quán)利要求4所述的一種云計算環(huán)境下基于工作流的軟件部署系統(tǒng),其特征在于, 每個目標(biāo)節(jié)點心跳式地向目標(biāo)機器管理模塊03)報告該機器目前的實時狀態(tài)信息。
7.如權(quán)利要求1所述的一種云計算環(huán)境下基于工作流的軟件部署系統(tǒng),其特征在于, 云資源層包括若干預(yù)先安裝Windows或Linux操作系統(tǒng)的目標(biāo)節(jié)點,目標(biāo)節(jié)點須配置網(wǎng)絡(luò), Linux 系統(tǒng)開放 SSH 端口 22,Windows 系統(tǒng)開放 IPC 和 WMI 端口 139、445、135。
8.如權(quán)利要求4所述的一種云計算環(huán)境下基于工作流的軟件部署系統(tǒng)的軟件部署方法,其特征在于,包括以下步驟(1)、用戶通過軟件部署規(guī)劃定義模塊(11)來描述軟件部署規(guī)劃,最后生成軟件部署規(guī)劃文件,該文件詳細地記錄了軟件組件和云資源節(jié)點之間的對應(yīng)關(guān)系;部署管理器04) 接收來自軟件部署規(guī)劃定義模塊(11)描述好的軟件部署規(guī)劃文件,然后解析它,依照其定義,從軟件庫中選擇需要的軟件包,然后通過數(shù)據(jù)傳輸模塊06)將軟件包傳輸?shù)竭h端選擇好的云資源節(jié)點上,并開啟軟件部署流程;(2)解包在選擇好的云資源節(jié)點上解壓縮軟件包,分離出軟件安裝文件、配置屬性文件、軟件描述文件;(3)安裝環(huán)境檢查解析軟件描述文件,根據(jù)軟件運行環(huán)境配置要求檢查軟硬件屬性;(4)依賴軟件檢查解析軟件描述文件,檢查該軟件的依賴軟件是否已經(jīng)成功安裝;(5)安裝解析軟件描述文件,依照軟件部署腳本安裝本軟件;(6)配置軟件完成后,根據(jù)軟件描述文件,在遠端節(jié)點上進行環(huán)境配置;(7)啟動環(huán)境配置完成后,啟動軟件進程,使軟件處于運行態(tài);(8)安裝成功性驗證軟件進程被啟動后,執(zhí)行驗證腳本,進行安裝完整性和正確性驗證,即檢查軟件是否如期望般成功運行,是否安裝成功。
9.如權(quán)利要求8所述的軟件部署方法,其特征在于,步驟(3)中檢查軟硬件屬性包括檢查CPU頻率、磁盤容量、操作系統(tǒng)類型、文件類型。
10.如權(quán)利要求8所述的軟件部署方法,其特征在于,步驟(6)中在遠端節(jié)點上進行環(huán)境配置包括設(shè)置注冊表、設(shè)置守護進程、開機服務(wù)加載、配置線程數(shù)目。
全文摘要
本發(fā)明提供一種云計算環(huán)境下基于工作流的軟件部署系統(tǒng)及部署方法,軟件部署系統(tǒng)包括用戶接口層、系統(tǒng)邏輯層和云資源層;用戶接口層用于用戶描述軟件部署規(guī)劃、定義軟件之間的依賴關(guān)系、查詢目標(biāo)機器節(jié)點狀態(tài)、描述軟件屬性和監(jiān)控軟件部署過程;系統(tǒng)邏輯層用于解析用戶提交的軟件部署規(guī)劃文件,然后按照用戶的部署規(guī)劃,將軟件包部署到遠程的云資源節(jié)點上;云資源層用于軟件部署。本發(fā)明具有以下優(yōu)點支持Windows和Linux操作系統(tǒng)下的軟件自動部署;提供軟件部署完整性、正確性驗證;基于工作流技術(shù),支持依賴軟件自動部署;支持多機并發(fā)傳輸和部署軟件包,提高了部署效率;支持軟件自動反部署。
文檔編號G06F9/46GK102404381SQ20111025887
公開日2012年4月4日 申請日期2011年9月2日 優(yōu)先權(quán)日2011年9月2日
發(fā)明者葉斌, 姚超, 張興軍, 曹海軍, 朱霍, 樊源泉, 董小社, 趙旭, 馬冬冬 申請人:西安交通大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1