- 深入Activiti流程引擎:核心原理與高階實戰(zhàn)
- 賀波 胡海琴 劉曉鵬編著
- 2815字
- 2023-06-21 18:33:45
2.2 工作流技術概述
工作流技術是當今一項飛速發(fā)展的技術,能夠結合人工和機器行為,特別是能夠與應用程序和工具進行交互,從而完成業(yè)務過程的自動化處理。WfMC頒布的一系列工作流產(chǎn)品標準,包括工作流參考模型、工作流管理系統(tǒng)等,奠定了工作流技術的基礎。
2.2.1 工作流參考模型
工作流參考模型(workflow reference model)是1995年由WfMC提出的工作流管理系統(tǒng)體系結構模型,標識了工作流管理系統(tǒng)的基本組件和這些組件的交互接口,如圖2.1所示。其中的組件包括工作流執(zhí)行服務、工作流引擎、流程定義工具、工作流客戶端應用、調用應用及管理和監(jiān)控工具。

圖2.1 工作流參考模型的組件和接口
● 工作流執(zhí)行服務由一個或多個工作流引擎組成,用于創(chuàng)建、管理和執(zhí)行工作流實例的軟件服務。
● 工作流引擎是為流程實例提供運行時執(zhí)行環(huán)境的軟件服務。
● 流程定義工具用于提供工作流定義服務,可以以圖形方式顯示并操作復雜的流程定義,并輸出可被工作流引擎識別的工作流定義。
● 工作流客戶端應用是一種通過請求的方式與工作流執(zhí)行服務交互的應用。也可以說,工作流客戶端應用調用工作流執(zhí)行服務。
● 調用應用是被工作流執(zhí)行服務調用的應用,調用應用與工作流執(zhí)行服務交互,協(xié)作完成一個流程實例的執(zhí)行。
● 管理和監(jiān)控工具是管理和監(jiān)控工作流管理系統(tǒng)的工具,包括用戶管理、角色管理、審計管理、資源管理、流程監(jiān)控等。
此外,工作流參考模型還定義了5個接口,用于定義以上組件間的交互接口規(guī)范。
● 接口1:工作流定義接口。此接口的規(guī)范有WPDL、XPDL、BPEL等,用于為用戶提供一種可視化的、可以對實際業(yè)務進行建模的工具,并生成可被計算機處理的業(yè)務過程形式化描述。
● 接口2:工作流客戶應用接口。此接口的規(guī)范為WAPI(代表workflow application programming interface)。它提供了一種手段,使用戶可以處理流程運行過程中需要人工干預的任務[實際上就是工作項(workitem)],工作流管理系統(tǒng)負責維護這個工作項列表。
● 接口3:工作流調用應用接口。此接口的規(guī)范為WAPI。工作流引擎調用外部業(yè)務應用的規(guī)范,如在流程執(zhí)行過程中調用業(yè)務系統(tǒng)提供的接口處理業(yè)務數(shù)據(jù)等。
● 接口4:工作流引擎協(xié)作接口。此接口的規(guī)范為Wf-XML 2.0,是不同的工作流引擎之間進行協(xié)作的接口規(guī)范。
● 接口5:管理和監(jiān)控接口。此接口的規(guī)范為CWAD(代表common workflow audit data)。該接口監(jiān)控工作流管理系統(tǒng)中所有實例的狀態(tài),如組織機構管理、實例監(jiān)控管理、統(tǒng)計分析管理等。
工作流參考模型目前已成為工作流軟件系統(tǒng)設計的權威參考標準。它提供了一個規(guī)范的工作流術語表,使在一般意義上討論工作流系統(tǒng)體系結構成為了可能。它還為工作流管理系統(tǒng)的關鍵組件提供了獨立于特定產(chǎn)品或技術實現(xiàn)的功能與交互描述。此外,它從功能的角度定義5個關鍵組件的交互接口,推動信息交換標準化,使不同產(chǎn)品間的交互成為可能。
2.2.2 工作流管理系統(tǒng)
早期辦公自動化系統(tǒng)通常采用硬編碼的方式來處理業(yè)務、公文的流轉。然而,隨著業(yè)務和公文愈發(fā)復雜,需求的不斷變更,這種方式顯然已難以滿足現(xiàn)實的需求,工作流管理系統(tǒng)應運而生。
工作流管理系統(tǒng)(Workflow Management System, WfMS)是一款用于定義和管理工作流,并按照在計算機中預先定義好的工作流邏輯推進工作流實例執(zhí)行的軟件系統(tǒng)。WfMS通過分析、抽象業(yè)務、公文流轉過程,解決業(yè)務交互邏輯、業(yè)務處理邏輯及參與者的問題。
● 業(yè)務交互邏輯對應業(yè)務流轉過程。WfMS通過工作流引擎、工作流設計、流程操作等功能解決業(yè)務交互邏輯的問題。
● 業(yè)務處理邏輯對應業(yè)務流轉過程中表單、文檔等的處理。WfMS通過表單設計工具與表單的集成等功能解決業(yè)務處理邏輯的問題。
● 參與者對應流轉過程中各環(huán)節(jié)中的人或程序。WfMS通過與應用程序的集成解決參與者的問題。
WfMS為方便修改業(yè)務交互邏輯、業(yè)務處理邏輯及參與者提供了可視化流程設計及表單設計工具,為實現(xiàn)WfMS的擴展提供了一系列接口,其產(chǎn)品結構如圖2.2所示。
完整的WfMS通常由工作流引擎、工作流設計器、流程操作、工作流客戶端程序、流程監(jiān)控、表單設計器、與表單的集成,以及與應用程序的集成8個部分組成。
工作流引擎作為WfMS的核心部分,主要提供對工作流定義文件的解析及流程流轉的支持。工作流定義文件描述了業(yè)務的交互邏輯,由工作流引擎解析并按照業(yè)務交互邏輯進行業(yè)務的流轉。工作流引擎通常通過參考某種模型進行設計,通過流程調度算法進行流程流轉(如流程的啟動、終止、掛起、恢復等),通過各種環(huán)節(jié)調度算法實現(xiàn)環(huán)節(jié)的流轉(如環(huán)節(jié)的合并、分叉、選擇、條件選擇等)。
流程設計工具一般是可視化的,用戶可以以拖放元素的方式來繪制流程,并通過環(huán)節(jié)配置實現(xiàn)對環(huán)節(jié)操作、環(huán)節(jié)表單、環(huán)節(jié)參與者的配置。流程設計工具的好壞決定了WfMS是否易用。
流程操作指工作流支持的針對流程環(huán)節(jié)的操作,如啟動、終止、掛起、分支、合并等,工作流引擎直接支持上述操作。而在實際需求中,通常需要自由操作流程,如回退、跳轉、加簽、減簽等,對于這些操作,工作流引擎不直接支持,用戶必須單獨實現(xiàn)。是否支持流程操作直接決定了WfMS是否實用。
工作流客戶端程序是WfMS的工作界面,通常以Web方式展現(xiàn),通過提供待辦列表和已辦列表、執(zhí)行流程操作、查看流程歷史信息等內容,展現(xiàn)WfMS的功能。
流程監(jiān)控以圖形化方式監(jiān)控流程執(zhí)行過程,包括流程運轉狀況、每個環(huán)節(jié)耗費的時間等,流程監(jiān)控數(shù)據(jù)是流程優(yōu)化的依據(jù)。
表單設計工具一般是可視化的,用戶可以以拖放元素的方式繪制業(yè)務所需的表單,并綁定表單數(shù)據(jù)。表單設計工具的好壞也會決定WfMS是否易用。

圖2.2 WfMS產(chǎn)品結構
通常業(yè)務流轉需要表單來表達實際的業(yè)務,因此需要與表單進行集成來實現(xiàn)業(yè)務意義。與表單的集成通常包括表單數(shù)據(jù)的自動獲取、存儲、修改,表單域的權限控制,流程相關數(shù)據(jù)的維護,以及流程環(huán)節(jié)表單的綁定。與表單的集成程度直接決定WfMS對開發(fā)效率的提升效果。
與應用程序的集成用于完善WfMS的業(yè)務意義,主要涉及與權限系統(tǒng)及組織機構的集成。流程環(huán)節(jié)需要綁定相應的執(zhí)行角色,而流程操作需要關聯(lián)權限系統(tǒng)、組織機構。
2.2.3 工作流開源框架
目前市面上主流的工作流開源框架有4個,分別是jBPM、Activiti、Camunda和Flowable。其中,Activiti、Camunda和Flowable均是基于jBPM 4.0的框架,它們之間的關系如圖2.3所示。

圖2.3 jBPM、Activiti、Camunda、Flowable
jBPM 4.0是JBoss公司推出的一款工作流開源框架,后來由于團隊內部出現(xiàn)分歧,部分團隊核心人員離開JBoss公司加入Alfresco公司,很快Alfresco公司推出了新的基于jBPM 4.0的開源工作流框架Activiti 5.0。
Activiti 5.0以jBPM 4.0為基礎,繼承了jBPM 4.0強大的可擴展能力,同時增強了流程可視化與管理能力。而JBoss公司的產(chǎn)品jBPM 5.0則完全拋棄了jBPM 4.0的架構,以Drools Flow為基礎徹底重構了工作流引擎核心架構,因此,jBPM 5.0與jBPM 4.0是兩款完全不同的產(chǎn)品。許多jBPM的老用戶都轉向了Activiti 5.0框架。目前,jBPM 5.0及其以后的版本的國內市場占有遠不如Activiti。
Camunda和Flowable的誕生與Acitiviti如出一轍。目前Camunda和Flowable已經(jīng)推出了各自的商業(yè)版本和開源版本,而Activiti則持續(xù)開源。雖然Camunda和Flowable這兩位后起之秀都足夠優(yōu)秀,不但修復了Activiti 5.0的很多漏洞,在產(chǎn)品功能上也更加的完善,但是對于一家公司來說,從Activiti向Camunda或Flowable遷移代價太大。
本書選用Activiti來講解企業(yè)級BPM開發(fā)與應用的實現(xiàn),一方面是因為它免費開源、穩(wěn)定可靠、應用廣泛,另一方面是因為Activti有著十分優(yōu)秀的設計思想及代碼風格,易于入門。
- ERP原理·設計·實施(第4版)
- 國有企業(yè)人力資源管理實務
- 企業(yè)信息系統(tǒng)的深度實施:理論、規(guī)律與案例
- 精益實踐與信息化
- 系統(tǒng)工程
- 物流信息系統(tǒng)
- 智慧·融合·跨界
- 管理系統(tǒng)模擬應用
- 省際信息流動空間結構及其對區(qū)域等級體系的影響
- 數(shù)據(jù)權益資產(chǎn)化與監(jiān)管:大數(shù)據(jù)時代的個人信息保護與價值實現(xiàn)
- 教爸爸媽媽用微信
- 低代碼在制造行業(yè)數(shù)字化實踐
- 大數(shù)據(jù)云圖:如何在大數(shù)據(jù)時代尋找下一個大機遇
- 建模:數(shù)字化轉型思維
- 基于元胞自動機的消費行為生成擴散模型與仿真