監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價咨詢管理系統(tǒng) | 工程設(shè)計管理系統(tǒng) | 簽約案例 | 購買價格 | 在線試用 | 手機(jī)APP | 產(chǎn)品資料
X 關(guān)閉

工作流系統(tǒng)現(xiàn)狀研究

申請免費(fèi)試用、咨詢電話:400-8352-114

來源:泛普軟件 前言   如果數(shù)據(jù)庫系統(tǒng)( database systems)像受人尊敬的智者講述的條理清晰的故事,那么工作流(workflow)就像一群乳臭未干的小子在大談各自的“哲理”。之所以這樣講,我是想指出,工作流系統(tǒng) (workflow management systems)還處于技術(shù)發(fā)展曲線( technology hype curve)上的初級階段。在這個領(lǐng)域我們將面臨一個激動人心的階段。 為了描述這一點(diǎn),可以和關(guān)系數(shù)據(jù)庫系統(tǒng)(RDBMS)做一個對比。當(dāng)在軟件開發(fā)團(tuán)隊中談?wù)揜DBMS時,大部分人會有一個清晰的概念,在你和他們交流的時候,人們會通過輕微的點(diǎn)頭表示認(rèn)可或理解你所說的??僧?dāng)使用工作流術(shù)語討論工作流時,他們會搖頭表示不同意,因?yàn)槊總€人對工作流術(shù)語都有不同的理解。   Figure 1: Workflow vs. RDBMS positioned in the hype-curve   導(dǎo)致形成這種狀況的原因之一,是在工作流中使用了過多的概念。在這個領(lǐng)域中的大量規(guī)范和工具沒有一個是相似的。當(dāng)然,它們相互之間有重疊并且會相互參考引證。   在介紹工作流時有一個話題必須包括,那就是工作流和業(yè)務(wù)流程管理(BPM)的關(guān)系。術(shù)語“工作流”通常描述人與計算機(jī)系統(tǒng)的一系列相關(guān)交互。在開發(fā)人員中,工作流經(jīng)常被提及。有時,工作流的意思是指一些不同的UI界面。業(yè)務(wù)流程管理的范圍比較廣,相比之下工作流多半局限于技術(shù)領(lǐng)域。業(yè)務(wù)流程管理還從管理人員的角度涉及了非技術(shù)問題,比如分析、組織的效率。   在本文中,我首先解釋什么是工作流管理系統(tǒng),然后介紹業(yè)務(wù)流程管理的優(yōu)點(diǎn)。接下來描述一下為什么工作流市場乍看起來如此混亂。本文給出的主要結(jié)論是:選擇工作流系統(tǒng)是想用工作流系統(tǒng)的公司,將要面對的最困難的事情。為此,本文的核心部分描述了一個流程定義(process definition)的四個層次,為你選擇工作流提供一個基礎(chǔ)。本文還用中立的語言描述了工作流和BPM的通用概念。最后,給出了一些規(guī)范和工具的指導(dǎo)性描述。   什么是工作流管理系統(tǒng)(WFMS)   定義 工作流系統(tǒng)是以規(guī)格化的流程描述作為輸入的軟件組件,它維護(hù)流程的運(yùn)行狀態(tài),并在人和應(yīng)用之間分派活動。為了后面的描述,我們先定義一些基本的術(shù)語:流程定義(process definition)和流程實(shí)例(process instance). 一個流程定義是一個業(yè)務(wù)流程或過程的規(guī)格化描述。一個流程實(shí)例是流程定義的一個運(yùn)行實(shí)體。 都目前為止,概念還比較清晰是不是?但當(dāng)再深入一步時,我們就要小心使用文字了。如何闡述流程中的步驟,現(xiàn)在還沒有一個統(tǒng)一的方式。這是各種工作流規(guī)范和工具之間主要的分歧。   為什么應(yīng)當(dāng)禁止使用術(shù)語“活動(activity)”...   流程定義通常用一些活動表述。我認(rèn)為這是導(dǎo)致工作流領(lǐng)域所有混亂的主要原因。我告訴你為什么:因?yàn)樾g(shù)語“活動”混淆了狀態(tài)(state)和動作(action)之間的差異。在流程中,狀態(tài) (或者說等待狀態(tài))代表了一種對外部參與者(actor)的依賴。在流程運(yùn)行時,這意味著流程引擎必須等待,直到外部參與者通知工作流管理系統(tǒng)指定的狀態(tài)完成了。比如,等待可進(jìn)一步運(yùn)行的認(rèn)可。動作是在流程運(yùn)行過程中,工作流系統(tǒng)為響應(yīng)指定事件(event)運(yùn)行的一段程序邏輯(programming logic)。當(dāng)流程運(yùn)行過程中指定的事件發(fā)生時,工作流系統(tǒng)啟動并執(zhí)行這些動作。比如,當(dāng)狀態(tài)分配給一個參與者時,發(fā)一封Email。你也能看出,狀態(tài)和動作是如此不同,因此使用同樣的術(shù)語去描述這些概念是一個壞習(xí)慣。我的建議是避免使用術(shù)語“活動”,使用“狀態(tài)”或者“動作”代替它。   工作流系統(tǒng)另一個重要的職責(zé)是維護(hù)每一個流程運(yùn)行的上下文信息。 流程上下文變量(process context variable) ,或簡稱變量,是與流程實(shí)例相關(guān)的變量。如,休假申請的開始日期、數(shù)據(jù)庫中一條記錄的鍵值、文檔管理系統(tǒng)中一篇文檔的索引等。通常在流程定義中聲明這些變量,然后在流程實(shí)例生成時,這些流程變量被實(shí)例化。所有成熟的工作流管理系統(tǒng)都支持定制的變量類型。   目標(biāo)領(lǐng)域(Target usage)   使用工作流管理系統(tǒng)的目的之一是作為企業(yè)應(yīng)用系統(tǒng)集成(EAI)的平臺。在當(dāng)前大部分企業(yè)級IT架構(gòu)中,各種各樣的異構(gòu)(heterogeneous)應(yīng)用和數(shù)據(jù)庫運(yùn)行在企業(yè)內(nèi)網(wǎng)中。在這些系統(tǒng)被應(yīng)用到組織時,都有一個清晰的目標(biāo)。例如,客戶管理、文檔管理、供應(yīng)鏈、訂單、支付、資源計劃等等。讓我們稱這些系統(tǒng)為專門應(yīng)用( dedicated applications)。每一個專門應(yīng)用都包含它們所支持業(yè)務(wù)流程的領(lǐng)域知識。這些專門應(yīng)用中的自動化流程,被拼裝到企業(yè)中更大的非自動化流程中。每當(dāng)一個這樣的專門應(yīng)用安裝并投入使用,都會帶來涉及其他多個應(yīng)用的新功能需求。企業(yè)應(yīng)用系統(tǒng)集成(EAI)就是通過使用多個專門應(yīng)用滿足軟件新需求的方法。有時,這只需要在兩個應(yīng)用之間提供數(shù)據(jù)通訊的通道。專門應(yīng)用將很多業(yè)務(wù)流程硬編碼在軟件中。   可以這么說,在你購買專門應(yīng)用時,你是購買了一組固定的自動化業(yè)務(wù)流程。而工作流管理系統(tǒng)是不必事先知道問題域的相關(guān)信息的。工作流系統(tǒng)將業(yè)務(wù)流程描述作為輸入并管理流程實(shí)例的執(zhí)行,這使得它比專門應(yīng)用更靈活(當(dāng)然你也要花精力編寫業(yè)務(wù)流程的規(guī)格化描述)。這就是為什么說工作流系統(tǒng)和專門系統(tǒng)是相互補(bǔ)充的。工作流系統(tǒng)可以用來管理全局的業(yè)務(wù)流程。如果專門應(yīng)用支持你所需要的業(yè)務(wù)流程,那么使用專門應(yīng)用。在此討論的工作流系統(tǒng)的第一種使用方式就是:結(jié)合所有的專門應(yīng)用,使用工作流系統(tǒng)構(gòu)建一個EAI平臺。   工作流系統(tǒng)能夠發(fā)揮很大價值的第二個使用方式是:協(xié)助涉及多人相關(guān)任務(wù)工作流軟件的開發(fā)。為了達(dá)到這個目的,大部分工作流系統(tǒng)都有一個方便的機(jī)制,來生成執(zhí)行任務(wù)的表單。對于專注于ISO 或者CMM認(rèn)證的組織,采用這種方式使用工作流系統(tǒng)能夠顯著提高生產(chǎn)率。 不用將過程用文字的形式寫在紙上,工作流系統(tǒng)使你通過流程定義建模實(shí)現(xiàn)過程的自動化(如使用基于Web的應(yīng)用)。 工作流系統(tǒng)的第三種使用方式是:將工作流引擎嵌入到其他應(yīng)用中。在前面我們談到,專門應(yīng)用將指定問題域相關(guān)的業(yè)務(wù)流程固化在軟件中。開發(fā)專門應(yīng)用的公司也可以將工作流引擎嵌入到他們的軟件中。在這里,工作流引擎只是作為一個軟件組件,對于應(yīng)用的最終用戶是不可見的。將工作流引擎嵌入到應(yīng)用中的主要原因是為了重用(不重復(fù)發(fā)明輪子)和應(yīng)用軟件的可維護(hù)性。   The case for workflow 對于引入工作流的組織,能夠在軟件開發(fā)和業(yè)務(wù)兩個層次受益。   方便開發(fā)-工作流管理系統(tǒng)能夠簡化企業(yè)級軟件開發(fā)甚至維護(hù)。 降低開發(fā)風(fēng)險 - 通過使用狀態(tài)和動作這樣的術(shù)語,業(yè)務(wù)分析師和開發(fā)人員使用同一種語言交談。這樣開發(fā)人員就不必將用戶需求轉(zhuǎn)化成軟件設(shè)計了。 實(shí)現(xiàn)的集中統(tǒng)一 -業(yè)務(wù)流程經(jīng)常變化,使用工作流系統(tǒng)的最大好處是:業(yè)務(wù)流程的實(shí)現(xiàn)代碼,不再是散落在各種各樣的系統(tǒng)中 。 加快應(yīng)用開發(fā) - 你的軟件不用再關(guān)注流程的參與者,開發(fā)起來更快,代碼更容易維護(hù)。   業(yè)務(wù)流程管理 (BPM)   在自動化業(yè)務(wù)流程之前,分析并將它們規(guī)格化是一件艱苦但會有很好回報的工作。e-workflow.org對于分析流程能夠帶了的益處有不錯的闡述: 提高效率 - 許多流程在自動化過程中會去除一些不必要的步驟 較好的流程控制 - 通過標(biāo)準(zhǔn)的工作方法和跟蹤審計,提高了業(yè)務(wù)流程的管理 改進(jìn)客戶服務(wù) - 因?yàn)榱鞒痰囊恢滦?,提高了對客戶響?yīng)的可預(yù)見性 靈活 - 跨越流程的軟件控制,使流程可以按照業(yè)務(wù)的需要重新設(shè)計。 業(yè)務(wù)流程改進(jìn) - 對流程的關(guān)注,使它們趨向于流暢和簡單 我認(rèn)為他們還遺漏了一個使用工作流系統(tǒng)最重要的因數(shù):提高對迭代開發(fā)的支持。如果軟件中業(yè)務(wù)流程部分不容易更改,組織就會花很大的精力在開發(fā)前的業(yè)務(wù)流程分析中,希望一次成功。但可悲的是,在任何軟件項(xiàng)目開發(fā)中,這都很少能實(shí)現(xiàn)。工作流系統(tǒng)使得新業(yè)務(wù)流程很容易部署,業(yè)務(wù)流程相關(guān)的軟件可以一種迭代的方式開發(fā),因此使用工作流系統(tǒng)使開發(fā)更有效、風(fēng)險更低。   缺失的一環(huán)(Missing link)   我確實(shí)認(rèn)為工作流系統(tǒng)是企業(yè)應(yīng)用開發(fā)中缺失的一環(huán)。將企業(yè)業(yè)務(wù)流程邏輯在企業(yè)級軟件中實(shí)現(xiàn)的缺省方式是分散的。這意味著業(yè)務(wù)流程邏輯散布在各種系統(tǒng)中,如EJB、數(shù)據(jù)庫觸發(fā)器、消息代理等等。這樣得到的軟件難于維護(hù),結(jié)果,企業(yè)只能將改變業(yè)務(wù)流程軟件作為最后的選擇。他們經(jīng)常能夠做的是,改變流程以適應(yīng)軟件。上述問題也適用于采用大型外部ERP軟件包的企業(yè)。進(jìn)一步,假設(shè)我們認(rèn)識到這個問題,并打算將一個流程相關(guān)的代碼都集中起來。對于一個流程來說這很不錯,但當(dāng)你要實(shí)現(xiàn)多個流程時,你會看到管理狀態(tài)和流程變量的代碼被到處復(fù)制。最后,我們會整理這些代碼放到一個集中的庫中。好,...這就是一個工作流管理系統(tǒng)了,不用費(fèi)心自己來實(shí)現(xiàn),你可以從本文后面的列表中選擇一個。   A closer look WFMS interfaces   一個工作流管理系統(tǒng)以流程定義作為輸入。在這里,可以將流程定義看作UML活動圖、UML狀態(tài)圖或者有限狀態(tài)機(jī)。在提交一張費(fèi)用單據(jù)、申請休假、要求一個報價、...之后,工作流系統(tǒng)負(fù)責(zé)維護(hù)這些流程定義的執(zhí)行狀態(tài)和上下文。為此,需要通知工作流系統(tǒng)狀態(tài)的變化。運(yùn)行流程的狀態(tài)變化可以記錄下來,以備監(jiān)控管理。   Figure 2: Interfaces of a WFMS   定義 工作流系統(tǒng)的定義接口使流程開發(fā)人員能夠部署流程定義。注意,這里的“流程開發(fā)人員”可以是業(yè)務(wù)分析師和軟件開發(fā)人員的組合。   圈套(Pitfall) 許多工作流管理系統(tǒng)的開發(fā)商想使你相信,通過使用他們的圖形化流程開發(fā)工具,只要業(yè)務(wù)分析師就可以生成流程定義。這種幻想源于“編程很難”這樣的事實(shí)。開發(fā)商的銷售人員喜歡說“看,你不用寫一行代碼”。不用寫代碼是好事,可大部分開發(fā)商在這點(diǎn)上走的太遠(yuǎn),忽略了在某些場合提供一種將代碼集成到流程定義中的機(jī)制是很適合的。在將工作流系統(tǒng)作為EAI平臺時,必須在流程中集成代碼。開發(fā)流程定義需要業(yè)務(wù)分析師和軟件開發(fā)人員的合作。一個好的圖形流程設(shè)計工具應(yīng)該能夠支持這種合作。   執(zhí)行 執(zhí)行接口使用戶和系統(tǒng)可以操作流程實(shí)例。流程實(shí)例是流程定義的執(zhí)行。流程定義的控制流通過狀態(tài)機(jī)描述。執(zhí)行接口的兩個主要方法是啟動一個流程實(shí)例和通知工作流系統(tǒng)一個狀態(tài)結(jié)束了。   應(yīng)用 應(yīng)用接口代表了由工作流系統(tǒng)發(fā)起的工作流系統(tǒng)和外部系統(tǒng)之間的交互。當(dāng)一個用戶或系統(tǒng)操作一個流程實(shí)例的運(yùn)行時,會生成一些事件(如一個遷移的執(zhí)行)。流程定義中可以指定一段響應(yīng)一個事件的可執(zhí)行代碼邏輯,這段代碼和組織內(nèi)外部的其他系統(tǒng)打交道。   監(jiān)控 管理人員通過監(jiān)控接口獲得流程運(yùn)行的確切數(shù)據(jù)。有時,運(yùn)行日志也可用于審計。 這些是WfMC參考模型(reference model of the WfMC)中定義的五個接口中的四個。(IT售前論壇)
發(fā)布:2007-04-22 11:04    編輯:泛普軟件 · xiaona    [打印此頁]    [關(guān)閉]
相關(guān)文章:
昆明OA系統(tǒng)
聯(lián)系方式

成都公司:成都市成華區(qū)建設(shè)南路160號1層9號

重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓

咨詢:400-8352-114

加微信,免費(fèi)獲取試用系統(tǒng)

QQ在線咨詢

泛普昆明OA快博其他應(yīng)用

昆明OA 昆明新聞動態(tài) 昆明OA管理信息化 昆明OA快博 昆明OA軟件行業(yè)資訊 昆明軟件開發(fā)公司 昆明門禁系統(tǒng) 昆明物業(yè)管理軟件 昆明倉庫管理軟件 昆明餐飲管理軟件 昆明網(wǎng)站建設(shè)公司