楊志+肖中杰
摘要:公文流轉系統(tǒng)是電子政務系統(tǒng)的重要組成部分,在政府和企事業(yè)單位中得到了廣泛的使用和普及。本文基于目前業(yè)界使用較為普遍的開源工作流引擎JBPM作為研究對象,針對高校的業(yè)務模式,提出了面向高校的公文流轉系統(tǒng),并將其應用到高校公文流轉系統(tǒng)的開發(fā)中。首先,論文介紹了工作流的相關技術,然后研究了JBPM工作流引擎的開發(fā)機制,分析了高校公文流轉系統(tǒng)的功能需求,并給出了系統(tǒng)主要設計方案,最后,基于JBPM工作流引擎以及高校的業(yè)務模式,實現(xiàn)了公文流轉系統(tǒng)。該系統(tǒng)的實施提高了工作效率和辦公自動化水平。
關鍵詞:公文流轉;工作流;JBPM;J2EE;辦公自動化
O 引言
辦公自動化系統(tǒng)已經(jīng)成為提高日常辦公效率、降低辦公成本的重要技術手段。通過對常見辦公自動化系統(tǒng)的對比研究發(fā)現(xiàn),工作流技術己經(jīng)發(fā)展成為辦公自動化系統(tǒng)的核心技術之一。通過引入工作流技術,系統(tǒng)可以在復雜多變的工作模式、異構環(huán)境下提供良好的互操作性,從而提高系統(tǒng)的性能和健壯性。
通過比較常見的工作流引擎技術發(fā)現(xiàn),以往的工作流開發(fā)結構中,往往采用“業(yè)務驅動”方式,造成業(yè)務代碼和流程代碼重復開發(fā),并產生大量冗余代碼,對于系統(tǒng)長期發(fā)展和維護十分不利,需要將業(yè)務過程和流程處理過程進行完全解耦合,如何提高代碼的復用率,減小冗余代碼,提高開發(fā)效率,是傳統(tǒng)工作流開發(fā)中面臨的重要問題。而JBPM具有靈活的流程定義語言和良好的數(shù)據(jù)庫移植性,提供了很多預留接口,具有足夠的彈性與良好的擴展性,非常適合商業(yè)應用的二次開發(fā),在一些復雜流程的處理中有一定優(yōu)勢,已成為當前主流的工作流引擎技術。綜合上述因素考慮,本論文結合高?,F(xiàn)有公文流轉的需求,采用JBPM 工作流引擎技術進行公文流轉系統(tǒng)的開發(fā),并實現(xiàn)了校內公文的正常流轉。
1 JBPM工作流引擎
1.1 JBPM簡介
JBPM是包括了業(yè)務流程管理、工作流、服務協(xié)作等一系列相關領域的開源的輕量級框架,其特點靈活、易擴展。同以往面向對象和面向切面編程的開發(fā)框架不同,JBPM是面向過程的框架,用于業(yè)務流程的管理,它使用自己的流程定義語言JPDL進行流程定義,較其他工作流產品通俗易懂,同時引擎底層基于Active Diagram模型,使用Hibemate作為持久層框架,可以配置到任何主流數(shù)據(jù)庫如MySQL、Oracle等,數(shù)據(jù)庫移植性好。
1.2 JBPM開發(fā)流程
其開發(fā)流程都是通過提供的Servlce類進行的,并由流程引擎ProcessEngine獲得。開發(fā)流程如下:
①確定數(shù)據(jù)庫。因為JBPM使用了Hibemate作為其OR-Mapping框架,所以可以選擇任意Hibemate支持的數(shù)據(jù)庫。數(shù)據(jù)庫的初始化任務可由JBPM主動實現(xiàn),也可通過antgenerate.ddl自動生成SQL語句。
②使用JPdl定義工作流,生成流程定義文件。流程定義文件包括 processdefinition.xml、processimage.jpg、gpd.xml。其中processdefinition.xml是工作流的流程定義文件,processimage.jpg為流程展示圖片,gpd.xml為流程中各個節(jié)點坐標位置等信息的文件。
③使用Antcreate.pde生成pde包的丁作目錄,使用antbuild.precess.archives生成pde包。
④使用Antdeploy.process.archives,將生成的pde部署到數(shù)據(jù)庫。
⑤使用JBPM API接口開發(fā)相應的業(yè)務流程。
2 系統(tǒng)設計
2.1 系統(tǒng)流程設計
公文流轉系統(tǒng)主要涉及到校發(fā)文、外來公文以及簽呈幾個業(yè)務流程的管理工作。每個業(yè)務流程涉及到擬稿、審批、流轉、會簽、意見等活動,以及擬稿人、單位負責人、公文管理員、校辦、教代會、會簽單位、校領導等角色。本文均以流程泳道圖來表示。
①發(fā)文流程
發(fā)文流程分為六個階段:由發(fā)文的承辦單位擬稿人起草公文;經(jīng)該單位負責領導復核后,公文提交至兩辦秘書科;秘書科發(fā)文管理員對公文進行初審;初審通過后,發(fā)文管理員對公文流轉進行控制,可根據(jù)公文是否簡明流程、是否涉及其他部處等選擇發(fā)送給相關審批環(huán)節(jié),其公文流轉為星形結構,即以發(fā)文管理員為核心的“請求響應式”公文審批;經(jīng)各環(huán)節(jié)審批通過后,發(fā)文管理員提交校領導簽發(fā);校領導簽發(fā)完畢后,發(fā)文管理員進行校發(fā)公文的排版與發(fā)布。流程圖如圖1所示:
②收文流程
外來公文流轉程序主要分為三個階段:收文登記、擬辦;領導批閱;部門反饋及歸檔。其典型流程描述為:收文管理員登記外來公文,錄入公文標題、類別、文號等信息;兩辦主任提出擬辦意見;收文管理員根據(jù)擬辦意見,進行公文流轉控制,傳遞給校領導批復或知會各單位及中層干部等;根據(jù)領導批復的意見,轉相關單位,要求其進行反饋;公文流轉完畢后,辦結公文,進行歸檔。流程圖如圖2所示。
③簽呈流程
簽呈流程主要分為四個階段:起草一主管部處審核一公文簽批流轉一相關部處反饋。具體流程為:各單位簽呈擬稿人起草簽呈并呈送單位負責人;單位負責人進行復核,審核通過后選擇發(fā)送該事由的主管部處;主管部處審核通過后,呈送校辦;校辦的簽呈管理員根據(jù)該事由的主管領導及主管部處的簽署意見,選擇請求相關校領導批示意見;批示完畢后,兩辦簽呈管理員根據(jù)批示意見,選擇發(fā)送簽呈報送單位填寫常委會討論結果或者發(fā)送管理部門填寫辦理執(zhí)行情況。流程圖如圖3所示。
2.2 系統(tǒng)架構設計
從技術層面來講,公文流轉系統(tǒng)采用Vaading+Struts+Spring+Hibemate的框架。Vaading是最近幾年比較流行的一款用于創(chuàng)建RIA的優(yōu)秀開發(fā)框架,它擁有豐富的UI界面組件庫,先進的事件監(jiān)聽和數(shù)據(jù)綁定功能,并且有強大的CSS渲染功能,對前臺開發(fā)提高效率起到了很大的作用。系統(tǒng)的業(yè)務邏輯層和數(shù)據(jù)層采用目前Web應用開發(fā)常見的Srping+Hibernate輕量級開源框架,由此來完成事務管理、持久化、面向切面的編程以及OR-Mapping等功能。公文流轉的工作流引擎采用JBPM2.0框架,采用CAS實現(xiàn)SSO單點登錄功能,基于OAuth2.0標準,實現(xiàn)對第三方系統(tǒng)的授權和認證。分層體系結構如圖4所示。endprint
2.3 系統(tǒng)功能結構設計
公文流轉系統(tǒng)包括工作配置系統(tǒng)、工作流監(jiān)控系統(tǒng)、文件管理系統(tǒng),其中監(jiān)控系統(tǒng)中又包括短信子系統(tǒng)。工作流配置系統(tǒng)用來定義工作流程,通過流程監(jiān)控系統(tǒng)來實現(xiàn)工作流引擎的管理,接收來自工作流配置系統(tǒng)中預定義的工作流配置數(shù)據(jù),對于逾期未辦理完成者,由系統(tǒng)發(fā)出短信通知。T作流監(jiān)控系統(tǒng)以短信子系統(tǒng)為基礎,流轉公文到達辦理人的通知是調用短信系統(tǒng)實現(xiàn)的。用戶在收到短信后對公文進行處理,然后發(fā)送給下一步驟的辦理人[8]。公文流轉系統(tǒng)的功能層次如圖5所示:
3 系統(tǒng)應用程序設計與實現(xiàn)
本公文流轉項目總共有20個子項目,portal.oa.workflow為公文流轉主工程。其他包括ws.rs.auth文檔,與授權認證相關;ws.rs.oa,與用戶、角色、組織結構等相關;data.tools實現(xiàn)批量導人數(shù)據(jù)工具;ftp.client ftp為客戶端;signets.client為數(shù)字簽名客戶端;sms.client為短信客戶端;support.jersey,封裝webservlce框架;support.spring,封裝Spring框架;support.vaadin,封裝vaadin框架;tju.utils為基本工具包;tju.vaadin為vaading 工具包;ws.rs.client.oa為oa客戶端;ws.rs.client.auth為客戶端;ws.rs.common為通用工具包;ws.rs.exception封裝異常信息;ws.rs.model封裝model信息。其中項目 portal.oa.worktlow . ws.rs.auth、ws.rs.oa ,是核心的三個Web service應用,采用Jersy+Spring+Hibemate框架,提供Rest API接口,公文流轉系統(tǒng)三層之間則通過基于Restful風格的WebServlce接口進行調用,所有資源請求首先需要使用HTTPS進行用戶認證,認證方式為Basic HTTP accessauthentication[11]。調用流程如圖6所示:
4 結束語
本論文以青海民族大學公文流轉實際需求為開發(fā)背景,在對工作流理論進行了深入細致的研究的基礎上,采用B/S架構及分層體系架構,設計和實現(xiàn)了以JBPM為工作流引擎,基于Vaadin/Struts/Spring/Hibernate架構的公文流轉系統(tǒng)。目前,該系統(tǒng)已投入實際使用,系統(tǒng)運行穩(wěn)定可靠,效果良好。結果表明,該系統(tǒng)能有效提高公文流轉效率,提高學校辦公自動化水平。endprint