![基于JBPM的公文流轉(zhuǎn)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁](http://file4.renrendoc.com/view/927f818846579cdd9b0ca08eed10fbe2/927f818846579cdd9b0ca08eed10fbe21.gif)
![基于JBPM的公文流轉(zhuǎn)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁](http://file4.renrendoc.com/view/927f818846579cdd9b0ca08eed10fbe2/927f818846579cdd9b0ca08eed10fbe22.gif)
![基于JBPM的公文流轉(zhuǎn)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁](http://file4.renrendoc.com/view/927f818846579cdd9b0ca08eed10fbe2/927f818846579cdd9b0ca08eed10fbe23.gif)
![基于JBPM的公文流轉(zhuǎn)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁](http://file4.renrendoc.com/view/927f818846579cdd9b0ca08eed10fbe2/927f818846579cdd9b0ca08eed10fbe24.gif)
![基于JBPM的公文流轉(zhuǎn)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁](http://file4.renrendoc.com/view/927f818846579cdd9b0ca08eed10fbe2/927f818846579cdd9b0ca08eed10fbe25.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于JBPM的公文流轉(zhuǎn)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)論文導(dǎo)讀:功能穩(wěn)健且強(qiáng)大的公文流轉(zhuǎn)系統(tǒng)不僅大大高了OA系統(tǒng)工作流的轉(zhuǎn)速,而且明確了辦公人員的責(zé)任歸屬。J2EE的開發(fā)模式適合工作流性質(zhì)軟件的開發(fā),在開發(fā)模式上與ASPNet相似,但具有更強(qiáng)的靈活性。JBPM原理:總的來說,JBPM是通過對(duì)圖進(jìn)行解釋執(zhí)行的,相對(duì)于其它支持技術(shù)有:基于消息隊(duì)列,代碼生成。同時(shí)它還能被部署在任何一款JAVA應(yīng)用效勞器上,而最適宜的當(dāng)然是分層J2EE結(jié)構(gòu)的S2SH框架了。關(guān)鍵詞:公文流轉(zhuǎn),工作流,JBPM,S2SH0.引言公文【1】是政府和企業(yè)辦公的重要內(nèi)容,財(cái)務(wù)報(bào)銷單、請(qǐng)假單、采購審批等等都是公文的一種形式。公文流轉(zhuǎn)【1】就是指
2、借助現(xiàn)代網(wǎng)絡(luò)Web技術(shù),對(duì)政府和企業(yè)中公文流程創(chuàng)立、修改、審批、發(fā)布一系列流轉(zhuǎn)過程進(jìn)行有效地管理。1.公文流轉(zhuǎn)系統(tǒng)1.1什么是公文流轉(zhuǎn)系統(tǒng)公文流轉(zhuǎn)系統(tǒng)【2】是OA系統(tǒng)的最重要的子系統(tǒng),能根據(jù)用戶提出的工作流程,借助工作流引擎實(shí)現(xiàn)收文、發(fā)文、辦理、統(tǒng)計(jì)查詢等處理活動(dòng),能對(duì)整個(gè)工作流程實(shí)時(shí)跟蹤和對(duì)修改審核日志進(jìn)行記錄,并能報(bào)告公文在處理過程中的狀態(tài)。公文流轉(zhuǎn)子系統(tǒng)實(shí)現(xiàn)了辦公自動(dòng)化系統(tǒng)的智能化和自動(dòng)化操作。功能穩(wěn)健且強(qiáng)大的公文流轉(zhuǎn)系統(tǒng)不僅大大高了OA系統(tǒng)工作流的轉(zhuǎn)速,而且明確了辦公人員的責(zé)任歸屬。1.2開發(fā)現(xiàn)狀 目前公文流轉(zhuǎn)系統(tǒng)主要的開發(fā)技術(shù)手段有:(1) 基于群件技術(shù)現(xiàn)在市場(chǎng)上主流的群件軟件有兩種
3、,一是IBM公司的LotusNotes,另外一種是Microsoft公司的ExchangeServer。(2) 基于.Net平臺(tái)WindowsNet框架具有很強(qiáng)的靈活性和擴(kuò)展性,能夠與操作系統(tǒng)平臺(tái)良好的結(jié)合,方便地與各類應(yīng)用程序進(jìn)行數(shù)據(jù)傳遞。(3) 基于J2EE平臺(tái)J2EE的開發(fā)模式適合工作流性質(zhì)軟件的開發(fā),在開發(fā)模式上與ASPNet相似,但具有更強(qiáng)的靈活性。在大規(guī)模數(shù)據(jù)處理和平安性方面占有優(yōu)勢(shì),適合開發(fā)瀏覽器形式的應(yīng)用系統(tǒng)。目前市場(chǎng)上沒有完全基于Java的公文流轉(zhuǎn)系統(tǒng),由其實(shí)現(xiàn)的公文流轉(zhuǎn)功能主要表現(xiàn)在一些由Java開發(fā)的辦公自動(dòng)化系統(tǒng)中。2相關(guān)技術(shù)介紹2.1工作流簡(jiǎn)介 工作流【4】顧名思義就
4、是工作的流程,即工作任務(wù)流水線化顯然是為工作效率的提高而提出來的。工作流引擎【5】是工作流系統(tǒng)中樞,實(shí)現(xiàn)工作流模型識(shí)別并轉(zhuǎn)換為自定義模型,為工作流實(shí)例提供運(yùn)行時(shí)的執(zhí)行環(huán)境,包括實(shí)例的創(chuàng)立,激活,掛起,終止,并按定義流程和數(shù)據(jù)信息導(dǎo)航推進(jìn)實(shí)例。2.2JBPM工作流引擎 JBPM【7】 是一個(gè)擴(kuò)展性很強(qiáng)的工作流系統(tǒng),百分百用 JAVA 語言開發(fā),持久層采用 Hibernate實(shí)現(xiàn),jBPM和其它所有基于Java的工作流引擎都是采用關(guān)系型數(shù)據(jù)庫作為存儲(chǔ)介質(zhì)。同時(shí)它還能被部署在任何一款 JAVA 應(yīng)用效勞器上。論文大全。JBPM 原理:總的來說,JBPM是通過對(duì)圖進(jìn)行解釋執(zhí)行的,相對(duì)于其它支持技術(shù)有:
5、基于消息隊(duì)列,代碼生成。JBPM的最大特色就是它有自己的流程定義語言JPDL。JBPM先調(diào)用JPDL解釋器對(duì)JPDL文件進(jìn)行解釋,同時(shí)把這個(gè)文件轉(zhuǎn)化為流程定義實(shí)例對(duì)象。流程定義擁有與它相關(guān)的圖對(duì)象如node,transition,等。3系統(tǒng)框架詳細(xì)設(shè)計(jì)JBPM 是一個(gè)擴(kuò)展性很強(qiáng)的工作流系統(tǒng),同時(shí)也是純 JAVA 語言開發(fā)的一組J2SE組件,持久層采用 Hibernate實(shí)現(xiàn),只要 Hibernate 支持的數(shù)據(jù)庫 JBPM 都支持。同時(shí)它還能被部署在任何一款 JAVA 應(yīng)用效勞器上,而最適宜的當(dāng)然是分層J2EE結(jié)構(gòu)的S2SH框架了。3.1 Struts2/Spring/Hibernate框架的
6、整合根據(jù)系統(tǒng)整合的需求,單一的框架不能勝任所有層面的職責(zé),即各個(gè)框架有其自身的優(yōu)缺點(diǎn):Hibernate框架擅長(zhǎng)支持模型局部,在對(duì)系統(tǒng)的邏輯處理、流程控制與視圖并沒有得到有效別離;Struts2是一種MVC層的解決方案,它致力于與表示層,對(duì)于持久層和邏輯層的支持不是很強(qiáng);Spring框架是輕量級(jí)容器,通過容器托管所有的業(yè)務(wù)對(duì)象,在程序需要時(shí)自動(dòng)生成裝載對(duì)象,Spring框架提供了對(duì)Hibernate框架的集成支持。整合三個(gè)框架的方法是:利用Struts2框架作為系統(tǒng)的整體根底框架,它負(fù)責(zé)MVC的別離并實(shí)現(xiàn)表示層;利用Hibernate框架來提供持久層的支持,實(shí)現(xiàn)對(duì)數(shù)據(jù)進(jìn)行持久化操作,從而以實(shí)現(xiàn)
7、對(duì)象關(guān)系映射;業(yè)務(wù)邏輯層采用Spring支持,以業(yè)務(wù)邏輯的方式對(duì)表示層實(shí)現(xiàn)業(yè)務(wù)效勞,以DAO方式和數(shù)據(jù)源進(jìn)行交互。在表示層Struts2框架中最外面的是由JSP和Struts2標(biāo)簽組合而成的用戶界面。業(yè)務(wù)邏輯層Spring框架主要是由業(yè)務(wù)邏輯組件處理相應(yīng)的事件,通過DAO與持久層交互,調(diào)用數(shù)據(jù)庫完成業(yè)務(wù)處理。持久層Hibernate框架使用ORM功能,通過Hibernate提供的HQL操作實(shí)體對(duì)象,從而到達(dá)操作數(shù)據(jù)庫的目的。由上可以看出各組件之間的調(diào)用關(guān)系:1JSP頁面的用戶請(qǐng)求根據(jù)struts.xml中的配置提交到相應(yīng)的Action中。2Action接到相應(yīng)的調(diào)用后不進(jìn)行具體的業(yè)務(wù)邏輯處理,
8、直接把封裝了參數(shù)的請(qǐng)求委托給Spring框架中相應(yīng)的業(yè)務(wù)邏輯組件進(jìn)行處理,僅僅起一個(gè)轉(zhuǎn)接的作用。3業(yè)務(wù)邏輯進(jìn)行相應(yīng)的業(yè)務(wù)處理,調(diào)用DAO操作持久化對(duì)象。3.2集成JBPM考慮到目前平臺(tái)采用J2EE技術(shù)架構(gòu),同時(shí)采用S2SH技術(shù)框架,對(duì)于JBPM的整合主要是向S2SH整合來實(shí)現(xiàn)。1持久化配置在Mysql中建立我們的應(yīng)用庫,如jbpm,然后導(dǎo)入相應(yīng)的sql語句就可以生成完整的持久化表。jdbc:mysql:/localhost:3306/jbpmtruefalse其中的參數(shù)參照實(shí)際應(yīng)用進(jìn)行修改。完成上述兩個(gè)步驟,根本上就完成了jbpm持久化向平臺(tái)的整合。2與Spring框架整合Jppm與Sprin
9、g整合的一個(gè)重要工具是Spring-Jbpmmodule插件,通過這個(gè)插件,可以輕松的實(shí)現(xiàn)二者的整合。首先修改Spring的配置文件,由于Spring支持多SessionFactory以及多數(shù)據(jù)源,因此可以很容易實(shí)現(xiàn)二者的整合,只需要建立一個(gè)Spring配置文件jbpm-pring-cfg.xml,,代碼如下:通過上述配置,根本上實(shí)現(xiàn)了Jbpm向Spring整合。3webApp向Struts2整合不能夠通過配置來實(shí)現(xiàn),因?yàn)槟壳癹bpm的web控制臺(tái)采用的是JSF技術(shù)框架,故jbpm的web應(yīng)用需要通過移植來實(shí)現(xiàn)。綜上所述,jBPM與Struts2/Spring/Hibernate的集成就完成了
10、,一個(gè)公文流轉(zhuǎn)系統(tǒng)框架搭建起來了。論文大全。4實(shí)現(xiàn)一個(gè)公文流轉(zhuǎn)系統(tǒng)4.1流程需求報(bào)銷流程的需求如下:?jiǎn)T工在登錄系統(tǒng)后,可以填寫報(bào)銷單據(jù),完成后該報(bào)銷單據(jù)將會(huì)被流程送到該員工據(jù)在的部門主管進(jìn)行審批。主要審批結(jié)果可能有兩個(gè),一個(gè)是不同意,流程直接結(jié)束,一個(gè)是同意流程判斷報(bào)銷金額,如果金額大于1000,那么流程將其送達(dá)總經(jīng)理審批,否那么流程就將報(bào)銷單送到財(cái)務(wù)人員那里,財(cái)務(wù)人員直接處理后流程結(jié)束。如果送達(dá)總經(jīng)理,總經(jīng)理審批也比擬簡(jiǎn)單,如果同意送達(dá)財(cái)務(wù)處,否那么流程結(jié)束。4.3設(shè)計(jì)流程報(bào)銷的重點(diǎn)是流程,所以就不再設(shè)計(jì)業(yè)務(wù)表。我們約定只能有兩個(gè)用戶可以登錄,他們分別是:user1/user1、user2/
11、user2用戶名/密碼。user1對(duì)應(yīng)的部門經(jīng)理為manager1/manager1,user2對(duì)應(yīng)的部門經(jīng)理為manager2/manager2??偨?jīng)理只有一個(gè),就是supermanager/supermanager。財(cái)務(wù)也只有一個(gè):cashier/cashier。把任務(wù)實(shí)例分配給部門經(jīng)理時(shí),需要對(duì)前面提交報(bào)銷的人進(jìn)行判斷。如果申請(qǐng)人為user1,那么就選擇manager1作為審批的部門經(jīng)理;否那么選擇manager2作為部門經(jīng)理。這個(gè)任務(wù)實(shí)例的參與者分配采用Handler的方式。Handler類的代碼見代碼清單4-1。packagetest.assignment;importtest.Co
12、nstants;publicclass ManagerAssignment implements AssignmentHandler,Constants public void assign(Assignable assignable,ExecutionContext executionContext)throws Exception /從當(dāng)前流程實(shí)例上下文當(dāng)中取出當(dāng)前報(bào)銷人Stringissueperson=executionContext.getContextInstance().getVariable(this.ISSUE_PERSON).toString();if(issueperso
13、n.equals(user1)/當(dāng)報(bào)銷人為user1時(shí),部門經(jīng)理為manager1assignable.setActorId(manager1);else/當(dāng)報(bào)銷人為其它人時(shí),部門經(jīng)理為manager2assignable.setActorId(manager2);在代碼清單4-1當(dāng)中,我們使用了一個(gè)名為Constants的接口來存儲(chǔ)常用變量。 報(bào)銷審批完成后,還需要有一種機(jī)制通知報(bào)銷人。為簡(jiǎn)單起見,這里直接在控制臺(tái)打印一條消息來說明報(bào)銷結(jié)果。負(fù)責(zé)打印的Action類如代碼清單4-2所示。 package test.action; importtest.Constants; publiccla
14、ss NotifyPaymentAction implements ActionHandler,Constants publicvoid execute(ExecutionContext executionContext) throws Exception /獲取流程上下文對(duì)象 ContextInstancect=executionContext.getContextInstance(); /從當(dāng)前流程實(shí)例上下文當(dāng)中取出當(dāng)前報(bào)銷人 Stringissueperson=ct.getVariable(this.ISSUE_PERSON).toString(); booleanresult=fals
15、e; if(managerApproveResult.equals(this.APPROVE_RESULT_OK) StringmoneyCount=ct.getVariable(this.MONEY_COUNT).toString(); if(Integer.parseInt(moneyCount)1000) else executionContext.getToken().signal(); 實(shí)際流程應(yīng)用中,可以利用jBPM中的Node節(jié)點(diǎn)通知任務(wù)參與者,或者加一個(gè)Node節(jié)點(diǎn),通過為該節(jié)點(diǎn)添加Handler類來將流程處理結(jié)果插入到業(yè)務(wù)表中,參與者再通過查看業(yè)務(wù)表了解流程處理情況。論文大全
16、。 用配置好的JBPM流程設(shè)計(jì)器的Eclipcs翻開jbpm-web-test工程,在里面新建一個(gè)processes目錄用來存放流程設(shè)計(jì)文件。根據(jù)對(duì)流程的描述,可以畫出如圖2-1所示的流程圖。 圖2-1創(chuàng)立報(bào)銷流程模版 5小結(jié) 為了文章的簡(jiǎn)潔清晰 ,在論述的時(shí)候我刪掉了很多額外描述,重點(diǎn)描述了如何將JBPM工作流引擎集成到J2EE平臺(tái)下的整合好的S2SH開源框架來實(shí)現(xiàn)一個(gè)公文流轉(zhuǎn)系統(tǒng),盡管公文流轉(zhuǎn)系統(tǒng)實(shí)現(xiàn)起來有些復(fù)雜, 但是只要抓住它的本質(zhì)就不難理解了 。 參考文獻(xiàn): 【1】孫瑞志,史美林. 工作流異常處理的形式描述計(jì)算機(jī)研究與開展, 2003,(03) . 57 - 68. 【2】萬良君,懷進(jìn)鵬. 面向工作流系統(tǒng)的生態(tài)組織模型研究北京航空航天大學(xué)學(xué)報(bào), 2004,(08) . 2-3. 【3】趙璇. 基于分布式工
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2031年中國(guó)茶制床墊行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2031年中國(guó)石榴干紅葡萄酒行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年油壓壓彎床項(xiàng)目可行性研究報(bào)告
- 2025年有色金屬連桿項(xiàng)目可行性研究報(bào)告
- 2025年攪拌機(jī)攪拌臂項(xiàng)目可行性研究報(bào)告
- 2025年小體視棱鏡項(xiàng)目可行性研究報(bào)告
- 2025至2031年中國(guó)內(nèi)置式伺服放大器模塊行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年沖裁拉伸模具項(xiàng)目可行性研究報(bào)告
- 2025至2030年中國(guó)雞藥數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年香油紅尖椒項(xiàng)目投資價(jià)值分析報(bào)告
- 2025年酒店總經(jīng)理崗位職責(zé)與薪酬協(xié)議
- 綠色能源項(xiàng)目融資計(jì)劃書范文
- 大樹扶正施工方案
- 2024年全國(guó)職業(yè)院校技能大賽中職組(母嬰照護(hù)賽項(xiàng))考試題庫(含答案)
- 小學(xué)一年級(jí)數(shù)學(xué)20以內(nèi)的口算題(可直接打印A4)
- 自動(dòng)化設(shè)備技術(shù)合作協(xié)議書范文
- 作文紙(網(wǎng)格600字A4)
- 詳情頁測(cè)試文檔20220802
- 專利糾紛行政調(diào)解辦案指南
- 經(jīng)編工藝基本樣布的分析
- 完整版陸河客家請(qǐng)神書
評(píng)論
0/150
提交評(píng)論