JBPM1-了解和認識工作流系統(tǒng)

工作流概念

工作流管理聯(lián)盟(WfMC) 對于“工作流” 這個概念的經(jīng)典定義為: 全部或者部分由計算機支持或自動處理的業(yè)務(wù)過程.

工作流管理系統(tǒng)(Workflow Management System, WFMS), 它通過執(zhí)行計算機的流程定義去支持一批專門設(shè)定的業(yè)務(wù). 它被用來支持往踢、管理和執(zhí)行工作流程.

因此, 對于我們, 工作流管理系統(tǒng)的目標是: 管理工作的流程以確保工作正確的時間被期望的人員所執(zhí)行——在自動化進行的業(yè)務(wù)過程中 "插入" 人工的執(zhí)行和干預(yù), 可以說正是工作流管理系統(tǒng)的價值所在, 也是工作流系統(tǒng)開發(fā)者的主要工作內(nèi)容.


如何從一個開發(fā)者的角度看工作流技術(shù)

使用工作流技術(shù)體系開發(fā)軟件系統(tǒng)對開發(fā)者又有什么好處呢?

舉個例子說明.

現(xiàn)在我們來看一個簡單的業(yè)務(wù)——訂貨流程:

  1. 客戶提交采購訂單
  2. 業(yè)務(wù)員執(zhí)行訂單處理
  3. 如果缺貨, 轉(zhuǎn)工廠生產(chǎn)
  4. 倉庫發(fā)貨
  5. 物流發(fā)貨

不使用工作流技術(shù), 從頭開始開發(fā)這個訂購流程的業(yè)務(wù)系統(tǒng), 我們需要:

  1. 每個活動節(jié)點都要開發(fā)交互界面和后臺處理程序.
  2. 每次活動的流轉(zhuǎn)都需要硬性判斷下一步活動節(jié)點及其處理人.
  3. 每次操作都需要維護業(yè)務(wù)數(shù)據(jù)和流程的一些相關(guān)數(shù)據(jù).
  4. 一旦業(yè)務(wù)流程, 就需要大量的更改程序, 甚至重新開發(fā)以適應(yīng)新的需求.
  5. 監(jiān)視升酣、控制训挡、分析流程處理情況的應(yīng)用還需要單獨開發(fā), 且成本不低.

結(jié)果這個業(yè)務(wù)系統(tǒng)可能是如下圖所示的情況, 請注意這不包括監(jiān)視器肋拔、控制、分析流程的部分.


下面我們看看使用工作流技術(shù)實現(xiàn)上述的訂貨流程將會是什么情況, 如下圖:

很明顯, 位于右側(cè)的工作流管理系統(tǒng)接管了所有訂貨業(yè)務(wù)在流程方面的定義和執(zhí)行, 這包括:

  1. 使用專門的 "流程數(shù)據(jù)" 系統(tǒng), 維護所有涉及流程傳遞的數(shù)據(jù).
  2. 提供 "流程設(shè)計" 工具, 幫助用戶定義訂貨流程的模型, 這一般都是基于圖形界面的.
  3. 工作流引擎作為工作流管理系統(tǒng)的核心, 負責(zé)解釋流程定義嚼贡、管理流程數(shù)據(jù)狼速、計算和驅(qū)動流程實例的運行.
  4. 工作流引擎提供眾多 API 供客戶端應(yīng)用程序或外部業(yè)務(wù)系統(tǒng)調(diào)用, 將特定的 "業(yè)務(wù)(例如: 訂貨)" 納入"流程" 的管理和控制之中, 從而實現(xiàn)工作流程管理和業(yè)務(wù)操作的完美結(jié)合.
  5. 工作流引擎還提供眾多 API 供流程的 "增值" 系統(tǒng)使用, 例如流程監(jiān)控系統(tǒng)可以使用工作流程引擎提供的 API 去監(jiān)視流程的執(zhí)行過程抬纸、掛起和恢復(fù)流程實例的運行; 流程數(shù)據(jù)分析系統(tǒng)可以使用工作流引擎的 API 分析出工作完成的效率、業(yè)務(wù)流程的瓶頸等結(jié)果, 以便重組流程弦悉、優(yōu)化業(yè)務(wù).

綜上所述, 引入工作流技術(shù)對于技術(shù)開發(fā)來說, 有如下好處:

  1. 降低開發(fā)風(fēng)險——通過使用諸如活動窒典、流轉(zhuǎn)、狀態(tài)警绩、行為這樣的術(shù)語, 使得業(yè)務(wù)分析師和開發(fā)人員使用同一種語言交談成為可能. 優(yōu)秀的流程設(shè)計模型工具, 甚至能使開發(fā)人員不必將用戶需求轉(zhuǎn)換為詳細設(shè)計文檔.
  2. 流程實現(xiàn)的集中統(tǒng)一——應(yīng)對業(yè)務(wù)流程經(jīng)常變化的情況, 使用工作流技術(shù)的最大好處是, 使業(yè)務(wù)流程的實現(xiàn)代碼, 不再散落在各式各樣的業(yè)務(wù)系統(tǒng)中.
  3. 加速開發(fā)——開發(fā)者不用再關(guān)注流程的參與者崇败、活動節(jié)點的銜接、流轉(zhuǎn)控制. 因為這些工作很多被工作流框架接管了. 因而開發(fā)者開發(fā)起來更快肩祥、代碼出錯更少后室、系統(tǒng)更加容易維護.
  4. 提升對迭代開發(fā)的支持——如果系統(tǒng)中業(yè)務(wù)流程部分被硬編碼, 就不容易更改, 需求分析師就會花費很大的精力在開發(fā)前的業(yè)務(wù)分析中, 并且希望以此成功. 但可悲的是, 在任何軟件項目開發(fā)中, 這都很少能實現(xiàn).
    工作流管理使得業(yè)務(wù)流程很容易部署和重新編排, 業(yè)務(wù)流程相關(guān)的應(yīng)用開發(fā)可以以一種 "迭代/漸進" 的方式推進, 也就是說工作流在某種程度上支持 “需求分析不必一次完全成功”.

工作流管理系統(tǒng)參考模型

首先, 最重要的部分就是中間的工作流引擎, 可以說他是整個工作流管理系統(tǒng)的心臟, 因為所有的工作流管理系統(tǒng)都要使用工作流引擎:

  1. 為執(zhí)行的流程實例解釋流程定義——這些流程定義一般都是由接口1獲得的.
  2. 組織調(diào)度流程的實例, 推進工作流程的前進, 這包括條件流轉(zhuǎn)、分支聚合混狠、子父進程.
  3. 處理工作任務(wù)的分配岸霹、接收、提交等行為——無論是人工干預(yù)或自動執(zhí)行的任務(wù), 都需要經(jīng)過工作流引擎和持久化.
  4. 管理調(diào)用其他的 4 個接口——這可能包括執(zhí)行工作流程定義的一些外部腳本.

工作流引擎做的工作就像心臟把血液不斷送到身體的各個部分一樣.


工作流管理系統(tǒng)5個部分

接口1——流程定義工具

前面提到過我們使用它來設(shè)計業(yè)務(wù)流程, 提供給工作流引擎來實例化運行. 所謂的 "業(yè)務(wù)流程定義" 一般來說就是一段 XML, 它一般遵循 XPDL標準 BPEL標準 或其它廠商自定義的標準.事實上可以把流程定義工具理解為一個產(chǎn)生 XML 的圖形化設(shè)計建模軟件.

接口2——工作流客戶端應(yīng)用

這很有意思, 當(dāng)業(yè)務(wù)流程設(shè)計好了 運行起來了, 那么我們——"人類" 如何與工作流引擎交互呢?

這時候, 工作流引擎就通過接口 2, 為我們提供各種各樣的工作任務(wù)列表 工作表單 流程列表以及一些查詢功能.

我們通過這些接口應(yīng)用, 就可以填寫表單 處理任務(wù) 從而實現(xiàn)人與工作流引擎的溝通.

接口3——執(zhí)行外部應(yīng)用

工作流引擎通過這個接口去執(zhí)行一些外部的或面向?qū)iT職能領(lǐng)域的應(yīng)用程序.

例如財務(wù)系統(tǒng) 報表系統(tǒng)等, 讓第三方系統(tǒng)參與進來, 從而完成定義的工作流程.

同時我們也可以發(fā)現(xiàn)接口2 和接口 3 之間的界定有些模糊, 難道接口 2 提到的 "工作任務(wù)列表" 不能算是外部的應(yīng)用程序嗎?

沒錯! 這個問題確實存在, 這也就是為什么荷蘭工作流大師 Aalst 在其著作<工作流管理——模型 方法和系統(tǒng)> 中寫道 "建議每個應(yīng)用程序都有此 '應(yīng)用程序執(zhí)行服務(wù)' 打開" 的原因, 他是在建議統(tǒng)一這兩個接口嗎? 總之, 接口3在標準化方面眾口不一.

接口4——其他工作流應(yīng)用接口服務(wù)

用來處理若干自治工作流管理系統(tǒng)之間的工作交換, 例如實例轉(zhuǎn)移 工作任務(wù)外包等. 事實上, WfMC 組織的初衷是想通過這個接口來連接各種不同的工作流引擎和系統(tǒng), 使他們在一個統(tǒng)一的標準下工作和交流.

想法是非常不錯的, 但是, 由于種種原因吧, 作者認為是商業(yè)利益的因素以及 WfMC 沒有強大到能 "號令江湖, 莫敢不從" 的地步, 所以到目前為止, 接口 4 基本不被支持, 也就是說, 各大廠商的工作流產(chǎn)品并不能用同一種語言對話.

但是, 隨著jbpm4 推出的 PVM——流程虛擬技術(shù)的發(fā)展, 接口4 的障礙也許能被打破.

接口5——管理和監(jiān)控工具

雖然很多工作流管理系統(tǒng), 特別是開源工作流管理系統(tǒng)實現(xiàn)的最簡單的部分就是這個接口, 但我認為最能體現(xiàn)工作流管理系統(tǒng)在企業(yè)管理方面價值的就是這個部分, 它主要被用來搜集管理信息.

這包括諸如工作流系統(tǒng)功能管理工具, 流程實時監(jiān)控和控制工具, 以及工作效率分析和流程覆蓋面分析等各種商業(yè)智能工具, 這為提升企業(yè)的管理能力, 優(yōu)化重組企業(yè)的流程, 分析企業(yè)內(nèi)部的工作效率瓶頸等提供了重要的量化數(shù)據(jù)支持.


總結(jié)一下, 工作流管理系統(tǒng)參考模型的 5 大接口各自強調(diào)了什么?
接口1 —— 提供流程定義
接口2 —— 提供工作任務(wù)列表等客戶端應(yīng)用程序, 實現(xiàn)使用者與工作流引擎的溝通
接口3 —— 支持外部應(yīng)用程序參與工作流程
接口4 —— 支持不同工作流引擎系統(tǒng)間的連接
接口5 —— 提供監(jiān)控工具, 搜集管理信息

BPM

BPM 即業(yè)務(wù)流程管理, 其重點是通過建模, 自動化, 管理和優(yōu)化流程, 來優(yōu)化公司業(yè)務(wù)的效率和效果.

BPM 打破了跨部門, 跨系統(tǒng)和跨用戶, 強調(diào)端對端的業(yè)務(wù)流程. BPM 系統(tǒng)運行在公司的內(nèi)部和外部, 不僅員工, 客戶, 合作伙伴和提供商都能夠進入該系統(tǒng). 同時, 在公司內(nèi)部 BPM 的應(yīng)用系統(tǒng)還包含了提升業(yè)務(wù)可視水平和可預(yù)見水平的功能.

BPM 通常以 Internet 方式實現(xiàn)信息傳遞, 數(shù)據(jù)同步, 業(yè)務(wù)監(jiān)控和企業(yè)流程的持續(xù)升級和優(yōu)化. 從這方面來說, BPM 不但涵蓋了 "傳統(tǒng)工作流" 的流程傳遞, 流程監(jiān)控的范濤, 而且突破了 "傳統(tǒng)工作流" 技術(shù)應(yīng)用范圍的瓶頸.

BPM 同樣需要流程定義語言描述流程. 流程定義語言可以將企業(yè)中的各種業(yè)務(wù)流程表示成一種格式化的模型.

BPM 的相關(guān)技術(shù)標準可以用來定義業(yè)務(wù)流程和 Web Service 的集成與部署, 以達成企業(yè)業(yè)務(wù)目標. 也就是說, BPM 語言不僅擁有 XML 表示的流程定義, 還延伸到了SOAP WSDL UDDI等多項技術(shù)規(guī)格.

關(guān)于jbpm4 您需要知道的

JBPM 是一個可擴展的, 靈活的能夠?qū)崿F(xiàn)工作流/業(yè)務(wù)流程管理的企業(yè)級開發(fā)框架, 提供了流程定義, 流程部署, 流程執(zhí)行, 流程管理等功能.

1. 嵌入式的工作流引擎

JBPM4 是完全支持嵌入式應(yīng)用的業(yè)務(wù)流程開發(fā)框架, 可以在事務(wù)處理, 持久化等各個方面與業(yè)務(wù)應(yīng)用程序進行靈活集成.

2. 可插拔的體系架構(gòu)

JBPM4 采用了模塊化的架構(gòu)設(shè)計, 采用了 IOC 的設(shè)計理念, 各個模塊之間可以比較方便的解除耦合或替換不同的實現(xiàn).

例如持久化, 事務(wù)處理 身份認證, 日志服務(wù)等, 都由可選模塊實現(xiàn).

JBPM 的可插拔體系架構(gòu), 為軟件開發(fā)者靈活選擇 JBPM 的功能, 自定義已有的功能和拓展新的功能提供了 "無限可能".

3.易擴展的流程語言

JBPM 框架內(nèi)置的流程定義活動, 包括 start, task, fork, join和decision等, 是構(gòu)建完整業(yè)務(wù)流程所必須的組成部分, 他們提供了可以將業(yè)務(wù)邏輯Java代碼和業(yè)務(wù)流程編排無縫銜接的綁定機制.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末将饺,一起剝皮案震驚了整個濱河市贡避,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌予弧,老刑警劉巖刮吧,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異掖蛤,居然都是意外死亡杀捻,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門蚓庭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來致讥,“玉大人仅仆,你說我怎么就攤上這事」父ぃ” “怎么了墓拜?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長请契。 經(jīng)常有香客問我咳榜,道長,這世上最難降的妖魔是什么姚糊? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任贿衍,我火速辦了婚禮,結(jié)果婚禮上救恨,老公的妹妹穿的比我還像新娘贸辈。我一直安慰自己,他們只是感情好肠槽,可當(dāng)我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布擎淤。 她就那樣靜靜地躺著,像睡著了一般秸仙。 火紅的嫁衣襯著肌膚如雪嘴拢。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天寂纪,我揣著相機與錄音席吴,去河邊找鬼。 笑死捞蛋,一個胖子當(dāng)著我的面吹牛孝冒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播拟杉,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼庄涡,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了搬设?” 一聲冷哼從身側(cè)響起穴店,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎拿穴,沒想到半個月后泣洞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡默色,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年斜棚,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片该窗。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡弟蚀,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出酗失,到底是詐尸還是另有隱情义钉,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布规肴,位于F島的核電站捶闸,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏拖刃。R本人自食惡果不足惜删壮,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望兑牡。 院中可真熱鬧央碟,春花似錦、人聲如沸均函。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽苞也。三九已至洛勉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間如迟,已是汗流浹背收毫。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留殷勘,地道東北人此再。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像劳吠,于是被迫代替她去往敵國和親引润。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容