孫雪松
■摘 要:工作流是實現辦公自動化的一項重要的技術?;贐PS的工作流技術構建了應用系統功能框架,可以實現對流程全生命周期的管理。通過對流程的設計建模、部署、運行、監控、訪問權限控制等管理功能,實現了流程的標準化、規范化,從而提高了辦公效率。本文對基于BPS的工作流技術進行深入研究,結合業務工作實際進行了應用實例的開發,探討了管理系統中的流程設計過程,對提高業務過程控制和業務協同機制具有重要意義。
■關鍵詞:工作流技術;管理系統;應用
隨著信息化程度的不斷提高,許多業務的處理方式逐漸由紙質操作轉為信息系統進行處理和管理。通常情況下,業務處理都需要多個部門、多個人員協同工作,依據流程的特定順序完成工作。傳統的信息系統在任務流程層面缺乏一種信息化、可視化的動態監控研發設計全過程的有效手段,不能按規范的設計流程引導和驅動設計過程,因此,制約了有效設計知識的傳承和協同設計能力的提升。
筆者通過對現有工作流的分析與研究,發現其存在著一些不足。例如,有些工作流引擎在運行時需要解釋預先設定好的工作流文件從而導致在流程運行中無法靈活修改。對于邏輯復雜的大型流程來說,若存在節點變化,需逐個修改流程定義文件。重量級的流程引擎可以滿足大部分需求,但存在修改起來困難、學習成本高和部署復雜等問題,而輕量級的引擎則存在無法滿足需求等問題。針對這些問題,筆者提出了基于BPS的工作流技術在管理系統中的應用。
(一)工作流的組成
工作流是處理業務的步驟,是將一個復雜的工作分為多個步驟來完成。每個步驟或者小的環節安排一個或者多個參與者來完成。在事務的處理過程中,還需要對事務進行監控和管理,從而提高企業的工作效率和管理水平。在工作流中,最基本的兩個元素是活動與活動之間的連接關系?;顒邮菢I務過程中的任務,對應著業務流程中的某個步驟,而連接關系則表示業務規則。根據不同的業務流程和相應的規則,信息會在不同的執行者之間流轉和處理。
1.業務流程
描述一個完整的業務過程,它由若干活動組成,包括流程的基本信息、開始和結束條件、組成的活動、活動間流轉的規則、需要用戶執行的工作任務(工作項)、可能調用的應用程序以及流程相關數據等信息。提交到流程定義庫后會包含流程定義編號(流程定義的唯一標識)、流程定義名稱、版本號、流程定義描述以及提交時間等描述。
2.過程定義
過程定義包含在流程定義之中,代表了一個相對獨立的邏輯工作單元。一個活動代表一個需要由相關資源處理,或者由計算機處理的任務。其中,定義了該活動的基本信息、執行該活動的參與者、時間限制、工作項信息、觸發事件和啟動策略等信息。
3.活動
活動定義過程中每一個節點所需完成的工作。活動包含在流程定義之中,代表了一個相對獨立的邏輯工作單元。定義了活動基本信息、參與者、工作項信息、觸發事件和啟動策略等信息。
4.流程實例
當流程定義提交并發布到服務器以后,就可以啟動該流程。啟動時會創建流程定義的一個實例,稱為流程實例。同一個流程定義可以有多個流程實例。每一個流程實例會被保存在流程實例庫中,包括流程實例編號(唯一標識)、流程實例名稱、流程定義編號、流程實例狀態、流程實例啟動者、流程實例啟動時間和相關數據等信息。
5.活動實例
流程實例中的每個活動稱為活動實例。每一個活動實例會被保存在活動實例庫中,包括活動實例編號(唯一標識)、活動實例的狀態、所屬的活動定義編號以及流程實例編號、時間限制、是否超時和創建時間等信息。
6.工作流管理系統
一套完整的工作流創建和使用的計算機管理系統,其主要功能是完成對流程及組成活動的定義與建模、在執行中對業務流程進行協調管理、完成系統與參與者或其他系統的交互。
7.工作項
表示流程實例在流轉過程中為完成某個活動實例需要參與者做的工作。一個活動實例可以對應一個或多個工作項。每個工作項會被保存在工作項庫中,包括工作項編號(唯一標識)、參與者、工作項的狀態、所屬的活動實例編號、流程實例編號等信息。
(二)BPS原理及機制
BPS是完全基于業務化思想實現的SOA流程平臺。在國際工作流管理聯盟所描述的基礎上進行了改進,旨在實現在正確的時間將正確的任務按照正確的順序交給正確的人。
在開發期間,利用流程定義工具定義流程,通過調用組織模型接口獲取組織模型或外部相關應用。在運行期間,通過流程引擎來實現相應的工作。BPS能夠實現解釋工作流定義過程、控制流轉過程事務狀態轉變提供方位接口、監控管理流程流轉等功能,使流程具有穩定性、易維護性、靈活性及高可靠性等特點。
(一)工作流引擎設計
工作流引擎對于流程的執行過程中的管理主要分為流程發起、流程流轉、流程終止以及流程查詢?,F階段存在的大多數重量級的工作流引擎往往將實現部分放在邏輯層中進行封裝處理,從而導致當流程運轉時存在較多配置文件。部署時,通常需要考慮全套的工作流引擎?;贐PS的工作流引擎主要針對流程執行的4種功能作為儲存過程進行設計。在創建流程定義的相關靜態數據表單外,還建立了流程運行相關表和流程歷史相關表,分別用來保存流程運行時的數據及流程完成后的歷史數據。針對流程執行過程中的4種功能分別做如下操作。
1.流程發起
在流程啟動后,生成流程相關信息,并將信息分為流程層面、活動層面及工作項層面,將信息存放到流程業務表和運行相關表中,并標記流程及相關節點狀態信息。
2.流程流轉
在流程流轉過程中,流程層面的表中始終保持流程狀態可用,將節點活動層面數據及工作項層面數據更新為“結束”狀態并寫入流程明細表中。
3.流程終止
在流程終止時,將流程相關信息從運行表中刪除并加入流程歷史表中。
4.流程查詢
其實質是指對運行中的流程及已完成的流程的監控與使用。
(二)數據模型設計
流程實例是流程與業務關聯的紐帶。因此,將業務表與流程進行關聯是實現工作流的基礎。將流程引擎相關數據通過流程實例編號關聯,通過映射表將業務系統中的業務表主鍵與流程實例編號關聯,從而能夠獲取流程與業務對應關系,得到相應信息,得到流程開發中的數據模型。
(三)服務接口
工作流引擎提供用于進行工作流部署和執行及管理的服務接口。通過該接口可以操控服務相對應的數據庫表。服務接口主要包括以下幾種類型。
一是資源服務組件。該組件是資源管理類,其提供了管理和控制流程發布包和流程定義的操作。主要是通過工作流建模工具將業務流程的定義部署到服務器上,同時,也能提供引擎中發布的包含流程的查詢操作。對發布包的激活操作或暫停操作就是對應的流程定義操作。暫停意味著不允許執行任何操作,而激活則是暫停所對應的反向操作,即能夠激活多種資源。例如,包含在發布包里的文件或引擎自動生成的流程圖等流程信息。
二是運行服務組件。該組件是流程的運行管理類。通過這一組件可以獲取流程運行中的相關信息。
三是任務服務組件。該組件是流程的任務管理類。通過這一組件可以獲取流程中每個工作項的相關信息。
四是歷史服務組件。該組件是流程的歷史管理類。流程結束后,流程實例信息會自動歸結到歷史信息數據庫表內。因此,可以通過此組件查詢流程的歷史信息。流程引擎會保存許多信息。例如,流程啟動時間、參與人、結束時間和流程相關數據等。通常情況下我們會通過這個類型查詢到相關信息。
五是管理服務組件。該組件是流程引擎管理類,其提供了關于流程引擎的管理和維護功能。這些功能一般不在工作流驅動的應用程序中使用,而是用于對流程引擎系統本身的維護方面。
(一)需求分析
系統內一般通過工作流建立一個完善的管理流程體系。工作流一般由開始節點、人工活動節點、自由活動節點、網關和結束節點構成。每個流程都包含且僅包含一個開始節點和一個結束節點。網關則包括排他網關、并行網關、包容網關及事件網關。一般情況下,我們可以根據業務特點判斷節點的選擇。有些工作流會根據業務情況選擇是否啟用子流程。滿足操作人員習慣、實現界面友好、支持多個入口對業務數據進行操作設計;支持各種邏輯下的業務流程流轉方式,保證特殊業務流轉的靈活性。
根據業務需求,需要考慮業務辦理過程中的問題。例如,當節點完成操作后,需要將信息發給流程啟動者;當操作失誤導致數據填錯時,需要將事務撤回等。
(二)工作流在管理系統中的應用
在表單初始化時,頁面之間通過請求傳遞工作項編號,利用工作項編號獲取工作項明細,得到流程實例編號后根據關聯關系得到業務表記錄。當表單提交時,利用工作項編號或流程實例編號調用流程接口,創建并啟動流程。在流程中根據條件設置相關數據,完成或退回工作項,驅動流程實現流轉。
(三)異常處理
一般而言,異常情況的產生主要是業務人員操作不當或系統漏洞而導致。無論是操作人員失誤還是系統漏洞,都必須遵循一個原則,即流程數據或者業務數據存在異常情況時,必須對流程進行嚴格控制使其不能繼續流轉。實現這一目的的手段通常是對存儲過程進行回滾。
筆者對工作流技術進行了深入的研究和分析,剖析工作流技術理論,并結合現有的工作流進行分析,將輕量級的工作流設計方案應用于管理系統,取得了良好的應用效果,具有較高的應用價值和參考意義。
[1]陳廣智,潘嶸,李磊.工作流建模技術綜述及其研究趨勢[J].計算機科學,2014(1).
[2]杜清華,張凱.一種高效的跨平臺工作流優化方法[J].計算機工程,2022(7).
[3]田倬璟,黃震春,張益農.云計算環境任務調度方法研究綜述[J].計算機工程與應用,2021(2).
[4]陳紅燕,王新,何學洲.基于關系數據庫的工作流管理系統設計與實現[J].工程建設與設計,2020(22).
[5]劉其臻.基于工作流的項目管理系統的設計與實現[D].濟南:山東大學,2020.
[6]王剛.基于BPMN規范的工作流引擎設計與實現[D].成都:電子科技大學,2020.
[7]呂博文.基于SOA的服務組合工作流引擎研究與設計[D].西安:西安石油大學,2019.
[8]徐春婕,史天運,劉碩研,等.基于SOA和工作流的鐵路客運站管理系統研究[J].計算機工程與設計,2014(2).
[9]李青,趙萌,聞敬謙.基于工作流的集成質量管理系統設計[J].北京航空航天大學學報,2005(11).
(作者單位:中國航發沈陽發動機研究所)