基于jbpm工作流引擎的業(yè)務(wù)流程管理方法
【專利摘要】基于JBPM工作流引擎的業(yè)務(wù)流程管理方法,包括以下步驟:(1)整合系統(tǒng)所需Jbpm所需jar包到系統(tǒng)WEB-INF/lib目錄下;(2)jBPM依賴與自身的數(shù)據(jù)庫(kù),需要將jBPM依賴的數(shù)據(jù)庫(kù)整合到系統(tǒng)數(shù)據(jù)庫(kù)中;(3)采用Hibernate對(duì)數(shù)據(jù)庫(kù)的操作實(shí)現(xiàn)全自動(dòng)事務(wù)管理;(4)對(duì)于多數(shù)據(jù)源管理通過自定義的多數(shù)據(jù)源支持類實(shí)現(xiàn);(5)采用c3p0數(shù)據(jù)庫(kù)連接池技術(shù),利用sqljdbc4建立與數(shù)據(jù)庫(kù)的連接并管理這些連接,不再每次訪問數(shù)據(jù)庫(kù)都重新發(fā)送數(shù)據(jù)庫(kù)連接請(qǐng)求,只要在c3p0的連接池中拿一個(gè)用即可。
【專利說明】
基于JBPM工作流引擎的業(yè)務(wù)流程管理方法
技術(shù)領(lǐng)域
[0001]本發(fā)明屬于計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域,涉及一種通過網(wǎng)絡(luò)進(jìn)行業(yè)務(wù)管理的方法。
【背景技術(shù)】
[0002]現(xiàn)有網(wǎng)上對(duì)業(yè)務(wù)流程化管理的實(shí)現(xiàn)通過數(shù)據(jù)庫(kù)流程信息人工手動(dòng)標(biāo)注流程階段實(shí)現(xiàn),實(shí)現(xiàn)手段落后,實(shí)現(xiàn)復(fù)雜,不利于后期維護(hù)。使用jBPM工作流引擎可以改善現(xiàn)有開發(fā)流程化業(yè)務(wù)的弊端。同時(shí)采用新的數(shù)據(jù)庫(kù)管理方式,可以大大提高數(shù)據(jù)庫(kù)性能,解決系統(tǒng)性能瓶頸問題。
【發(fā)明內(nèi)容】
[0003]本發(fā)明目的是改善企業(yè)現(xiàn)有的工作流程實(shí)現(xiàn)方式;結(jié)合現(xiàn)有的開發(fā)框架,集成JBPM工作流工具,通過動(dòng)態(tài)數(shù)據(jù)源管理技術(shù),解決現(xiàn)有系統(tǒng)與jBPM工作流在事務(wù)管理、數(shù)據(jù)源管理中的沖突。本發(fā)明將有效提高開發(fā)效率,降低后期維護(hù)難度。
[0004]基于JBPM工作流引擎的業(yè)務(wù)流程管理方法,其特征在于包括以下步驟:
[0005](I)整合系統(tǒng)所需Jbpm所需jar包到系統(tǒng)WEB-1NF/lib目錄下;
[0006](2) JBPM依賴與自身的數(shù)據(jù)庫(kù),需要將jBPM依賴的數(shù)據(jù)庫(kù)整合到系統(tǒng)數(shù)據(jù)庫(kù)中,系統(tǒng)采用 oracle 數(shù)據(jù)庫(kù),在 jbpm\install\src\db\create 中找到對(duì)應(yīng)的 jbpm.0racle,create, sql創(chuàng)建文件導(dǎo)入oracle執(zhí)行;
[0007](3) jBPM采用Hibernate對(duì)數(shù)據(jù)庫(kù)的操作實(shí)現(xiàn)全自動(dòng),事務(wù)管理要整合ibaits和hibernate 到同一個(gè)事務(wù)中,米用 Transact1nAwareDataSourceProxy 來管理事務(wù);
[0008](4)對(duì)于多數(shù)據(jù)源管理通過自定義的多數(shù)據(jù)源支持類實(shí)現(xiàn);
[0009](5)采用c3p0數(shù)據(jù)庫(kù)連接池技術(shù),利用sql jdbc4建立與數(shù)據(jù)庫(kù)的連接并管理這些連接,不再每次訪問數(shù)據(jù)庫(kù)都重新發(fā)送數(shù)據(jù)庫(kù)連接請(qǐng)求,只要在c3p0的連接池中拿一個(gè)用即可。
[0010]本發(fā)明改進(jìn)了數(shù)據(jù)庫(kù)管理的方式,大大提高系統(tǒng)的性能??梢院?jiǎn)化流程化工作的開發(fā)時(shí)間,降低后期維護(hù)的難度。同時(shí),由于解決了 jBPM與現(xiàn)有系統(tǒng)的沖突問題,現(xiàn)有系統(tǒng)的開發(fā)框架將不必重新搭建,不再需要重復(fù)開發(fā),有效提高了企業(yè)的開發(fā)效率,減少了不必要的成本支出,提高了企業(yè)利潤(rùn)。
【具體實(shí)施方式】
[0011]本發(fā)明技術(shù)方案涉及到的技術(shù)工具包括:Spring、JBPM、ibatis、webwork。
[0012]技術(shù)實(shí)現(xiàn)方案如下:
[0013]整合系統(tǒng)所需Jbpm所需jar包到系統(tǒng)WEB-1NF/lib目錄下;
[0014]JBPM依賴與自身的數(shù)據(jù)庫(kù),需要將jBPM依賴的數(shù)據(jù)庫(kù)整合到系統(tǒng)數(shù)據(jù)庫(kù)中,系統(tǒng)米用 oracle數(shù)據(jù)庫(kù),在 jbpm\install\src\db\create 中找到對(duì)應(yīng)的 jbpm.0racle, create,sql創(chuàng)建文件導(dǎo)入oracle執(zhí)行;
[0015]jBPM采用Hibernate對(duì)數(shù)據(jù)庫(kù)的操作實(shí)現(xiàn)全自動(dòng),而現(xiàn)有系統(tǒng)對(duì)數(shù)據(jù)庫(kù)的管理才有ibatis半自動(dòng)方式實(shí)現(xiàn),所以事務(wù)管理要整合ibaits和hibernate到同一個(gè)事務(wù)中,故米用 Transact1nAwareDataSourceProxy 來管理事務(wù)。
[0016]對(duì)于多數(shù)據(jù)源管理通過自定義的多數(shù)據(jù)源支持類實(shí)現(xiàn)。
[0017]由于采用多數(shù)據(jù)源,以及多種數(shù)據(jù)持久化工具,故采用c3p0數(shù)據(jù)庫(kù)連接池技術(shù),利用sql jdbc4建立與數(shù)據(jù)庫(kù)的連接并管理這些連接,不再需要每次訪問數(shù)據(jù)庫(kù)都重新發(fā)送數(shù)據(jù)庫(kù)連接請(qǐng)求,只需要在c3p0的連接池中拿一個(gè)用即可,大大提高系統(tǒng)性能。
[0018]本發(fā)明呢一種具體實(shí)施例流程如下:
[0019]第一步,準(zhǔn)備工作。將jBPM以及hibernate中的jar包導(dǎo)入工程Iib包中。
[0020]第二步,整合jBPM 與 Spring,注冊(cè) <bean>springHelper,實(shí)現(xiàn) jBPM 中工作流引擎 <bean>:processEngine,創(chuàng)建方法為:createProcessEngine。由此實(shí)現(xiàn) spring 對(duì)jbpm的支持。由于jBPM默認(rèn)的數(shù)據(jù)持久化工具為hibernate,而現(xiàn)有系統(tǒng)采用ibaits數(shù)據(jù)持久化工具,故需要配置多數(shù)據(jù)源支持。由于需要將hibernate和ibatis統(tǒng)一采用一個(gè)事務(wù)管理,所以在dataSource中米用Transact1nAwareDataSourceProxy來管理事務(wù)。<bean>dynamicDataSource為多數(shù)據(jù)源支持配置,其中需要自定義多數(shù)據(jù)源支持類DynamicDataSource 實(shí)現(xiàn),
[0021]采用spring中c3p0池連方式管理數(shù)據(jù)庫(kù)連接池,改變以往程序訪問數(shù)據(jù)庫(kù)需要新建連接池的方式,只需要訪問c3p0保存的連接池保存的連接即可。
[0022]第三步,ibatis與 spring 整合;
[0023]第四步,hibernate與 spring 整合;
[0024]第五步,配置統(tǒng)一的事務(wù)管理;
[0025]第六步,完成以上配置后,可以設(shè)計(jì)流程測(cè)試,此流程實(shí)現(xiàn)一個(gè)簡(jiǎn)單流程,一個(gè)開始:startl,2個(gè)任務(wù):A、B,一個(gè)結(jié)束:endl。
[0026]此代碼實(shí)現(xiàn)功能為:通過processEngine創(chuàng)建一個(gè)流程實(shí)例,輸出A、B待處理任務(wù)個(gè)數(shù)、任務(wù)ID。測(cè)試結(jié)果如下:
[0027]發(fā)布流程ID:20001
[0028]流程實(shí)例ID: swing.20007
[0029]A待任務(wù)處理數(shù):2
[0030]A待處理任務(wù)id: 10008
[0031]A待處理任務(wù)id:20008
[0032]B待任務(wù)處理數(shù):2
[0033]B待處理任務(wù)id:20012
[0034]B 待處理任務(wù) id:200010
[0035]由結(jié)果可以看到,發(fā)布流程ID為20001,流程實(shí)例ID為:swing.20007,A待處理任務(wù)數(shù)為:2,待處理任務(wù)ID為:10008、20008,B待處理任務(wù)數(shù)為2,待處理任務(wù)ID為20012,20010。
[0036]由測(cè)試結(jié)果可以看出,上文提到的技術(shù)方案是可行的,可以實(shí)現(xiàn)在不影響原系統(tǒng)的架構(gòu)和功能基礎(chǔ)上,整合jBPM工作流引擎到系統(tǒng)中。
【主權(quán)項(xiàng)】
1.基于JBPM工作流引擎的業(yè)務(wù)流程管理方法,其特征在于包括以下步驟: (1)整合系統(tǒng)所需Jbpm所需jar包到系統(tǒng)WEB-1NF/lib目錄下; (2)JBPM依賴與自身的數(shù)據(jù)庫(kù),需要將jBPM依賴的數(shù)據(jù)庫(kù)整合到系統(tǒng)數(shù)據(jù)庫(kù)中,系統(tǒng)米用 oracle數(shù)據(jù)庫(kù),在 jbpm\install\src\db\create 中找到對(duì)應(yīng)的 jbpm.0racle, create,sql創(chuàng)建文件導(dǎo)入oracle執(zhí)行; (3)jBPM采用Hibernate對(duì)數(shù)據(jù)庫(kù)的操作實(shí)現(xiàn)全自動(dòng),事務(wù)管理要整合ibaits和hibernate 到同一個(gè)事務(wù)中,米用 Transact1nAwareDataSourceProxy 來管理事務(wù); (4)對(duì)于多數(shù)據(jù)源管理通過自定義的多數(shù)據(jù)源支持類實(shí)現(xiàn); (5)采用c3p0數(shù)據(jù)庫(kù)連接池技術(shù),利用sqljdbc4建立與數(shù)據(jù)庫(kù)的連接并管理這些連接,不再每次訪問數(shù)據(jù)庫(kù)都重新發(fā)送數(shù)據(jù)庫(kù)連接請(qǐng)求,只要在c3p0的連接池中拿一個(gè)用即可。
【文檔編號(hào)】G06Q10/06GK105893374SQ201410727674
【公開日】2016年8月24日
【申請(qǐng)日】2014年12月4日
【發(fā)明人】張守業(yè)
【申請(qǐng)人】北京航天長(zhǎng)峰科技工業(yè)集團(tuán)有限公司