面向軟件業(yè)務(wù)邏輯的工作流引擎(ToLWE)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
面向軟件業(yè)務(wù)邏輯的工作流引擎(ToLWE)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
面向軟件業(yè)務(wù)邏輯的工作流引擎(ToLWE)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁
面向軟件業(yè)務(wù)邏輯的工作流引擎(ToLWE)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁
面向軟件業(yè)務(wù)邏輯的工作流引擎(ToLWE)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、面向軟件業(yè)務(wù)邏輯的工作流引擎(ToLWE)的設(shè)計(jì)與實(shí)現(xiàn) 本文檔格式為WORD,感謝你的閱讀。 摘 要:傳統(tǒng)的工作流系統(tǒng)通過管理和控制業(yè)務(wù)流程來提高企業(yè)運(yùn)行的靈活性和適應(yīng)性。本文面向軟件業(yè)務(wù)邏輯的定制和執(zhí)行實(shí)現(xiàn)了一個(gè)基于令牌協(xié)議的輕量級(jí)工作流引擎,將工作流的優(yōu)點(diǎn)引入軟件開發(fā)領(lǐng)域,同時(shí)為其提供基于GME(通用建模環(huán)境)的可視化流程定義工具。ToLWE通過將工作流的概念引入軟件開發(fā)中,不僅加快了軟件的開發(fā)速度,而且提高了軟件業(yè)務(wù)邏輯的靈活性和可定制性。 關(guān)鍵字:軟件設(shè)計(jì);工作流;工作流引擎 TP309 從1993年工作流管理聯(lián)盟(WfMC)成立起1,工作流技術(shù)被廣泛接受并得到了極大的發(fā)展。工作流是一

2、類能夠完全或者部分自動(dòng)執(zhí)行的經(jīng)營過程,根據(jù)一系列過程規(guī)則,文檔、信息或任務(wù)在不同的執(zhí)行者之間傳遞與執(zhí)行2。普通軟件通過提高個(gè)人的工作效率和資源的利用率達(dá)到提高整體工作效率的目的。而工作流軟件則是通過壓縮規(guī)范工作的環(huán)節(jié),并在各個(gè)環(huán)節(jié)之間實(shí)現(xiàn)自動(dòng)化提高整個(gè)業(yè)務(wù)的完成效率。 隨著信息技術(shù)的發(fā)展,信息系統(tǒng)越來越復(fù)雜,更新?lián)Q代的速度也越來越快。如何快速的開發(fā)出復(fù)雜的信息系統(tǒng)已經(jīng)成為了IT設(shè)計(jì)人員的一個(gè)挑戰(zhàn)。本文將軟件開發(fā)抽象成具體業(yè)務(wù),將相對(duì)成熟的工作流設(shè)計(jì)理念引入到了軟件系統(tǒng)設(shè)計(jì)過程中,設(shè)計(jì)實(shí)現(xiàn)了一款基于令牌協(xié)議的輕量級(jí)工作流引擎,并實(shí)現(xiàn)了基于GME(通用建模環(huán)境)3的可視化的流程定義工具,提高了軟件

3、設(shè)計(jì)中業(yè)務(wù)邏輯的靈活性和可定制性,提高了軟件的開發(fā)速度。 1 ToLWE引擎的工作原理 ToLWE工作流引擎的核心思想是:將軟件的業(yè)務(wù)邏輯抽象為多個(gè)相對(duì)獨(dú)立的過程(Process),每個(gè)過程進(jìn)一步抽象為能夠完成具體行為的活動(dòng)(Activity)的集合,活動(dòng)之間連接成為一個(gè)有向圖。ToLWE工作流引擎是一款基于令牌協(xié)議的輕量級(jí)工作流引擎(ToLWE),在軟件運(yùn)行時(shí)活動(dòng)向工作流引擎申請(qǐng)令牌(Token),流程中持有令牌的活動(dòng)將被運(yùn)行的線程執(zhí)行,引擎通過控制令牌的申請(qǐng)、轉(zhuǎn)交、分裂和歸還等操作實(shí)現(xiàn)控制活動(dòng)的執(zhí)行順序最終完成軟件開發(fā)。ToLWE工作流引擎采用了線程數(shù)可控的多線程技術(shù)提高軟件的性能。同時(shí)為

4、了提高軟件的靈活性,支持軟件的高級(jí)用戶參與軟件流程的設(shè)計(jì),流程通過滿足特定規(guī)范的xml語言定義,并提供了可視化的流程定義工具。 圖1 ToLWE工作流引擎工作原理示意圖 圖1簡要的描述了ToLWE引擎的工作原理,該引擎中用到的基本概念的簡單定義如下。 1.1 執(zhí)行器(Performer) 在執(zhí)行器中定義可以執(zhí)行的基本操作,例如讀寫存儲(chǔ)器模型,打開界面等。執(zhí)行器負(fù)責(zé)業(yè)務(wù)(軟件設(shè)計(jì))邏輯的直接體現(xiàn),是最小的業(yè)務(wù)邏輯分解單元。 1.2 活動(dòng)(Activity) 是本文設(shè)計(jì)的工作流引擎的基本單元,該引擎中通過“活動(dòng)”的傳遞來實(shí)現(xiàn)軟件設(shè)計(jì)的流動(dòng),從而完成軟件設(shè)計(jì)?;顒?dòng)是流程(Process)的基本組成部

5、分,定義了允許的流程流向。同時(shí)活動(dòng)封裝了動(dòng)作行為實(shí)際執(zhí)行的執(zhí)行器。 1.3 流程(Process) 流程是活動(dòng)實(shí)例的集合,并負(fù)責(zé)活動(dòng)和上下文實(shí)例的“構(gòu)造”,一個(gè)流程可以有兩種啟動(dòng)方式:自啟動(dòng),在初始化時(shí),直接由某個(gè)(活動(dòng))向引擎申請(qǐng)令牌;它啟動(dòng),通過引擎調(diào)用自己的“流程調(diào)用方法”(startProcess(IContext)來啟動(dòng)。 1.4 上下文(Context) 描述了工作流程在執(zhí)行時(shí)所處的“環(huán)境信息”,它是初始設(shè)定、各(活動(dòng))作用的載體和結(jié)果。 如圖1所示,ToLWE引擎邏輯上可以分為四個(gè)部分,Performers,Process,Token隊(duì)列和WFEngine。其中Performer

6、s是實(shí)現(xiàn)的Performer集合,主要負(fù)責(zé)基本的業(yè)務(wù)操作。Process是用戶設(shè)計(jì)的軟件“活動(dòng)”流程。Token隊(duì)列負(fù)責(zé)保存已經(jīng)分配的令牌(Token)。WFEngine是ToLWE的核心模塊,該模塊主要負(fù)責(zé)完成兩項(xiàng)工作,Token的管理和執(zhí)行Activity。Token的管理模塊負(fù)責(zé)受理Token的申請(qǐng),為申請(qǐng)的Activity分配Token,同時(shí)支持Token的轉(zhuǎn)交,分裂和歸還等操作。Token的轉(zhuǎn)交是指將一個(gè)Token傳遞給指定的activity(或Process),指定的activity(或Process)或的Token后將會(huì)被工作流調(diào)度執(zhí)行。Token的分裂是指將一個(gè)Token分裂成

7、多個(gè),分別傳遞給指定的Activities。Token的歸還是指將一個(gè)Token歸還給系統(tǒng)。ToLWE工作流引擎通過對(duì)Token的管理完成任務(wù)調(diào)度,實(shí)現(xiàn)預(yù)定功能。在WFEngine模塊中定義實(shí)現(xiàn)了多個(gè)TokenThread線程,這些線程負(fù)責(zé)執(zhí)行Process中獲得Token的Activity。引擎啟動(dòng)后,這些線程開始工作,每個(gè)線程不停的詢問Token隊(duì)列,根據(jù)Token隊(duì)列中Token找到擁有該Token的Activity,執(zhí)行該Activity。 ToLWE引擎的基本工作過程為首先Process中的Activity向WFEngine模塊申請(qǐng)Token,WFEngine模塊為其分配Token,

8、并將該Token添加打Token隊(duì)列中。WFEngine模塊中的TokenThread線程到Token隊(duì)列中獲取Token,根據(jù)Token找到擁有該Token的Activity,執(zhí)行該Activity,在執(zhí)行過程中可能需要調(diào)用執(zhí)行器中的Performer進(jìn)行業(yè)務(wù)操作。執(zhí)行Activity完畢后,調(diào)用WFEngine模塊,完成Token的轉(zhuǎn)交或歸還。需要注意的一點(diǎn)為了便于描述,該過程是引擎工作過程中的一段相對(duì)理想化的過程,實(shí)際的工作過程相對(duì)復(fù)雜,還包含流程的加載啟動(dòng)等操作,系統(tǒng)中同時(shí)存在多個(gè)流程,引擎啟動(dòng)多個(gè)線程進(jìn)行執(zhí)行獲得令牌的Activity。 2 基于GME的圖形化流程建模工具 GME(G

9、eneric Modeling Environment,通用建模環(huán)境)是范德堡大學(xué)的軟件集成系統(tǒng)學(xué)會(huì)于2001年設(shè)計(jì)完成的,是一個(gè)優(yōu)秀的可配置的流程建模環(huán)境3。GME通過使用系統(tǒng)內(nèi)的元數(shù)據(jù)模型來描述特定應(yīng)用程序域的模型范例來實(shí)現(xiàn)針對(duì)特定程序域的配置。模型范例是創(chuàng)建的模型的集合。模型范例包括語義,語法和表現(xiàn)形式等概念,這些概念用于構(gòu)建模型。用戶根據(jù)這些創(chuàng)建好的模型對(duì)業(yè)務(wù)邏輯進(jìn)行可視化建模。GME建模環(huán)境包含解釋器解釋執(zhí)行建模結(jié)果。 圖2 GME建模環(huán)境的體系結(jié)構(gòu)3 圖2描述了GME建模環(huán)境的體系結(jié)構(gòu),用戶通過GUI根據(jù)創(chuàng)建的模型進(jìn)行業(yè)務(wù)邏輯建模,最終可以將建模的結(jié)果輸出到xml。GME支持對(duì)元模

10、型(meta-model)進(jìn)行建模,通過對(duì)元模型進(jìn)行建??梢远ㄖ谱约旱腉ME的建模環(huán)境。本文針對(duì)ToLWE引擎的需要在GME基礎(chǔ)上定義開發(fā)了Start、CronTimer、IfThen 、Switch、Case、Fork、Join、ProcessInc、ProcessRef以及用于復(fù)合的For、While等活動(dòng)(元模型),并針對(duì)這些活動(dòng)實(shí)現(xiàn)了對(duì)應(yīng)ToLWE解釋器,為ToLWE引擎定制了圖形化的流程定義工具,如圖3所示。該流程建模工具根據(jù)已經(jīng)定義好的活動(dòng)對(duì)軟件的業(yè)務(wù)邏輯行為進(jìn)行可視化建模,通過ToLWE解釋器生成xml格式的Process描述文件。ToLWE引擎加載該xml文件執(zhí)行定義的Proc

11、ess,實(shí)現(xiàn)預(yù)定的軟件功能。圖3展示了流程定義工具的操作界面,左側(cè)列出了本文定義的活動(dòng)(元模型),中間是根據(jù)這些活動(dòng)對(duì)流程進(jìn)行可視化建模,最終將定義的流程輸出為xml文件。 圖3 ToLWE圖形化建模環(huán)境 3 基于ToLWE引擎軟件實(shí)現(xiàn) 本文基于該引擎實(shí)現(xiàn)了PC機(jī)和Andriod平板電腦之間的簡單的文件同步系統(tǒng),該系統(tǒng)要求實(shí)現(xiàn)將服務(wù)端(PC端)的文件和目錄同步到客戶端(Andriod平板)。圖4是通過建模環(huán)境設(shè)計(jì)實(shí)現(xiàn)的同步軟件服務(wù)端(Sync_Server)主流程(Process),該主流程除了流程入口和出口外包括兩個(gè)子流程加載WDMVC基礎(chǔ)設(shè)施(Load wdmvc infrastructu

12、re,如圖5所示)和服務(wù)端的業(yè)務(wù)流程(Start app Process,如圖6所示)。加載WDMVC基礎(chǔ)設(shè)施流程加載引擎工作需要的資源完成引擎的準(zhǔn)備工作,是基于該引擎設(shè)計(jì)軟件的必要環(huán)節(jié)。服務(wù)端業(yè)務(wù)流程相對(duì)簡單,包含了兩個(gè)活動(dòng),LoadServerObjs活動(dòng)加載服務(wù)器端對(duì)象SyncServer,以便后續(xù)程序和客戶端能夠通過對(duì)象管理器(ObjectHome)訪問;StartServerMainUI活動(dòng)啟動(dòng)服務(wù)器端的UI界面。通過我們的流程定義工具將主流程(bootprocess)生成bootprocess.xml,在軟件運(yùn)行時(shí)以bootprocess.xml作為情動(dòng)流程,啟動(dòng)軟件界面如圖7所示

13、。 圖4 同步軟件服務(wù)端主bootprocess 圖5 加載WDMVC基礎(chǔ)設(shè)施流程 圖6 服務(wù)端的業(yè)務(wù)流程 圖7 服務(wù)端的啟動(dòng)界面 客戶端的設(shè)計(jì)也十分簡單,只需要使用本文設(shè)計(jì)的流程定義工具定義客戶端啟動(dòng)流程bootprocess_client,生成對(duì)應(yīng)的bootprocess_client.xml流程定義文件,在軟件選擇bootprocess_client.xml啟動(dòng)即可。bootprocess_client與bootprocess的區(qū)別在于前者最后啟動(dòng)的流程是sync_client活動(dòng)而不是sync_server活動(dòng)。sync_client活動(dòng)同樣先加載遠(yuǎn)程服務(wù)器端對(duì)象SyncServer和

14、本地客戶端對(duì)象SyncClient,然后啟動(dòng)客戶端的UI界面。 經(jīng)過實(shí)際驗(yàn)證基于ToLWE引擎設(shè)計(jì)的文件同步系統(tǒng)成功的PC端的文件,目錄同步到平板電腦中,軟件的工作正常。分析可以得出基于ToLWE引擎進(jìn)行軟件開發(fā)具有3個(gè)明顯優(yōu)勢(shì)。首先,引入工作流的思想后使得軟件開發(fā)的流程更加清晰規(guī)范,便于團(tuán)隊(duì)協(xié)作,軟件設(shè)計(jì)工作按流程設(shè)計(jì),Activity實(shí)現(xiàn)進(jìn)行分工,而Activity之間的開發(fā)也是獨(dú)立完成的。其次,實(shí)現(xiàn)了一次開發(fā)代碼永久使用的增量開發(fā),如元數(shù)據(jù)模型(活動(dòng))的擴(kuò)展是針對(duì)于引擎而獨(dú)立于具體軟件,其他軟件產(chǎn)品可以直接使用,極大的提高了代碼的利用率,如客戶端和服務(wù)端中共同使用了加載基礎(chǔ)設(shè)施和加載對(duì)象

15、等活動(dòng)。最后,支持軟件高級(jí)使用者參與軟件設(shè)計(jì),理想情況下使用者可以直接使用本文設(shè)計(jì)的流程定義工具定義軟件業(yè)務(wù)邏輯流程,通過引擎加載完成軟件設(shè)計(jì),極大的提高了軟件靈活性和可定制性。 4 結(jié)束語 本文將工作流的理念引入到了軟件設(shè)計(jì)過程中,設(shè)計(jì)實(shí)現(xiàn)了一款基于令牌協(xié)議的輕量級(jí)工作流引擎,和配套的可視化流程定義工具。通過文件同步系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)可以看出基于ToLWE工作流引擎進(jìn)行軟件開發(fā)可以明顯的提高軟件開發(fā)速度,并支持軟件的高級(jí)用戶進(jìn)行軟件自定義,極大的降低了軟件開發(fā)的技術(shù)門檻,提高了軟件開發(fā)的靈活性和可定制性。 TolWE工作流引擎目前尚處在起步階段,需要根據(jù)實(shí)際需求進(jìn)行進(jìn)一步完善和改進(jìn)。ToLWE工

16、作流引擎作為軟件設(shè)計(jì)的基礎(chǔ)設(shè)施支持持續(xù)的擴(kuò)展和完善,如執(zhí)行器,和活動(dòng)等方面的豐富。如目前已經(jīng)實(shí)現(xiàn)的timer、fork等活動(dòng)還需要進(jìn)一步完善。另外流程定義工具尚只支持流程的定義,還不能將生成好的xml文件還原成可視化的流程圖。 參考文獻(xiàn): 2趙貴根.工作流系統(tǒng)框架研究A.第六屆全國計(jì)算機(jī)應(yīng)用聯(lián)合學(xué)術(shù)會(huì)議論文集C.第六屆全國計(jì)算機(jī)應(yīng)用聯(lián)合學(xué)術(shù)會(huì)議,2002:1650-1656. 3Akos Ledeczi,Miklos Maroti.The Generic Modeling Environment.Copyright 2001 IEEE. 作者簡介:鄭超(1987-),男,吉林伊通人,碩士研究生,助教,研究方向:體系結(jié)構(gòu)、干部工作信息化、信息安全。 作者單位:南京政治學(xué)院上海校區(qū)軍事信息管理系,上海 200433;國防科技大學(xué) 計(jì)算機(jī)學(xué)院,長沙 410073 文檔資料:面向軟件業(yè)務(wù)邏輯的工作流引擎(ToLWE)的設(shè)計(jì)與實(shí)現(xiàn) 完整下載 完整閱讀 全文下載 全文閱讀 免費(fèi)閱讀及下載閱讀相關(guān)文檔:人工智能及識(shí)別技術(shù)的應(yīng)用研究 基于Web的網(wǎng)上購物系統(tǒng)研究 現(xiàn)代樓宇 自動(dòng)報(bào)警裝置系統(tǒng)設(shè)計(jì) 智能水表售水軟件VB編程實(shí)現(xiàn) 有線電視WOC在酒店中的應(yīng)用 淺談服務(wù)器管理中虛擬服務(wù)器技術(shù)的研究與應(yīng)用 如何做好滅火救援現(xiàn)場無線通信保障工作 四川電信軟交換升匯接局的實(shí)現(xiàn)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論