亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        面向軟件業(yè)務(wù)邏輯的工作流引擎(ToLWE)的設(shè)計(jì)與實(shí)現(xiàn)

        2014-04-29 00:00:00鄭超,楊永志

        摘 要:傳統(tǒng)的工作流系統(tǒng)通過(guò)管理和控制業(yè)務(wù)流程來(lái)提高企業(yè)運(yùn)行的靈活性和適應(yīng)性。本文面向軟件業(yè)務(wù)邏輯的定制和執(zhí)行實(shí)現(xiàn)了一個(gè)基于令牌協(xié)議的輕量級(jí)工作流引擎,將工作流的優(yōu)點(diǎn)引入軟件開(kāi)發(fā)領(lǐng)域,同時(shí)為其提供基于GME(通用建模環(huán)境)的可視化流程定義工具。ToLWE通過(guò)將工作流的概念引入軟件開(kāi)發(fā)中,不僅加快了軟件的開(kāi)發(fā)速度,而且提高了軟件業(yè)務(wù)邏輯的靈活性和可定制性。

        關(guān)鍵字:軟件設(shè)計(jì);工作流;工作流引擎

        中圖分類(lèi)號(hào):TP309

        從1993年工作流管理聯(lián)盟(WfMC)成立起[1],工作流技術(shù)被廣泛接受并得到了極大的發(fā)展。工作流是一類(lèi)能夠完全或者部分自動(dòng)執(zhí)行的經(jīng)營(yíng)過(guò)程,根據(jù)一系列過(guò)程規(guī)則,文檔、信息或任務(wù)在不同的執(zhí)行者之間傳遞與執(zhí)行[2]。普通軟件通過(guò)提高個(gè)人的工作效率和資源的利用率達(dá)到提高整體工作效率的目的。而工作流軟件則是通過(guò)壓縮規(guī)范工作的環(huán)節(jié),并在各個(gè)環(huán)節(jié)之間實(shí)現(xiàn)自動(dòng)化提高整個(gè)業(yè)務(wù)的完成效率。

        隨著信息技術(shù)的發(fā)展,信息系統(tǒng)越來(lái)越復(fù)雜,更新?lián)Q代的速度也越來(lái)越快。如何快速的開(kāi)發(fā)出復(fù)雜的信息系統(tǒng)已經(jīng)成為了IT設(shè)計(jì)人員的一個(gè)挑戰(zhàn)。本文將軟件開(kāi)發(fā)抽象成具體業(yè)務(wù),將相對(duì)成熟的工作流設(shè)計(jì)理念引入到了軟件系統(tǒng)設(shè)計(jì)過(guò)程中,設(shè)計(jì)實(shí)現(xiàn)了一款基于令牌協(xié)議的輕量級(jí)工作流引擎,并實(shí)現(xiàn)了基于GME(通用建模環(huán)境)[3]的可視化的流程定義工具,提高了軟件設(shè)計(jì)中業(yè)務(wù)邏輯的靈活性和可定制性,提高了軟件的開(kāi)發(fā)速度。

        1 ToLWE引擎的工作原理

        ToLWE工作流引擎的核心思想是:將軟件的業(yè)務(wù)邏輯抽象為多個(gè)相對(duì)獨(dú)立的過(guò)程(Process),每個(gè)過(guò)程進(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í)行,引擎通過(guò)控制令牌的申請(qǐng)、轉(zhuǎn)交、分裂和歸還等操作實(shí)現(xiàn)控制活動(dòng)的執(zhí)行順序最終完成軟件開(kāi)發(fā)。ToLWE工作流引擎采用了線程數(shù)可控的多線程技術(shù)提高軟件的性能。同時(shí)為了提高軟件的靈活性,支持軟件的高級(jí)用戶(hù)參與軟件流程的設(shè)計(jì),流程通過(guò)滿(mǎn)足特定規(guī)范的xml語(yǔ)言定義,并提供了可視化的流程定義工具。

        圖1 ToLWE工作流引擎工作原理示意圖

        圖1簡(jiǎn)要的描述了ToLWE引擎的工作原理,該引擎中用到的基本概念的簡(jiǎn)單定義如下。

        1.1 執(zhí)行器(Performer)

        在執(zhí)行器中定義可以執(zhí)行的基本操作,例如讀寫(xiě)存儲(chǔ)器模型,打開(kāi)界面等。執(zhí)行器負(fù)責(zé)業(yè)務(wù)(軟件設(shè)計(jì))邏輯的直接體現(xiàn),是最小的業(yè)務(wù)邏輯分解單元。

        1.2 活動(dòng)(Activity)

        是本文設(shè)計(jì)的工作流引擎的基本單元,該引擎中通過(guò)“活動(dòng)”的傳遞來(lái)實(shí)現(xiàn)軟件設(shè)計(jì)的流動(dòng),從而完成軟件設(shè)計(jì)?;顒?dòng)是流程(Process)的基本組成部分,定義了允許的流程流向。同時(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),通過(guò)引擎調(diào)用自己的“流程調(diào)用方法”(startProcess(IContext))來(lái)啟動(dòng)。

        1.4 上下文(Context)

        描述了工作流程在執(zhí)行時(shí)所處的“環(huán)境信息”,它是初始設(shè)定、各(活動(dòng))作用的載體和結(jié)果。

        如圖1所示,ToLWE引擎邏輯上可以分為四個(gè)部分,Performers,Process,Token隊(duì)列和WFEngine。其中Performers是實(shí)現(xiàn)的Performer集合,主要負(fù)責(zé)基本的業(yè)務(wù)操作。Process是用戶(hù)設(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分裂成多個(gè),分別傳遞給指定的Activities。Token的歸還是指將一個(gè)Token歸還給系統(tǒng)。ToLWE工作流引擎通過(guò)對(duì)Token的管理完成任務(wù)調(diào)度,實(shí)現(xiàn)預(yù)定功能。在WFEngine模塊中定義實(shí)現(xiàn)了多個(gè)TokenThread線程,這些線程負(fù)責(zé)執(zhí)行Process中獲得Token的Activity。引擎啟動(dòng)后,這些線程開(kāi)始工作,每個(gè)線程不停的詢(xún)問(wèn)Token隊(duì)列,根據(jù)Token隊(duì)列中Token找到擁有該Token的Activity,執(zhí)行該Activity。

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

        2 基于GME的圖形化流程建模工具

        GME(Generic Modeling Environment,通用建模環(huán)境)是范德堡大學(xué)的軟件集成系統(tǒng)學(xué)會(huì)于2001年設(shè)計(jì)完成的,是一個(gè)優(yōu)秀的可配置的流程建模環(huán)境[3]。GME通過(guò)使用系統(tǒng)內(nèi)的元數(shù)據(jù)模型來(lái)描述特定應(yīng)用程序域的模型范例來(lái)實(shí)現(xiàn)針對(duì)特定程序域的配置。模型范例是創(chuàng)建的模型的集合。模型范例包括語(yǔ)義,語(yǔ)法和表現(xiàn)形式等概念,這些概念用于構(gòu)建模型。用戶(hù)根據(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),用戶(hù)通過(guò)GUI根據(jù)創(chuàng)建的模型進(jìn)行業(yè)務(wù)邏輯建模,最終可以將建模的結(jié)果輸出到xml。GME支持對(duì)元模型(meta-model)進(jìn)行建模,通過(guò)對(duì)元模型進(jìn)行建??梢远ㄖ谱约旱腉ME的建模環(huán)境。本文針對(duì)ToLWE引擎的需要在GME基礎(chǔ)上定義開(kāi)發(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解釋器,為T(mén)oLWE引擎定制了圖形化的流程定義工具,如圖3所示。該流程建模工具根據(jù)已經(jīng)定義好的活動(dòng)對(duì)軟件的業(yè)務(wù)邏輯行為進(jìn)行可視化建模,通過(guò)ToLWE解釋器生成xml格式的Process描述文件。ToLWE引擎加載該xml文件執(zhí)行定義的Process,實(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平板電腦之間的簡(jiǎn)單的文件同步系統(tǒng),該系統(tǒng)要求實(shí)現(xiàn)將服務(wù)端(PC端)的文件和目錄同步到客戶(hù)端(Andriod平板)。圖4是通過(guò)建模環(huán)境設(shè)計(jì)實(shí)現(xiàn)的同步軟件服務(wù)端(Sync_Server)主流程(Process),該主流程除了流程入口和出口外包括兩個(gè)子流程——加載WDMVC基礎(chǔ)設(shè)施(Load wdmvc infrastructure,如圖5所示)和服務(wù)端的業(yè)務(wù)流程(Start app Process,如圖6所示)。加載WDMVC基礎(chǔ)設(shè)施流程加載引擎工作需要的資源完成引擎的準(zhǔn)備工作,是基于該引擎設(shè)計(jì)軟件的必要環(huán)節(jié)。服務(wù)端業(yè)務(wù)流程相對(duì)簡(jiǎn)單,包含了兩個(gè)活動(dòng),LoadServerObjs活動(dòng)加載服務(wù)器端對(duì)象SyncServer,以便后續(xù)程序和客戶(hù)端能夠通過(guò)對(duì)象管理器(ObjectHome)訪問(wèn);StartServerMainUI活動(dòng)啟動(dòng)服務(wù)器端的UI界面。通過(guò)我們的流程定義工具將主流程(bootprocess)生成bootprocess.xml,在軟件運(yùn)行時(shí)以bootprocess.xml作為情動(dòng)流程,啟動(dòng)軟件界面如圖7所示。

        圖4 同步軟件服務(wù)端主bootprocess

        圖5 加載WDMVC基礎(chǔ)設(shè)施流程

        圖6 服務(wù)端的業(yè)務(wù)流程

        圖7 服務(wù)端的啟動(dòng)界面

        客戶(hù)端的設(shè)計(jì)也十分簡(jiǎn)單,只需要使用本文設(shè)計(jì)的流程定義工具定義客戶(hù)端啟動(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和本地客戶(hù)端對(duì)象SyncClient,然后啟動(dòng)客戶(hù)端的UI界面。

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

        4 結(jié)束語(yǔ)

        本文將工作流的理念引入到了軟件設(shè)計(jì)過(guò)程中,設(shè)計(jì)實(shí)現(xiàn)了一款基于令牌協(xié)議的輕量級(jí)工作流引擎,和配套的可視化流程定義工具。通過(guò)文件同步系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)可以看出基于ToLWE工作流引擎進(jìn)行軟件開(kāi)發(fā)可以明顯的提高軟件開(kāi)發(fā)速度,并支持軟件的高級(jí)用戶(hù)進(jìn)行軟件自定義,極大的降低了軟件開(kāi)發(fā)的技術(shù)門(mén)檻,提高了軟件開(kāi)發(fā)的靈活性和可定制性。

        TolWE工作流引擎目前尚處在起步階段,需要根據(jù)實(shí)際需求進(jìn)行進(jìn)一步完善和改進(jìn)。ToLWE工作流引擎作為軟件設(shè)計(jì)的基礎(chǔ)設(shè)施支持持續(xù)的擴(kuò)展和完善,如執(zhí)行器,和活動(dòng)等方面的豐富。如目前已經(jīng)實(shí)現(xiàn)的timer、fork等活動(dòng)還需要進(jìn)一步完善。另外流程定義工具尚只支持流程的定義,還不能將生成好的xml文件還原成可視化的流程圖。

        參考文獻(xiàn):

        [1]http://zh.wikipedia.org/wiki/%E5%B7%A5%E4%BD%9C%E6%B5%81.

        [2]趙貴根.工作流系統(tǒng)框架研究[A].第六屆全國(guó)計(jì)算機(jī)應(yīng)用聯(lián)合學(xué)術(shù)會(huì)議論文集[C].第六屆全國(guó)計(jì)算機(jī)應(yīng)用聯(lián)合學(xué)術(shù)會(huì)議,2002:1650-1656.

        [3]Akos Ledeczi,Miklos Maroti.The Generic Modeling Environment.Copyright 2001 IEEE.

        作者簡(jiǎn)介:鄭超(1987-),男,吉林伊通人,碩士研究生,助教,研究方向:體系結(jié)構(gòu)、干部工作信息化、信息安全。

        作者單位:南京政治學(xué)院上海校區(qū)軍事信息管理系,上海 200433;國(guó)防科技大學(xué) 計(jì)算機(jī)學(xué)院,長(zhǎng)沙 410073

        vr成人片在线播放网站| 国产精品天天看大片特色视频 | 亚洲中文字幕剧情类别| 欧美老妇交乱视频在线观看 | 亚洲日韩国产一区二区三区| av无码av天天av天天爽| 少妇被粗大的猛烈进出69影院一| 亚洲国产成人精品无码区二本| 亚洲中文字幕在线观看| 一个人看的视频www免费| 国产成人av一区二区三区无码| 国产精品网站夜色| 日韩一二三四精品免费| 污污污国产免费网站| 亚洲中文字幕无线乱码va| 亚洲女同性恋第二区av| 国产的自拍av免费的在线观看| 国产精品高清视亚洲乱码| 娇小女人被黑人插免费视频| 女人被狂躁c到高潮视频| 18禁无遮挡羞羞污污污污网站| 被暴雨淋湿爆乳少妇正在播放| 国产青青草自拍视频在线播放| 亚洲av国产精品色a变脸| 国产亚洲精品在线播放| 国产欧美高清在线观看| 国产综合精品一区二区三区| 国产伦理一区二区| 日本少妇人妻xxxxx18| 国产颜射视频在线播放| 日本在线观看一区二区视频| 亚洲av免费不卡在线观看| 中国孕妇变态孕交xxxx| 亚洲成av人在线播放无码| 国产成a人亚洲精v品无码性色| 制服丝袜人妻中出第一页| 自拍偷区亚洲综合激情| 久久久久九九精品影院| 精品无码中文视频在线观看| 亚洲日韩成人无码不卡网站| 国产3p一区二区三区精品 |