謝英輝
(長(zhǎng)沙民政職業(yè)技術(shù)學(xué)院,湖南長(zhǎng)沙410004)
工作流從英文單詞workflow而來(lái),是工作work和流動(dòng)flow的組合,是一種能夠被計(jì)算機(jī)解釋和執(zhí)行的反映經(jīng)營(yíng)過(guò)程業(yè)務(wù)流動(dòng)的計(jì)算機(jī)化模型,提出的目的是通過(guò)將工作分解為定義良好的任務(wù)、角色,按照一定的規(guī)則和過(guò)程來(lái)執(zhí)行這些任務(wù)并對(duì)它們進(jìn)行監(jiān)控,達(dá)到提高辦事效率、降低工作成本、提高企業(yè)競(jìng)爭(zhēng)力的目的。工作流引擎是指工作流作為應(yīng)用系統(tǒng)的一部分,并為之提供對(duì)各應(yīng)用系統(tǒng)有決定作用的根據(jù)角色、分工和條件的不同決定信息傳遞路由、內(nèi)容等級(jí)的核心解決方案。而辦公自動(dòng)化系統(tǒng)就是要使得企業(yè)從傳統(tǒng)的辦公模式中解放出來(lái),大大提高企業(yè)的工作效率和生產(chǎn)效率。基于工作流引擎的辦公自動(dòng)化系統(tǒng)研究能使企業(yè)達(dá)到提高工作效率和生產(chǎn)效率的目標(biāo),通過(guò)對(duì)工流技術(shù)JBPM的應(yīng)用和改進(jìn),設(shè)計(jì)出的辦公自動(dòng)化系統(tǒng)在實(shí)際應(yīng)用中得到了很好的效果。
workflow對(duì)于已經(jīng)有傳統(tǒng)管理軟件的企業(yè)的作用非常明顯,可以籍此平臺(tái)整合企業(yè)的各種應(yīng)用系統(tǒng),使之成為一個(gè)完整的企業(yè)級(jí)應(yīng)用,也就是通常所說(shuō)的EAI。還可以根據(jù)企業(yè)的需要開(kāi)發(fā)解決信息傳遞問(wèn)題的流程以及幫助企業(yè)開(kāi)發(fā)與現(xiàn)有應(yīng)用系統(tǒng)的接口,工作流管理系統(tǒng)與企業(yè)傳統(tǒng)信息系統(tǒng)相比有很多的優(yōu)勢(shì),主要體現(xiàn)在[3]:
(1)能降低勞動(dòng)強(qiáng)度,提高企業(yè)經(jīng)營(yíng)效率,以便集中精力處理核心業(yè)務(wù)。
(2)縮短運(yùn)營(yíng)周期,減少人為差錯(cuò),從而提高勞動(dòng)生產(chǎn)率。
(3)新員工可以迅速適應(yīng)系統(tǒng),易學(xué)易會(huì)易用。
(4)可以實(shí)現(xiàn)對(duì)文件、消息及任務(wù)的輕易追蹤,從而易于發(fā)現(xiàn)流程瓶頸。
(5)隨時(shí)隨地辦公,實(shí)現(xiàn)事務(wù)處理零響應(yīng)。
(6)靈活地更改任何流程而無(wú)需改變系統(tǒng)的其他部分
在當(dāng)今企業(yè)競(jìng)爭(zhēng)日益激烈的社會(huì),在工作效率決定企業(yè)的生命力的時(shí)候,工作流信息系統(tǒng)的采用勢(shì)在必行。
該系統(tǒng)采用工作流引擎JBPM,全稱是Java Business Process Management(業(yè)務(wù)流程管理),覆蓋了業(yè)務(wù)流程管理、工作流、服務(wù)協(xié)作等領(lǐng)域的一個(gè)開(kāi)源的、靈活的、易擴(kuò)展的可執(zhí)行流程語(yǔ)言框架,是一種基于J2EE的輕量級(jí)工作流管理系統(tǒng)。BPM是公開(kāi)源代碼項(xiàng)目,在使用時(shí)遵循Apache License。工作流業(yè)務(wù)流程管理技術(shù)是基于SOA技術(shù)實(shí)現(xiàn)的一個(gè)核心部分。使用工作流能夠在軟件開(kāi)發(fā)和業(yè)務(wù)兩個(gè)層次受益,使用Hibernate來(lái)管理數(shù)據(jù)庫(kù)?;贘BPM的總體解決方案如圖1所示。具體實(shí)現(xiàn)如下:
(1)安裝jBPM與創(chuàng)建工作流數(shù)據(jù)庫(kù)表
下載 JBoss jBPM Starters Kit并解壓縮,將jbpm-starters-kit-3.1.1下的子目錄jbpm改名為jbpm.3,在Dos窗口中進(jìn)入解壓縮目錄下的jbpm-db目錄,在 dos窗口中運(yùn)行 ant mssql.scripts,在 E:softwarejbpm-starters-kit-3.1.4jbpm-dbuildmssql目錄下產(chǎn)生一個(gè) scripts文件夾即:jbpm-starters-kit-3.1.4jbpm-dbuildmssqlscripts,該文件夾下生成了mssql.clean.sql、mssql.create.sql、mssql.drop.create.sql、mssql.drop.sql;在SQlserver的新建查詢下運(yùn)行mssql.create.sql文件中的語(yǔ)句,創(chuàng)建工作流數(shù)據(jù)庫(kù)表[4]。
(2)安裝jBPM的Eclipse開(kāi)發(fā)插件
把 e:jbpm-starters-kit-3.1.1jbpm-designerjbpm-gpd-featureeclipse目錄下的插件文件分別復(fù)制進(jìn)eclipse安裝目錄下的features和plugins子目錄中;把lib目錄下的jbpm工作流開(kāi)發(fā)所需jar包復(fù)制進(jìn)web工程目錄下的lib目錄下。
(3)定義流程
按業(yè)務(wù)需要定義工作流流程,此處列舉出請(qǐng)假流程的定義,編寫流程的定義文件processdefinition.xml,核心代碼如下。



(4)結(jié)合ssh框架編碼實(shí)現(xiàn)以上流程
按照以上流程文件的配置結(jié)合ssh框架編碼實(shí)現(xiàn),代碼略,至此就實(shí)現(xiàn)了jbpm工作流引擎在項(xiàng)目中的引用。

系統(tǒng)采用J2EE技術(shù)平臺(tái)開(kāi)發(fā),采用Struts、Spring和Hibernate三大框架相結(jié)合的SSH框架開(kāi)發(fā)。采用Myeclipse作為開(kāi)發(fā)工具,系統(tǒng)總體框架圖如圖2所示。

系統(tǒng)分為四層,分別為UI層,借助Struts實(shí)現(xiàn);業(yè)務(wù)層,借助SpringFrame work進(jìn)行業(yè)務(wù)組件的組裝關(guān)聯(lián);數(shù)據(jù)持久層,借助Hibernate實(shí)現(xiàn);域?qū)ο髮?將所有域?qū)ο髣澐衷谶@個(gè)層面。這樣設(shè)計(jì)的優(yōu)點(diǎn)是通過(guò)成熟的開(kāi)源產(chǎn)品實(shí)現(xiàn)各層,同自己編寫代碼實(shí)現(xiàn),相比之下能縮短開(kāi)發(fā)周期,且架構(gòu)所用到的開(kāi)源產(chǎn)品,均有很廣泛的用戶群,經(jīng)受過(guò)實(shí)踐的考驗(yàn),質(zhì)量和性能更有保障;層與層之間松散耦合,增加代碼重用率。各層分工明確,這樣也利于團(tuán)隊(duì)的明確分工。
(1)UI層
UI是User Interface的縮寫,這一層是面向用戶的界面,是用戶與系統(tǒng)之間交互的媒介。用戶在界面發(fā)送請(qǐng)求,系統(tǒng)接收請(qǐng)求,進(jìn)行處理,然后通過(guò)界面將結(jié)果呈現(xiàn)于用戶,包括了用戶動(dòng)作、數(shù)據(jù)傳遞、界面顯示。大家熟悉的MVC模式就是將這三者分離,減少三者耦合。
(2)業(yè)務(wù)層
在實(shí)際的項(xiàng)目開(kāi)發(fā)中,每個(gè)領(lǐng)域都會(huì)有自己獨(dú)特的業(yè)務(wù)邏輯,正因?yàn)檫@樣,致使項(xiàng)目中代碼高度耦合,原本有可能被重用的代碼或功能,因?yàn)榕c具體的業(yè)務(wù)邏輯綁定在一塊而導(dǎo)致很難被重用。因此,將實(shí)現(xiàn)這些具體邏輯的代碼抽取出來(lái)分為單獨(dú)的一層,其目的是希望通過(guò)層,來(lái)降低它與系統(tǒng)其他部分的耦合度。該層借助了Spring,通過(guò)依賴注入、AOP應(yīng)用、面向接口編程,來(lái)降低業(yè)務(wù)組件之間的耦合度,增強(qiáng)系統(tǒng)擴(kuò)展性。
(3)數(shù)據(jù)持久層
開(kāi)發(fā)中與數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交互必不可少,通常歸為CRUD(添加、讀取、修改、刪除),這些操作占據(jù)了系統(tǒng)開(kāi)發(fā)中大部分的時(shí)間,同時(shí)還需要考慮與數(shù)據(jù)庫(kù)交互的性能問(wèn)題,如連接池、數(shù)據(jù)緩存等等。因此該層實(shí)現(xiàn)借助了Hibernate。
(4)域?qū)ο髮?/p>
該層應(yīng)該說(shuō)是ORM思想的產(chǎn)物,ORM用對(duì)象關(guān)聯(lián)數(shù)據(jù)表,將這些對(duì)象的集合歸為一個(gè)專門的層即Domain Layer。域?qū)ο笫歉鲗又g數(shù)據(jù)通信的載體。實(shí)際上域?qū)ο笠彩且粋€(gè)完完全全的業(yè)務(wù)對(duì)象,如User對(duì)象、Book對(duì)象。通過(guò)對(duì)業(yè)務(wù)的對(duì)象化,這有利于業(yè)務(wù)邏輯的重用。
辦公自動(dòng)化系統(tǒng)在當(dāng)前信息科學(xué)領(lǐng)域中飛速發(fā)展,是一個(gè)多學(xué)科綜合應(yīng)用的技術(shù),它的研究愈來(lái)愈受到企業(yè)的廣泛重視。隨著理論研究的不斷深入和信息技術(shù)的不斷發(fā)展,辦公自動(dòng)化系統(tǒng)將在社會(huì)的各個(gè)領(lǐng)域中獲得更加廣泛的應(yīng)用。本文在閱讀、參考、學(xué)習(xí)大量國(guó)內(nèi)外相關(guān)理論和應(yīng)用的基礎(chǔ)上,提出了基于工作流和時(shí)序邏輯的信息系統(tǒng)的研究與實(shí)現(xiàn),取得了很好的應(yīng)用效果。
[1]范玉順.工作流管理技術(shù)基礎(chǔ)——經(jīng)營(yíng)過(guò)程重構(gòu)、過(guò)程管理和過(guò)程自動(dòng)的核心技術(shù)[M].北京:清華大學(xué)出版社,2001.
[2]范玉順,吳澄.工作流管理技術(shù)研究與產(chǎn)品現(xiàn)狀及發(fā)展趨勢(shì)[J].計(jì)算機(jī)集成制造系統(tǒng)CIMS,2000,6(1):1-7.
[3]陳天河.Struts,Hibernate,Spring集成開(kāi)發(fā)寶典[M].北京:電子工業(yè)出版社,2007.1.
[4]高洪巖.至簡(jiǎn) SSH:精通 Java Web實(shí)用開(kāi)發(fā)技術(shù)(Struts+Spring+Hibernate)[M].北京:電子工業(yè)出版社,2009.11.
[5]陸渝.中國(guó)工作流軟件市場(chǎng)現(xiàn)狀與趨勢(shì)分析[J].軟件世界,2004,(11):88-89.
[6]張濤,戰(zhàn)洪飛,孫靜等.基于WEB的企業(yè)工作流管理系統(tǒng)的研究[J].計(jì)算機(jī)應(yīng)用研究,2002,19(5):130-133.
長(zhǎng)沙民政職業(yè)技術(shù)學(xué)院學(xué)報(bào)2012年4期