版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、計劃類別 項目編號 項目技術(shù)報告課題名稱 項目主持人 承擔(dān)單位 題目:一種面向業(yè)務(wù)流程模型的仿真驗證方法基于SOA軟件構(gòu)架成為分布式解決方案的主流技術(shù),業(yè)務(wù)流程模型是SOA系統(tǒng)設(shè)計的核心,其是否存在缺陷對系統(tǒng)具有重要影響,因此,如何對業(yè)務(wù)流程進行驗證成為一個關(guān)鍵問題。本文圍繞業(yè)務(wù)流程模型驗證需求,針對異構(gòu)模型的聯(lián)合仿真問題,提出基于HLA的業(yè)務(wù)流程模型仿真驗證框架,通過對業(yè)務(wù)流程和網(wǎng)絡(luò)部署進行仿真,有效對業(yè)務(wù)流程的功能和時間特性進行驗證。相關(guān)實驗表明,本文提出的方法能夠有效發(fā)現(xiàn)業(yè)務(wù)流程中存在的設(shè)計缺陷。關(guān)鍵詞:業(yè)務(wù)流程;仿真;驗證Abstract:SOA software architectu
2、re has become the mainstream technology of distributed solutions.As the business process model is the core of SOA system design,it is significantly important whether there are some flaws in it.Therefore,the effective verification method of the business process model is quite critical.To meet the ver
3、ification requirements of the business process model,this paper offers a solution to the collaborative simulation of the heterogeneous model,and puts forward the simulation verification framework of the business process model based on HLA.Through the simulation of the business process and the networ
4、k deployment,the verification of the function and time characteristics is effectively implemented.The experimental results show that the proposed method can effectively find the design flaws in the business process.Keywords:business process;simulation;verification1 引言(Introduction)隨著軟件開發(fā)技術(shù)的不斷發(fā)展,信息系統(tǒng)
5、的功能日新月異。但由于不同軟件的開發(fā)平臺、開發(fā)工具、操作系統(tǒng)在體系結(jié)構(gòu)上的緊耦合性,使得物理分散的獨立系統(tǒng)形成了所謂的“信息孤島”。為了有效解決這一問題,需要一種標(biāo)準(zhǔn)化、開放性的體系結(jié)構(gòu)完成從集中式到分布式的轉(zhuǎn)換,在這一背景下,面向服務(wù)的體系結(jié)構(gòu)SOA(Service Oriented Architecture)應(yīng)運而生。典型的基于SOA的軟件開發(fā)過程往往首先建立業(yè)務(wù)流程模型,并以該模型作為系統(tǒng)設(shè)計,然后根據(jù)該模型,通過服務(wù)集成方法來自動或半自動的產(chǎn)生系統(tǒng)實現(xiàn)。因此,業(yè)務(wù)流程模型的正確性對最終系統(tǒng)質(zhì)量具有重要影響。根據(jù)Ron Patton在軟件測試中的論述可知,設(shè)計階段存在的缺陷如果沒有及時發(fā)
6、現(xiàn),在系統(tǒng)實現(xiàn)階段修復(fù)該缺陷往往是設(shè)計階段修復(fù)缺陷費用的100倍左右1,如果在用戶大規(guī)模使用時發(fā)現(xiàn)該缺陷,修復(fù)該缺陷的費用往往是設(shè)計階段修復(fù)缺陷費用的萬倍以上。由此可見,對業(yè)務(wù)流程模型開展驗證,對提高系統(tǒng)質(zhì)量和降低軟件開發(fā)費用大有益處。2 相關(guān)研究(Related research)目前,最常用的方法是模型檢查(Model Checking),即通過搜索系統(tǒng)的狀態(tài)空間來對模型進行靜態(tài)的形式化分析。隨著模型規(guī)范化程度和可執(zhí)行能力的提升,將測試手段應(yīng)用于模型驗證的方法必將被逐漸重視起來,例如可執(zhí)行UML模型的測試。(1)靜態(tài)的模型檢查方法模型檢查主要是對有限狀態(tài)的系統(tǒng)模型進行靜態(tài)的形式化分析,通過
7、搜索系統(tǒng)的狀態(tài)空間來檢查該系統(tǒng)是否滿足期望的性質(zhì)。如果系統(tǒng)模型不能滿足某一規(guī)格說明會給出反例。現(xiàn)有模型檢查方法主要有基于語義網(wǎng)絡(luò)的方法、基于PI-演算的方法、基于Petri網(wǎng)的方法和基于模型檢測的方法。這些驗證方法通過將系統(tǒng)轉(zhuǎn)化為形式化的模型(如Petri網(wǎng)和自動機模型),借助模型檢測器等自動化工具,驗證協(xié)議和服務(wù)描述的完整性和一致性。經(jīng)典模型檢查理論已基本成熟,實現(xiàn)這些理論的經(jīng)典模型檢查器有SMV和SPINE等。狀態(tài)空間爆炸是模型檢查中需要解決的一個關(guān)鍵問題,因此關(guān)于這方面存在大量研究。除了傳統(tǒng)模型檢查中的狀態(tài)化簡技術(shù)外,更多的方法結(jié)合了程序分析中的相關(guān)技術(shù),例如:基于各種程序抽象技術(shù)計算源
8、程序的抽象程序;利用程序切片減小程序規(guī)模;通過限定程序中不確定性的類型及其可能性的數(shù)量來獲得程序狀態(tài)空間的一個有限子集。模型檢查存在一定的局限性:在對大規(guī)模復(fù)雜系統(tǒng)進行模型檢查時,狀態(tài)空間爆炸問題幾乎不可避免,因而難以對系統(tǒng)狀態(tài)空間進行窮盡搜索;能夠驗證的指標(biāo)受到模型描述能力的限制,對于系統(tǒng)需求中的一些非功能指標(biāo)驗證能力不足,也難以對系統(tǒng)的綜合指標(biāo)進行驗證;模型檢查的形式化模型和分析算法多種多樣,沒有統(tǒng)一的標(biāo)準(zhǔn),如何決定最適合系統(tǒng)的方法存在一定難度。相較而言,軟件測試方法則是一種“普適”方法,可以解決模型檢查的上述問題。通過給出測試充分性準(zhǔn)則,避免了對系統(tǒng)的狀態(tài)進行窮盡的測試;測試方法可以很好
9、的控制被測系統(tǒng)模型的運行狀態(tài),尤其適合業(yè)務(wù)流程模型的這類強調(diào)動態(tài)時變性的系統(tǒng);測試的適用范圍較寬,可以針對系統(tǒng)的多種功能和非功能指標(biāo)進行測試。 (2)動態(tài)的模型測試方法模型測試是指在系統(tǒng)開發(fā)早期利用軟件測試手段對設(shè)計模型進行驗證的方法。目前國內(nèi)外對于這方面的研究相對較少,典型的研究如UML設(shè)計模型測試方面。UML(Unified Modeling Language)模型是軟件領(lǐng)域中設(shè)計模型的常用表達方式。傳統(tǒng)的UML設(shè)計模型的驗證通常通過預(yù)排、檢測和一些設(shè)計審查技術(shù),大部分屬于手工操作。對于龐大和復(fù)雜系統(tǒng)的UML設(shè)計模型的檢查,檢測人員需要手動的跟蹤和關(guān)聯(lián)多個視圖中的概念,這是一項枯燥且容易出
10、錯的工作。近來,隨著UML模型可執(zhí)行性的提高,有些研究將軟件測試方法應(yīng)用到系統(tǒng)設(shè)計的早期驗證中,如Trung Dinh-Trong和Nilesh Kawane等人提出了一種針對UML模型設(shè)計驗證的軟件測試方法。該方法基于UML類圖、活動圖、交互圖生成被測模型的可測試執(zhí)行體,并依據(jù)用戶給出的測試充分性準(zhǔn)則生成測試用例,最后通過模型的模擬執(zhí)行進行測試。通過分析測試結(jié)果與系統(tǒng)需求的一致性來驗證被測模型設(shè)計的正確性。由于UML中多數(shù)的視圖并不具有可執(zhí)行性,或者轉(zhuǎn)換為可執(zhí)行體的方法非常復(fù)雜,且多個視圖是從不同的角度反映系統(tǒng)設(shè)計,因而很難形成一個完整的模型設(shè)計,因此,UML模型測試技術(shù)尚待發(fā)展,還有很多需
11、要進一步研究的問題。3 模型驗證流程及建模(The modeling process andmodel verification)3.1 業(yè)務(wù)流程模型仿真驗證過程本文提出的業(yè)務(wù)流程模型仿真驗證過程如圖1所示。根據(jù)該圖可知,業(yè)務(wù)流程模型和網(wǎng)絡(luò)部署模型需要在仿真引擎才能進行仿真執(zhí)行,從而進行模型驗證。實際上業(yè)務(wù)流程往往描述系統(tǒng)的整體流程,一般使用流程圖或狀態(tài)圖進行描述;而網(wǎng)絡(luò)部署模型往往描述系統(tǒng)實際的網(wǎng)絡(luò)部署環(huán)境,往往使用特定的網(wǎng)絡(luò)模型和仿真算法進行建模,由于這兩類模型的差異較大,很難使用統(tǒng)一的仿真引擎進行仿真,因此需要為此選擇適合各自模型特點的仿真引擎。由于業(yè)務(wù)流程模型和網(wǎng)絡(luò)部署模型需要使用不同
12、的仿真引擎進行仿真執(zhí)行,但在仿真過程中二者需要進行交互,這就需要對異構(gòu)仿真模型進行協(xié)同仿真,針對這一問題,提出了基于HLA的異構(gòu)模型聯(lián)合仿真方法。在仿真過程中,通過仿真引擎將仿真過程中的信息進行打印輸出,從而獲取仿真信息,最后通過分析上述信息就能夠?qū)崿F(xiàn)對業(yè)務(wù)流程模型的仿真分析。3.2 業(yè)務(wù)流程模型仿真根據(jù)業(yè)務(wù)流程模型特點,選擇Stateflow插件作為為業(yè)務(wù)流程模型仿真建模工具。與常見的Matlab模型和Simulink模型相比,Stateflow插件具備可視化的建模界面,更易于建模人員進行建模,另外,Stateflow插件提供豐富的可擴展機制,以完成復(fù)雜的邏輯運算。圖2給出了使用Statef
13、low插件對某數(shù)據(jù)發(fā)布服務(wù)的建模實例。其中業(yè)務(wù)流程中的活動主要使用Stateflow中的狀態(tài)進行描述;消息則使用Stateflow中的遷移進行描述;部分復(fù)雜的數(shù)學(xué)邏輯可在Matlab中自行定義,然后在Stateflow中以M文件調(diào)用的方式使用。3.3 網(wǎng)絡(luò)部署模型仿真OPNET是目前最為常用的網(wǎng)絡(luò)仿真工具,其采用階層性的模擬方式,從協(xié)議間關(guān)系看,節(jié)點模塊建模完全符合OSI標(biāo)準(zhǔn),實現(xiàn)了從業(yè)務(wù)層TCP層IP層IP封裝層ARP層MAC層物理層的各層仿真;從網(wǎng)絡(luò)物件層次關(guān)系看,提供了三層建模機制,最底層為進程(Process)模型,以狀態(tài)機來描述協(xié)議;其次為節(jié)點(Node)模型,由相應(yīng)的協(xié)議模型構(gòu)成,
14、反映設(shè)備特性;最上層為網(wǎng)絡(luò)模型。三層模型和實際的協(xié)議、設(shè)備、網(wǎng)絡(luò)完全對應(yīng),全面反映了網(wǎng)絡(luò)的相關(guān)特性。它的功能十分強大,采用網(wǎng)絡(luò)、節(jié)點、進程三層建模機制,不僅支持面向?qū)ο蟮慕7绞剑€提供圖形化的操作界面,使用方便快捷,能夠為網(wǎng)絡(luò)系統(tǒng)的建模提供良好的開發(fā)環(huán)境3。圖3給出了使用OPNET建立的小型局域網(wǎng)模型。4 基于HLA的異構(gòu)模型聯(lián)合仿真方法(Co simulation of heterogeneous model method based on HLA)由于業(yè)務(wù)流程模型和網(wǎng)絡(luò)部署模型采用了不同的仿真引擎,而在實際仿真過程中這兩類模型之間必然存在交互,這就需要一種能夠支持異構(gòu)模型的聯(lián)合仿真方法。
15、本文采用HLA機制用以解決異構(gòu)模型聯(lián)合仿真問題。HLA技術(shù)體制是IEEE公開發(fā)布的標(biāo)準(zhǔn),該標(biāo)準(zhǔn)的主要目的是制定一套仿真框架,能夠盡量涵蓋仿真領(lǐng)域所涉及的各種不同的仿真模型,使得不同的仿真之間能夠進行互操作,從而滿足復(fù)雜大系統(tǒng)的仿真需求4。HLA使用聯(lián)邦代表不同的仿真成員,其關(guān)注于如何由多個聯(lián)邦成員構(gòu)建聯(lián)邦,通過協(xié)議規(guī)范進行各個聯(lián)邦成員之間的交互活動。因此,HLA制定了十大規(guī)則,用以規(guī)范聯(lián)邦(Federation)和聯(lián)邦成員(Federate)的活動,最終組建一個用于數(shù)據(jù)交互的有序的公共虛擬執(zhí)行環(huán)境。RTI(Run-Time Infrastructure)是HLA接口規(guī)范的具體實現(xiàn),是基于HLA
16、的核心部件也是仿真應(yīng)用程序的設(shè)計和運行的基礎(chǔ)。同時,提供了仿真運行管理功能,底層通信傳輸服務(wù),具有較好的擴充性,實現(xiàn)了仿真系統(tǒng)中各組成部件的“即插即用”。HLA的邏輯結(jié)構(gòu)框架如圖4所示。RTI為不同的聯(lián)邦成員提供統(tǒng)一的支撐運行環(huán)境,聯(lián)邦成員之間按照HLA協(xié)議規(guī)范的要求,通過各自的RTI代理與RTI進程之間的交互,可以進行聯(lián)合分布式仿真,完成聯(lián)邦成員的同步交互和聯(lián)邦的構(gòu)建。根據(jù)HLA技術(shù)機制,結(jié)合本文需要解決的技術(shù)問題,提出了一套基于HLA的異構(gòu)模型聯(lián)合仿真方法,該方法的主要結(jié)構(gòu)如圖5所示。由該圖可知,該結(jié)構(gòu)邏輯上分為模型層和運行層。模型層負(fù)責(zé)業(yè)務(wù)流程和網(wǎng)絡(luò)部署模型的設(shè)計、仿真參數(shù)的配置、邦元集
17、成接口約定和邦元數(shù)據(jù)交互模型,為運行層提供仿真實體模型;運行層負(fù)責(zé)封裝各類模型并集成RTI代理組成不同的聯(lián)邦成員。 RTI代理的執(zhí)行流程如圖6所示。一般而言,進行時間推進之前,需要完成所有的初始化工作;此外,聯(lián)邦成員的設(shè)計模式(單/多線程)取決于仿真軟件所支持的方式,如VC支持多線程,可采用多線程模式設(shè)計;MATLAB不支持多線程,可利用S-Function自帶的循環(huán)采樣方式設(shè)計;OPNET不支持多線程,可利用設(shè)置循環(huán)自中斷事件的方式設(shè)計。5 系統(tǒng)實現(xiàn)與實驗驗證(System implementation and experimental verification)5.1 系統(tǒng)設(shè)計與實現(xiàn)本文提
18、出的仿真驗證方法實現(xiàn)的原型系統(tǒng)結(jié)構(gòu)如圖8所示。由于仿真引擎在仿真過程中占用的系統(tǒng)資源較多,為了盡可能的提高仿真效率,我們將不同仿真引擎部署在不同機器上,這就需要在仿真過程中對整體仿真環(huán)境進行統(tǒng)一的控制,因此我們設(shè)計了分布式仿真控制模塊,該模塊能夠輔助仿真分析人員對整體仿真環(huán)境進行統(tǒng)一的控制。除此之外,設(shè)計了統(tǒng)一的數(shù)據(jù)存儲環(huán)境,將分布式仿真過程中的產(chǎn)生的仿真信息統(tǒng)一存儲到數(shù)據(jù)庫中,待仿真結(jié)束后,使用結(jié)果分析工具從數(shù)據(jù)庫中抽取仿真信息,進行功能、性能以及可靠性等方面的分析。系統(tǒng)使用C+語言在VS 2010環(huán)境中進行開發(fā)。系統(tǒng)使用過程中,仿真人員需要開發(fā)仿真腳本,然后使用分布式仿真控制端將仿真腳本分
19、發(fā)到仿真引擎所在機器,然后發(fā)布聯(lián)合仿真請求;仿真引擎收到仿真腳本后,根據(jù)仿真腳本中設(shè)置的相關(guān)參數(shù)啟動仿真引擎并加入聯(lián)合仿真環(huán)境,然后讀取仿真腳本開始聯(lián)合仿真;仿真過程中產(chǎn)生的相關(guān)信息存入遠程數(shù)據(jù)庫;當(dāng)仿真結(jié)束后,通知測試人員仿真結(jié)束,測試人員使用測試結(jié)果分析工具進行結(jié)果分析,完成整個仿真驗證過程。5.2 實驗驗證為了對本文提出的業(yè)務(wù)流程模型驗證方法進行有效性驗證,本文以某數(shù)據(jù)發(fā)布服務(wù)的業(yè)務(wù)流程作為待驗?zāi)P瓦M行典型實驗。實驗過程中對業(yè)務(wù)流程模型隨機植入缺陷,進行多次實驗統(tǒng)計缺陷發(fā)現(xiàn)比例,將缺陷發(fā)現(xiàn)比例作為評價方法有效性的標(biāo)準(zhǔn)。參考文獻5指出,常見設(shè)計缺陷主要包括:死鎖、狀態(tài)不可達、分支條件以及流
20、程錯誤等。根據(jù)上述缺陷的特點,從業(yè)務(wù)流程中選擇40個缺陷植入位置,每次實驗從上述植入位置中任選三個缺陷進行植入,共進行30次實驗,每次實驗計算各類典型缺陷的發(fā)現(xiàn)比例,最終實驗結(jié)果如圖9左方柱狀圖所示。除此之外,由于本方法還對網(wǎng)絡(luò)環(huán)境進行了仿真,因此能夠統(tǒng)計網(wǎng)絡(luò)仿真情況,圖9右方的表格給出了流程平均執(zhí)行時間和網(wǎng)絡(luò)節(jié)點忙閑比等信息。由該實驗可知:在功能缺陷方面,能夠準(zhǔn)確發(fā)現(xiàn)死鎖、流程錯誤和絕大部分分支條件錯誤;在非功能分析方面,可以獲取模型執(zhí)行時間、節(jié)點空閑比和網(wǎng)絡(luò)流量等信息,能夠支持一定的設(shè)計方案分析。6 結(jié)論(Conclusion)本文提出使用仿真手段對模型進行驗證,以降低系統(tǒng)實現(xiàn)的風(fēng)險。與常規(guī)模型驗證方法相比,該方法能夠有效檢驗系統(tǒng)實際運行才能表現(xiàn)出的缺陷,除此之外,該方法嘗試對影響業(yè)務(wù)能力的網(wǎng)絡(luò)環(huán)境等因素進行建模,并進行聯(lián)合仿真,能夠支持對系統(tǒng)更為全面的分析。隨著信
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度鏟車租賃及保養(yǎng)維護合同范本2篇
- 二零二五版影視作品獨家發(fā)行及宣傳推廣合同3篇
- 標(biāo)題5:2025版智能交通系統(tǒng)建設(shè)承包合同范本3篇
- 二零二五年礦山資產(chǎn)轉(zhuǎn)讓與礦山安全生產(chǎn)監(jiān)督合同3篇
- 浙江省購房合同2025年度7月1日起實施修訂2篇
- 二零二五年度水電安裝與施工監(jiān)理兼職合同2篇
- 二零二五版鈑金展柜環(huán)保認(rèn)證與綠色產(chǎn)品采購合同3篇
- 二零二五版單位間融資保證借款合同3篇
- 二零二五年鋼筋原材料市場風(fēng)險管理合同2篇
- 二零二五版?zhèn)€性化家庭貨物配送服務(wù)合同范本3篇
- 河南省鄭州外國語高中-【高二】【上期中】【把握現(xiàn)在 蓄力高三】家長會【課件】
- 天津市武清區(qū)2024-2025學(xué)年八年級(上)期末物理試卷(含解析)
- 2025年中煤電力有限公司招聘筆試參考題庫含答案解析
- 企業(yè)內(nèi)部控制與財務(wù)風(fēng)險防范
- 高端民用航空復(fù)材智能制造交付中心項目環(huán)評資料環(huán)境影響
- 建設(shè)項目施工現(xiàn)場春節(jié)放假期間的安全管理方案
- 胃潴留護理查房
- 污水處理廠運營方案計劃
- 山東省高等學(xué)校精品課程
- 三菱張力控制器LE-40MTA-E說明書
- 生活垃圾填埋場污染控制標(biāo)準(zhǔn)
評論
0/150
提交評論