研究工作流及其相關技術的人一定知道這個組織——工作流管理聯盟(簡稱WfMC,Workflow Management Coalition),其成立于1993年。作為工作流技術标準化的工業組織,WfMC提出的工作流系統參考模型(Reference Model)無疑為各家工作流軟體廠商的系統設計規劃提供了最權威的參考,乃至标準。下面就是這個參考模型:
首先,最重要的部分就是中間的工作流引擎,可以說它就是整個工作流系統的心髒,因為所有的工作流系統都要使用工作流引擎來:
1、為運作中的流程執行個體解釋我們的流程定義——這些定義一般都是由接口1獲得的。
2、組織排程流程的執行個體,推進工作流程的前進,這包括條件流轉、分支聚合、父子流程……
3、處理工作任務的配置設定、接受、送出等行為。——為無論是人工幹預或自動執行的任務,提供計算的支援。
4、管理調用其他的4個接口——這可能包括解釋工作流程定義中的一些腳本。
工作流引擎做的工作就像心髒把血液不斷的送到我們身體的各個部分一樣,關于工作流引擎是如何架構和設計的,這相當複雜,不過我會在以後的文章和大家讨論。
然後,說說工作流系統“身體”的五個部分吧,也就是五個接口:
接口1——流程定義工具,前面提到過我們使用它來定義業務流程,所謂的業務流程定義一般來說就是一段XML,它遵循XPDL(Xml Process Define Language)标準或BPEL(Business Process Execution Language)标準或廠商自定義的标準等等。事實上你就可以把它了解為一個産生XML的圖形化模組化工具。這種圖形化模組化工具各個廠商的技術實作可謂五花八門,國内的一些廠商,例如西安協同采用的是java swing,joinwork使用的是flash,而我做的工作流系統使用的是ActiveX;國際上的一些開源項目,如jBPM使用的是基于Eclipse的插件,Shark Workflow使用的則是JAWE——一種基于Java技術實作的XPDL模組化工具。當然,它們的目的都是——産生XML形式的流程定義。
接口2——工作流用戶端應用,這很有意思,當我們的業務流程設計好了、運作起來了,那麼我們——人如何與工作流引擎互動呢?這時候,工作流引擎就通過接口2,為我們提供各種各樣的工作/任務清單、工作表單、流程清單以及一些查詢功能。我們通過這個接口,就可以辦理任務、填寫表單……進而與工作流引擎溝通。
接口3——應用程式執行服務,工作流引擎通過這個接口去執行一些外部的或面向專門職能領域的應用程式,例如财務系統、報表系統等,讓這些第三方系統參與進來,進而完成定義的工作流程。這看起來就像EAI(——Enterprise Application Integration)的特性,而事實上它也可以說就是Workflow EAI。同時我們也可以發現接口2和接口3的界定很模糊,難道接口2提到的工作清單不能算是外部的應用程式麼?沒錯!這個問題确實存在,這也就是為什麼荷蘭工作流大師Aalst在其著作中寫道“建議每個應用程式都由此‘應用程式執行服務’打開”的原因,他是在建議統一這兩個接口麼?我也不知道。總之,接口3在标準化方面衆口不一。
接口4——與其它工作流系統的定制/互動服務,用來處理若幹自治工作流系統之間的工作交換,例如案例轉移、工作項外包等等。事實上,WfMC組織的初衷是想通過這個接口來連接配接各個不同的工作流引擎/系統,使它們在一個統一的标準下工作和交流。想法是好的,但是,由于種種原因吧,個人認為是商業利益的因素以及WfMC還沒有強大到能“号令江湖,莫敢不從”的地步,是以到目前為止,接口4基本不被支援,也就是說,各大廠商的工作流産品并不能用同一種語言對話。
接口5——管理和監控工具,雖然很多工作流系統(特别是開源工作流系統)實作的最簡單部分的就是這個接口,但我認為最能展現工作流系統在管理上應用價值的就是這個部分,它主要被用來搜集管理資訊,這包括諸如工作流系統功能管理工具、流程實時監視和控制工具以及工作效率分析和流程覆寫面分析等各種商業智能工具,這為提升企業的管理能力、優化重組企業的業務流程、分析企業内部的工作效率瓶頸等提供了重要的量化資料支援。俗話說“工業化解放人類的體力,資訊化解放人類的智力”,這個接口提供的功能不正是解放了企業上司和決策者們智力的麼,而這正是資訊化的初衷,工作流的最終價值所在。而傳統的工作流系統在這個接口上的“短闆”,正為BPM(Business Process Management)這個概念的支援者提供了攻擊工作流系統的口實,BPM系統在這個接口上的強化成了很多人認為“Workflow系統”不等同于或弱于“BPM系統”的最重要原因,事實上,不過是些概念而已,如過眼雲煙……
總結一下,五大接口各自強調了什麼?接口1——(流程)定義;接口2——強化工作清單和應用程式內建;接口3——(外部應用程式的)參與;接口4——(不同工作流系統間的)連接配接;接口5——搜集管理資訊。
還有一些補充觀點:
接口3和接口5标準化工作進展較為緩慢。
接口3和接口4問題很多,主要是什麼問題?還不就是流程和工作任務的事務、復原(包括被動退回和主動取回的任務)問題,在這兩個問題上如何處理、怎麼處理好、如何保持原子性或如何進行“補償”,都是很有些發揮空間的。
本文轉自胡奇 51CTO部落格,原文連結:http://blog.51cto.com/huqicto/280651,如需轉載請自行聯系原作者