官术网_书友最值得收藏!

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)秀的設計思想及代碼風格,易于入門。

主站蜘蛛池模板: 剑河县| 诏安县| 邵东县| 来凤县| 化隆| 瑞丽市| 屏东市| 太谷县| 邳州市| 威海市| 师宗县| 类乌齐县| 元朗区| 台北县| 尉犁县| 卓资县| 如东县| 百色市| 定安县| 连州市| 射洪县| 丹棱县| 淮北市| 土默特左旗| 云梦县| 杭锦后旗| 阿鲁科尔沁旗| 贡山| 石阡县| 吉安市| 仁怀市| 五莲县| 石嘴山市| 罗江县| 潮安县| 承德县| 扶绥县| 阳城县| 南溪县| 阿勒泰市| 鸡东县|