專利名稱:一種web服務組合在線失效預測的方法
技術領域:
本發明涉及一種Web服務組合主動監控技術,尤其涉及對運行時Web服務組合進行在線失效預測的方法,屬于信息技術領域。
背景技術:
近年來Web服務技術得到快速發展和應用,成為實現互操作的一種主要機制,得到產業界和學術界的廣泛認可。Web服務是一種部署在網絡上的應用程序。它的出現代表了分布式計算的最新要求,從而實現信息的共享、數據交換和系統集成。Web服務作為一種自治的、與平臺無關的網絡化構件,具有松耦合、支持動態組合和重配置等特點,從而為Internet環境中的軟件開發和分布式應用提供了新的技術。然而,單個的Web服務功能單一,不能提供完整的解決方案。為了實現復雜的業務邏輯,就必須對Web服務進行組合和集成。Web服務只有通過組合成更大粒度的服務,才能充分發揮Web服務的潛力和作用。Web服務組合技術的標準是建立在Web服務技術的核心標準之上的。由于已有的Web服務可能是彼此獨立地開發,以不同語言實現,運行在不同的、異構的平臺上,因此,為了根據不同的業務需求而將已有的Web服務組合起來,在此過程中會產生一些失效,就必須對其進行監控才能提高Web服務組合的性能。現有的Web服務組合監控技術,是只觀察系統運行時行為,當檢測到錯誤時,不做任何操作,或者根據被監控行為的分析結果,當錯誤發生時,需要大量的人工干預系統行為。由于每次監測到的失效太遲,從而影響了系統運行的性能和時間。因此現有的Web服務組合監控技術已無法滿足Web服務組合的監控需要。
發明內容
發明目的針對現有技術中存在的問題與不足,為提高Web服務組合的可靠性和安全性,提供一種在系統運行時有效預測可能發生的錯誤的WEB服務組合在線失效預測的方法。技術方案一種WEB服務組合在線失效預測的方法包括a)BPEL(事務流程執行語言,Business Process Execution Language,簡稱BPEL)引擎擴展模塊對BPEL引擎的進行擴展得到擴展的BPEL引擎,使擴展的BPEL引擎用于記錄Web服務組合過程中攔截到BPEL流程和基本服務之間的交互消息以及各個基本服務的STS (服務轉換系統,Service Translation System,簡稱 STS)規約;b)觀察器通過第一觀察器和第二觀察器分別獲取擴展的BPEL引擎記錄的所述交互消息和各個基本服務的STS規約;c)構建將來K步模塊預設預測步驟K值,根據所述第一觀察器獲取所述交互消息、第二觀察器得到所述各個基本服務的STS規約和預測步驟K值,執行將來K步模塊;使用BFS (廣度優先搜索,Breadth First Search,簡稱BFS)或DFS (深度優先搜索,D^thFirst Search,簡稱DFS)算法,得到初始化將來K步模型;根據第一觀察器和第二觀察器獲取的當前交互消息和STS規約進行重構初始化將來K步模型,得到重構后將來K步模型;其中,K值為整數,根據Web服務組合的個數和規模來確定取值;一般選取原則為大于O和小于等于20的整數。d)轉換器使用PSC (屬性序列圖,Property Sequence Chart,簡稱PSC)描述用戶需求,將所述屬性序列圖轉換成Biichi自動機;e)分析器通過第三觀察器獲取所述重構后將來K步模型,并將其與Bilchi自動機進行匹配,若檢測到的K步模型的最后一個狀態到達PSC屬性的接受狀態(acceptingstate),則該K步模型為正確結果;若檢測到將來K步模型到達PSC屬性的拒絕狀態(rejecting state),則該模型屬性違例;若將來K步模型未到達PSC屬性的拒絕狀態,并且在檢測結束時該將來K步模型的最后一個狀態處于PSC屬性的中間狀態,則該K步模型為不確定結果。所述BPEL引擎擴展模塊中,記錄Web服務組合過程中攔截到BPEL流程和基本服務之間的交互消息以及各個基本服務的STS規約的具體步驟包括:Web服務事務流程執行語言(Web Service Business Process Execution Language,WS-BPEL)用于描述Web服務,BPEL引擎通過執行WS-BPEL將分布在網絡上的多個Web服務進行組合,并且使用AOP (面向方面編程,Aspect Oriented Programming,簡稱A0P)對BPEL引擎進行擴展,通過AOP對BPEL引擎進行兩個方面的擴展;其中第一擴展模塊AOP記錄Web服務組合過程中攔截到BPEL流程和基本服務之間的交互消息,第二擴展模塊AOP實現記錄各個基本服務的STS規約。構建將來K步模塊中所述的將來K步模塊包括BFS\DFS執行模塊,根據多個STS規約預測將來K步的初始化模型;初始化將來K步模型,Web服務組合初始化執行成功的將來K步模型;預測到的失效,Web服務組合執行的失效;重構模塊,在Web服務組合運行時,根據所述第一觀察器獲取的所述交互消息和第二觀察器得到的所述各個基本服務的STS規約重構初始化將來K步模型;重構后的將來K步模型,Web服務組合重構后執行成功的將來K步模型。所述BFS\DFS執行模塊包括初始化將來第一步模塊,根據獲取到的多個STS規約以及Web服務消息匹配原則內部消息可以直接預測一步,對于發送消息與接受消息必須進行匹配,才可以預測一步;執行匹配模塊,記錄當前STS規約預測的步數,在各個STS規約當前的狀態下,再預測一步,直到預測的步數達到K,預測原則同Web服務消息匹配原則。所述重構模塊包括剪裁模塊,將當前第一觀察器獲取的交互消息的第一個狀態與將來K步模型的第一個狀態進行匹配,若匹配成功,剪掉第一個狀態和不匹配的模型即得到K-I步模型,直到 沒有攔截的消息;執行匹配模塊,按照Web服務消息匹配原則BPEL引擎內部消息可以直接預測一步,對于發送消息與接受消息必須進行匹配,才可以預測一步。在線失效預測在系統運行時,預測可能發生的錯誤。Web服務組合在運行時是動態變化的,當某一服務組件產生改變或者失效時,需要修改原來的組合服務。針對Web服務組合的特點,本發明提出一種Web服務組合的在線失效預測方法,在Web服務組合運行時的任一狀態下,預測將來K步之內可能發生失效的狀態。可以幫助積極處理失效,如果系統預測到一個危險行為的發生,它能夠使用一些措施提前防止一個失效的發生,減少修復的時間。提高了 Web服務組合的可靠性和安全性。有益效果與現有技術相比,本發明所提供的WEB服務組合在線失效預測的方法有利于在Web服務組合運行時,積極處理失效,如果系統預測到一個危險行為的發生,它能夠使用一些措施提前防止一個失效的發生,減少修復的時間。提高了 Web服務組合的可靠性和安全性。
圖I為本發明實施例的系統框架圖;圖2為本發明實施例的將來K步模塊示意圖;圖3為本發明實施例的BFS執行模塊示意圖;圖4為本發明實施例的DFS執行模塊示意圖;圖5為本發明實施例的重構模塊示意圖;圖6為本發明實施例的初始化將來K步模型執行流程圖;圖7為本發明實施例的重構將來K步模型執行流程圖;圖8為本發明實施例的驗證屬性執行流程圖。
具體實施例方式下面結合附圖和具體實施例,進一步闡明本發明,應理解這些實施例僅用于說明本發明而不用于限制本發明的范圍,在閱讀了本發明之后,本領域技術人員對本發明的各種等價形式的修改均落于本申請所附權利要求所限定的范圍。如圖I所示a) BPEL引擎擴展模塊BPEL引擎通過執行WS-BPEL將分布在網絡上的多個Web服務進行組合,并且使用AOP對BPEL引擎進行擴展,通過AOP對BPEL引擎進行兩個方面的擴展,得到第一擴展模塊AOPl和第二擴展模塊A0P2 ;其中第一擴展模塊AOPl記錄Web服務組合過程中攔截到BPEL流程和基本服務之間的交互消息,第二擴展模塊A0P2實現記錄各個基本服務的STS規約。Web服務事務流程執行語言(Web Service Business ProcessExecution Language, WS-BPEL)用于描述Web服務,將一組現有的服務整合起來,用來表達特定業務的處理邏輯和算法,從而定義一個新的組合的Web服務。b)觀察器由第一觀察器I和第二觀察器2分別獲得擴展后的BPEL引擎所記錄的所述交互消息和各個基本服務的STS規約;c)構建將來K步模塊根據Web服務組合的個數和規模,從大于0和小于等于20的整數中選取一個值賦予K,根據所述第一觀察器獲取所述交互消息、第二觀察器得到所述各個基本服務的STS規約和預測步驟K值,執行將來K步模塊,使用廣度優先搜索(Breadth First Search, BFS)或深度優先搜索(Depth First Search, DFS)算法,得到初始化將來K步模型,根據第一觀察器和第二觀察器獲取的當前交互消息和STS規約進行重構,得到重構后將來K步模型。這里可以任意選擇使用哪種搜索算法。
d)轉換器,將屬性序列圖(Property Sequence Chart, PSC)描述的用戶需求轉換成Bilchi自動機,由于該規約語言具有圖形化的特點,可以更加直觀、簡潔的表示用戶需求。為了自動驗證PSC屬性規約,本發明將PSC屬性轉換成Biichi自動機,方便實現驗證屬性的自動化要求。e)分析器,通過第三觀察器3獲取所述重構后將來K步模型,將步驟c中重構后的將來K步模型與PSC屬性轉換成的Bilchi自動機執行驗證模塊,若檢測到的K步模型的最后一個狀態到達PSC屬性的接受狀態(accepting state),則該模型為正確結果;若檢測到K步模型到達PSC屬性的拒絕狀態(rejecting state),則該模型屬性違例;若K步模型未到達PSC屬性的拒絕狀態,并且在檢測結束時該K步模型的最后一個狀態處于PSC屬性的中間狀態,則說明該K步模型為不確定結果。如圖2為將來K步模塊示意圖將來K步模塊具體包括BFS\DFS執行模塊、初始化將來K步模型,預測到的失效, 重構模塊,重構后的將來K步模型。BFS\DFS執行模塊,根據第二觀察器2獲取多個STS規約,以及預測的K步,得到將來K步的初始化模型;初始化將來K步模型,Web服務組合初始化執行成功的將來K步模型;預測到的失效,Web服務組合執行預測K步的過程中,多個STS在BFS\DFS執行模塊中無法到達K步的失效;重構模塊,在Web服務組合在運行時,Web服務組合是動態變化的,根據第一觀察器I獲取的交互消息必須進行重構初始化將來K步模型;重構后的將來K步模型,Web服務組合重構后執行成功的K步模型。如圖3為BFS執行模塊示意圖BFS執行模塊示意圖具體包括初始化第一步模塊、執行匹配模塊以及隊列。初始化第一步模塊,根據第二觀察器2獲取的多個STS規約,以及Web服務消息匹配原則=BPEL引擎的內部消息可以直接預測一步,對于發送消息與接受消息必須進行匹配,才可以預測一步;執行匹配模塊,記錄當前STS規約預測的步數,在各個STS當前的狀態下,再預測一步,預測原則同Web服務消息匹配原則。BFS執行步驟,將初始化第一步模塊加入到隊列,判斷該模塊預測的步數是否達到K,若沒達到K步,根據隊列先進先出的特點,出隊列繼續執行匹配模塊,再次判斷K值。若達到K步,則出隊列,得到初始化將來K步模型。在執行匹配模塊的時候同樣會得到預測到的失效,即該模型無法預測下一步。如圖4為本實施例的DFS執行模塊示意圖。該模塊與BFS執行模塊的區別是,BFS執行模塊使用隊列進行存儲當前預測到的模型,而DFS執行模塊使用棧進行存儲當前預測到的模型,根據棧先進后出的特點,實現對多個STS規約進行深度優先搜索匹配的功能。如圖5為本實施例的重構模塊示意圖重構模塊具體包括剪裁模塊、執行匹配模塊、K-I步模型。剪裁模塊,將第一觀察器I獲取的當前交互消息的第一個狀態與將來K步模型的第一個狀態進行匹配,若匹配成功,剪掉第一個狀態和不匹配的模型,即得到K-I步模型,直到消息全部匹配結束;執行匹配模塊,按照Web服務消息匹配原則BPEL引擎內部消息可以直接預測一步,對于發送消息與接受消息必須進行匹配,才可以預測一步。K-I步模型,當第一觀察器I獲取的消息的第一個狀態與初始化將來K步模型的第一個狀態匹配時,則將原將來K步模型去掉第一個狀態,剩下的模型即為K-I步模型。重構的步驟,剪裁模塊將當前攔截到的消息的第一個狀態與將來K步模型的第一個狀態進行匹配,若匹配成功,剪掉第一個狀態和不匹配的模型即得到K-I步模型。執行匹配模塊預測一步,得到重構后的將來K步模型以及預測到的失效,直到沒有攔截到的消息。如圖6所示,為本實施例的獲取初始化將來K步模型執行流程圖。包括如下步驟
步驟101、將多個Web服務以及對應的服務STS規約作為輸入;步驟102、BPEL引擎通過執行WS-BPEL將多個Web服務進行組合,并且使用AOP對其進行擴展;步驟103通過使用AOP擴展的BPEL引擎獲得多個Web服務的STS規約;步驟104根據輸入的預測步數K以及Web服務交互消息匹配原則,將多個Web服務的STS規約執行初始化預測第一步;步驟105將預測到的模型加入隊列(棧)中,若加入隊列中,則表明使用BFS進行預測;若加入棧中,則表明使用DFS進行預測;步驟106判斷加入隊列(棧)中模型的預測步數是否小于K,若是,執行步驟107,否則執行步驟110 ;步驟107將得到的全部模型執行消息匹配,繼續預測下一步;步驟108判斷全部的模型中是否存在可以繼續預測下一步的模型,若存在,則對應的模型執行步驟105,否則執行步驟109 ;步驟109存在無法繼續預測下一步的模型,則該模型發生失效;步驟110預測到的模型不小于K,則出隊列(棧);步驟111獲取初始化將來K步模型;步驟112通過使用AOP擴展的BPEL引擎攔截當前Web服務組合的消息;步驟113記錄當前攔截到的消息和初始化將來K步模型。如圖7所示,為本發明的重構將來K步模型執行流程圖,具體包括如下步驟步驟201獲取當前攔截到的消息和初始化將來K步模型;步驟202將當前攔截到的消息與初始化將來K步模型的第一個狀態進行匹配;步驟203判斷初始化將來K步的全部模型中的第一個狀態,是否與當前攔截到的消息匹配,若是,則該模型執行步驟205,否則,執行步驟204 ;步驟204預測到全部初始化將來K步模型中存在與攔截到的消息不匹配,獲取預測到的失效;步驟205將匹配成功的將來K步模型中的第一個狀態,進行剪裁,得到K-I步模型。步驟206獲取K-I步模型;步驟207將K-I步模型按照Web服務交互消息匹配原則,進行預測下一步;步驟208判斷K-I步模型是否可以繼續預測下一步,若是,則執行步驟210,否則執行步驟209 ;步驟209K-1步模型無法進行下一步預測,獲取預測到的失效;
步驟210K-1步模型可以繼續預測下一步,獲取重構后的將來K步模型;步驟211判斷當前攔截到的消息是否為空,若是,執行步驟212,否則執行步驟203 ;步驟212收集數據,記錄重構后的將來K步模型。如圖8所示,為本發明的驗證屬性執行流程圖。具體包括如下步驟步驟301將用戶需求作為輸入;步驟302使用PSC描述用戶需求;步驟303將PSC屬性需求轉換為Biichi自動機;步驟304這里可以進行選擇,驗證初始化將來K步模型或者重構后的將來K步模型;步驟305將選擇的K步模型與Bilchi自動機進行狀態匹配;步驟306判斷K步模型在匹配過程中,是否到達Bilchi自動機的拒絕狀態,若是,則執行步驟307,否則執行步驟308 ;步驟307檢測到K步模型中有不滿足PSC的模型,獲取屬性違例結果;步驟308獲取K步模型在檢測過程中未發生違例的模型,也就是在與Bilchi自動機進行匹配的過程中,未到達拒絕狀態的模型;步驟309判斷驗證未違例的K步模型中,K步模型的最后一個狀態是否到達Bilchi自動機的接受狀態,若是,則執行步驟311,否則執行步驟310 ;步驟310獲取K步模型中無法確定是否滿足PSC屬性的模型,該模型既未到達拒絕狀態,模型的最后一個狀態也沒有到達接受狀態,說明該模型中可能含有不滿足PSC屬性的狀態,所以得到不確定結果; 步驟311獲取K步模型中滿足PSC屬性的正確結果。
權利要求
1.一種WEB服務組合在線失效預測的方法,其特征在于,包括 a)BPEL引擎擴展模塊J^BPEL引擎的進行擴展得到擴展的BPEL引擎,使擴展的BPEL引擎用于記錄Web服務組合過程中攔截到BPEL流程和基本服務之間的交互消息以及各個基本服務的STS規約; b)觀察器通過第一觀察器和第二觀察器分別獲取擴展的BPEL引擎記錄的所述交互消息和各個基本服務的STS規約; c)構建將來K步模塊預設預測步驟K值,根據所述第一觀察器獲取所述交互消息、第二觀察器得到所述各個基本服務的STS規約和預測步驟K值,執行將來K步模塊;使用BFS或DFS算法,得到初始化將來K步模型;根據第一觀察器和第二觀察器獲取的當前交互消息和STS規約進行重構初始化將來K步模型,得到重構后將來K步模型;其中,K值為整數,根據Web服務組合的個數和規模來確定取值; d)轉換器使用PSC描述用戶需求,將所述屬性序列圖轉換成Bilchi自動機; e)分析器通過第三觀察器獲取所述重構后將來K步模型,并將其與Bilchi自動機進行匹配,若檢測到的K步模型的最后一個狀態到達PSC屬性的接受狀態,則該K步模型為正確結果;若檢測到將來K步模型到達PSC屬性的拒絕狀態,則該模型屬性違例;若將來K步模型未到達PSC屬性的拒絕狀態,并且在檢測結束時該將來K步模型的最后一個狀態處于PSC屬性的中間狀態,則該K步模型為不確定結果。
2.如權利要求I所述的WEB服務組合在線失效預測的方法,其特征在于BPEL引擎擴展模塊中,記錄Web服務組合過程中攔截到BPEL流程和基本服務之間的交互消息以及各個基本服務的STS規約的具體步驟包括BPEL引擎通過執行WS-BPEL將分布在網絡上的多個Web服務進行組合,并且使用AOP對BPEL引擎進行擴展,通過AOP對BPEL引擎進行兩個方面的擴展;其中第一擴展模塊AOP記錄Web服務組合過程中攔截到BPEL流程和基本服務之間的交互消息,第二擴展模塊AOP實現記錄各個基本服務的STS規約。
3.如權利要求I所述的WEB服務組合在線失效預測的方法,其特征在于構建將來K步模塊中所述的將來K步模塊包括 BFS\DFS執行模塊,根據多個STS規約預測將來K步的初始化模型; 初始化將來K步模型,Web服務組合初始化執行成功的將來K步模型; 預測到的失效,Web服務組合執行的失效; 重構模塊,在Web服務組合運行時,根據所述第一觀察器獲取的所述交互消息和第二觀察器得到的所述各個基本服務的STS規約重構初始化將來K步模型; 重構后的將來K步模型,Web服務組合重構后執行成功的將來K步模型。
4.如權利要求3所述的WEB服務組合在線失效預測的方法,其特征在于所述BFS\DFS執行模塊包括 初始化將來第一步模塊,根據獲取到的多個STS規約以及Web服務消息匹配原則BPEL引擎內部消息可以直接預測一步,對于發送消息與接受消息必須進行匹配,才可以預測一I K少; 執行匹配模塊,記錄當前STS規約預測的步數,在各個STS規約當前的狀態下,再預測一步,直到預測的步數達到K,預測原則同Web服務消息匹配原則。
5.如權利要求3所述的WEB服務組合在線失效預測的方法,其特征在于所述重構模塊包括 剪裁模塊,將當前第一觀察器獲取的交互消息的第一個狀態與將來K步模型的第一個狀態進行匹配,若匹配成功,剪掉第一個狀態和不匹配的模型即得到K-I步模型,直到沒有攔截的消息; 執行匹配模塊,按照Web服務消息匹配原則BPEL引擎內部消息可以直接預測一步,對于發送消息與接受消息必須進行匹配,才可以預測一步。
全文摘要
本發明公開了一種Web服務組合的在線失效預測方法,對事務流程執行語言引擎進行面向方面擴展,記錄Web服務組合過程中交互的消息和各個服務的規約;觀察器,分別獲得交互消息和服務的規約;根據觀察器得到當前的消息和預測步驟K,執行將來K步模塊,得到初始化K步將來模型,根據攔截到的當前消息進行重構,得到重構后K步將來模型;用戶需求使用屬性序列圖來描述,然后將其轉換成Büchi自動機;分析器獲取K步將來模型與屬性序列圖轉換成的自動機進行驗證,得到主動監控的正確結果、不確定結果和屬性違例。本發明能夠提前預測到Web服務組合中失效的發生,提高了Web服務組合的可靠性和安全性。
文檔編號H04L29/06GK102664917SQ20121008213
公開日2012年9月12日 申請日期2012年3月26日 優先權日2012年3月26日
發明者周婷婷, 張鵬程, 朱躍龍, 武曉斌 申請人:河海大學