專利名稱:面向服務體系結構中基于規(guī)則的監(jiān)控方法和系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及一種面向服務體系結構中基于規(guī)則的監(jiān)控方法和系統(tǒng)。
背景技術:
在面向服務體系結構(SOA)中,使資源作為參與者可以用標準化的方式訪問的獨 立服務而對于網(wǎng)絡中的參與者來說是可獲得的。盡管SOA多數(shù)的定義使用了經(jīng)由HTTP/ HTTPS通過TCP/IP來傳送的SOAP請求,但SOA可以使用任何基于服務的技術。這些服務基 于規(guī)范的定義相互操作,所述定義獨立于底層平臺和編程語言。接口定義封裝了具體的實 現(xiàn)方式。SOA獨立于具體的開發(fā)技術(例如JAVA和.NET)。由于接口是符合標準且獨立于 (網(wǎng)絡)服務邏輯的底層實現(xiàn)方式的,因此軟件組件變得可重復使用。例如,Cft(C Sharp) 服務可以由Java的應用使用,反之亦然。 為了確保SOA如預期操作,監(jiān)控SOA是一個重要并困難的技術任務。這不僅適用于 SOA的開發(fā)階段當不同SOA組件的源碼反復需要被調(diào)試時,也適用于部署和測試階段,例如當 必須控制異常的運行時(runtime)情況或為了維護或其他目的要對SOA的性能進行評估時。
傳統(tǒng)上,監(jiān)控一個軟件系統(tǒng)包括根據(jù)監(jiān)控系統(tǒng)的一組固定的和預定的規(guī)則生成一 個或多個日志文件,其使得可以理解在軟件系統(tǒng)中事件的發(fā)生的順序。該概念對于SOA中 的應用來說是有問題的,這是因為其僅提供了有限的靈活性,這于SOA的靈活特性形成了 對照。而且,日志文件不適用于提前發(fā)現(xiàn)復雜的錯誤情況。相反地,日志文件只允許在問題 發(fā)生之后發(fā)現(xiàn)該問題的原因。因此,其不能及時采取應對措施來防止問題發(fā)生。
由于SOA環(huán)境(SOA landscape)通常包含很多組件,這些組件以復雜的方式相互 作用且可能隨著時間的推移動態(tài)改變,因此保持跟蹤所有的配置及其變化是一個非同尋常 的任務。為此現(xiàn)有技術中已知提供了用于SOA的集中式登記簿/存儲庫,例如申請人的產(chǎn) 品"Infravio"或"CentraSite",其可以簡化和輔助這項任務。然而,記錄SOA環(huán)境不能確 保順利的沒有錯誤的操作。在EP 1863258中申請人已經(jīng)描述了一種用來管理網(wǎng)絡服務的 系統(tǒng)和方法以及如何能將SOA的運行時信息收集和存儲在該登記簿中。盡管其所揭示的方 法和系統(tǒng)已經(jīng)基本上促進了復雜SOA環(huán)境的管理,卻不能自動分析復雜的情況。
現(xiàn)有技術中已知的其他的監(jiān)控系統(tǒng)都與應用服務器綁定,而多數(shù)監(jiān)視的僅僅是網(wǎng) 絡服務。以US 2006/0031481A1為例,其揭示了通過收集和集合數(shù)據(jù)以及根據(jù)用戶預定義 的規(guī)則來觸發(fā)事件,對多個服務代理進行監(jiān)控。另一個用于合成電子服務和功能的建模工 具的例子在US 7, 222, 334B2中可以找到,其允許監(jiān)控服務執(zhí)行的狀態(tài)。
為了提高監(jiān)控系統(tǒng)的規(guī)則的可靠性,使用例如如附圖1中所示的自學習和基于規(guī) 則的監(jiān)控處理是已知的現(xiàn)有技術。為了這個目的,首先在學習階段中,優(yōu)選地是在學習循環(huán) 中獲取一個規(guī)則,這導致了用于將被監(jiān)控的SOA組件的被提議的規(guī)則。被提議的規(guī)則然后 在包含任意數(shù)量測試的測試階段中被驗證,所述測試可以在循環(huán)中執(zhí)行直至該被提議的規(guī) 則通過了所有的測試。 一旦通過了所有的測試,被提議的規(guī)則可以被自動標記為經(jīng)驗證的。
然而,上面所描述的學習/測試處理可能是效率低且費時的,因為整個學習/測試處理通常要在一個S0A的生命周期中經(jīng)歷無數(shù)次。例如,當新的組件將被添加到SOA環(huán)境 中時,這些組件不能被立刻監(jiān)控,因為每一個對應的監(jiān)控組件都必須經(jīng)歷完整的學習/測 試處理來獲取監(jiān)控規(guī)則。這使得SOA要么不靈活且效率低下(在經(jīng)驗證的規(guī)則被"學習"之 前不使用新組件的情形下),或者,更重要的,可能帶來了嚴重的安全風險(在未完成規(guī)則 驗證時使用新組件的情形下)。 綜上所述,本發(fā)明的技術問題是改進對面向服務體系結構(SOA)的基于規(guī)則的監(jiān) 控,從而至少部分地克服現(xiàn)有技術的缺點。
發(fā)明內(nèi)容
通過一種對被添加到面向服務體系結構(SOA)中的組件的基于規(guī)則的監(jiān)控方法 來從一個方面解決該問題,所述SOA包括被多個監(jiān)控組件監(jiān)控的多個組件。在本發(fā)明第一 技術方案的實施例中,該方法包括如下步驟a.從所述SOA的多個組件中,基于相似性度量 選擇和所述被添加組件相似的組件;b.從所選擇的組件的監(jiān)控組件中選擇至少一個規(guī)則, 其中該至少一個規(guī)則在所述SOA的操作過程中被驗證過;c.向所述被添加的組件的新的監(jiān) 控組件中添加該至少一個規(guī)則。 于是,當向SOA中添加新組件時,通過相似性度量識別出所述SOA現(xiàn)有的相似的組 件。如果所述被識別的組件,即它的監(jiān)控組件具有已經(jīng)在所述SOA的操作中被驗證的規(guī)則, 則這些規(guī)則可以被添加到所述新組件的監(jiān)控組件中。本發(fā)明通過重復使用相似監(jiān)控組件的 已經(jīng)驗證過的規(guī)則,大大簡化了添加新組件時SOA的監(jiān)控。 在本發(fā)明的一個方面,該相似性度量可以計算指示被添加的組件和所述SOA的多 個組件之間的相似性的相似值,并且具有最高相似值的組件可被選擇。另外地或可替代地, 在步驟a中可僅選擇該相似值大于或等于一個預定義的值的組件。這確保了只有來自足夠 相似的組件的規(guī)則被重復使用。 在另一個方面,相似性度量可以將所述組件分類成群組,所述群組例如是服務、應 用服務器和/或計算機硬件。如此分類有助于確保只有相似類型的組件通過相似性度量進 行比較。 如果所述組件是服務,則相似值可以基于一信息群組中任意信息來計算,所述信 息群組包括如下信息所述服務提供的方法的數(shù)量和/或名稱、它們的輸入?yún)?shù)類型和/或 它們的輸出參數(shù)類型??商鎿Q地,如果所述組件是應用服務器,則該相似值可以基于一信息 群組中任意信息來計算,所述信息群組包括如下信息它們的產(chǎn)品類型、產(chǎn)品版本、使用的 軟件和/或使用的硬件。最后,如果所述組件是計算機硬件,則該相似值可以基于一信息群 組中任意信息來計算,所述信息群組包括如下信息它們的操作系統(tǒng)、操作系統(tǒng)版本和/或 硬件配置。 現(xiàn)有的監(jiān)控組件可能已經(jīng)經(jīng)歷了學習階段來獲取該至少一個規(guī)則。進一步地,所 選擇的監(jiān)控組件在S0A的操作過程中,可能已經(jīng)經(jīng)歷了測試階段來驗證該至少一個規(guī)則。 于是,使用當前的方法,如果被監(jiān)控的環(huán)境中已經(jīng)存在已經(jīng)經(jīng)歷了質(zhì)量被認可的學習階段 的相似組件,則可以為將被監(jiān)控的新組件獲取規(guī)則而不需要經(jīng)歷各自的監(jiān)控組件的完整的 學習階段。 該方法可能進一步包括如下步驟提供新的監(jiān)控組件和至少一個添加的規(guī)則到測
4試階段中來在S0A的操作過程中驗證該至少一個規(guī)則。這確保所述新添加的規(guī)則在所添加 組件的上下文中被測試且被驗證。另外地或替換地,該方法可能進一步包括如下步驟提供 該新的監(jiān)控組件和該至少一個添加的規(guī)則到學習階段中,來確定該至少一個規(guī)則的至少一 個參數(shù)。 本發(fā)明還涉及一種用于對被添加到面向服務體系結構(SOA)中的組件進行基于 規(guī)則的監(jiān)控的監(jiān)控系統(tǒng),所述SOA包括被多個監(jiān)控組件所監(jiān)控的多個組件,該監(jiān)控系統(tǒng)適 于實現(xiàn)上述的任何方法。進一步地,提供了包含實現(xiàn)上述任何方法的指令的計算機程序。
在接下來的具體實施方式
中,本發(fā)明當前優(yōu)選的實施例將結合下面的附圖進行進 一步的描述。
圖1 :現(xiàn)有技術中學習/測試處理的一個示意圖;
圖2 :本發(fā)明的一個實施例的示意圖。
具體實施例方式
接下來將描述本發(fā)明的監(jiān)控方法和系統(tǒng)的一個示例實施例。本發(fā)明的該實施例包
括用來進行監(jiān)控處理的系統(tǒng)和方法,所述監(jiān)控處理通過重復使用SOA的相似組件的已有的
經(jīng)驗證的規(guī)則,來簡化用于向SOA環(huán)境中添加的新組件的可靠規(guī)則的獲取過程。 SOA環(huán)境通常包括能以復雜方式相互作用的多個組件。SOA的這些組件可以來自
截然不同的來源,包括諸如服務(尤其是網(wǎng)絡服務)、應用、客戶端、硬件和軟件組件、和其
他多種對象。 為了監(jiān)控SOA的所述組件,已知的做法是將每個所述組件通過一個監(jiān)控組件來表 示,所述監(jiān)控組件在所述SOA的操作期間收集運行時數(shù)據(jù)。在此上下文中,圖2示出了一個 極其簡化的S0A環(huán)境的示意圖,其中包括多個組件C2,. . . ,Cn,所述多個組件伴隨有監(jiān)控組 件M2, . . . , Mn。在所描述的例子中,監(jiān)控組件M2, . . . , Mn中的每一個組件監(jiān)控該SOA的一 個對應的組件C2, . . . , Cn。然而,使一個監(jiān)控組件監(jiān)控該SOA的多于一個的組件也是可能 的。進一步的,僅僅監(jiān)控該SOA的一些組件也是可能的。 由所述監(jiān)控組件M2, . . . , Mn收集到的數(shù)據(jù)可包括帶寬的實際測量值、由該SOA的 組件發(fā)送的消息的消息長度、每次消息的數(shù)量、持續(xù)時間或其他與該SOA的組件的操作相 關的其他任何合適值。如果被監(jiān)控的組件例如是該SOA的一個硬件組件,則可以監(jiān)控特定 于此組件的不同的值。 將由監(jiān)控組件獲得的所收集的運行時數(shù)據(jù)組合起來,可以提供SOA環(huán)境工作良好 程度的總體圖像。為了過濾所收集的運行時數(shù)據(jù),即排除不相關信息,可將監(jiān)控規(guī)則附接到 監(jiān)控組件,以使得監(jiān)控組件僅收集來自SOA環(huán)境的組件的相關數(shù)據(jù)。如圖2中所示,監(jiān)控組 件M2具有一個或多個附接的監(jiān)控規(guī)則R2。更進一步地,這些監(jiān)控規(guī)則也可定義如何處理所 收集的信息,即將其寫入日志文件或當超出特定邊界時發(fā)出警告消息和/或警報。
監(jiān)控規(guī)則可以是例如由SOA的有經(jīng)驗的管理人員靜態(tài)預定義的。然而,這對于SOA 組件的變化是不靈活的,因為新規(guī)則將不得不手動制定,而這是費時且容易出錯的。為此, 已知做法是提供如圖l所示的自學習的監(jiān)控處理。首先,在學習階段中,某一開始規(guī)則例如
5基于統(tǒng)計值而被逐漸改進,直到獲得一個被提議的規(guī)則為止。該被提議的規(guī)則隨后在包含 任意數(shù)量測試的測試階段中被測試。當該被提議的規(guī)則通過所有的測試時,該規(guī)則可被自 動或手動設置為"經(jīng)驗證的",并被用來監(jiān)控S0A。應該明白,監(jiān)控規(guī)則的學習可在SOA的測 試運行以及其工作運行中完成。 當要向SOA中添加一個新組件CI (見圖2)時,對于與該新組件CI對應的監(jiān)控組 件M1來說,通常必須經(jīng)歷完整的學習/測試處理以獲取可靠的規(guī)則,而這樣做既低效率又 耗時還可能延誤SOA的操作,因為直到"學習"到可靠的監(jiān)控規(guī)則才可以卓有成效地使用該 新的組件Cl。 另一方面,新組件CI可能在某些方面與現(xiàn)有的組件C2, . . . , Cn相似或幾乎相同, 例如運行在兩個(幾乎)相同計算機上的兩個相同類型的應用服務器或具有幾乎相同操作 的兩個網(wǎng)絡服務。因此,在對應的組件足夠相似的情況下,現(xiàn)有的監(jiān)控組件M2,. . . ,Mn的規(guī) 則可以被新的監(jiān)控組件M1重復使用。 這種相似性在本發(fā)明中可以基于相似性度量(圖2中未示出)自動進行量化,所 述相似性度量優(yōu)選地返回一個0到100之間的數(shù)字來指示SOA的兩個組件之間相似性的 量。如果被添加到SOA的新組件CI和現(xiàn)有的組件中的一個之間,例如和組件C2,有某一所 需的相似性的量,例如90%或更多,則經(jīng)驗證的規(guī)則R2很可能即使與監(jiān)控組件新組件CI所 需要的規(guī)則不同也與之類似。 因此,添加已經(jīng)驗證的規(guī)則R2到新組件Cl的監(jiān)控組件Ml中(在圖2中用水平箭 頭標出)會節(jié)省時間和精力,也會大大加速發(fā)生改變的或擴展的SOA環(huán)境的監(jiān)控處理的開 始,因為不再必須經(jīng)歷學習/測試處理。 相似值優(yōu)選地針對新的組件C1和每個現(xiàn)有的組件C2,. . . ,Cn成對地計算出來,并 且選出具有最高相似值的現(xiàn)有組件。為了將兩個組件的比較限制為合理的組合,可僅比較 來自相同群組的組件,即僅網(wǎng)絡服務或僅相同類型的硬件組件等等。相似值依據(jù)所比較的 組件的類型可用多種方式來計算得出,例如-如果組件是服務(如網(wǎng)絡服務),則相似值可通過對服務所提供的操作(即子程 序)的數(shù)量(艮卩,量)和名稱進行比較,和/或通過比較它們輸入和輸出參數(shù)的類型,例如 整數(shù)、串或浮點數(shù)而計算出來。-如果組件是應用服務器,則相似值可通過比較它們的產(chǎn)品類型、產(chǎn)品版本和/或 它們使用的軟件(如操作系統(tǒng)、運行時環(huán)境)或硬件(如可使用的存儲器)來計算。
-如果組件是計算機硬件,則相似值可通過比較它們的操作系統(tǒng)、操作系統(tǒng)版本和 /或硬件配置(如內(nèi)存、硬盤空間、硬件組件的類型如圖形卡或主板)來計算。
此外,優(yōu)選地只有在操作上驗證了的規(guī)則會被新的監(jiān)控組件重復使用,即已經(jīng)經(jīng) 歷了完整的測試階段的規(guī)則,可以保證該重用規(guī)則的足夠的質(zhì)量和魯棒性。
為了進一步確保被重用規(guī)則的可行性,新監(jiān)控組件M1可進入測試階段,以針對對 組件C1的監(jiān)控,對該重用規(guī)則R2進行測試。該方法與現(xiàn)有技術的方法相比具有明顯的效 率改進,原因是可以跳過學習/測試處理中代價大的學習階段。如果相似度足夠高,例如選 擇的是兩個相同的計算機硬件組件,為了進一步提高效率,甚至可以跳過測試階段。另一方 面,可能在一些情形下新監(jiān)控組件M1仍然經(jīng)歷學習階段,例如,如果所添加的規(guī)則R2包括 參數(shù),并且必須為新的監(jiān)控組件M1確定該具體參數(shù)值。
權利要求
一種對被添加到面向服務體系結構(SOA)的組件(C1)的基于規(guī)則的監(jiān)控方法,所述SOA包含多個組件(C2,...,Cn),所述組件被多個監(jiān)控組件(M2,...,Mn)監(jiān)控,該方法包括如下步驟a.從所述SOA的所述多個組件(C2,...,Cn)中,基于相似性度量選擇和所述被添加的組件(C1)相似的組件(C2);b.從所選擇的組件(C2)的監(jiān)控組件(M2)中選擇至少一個規(guī)則(R2),其中該至少一個規(guī)則(R2)已經(jīng)在所述SOA的操作期間得到驗證;c.向所述被添加的組件(C1)的新的監(jiān)控組件(M1)中添加該至少一個規(guī)則(R2)。
2. 如權利要求1所述的方法,其中所述相似性度量計算了相似值,該相似值指示出所 述被添加的組件(CI)和所述S0A的所述多個組件(C2,. . . ,Cn)之間的相似性,并且其中具 有最高相似值的組件(C2)被選擇。
3. 如權利要求2所述的方法,其中在步驟a中僅選擇該相似值大于或等于一個預定義 值的組件(C2)。
4. 如在前的任何一個權利要求所述的方法,其中所述相似性度量將所述組件(Cl, C2, . . . , Cn)劃分為群組,所述群組例如是服務、應用服務器和/或計算機硬件。
5. 如在前的權利要求2-4中任何一個所述的方法,其中所述組件(Cl, C2, . . . , Cn)為服務,并且其中相似值是基于一信息群組中的任意信息來計算的,所述信息群組包括如下 信息由所述服務提供的操作的數(shù)量和/或名稱、所述操作的輸入?yún)?shù)類型和/或所述操作 的輸出參數(shù)類型。
6. 如在前的權利要求2-4中任何一個所述的方法,其中所述組件(Cl, C2, . . . , Cn)為應用服務器,并且其中相似值是基于一信息群組中的任意信息來計算的,所述信息群組包 括如下信息所述應用服務器的產(chǎn)品類型、產(chǎn)品版本、所使用的軟件和/或所使用的硬件。
7. 如在前的權利要求2-4中任何一個所述的方法,其中所述組件(Cl, C2, . . . , Cn)為 計算機硬件,并且其中相似值是基于一信息群組中的任意信息來計算的,所述信息群組包 括如下信息所述計算機硬件的操作系統(tǒng)、操作系統(tǒng)版本和/或硬件配置。
8. 如在前的任何一個權利要求所述的方法,其中所選擇的監(jiān)控組件(M2)經(jīng)歷了學習 階段以獲取該至少一個規(guī)則(R2)。
9. 如在前的任何一個權利要求所述的方法,其中所選擇的監(jiān)控組件(M2)經(jīng)歷了測試 階段以在所述SOA的操作期間驗證該至少一個規(guī)則(R2)。
10. 如在前的任何一個權利要求所述的方法,進一步包括以下步驟提供所述新的監(jiān) 控組件(Ml)和該至少一個所添加規(guī)則(R2)到測試階段中,以在所述SOA的操作期間驗證 該至少一個規(guī)則(R2)。
11. 如在前的任何一個權利要求所述的方法,進一步包括以下步驟提供所述新的監(jiān) 控組件(Ml)和該至少一個所添加的規(guī)則(R2)到學習階段中,以確定該至少一個規(guī)則(R2) 的至少一個參數(shù)。
12. —種用于對被添加到面向服務體系結構(S0A)的組件(Cl)進行基于規(guī)則的監(jiān)控的 監(jiān)控系統(tǒng),所述S0A包括被多個個監(jiān)控組件(M2,. . . ,Mn)所監(jiān)控的多個組件(C2,. . . ,Cn),所述監(jiān)控系統(tǒng)適合于執(zhí)行權利要求1-11中任一權利要求所述的方法。
13. —種計算機程序,包括用來實現(xiàn)權利要求l-ll中任一權利要求所述方法的指令。
全文摘要
本發(fā)明涉及面向服務體系結構中基于規(guī)則的監(jiān)控方法和系統(tǒng),提供了一種對被添加到面向服務體系結構(SOA)的組件(C1)的基于規(guī)則的監(jiān)控方法,所述SOA包含多個組件(C2,...,Cn),所述多個組件被多個監(jiān)控組件(M2,...,Mn)監(jiān)控,該方法包括如下步驟a.從所述SOA的多個組件(C2,...,Cn)中,基于相似性度量選擇出和被添加組件(C1)相似的組件(C2);b.從所選的組件(C2)的監(jiān)控組件(M2)中選擇至少一個規(guī)則(R2),其中該至少一個規(guī)則(R2)已經(jīng)在SOA的操作中得到驗證;以及c.向所添加的組件(C1)的新的監(jiān)控組件(M1)中添加該至少一個規(guī)則(R2)。
文檔編號H04L29/08GK101719091SQ200910221458
公開日2010年6月2日 申請日期2009年9月27日 優(yōu)先權日2008年10月6日
發(fā)明者喬池密·沃格勒, 杰拉爾德·里斯托 申請人:軟件股份公司