国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于微內(nèi)核的工作流引擎研究

2011-06-06 06:56:30余周侯志松莊瑩菲左現(xiàn)剛
關(guān)鍵詞:業(yè)務(wù)流程引擎實(shí)例

余周,侯志松,莊瑩菲,左現(xiàn)剛

(河南科技學(xué)院,河南新鄉(xiāng),453003)

工作流引擎是工作流管理系統(tǒng)的核心所在,是工作流管理系統(tǒng)運(yùn)行和控制的中心,它直接決定整個(gè)系統(tǒng)的運(yùn)行效率和性能.為了應(yīng)付瞬息萬(wàn)變的市場(chǎng)變化,企業(yè)業(yè)務(wù)流程必須跟隨市場(chǎng)變化做出相應(yīng)調(diào)整,然而,由于當(dāng)前現(xiàn)有工作流引擎結(jié)構(gòu)上的局限性,導(dǎo)致工作流管理系統(tǒng)不能適應(yīng)快速的市場(chǎng)變化,限制了企業(yè)的發(fā)展.因此,本文針對(duì)傳統(tǒng)工作流引擎的不足,遵循工作流管理聯(lián)盟的標(biāo)準(zhǔn),研究并設(shè)計(jì)一個(gè)基于微內(nèi)核的工作流引擎.

1 現(xiàn)有工作流引擎的局限性

工作流管理聯(lián)盟對(duì)工作流管理系統(tǒng)的定義是:是一個(gè)軟件系統(tǒng),它完成工作量的定義和管理,并按照在系統(tǒng)中預(yù)先定義好的工作流邏輯進(jìn)行工作流實(shí)例的執(zhí)行[1],工作流管理聯(lián)盟提出的工作流參考模型見(jiàn)圖1.

從圖1可以看出:工作流引擎位于工作流管理系統(tǒng)的核心地位,負(fù)責(zé)解釋業(yè)務(wù)流程定義、執(zhí)行業(yè)務(wù)流程實(shí)例、控制業(yè)務(wù)活動(dòng)運(yùn)行、為參與者分配任務(wù),并完成與其他工作流引擎的交互和通信.同時(shí),工作流管理聯(lián)盟還制定了描述業(yè)務(wù)流程定義的元模型,以及流程定義之間互相轉(zhuǎn)換的流程定義語(yǔ)言規(guī)范,詳細(xì)規(guī)定了業(yè)務(wù)流程定義、業(yè)務(wù)活動(dòng)、業(yè)務(wù)邏輯、變遷條件和參與者等元素的描述方法[2].

但是,現(xiàn)有的工作流引擎通常采用宏內(nèi)核結(jié)構(gòu),即一個(gè)工作流引擎就是一個(gè)系統(tǒng)內(nèi)核.宏內(nèi)核結(jié)構(gòu)的工作流引擎將業(yè)務(wù)活動(dòng)的調(diào)度、任務(wù)分配和流程實(shí)例執(zhí)行等服務(wù)集中在一個(gè)組件中.此時(shí),如果需要修改系統(tǒng)某一功能,將不可避免的影響到上述功能相對(duì)穩(wěn)定的服務(wù)組件.因此,采用宏內(nèi)核結(jié)構(gòu)實(shí)現(xiàn)的工作流引擎功能集中、結(jié)構(gòu)臃腫,增加了系統(tǒng)重構(gòu)的成本,降低了系統(tǒng)的靈活性.

2 基于微內(nèi)核的工作流引擎

根據(jù)工作流引擎中業(yè)務(wù)活動(dòng)調(diào)度和任務(wù)分配功能相對(duì)穩(wěn)定、獨(dú)立的特性,將這些功能從工作流引擎中抽取出來(lái),形成工作流引擎的微內(nèi)核.此時(shí),當(dāng)某項(xiàng)工作流引擎功能需要改變時(shí),僅需修改該功能組件即可,而不會(huì)影響到工作流引擎的內(nèi)核,從而降低了系統(tǒng)的重構(gòu)成本,提高了系統(tǒng)的靈活性.

本文參照工作流管理聯(lián)盟的規(guī)范,采用基于XML的流程定義語(yǔ)言描述業(yè)務(wù)流程,實(shí)現(xiàn)基于微內(nèi)核的工作流引擎.該工作流引擎采用微內(nèi)核架構(gòu),分離服務(wù)組件和調(diào)度功能,采用組件技術(shù)開發(fā)工作流引擎模塊,進(jìn)而降低模塊之間的耦合度,從結(jié)構(gòu)上提高工作流引擎的靈活性和可維護(hù)性.

2.1 流程定義元模型

工作流引擎最重要的職責(zé)是解釋業(yè)務(wù)流程,實(shí)現(xiàn)業(yè)務(wù)流程實(shí)例的運(yùn)行.為了實(shí)現(xiàn)這一功能,現(xiàn)實(shí)世界的企業(yè)業(yè)務(wù)運(yùn)營(yíng)過(guò)程必須轉(zhuǎn)化為工作流引擎能夠理解的流程定義,工作流引擎才能解釋業(yè)務(wù)流程,創(chuàng)建相應(yīng)的流程實(shí)例,完成業(yè)務(wù)流程在計(jì)算機(jī)世界的自動(dòng)執(zhí)行.

工作流模型是業(yè)務(wù)流程的抽象描述,是現(xiàn)實(shí)世界業(yè)務(wù)流程向計(jì)算機(jī)內(nèi)部表示轉(zhuǎn)換的工具.工作流模型采用簡(jiǎn)單直觀的形式對(duì)復(fù)雜的流程進(jìn)行抽象,為人們提供一個(gè)描述世界的參考性框架.在一個(gè)工作流模型中,除了需要提供描述業(yè)務(wù)流程結(jié)構(gòu)的流程元素外,還需要提供表示流程執(zhí)行邏輯和流程業(yè)務(wù)功能的變遷和動(dòng)作.因此,工作流模型必須包含一個(gè)用來(lái)描述工作流模型的基本元模型.流程定義元模型是現(xiàn)實(shí)世界中業(yè)務(wù)流程在計(jì)算機(jī)內(nèi)部的結(jié)構(gòu)化表示方法,用來(lái)建模并生成一個(gè)能被工作流引擎解釋并執(zhí)行的流程定義.所謂的元模型就是描述模型的模型.在工作流管理系統(tǒng)中,流程定義元模型是工作流模型中描述流程定義內(nèi)在聯(lián)系的模型,反映了工作流模型中所有流程元素的結(jié)構(gòu)功能和內(nèi)在聯(lián)系.使用流程定義元模型,可以建立一個(gè)與具體實(shí)現(xiàn)無(wú)關(guān)的流程定義.

為了簡(jiǎn)潔有效的描述業(yè)務(wù)流程,實(shí)現(xiàn)業(yè)務(wù)流程在現(xiàn)實(shí)世界與計(jì)算機(jī)世界的無(wú)縫轉(zhuǎn)換,在參考工作流管理聯(lián)盟規(guī)范的基礎(chǔ)上,開發(fā)并定義一個(gè)流程定義元模型.在流程定義元模型中,工作流定義、活動(dòng)、參與者、變遷條件等實(shí)體對(duì)象的關(guān)系如圖2所示.

圖1 工作流參考模型

圖2 流程定義元模型

從圖2可以看出:流程定義元模型的核心是活動(dòng).流程定義與活動(dòng)、流程定義與工作流相關(guān)數(shù)據(jù)都是一對(duì)多的關(guān)系.也就是說(shuō):一個(gè)流程定義可以由多個(gè)活動(dòng)實(shí)體和一系列的工作流相關(guān)數(shù)據(jù)組成.參與者、工作流相關(guān)數(shù)據(jù)、被調(diào)用應(yīng)用程序,以及變遷條件與活動(dòng)之間都是多對(duì)多的關(guān)系.即:一個(gè)活動(dòng)可以引用多個(gè)不同的角色、使用多個(gè)工作流相關(guān)數(shù)據(jù)、調(diào)用多種類型的應(yīng)用程序工具,并能在不同的變遷條件中導(dǎo)航.同時(shí),同一個(gè)參與者、工作流相關(guān)數(shù)據(jù)、變遷條件或應(yīng)用程序工具也可以被多個(gè)活動(dòng)所使用.工作流元模型的屬性要素主要由以下幾種:

(1)工作流類型定義:用來(lái)描述業(yè)務(wù)流程,反映業(yè)務(wù)流程的目的和目標(biāo).其主要屬性有:流程定義的名稱、版本號(hào)、開始/結(jié)束條件和安全、審查、控制數(shù)據(jù)等.

(2)活動(dòng):活動(dòng)對(duì)應(yīng)業(yè)務(wù)流程中的活動(dòng)和任務(wù),反映了企業(yè)業(yè)務(wù)運(yùn)營(yíng)的功能實(shí)現(xiàn)和功能操作.活動(dòng)可以由人工執(zhí)行,也可以自動(dòng)執(zhí)行,或者調(diào)用相關(guān)的應(yīng)用程序以完成業(yè)務(wù)流程指定的工作.活動(dòng)的主要屬性包括活動(dòng)的名稱、類型以及該活動(dòng)的約束條件等.

(3)變遷條件:用來(lái)在活動(dòng)和任務(wù)之間導(dǎo)航,決定活動(dòng)或任務(wù)的執(zhí)行屬性,反映企業(yè)業(yè)務(wù)的運(yùn)營(yíng)規(guī)則.

(4)工作流相關(guān)數(shù)據(jù):描述業(yè)務(wù)流程涉及到的數(shù)據(jù),包括流程控制數(shù)據(jù)、流程相關(guān)數(shù)據(jù)和應(yīng)用數(shù)據(jù).

(5)參與者:用來(lái)對(duì)組織結(jié)構(gòu)進(jìn)行分類,簡(jiǎn)化流程任務(wù)的分配.參與者是活動(dòng)的具體執(zhí)行者,它可以是人,也可以是能夠自動(dòng)執(zhí)行的應(yīng)用程序.

(6)被調(diào)用程序:描述與業(yè)務(wù)流程協(xié)作,共同完成企業(yè)業(yè)務(wù)運(yùn)營(yíng)的工具和手段.

2.2 基于微內(nèi)核的工作流引擎的系統(tǒng)架構(gòu)

依據(jù)服務(wù)組件和調(diào)度功能分離的原則,將業(yè)務(wù)活動(dòng)調(diào)度和任務(wù)分配等相對(duì)穩(wěn)定的功能抽取出來(lái),構(gòu)建系統(tǒng)的核心層.工作流引擎的架構(gòu)如圖3所示.

圖3 工作流引擎架構(gòu)

如圖3示,基于微內(nèi)核的工作流引擎分為四個(gè)層次,各個(gè)層次的功能如下:

(1)接口層:接口層是工作流引擎的外部接口.外部應(yīng)用程序通過(guò)該接口與工作流引擎進(jìn)行交互,實(shí)現(xiàn)業(yè)務(wù)流程的操作與管理.該接口符合工作流管理聯(lián)盟的工作流管理規(guī)范,可實(shí)現(xiàn)工作流產(chǎn)品之間的無(wú)縫連接.本層次可分為應(yīng)用程序接口模塊和管理與監(jiān)控接口兩部分.其中應(yīng)用程序接口模塊提供與工作流服務(wù)有關(guān)的接口,外部應(yīng)用程序可通過(guò)此接口訪問(wèn)工作流引擎提供的服務(wù);管理與監(jiān)控接口模塊用于工作流服務(wù)的管理,比如啟動(dòng)、掛起或刪除流程實(shí)例.

(2)內(nèi)核層:本層次是工作流引擎的核心所在,提供工作流的活動(dòng)調(diào)度機(jī)制和任務(wù)分配機(jī)制.該層次由微內(nèi)核、工作流執(zhí)行模塊、流程實(shí)例模塊和活動(dòng)管理模塊四個(gè)模塊組成.微內(nèi)核負(fù)責(zé)調(diào)度業(yè)務(wù)活動(dòng),實(shí)現(xiàn)流程實(shí)例的執(zhí)行,并將業(yè)務(wù)任務(wù)分配給參與者;工作流執(zhí)行模塊實(shí)現(xiàn)流程實(shí)例運(yùn)行的基本操作,如:?jiǎn)?dòng)、掛起、激活或結(jié)束流程實(shí)例;流程實(shí)例模塊負(fù)責(zé)流程實(shí)例的管理工作,并通過(guò)服務(wù)層將流程實(shí)例持久化到數(shù)據(jù)庫(kù)中,以保證流程實(shí)例的持久有效;活動(dòng)模塊實(shí)現(xiàn)業(yè)務(wù)活動(dòng)的管理和持久化.

(3)服務(wù)層:服務(wù)層是內(nèi)核層的擴(kuò)展和工作流引擎服務(wù)的具體實(shí)現(xiàn),可分為三個(gè)模塊:運(yùn)行支持模塊,運(yùn)行輔助模塊,運(yùn)行優(yōu)化模塊.運(yùn)行支持模塊的主要功能是流程定義解析和流程實(shí)例持久化.根據(jù)流程定義創(chuàng)建流程實(shí)例時(shí),首先,流程定義解析功能對(duì)流程定義進(jìn)行分析,提取創(chuàng)建流程實(shí)例所需的數(shù)據(jù)并對(duì)流程實(shí)例進(jìn)行初始化操作,然后將已初始化流程實(shí)例提交到內(nèi)核層,內(nèi)核層接管流程實(shí)例,實(shí)現(xiàn)流程實(shí)例的調(diào)度執(zhí)行.流程實(shí)例持久化服務(wù)為內(nèi)核層提供存儲(chǔ)服務(wù),負(fù)責(zé)將工作流相關(guān)數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中,用于確保工作流服務(wù)的持久有效.運(yùn)行輔助模塊擴(kuò)展工作流引擎的服務(wù)功能,用于增強(qiáng)工作流引擎的功能.該模塊主要的功能有事件監(jiān)聽處理、異常處理、條件處理和活動(dòng)回退(rollback)等.運(yùn)行優(yōu)化模塊對(duì)工作流引擎進(jìn)行優(yōu)化,用于提高流程實(shí)例的執(zhí)行效率,與工作流引擎的功能無(wú)關(guān).

(4)基礎(chǔ)設(shè)備層:為工作流引擎提供公共的服務(wù)組件.系統(tǒng)運(yùn)行日志、工作日管理等均位于該層次.

3 結(jié)論

本文在探討現(xiàn)有工作流引擎設(shè)計(jì)局限性的基礎(chǔ)上,設(shè)計(jì)了一個(gè)基于微內(nèi)核的工作流引擎.基于微內(nèi)核的工作流引擎將調(diào)度與服務(wù)分離,內(nèi)核層獨(dú)立穩(wěn)定,服務(wù)與具體實(shí)現(xiàn)無(wú)關(guān),當(dāng)引擎提供的服務(wù)需要修改時(shí),只需重構(gòu)引擎的服務(wù)實(shí)現(xiàn)層,而不必修改內(nèi)核部分,從而降低了系統(tǒng)的重構(gòu)成本;當(dāng)引擎需要增加新的功能時(shí),僅需擴(kuò)展工作流引擎接口,使得系統(tǒng)具備了良好的擴(kuò)展性和靈活性.同時(shí),該工作流引擎采用基于組件的開發(fā)技術(shù),組件之間通過(guò)定義良好的接口進(jìn)行通信,組件耦合度低,當(dāng)某個(gè)組件發(fā)生錯(cuò)誤時(shí),只需修改該組件即可,有效的降低了維護(hù)成本,提高了系統(tǒng)的靈活性.

[1]The WorkflowReference Model[EB/OL].(1995-1-19).[2011-04-20].http://www.wfmc.org/standards/docs/tc003v11.pdf

[2]Layna F.WorkflowHandbook 2005[M].Florida:Future Strategies Inc.2005:19-21.

[3]ProcessDefinitionInterface-XMLProcessDefinitionLanguage[EB/OL].(2008-10-10)[2011-04-20].http://www.wfmc.org/Downloaddocument/WFMC-TC-1025-Oct-10-08-A-Final-XPDL-2.1-Specification.html.

[4]Alexander W.Software Structure and Portabilityofthe FiascoMicrokernel[M].Dresden:Technical UniversityofDresden.2003.

[5]Brown AW,Wallnau K C.Engineering of component-based systems[C].Component-Based Software Engineering:Selected Papers fromthe Software EngineeringInstitute.Los Alamitos,CA:IEEE Computer SocietyPress,1996:7-15.

[6]DlogoMR,Ferreira J J.pintoFerreira.Developinga reusable engine[J].Journal ofsystems Architecture.June,2004,50:309-324.

[7]Brown AW.Large-Scale Component Based Development[M].Prentice Hall:Upper saddle River,2000.

[8]Workflow Management Coalition.Terminology&Glossary[EB/OL].(1999-02-10)[2011-04-20].http://www.wfmc.org/standards/docs/TC-1011_term_glossary_v3.pdf.

猜你喜歡
業(yè)務(wù)流程引擎實(shí)例
RPA機(jī)器人助業(yè)務(wù)流程智能化
STK業(yè)務(wù)流程優(yōu)化的探究
企業(yè)財(cái)務(wù)管理、業(yè)務(wù)流程管理中整合ERP之探索
藍(lán)谷: “涉藍(lán)”新引擎
商周刊(2017年22期)2017-11-09 05:08:31
基于財(cái)務(wù)業(yè)務(wù)流程再造的ERP信息系統(tǒng)構(gòu)建探析
無(wú)形的引擎
河南電力(2015年5期)2015-06-08 06:01:46
基于Cocos2d引擎的PuzzleGame開發(fā)
完形填空Ⅱ
完形填空Ⅰ
One?。牛睿纾椋睿濉。蹋澹妫糁皇O乱粋€(gè)引擎
巨鹿县| 丽江市| 神池县| 吴江市| 广西| 武陟县| 平陆县| 黄冈市| 大埔区| 红桥区| 和顺县| 屏南县| 名山县| 手机| 龙井市| 南川市| 集贤县| 黄浦区| 曲阜市| 丹巴县| 德格县| 宾阳县| 获嘉县| 太谷县| 吴旗县| 沁阳市| 和林格尔县| 怀来县| 城固县| 大连市| 陆川县| 房产| 淮北市| 瓮安县| 沙田区| 庄河市| 永泰县| 东阿县| 长沙市| 招远市| 奉贤区|