龔劍云 湯建農(nóng) 陳小磊 李福軍
摘 要 本文介紹工作流引擎的設(shè)計思路和實現(xiàn)方法。通過J2EE開發(fā)平臺,提供一套完整的工作流引擎機制,實現(xiàn)可視化的流程設(shè)計器、任務(wù)分發(fā)和簽審、流程自動流轉(zhuǎn)、工作流跟蹤監(jiān)控和查詢追溯。
關(guān)鍵詞 工作流引擎;可視化;任務(wù)
中圖分類號 TP3 文獻(xiàn)標(biāo)識碼 A 文章編號 2095-6363(2017)15-0106-02
工作流引擎平臺是軟件系統(tǒng)協(xié)同辦公平臺的血脈,是連接并打通其他各個應(yīng)用模塊之間協(xié)同的關(guān)鍵所在。本系統(tǒng)參照工作流管理聯(lián)盟(WfMC)提出的工作流模型和五大接口標(biāo)準(zhǔn),基于J2EE開發(fā)平臺自主研發(fā)而成。方便用戶快速構(gòu)建符合自己企業(yè)規(guī)則的各類流程,支撐企業(yè)的規(guī)范化管理。
1 軟件目標(biāo)
1)提供可視化的流程圖設(shè)計器,方便用戶快速完成結(jié)構(gòu)清晰層級分明的各類企業(yè)流程設(shè)計,并用直觀的流程圖展示,方便用戶維護(hù)。
2)將業(yè)務(wù)系統(tǒng)的用戶、角色和權(quán)限整合到工作流引擎中,將業(yè)務(wù)流程的流向過程整合到流程模型中,實現(xiàn)流程跟蹤、監(jiān)控、管理、調(diào)度、優(yōu)化和查詢統(tǒng)計等功能。
3)提供一套完整的工作流引擎機制,實現(xiàn)平穩(wěn)、快速、準(zhǔn)確無誤地控制流程流轉(zhuǎn)、任務(wù)自動分發(fā)和跟蹤、審批內(nèi)容提交和管控、審批信息表達(dá)和跟蹤、審批過程中事務(wù)處理、流程發(fā)起/掛起/恢復(fù)/終止。
4)提供一套易用、易維護(hù)、可擴展的工作流引擎平臺。
5)提供一套與其他應(yīng)用程序或軟件系統(tǒng)具備良好交互性能的工作流引擎平臺,支持ORACLE/SQL SERVER等常用數(shù)據(jù)庫,支持JAVA語言開發(fā)的軟件系統(tǒng)。
2 實現(xiàn)方法
2.1 平臺架構(gòu)
采用JAVA語言,ORACLE數(shù)據(jù)庫技術(shù),基于J2EE開發(fā)平臺開發(fā)的三層架構(gòu)。
存儲端——部署在企業(yè)服務(wù)器。ORACLE數(shù)據(jù)庫用于存儲工作流引擎平臺結(jié)構(gòu)化的數(shù)據(jù)。文件存儲器用于存儲圖文檔。
服務(wù)端——部署在企業(yè)服務(wù)器。應(yīng)用服務(wù)處理平臺業(yè)務(wù)邏輯、相關(guān)數(shù)據(jù)存取結(jié)構(gòu)和存取地址;處理ORACLE數(shù)據(jù)庫的創(chuàng)建和關(guān)聯(lián),表和記錄的增刪改功能,系統(tǒng)數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系,各表和記錄之間的關(guān)聯(lián)關(guān)系。文件服務(wù)處理文件相關(guān)的業(yè)務(wù)邏輯和文件保存、獲取和刪除等功能。
客戶端——部署在用戶的PC機。通過工作流引擎,提供工作流程、任務(wù)箱、接口、查詢統(tǒng)計四大模塊。用戶通過四大模塊的功能,實現(xiàn)信息化簽審和管理等。
2.2 軟件模塊
將業(yè)務(wù)流程的工作環(huán)節(jié)、過程、控制思路等提煉成軟件四大模塊。工作流引擎內(nèi)含流程圖繪制器、工作流解釋器、事件處理器、狀態(tài)管理器、內(nèi)容分級管理器和接口管理器,通過這些技術(shù)實現(xiàn)工作流平穩(wěn)、準(zhǔn)確無誤地運轉(zhuǎn)。
2.2.1 工作流程模塊
通過可視化的流程圖設(shè)計器,實現(xiàn)流程模板圖的快速定制。通過數(shù)據(jù)庫和文件管理技術(shù),實現(xiàn)流程模板圖的增刪改等維護(hù)管理。
1)將企業(yè)業(yè)務(wù)流程的各個環(huán)節(jié)和過程提煉為11種軟件元件模型,開始元件、設(shè)計任務(wù)元件、更改任務(wù)元件、審批任務(wù)元件、會簽任務(wù)元件、歸檔任務(wù)元件、文件分發(fā)任務(wù)元件、子流程元件、與節(jié)點元件、或節(jié)點元件、連接弧元件和結(jié)束元件。2)根據(jù)業(yè)務(wù)信息,定義每個元件包含的屬性信息,并將其保存到模型中。同時系統(tǒng)也會將這些元件信息提取到數(shù)據(jù)庫中保存,方便查詢檢索使用。3)將業(yè)務(wù)中的組(部門)、角色、人員融合到元件模型中,可以在模型中預(yù)設(shè)定任務(wù)的執(zhí)行者。4)通過元件模型和事件處理器,將業(yè)務(wù)流程的流向和控制邏輯融合到流程圖模型中,并應(yīng)用工作流解釋器檢查流向和控制邏輯是否合理,確保流程圖是完整可行的。5)提供可視化的流程圖設(shè)計器,提供鼠標(biāo)快捷操作,方便快速繪制各類業(yè)務(wù)流程的流程模型圖。6)通過可視化的流程圖設(shè)計器,用戶可以快速建立企業(yè)需要的各類工作流程。用戶通過“與節(jié)點”元件、“或節(jié)點”元件和“連接弧”元件控制流程圖的流向和流轉(zhuǎn)條件,適用各類復(fù)雜流程。7)為了獲得結(jié)構(gòu)清晰層次分明的流程圖,用戶可以使用“子流程”元件,“子流程”元件可以一級一級查看流程圖。這樣避免復(fù)雜流程中分支過多,元件過多,避免出現(xiàn)“蜘蛛網(wǎng)”的現(xiàn)象。8)用戶設(shè)計的每個流程模板圖都可以分類保存到系統(tǒng)中,以供后續(xù)調(diào)用、更改、刪除等維護(hù)管理方面的操作應(yīng)用。
2.2.2 任務(wù)箱模塊
通過工作流解釋器,實現(xiàn)任務(wù)審批、任務(wù)自動分發(fā)、觸發(fā)任務(wù)事件、任務(wù)狀態(tài)控制和管理、流程自動流轉(zhuǎn)、工作流跟蹤和監(jiān)控。
1)任務(wù)箱分為待做任務(wù)和跟蹤任務(wù),方便用戶快速了解需審批的任務(wù)信息和任務(wù)狀態(tài)。對于每個任務(wù),可以查看跟蹤任務(wù)各個層級的審批內(nèi)容列表、關(guān)聯(lián)的流程圖、任務(wù)所在流程的完成情況記錄、當(dāng)前狀態(tài)和歷史信息,方便用戶了解當(dāng)前任務(wù)的詳細(xì)信息。2)為了應(yīng)對企業(yè)突發(fā)狀況,下一級任務(wù)執(zhí)行人員除了可以在流程模板圖中預(yù)設(shè)定,也可以在任務(wù)執(zhí)行過程中批量設(shè)定。當(dāng)級任務(wù)可以批量轉(zhuǎn)移或委托給他人。對于一些無效或作廢流程,流程發(fā)起人可以掛起、終止、恢復(fù)流程。3)工作流解釋器將任務(wù)執(zhí)行過程中的設(shè)置,更新到流程圖中,然后根據(jù)流程圖來實現(xiàn)自動分發(fā)任務(wù)和控制流程流轉(zhuǎn)。4)任務(wù)簽審過程中,簽審員除了明確表示批準(zhǔn)和拒絕之外,還可以添加帶有建議或意見等描述性語言。5)提供事件處理器,按照流程執(zhí)行階段和任務(wù)狀態(tài),觸發(fā)預(yù)設(shè)定的事件,比如審批內(nèi)容的加鎖解鎖等。這些事件可以在流程模板圖中預(yù)設(shè)定,也可以在流程執(zhí)行過程中設(shè)定。6)任務(wù)的簽審信息和流程的流轉(zhuǎn)過程信息,除了體現(xiàn)在流程圖中,系統(tǒng)也會將其自動保存到數(shù)據(jù)庫中,方便用戶檢索和統(tǒng)計。7)對于正在審批的流程,可以通過待做任務(wù)和跟蹤任務(wù)進(jìn)行跟蹤維護(hù)。對于已經(jīng)關(guān)閉的流程,用戶可以在任務(wù)箱中查詢歷史流程,獲取流程的所有信息,以供參考。
2.2.3 接口模塊
提供一套基于JAVA語言的接口程序,實現(xiàn)和其他軟件應(yīng)用程序或軟件系統(tǒng)之間的交互,比如在整車性能設(shè)計計算分析平臺中的流程發(fā)起、流程屬性查看等功能。
為了實現(xiàn)和其他應(yīng)用程序或軟件系統(tǒng)的交互,提供大量的接口,具體為:獲取流程模板圖接口,流程的發(fā)起、掛起、終止等流程操作接口,流程屬性更改和存取接口,流程狀態(tài)更改和存取接口,流程審批內(nèi)容更改和存取接口,任務(wù)簽審信息查詢接口,流程歷史信息查詢接口等。
2.2.4 查詢統(tǒng)計模塊
提供基于數(shù)據(jù)庫技術(shù)的查詢統(tǒng)計功能。1)提供根據(jù)流程屬性、狀態(tài)、內(nèi)容、時間等信息快速查詢流程或者任務(wù)的功能。2)根據(jù)查詢的流程或者任務(wù),能夠追溯到它的所有信息,包括歷史信息。3)可以針對查詢結(jié)果的不同屬性信息或者審批內(nèi)容信息,進(jìn)行分門別類的統(tǒng)計,并且提供統(tǒng)計報表。
3 結(jié)論
通過JAVA語言、數(shù)據(jù)庫、可視化等技術(shù),實現(xiàn)一套易用、易維護(hù)、易擴展、易集成的工作流引擎平臺,方便用戶制定各類企業(yè)流程,實現(xiàn)平穩(wěn)快速流轉(zhuǎn),支撐企業(yè)規(guī)范化、信息電子化的流程審批和管理。
參考文獻(xiàn)
[1]Cay S. Horstmann,Gary Cornell.JAVA核心技術(shù)卷2[M].北京:機械工業(yè)出版社,2014.
[2]BruceEckel.JAVA編程思想[M].北京:機械工業(yè)出版社,2017.
[3]耿祥義,張躍平.JAVA設(shè)計模式[M].北京:清華大學(xué)出版社,2009.
[4]工作流管理聯(lián)盟.工作流管理聯(lián)盟工作流標(biāo)準(zhǔn).endprint