工作流參考模型確定了工作流管理系統的基本架構。該架構是開發工作流軟件時應當采納的系統模型,當然,一個工作流管理系統也可以不遵循這個模型標準,或只實現這個模型的一部分,但事實證明,這個模型結構是目前最為合理的。
系統的核心部分是工作流引擎,引擎是驅動流程流動的主要部件,它負責
解釋工作流流程定義,
創建并初始化流程實例,
控制流程流動的路徑,
記錄流程運行狀態,
掛起或喚醒流程,
終止正在運行的流程,
與其他引擎之間通訊等等工作。WfMC沒有針對引擎的實現提供具體的標準,因為對引擎做過多的約束并沒有多大的現實意義。
一個工作流管理系統可以包含一個或多個引擎,并通過API向外部提供五個方面的功能服務,這些功能分別為:
通過這五個接口,工作流管理系統可以同外部的軟件工具進行交互,這些工具可以由同一廠商提供,也可以由不同的廠商提供,但前提是這些工具都必須遵循WfMC的規范。用戶也可以有充分的選擇空間來決定哪一廠商的產品,或者自己開發屬于哪一個接口的工具。
這五個接口一般通過API的形式提供給用戶或軟件開發商,這些API稱為WAPI(Workflow API),也有廠商將API封裝成組件形式提供,以簡化開發難度、降低成本并提高效率。
工作流管理系統一般要提供三種基本的功能:
· 設計功能(Build-time function):
提供工作流流程及其相關活動的定義(及模擬)。
· 運行控制功能(Run-time control function):
提供工作流流程的管理,并根據流程定義控制活動(Activity)的執行次序。
· 運行交互功能(Run-time interaction function):
與用戶或IT應用程序進行交互以完成活動的執行。
可以用下面的圖來表示工作流管理系統的基本特征。

接口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)的操作,如獲取工作列表,處理工作項等。
通過這些功能,用戶可以完成與工作流管理系統之間交互的所有任務:登錄系統、打開自己的工作列表、處理自己的工作任務、將完成的任務提交給系統、將自己的任務轉交給其他用戶等等。
具體的函數聲明不再詳述,可以到WfMC的網站(http://www.wfmc.org)去下載有關規范。
工作流系統在運行過程中有時需要調用外部應用程序,以完成系統不能完成的工作(比如,發送Email或傳真,掃描文件等),或者與其他系統集成到一起。此時可以通過接口3來完成。
接口3的功能同接口2的功能大部分是相同的,因此,這兩個接口有融合的趨勢。接口3主要規定了調用外部應用程序的函數規范,以及外部應用程序返回數據的格式。
接口4
在企業級的工作流系統中,流程往往需要跨越多個服務器或系統,比如應用于跨國公司或大型集團公司的工作流系統經常會有這種的需求,此時就需要服務器或系統之間進行通訊,交換流程控制信息和流程定義等數據,以實現流程跨地域運行。WfMC在規范中以C函數的形式提供了這些控制的定義,其中包括以下幾個方面的功能:
1、 創建流程實例;
2、 獲取流程實例狀態;
3、 獲取和設置流程實例屬性;
4、 啟動或終止流程實例;
5、 改變流程實例的狀態;
6、 改變流程實例的屬性;
7、 更新流程實例。
服務器或系統之間信息交換的格式有多種,例如:文件、數據庫表、E-mail或直接通過網絡傳送的數據流等等。
接口5
此接口提供給用戶管理和監控系統的運行狀態、查看系統運行的歷史記錄的功能。WfMC在此接口的規范中定義了各種審計信息的數據格式,這些格式包括:
- 流程實例(Process Instance)審計信息:包括創建、啟動流程實例和子流程實例的審計數據;流程實例狀態變化的審計數據;流程實例屬性變化的審計數據;
- 活動實例(Activity Instance)審計信息:包括活動實例狀態變化的審計數據;活動實例屬性變化的審計數據;
- 工作項(Workitem)審計信息:包括工作項狀態變化的審計數據;工作項分配合重新分配的審計數據;工作項屬性變化的審計數據;
- 遠程操作審計信息:包括開始和停止會話(Session)的審計數據;遠程創建流程實例和遠程改變流程實例狀態的審計數據;遠程獲取和設置流程實例屬性的審計數據;會話管理的審計數據;
- 流程定義審計信息;
- 擴展的審計信息及專用的審計信息。
這些審計數據在系統運行時刻由系統自動記錄在數據庫或文件中,可通過系統提供的API進行統計和查詢,或者通過系統工具導出到系統外部。
另外,此接口還要提供系統管理與流程控制的功能,如:系統流程數據的備份和恢復,用戶管理,流程管理等等。