什麼是工作流引擎?用一句話來描述我覺得應該是:驅動任務按照預定義的業務規則在參與者之間進行流轉,最終完成特定業務處理的功能元件。那麼什麼是工作流系統呢?我覺得應該是:建立在工作流引擎基礎上的一系列的使用者互動、監控、**、評估等功能元件的集合,也就是圍繞引擎展開的與業務松耦合的輔助元件的組合。
下面先從引擎說起,按照上面的定義,引擎的關鍵點在於驅動、規則和參與者。驅動實際上是建立在特定流程模型上的,例如:傳送、回退、跳**送、跳轉回退、發散、匯聚等。規則是建立在流程變數上的執行時流轉路線定義,它可以是一段指令碼或者是一條
sql。參與者則是任務的實際處理者,可能是時間,可能是人還有可能是其它外部裝置輸入。
舉個簡單的例子,如下圖的請假流程:
申請人提交請假事由,如果請假天數小於
7天,那麼經理直接審批結束即可,如果大於
7天,那麼經理審批後需要人力主管備案結束流程。在這個過程中,應該發到哪個環節是業務規則決定的,怎麼發是引擎控制的,誰處理取決於環節參與者的設定。工作流的核心實際上就是上面這三部分的內容,當然上面僅僅是乙個最簡單的應用場景,實際業務場景可能比這要複雜的多,但是核心思想是這樣的,無非是實現邏輯的複雜性高了些。在這三部分中,流程驅動模型的實現最為複雜,很多情況下無法實現所有的模型,往往根據產品的市場做一定的取捨,但是一些基礎的模型是必須要支援的,如上面提到的六種。業務規則的處理需要實現業務規則引擎,因為業務規則的多樣性和複雜性一般來說規則引擎需要支援業務擴充套件;同時需要做好業務資料和流程資料的轉換,避免流程和業務的耦合。參與者相對於業務規則來說要簡單些,畢竟是系統級的,但是要充分考慮到系統整合等因素的影響。
上面我們描述了工作流系統的核心,但是這對於乙個完善可用的工作流系統來說是遠遠不夠的,因而我們需要做一系列的擴充套件,達到更好的友好性和可用性。
根據wfmc
的定義,我們需要必要的流程定製工具,即通過視覺化的介面來編排流程中環節個數,環節之間的先後順序,同時設定各個環節的參與者,環節之間流轉的規則。當然,我們也可以通過手工編寫流程指令碼或者組裝
xml的方式來達到定製流程的目的,但前提是你可以說服使用者,同時教會他們該如何做這件事。如果你面對的不是具有程式設計能力的開發人員,我覺得這似乎是一項艱鉅而不可能完成的任務。對於定製工具來說,必須要提及的內容便是定製流程的資料表示,目前主要有三種國際規範,即
xpdl
,bpel
,bpmn
。具體使用哪一種需要權衡,或者可以以一種為基礎進行相互轉換。當然你可以自己定義格式,但是在企業應用整合的大環境下,這很難站住腳。
流程定製工具、流程引擎、任務列表以及完善的工作流查詢、操作
api幾部分構成了乙個相對完善的工作流系統,能夠滿足大多數業務需要。但是隨著流程系統的發展,越來越多的特性融入了進來,例如任務監控、流程**、統計分析等。流程監控能夠讓使用者以更直觀的方式檢視流程、業務資訊。**和統計分析則可以通過對流程制定各種監控指標,並以此指導使用者優化流程,或者進行績效考核。
工作流概述
工作流 workflow 是對工作流程及其各操作步驟之間業務規則的抽象 概括 描述。工作流建模,即將工作流程中的工作如何前後組織在一起的邏輯和規則在計算機中以恰當的模型進行表示並對其實施計算。工作流要解決的主要問題是 為實現某個業務目標,在多個參與者之間,利用計算機,按某種預定規則自動傳遞文件 資訊...
工作流概述
工作流程圖是通過適當的符號記錄全部工作事項,用以描述工作活動流向順序。它是用圖的形式反映乙個組織系統中各項工作之間的邏輯關係,用以描述工作流程之間的聯絡與統一的關係.工作流程圖由乙個開始點 乙個結束點及若干中間環節組成,中間環節的每個分支也都要求有明確的分支判斷條件。所以工作流程圖對於工作標準化有著...
Activiti工作流概述
一 概述 工作流 workflow 就是 業務過程的部分或整體在計算機應用環境下的自動化 它主要解決的是 使在多個參與者之間按照某種預定義的規則傳遞文件 資訊或任務的過程自動進行,從而實現某個預期的業務目標,或者促使此目標的實現 工作流管理系統 workflow management system,...