国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于泳道的工作流引擎回退機制研究與實現(xiàn)

2014-09-21 11:57
關(guān)鍵詞:執(zhí)行者泳道引擎

卓 皓

(福建幼兒師范高等??茖W校,福州 350007)

隨著教育信息化的發(fā)展,越來越多的高校開始自行設(shè)計信息管理系統(tǒng)供日常教學和行政工作使用。福建幼兒師范高等專科學校(以下簡稱“閩幼?!?從2012年開始著手開發(fā)科研管理系統(tǒng)。為了實現(xiàn)科研審批流程處理的自動化,使用開源工作流引擎JBPM(Java Business Process Management)作為對科研流程審批和管理的核心載體,該工作流引擎強大的功能能夠?qū)θ5目蒲袑徟凸芾砉ぷ髌鸬綇姶蟮闹巫饔?。但在設(shè)計過程中,JBPM工作流引擎西方式的管理模式和設(shè)計理念與學校所規(guī)定的審批流程在一些細節(jié)功能上有較大矛盾,流程回退即其中的一個典型問題。當某個流程不符合要求時,往往需要退回給原始執(zhí)行人進行重新編輯。這期間如果是多人聯(lián)合執(zhí)行的任務,則需要退回給多個流程執(zhí)行者,經(jīng)常會涉及到多級回退,而JBPM工作流引擎缺乏相應的回退機制。因此需要針對閩幼專的基本情況設(shè)計特殊的回退機制,并將該功能整合到JBPM工作流引擎中。

1 回退機制執(zhí)行流程

“回退”是辦公審批行為中比較常見的一個流程動作,在一定程度上能夠體現(xiàn)出辦公審批的效率和規(guī)范程度。成熟規(guī)范的審批流程,一般每個執(zhí)行環(huán)節(jié)都十分嚴謹,“回退”情況出現(xiàn)得相對較少甚至根本不出現(xiàn)。西方發(fā)達國家的辦公審批行為十分規(guī)范,在實際審批流程中,基本不會出現(xiàn)退回重做的情況,這也就是JBPM作為世界級著名工作流引擎而缺少“回退”處理機制的主要原因。

在我國,由于體制性原因,政府機關(guān)和事業(yè)單位在辦公審批行為上受諸如上級文件規(guī)定、單位自身文件規(guī)定和其他法律法規(guī)的制約,因此流程十分復雜,經(jīng)常對不符合要求或者有欠缺的流程動作用到回退機制?;赝藱C制基本原理如圖1所示。

圖1 回退機制原理圖

由圖1可以看出,流程的執(zhí)行有許多執(zhí)行者參與,流程的創(chuàng)建者往往是初始執(zhí)行者,然后依次是執(zhí)行者1,執(zhí)行者2,…,執(zhí)行者N,向上一級執(zhí)行者的回退行為稱為“單級回退”,跨過若干個執(zhí)行者的回退行為稱為“多級回退”。成功而有效的回退機制必須達到3個標準:一是流程必須成功回退給初始執(zhí)行者;第二是流程和行為相關(guān)的數(shù)據(jù)都必須回滾到目標節(jié)點的當時現(xiàn)場;第三是流程控制狀態(tài)必須回滾到目標節(jié)點狀態(tài)。

對于工作流引擎,回退算法實現(xiàn)起來比較復雜,大部分工作流引擎不支持回退。所以為了實現(xiàn)回退,除了依靠復雜的算法來實現(xiàn)以外,還可以借助任務流、角色流和工作流引擎日志來實現(xiàn),可以在上下文環(huán)境中新增角色流和任務流的記錄,或者通過對工作流日志信息的讀取來間接實現(xiàn)。這種做法技術(shù)難度低,易于實現(xiàn),但效率較低。

2 使用泳道原理設(shè)計并實現(xiàn)回退機制

在分析了若干回退機制實現(xiàn)方法后,筆者設(shè)計了一種使用泳道原理的回退機制。相對而言,泳道是一種比較科學合理且高效的實現(xiàn)方法。在JBPM工作流引擎中,泳道是用來分配一個流程中若干個任務的初始執(zhí)行者。當?shù)谝粋€任務實例被分配到某個泳道之后,第一個任務實例的執(zhí)行者就確定下來,泳道內(nèi)的后續(xù)任務均由此人執(zhí)行。

福建幼兒師范高等??茖W??蒲泄芾硇畔⑾到y(tǒng)的審批回退流程為例,具體說明使用泳道概念設(shè)計和實現(xiàn)審批流程回退機制的原理(圖2)。

圖2 科研管理審批回退原理

新建泳道分配給審批任務的初次執(zhí)行者,由該執(zhí)行者發(fā)起流程;接著流程進入文件規(guī)范性審核節(jié)點,在該節(jié)點中文件和數(shù)據(jù)的規(guī)范性將被認真審核,如果不符合相關(guān)規(guī)定的要求,則任務被退回到流程發(fā)起者;如果規(guī)范性審核通過,則進入下面若干個任務節(jié)點,這些節(jié)點的任務是審批,參與者是具有審批權(quán)限的相關(guān)負責人;審批負責人若認為該任務需要重做,則將任務回退到流程發(fā)起者;如果不需要重做,則根據(jù)審批結(jié)果流程進入結(jié)束環(huán)節(jié)。

使用泳道概念進行任務分配的具體步驟如下:

(1)檢測Task任務屬性是否有swinlane這個對象實例,若有,則由任務實例taskInstance將特定的ActorID或者PooledActors分配給這個泳道。

(2)如果泳道實例不存在,則新建該實例swinlane,接著調(diào)用分配代理類assignmentHandler,通過代理機制獲取ActorID或者PooledActors,并將其指定為Task對象的執(zhí)行者。

第一任務執(zhí)行者將在首個任務實例泳道創(chuàng)建后被流程所記錄,該執(zhí)行者將在同一個泳道后續(xù)任務中繼續(xù)執(zhí)行任務,利用泳道所特有的“記憶”機制,原始執(zhí)行者將在任務后續(xù)執(zhí)行時被分配任務。圖2所述流程需要兩個泳道,分別是“發(fā)起者”和“審批者”泳道,并將任務和泳道相互綁定。

3 設(shè)計代碼

用泳道原理設(shè)計的回退機制的核心控制文件是XML文件(其余Java實現(xiàn)代碼略),其中創(chuàng)建泳道的XML代碼如下:

4 結(jié)語

在回退機制中,無論是多級回退或者是單級回退,只要將泳道分配給回退的任務,就可以使得任務正?;赝说阶畛鯃?zhí)行者處,狀態(tài)現(xiàn)場可以同時返回。具體流程執(zhí)行數(shù)據(jù)不能夠回退,也不需要回退。

總之,通過使用泳道的基本原理對JBPM工作流引擎任務回退機制的研究和設(shè)計,彌補了該引擎對于回退機制支持的不足,使該工作流引擎既能夠適用于不同的業(yè)務場景,又能夠擴展并實現(xiàn)更具個性化的功能,滿足我國高校各種OA審批系統(tǒng)對于審批流程特殊的需求。

[1]卓皓.基于工作流引擎的科研審批流程的設(shè)計與實現(xiàn)[J].中國教育技術(shù)裝備,2011,10(33):111 -113.

[2]卓皓.多功能在線考試系統(tǒng)的設(shè)計與實現(xiàn)[D].成都:電子科技大學,2010.

[3]卓皓.低耦合智能分布式工作流引擎的設(shè)計[J].赤峰學院學報,2012,12:59 -61.

[4]高杰.深入淺出 JBPM[M].北京:人民郵電出版社,2009:21-23.

猜你喜歡
執(zhí)行者泳道引擎
奔奔兔學游泳
家蠶色氨酸羥化酶 (TRH) 基因的克隆及表達特性分析
“最關(guān)鍵”的施工力量——決策者、執(zhí)行者與實施者
藍谷: “涉藍”新引擎
淺談副校長在學校管理中的定位
游泳池里的航母
無形的引擎
基于Cocos2d引擎的PuzzleGame開發(fā)
泳道少了61厘米
被動語態(tài)考點解讀與演練
渭南市| 山东| 资源县| 景德镇市| 天长市| 海安县| 榆林市| 湘潭市| 射阳县| 馆陶县| 陇川县| 永春县| 通道| 伊宁县| 金川县| 泾源县| 泸定县| 左权县| 阜新市| 龙井市| 广元市| 仙桃市| 周口市| 奉新县| 枝江市| 利川市| 横山县| 花垣县| 天长市| 巴里| 泾川县| 泸西县| 安乡县| 东城区| 南平市| 沙坪坝区| 夏河县| 尚义县| 滨海县| 榆树市| 柳林县|