優秀工作流引擎功能標準

2021-05-12 18:05:01 字數 4640 閱讀 2112

工作流引擎(workflow engine )

[編輯]

工作流引擎概述

工作流引擎是指workflow(工作流)作為應用系統的一部分,並為之提供對各應用系統有決定作用的根據角色、分工和條件的不同決定資訊傳遞路由、內容等級等核心解決方案。

例如開發乙個系統最關鍵的部分不是系統的介面,也不是和資料庫之間的資訊交換,而是如何根據業務邏輯開發出符合實際需要的程式邏輯並確保其穩定性、易維護性(模組化和結構化)和彈性(容易根據實際業務邏輯的變化作出程式上的變動,例如決策權的改變、組織結構的變動和由於業務方向的變化產生的全新業務邏輯等等)。 workflow 引擎解決的就是這個問題:如果應用程式缺乏強大的邏輯層,勢必變得容易出錯(資訊的路由錯誤、死迴圈等等)。

就好比一輛汽車,外表做得再漂亮,如果發動機有問題就只是乙個擺設。應用系統的彈性就好比引擎轉速方面的效能,加速到100 公里需要1 個小時(業務流程發生變動需要進行半年的程式修改)還能叫好車嗎?引擎動不動就熄火(程式因為邏輯的問題陷入死迴圈)的車還敢開嗎?

workflow 關注的是如何縮短流程閒置時間,從而提高企業的業務處理能力並使企業能夠關注於真正對企業有意義的增值業務上。從建立企業神經系統的角度也許更能理解兩者的區別。傳統軟體不能解決工作流的問題,例如erp關注的是企業的資源配置,但不可能解決資源傳輸過程中的損耗和降低傳輸(流程)的成本;同樣workflow也不能完全解決傳統管理軟體所能解決的問題,例如對生產管理的mrp 系統所能解決的生產過程控制通過workflow很難實現。

但乙個好的傳統軟體如果希望能自動化地在整個企業中應用起來,必須有乙個強大的邏輯層,用以解決資訊傳遞的邏輯判斷和自動流轉,這個時候就需要workflow的平台。

今天的很多優秀的工作流解決方案整合了簡訊息、頁面服務、目標管理、檔案管理和其他一些作業系統才提供的服務。

[編輯]

工作流引擎的五大介面

工作流參考模型確定了工作流管理系統的基本架構。該架構是開發工作流軟體時應當採納的系統模型,當然,乙個工作流管理系統也可以不遵循這個模型標準,或只實現這個模型的一部分,但事實證明,這個模型結構是目前最為合理的。

系統的核心部分是工作流引擎,引擎是驅動流程流動的主要部件,它負責解釋工作流流程定義,建立並初始化流程例項,控制流程流動的路徑,記錄流程執行狀態,掛起或喚醒流程,終止正在執行的流程,與其他引擎之間通訊等等工作。wfmc沒有針對引擎的實現提供具體的標準,因為對引擎做過多的約束並沒有多大的現實意義。

乙個工作流管理系統可以包含乙個或多個引擎,並通過api向外部提供五個方面的功能服務,這些功能分別為:

介面1-流程定義的匯入匯出

介面2-同客戶端應用程式和工作列表處理程式之間的互動

介面3-軟體工具和應用程式的呼叫

介面4-不同工作流管理系統之間的協同工作

介面5-管理和監視功能

介面1-流程定義的匯入匯出

許多不同廠商提供的工具可以進行工作流流程的分析、建模、描述和歸檔等工作。這些工具需要識別公共的流程交換格式,以支援在這些不同的產品之間傳送工作流程流程定義。介面1便定義了這樣的交換格式。

此外,介面1還定義了設計環境與執行環境之間交換的規範,以使不同的建模工具產生的流程定義可以輸入到不同的工作流產品的執行環境中。  為了提供乙個訪問和描述工作流定義的公共方法,需要引入乙個工作流元資料模型(meta-data model),這個模型確定了流程定義中用到的一般的實體,這些實體都有不同的屬性,不同廠商開發的工具可以根據公共的交換形式向工作流執行環境傳送這些模型,傳送可以通過api實現,也可以通過批量(batch)傳送實現。

元模型提供了流程定義交換中用到的基本的實體及其屬性,這些都是工作流流程的組成部分,這些實體包括:

工作流流程定義

工作流流程活動

過渡資訊(transition information)

工作流參與者

組織模型

工作流應用程式

工作流相關型別

工作流相關資料

系統和環境資料

資料型別和表示式

流程定義的交換

在不同的系統之間傳遞流程定義資料可能需要不同的機制,但在所有的情況下,流程定義資料的表達必須是一致的,這些表達包括一些公共的物件、關係及其屬性。

介面2與介面3:

工作流管理系統必須提供同使用者之間互動的通道,以便使用者參與到系統的執行中。介面2主要完成這方面的功能。

wfmc在關於介面2 的規範中定義了工作流管理系統必須提供的型別、資料結構、api和錯誤**,並以c語言標頭檔案的形式提供。介面2所提供的功能大致可以分為一下五個方面:

* 1、 會話的建立和與撤銷;

2、 獲取工作流流程定義及狀態;

3、 工作流流程例項的操作,如建立、掛起、終止流程,獲取和設定流程屬性等;

4、 工作流活動例項的操作,如獲取和設定活動的屬性,改變活動的狀態等;

5、 工作列表(worklist)及工作項(workitem)的操作,如獲取工作列表,處理工作項等。

通過這些功能,使用者可以完成與工作流管理系統之間互動的所有任務:登入系統、開啟自己的工作列表、處理自己的工作任務、將完成的任務提交給系統、將自己的任務轉交給其他使用者等等。

工作流系統在執行過程中有時需要呼叫外部應用程式,以完成系統不能完成的工作(比如,傳送email或傳真,掃瞄檔案等),或者與其他系統整合到一起。此時可以通過介面3來完成。

介面3的功能同介面2的功能大部分是相同的,因此,這兩個介面有融合的趨勢。介面3主要規定了呼叫外部應用程式的函式規範,以及外部應用程式返回資料的格式。

介面4-不同工作流管理系統之間的協同工作

在企業級的工作流系統中,流程往往需要跨越多個伺服器或系統,比如應用於跨國公司或大型集團公司的工作流系統經常會有這種的需求,此時就需要伺服器或系統之間進行通訊,交換流程控制資訊和流程定義等資料,以實現流程跨地域執行。wfmc在規範中以c函式的形式提供了這些控制的定義,其中包括以下幾個方面的功能:

1、建立流程例項;

2、獲取流程例項狀態;

3、獲取和設定流程例項屬性;

4、啟動或終止流程例項;

5、改變流程例項的狀態;

6、改變流程例項的屬性;

7、更新流程例項。

伺服器或系統之間資訊交換的格式有多種,例如:檔案、資料庫表、e-mail或直接通過網路傳送的資料流等等。

介面5-管理和監視功能

此介面提供給使用者管理和監控系統的執行狀態、檢視系統執行的歷史記錄的功能。wfmc在此介面的規範中定義了各種審計資訊的資料格式,這些格式包括:

1. 流程例項(process instance)審計資訊:包括建立、啟動流程例項和子流程例項的審計資料;流程例項狀態變化的審計資料;流程例項屬性變化的審計資料;

2. 活動例項(activity instance)審計資訊:包括活動例項狀態變化的審計資料;活動例項屬性變化的審計資料;

3. 工作項(workitem)審計資訊:包括工作項狀態變化的審計資料;工作項分配合重新分配的審計資料;工作項屬性變化的審計資料;

4. 遠端操作審計資訊:包括開始和停止會話(session)的審計資料;遠端建立流程例項和遠端改變流程例項狀態的審計資料;遠端獲取和設定流程例項屬性的審計資料;會話管理的審計資料;

5. 流程定義審計資訊;

6. 擴充套件的審計資訊及專用的審計資訊。

這些審計資料在系統執行時刻由系統自動記錄在資料庫或檔案中,可通過系統提供的api進行統計和查詢,或者通過系統工具匯出到系統外部。

另外,此介面還要提供系統管理與流程控制的功能,如:系統流程資料的備份和恢復,使用者管理,流程管理等等。

通過這五個介面,工作流管理系統可以同外部的軟體工具進行互動,這些工具可以由同一廠商提供,也可以由不同的廠商提供,但前提是這些工具都必須遵循wfmc的規範。使用者也可以有充分的選擇空間來決定哪一廠商的產品,或者自己開發屬於哪乙個介面的工具。

這五個介面一般通過api的形式提供給使用者或軟體開發商,這些api稱為wapi(workflow api),也有廠商將api封裝成元件形式提供,以簡化開發難度、降低成本並提高效率。

可以用下面的圖來表示這五個介面的作用:

[編輯]

工作流引擎的關鍵因素

工作流引擎主要功能之一幫助使用者適應流程多變性的需要的,給客戶帶來價值就是在於流程發生變化時的易維護性和低成本,工作流引擎就像是汽車的發動機,乙個汽車即使再漂亮,沒有強勁的引擎支撐也能難成為一輛好車,工作流引擎的幾個關鍵因素如下:

1、 適合東方流程特性、易用的流程設計器

包括各種環節特性、路徑定義、時限定義、流程關聯、參與人員(主辦、協辦、閱知)、表單許可權、各種特殊許可權等等。各種流程特性可以用工具通過簡單易用的方式定義出來。

2、 高效能、高穩定性的流程引擎

如果工作流引擎只是用於少數人玩玩的情況,大可不必那麼嚴謹,工作流引擎對於大規模資料量、併發訪問、各種流程邏輯的支撐能力非常關鍵,因此高效能和高穩定性是非常關鍵的。工作流引擎的高效能和高穩定性在大量實際的案例中得到了證實。

3、 工作流應用的快速開發架構

單純的工作流引擎對於使用者來說是沒有意義的,就像司機拿著發動機不知道要做什麼一樣,因此好的工作流引擎的關鍵因素之一是提供終端應用系統的快速開發能力,這樣對於軟體提供者和軟體應用者是雙贏的局面。

4、 強大的業務擴充套件能力

工作流引擎幫助應用軟體提供者很好的處理了流程邏輯的實現,可是如何支撐業務能力的擴充套件也是關鍵因素之一,比如:流程設計是由使用者通過流程設計器去定義的,那如何實現各種未知流程下的統計資訊呢?比如工作流曾經開發過的物流配送系統,使用者定義了各種未知流程同時又能統計各個配送點當月的配送量。

好的工作流引擎的關鍵因素遠不止這幾點,目前工作流引擎產品層出不窮,可是真正的區別是在於末端需求的實現能力和實現成本。

工作流引擎

百科名片 所謂工作流引擎是指workflow作為應用系統的一部分,並為之提供對各應用系統有決定作用的根據角色 分工和條件的不同決定資訊傳遞路由 內容等級等核心解決方案。目錄簡介 1.工作流引擎 workflow engine 2.工作流解決方案與傳統管理軟體的關係 3.workflow的優勢 詳細介...

工作流引擎技術經驗白皮手冊

工作流引擎 產品功能介紹 v0.07 隨著我國資訊化建設的不斷深入,越來越多的 部門和企事業單位都清醒地認識到資訊化對於自身的生存與發展的重要性,以it 系統建設為基礎提高工作效率,增強競爭能力,已經成為共識。在過去的若干年中,許多企業以當時的it 發展水平為基礎,針對不同的業務需求搭建了種類繁多的...

工作流引擎資料庫表設計

基於打造乙個靈活 高效 輕量級的工作流引擎,暫時不考慮功能的完備和複雜,只是實現其中必不可少的功能和條件。主要考慮以下三個方面的內容 流程定義 工作流中的流程極其相關活動的定義和模型資料搭建 執行排程控制 執行工作流過程中流程活動任務分配 排程控制 執行階段的人機互動 實現各種活動執行過程中使用者與...