摘 要: 針對(duì)業(yè)務(wù)流程管理系統(tǒng)" title="管理系統(tǒng)">管理系統(tǒng)中業(yè)務(wù)流程的快速,、靈活實(shí)現(xiàn),,對(duì)工作流" title="工作流">工作流引擎的設(shè)計(jì)和實(shí)現(xiàn)方法進(jìn)行了研究,提出了一種新的基于BizTalk Server的工作流引擎實(shí)現(xiàn)方案,。
關(guān)鍵詞: 業(yè)務(wù)流程管理系統(tǒng) 工作流 工作流引擎 BizTalk Server 2004
由于信息技術(shù)的發(fā)展和日趨激烈的商業(yè)競爭,,人們不再滿足于獨(dú)立、零散的辦公自動(dòng)化和計(jì)算機(jī)應(yīng)用,,而是需要綜合化,、集成化的解決方案。因此,,作為一種對(duì)常規(guī)性業(yè)務(wù)進(jìn)行管理調(diào)度的技術(shù),,業(yè)務(wù)流程管理系統(tǒng)的出現(xiàn)是必然的。隨著國家電信體制改革的繼續(xù)深化,,電信行業(yè)多元化的競爭格局正在加速形成,,各電信運(yùn)營企業(yè)的發(fā)展環(huán)境面臨著嚴(yán)峻的形勢。雖然目前各電信企業(yè)為了提高服務(wù)質(zhì)量與管理效益,,都已經(jīng)建立了一整套的業(yè)務(wù)流程規(guī)范指導(dǎo)各自的業(yè)務(wù)活動(dòng),,但是許多業(yè)務(wù)流程的實(shí)際運(yùn)行還是采用填寫紙介質(zhì)業(yè)務(wù)表單文件,、傳遞紙介質(zhì)文件(例如,、傳真)的方式處理。即使有一些零散的IT系統(tǒng),,也缺乏一體化,、端到端全過程的IT技術(shù)支持,無法從根本上改變傳統(tǒng)手工作業(yè)的低效率,,缺乏有效過程控制管理,,與企業(yè)IT信息化的要求并不相符。這種狀況也影響了業(yè)務(wù)流程規(guī)范化的全面推進(jìn)和實(shí)施,。要獲得業(yè)務(wù)流程規(guī)范化的全面,、真正實(shí)施和提高服務(wù)質(zhì)量與運(yùn)行效率,必須引進(jìn)業(yè)務(wù)流程管理系統(tǒng),,實(shí)現(xiàn)業(yè)務(wù)流程電子化,、信息化,將業(yè)務(wù)流程中的信息流轉(zhuǎn)與控制管理從手工填寫紙介質(zhì)表單,、傳遞紙介質(zhì)文件的手工作業(yè)方式中解放出來,,從而實(shí)現(xiàn)企業(yè)經(jīng)營模式從“以網(wǎng)絡(luò)為中心”向“以客戶為中心”的轉(zhuǎn)變,,達(dá)到增強(qiáng)企業(yè)自身生命力和提高企業(yè)競爭力的目的。
1 工作流參考模型
工作流參考模型由工作流管理聯(lián)盟WFMC(Workflow Management Coalition)提出,,是工作流管理系統(tǒng)的一個(gè)參考模型,。本文所提到業(yè)務(wù)流程管理系統(tǒng)仍以此參考模型作為抽象的依據(jù)框架。其框架如圖1所示,。從圖1中可知,,模型由六個(gè)組件組成:
(1)工作流核心服務(wù)。即工作流引擎,,主要功能是讀取工作流定義,,根據(jù)工作流定義驅(qū)動(dòng)工作流的流轉(zhuǎn)。
(2)流程定義工具,。實(shí)現(xiàn)以圖形化拖拽的方式定義工作流的功能,,將現(xiàn)實(shí)的各種業(yè)務(wù)流程轉(zhuǎn)化為其計(jì)算機(jī)表現(xiàn)形式。
(3)工作流的客戶端應(yīng)用,??梢允荁/S或C/S結(jié)構(gòu)。它向用戶提供一個(gè)工作界面,,用來啟動(dòng),、驅(qū)動(dòng)業(yè)務(wù)流程??蛻舳藨?yīng)用通過接口2與引擎交互,。
(4)其他外部系統(tǒng)。在工作流運(yùn)行過程中,,工作流引擎還可以與外部各種應(yīng)用程序交互,,這里可通過定義好的接口3來完成。
(5)其他工作流核心服務(wù),。指其他工作流引擎服務(wù),。通過接口4實(shí)現(xiàn)多個(gè)工作流引擎交互與協(xié)作。
(6)管理與監(jiān)視工具,。用于整個(gè)系統(tǒng)的管理與監(jiān)視,。
此模型為工作流管理系統(tǒng)確立了一個(gè)基本、合理的框架,。整個(gè)管理系統(tǒng)的核心是工作流引擎,。工作流引擎是流程流動(dòng)的驅(qū)動(dòng)源,它負(fù)責(zé)解釋工作流的流程定義,,創(chuàng)建并初始化流程實(shí)例,,控制流程實(shí)例的運(yùn)轉(zhuǎn)走向,并記錄其狀態(tài)變化等,。
2 Microsoft BizTalk Server 2004簡介
Microsoft BizTalk Server 2004是微軟最新推出的企業(yè)應(yīng)用集成平臺(tái),,旨在促進(jìn)企業(yè)內(nèi)部及企業(yè)之間電子商務(wù)流程的協(xié)作,。該產(chǎn)品構(gòu)筑在MS.NET Framework之上,并且與VS .NET 2003和Office System緊密集成,,能夠?yàn)橛脩籼峁┰鰪?qiáng)的商務(wù)流程整合能力,、新的商務(wù)行為監(jiān)控特性以及高度伸縮的新式規(guī)則引擎,使開發(fā)者,、專業(yè)IT工作者和商業(yè)分析家能夠非常輕松地在Internet上建立一個(gè)跨平臺(tái),、跨應(yīng)用、跨企業(yè)的動(dòng)態(tài)業(yè)務(wù)過程,。
3 工作流引擎方案實(shí)現(xiàn)
3.1 業(yè)務(wù)流程管理系統(tǒng)
參照上述工作流參考模型,,在為國內(nèi)某電信運(yùn)營商開發(fā)的業(yè)務(wù)流程管理系統(tǒng)中,采用了如圖2所示的整體框架,。此框架上層是以MS SharePoint Portal門戶系統(tǒng)為依托,、即插即用的UI組件,中間是工作流應(yīng)用系統(tǒng)" title="應(yīng)用系統(tǒng)">應(yīng)用系統(tǒng),,底層是BizTalk EAI Adapter總線系統(tǒng),。底端利用BizTalk Server自身的各種Adapter和各種異構(gòu)系統(tǒng)互連互通。其中工作流應(yīng)用系統(tǒng)由輔助工具,、系統(tǒng)管理模塊,、任務(wù)節(jié)點(diǎn)組件、建模輔助工具等構(gòu)成,。工作流應(yīng)用系統(tǒng)中的輔助支持工具包含客戶資料管理,、知識(shí)幫助(專家資源、案例庫),、便箋,、留言板、滾動(dòng)消息等應(yīng)用模塊,;任務(wù)節(jié)點(diǎn)組件包含在Visual Studio .NET環(huán)境下開發(fā)的業(yè)務(wù)操作組件,、判斷選項(xiàng)組件,、查看視圖組件,;建模輔助工具包含UI組件庫、工作流模型庫,、流程任務(wù)規(guī)范定義等模塊,。BizTalk工作流建模工具以圖形化拖拽的方式建立流程模型并配置屬性。工作流引擎采用BizTalk Server2004(簡稱BTS),,是整個(gè)系統(tǒng)運(yùn)轉(zhuǎn)的控制核心,。它根據(jù)建模輔助工具的輸出結(jié)果,調(diào)用任務(wù)節(jié)點(diǎn)組件,,利用適配器接口和各種異構(gòu)系統(tǒng)及后臺(tái)數(shù)據(jù)庫交互,,實(shí)現(xiàn)了各流程穩(wěn)定流轉(zhuǎn),、各系統(tǒng)平滑互通的目標(biāo)。
3.2 通用任務(wù)節(jié)點(diǎn)抽象
BTS提供了消息定義/消息轉(zhuǎn)換映射,、傳輸管道創(chuàng)建,、流程/任務(wù)編排、端口定義,、傳輸協(xié)議選擇等一系列開發(fā)工具,。利用BTS做引擎的一般流程開發(fā)方法和步驟為:(1)定義各消息格式(Schema)并創(chuàng)建不同格式消息間的轉(zhuǎn)換映射(Map);(2)編配流程圖,,即定義各流程的任務(wù)節(jié)點(diǎn)(Orchestration)并配置收發(fā)端口和傳輸協(xié)議(Prot Configure),;(3)編譯(Build)并部署流程(Deploy),成功后就得到可以運(yùn)行的流程,。BTS具有較強(qiáng)的功能,,但同時(shí)開發(fā)難度和繁瑣度也很高。在流程數(shù)目較少,、任務(wù)節(jié)點(diǎn)簡單的情況下可以采用上述開發(fā)方法,。但是,在實(shí)際開發(fā)業(yè)務(wù)流程管理系統(tǒng)時(shí),,不僅流程的數(shù)目繁多,,而且各流程在任務(wù)數(shù)目、任務(wù)類型上差別很大,。如果按照上述開發(fā)方法,,即針對(duì)每個(gè)流程開發(fā)一個(gè)流程圖并進(jìn)行配置,無疑會(huì)極大地增加開發(fā)人員的工作量,,耗費(fèi)大量人力,、物力,而且在運(yùn)行維護(hù)階段要面對(duì)的任務(wù)也是異常艱巨的,,遠(yuǎn)遠(yuǎn)達(dá)不到系統(tǒng)開發(fā)的進(jìn)度要求和后期維護(hù)難度要求,。鑒于以上原因,經(jīng)過研究改進(jìn),,綜合考慮各類型流程和任務(wù)的共同特性,,最后在任務(wù)級(jí)別上得到統(tǒng)一的抽象:即雖然流程在業(yè)務(wù)邏輯、任務(wù)數(shù)目上有很大差別,,但畢竟都是不同類型任務(wù)的某種組合(例如任務(wù)類型有判斷節(jié)點(diǎn),、操作節(jié)點(diǎn)、選擇節(jié)點(diǎn),、子流程節(jié)點(diǎn),、查看節(jié)點(diǎn))。如果在一個(gè)Orchestration(編排,BizTalk的流程定義)能夠?qū)崿F(xiàn)對(duì)每一種類型任務(wù)的處理,,則這個(gè)Orchestration就是所有不同類型任務(wù)的共同抽象模版,,即通用任務(wù)節(jié)點(diǎn)抽象。這樣可以拋開BTS復(fù)雜的開發(fā)界面,,結(jié)合本業(yè)務(wù)流程管理系統(tǒng)的另一功能模塊——建模工具,,快速靈活地搭建各種類型的流程。實(shí)際運(yùn)行時(shí),,BTS只需根據(jù)任務(wù)抽象模版實(shí)例化" title="實(shí)例化">實(shí)例化一個(gè)任務(wù)并反復(fù)循環(huán),,直到流程結(jié)束。
通用任務(wù)節(jié)點(diǎn)抽象如圖3所示,。
3.3 數(shù)據(jù)模型
本業(yè)務(wù)流程管理系統(tǒng)采用SQL Server 2000作為數(shù)據(jù)庫系統(tǒng),,用來存儲(chǔ)系統(tǒng)所用到的各種數(shù)據(jù)表。本系統(tǒng)數(shù)據(jù)模型包括機(jī)構(gòu)數(shù)據(jù)模型和業(yè)務(wù)數(shù)據(jù)模型兩部分,。機(jī)構(gòu)數(shù)據(jù)模型描述企業(yè)或者部門的組織機(jī)構(gòu)關(guān)系,,業(yè)務(wù)數(shù)據(jù)模型則定義工作流引擎中所用到的各種控制數(shù)據(jù)和流程實(shí)例數(shù)據(jù)。通過數(shù)據(jù)模型,,可以方便地描述關(guān)鍵業(yè)務(wù)的業(yè)務(wù)規(guī)則,、任務(wù)的依賴關(guān)系以及任務(wù)的部門/角色指派等特征。本文只討論與工作流引擎關(guān)系緊密的業(yè)務(wù)數(shù)據(jù)模型,。圖4給出了業(yè)務(wù)數(shù)據(jù)模型之信息模型的ER圖(只給出核心表結(jié)構(gòu)),。
(1)流程模型表WorkFlow Table
此表主要記錄各種類型流程的定義,表格中的數(shù)據(jù)由建模工具在流程定義階段生成,。其中:
Guid字段是主鍵,,表示流程編號(hào);
TypeId字段表示流程類型編號(hào),;
Name字段表示流程名稱,;
TimeLimit字段表示流程結(jié)束時(shí)限;
TimeConfig字段表示此流程參照的時(shí)間配置,,它同時(shí)是時(shí)間配置表的主鍵,;
Operator字段表示流程的授權(quán)發(fā)起人(或角色)。
(2)任務(wù)模型表 WorkTask Table
此表主要記錄各種類型任務(wù)的定義,,其數(shù)據(jù)也是在流程定義階段由建模工具生成,,包括任務(wù)編號(hào)、任務(wù)名稱以及綁定頁面地址URL等,。
(3)任務(wù)聯(lián)結(jié)表WorkLink Table
此表主要記錄任務(wù)間的連線數(shù)據(jù)屬性,,包括頭,、尾節(jié)點(diǎn)標(biāo)識(shí)及條件,。
(4)流程實(shí)例表WorktFlowInstance
此表主要記錄正在運(yùn)行和已經(jīng)結(jié)束的流程實(shí)例的相關(guān)信息,其每條記錄由工作流引擎從流程模型表實(shí)例化得到。相關(guān)字段記錄了對(duì)應(yīng)流程實(shí)例所屬流程模型類型,、流程名稱,、當(dāng)前活動(dòng)節(jié)點(diǎn)位置、開始時(shí)間,、運(yùn)行狀態(tài)(運(yùn)行,、掛起或正常結(jié)束)、流程實(shí)例發(fā)起人以及是否超時(shí)等狀態(tài)信息,。
(5)任務(wù)實(shí)例表 WorkTaskInstance Table
記錄正在運(yùn)行和已經(jīng)結(jié)束的任務(wù)實(shí)例的信息,。它的數(shù)據(jù)由工作流引擎從任務(wù)模型表實(shí)例化得到。
(6)時(shí)間配置表 TimeConfig Table
記錄企業(yè)的工作時(shí)間制度,,即上下班時(shí)間,、午休時(shí)間以及告警/預(yù)警占全部時(shí)限的百分比。根據(jù)此表,,工作流引擎由流程和任務(wù)的相對(duì)時(shí)長換算成絕對(duì)時(shí)長,。
3.4 引擎核心控制算法
在抽象任務(wù)節(jié)點(diǎn)中調(diào)用代碼,以動(dòng)態(tài),、實(shí)時(shí)地獲取下一步任務(wù),。當(dāng)前任務(wù)提交后,通過對(duì)流程模型,、任務(wù)模型表的操作實(shí)例化下一步任務(wù),。實(shí)例化任務(wù)的算法如圖5所示。
3.5 工作流引擎運(yùn)轉(zhuǎn)過程
流程發(fā)起人在客戶應(yīng)用端啟動(dòng)一個(gè)流程,,則系統(tǒng)自動(dòng)向引擎接收端口發(fā)送一個(gè)消息,。引擎在收到此消息后被激活,經(jīng)過如下步驟完成運(yùn)轉(zhuǎn)過程:
(1)引擎根據(jù)當(dāng)前提交的消息,,初始化提交任務(wù)實(shí)例,,即向相關(guān)崗位角色分配第一個(gè)(如果不是在流程剛啟動(dòng)時(shí),就是“下一條”)任務(wù),。
(2)引擎調(diào)用超時(shí)處理模塊" title="處理模塊">處理模塊,,開始對(duì)剛分配的任務(wù)計(jì)時(shí)。此時(shí)引擎處于等待狀態(tài),,等待任務(wù)責(zé)任人完成任務(wù)后提交消息,。如果任務(wù)沒有在規(guī)定的時(shí)間內(nèi)完成,任務(wù)將被標(biāo)志為超時(shí),。超時(shí)處理模塊此時(shí)將通過頁面醒目顯示,、即時(shí)消息等方式通知任務(wù)責(zé)任人或根據(jù)需要通知上級(jí)責(zé)任人。特定類型任務(wù)(如審批等)超時(shí)后自動(dòng)流轉(zhuǎn)到下一任務(wù),,其他情況下引擎再次進(jìn)入等待狀態(tài),,直到任務(wù)完成。
(3)任務(wù)責(zé)任人完成任務(wù)后,系統(tǒng)自動(dòng)發(fā)送一個(gè)提交消息給引擎,。引擎收到此消息后超時(shí)模塊結(jié)束,。引擎根據(jù)接收消息判斷流程操作人員(即此時(shí)的任務(wù)責(zé)任人)是否要結(jié)束流程。因?yàn)榱鞒淘谀承┤蝿?wù)節(jié)點(diǎn)可以被無條件人工結(jié)束,。
(4)如果流程被人工結(jié)束,,則轉(zhuǎn)到(8)。
(5)如果不是異常結(jié)束,,則調(diào)用“任務(wù)指派”代碼功能模塊,得到下一步需要指派的任務(wù)列表,。
(6)判斷任務(wù)列表中任務(wù)數(shù)量是否為零。如果為零則說明所有的任務(wù)已經(jīng)完成,,直接轉(zhuǎn)到(8),。
(7)否則,對(duì)該任務(wù)列表中的首個(gè)任務(wù)調(diào)用指派任務(wù)處理模塊進(jìn)行任務(wù)的實(shí)例化,。實(shí)例化完畢后轉(zhuǎn)到(6),。
(8)引擎初始化返回消息,該流程執(zhí)行完畢,。
基于此工作流引擎方案的業(yè)務(wù)流程管理系統(tǒng)很好地滿足了客戶的需求,,并已在某省公司成功上線運(yùn)行及在其他地市級(jí)公司全面推廣。此方案的優(yōu)點(diǎn)為:
(1)簡單快速,。各任務(wù)節(jié)點(diǎn)被抽象后,,開發(fā)階段就不用過多考慮任務(wù)類型的細(xì)節(jié)問題,這樣整個(gè)開發(fā)過程被大大縮短,,從得到需求到流程上線運(yùn)行只需一兩天時(shí)間,。
(2)靈活穩(wěn)定。強(qiáng)大的代碼支持功能可以靈活地根據(jù)需求很快地對(duì)流程做出相應(yīng)調(diào)整,,并且不影響系統(tǒng)的正常運(yùn)行,,使系統(tǒng)的穩(wěn)定性得到有效保證。
參考文獻(xiàn)
1 蒲 春,,陳淳鑫.工作流系統(tǒng)中系統(tǒng)管理模塊的設(shè)計(jì)與實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,,2004;23(4)
2 范玉順.工作流管理技術(shù)基礎(chǔ)[M].北京:清華大學(xué)出版社,,2001
3 WFMC.FMC-TC-1025 1.0 Workflow Management Microsoft.Coalition Draft[R].2002
4 Microsoft.Microsoft BizTalk Server 2004評(píng)估指南[R].http://www.eu.microsoft.com/china/biztalk/community/Product/a3.asp