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

?

基于JBPM和角色分組的并行路由算法

2016-11-30 05:19朱付保湯萌萌謝利杰朱顥東
關(guān)鍵詞:會簽行路分組

朱付保, 湯萌萌, 謝利杰, 朱顥東

(鄭州輕工業(yè)學(xué)院 計算機與通信工程學(xué)院, 鄭州 450002)

?

基于JBPM和角色分組的并行路由算法

朱付保, 湯萌萌, 謝利杰, 朱顥東*

(鄭州輕工業(yè)學(xué)院 計算機與通信工程學(xué)院, 鄭州 450002)

JBPM在流程的推進(jìn)過程中要選擇相應(yīng)的路徑進(jìn)行流轉(zhuǎn),其中并行路由是一種最為復(fù)雜的路徑選擇方法.但初始化路經(jīng)參數(shù)時,并行路由算法節(jié)點定義復(fù)雜,需要預(yù)先定義子路徑流程模板,并且逐一對XML文件節(jié)點賦值導(dǎo)致效率較低.針對這一問題,提出了一種基于JBPM與角色分組的并行路由算法.該算法引用角色分組的理論,通過運用角色查詢單個分組的方法將并行路由分支參數(shù)初始化,生成多個并行子路徑節(jié)點信息,進(jìn)而將每個節(jié)點信息分組存放數(shù)據(jù)庫中,對數(shù)據(jù)進(jìn)行統(tǒng)一處理,提高初始化子路徑參數(shù)的效率.改進(jìn)后的算法應(yīng)用到房地產(chǎn)OA辦公系統(tǒng)的請假會簽功能中,在實踐上取得良好效果,滿足業(yè)務(wù)流程靈活多變的需求.

JBPM; 多分支; 并行路由; 角色分組; 工作流

在信息化的推進(jìn),計算機網(wǎng)絡(luò)的迅速發(fā)展,辦公軟件日益應(yīng)用普遍的情況下,越來越多的公司單位選擇辦公軟件進(jìn)行即時辦公,“無紙化辦公”已經(jīng)成為一種趨勢.基于我國特殊的國情需要,在實際的應(yīng)用中,會提出一些特殊的工作流需求.JBPM作為一種流行的工作流引擎,擁有著JBOSS的優(yōu)點,開創(chuàng)的平臺有利于更好設(shè)計及開發(fā)和實現(xiàn)業(yè)務(wù)流程管理系統(tǒng),具有自己獨特優(yōu)勢,能夠通過編碼滿足業(yè)務(wù)上特殊的需求,適應(yīng)商業(yè)化的軟件應(yīng)用.

本文介紹了JBPM工作流引擎的并行路由算法,描述了工作流多分支推進(jìn)的原理.以房地產(chǎn)OA辦公系統(tǒng)中的請假為例,在典型的并行路由算法的基礎(chǔ)上,提出了結(jié)合角色獲取任務(wù)改進(jìn)方法,使JBPM能夠更靈活滿足客戶多變的需求,提高了系統(tǒng)的可擴展性,進(jìn)一步克服了“硬編碼”實現(xiàn)業(yè)務(wù)流程的缺點.

1 JBPM工作流引擎相關(guān)介紹

1.1JBPM工作流

工作流是針對日常工作中具有固定程序的活動而提出的一個概念,它依據(jù)規(guī)定的過程規(guī)則,文檔、信息或任務(wù)能夠在不同執(zhí)行者之間進(jìn)行傳遞和執(zhí)行[1-3].工作流技術(shù)按照事先設(shè)定的規(guī)則和程序來對將工作分成的任務(wù)進(jìn)行執(zhí)行,提高工作的效率.JBPM是一種開源的、靈活的、易于擴展基于J2EE的輕量級工作流管理系統(tǒng)[4-5].它沒有以BPEL或WfMC標(biāo)準(zhǔn)去實現(xiàn)流程引擎,而是采用了JPDL(JBPM Process Definition Language)語言,使得更加簡單,易于閱讀[5-7].

1.2并行路由定義

路徑路由是指工作流引擎在程序選擇路徑流動時的基本模式,MFMC組織的規(guī)范中給出了順序、條件、并行、循環(huán)4種路由模式[8].同編程語言有類比關(guān)系,但從某種程度上來說路徑路由又與網(wǎng)絡(luò)環(huán)境中的“路徑路由”類似,在適用范圍上不同.并行路由是4種路由模式中最為復(fù)雜的一種, 對于審批的人來說是無差別的(審批人員不需要等待別人的審批結(jié)果),可以同步或異步地進(jìn)行文件簽署.但是并行路由模式在處理特殊工作流程上具有一定的優(yōu)勢.

2 JBPM并行路由機制算法描述

啟動JBPM工作流引擎后,其按照xml配置文件初始化數(shù)據(jù),流程定義中有按照并行路由模式時,需要逐一將數(shù)據(jù)用variablesMap.put(key, value)方法保存在數(shù)據(jù)庫JBPM_TASK表中.工作流流轉(zhuǎn)時按照節(jié)點將數(shù)據(jù)先將所有的任務(wù)節(jié)點數(shù)據(jù)和任務(wù)節(jié)點數(shù)據(jù)所對應(yīng)的后續(xù)流程節(jié)點數(shù)據(jù)從流程數(shù)據(jù)庫中取出來.任務(wù)節(jié)點fork執(zhí)行時產(chǎn)生新的子路徑,于此同時還要判斷各個子路徑是否都執(zhí)行完全且都匯聚于此join節(jié)點.并行路由機制需要join產(chǎn)生的子節(jié)點都匯聚才會啟動父路徑,讓父節(jié)點流轉(zhuǎn)到下一個節(jié)點.

算法的核心思想描述:JBPM啟動工作流后按照事先定義的xml文件進(jìn)行自動化節(jié)點[9-10].自動化節(jié)點前需要在配置文件中定義好每個節(jié)點信息.在執(zhí)行節(jié)點為fork類型時,流程將根據(jù)提供的數(shù)據(jù)自動生成所對應(yīng)的N個子節(jié)點,分支節(jié)點如圖1所示.

圖1 分支節(jié)點圖Fig.1 Branching node graph

進(jìn)入fork節(jié)點后,使用上下文指定循環(huán)次數(shù)即N次,同時指定阻塞狀態(tài)值.并行的N個task,每執(zhí)行完一個task,此task任務(wù)消失.1到N個task任務(wù)都被執(zhí)行完成之后,將在join節(jié)點匯聚同時父路徑重新被激活,工作流引擎將自動完成流轉(zhuǎn)到下一個節(jié)點.

3 基于JBPM與角色分組的并行路由算法

基于JBPM與角色分組的并行路由的算法流程如圖2所示,通過對并行路由機制的算法定義說明,具體描述如下.

1) 執(zhí)行fork任務(wù)節(jié)點時,上下文生成N個子任務(wù)節(jié)點,根據(jù)系統(tǒng)的用戶角色列出流程流轉(zhuǎn)待審批處理人員.

2) 按照程序的設(shè)定根據(jù)配置文件循環(huán)地在流程中為每個候選人建一個候選分組Group.JBPM創(chuàng)建分組Group時,原本應(yīng)該一個分組有多個候選人員candidater,當(dāng)其中一個候選人取出任務(wù)并處理,其他候選人就不能再執(zhí)行該任務(wù).改進(jìn)后使用角色賦值,將每個Group只存放一個候選人,這樣使得每個候選人必定能獲取處理自己對應(yīng)的任務(wù)信息.這樣N個候選人對應(yīng)N個子節(jié)點和N個分組,同時流程中生成N條子路徑.

3) 用戶登錄系統(tǒng)后,系統(tǒng)按照用戶id獲取對應(yīng)候選人分組的任務(wù)信息,并進(jìn)行處理.

圖2 基于JBPM與角色分組的并行路由算法流程圖Fig.2 Flow chart of parallel routing algorithm based on JBPM and role grouping

4) 子路徑到達(dá)jion節(jié)點后就完成,首先子路徑結(jié)束自身,然后從父路徑那獲取其他所有兄弟路徑的執(zhí)行狀態(tài),一旦子路徑都關(guān)閉,意味著完成N個子任務(wù),最后匯聚到j(luò)oin節(jié)點,按照join節(jié)點后續(xù)路徑流轉(zhuǎn).

4 應(yīng)用實例

以房地產(chǎn)OA辦公系統(tǒng)為例,將并行路由算法結(jié)合角色任務(wù)獲得,對JBPM并行路由算法進(jìn)行相應(yīng)靈活改進(jìn)運用.使得此算法在會簽實現(xiàn)上更加靈活,滿足實際應(yīng)用需求.

在系統(tǒng)中請假人可能參與多個項目,請假需要參與的項目對應(yīng)負(fù)責(zé)人審批通過,審批都通過之后才由請假人所在的部門主管審批.

1) 示例流程定義

2) 示例流程圖

圖3 請假流程圖Fig.3 Leave process chart

流程中定義了負(fù)責(zé)人分組名字變量#{projectnames}和分組數(shù)目變量#{projectsize},還定義了負(fù)責(zé)人變量#{project}.部門主管角色用變量#{bmzg}來賦值.

3) 根據(jù)申請人對應(yīng)的角色找出該角色所參與的項目的負(fù)責(zé)人.按照項目負(fù)責(zé)人的數(shù)目創(chuàng)建相等數(shù)量分組Group.

(1)先創(chuàng)建一個等于負(fù)責(zé)人數(shù)量的數(shù)組projectname,語句為:

String projectname[]=new String[projectsize];

(2)循環(huán)為角色取出的負(fù)責(zé)人創(chuàng)建分組,語句為:

for(intm=0;m

Project project=projectlist.get(m);

Stringlogname=project.getEmployee().getLoginName();

String msize=m+""+timestamp;

projectname[m]=msize;

if(null==identityService.findGroupById(msize)){

identityService.createGroup(msize);

if(null=identityService.findUserById(logname)){identityService.createUser(logname,logname,logname);

identityService.createMembership(logname,msize);

}

}

4) 請假流程啟動后生成的任務(wù)節(jié)點及任務(wù)節(jié)點所對應(yīng)的后續(xù)節(jié)點保存在相應(yīng)的數(shù)據(jù)庫表中,取出流程數(shù)據(jù)如表1所示[8].

表1 任務(wù)節(jié)點數(shù)據(jù)表

5) 根據(jù)用戶id找到該用戶作為候選人的分組,獲取任務(wù)task并進(jìn)行處理,實現(xiàn)的語句如下:

ListtaskList=processEngine.getTaskService().findGroupTasks(userId);由于用戶還有其他任務(wù)信息待處理,為了方便取出任務(wù)信息做統(tǒng)一處理,首先可以將taskList任務(wù)列表根據(jù)用戶的id存放到個人任務(wù)中即(PersonalTask),然后在按取出個人任務(wù)的方法獲取任務(wù)并處理.

6) 所有候選用戶都處理任務(wù),如果處理的任務(wù)狀態(tài)都是同意通過,則將匯聚到j(luò)oin任務(wù)節(jié)點流轉(zhuǎn)到下一個節(jié)點信息.此時為項目負(fù)責(zé)人審批創(chuàng)建的子路徑結(jié)束,節(jié)點流轉(zhuǎn)匯聚到j(luò)oin,然后自動流轉(zhuǎn)到下個節(jié)點即部門負(fù)責(zé)人審批節(jié)點.

7) 根據(jù)角色信息,系統(tǒng)動態(tài)指定部門負(fù)責(zé)人節(jié)點的審批人.設(shè)定的審批人取出任務(wù)信息處理后,流轉(zhuǎn)到結(jié)束節(jié)點信息,請假流程自動結(jié)束.

5 實驗結(jié)果分析

為了驗證試驗的算法的有效性、可靠穩(wěn)定性,以硬件設(shè)備為一臺win7系統(tǒng)的PC機,采用 Intel i7處理器,內(nèi)存為8GB.軟件環(huán)境使用MyEclipse 10.6下集成SSH JBPM框架作為測試環(huán)境.通過java編程來控制實現(xiàn)相關(guān)定義的工作流,最后用測試單元Junit進(jìn)行流程執(zhí)行的測試,沒有采用將系統(tǒng)部署到Apache Tomcat容器中,而是采用單元測試方案進(jìn)行測試.

圖4和圖5中的實驗結(jié)果來看,對于系統(tǒng)測試單元請假會簽的初始化,本文基于角色分組并行路由算法的不僅執(zhí)行時間與傳統(tǒng)算法相比明顯減少,而且內(nèi)存消耗方面也略低于傳統(tǒng)算法,主要是由于本文算法在執(zhí)行過程中查詢項目負(fù)責(zé)人(即會簽人員)信息按程序循環(huán)對節(jié)點數(shù)據(jù)賦值,不同于傳統(tǒng)算法提前在XML文件中逐一定義節(jié)點信息.本算法為流程提供了保障,流程運行正確率100%.在多變的需求中,本算法使得流程定義更加簡潔,能夠快速的基于已有的業(yè)務(wù)信息構(gòu)建新的流程,降低軟件的開發(fā)的成本.結(jié)果表明,相同條件下,基于角色分組并行路由算法的應(yīng)用比傳統(tǒng)算法運行時間縮短,內(nèi)存消耗較少,同時應(yīng)用在會簽中能提10%的編碼效率.

圖4 在pc上測試運行時間比較Fig.4 Test run time comparison on PC

圖5 在pc上測試內(nèi)存消耗比較Fig.5 Test memory consumption on PC

6 結(jié)束語

本文結(jié)合了JBPM并行路由選擇路徑的原理,介紹了JBPM實現(xiàn)會簽功能的并行路徑選擇推進(jìn)機制.現(xiàn)實生活中的特殊的業(yè)務(wù)需要多人同時審批通過流轉(zhuǎn)下一個環(huán)節(jié),JBPM會簽功能正是用于實現(xiàn)這樣的功能.然而在實際應(yīng)用中多人會簽審批的人數(shù)會隨著上下文條件變動,直接傳統(tǒng)賦值指定審批人編碼會有些繁瑣.文中提出了運用JBPM的分組候選人結(jié)合角色賦值法,避免了“硬編碼”實現(xiàn)功能的缺點,分配和接受任務(wù)更加靈活,提高軟件的開發(fā)效率并使系統(tǒng)有更強的可擴展性.

[1] 屠曉麗, 姚明海, 湯幸江. 工作流管理系統(tǒng)的柔性技術(shù)研究與應(yīng)用[J]. 計算機技術(shù)與發(fā)展, 2010, 20(1):120-123.

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

[3] 董崇杰. 基于JBPM流程設(shè)計器[J]. 計算機系統(tǒng)應(yīng)用, 2013, 22(10):55-59.

[4] 張利君, 馬 駿, 楊 濤, 等. 基于工作流的動態(tài)任務(wù)調(diào)度研究與實現(xiàn)[J]. 計算機工程與設(shè)計, 2009, 30(10): 2533-2538.

[5] 范玉順, 羅海濱. 工作流管理技術(shù)基礎(chǔ)[M]. 北京: 清華大學(xué)出版社, 2001.

[6] 王 迪, 陳 暉. 基于工作流的高校電子公文流轉(zhuǎn)系統(tǒng)設(shè)計與實現(xiàn)[J]. 電腦知識與技術(shù), 2014 (15):3528-3530.

[7] WANG Y G,LI H S. Application and research of JBPM workflow based on JBoss seam[C]//Shenyang:2010 2nd International Conference on Advanced Computer Control(ICACC).USA:IEEE, 2010, 515-518.

[8] 吉 梅, 陳力瓊. JBPM工作流在教務(wù)管理系統(tǒng)中的應(yīng)用[J]. 計算機應(yīng)用與軟件, 2011, 28(6):230-231.

[9] 顧大明. 基于JBPM 的工作流會簽設(shè)計[J]. 民營科技,2010(12):50-50.

[10] 王 偉, 徐文勝. JBPM 流程定義文件自動生成算法[J]. 計算機應(yīng)用, 2012, 32( S2):89-91.

Parallel routing algorithm based on JBPM and role grouping

ZHU Fubao, TANG Mengmeng, XIE Lijie, ZHU Haodong

(School of Computer and Communication Engineering,Zhengzhou University of Light Industry, Zhengzhou 450002)

In the process of promoting JBPM appropriate transfer path is required .The parallel routing is one of the most complex and flexible path selection methods. However, definition of algorithm nodes in parameter initialization of the parallel routing is complicated because of the requirement of pre-defined sub-path process templates, which resulting in low efficiency in assigning for each of the XML document node. To solve this problem, a parallel routing algorithm based on JBPM and role grouping was proposed. The algorithm

the theory of role grouping. The algorithm uses role query for a single packet method to initialize the parameters of parallel routing, generating a plurality of parallel sub-path nodes’ information. Then information of each nodes is grouped to store in the database in order to unify for processing and improve the efficiency of sub-path parameter setting. The improved algorithm is applied to real estate OA office system for leave function, achieving good results in practice as well as meeting the demand for flexibility of the business process.

JBPM; multi branch; parallel routing; role grouping; workflow

2015-12-18.

國家自然科學(xué)基金項目(61201447); 河南省科技攻關(guān)項目(122102210492); 河南省教育廳科學(xué)技術(shù)研究重點項目(13A520368;13A520367); 河南省高等學(xué)校青年骨干教師資助計劃項目(2014GGJS-084); 鄭州輕工業(yè)學(xué)院校級青年骨干教師培養(yǎng)對象資助計劃項目(XGGJS02); 鄭州輕工業(yè)學(xué)院博士科研基金資助項目(2010BSJJ038).

1000-1190(2016)04-0501-05

TP393.02

A

*通訊聯(lián)系人. E-mail: zhuhaodong80@163.com.

猜你喜歡
會簽行路分組
淺談航天型號產(chǎn)品文件的質(zhì)量會簽
舉步有禮 行路不難
反洗錢行路致遠(yuǎn)
分組搭配
怎么分組
行路不知難
分組
工作流技術(shù)在信息通信資源申請中的應(yīng)用研究
讓公文會簽業(yè)務(wù)高效、合理
西行路上(組詩)
霍州市| 南郑县| 沁水县| 南宁市| 怀化市| 柳江县| 岢岚县| 周宁县| 和政县| 潮州市| 卢龙县| 宁德市| 平舆县| 台江县| 疏附县| 沙雅县| 吉木乃县| 镇宁| 财经| 普洱| 泸溪县| 柘荣县| 海盐县| 阜阳市| 高尔夫| 八宿县| 贡觉县| 大庆市| 稻城县| 呼伦贝尔市| 克拉玛依市| 琼海市| 襄汾县| 江门市| 绵阳市| 台南市| 四子王旗| 儋州市| 马山县| 泸溪县| 长泰县|