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