專利名稱:Web應用部署約束自動檢測方法
技術領域:
本發(fā)明涉及一種部署約束檢測的方法,尤其涉及一種面向Web應用的部署約束自 動檢測方法,屬于計算機軟件技術領域。
背景技術:
部署(Deployment)是計算機軟件生命周期的一個重要階段,介于軟件開發(fā)完成 并交付到軟件系統(tǒng)成功運行之間,主要承擔軟件系統(tǒng)運行前的準備工作。部署的直接目標 是保障軟件系統(tǒng)能夠正確安裝和運行,同時滿足使用者的相關需求。隨著軟件技術、軟件形 態(tài)和軟件規(guī)模的發(fā)展,基于模型的部署方法成為軟件部署的主要方法之一。軟件部署涉及部署方案的設計和部署約束的檢查。其中,部署方案刻畫了軟件部 署時的物理拓撲結構、構成軟件應用系統(tǒng)的組件的安裝位置和關聯(lián)關系、運行環(huán)境的配置 信息等,是軟件部署所期望達到的目標,是部署過程中實際執(zhí)行各種操作的參考依據;部署 約束定義了部署過程和部署方案必須滿足的限制和遵循的規(guī)則,主要涉及軟件部署時需要 考慮的資源依賴、功能/非功能需求和最佳實踐等方面。在部署方案的設計和規(guī)劃過程中, 可能存在對已聲明約束的違背情況,如不滿足約束所定義的資源需求、參數(shù)值匹配。部署 約束檢測用以檢驗部署方案對需要遵循的限制和規(guī)則是否違背,能夠盡早的發(fā)現(xiàn)并定位部 署方案中存在的問題,有助于提高部署方案的正確性。多層架構的Web應用已成為當前主流的網絡應用軟件,Web應用具有開放、動態(tài)和 分布的特點,系統(tǒng)的規(guī)模和復雜度也不斷增大。Web應用和運行環(huán)境的異構性使得約束類型 更為復雜多樣,系統(tǒng)規(guī)模的擴大和分散導致約束數(shù)量大大增加,這都為部署約束檢測帶來 了更多的困難。當前已有的發(fā)明專利和學術研究對軟件系統(tǒng)部署問題給予了很多的關注并形成 了相關的成果。一些發(fā)明專利提出了軟件和應用系統(tǒng)相關的部署方法,具有代表性的包括一種 普適計算環(huán)境下部署與配置方法(申請?zhí)?200810143799. 4)、分布式計算機系統(tǒng)架構及分 布式應用的設計、部署和管理(申請?zhí)?00410033027. 7)、分布式軟件系統(tǒng)的部署方法(申 請?zhí)?00610099028. 0)、具有依賴關系組件的部署關系和方法(申請?zhí)?00610138332. 1) 和軟件部署方法和系統(tǒng)及軟件部署服務器和用戶服務器(申請?zhí)?200710195500. 5)等,上 述發(fā)明專利主要針對不同環(huán)境和不同類型的軟件系統(tǒng)提出對應的部署方法或系統(tǒng)實現(xiàn),主 要用以解決部署過程困難、版本不一致等問題,提高部署過程的自動化程度和可擴展性。但 是,現(xiàn)有的發(fā)明專利沒有針對Web應用系統(tǒng)部署過程中涉及到的約束提出專門的自動化檢 測方法,難以保證部署方案的正確性。在學術研究方面,面向SOA應用部署和配置的聲明式約束框架(參見文獻Luo J, Li Y, Qiu J, Chen Y. Declarative Constraint Framework for SOA Deployment and Configuration. In ICWS,08,pages 637-644,2008)將部署模型所描述的部署方案作為 約束的應用和驗證對象,通過約束模板和約束驗證等幾個關鍵步驟來完成模型所描述的部署方案的約束生成和驗證。該方法將約束模板轉換為OCL對象約束語言(參見文獻 http://www. omg. org/spec/0CL/2. 0/PDF)表示的形式化約束描述并進行解析和驗證,但是 基于約束模板的約束生成和實例化過程仍需要人工參與,自動化程度較弱,同時能夠驗證 的約束類型也較為有限。基于軟件資源配置模型的約束驗證提出了部署配置過程中資源 和參數(shù)配置層面的約束驗證方法(參見文獻Li Y,Qiu J,Sun Kff, Chen Y. Modeling and VerifyingConfiguration in Service Deployment. In SCC' 06, pages 238-248, 2006)禾 用基于軟件資源配置模型表示的參數(shù)配置信息和關聯(lián)關系來進行約束驗證,但僅關注部署 配置過程中資源和參數(shù)配置的約束檢測。因此,當前針對Web應用系統(tǒng)的部署約束驗證工 作在約束生成和檢測的自動化程度方面還有待提高,難以支持約束的自動生成,同時所覆 蓋的約束類型也較為有限。
發(fā)明內容
本發(fā)明的目的是克服上述現(xiàn)有技術中約束驗證檢測自動化程度較弱的缺點,提出 一種新的Web應用部署中約束的自動檢測方法,能夠針對Web應用的部署方案模型實施較 為全面的、自動化的部署約束檢測,提高設計階段的部署方案的正確性,從而避免實際執(zhí)行 Web應用部署操作時由于對部署約束的違背而導致的部署失敗。本發(fā)明的技術方案如
圖1所示,Web應用部署約束自動檢測方法,包括以下幾個步 驟1)建立Web應用的部署方案模型D(Q) = <U,R>,Ω表示Web應用,D( Ω )為一個 二元組,其中U表示為部署方案模型中所涉及的實體集合Iu1,…,un},R表示為部署方案模 型中實體之間的關系集合Ir1, ···,&}。所述實體集合Iu1,…,un}的元素Ui = <ID,Name, Type, Protocol, InterfaceSet, CapabilitySet, RequirementSet, StateSet, AttrSet〉, Ui e {Ul,…,un},表示Web應用Ω涉及的部署實體,其中部署方案模型實體元素對應的元 組分量分別表示實體的標識、名稱、協(xié)議、接口、能力,需求、狀態(tài)和屬性。所述關系集合的元 素 rj =〈ID,Name,Type, SourcelD,TargetID,Volume〉,rs e Ir1,…,rm},以有向邊表示 Web應用Ω部署時實體間的關系,其中部署方案模型實體關系對應的元組分量分別表示關 系的標識、名稱、類型、源端實體、目的端實體和該類型關系能夠實例化的數(shù)量。部署方案模型刻畫了所期望的Web應用的最終部署狀態(tài),包括組件的安裝位置、 參數(shù)的配置情況、實體間的關聯(lián)關系等。部署方案模型確定了構成Web應用的組件(如 EJB、WebSerViCe)、應用運行環(huán)境(如計算機、Java虛擬機、Web容器)、資源(如數(shù)據源、 內存、線程)和服務(如日志服務、事務服務、監(jiān)控服務)等實體,同時模型還確定各實體 在部署時存在的關聯(lián)關系。2)根據Web應用的部署方案模型D(Q),檢測Web應用部署約束,Web應用部署約 束是Web應用配置約束、應用組件依賴約束和Web應用組件部署描述約束中的一種或幾種 的組合。三大類約束其實是涉及到部署方案的不同層次的,部署描述約束和依賴約束和應 用配置約束分別從體系結構到參數(shù)配置,按照“由高到底,由粗到細”的層次和粒度覆蓋了 部署方案模型的多個方面。檢測Web應用配置約束(Configuration Constraint),應用配置約束是部署過程 中類型較多且最為復雜的一類,主要限制和規(guī)范應用在部署時必須滿足的資源依賴、功能/非功能需求以及部署時考慮的策略和最佳實現(xiàn)。首先確定配置約束模板,第二步建立配置約束模板與部署方案中實體間關聯(lián)關系的映射mapping ,CP, α), CP為配置約束模板,R為關聯(lián)關系,α為映射操作;第三步遍歷部署方案模型D ( Ω ),得到關聯(lián)關系集合R和R所關聯(lián)的實體集合U, 根據映射(R,CP, α)綁定對應的約束模板,將遍歷獲得的部署方案實例代入各個約束模 板,得到當前Web應用部署所需要滿足的配置約束集合。配置約束模板的實例化時,遍歷部署方案模型,得到關聯(lián)關系集合R = {Rhos, Rdep, RltJ,根據R的類型細分為多個類型的關系子集合,同時獲得R所關聯(lián)的實體集合U的信息。第四步將配置約束集合轉換為OCL語言形式,采用OCL解析器逐一自動執(zhí)行驗證。 OCL解析器會給出結果true或false,分別表示滿足或違背相應的配置約束。所述實體的類型包括應用組件、運行環(huán)境、資源和服務,即Type e {App,Env, Res, Ser} ο所述實體關系的類型包括實體間的依賴關系(D印endency)、Web應用組件和運行 環(huán)境間的宿主關系(Hosting)、實體與實體間的位置關系(Location)和實體間的包含關系 (Containning)。艮口 Type e {Dep, Hos, Loc, Con}。關系元素中的關系源/目的標識與當前關系所作用的實體相對應,即SourceID/ TargetID = Ui. ID, Ui ^ Iu1,…,un}。所述配置約束包括唯一性約束(Unique Constraint)、等價性約束 (EqualityConstraint) λ ^ W ^ ^ (Compability Constraint)M (Resource Constraint)禾口位置約束(Location Constraint)。在建立配置約束模板與部署方案中實體間關聯(lián)關系的映射時,所述映射方式為部署方案模型中的宿主關系與唯一性約束或兼容性約束建立映射關系;依賴關系與資源約束或等價性約束建立映射關系;位置關系與位置約束建立映射關系。唯一性約束限制了部署實體在指定范圍內的不可重復性,表示對于部署方案模型 中在同一環(huán)境/容器內容的部署實體,其標識必須唯一,如部署環(huán)境中物理節(jié)點的IP地址 必須唯一;同一 EJB容器環(huán)境內,EJB組件的JNDI標識唯一等。所述唯一性約束的配置約 束模板為=CPunit^aD1,…,IDk, Scope〉,其中,ID1,…,IDk為部署實體的唯一性標識集合, Scope = um e U,且通常 Um. Type = Env0所述等價性約束的配置約束模板為CPeiUal<Capability,Requirement),是指 兩個部署實體之間,在實體提供的服務和需求方面,對應的參數(shù)配置必須一致。其中, Capability指服務提供實體所提供功能對應的參數(shù),Requirement則對應于功能需求方的 配置參數(shù)所述資源約束的配置約束模板為CPm—^Capability,ReqSet>,是指組件對資源 的需求總和應小于所提供的資源數(shù)量。其中,Capability指資源提供實體所提供資源總量, ReqSet則對應于資源需求方的資源需求總量所述兼容性約束模板為CP^—anterfaceSeti,InterfaceSet2),是指當Web應 用要部署的組件與運行環(huán)境中已有組件相同但版本不同時,進行組件的替換和升級時新的組件需要兼容被替換組件。其中,InterfaceSet1為低版本組件的接口集合,InterfaceSet2 為新版本組件的接口集合所述位置約束模板為CPltjeatiJu1, u2, target, locType〉,是指由位置關系約束 必須兩應用組件部署在同一容器內或必須不處于同一容器中。其中,U1, u2 e U,為應用 組件;target e U,為組件容器;IocType為位置關系類型,IocType e {Co-Location, anti-location},艮口共存或不能共存。上述各配置約束的模板定義可參見表1表1配置約束模板定義表
權利要求
Web應用部署約束自動檢測方法,包括以下步驟1)建立Web應用的部署方案模型D(Ω)=<U,R>,其中Ω為Web應用,U為實體集合{u1,…,un};R為實體之間的關聯(lián)關系集合{r1,…,rm};2)根據Web應用的部署方案模型,檢測Web應用配置約束首先確定配置約束模板,第二步建立配置約束模板與部署方案中實體間關聯(lián)關系的映射mapping(R,CP,α),CP為配置約束模板,R為關聯(lián)關系,α為映射操作;第三步遍歷部署方案模型D(Ω),得到關聯(lián)關系集合R和R所關聯(lián)的實體集合U,根據映射(R,CP,α)綁定對應的約束模板,將遍歷獲得的部署方案實例代入各個約束模板,得到當前Web應用部署所需要滿足的配置約束集合;第四步將配置約束集合轉換為OCL語言形式,采用OCL解析器逐一自動執(zhí)行驗證。
2.根據權利要求1所述的Web應用部署約束自動檢測方法,其特征在于根據部署方案 模型檢測Web應用組件依賴約束首先將部署方案模型D(Q)抽象為有向圖G,有向圖G的節(jié)點代表實體,有向邊代表實 體間的依賴關系;然后遍歷有向圖G檢測G是否滿足依賴約束。
3.根據權利要求1或2所述的Web應用部署約束自動檢測方法,其特征在于根據部署 方案模型檢測Web應用組件部署描述約束將部署描述文件和組件部署包的內容進行對比。
4.根據權利要求1所述的Web應用部署約束自動檢測方法,其特征在于所述實體的類 型包括應用組件、運行環(huán)境、資源和服務。
5.根據權利要求1所述的Web應用部署約束自動檢測方法,其特征在于所述實體關聯(lián) 關系的類型包括實體間的依賴關系、Web應用組件和運行環(huán)境間的宿主關系、實體與實體間 的位置關系和實體間的包含關系。
6.根據權利要求5所述的Web應用部署約束自動檢測方法,其特征在于所述配置約束 包括唯一性約束、等價性約束、兼容性約束、資源約束和位置約束。
7.根據權利要求6所述的Web應用部署約束自動檢測方法,其特征在于所述映射方式為部署方案模型中的宿主關系與唯一性約束或兼容性約束建立映射關系;依賴關系與資源約束或等價性約束建立映射關系;位置關系與位置約束建立映射關系。
8.根據權利要求7所述的Web應用部署約束自動檢測方法,其特征在于所述唯一性約 束的配置約束模板為=CPunit^aD1,…,IDk, Scope〉,其中,ID1,…,IDk為實體的唯一性標 識集合,Scope = um e U。
9.根據權利要求7所述的Web應用部署約束自動檢測方法,其特征在于所述等價性約 束的配置約束模板為CPequal<Capability,Requirement), Capability指服務提供實體所提 供功能的參數(shù),Requirement則對應于功能需求實體的配置參數(shù)。
10.根據權利要求7所述的Web應用部署約束自動檢測方法,其特征在于所述資源約束 的配置約束模板為CPMS。urae<Capability,ReqSetXCapability指資源提供實體所提供的資源總量,ReqSet是資源需求實體的資源需求總量。
11.根據權利要求7所述的Web應用部署約束自動檢測方法,其特征在于所述兼容性約 束模板為 CPe-^JInterfaceSeti,InterfaceSet2), InterfaceSet1 為低版本組件的接口 集合,InterfaceSet2為新版本組件的接口集合。
12.根據權利要求7所述的Web應用部署約束自動檢測方法,其特征在于所述位置約束 模板為 CPlocation<ui; u2, target, locType>, U1, U2 為應用組件;target 為組件容器;IocType 為位置關系類型。
13.根據權利要求2所述的Web應用部署約束自動檢測方法,其特征在于檢測G是否滿 足依賴約束的方法為A、遍歷G找到出度為O的節(jié)點集合Set(a);B、判斷Set(a)不為空,從Set (a)中任意取出一個節(jié)點u ;C、將節(jié)點u從G中刪除;D、找到G中依賴u的所有節(jié)點,將這些節(jié)點的出度減1;E、繼續(xù)遍歷新生成的G直至Set(a)為空,判斷G是否也為空,為空表明滿足依賴約束, 否則,表明存在依賴沖突。
全文摘要
本發(fā)明公開了一種Web應用部署約束自動檢測方法,包括以下步驟1)建立Web應用的部署方案模型D(Ω)=<U,R>,Ω為Web應用,U為部署方案的實體集合;R為實體之間的關系集合;2)根據Web應用的部署方案模型,檢測應用部署約束。本發(fā)明的方法,可以在完成Web應用部署方案模型的設計后,對多種類型、多個層面的部署約束自動實施檢測,在檢測到當前Web應用對部署約束的違背后,能夠自動定位并提示用戶進行Web應用部署方案的修改來保證對部署約束的滿足,從而確保后續(xù)依據部署方案進行部署操作執(zhí)行的成功,大大提高了Web應用的部署效率和正確性。
文檔編號G06F11/36GK101957794SQ20101028936
公開日2011年1月26日 申請日期2010年9月21日 優(yōu)先權日2010年9月21日
發(fā)明者陳偉, 魏峻, 黃濤 申請人:中國科學院軟件研究所