面向容錯(cuò)組合web服務(wù)的可靠性仿真工具的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及組合web服務(wù)可靠性仿真工具。
【背景技術(shù)】
[0002] Web服務(wù)應(yīng)用領(lǐng)域越來越廣泛,如銀行系統(tǒng)、航天系統(tǒng)、軍事管理系統(tǒng)等等,因此必 須保證web服務(wù)的高可靠性,避免因系統(tǒng)發(fā)生失效,帶來無法估量的損失。
[0003] Web服務(wù)具有獨(dú)立性以及松耦合性,滿足用戶不同需求的同時(shí)卻使得可靠性無法 保證。組合服務(wù)的分布式運(yùn)行環(huán)境同樣引入了網(wǎng)絡(luò)情況等不確定因素,并且服務(wù)需要運(yùn)行 很長時(shí)間(幾小時(shí)、幾天甚至幾個(gè)月),可靠性成為組合服務(wù)必須考慮的問題。另一方面,隨 著web服務(wù)廣泛應(yīng)用,不可靠的服務(wù)會對服務(wù)使用者造成無法挽回的損失,同時(shí)使web服務(wù) 提供者信譽(yù)降低甚至失去市場。因此,如何提高web服務(wù)的可靠性,滿足用戶需求已成為當(dāng) 前研究web服務(wù)的核心問題。
[0004] 由于web服務(wù)具有異構(gòu)性與不確定性的本質(zhì)特征,這使得傳統(tǒng)的可靠性評估方法 不適用于評估組合web服務(wù)的可靠性。同時(shí)越來越多的容錯(cuò)機(jī)制被應(yīng)用到web服務(wù)組合中, 因此準(zhǔn)確地可靠性評估必須考慮容錯(cuò)機(jī)制的影響。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明為了解決傳統(tǒng)的可靠性評估方法不適用于評估組合web服務(wù)的可靠性的 問題。
[0006] 面向容錯(cuò)組合web服務(wù)的可靠性仿真工具,包括:BPEL信息處理模塊、用戶自定義 模塊、可靠性仿真評測模塊和仿真結(jié)果輸出模塊;
[0007] 其中,
[0008] BPEL信息處理模塊,用于讀取用戶輸入BPEL描述的組合web服務(wù),然后將BPEL描 述的組合web服務(wù)結(jié)構(gòu)轉(zhuǎn)換為含有容錯(cuò)策略的組合web服務(wù)關(guān)系樹模型FTWS-⑶T ;BPEL描 述的組合web服務(wù)包含服務(wù)節(jié)點(diǎn)、控制節(jié)點(diǎn)以及容錯(cuò)策略信息,這些信息可以通過自身代 碼實(shí)現(xiàn)更改;如圖3和圖4所示;
[0009] 用戶自定義模塊,該模塊支持拖拽功能,用戶通過用戶自定義模塊的圖形設(shè)計(jì)界 面自定義組合web服務(wù)的體系結(jié)構(gòu)分支節(jié)點(diǎn)的分支類型(包括服務(wù)節(jié)點(diǎn)類型和控制節(jié)點(diǎn)的 類型),并將自定義組合web服務(wù)的體系結(jié)構(gòu)轉(zhuǎn)換成組合web服務(wù)關(guān)系樹模型FTWS-CDT ;自 定義模塊的分支類型確定組合web服務(wù)的控制節(jié)點(diǎn);如圖5和圖6所示;
[0010] 可靠性仿真評測模塊,根據(jù)用戶設(shè)置的仿真次數(shù)和用戶修改的BPEL信息處理模 塊或者用戶自定義模塊的服務(wù)節(jié)點(diǎn)參數(shù)、控制節(jié)點(diǎn)參數(shù)以及容錯(cuò)策略信息,進(jìn)行仿真試驗(yàn); 并對單個(gè)服務(wù)可靠性、服務(wù)連接可靠性以及運(yùn)行剖面對系統(tǒng)可靠性的影響進(jìn)行分析;
[0011] 仿真結(jié)果輸出模塊,用于輸出本次仿真結(jié)果,包括組合web服務(wù)的仿真次數(shù)、失效 次數(shù)、失效原子服務(wù)、失效時(shí)刻、平均執(zhí)行時(shí)間以及系統(tǒng)可靠性和關(guān)鍵服務(wù)。用戶可以根據(jù) 輸出結(jié)果得出整個(gè)服務(wù)的可靠性、各原子服務(wù)重要性和容錯(cuò)策略的有效性。
[0012] 本發(fā)明具有以下有益效果:
[0013] 本發(fā)明實(shí)現(xiàn)了基本服務(wù)和服務(wù)連接的可靠性敏感度分析,建立更符合實(shí)際的web 服務(wù)運(yùn)行情況,提高了可靠性評估的精度,利用仿真的方法,能夠在服務(wù)開發(fā)階段更快、更 準(zhǔn)確地獲得可靠性分析數(shù)據(jù)本發(fā)明能夠得到組合web服務(wù)可靠性結(jié)果。所以,本發(fā)明得到 組合web服務(wù)可靠性結(jié)果可以為設(shè)計(jì)組合web服務(wù)時(shí)提供穩(wěn)定性參考和指導(dǎo),同時(shí)可以幫 助用戶分析系統(tǒng)的關(guān)鍵服務(wù),推薦最佳容錯(cuò)策略,確保系統(tǒng)高可靠性,從而在設(shè)計(jì)階段為開 發(fā)人員提供有力支持。
【附圖說明】
[0014] 圖1為可靠性仿真工具結(jié)構(gòu)圖;
[0015] 圖2為可靠性仿真工具主界面;
[0016] 圖3為可靠性仿真工具BPEL信息處理模塊讀取BPEL文件界面;
[0017] 圖4為可靠性仿真工具BPEL信息處理模塊根據(jù)BPEL文件生成相應(yīng)的WS-⑶T ;
[0018] 圖5為可靠性仿真工具用戶自定義模塊的自定義的界面;
[0019] 圖6為仿真工具用戶自定義模塊設(shè)置分支類型的界面;
[0020] 圖7為web服務(wù)參數(shù)設(shè)置子模塊中對控制節(jié)點(diǎn)的設(shè)置界面;
[0021] 圖8為web服務(wù)參數(shù)設(shè)置子模塊中對服務(wù)節(jié)點(diǎn)的設(shè)置界面;
[0022] 圖9為設(shè)置仿真次數(shù)啟動可靠性仿真與評測執(zhí)行子模塊獲得仿真結(jié)果界面。
【具體實(shí)施方式】
【具體實(shí)施方式】 [0023] 一:結(jié)合圖1和圖2說明本實(shí)施方式,
[0024] 面向容錯(cuò)組合web服務(wù)的可靠性仿真工具,包括:BPEL信息處理模塊、用戶自定義 模塊、可靠性仿真評測模塊和仿真結(jié)果輸出模塊;
[0025] 其中,
[0026] BPEL信息處理模塊,用于讀取用戶輸入BPEL描述的組合web服務(wù),然后將BPEL描 述的組合web服務(wù)結(jié)構(gòu)轉(zhuǎn)換為含有容錯(cuò)策略的組合web服務(wù)關(guān)系樹模型FTWS-⑶T ;BPEL描 述的組合web服務(wù)包含服務(wù)節(jié)點(diǎn)、控制節(jié)點(diǎn)以及容錯(cuò)策略信息,這些信息可以通過自身代 碼實(shí)現(xiàn)更改;如圖3和圖4所示;
[0027] 由BPEL轉(zhuǎn)換到FTWS-CDT主要分為兩步:
[0028] (1)根據(jù) BPEL 得到 WS-token 串:
[0029] 根據(jù)組合web服務(wù)的BPEL中合作伙伴鏈接(Partner Links)、變量(Variables)、 相關(guān)集(Correlation Sets)、活動(Activity)、補(bǔ)償處理程序(Compensation Handlers)、 故障處理程序(Fault Handlers)和事件處理程序Givent Handlers)中與組合相關(guān)的關(guān)鍵 詞分析,建立包含關(guān)鍵詞的WS-token (標(biāo)記)串和組合web服務(wù)匹配映射;
[0030] 本部分借鑒編譯原理的詞法分析,通過分析BPEL文件得到WS-token串。在本程 序中,根據(jù)BPEL語言的特點(diǎn),提出了 WS-token串,WS-token串能夠通過簡單的形式表示其 所代表的組合web服務(wù)體系結(jié)構(gòu)。WS-token串由左括號、代表結(jié)構(gòu)化活動的標(biāo)符、代表調(diào)用 服務(wù)的編號以及右括號組成。
[0031] 通過狀態(tài)轉(zhuǎn)換圖就源文件中的字符串進(jìn)行分割,根據(jù)所處狀態(tài)判斷當(dāng)前語句在 BPEL文件中所代表的含義,從而得到WS-token串。BPEL活動由一系列的服務(wù)交互關(guān)系的 基本模式組成,進(jìn)而通過將這些基本模式嵌套迭代表示代表組合web服務(wù)。根據(jù)這一特點(diǎn), 可以用"(+S IFIWI R111 SP"表示結(jié)構(gòu)化活動開始;其中,S、F、W、R、P、I、SP代表結(jié)構(gòu)化活動, 分別表示順序結(jié)構(gòu)sequence、并行結(jié)構(gòu)flow、循環(huán)結(jié)構(gòu)while和repeat-until、分支活動 if、上下文環(huán)境scope ;用")"表示結(jié)構(gòu)化活動結(jié)束;用web服務(wù)編號直接表示此處調(diào)用web 服務(wù)。以上即BPEL到WS-token串的映射規(guī)則。其算法1如表1所示:
[0032] 表 1 通過 BPEL 得到 WS-token 串
[0033]
[0034]
[0035] (? 由 WS-token 串得到 WS-CDT :
[0036] WS-CDT是一個(gè)二叉樹,根據(jù)BPEL中基本活動(Basic Activity)和結(jié)構(gòu)化活動 (Structured Activity)的定義,掃描分析WS-token串,對WS-CDT進(jìn)行根節(jié)點(diǎn)和葉子結(jié)點(diǎn) 的分類,原子服務(wù)對應(yīng)著葉節(jié)點(diǎn),即服務(wù)節(jié)點(diǎn);組合服務(wù)的結(jié)構(gòu)信息轉(zhuǎn)換為內(nèi)部節(jié)點(diǎn),即控 制節(jié)點(diǎn)。最終得到包括順序、分支、并發(fā)和選擇四種結(jié)構(gòu)化活動互相嵌套、迭代的組合web 服務(wù)基本W(wǎng)S-⑶T模型。
[0037] WS-token串是一種十分有用的組合web服務(wù)結(jié)構(gòu)表示方式,它將BPEL表示的組 合web服務(wù)體系結(jié)構(gòu)轉(zhuǎn)換為可以依靠簡單的操作就能得到WS-CDT的表達(dá)方式。它的優(yōu)勢 在于只需要識別和便可以判斷基本結(jié)構(gòu)的開始與結(jié)束位置。并通過對一個(gè)棧的控 制,即可得到WS-⑶T模型。其操作方式為:從右至左掃描WS-token串,如果當(dāng)前