登錄

工作流引擎

百科 > 信息管理術(shù)語 > 工作流引擎

1.工作流引擎概述

工作流引擎是指workflow(工作流)作為應(yīng)用系統(tǒng)的一部分,并為之提供對(duì)各應(yīng)用系統(tǒng)有決定作用的根據(jù)角色、分工和條件的不同決定信息傳遞路由、內(nèi)容等級(jí)等核心解決方案。

例如開發(fā)一個(gè)系統(tǒng)最關(guān)鍵的部分不是系統(tǒng)的界面,也不是和數(shù)據(jù)庫之間的信息交換,而是如何根據(jù)業(yè)務(wù)邏輯開發(fā)出符合實(shí)際需要的程序邏輯并確保其穩(wěn)定性、易維護(hù)性(模塊化和結(jié)構(gòu)化)和彈性(容易根據(jù)實(shí)際業(yè)務(wù)邏輯的變化作出程序上的變動(dòng),例如決策權(quán)的改變、組織結(jié)構(gòu)的變動(dòng)和由于業(yè)務(wù)方向的變化產(chǎn)生的全新業(yè)務(wù)邏輯等等)。 Workflow 引擎解決的就是這個(gè)問題:如果應(yīng)用程序缺乏強(qiáng)大的邏輯層,勢(shì)必變得容易出錯(cuò)(信息的路由錯(cuò)誤、死循環(huán)等等)。

就好比一輛汽車,外表做得再漂亮,如果發(fā)動(dòng)機(jī)有問題就只是一個(gè)擺設(shè)。應(yīng)用系統(tǒng)的彈性就好比引擎轉(zhuǎn)速方面的性能,加速到100 公里需要1 個(gè)小時(shí)(業(yè)務(wù)流程發(fā)生變動(dòng)需要進(jìn)行半年的程序修改)還能叫好車嗎?引擎動(dòng)不動(dòng)就熄火(程序因?yàn)檫壿嫷膯栴}陷入死循環(huán))的車還敢開嗎?

Workflow 關(guān)注的是如何縮短流程閑置時(shí)間,從而提高企業(yè)的業(yè)務(wù)處理能力并使企業(yè)能夠關(guān)注于真正對(duì)企業(yè)有意義的增值業(yè)務(wù)上。從建立企業(yè)神經(jīng)系統(tǒng)的角度也許更能理解兩者的區(qū)別。傳統(tǒng)軟件不能解決工作流的問題,例如ERP關(guān)注的是企業(yè)的資源配置,但不可能解決資源傳輸過程中的損耗和降低傳輸(流程)的成本;同樣workflow也不能完全解決傳統(tǒng)管理軟件所能解決的問題,例如對(duì)生產(chǎn)管理的MRP 系統(tǒng)所能解決的生產(chǎn)過程控制通過workflow很難實(shí)現(xiàn)。但一個(gè)好的傳統(tǒng)軟件如果希望能自動(dòng)化地在整個(gè)企業(yè)中應(yīng)用起來,必須有一個(gè)強(qiáng)大的邏輯層,用以解決信息傳遞的邏輯判斷和自動(dòng)流轉(zhuǎn),這個(gè)時(shí)候就需要workflow的平臺(tái)。

今天的很多優(yōu)秀的工作流解決方案集成了短信息、頁面服務(wù)、目標(biāo)管理、文件管理和其他一些操作系統(tǒng)才提供的服務(wù)。

2.工作流引擎的五大接口

工作流參考模型確定了工作流管理系統(tǒng)的基本架構(gòu)。該架構(gòu)是開發(fā)工作流軟件時(shí)應(yīng)當(dāng)采納的系統(tǒng)模型,當(dāng)然,一個(gè)工作流管理系統(tǒng)也可以不遵循這個(gè)模型標(biāo)準(zhǔn),或只實(shí)現(xiàn)這個(gè)模型的一部分,但事實(shí)證明,這個(gè)模型結(jié)構(gòu)是目前最為合理的。

系統(tǒng)的核心部分是工作流引擎,引擎是驅(qū)動(dòng)流程流動(dòng)的主要部件,它負(fù)責(zé)解釋工作流流程定義,創(chuàng)建并初始化流程實(shí)例,控制流程流動(dòng)的路徑,記錄流程運(yùn)行狀態(tài),掛起或喚醒流程,終止正在運(yùn)行的流程,與其他引擎之間通訊等等工作。WfMC沒有針對(duì)引擎的實(shí)現(xiàn)提供具體的標(biāo)準(zhǔn),因?yàn)閷?duì)引擎做過多的約束并沒有多大的現(xiàn)實(shí)意義。

一個(gè)工作流管理系統(tǒng)可以包含一個(gè)或多個(gè)引擎,并通過API向外部提供五個(gè)方面的功能服務(wù),這些功能分別為:

  • 接口1-流程定義的導(dǎo)入導(dǎo)出
  • 接口2-同客戶端應(yīng)用程序和工作列表處理程序之間的交互
  • 接口3-軟件工具和應(yīng)用程序的調(diào)用
  • 接口4-不同工作流管理系統(tǒng)之間的協(xié)同工作
  • 接口5-管理和監(jiān)視功能

接口1-流程定義的導(dǎo)入導(dǎo)出

許多不同廠商提供的工具可以進(jìn)行工作流流程的分析、建模、描述和歸檔等工作。這些工具需要識(shí)別公共的流程交換格式,以支持在這些不同的產(chǎn)品之間傳送工作流程流程定義。接口1便定義了這樣的交換格式。此外,接口1還定義了設(shè)計(jì)環(huán)境與運(yùn)行環(huán)境之間交換的規(guī)范,以使不同的建模工具產(chǎn)生的流程定義可以輸入到不同的工作流產(chǎn)品的運(yùn)行環(huán)境中。 為了提供一個(gè)訪問和描述工作流定義的公共方法,需要引入一個(gè)工作流元數(shù)據(jù)模型(meta-data Model),這個(gè)模型確定了流程定義中用到的一般的實(shí)體,這些實(shí)體都有不同的屬性,不同廠商開發(fā)的工具可以根據(jù)公共的交換形式向工作流運(yùn)行環(huán)境傳送這些模型,傳送可以通過API實(shí)現(xiàn),也可以通過批量(Batch)傳送實(shí)現(xiàn)。

元模型提供了流程定義交換中用到的基本的實(shí)體及其屬性,這些都是工作流流程的組成部分,這些實(shí)體包括:

  • 工作流流程定義
  • 工作流流程活動(dòng)
  • 過渡信息(Transition Information)
  • 工作流參與者
  • 組織模型
  • 工作流應(yīng)用程序
  • 工作流相關(guān)類型
  • 工作流相關(guān)數(shù)據(jù)
  • 系統(tǒng)和環(huán)境數(shù)據(jù)
  • 數(shù)據(jù)類型和表達(dá)式

流程定義的交換

在不同的系統(tǒng)之間傳遞流程定義數(shù)據(jù)可能需要不同的機(jī)制,但在所有的情況下,流程定義數(shù)據(jù)的表達(dá)必須是一致的,這些表達(dá)包括一些公共的對(duì)象、關(guān)系及其屬性。

接口2與接口3:

工作流管理系統(tǒng)必須提供同用戶之間交互的通道,以便用戶參與到系統(tǒng)的運(yùn)行中。接口2主要完成這方面的功能。

WfMC在關(guān)于接口2 的規(guī)范中定義了工作流管理系統(tǒng)必須提供的類型、數(shù)據(jù)結(jié)構(gòu)、API和錯(cuò)誤代碼,并以C語言頭文件的形式提供。接口2所提供的功能大致可以分為一下五個(gè)方面:

* 1、 會(huì)話的建立和與撤銷;

  • 2、 獲取工作流流程定義及狀態(tài);
  • 3、 工作流流程實(shí)例的操作,如創(chuàng)建、掛起、終止流程,獲取和設(shè)置流程屬性等;
  • 4、 工作流活動(dòng)實(shí)例的操作,如獲取和設(shè)置活動(dòng)的屬性,改變活動(dòng)的狀態(tài)等;
  • 5、 工作列表(worklist)及工作項(xiàng)(workitem)的操作,如獲取工作列表,處理工作項(xiàng)等。

通過這些功能,用戶可以完成與工作流管理系統(tǒng)之間交互的所有任務(wù):登錄系統(tǒng)、打開自己的工作列表、處理自己的工作任務(wù)、將完成的任務(wù)提交給系統(tǒng)、將自己的任務(wù)轉(zhuǎn)交給其他用戶等等。

工作流系統(tǒng)在運(yùn)行過程中有時(shí)需要調(diào)用外部應(yīng)用程序,以完成系統(tǒng)不能完成的工作(比如,發(fā)送Email或傳真,掃描文件等),或者與其他系統(tǒng)集成到一起。此時(shí)可以通過接口3來完成。

接口3的功能同接口2的功能大部分是相同的,因此,這兩個(gè)接口有融合的趨勢(shì)。接口3主要規(guī)定了調(diào)用外部應(yīng)用程序的函數(shù)規(guī)范,以及外部應(yīng)用程序返回?cái)?shù)據(jù)的格式。

接口4-不同工作流管理系統(tǒng)之間的協(xié)同工作

在企業(yè)級(jí)的工作流系統(tǒng)中,流程往往需要跨越多個(gè)服務(wù)器或系統(tǒng),比如應(yīng)用于跨國(guó)公司或大型集團(tuán)公司的工作流系統(tǒng)經(jīng)常會(huì)有這種的需求,此時(shí)就需要服務(wù)器或系統(tǒng)之間進(jìn)行通訊,交換流程控制信息和流程定義等數(shù)據(jù),以實(shí)現(xiàn)流程跨地域運(yùn)行。WfMC在規(guī)范中以C函數(shù)的形式提供了這些控制的定義,其中包括以下幾個(gè)方面的功能:

  • 1、創(chuàng)建流程實(shí)例;
  • 2、獲取流程實(shí)例狀態(tài);
  • 3、獲取和設(shè)置流程實(shí)例屬性;
  • 4、啟動(dòng)或終止流程實(shí)例;
  • 5、改變流程實(shí)例的狀態(tài);
  • 6、改變流程實(shí)例的屬性;
  • 7、更新流程實(shí)例。

服務(wù)器或系統(tǒng)之間信息交換的格式有多種,例如:文件、數(shù)據(jù)庫表、E-mail或直接通過網(wǎng)絡(luò)傳送的數(shù)據(jù)流等等。

接口5-管理和監(jiān)視功能

此接口提供給用戶管理和監(jiān)控系統(tǒng)的運(yùn)行狀態(tài)、查看系統(tǒng)運(yùn)行的歷史記錄的功能。WfMC在此接口的規(guī)范中定義了各種審計(jì)信息的數(shù)據(jù)格式,這些格式包括:

  • 1. 流程實(shí)例(Process Instance)審計(jì)信息:包括創(chuàng)建、啟動(dòng)流程實(shí)例和子流程實(shí)例的審計(jì)數(shù)據(jù);流程實(shí)例狀態(tài)變化的審計(jì)數(shù)據(jù);流程實(shí)例屬性變化的審計(jì)數(shù)據(jù);
  • 2. 活動(dòng)實(shí)例(Activity Instance)審計(jì)信息:包括活動(dòng)實(shí)例狀態(tài)變化的審計(jì)數(shù)據(jù);活動(dòng)實(shí)例屬性變化的審計(jì)數(shù)據(jù);
  • 3. 工作項(xiàng)(Workitem)審計(jì)信息:包括工作項(xiàng)狀態(tài)變化的審計(jì)數(shù)據(jù);工作項(xiàng)分配合重新分配的審計(jì)數(shù)據(jù);工作項(xiàng)屬性變化的審計(jì)數(shù)據(jù);
  • 4. 遠(yuǎn)程操作審計(jì)信息:包括開始和停止會(huì)話(Session)的審計(jì)數(shù)據(jù);遠(yuǎn)程創(chuàng)建流程實(shí)例和遠(yuǎn)程改變流程實(shí)例狀態(tài)的審計(jì)數(shù)據(jù);遠(yuǎn)程獲取和設(shè)置流程實(shí)例屬性的審計(jì)數(shù)據(jù);會(huì)話管理的審計(jì)數(shù)據(jù);
  • 5. 流程定義審計(jì)信息;
  • 6. 擴(kuò)展的審計(jì)信息及專用的審計(jì)信息。

這些審計(jì)數(shù)據(jù)在系統(tǒng)運(yùn)行時(shí)刻由系統(tǒng)自動(dòng)記錄在數(shù)據(jù)庫或文件中,可通過系統(tǒng)提供的API進(jìn)行統(tǒng)計(jì)和查詢,或者通過系統(tǒng)工具導(dǎo)出到系統(tǒng)外部。

另外,此接口還要提供系統(tǒng)管理與流程控制的功能,如:系統(tǒng)流程數(shù)據(jù)的備份和恢復(fù),用戶管理,流程管理等等。

通過這五個(gè)接口,工作流管理系統(tǒng)可以同外部的軟件工具進(jìn)行交互,這些工具可以由同一廠商提供,也可以由不同的廠商提供,但前提是這些工具都必須遵循WfMC的規(guī)范。用戶也可以有充分的選擇空間來決定哪一廠商的產(chǎn)品,或者自己開發(fā)屬于哪一個(gè)接口的工具。

這五個(gè)接口一般通過API的形式提供給用戶或軟件開發(fā)商,這些API稱為WAPI(Workflow API),也有廠商將API封裝成組件形式提供,以簡(jiǎn)化開發(fā)難度、降低成本并提高效率。

可以用下面的圖來表示這五個(gè)接口的作用:

工作流引擎

3.工作流引擎的關(guān)鍵因素

工作流引擎主要功能之一幫助用戶適應(yīng)流程多變性的需要的,給客戶帶來價(jià)值就是在于流程發(fā)生變化時(shí)的易維護(hù)性和低成本,工作流引擎就像是汽車的發(fā)動(dòng)機(jī),一個(gè)汽車即使再漂亮,沒有強(qiáng)勁的引擎支撐也能難成為一輛好車,工作流引擎的幾個(gè)關(guān)鍵因素如下:

1、 適合東方流程特性、易用的流程設(shè)計(jì)器

包括各種環(huán)節(jié)特性、路徑定義、時(shí)限定義、流程關(guān)聯(lián)、參與人員(主辦、協(xié)辦、閱知)、表單權(quán)限、各種特殊權(quán)限等等。各種流程特性可以用工具通過簡(jiǎn)單易用的方式定義出來。

2、 高性能、高穩(wěn)定性的流程引擎

如果工作流引擎只是用于少數(shù)人玩玩的情況,大可不必那么嚴(yán)謹(jǐn),工作流引擎對(duì)于大規(guī)模數(shù)據(jù)量、并發(fā)訪問、各種流程邏輯的支撐能力非常關(guān)鍵,因此高性能和高穩(wěn)定性是非常關(guān)鍵的。E8.Net工作流引擎的高性能和高穩(wěn)定性在大量實(shí)際的案例中得到了證實(shí)。

3、 工作流應(yīng)用的快速開發(fā)架構(gòu)

單純的工作流引擎對(duì)于用戶來說是沒有意義的,就像司機(jī)拿著發(fā)動(dòng)機(jī)不知道要做什么一樣,因此好的工作流引擎的關(guān)鍵因素之一是提供終端應(yīng)用系統(tǒng)的快速開發(fā)能力,這樣對(duì)于軟件提供者和軟件應(yīng)用者是雙贏的局面。

4、 強(qiáng)大的業(yè)務(wù)擴(kuò)展能力

工作流引擎幫助應(yīng)用軟件提供者很好的處理了流程邏輯的實(shí)現(xiàn),可是如何支撐業(yè)務(wù)能力的擴(kuò)展也是關(guān)鍵因素之一,比如:流程設(shè)計(jì)是由用戶通過流程設(shè)計(jì)器去定義的,那如何實(shí)現(xiàn)各種未知流程下的統(tǒng)計(jì)信息呢?比如E8.Net工作流曾經(jīng)開發(fā)過的物流配送系統(tǒng),用戶定義了各種未知流程同時(shí)又能統(tǒng)計(jì)各個(gè)配送點(diǎn)當(dāng)月的配送量。

好的工作流引擎的關(guān)鍵因素遠(yuǎn)不止這幾點(diǎn),目前工作流引擎產(chǎn)品層出不窮,可是真正的區(qū)別是在于末端需求的實(shí)現(xiàn)能力和實(shí)現(xiàn)成本。

評(píng)論  |   0條評(píng)論