技術(shù)報(bào)告一種面向業(yè)務(wù)流程模型的仿真驗(yàn)證方法_第1頁
技術(shù)報(bào)告一種面向業(yè)務(wù)流程模型的仿真驗(yàn)證方法_第2頁
技術(shù)報(bào)告一種面向業(yè)務(wù)流程模型的仿真驗(yàn)證方法_第3頁
技術(shù)報(bào)告一種面向業(yè)務(wù)流程模型的仿真驗(yàn)證方法_第4頁
技術(shù)報(bào)告一種面向業(yè)務(wù)流程模型的仿真驗(yàn)證方法_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、計(jì)劃類別 項(xiàng)目編號(hào) 項(xiàng)目技術(shù)報(bào)告課題名稱 項(xiàng)目主持人 承擔(dān)單位 題目:一種面向業(yè)務(wù)流程模型的仿真驗(yàn)證方法基于SOA軟件構(gòu)架成為分布式解決方案的主流技術(shù),業(yè)務(wù)流程模型是SOA系統(tǒng)設(shè)計(jì)的核心,其是否存在缺陷對系統(tǒng)具有重要影響,因此,如何對業(yè)務(wù)流程進(jìn)行驗(yàn)證成為一個(gè)關(guān)鍵問題。本文圍繞業(yè)務(wù)流程模型驗(yàn)證需求,針對異構(gòu)模型的聯(lián)合仿真問題,提出基于HLA的業(yè)務(wù)流程模型仿真驗(yàn)證框架,通過對業(yè)務(wù)流程和網(wǎng)絡(luò)部署進(jìn)行仿真,有效對業(yè)務(wù)流程的功能和時(shí)間特性進(jìn)行驗(yàn)證。相關(guān)實(shí)驗(yàn)表明,本文提出的方法能夠有效發(fā)現(xiàn)業(yè)務(wù)流程中存在的設(shè)計(jì)缺陷。關(guān)鍵詞:業(yè)務(wù)流程;仿真;驗(yàn)證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ā)平臺(tái)、開發(fā)工具、操作系統(tǒng)在體系結(jié)構(gòu)上的緊耦合性,使得物理分散的獨(dú)立系統(tǒng)形成了所謂的“信息孤島”。為了有效解決這一問題,需要一種標(biāo)準(zhǔn)化、開放性的體系結(jié)構(gòu)完成從集中式到分布式的轉(zhuǎn)換,在這一背景下,面向服務(wù)的體系結(jié)構(gòu)SOA(Service Oriented Architecture)應(yīng)運(yùn)而生。典型的基于SOA的軟件開發(fā)過程往往首先建立業(yè)務(wù)流程模型,并以該模型作為系統(tǒng)設(shè)計(jì),然后根據(jù)該模型,通過服務(wù)集成方法來自動(dòng)或半自動(dòng)的產(chǎn)生系統(tǒng)實(shí)現(xiàn)。因此,業(yè)務(wù)流程模型的正確性對最終系統(tǒng)質(zhì)量具有重要影響。根據(jù)Ron Patton在軟件測試中的論述可知,設(shè)計(jì)階段存在的缺陷如果沒有及時(shí)發(fā)

6、現(xiàn),在系統(tǒng)實(shí)現(xiàn)階段修復(fù)該缺陷往往是設(shè)計(jì)階段修復(fù)缺陷費(fèi)用的100倍左右1,如果在用戶大規(guī)模使用時(shí)發(fā)現(xiàn)該缺陷,修復(fù)該缺陷的費(fèi)用往往是設(shè)計(jì)階段修復(fù)缺陷費(fèi)用的萬倍以上。由此可見,對業(yè)務(wù)流程模型開展驗(yàn)證,對提高系統(tǒng)質(zhì)量和降低軟件開發(fā)費(fèi)用大有益處。2 相關(guān)研究(Related research)目前,最常用的方法是模型檢查(Model Checking),即通過搜索系統(tǒng)的狀態(tài)空間來對模型進(jìn)行靜態(tài)的形式化分析。隨著模型規(guī)范化程度和可執(zhí)行能力的提升,將測試手段應(yīng)用于模型驗(yàn)證的方法必將被逐漸重視起來,例如可執(zhí)行UML模型的測試。(1)靜態(tài)的模型檢查方法模型檢查主要是對有限狀態(tài)的系統(tǒng)模型進(jìn)行靜態(tài)的形式化分析,通過

7、搜索系統(tǒng)的狀態(tài)空間來檢查該系統(tǒng)是否滿足期望的性質(zhì)。如果系統(tǒng)模型不能滿足某一規(guī)格說明會(huì)給出反例。現(xiàn)有模型檢查方法主要有基于語義網(wǎng)絡(luò)的方法、基于PI-演算的方法、基于Petri網(wǎng)的方法和基于模型檢測的方法。這些驗(yàn)證方法通過將系統(tǒng)轉(zhuǎn)化為形式化的模型(如Petri網(wǎng)和自動(dòng)機(jī)模型),借助模型檢測器等自動(dòng)化工具,驗(yàn)證協(xié)議和服務(wù)描述的完整性和一致性。經(jīng)典模型檢查理論已基本成熟,實(shí)現(xiàn)這些理論的經(jīng)典模型檢查器有SMV和SPINE等。狀態(tài)空間爆炸是模型檢查中需要解決的一個(gè)關(guān)鍵問題,因此關(guān)于這方面存在大量研究。除了傳統(tǒng)模型檢查中的狀態(tài)化簡技術(shù)外,更多的方法結(jié)合了程序分析中的相關(guān)技術(shù),例如:基于各種程序抽象技術(shù)計(jì)算源

8、程序的抽象程序;利用程序切片減小程序規(guī)模;通過限定程序中不確定性的類型及其可能性的數(shù)量來獲得程序狀態(tài)空間的一個(gè)有限子集。模型檢查存在一定的局限性:在對大規(guī)模復(fù)雜系統(tǒng)進(jìn)行模型檢查時(shí),狀態(tài)空間爆炸問題幾乎不可避免,因而難以對系統(tǒng)狀態(tài)空間進(jìn)行窮盡搜索;能夠驗(yàn)證的指標(biāo)受到模型描述能力的限制,對于系統(tǒng)需求中的一些非功能指標(biāo)驗(yàn)證能力不足,也難以對系統(tǒng)的綜合指標(biāo)進(jìn)行驗(yàn)證;模型檢查的形式化模型和分析算法多種多樣,沒有統(tǒng)一的標(biāo)準(zhǔn),如何決定最適合系統(tǒng)的方法存在一定難度。相較而言,軟件測試方法則是一種“普適”方法,可以解決模型檢查的上述問題。通過給出測試充分性準(zhǔn)則,避免了對系統(tǒng)的狀態(tài)進(jìn)行窮盡的測試;測試方法可以很好

9、的控制被測系統(tǒng)模型的運(yùn)行狀態(tài),尤其適合業(yè)務(wù)流程模型的這類強(qiáng)調(diào)動(dòng)態(tài)時(shí)變性的系統(tǒng);測試的適用范圍較寬,可以針對系統(tǒng)的多種功能和非功能指標(biāo)進(jìn)行測試。 (2)動(dòng)態(tài)的模型測試方法模型測試是指在系統(tǒng)開發(fā)早期利用軟件測試手段對設(shè)計(jì)模型進(jìn)行驗(yàn)證的方法。目前國內(nèi)外對于這方面的研究相對較少,典型的研究如UML設(shè)計(jì)模型測試方面。UML(Unified Modeling Language)模型是軟件領(lǐng)域中設(shè)計(jì)模型的常用表達(dá)方式。傳統(tǒng)的UML設(shè)計(jì)模型的驗(yàn)證通常通過預(yù)排、檢測和一些設(shè)計(jì)審查技術(shù),大部分屬于手工操作。對于龐大和復(fù)雜系統(tǒng)的UML設(shè)計(jì)模型的檢查,檢測人員需要手動(dòng)的跟蹤和關(guān)聯(lián)多個(gè)視圖中的概念,這是一項(xiàng)枯燥且容易出

10、錯(cuò)的工作。近來,隨著UML模型可執(zhí)行性的提高,有些研究將軟件測試方法應(yīng)用到系統(tǒng)設(shè)計(jì)的早期驗(yàn)證中,如Trung Dinh-Trong和Nilesh Kawane等人提出了一種針對UML模型設(shè)計(jì)驗(yàn)證的軟件測試方法。該方法基于UML類圖、活動(dòng)圖、交互圖生成被測模型的可測試執(zhí)行體,并依據(jù)用戶給出的測試充分性準(zhǔn)則生成測試用例,最后通過模型的模擬執(zhí)行進(jìn)行測試。通過分析測試結(jié)果與系統(tǒng)需求的一致性來驗(yàn)證被測模型設(shè)計(jì)的正確性。由于UML中多數(shù)的視圖并不具有可執(zhí)行性,或者轉(zhuǎn)換為可執(zhí)行體的方法非常復(fù)雜,且多個(gè)視圖是從不同的角度反映系統(tǒng)設(shè)計(jì),因而很難形成一個(gè)完整的模型設(shè)計(jì),因此,UML模型測試技術(shù)尚待發(fā)展,還有很多需

11、要進(jìn)一步研究的問題。3 模型驗(yàn)證流程及建模(The modeling process andmodel verification)3.1 業(yè)務(wù)流程模型仿真驗(yàn)證過程本文提出的業(yè)務(wù)流程模型仿真驗(yàn)證過程如圖1所示。根據(jù)該圖可知,業(yè)務(wù)流程模型和網(wǎng)絡(luò)部署模型需要在仿真引擎才能進(jìn)行仿真執(zhí)行,從而進(jìn)行模型驗(yàn)證。實(shí)際上業(yè)務(wù)流程往往描述系統(tǒng)的整體流程,一般使用流程圖或狀態(tài)圖進(jìn)行描述;而網(wǎng)絡(luò)部署模型往往描述系統(tǒng)實(shí)際的網(wǎng)絡(luò)部署環(huán)境,往往使用特定的網(wǎng)絡(luò)模型和仿真算法進(jìn)行建模,由于這兩類模型的差異較大,很難使用統(tǒng)一的仿真引擎進(jìn)行仿真,因此需要為此選擇適合各自模型特點(diǎn)的仿真引擎。由于業(yè)務(wù)流程模型和網(wǎng)絡(luò)部署模型需要使用不同

12、的仿真引擎進(jìn)行仿真執(zhí)行,但在仿真過程中二者需要進(jìn)行交互,這就需要對異構(gòu)仿真模型進(jìn)行協(xié)同仿真,針對這一問題,提出了基于HLA的異構(gòu)模型聯(lián)合仿真方法。在仿真過程中,通過仿真引擎將仿真過程中的信息進(jìn)行打印輸出,從而獲取仿真信息,最后通過分析上述信息就能夠?qū)崿F(xiàn)對業(yè)務(wù)流程模型的仿真分析。3.2 業(yè)務(wù)流程模型仿真根據(jù)業(yè)務(wù)流程模型特點(diǎn),選擇Stateflow插件作為為業(yè)務(wù)流程模型仿真建模工具。與常見的Matlab模型和Simulink模型相比,Stateflow插件具備可視化的建模界面,更易于建模人員進(jìn)行建模,另外,Stateflow插件提供豐富的可擴(kuò)展機(jī)制,以完成復(fù)雜的邏輯運(yùn)算。圖2給出了使用Statef

13、low插件對某數(shù)據(jù)發(fā)布服務(wù)的建模實(shí)例。其中業(yè)務(wù)流程中的活動(dòng)主要使用Stateflow中的狀態(tài)進(jìn)行描述;消息則使用Stateflow中的遷移進(jìn)行描述;部分復(fù)雜的數(shù)學(xué)邏輯可在Matlab中自行定義,然后在Stateflow中以M文件調(diào)用的方式使用。3.3 網(wǎng)絡(luò)部署模型仿真OPNET是目前最為常用的網(wǎng)絡(luò)仿真工具,其采用階層性的模擬方式,從協(xié)議間關(guān)系看,節(jié)點(diǎn)模塊建模完全符合OSI標(biāo)準(zhǔn),實(shí)現(xiàn)了從業(yè)務(wù)層TCP層IP層IP封裝層ARP層MAC層物理層的各層仿真;從網(wǎng)絡(luò)物件層次關(guān)系看,提供了三層建模機(jī)制,最底層為進(jìn)程(Process)模型,以狀態(tài)機(jī)來描述協(xié)議;其次為節(jié)點(diǎn)(Node)模型,由相應(yīng)的協(xié)議模型構(gòu)成,

14、反映設(shè)備特性;最上層為網(wǎng)絡(luò)模型。三層模型和實(shí)際的協(xié)議、設(shè)備、網(wǎng)絡(luò)完全對應(yīng),全面反映了網(wǎng)絡(luò)的相關(guān)特性。它的功能十分強(qiáng)大,采用網(wǎng)絡(luò)、節(jié)點(diǎn)、進(jìn)程三層建模機(jī)制,不僅支持面向?qū)ο蟮慕7绞?,還提供圖形化的操作界面,使用方便快捷,能夠?yàn)榫W(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ò)部署模型采用了不同的仿真引擎,而在實(shí)際仿真過程中這兩類模型之間必然存在交互,這就需要一種能夠支持異構(gòu)模型的聯(lián)合仿真方法。

15、本文采用HLA機(jī)制用以解決異構(gòu)模型聯(lián)合仿真問題。HLA技術(shù)體制是IEEE公開發(fā)布的標(biāo)準(zhǔn),該標(biāo)準(zhǔn)的主要目的是制定一套仿真框架,能夠盡量涵蓋仿真領(lǐng)域所涉及的各種不同的仿真模型,使得不同的仿真之間能夠進(jìn)行互操作,從而滿足復(fù)雜大系統(tǒng)的仿真需求4。HLA使用聯(lián)邦代表不同的仿真成員,其關(guān)注于如何由多個(gè)聯(lián)邦成員構(gòu)建聯(lián)邦,通過協(xié)議規(guī)范進(jìn)行各個(gè)聯(lián)邦成員之間的交互活動(dòng)。因此,HLA制定了十大規(guī)則,用以規(guī)范聯(lián)邦(Federation)和聯(lián)邦成員(Federate)的活動(dòng),最終組建一個(gè)用于數(shù)據(jù)交互的有序的公共虛擬執(zhí)行環(huán)境。RTI(Run-Time Infrastructure)是HLA接口規(guī)范的具體實(shí)現(xiàn),是基于HLA

16、的核心部件也是仿真應(yīng)用程序的設(shè)計(jì)和運(yùn)行的基礎(chǔ)。同時(shí),提供了仿真運(yùn)行管理功能,底層通信傳輸服務(wù),具有較好的擴(kuò)充性,實(shí)現(xiàn)了仿真系統(tǒng)中各組成部件的“即插即用”。HLA的邏輯結(jié)構(gòu)框架如圖4所示。RTI為不同的聯(lián)邦成員提供統(tǒng)一的支撐運(yùn)行環(huán)境,聯(lián)邦成員之間按照HLA協(xié)議規(guī)范的要求,通過各自的RTI代理與RTI進(jìn)程之間的交互,可以進(jìn)行聯(lián)合分布式仿真,完成聯(lián)邦成員的同步交互和聯(lián)邦的構(gòu)建。根據(jù)HLA技術(shù)機(jī)制,結(jié)合本文需要解決的技術(shù)問題,提出了一套基于HLA的異構(gòu)模型聯(lián)合仿真方法,該方法的主要結(jié)構(gòu)如圖5所示。由該圖可知,該結(jié)構(gòu)邏輯上分為模型層和運(yùn)行層。模型層負(fù)責(zé)業(yè)務(wù)流程和網(wǎng)絡(luò)部署模型的設(shè)計(jì)、仿真參數(shù)的配置、邦元集

17、成接口約定和邦元數(shù)據(jù)交互模型,為運(yùn)行層提供仿真實(shí)體模型;運(yùn)行層負(fù)責(zé)封裝各類模型并集成RTI代理組成不同的聯(lián)邦成員。 RTI代理的執(zhí)行流程如圖6所示。一般而言,進(jìn)行時(shí)間推進(jìn)之前,需要完成所有的初始化工作;此外,聯(lián)邦成員的設(shè)計(jì)模式(單/多線程)取決于仿真軟件所支持的方式,如VC支持多線程,可采用多線程模式設(shè)計(jì);MATLAB不支持多線程,可利用S-Function自帶的循環(huán)采樣方式設(shè)計(jì);OPNET不支持多線程,可利用設(shè)置循環(huán)自中斷事件的方式設(shè)計(jì)。5 系統(tǒng)實(shí)現(xiàn)與實(shí)驗(yàn)驗(yàn)證(System implementation and experimental verification)5.1 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)本文提

18、出的仿真驗(yàn)證方法實(shí)現(xiàn)的原型系統(tǒng)結(jié)構(gòu)如圖8所示。由于仿真引擎在仿真過程中占用的系統(tǒng)資源較多,為了盡可能的提高仿真效率,我們將不同仿真引擎部署在不同機(jī)器上,這就需要在仿真過程中對整體仿真環(huán)境進(jìn)行統(tǒng)一的控制,因此我們設(shè)計(jì)了分布式仿真控制模塊,該模塊能夠輔助仿真分析人員對整體仿真環(huán)境進(jìn)行統(tǒng)一的控制。除此之外,設(shè)計(jì)了統(tǒng)一的數(shù)據(jù)存儲(chǔ)環(huán)境,將分布式仿真過程中的產(chǎn)生的仿真信息統(tǒng)一存儲(chǔ)到數(shù)據(jù)庫中,待仿真結(jié)束后,使用結(jié)果分析工具從數(shù)據(jù)庫中抽取仿真信息,進(jìn)行功能、性能以及可靠性等方面的分析。系統(tǒng)使用C+語言在VS 2010環(huán)境中進(jìn)行開發(fā)。系統(tǒng)使用過程中,仿真人員需要開發(fā)仿真腳本,然后使用分布式仿真控制端將仿真腳本分

19、發(fā)到仿真引擎所在機(jī)器,然后發(fā)布聯(lián)合仿真請求;仿真引擎收到仿真腳本后,根據(jù)仿真腳本中設(shè)置的相關(guān)參數(shù)啟動(dòng)仿真引擎并加入聯(lián)合仿真環(huán)境,然后讀取仿真腳本開始聯(lián)合仿真;仿真過程中產(chǎn)生的相關(guān)信息存入遠(yuǎn)程數(shù)據(jù)庫;當(dāng)仿真結(jié)束后,通知測試人員仿真結(jié)束,測試人員使用測試結(jié)果分析工具進(jìn)行結(jié)果分析,完成整個(gè)仿真驗(yàn)證過程。5.2 實(shí)驗(yàn)驗(yàn)證為了對本文提出的業(yè)務(wù)流程模型驗(yàn)證方法進(jìn)行有效性驗(yàn)證,本文以某數(shù)據(jù)發(fā)布服務(wù)的業(yè)務(wù)流程作為待驗(yàn)?zāi)P瓦M(jìn)行典型實(shí)驗(yàn)。實(shí)驗(yàn)過程中對業(yè)務(wù)流程模型隨機(jī)植入缺陷,進(jìn)行多次實(shí)驗(yàn)統(tǒng)計(jì)缺陷發(fā)現(xiàn)比例,將缺陷發(fā)現(xiàn)比例作為評(píng)價(jià)方法有效性的標(biāo)準(zhǔn)。參考文獻(xiàn)5指出,常見設(shè)計(jì)缺陷主要包括:死鎖、狀態(tài)不可達(dá)、分支條件以及流

20、程錯(cuò)誤等。根據(jù)上述缺陷的特點(diǎn),從業(yè)務(wù)流程中選擇40個(gè)缺陷植入位置,每次實(shí)驗(yàn)從上述植入位置中任選三個(gè)缺陷進(jìn)行植入,共進(jìn)行30次實(shí)驗(yàn),每次實(shí)驗(yàn)計(jì)算各類典型缺陷的發(fā)現(xiàn)比例,最終實(shí)驗(yàn)結(jié)果如圖9左方柱狀圖所示。除此之外,由于本方法還對網(wǎng)絡(luò)環(huán)境進(jìn)行了仿真,因此能夠統(tǒng)計(jì)網(wǎng)絡(luò)仿真情況,圖9右方的表格給出了流程平均執(zhí)行時(shí)間和網(wǎng)絡(luò)節(jié)點(diǎn)忙閑比等信息。由該實(shí)驗(yàn)可知:在功能缺陷方面,能夠準(zhǔn)確發(fā)現(xiàn)死鎖、流程錯(cuò)誤和絕大部分分支條件錯(cuò)誤;在非功能分析方面,可以獲取模型執(zhí)行時(shí)間、節(jié)點(diǎn)空閑比和網(wǎng)絡(luò)流量等信息,能夠支持一定的設(shè)計(jì)方案分析。6 結(jié)論(Conclusion)本文提出使用仿真手段對模型進(jìn)行驗(yàn)證,以降低系統(tǒng)實(shí)現(xiàn)的風(fēng)險(xiǎn)。與常規(guī)模型驗(yàn)證方法相比,該方法能夠有效檢驗(yàn)系統(tǒng)實(shí)際運(yùn)行才能表現(xiàn)出的缺陷,除此之外,該方法嘗試對影響業(yè)務(wù)能力的網(wǎng)絡(luò)環(huán)境等因素進(jìn)行建模,并進(jì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)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論