理解工作流系统参考模型
生活随笔
收集整理的這篇文章主要介紹了
理解工作流系统参考模型
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
研究工作流及其相關(guān)技術(shù)的人一定知道這個組織——工作流管理聯(lián)盟(簡稱WfMC,Workflow Management Coalition),其成立于1993年。作為工作流技術(shù)標(biāo)準(zhǔn)化的工業(yè)組織,WfMC提出的工作流系統(tǒng)參考模型(Reference Model)無疑為各家工作流軟件廠商的系統(tǒng)設(shè)計規(guī)劃提供了最權(quán)威的參考,乃至標(biāo)準(zhǔn)。下面就是這個參考模型: 首先,最重要的部分就是中間的工作流引擎,可以說它就是整個工作流系統(tǒng)的心臟,因為所有的工作流系統(tǒng)都要使用工作流引擎來: 1、為運行中的流程實例解釋我們的流程定義——這些定義一般都是由接口1獲得的。 2、組織調(diào)度流程的實例,推進工作流程的前進,這包括條件流轉(zhuǎn)、分支聚合、父子流程…… 3、處理工作任務(wù)的分配、接受、提交等行為?!獮闊o論是人工干預(yù)或自動執(zhí)行的任務(wù),提供計算的支持。 4、管理調(diào)用其他的4個接口——這可能包括解釋工作流程定義中的一些腳本。 工作流引擎做的工作就像心臟把血液不斷的送到我們身體的各個部分一樣,關(guān)于工作流引擎是如何架構(gòu)和設(shè)計的,這相當(dāng)復(fù)雜,不過我會在以后的文章和大家討論。 然后,說說工作流系統(tǒng)“身體”的五個部分吧,也就是五個接口: 接口1——流程定義工具,前面提到過我們使用它來定義業(yè)務(wù)流程,所謂的業(yè)務(wù)流程定義一般來說就是一段XML,它遵循XPDL(Xml Process Define Language)標(biāo)準(zhǔn)或BPEL(Business Process Execution Language)標(biāo)準(zhǔn)或廠商自定義的標(biāo)準(zhǔn)等等。事實上你就可以把它理解為一個產(chǎn)生XML的圖形化建模工具。這種圖形化建模工具各個廠商的技術(shù)實現(xiàn)可謂五花八門,國內(nèi)的一些廠商,例如西安協(xié)同采用的是java swing,joinwork使用的是flash,而我做的工作流系統(tǒng)使用的是ActiveX;國際上的一些開源項目,如jBPM使用的是基于Eclipse的插件,Shark Workflow使用的則是JAWE——一種基于Java技術(shù)實現(xiàn)的XPDL建模工具。當(dāng)然,它們的目的都是——產(chǎn)生XML形式的流程定義。 接口2——工作流客戶端應(yīng)用,這很有意思,當(dāng)我們的業(yè)務(wù)流程設(shè)計好了、運行起來了,那么我們——人如何與工作流引擎交互呢?這時候,工作流引擎就通過接口2,為我們提供各種各樣的工作/任務(wù)列表、工作表單、流程列表以及一些查詢功能。我們通過這個接口,就可以辦理任務(wù)、填寫表單……從而與工作流引擎溝通。 接口3——應(yīng)用程序執(zhí)行服務(wù),工作流引擎通過這個接口去執(zhí)行一些外部的或面向?qū)iT職能領(lǐng)域的應(yīng)用程序,例如財務(wù)系統(tǒng)、報表系統(tǒng)等,讓這些第三方系統(tǒng)參與進來,從而完成定義的工作流程。這看起來就像EAI(——Enterprise Application Integration)的特性,而事實上它也可以說就是Workflow EAI。同時我們也可以發(fā)現(xiàn)接口2和接口3的界定很模糊,難道接口2提到的工作列表不能算是外部的應(yīng)用程序么?沒錯!這個問題確實存在,這也就是為什么荷蘭工作流大師Aalst在其著作中寫道“建議每個應(yīng)用程序都由此‘應(yīng)用程序執(zhí)行服務(wù)’打開”的原因,他是在建議統(tǒng)一這兩個接口么?我也不知道??傊?#xff0c;接口3在標(biāo)準(zhǔn)化方面眾口不一。 接口4——與其它工作流系統(tǒng)的定制/交互服務(wù),用來處理若干自治工作流系統(tǒng)之間的工作交換,例如案例轉(zhuǎn)移、工作項外包等等。事實上,WfMC組織的初衷是想通過這個接口來連接各個不同的工作流引擎/系統(tǒng),使它們在一個統(tǒng)一的標(biāo)準(zhǔn)下工作和交流。想法是好的,但是,由于種種原因吧,個人認(rèn)為是商業(yè)利益的因素以及WfMC還沒有強大到能“號令江湖,莫敢不從”的地步,所以到目前為止,接口4基本不被支持,也就是說,各大廠商的工作流產(chǎn)品并不能用同一種語言對話。 接口5——管理和監(jiān)控工具,雖然很多工作流系統(tǒng)(特別是開源工作流系統(tǒng))實現(xiàn)的最簡單部分的就是這個接口,但我認(rèn)為最能體現(xiàn)工作流系統(tǒng)在管理上應(yīng)用價值的就是這個部分,它主要被用來搜集管理信息,這包括諸如工作流系統(tǒng)功能管理工具、流程實時監(jiān)視和控制工具以及工作效率分析和流程覆蓋面分析等各種商業(yè)智能工具,這為提升企業(yè)的管理能力、優(yōu)化重組企業(yè)的業(yè)務(wù)流程、分析企業(yè)內(nèi)部的工作效率瓶頸等提供了重要的量化數(shù)據(jù)支持。俗話說“工業(yè)化解放人類的體力,信息化解放人類的智力”,這個接口提供的功能不正是解放了企業(yè)領(lǐng)導(dǎo)和決策者們智力的么,而這正是信息化的初衷,工作流的最終價值所在。而傳統(tǒng)的工作流系統(tǒng)在這個接口上的“短板”,正為BPM(Business Process Management)這個概念的支持者提供了攻擊工作流系統(tǒng)的口實,BPM系統(tǒng)在這個接口上的強化成了很多人認(rèn)為“Workflow系統(tǒng)”不等同于或弱于“BPM系統(tǒng)”的最重要原因,事實上,不過是些概念而已,如過眼云煙…… 總結(jié)一下,五大接口各自強調(diào)了什么?接口1——(流程)定義;接口2——強化工作列表和應(yīng)用程序集成;接口3——(外部應(yīng)用程序的)參與;接口4——(不同工作流系統(tǒng)間的)連接;接口5——搜集管理信息。 還有一些補充觀點: 接口3和接口5標(biāo)準(zhǔn)化工作進展較為緩慢。 接口3和接口4問題很多,主要是什么問題?還不就是流程和工作任務(wù)的事務(wù)、回滾(包括被動退回和主動取回的任務(wù))問題,在這兩個問題上如何處理、怎么處理好、如何保持原子性或如何進行“補償”,都是很有些發(fā)揮空間的。 ?
本文轉(zhuǎn)自胡奇 51CTO博客,原文鏈接:http://blog.51cto.com/huqicto/280651,如需轉(zhuǎn)載請自行聯(lián)系原作者
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎
本文轉(zhuǎn)自胡奇 51CTO博客,原文鏈接:http://blog.51cto.com/huqicto/280651,如需轉(zhuǎn)載請自行聯(lián)系原作者
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎
總結(jié)
以上是生活随笔為你收集整理的理解工作流系统参考模型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ORACLE---Unit04: SQL
- 下一篇: 使用Q进行同步的Promises操作