摘 要:該文重點(diǎn)論述了在J2EE基礎(chǔ)上設(shè)計(jì)的工作流引擎的具體情況,其中包括具體模塊的設(shè)計(jì)和服務(wù)對(duì)象的設(shè)計(jì)等,還進(jìn)行了具體的實(shí)現(xiàn)分析,以期能夠?yàn)橄嚓P(guān)的實(shí)踐提供些許理論依據(jù)。
關(guān)鍵詞:J2EE架構(gòu) 工作流引擎 概述 設(shè)計(jì)實(shí)現(xiàn)
中圖分類號(hào):TP3文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-098X(2012)12(c)-00-02
通常說來,工作流技術(shù)是企業(yè)進(jìn)行業(yè)務(wù)管理和效益分析的過程,主要是通過建模的方式,對(duì)企業(yè)的運(yùn)作情況進(jìn)行仿真的優(yōu)化設(shè)計(jì),制定出最為合理的管理程序,以便實(shí)現(xiàn)企業(yè)的發(fā)展。其中主要包括三個(gè)方面的內(nèi)容,一是定制的模塊,二是具體流程的管理方式,三是工作流引擎,這三個(gè)方面是有機(jī)統(tǒng)一在整體中的。
基于J2EE架構(gòu)的工作流引擎的概述
工作流引擎在整個(gè)工作流程的管理系統(tǒng)中處于核心的位置上,類似于一個(gè)動(dòng)力機(jī)構(gòu),它不僅為工作流程的實(shí)施提供良好的運(yùn)行環(huán)境,還為系統(tǒng)資源的優(yōu)化配置提供必要的理論支持。工作引擎的運(yùn)行內(nèi)容主要有對(duì)流程圖的科學(xué)解釋、企業(yè)運(yùn)營資源的分配和邏輯方面的控制等。工作流引擎在系統(tǒng)的整個(gè)運(yùn)轉(zhuǎn)過程中起著重要的作用,主要包括以下兩個(gè)
方面:
第一點(diǎn)它是工作流程的狀態(tài)轉(zhuǎn)換機(jī),對(duì)工作流程的狀態(tài)進(jìn)行實(shí)時(shí)的調(diào)整與監(jiān)督,利用數(shù)據(jù)信息的驅(qū)動(dòng)可以達(dá)到控制與管理的目的。在工作流程中,分布著很多的邏輯單元,且每一個(gè)單元通常都表示著一個(gè)具體流程的邏輯控制能力。在這一過程中工作流引擎的最基本的工作內(nèi)容就是按照既定的規(guī)則控制好實(shí)例狀態(tài)信息之間的轉(zhuǎn)換。
第二點(diǎn)它通常是整個(gè)工作流程的路由控制器,每一個(gè)具體的流程在實(shí)際的應(yīng)用中都對(duì)應(yīng)著一條現(xiàn)實(shí)中進(jìn)行順利流轉(zhuǎn)的業(yè)務(wù)程序,信息傳輸?shù)倪^程中,實(shí)例的數(shù)據(jù)會(huì)對(duì)流程的傳輸路線帶來一定的影響力,傳輸?shù)姆较驎?huì)受到制約,因?yàn)樵诠ぷ髁鞒套畛跏褂玫臅r(shí)候,就已經(jīng)規(guī)定好了流程的運(yùn)轉(zhuǎn)順序,通常情況下,這些必要的規(guī)定都是在根據(jù)流程數(shù)據(jù)所制定的公式,而工作流程引擎的作用就是要對(duì)這些公式和相關(guān)的規(guī)則實(shí)施分析與設(shè)計(jì),進(jìn)而預(yù)測(cè)出工作流程下一步的運(yùn)轉(zhuǎn)方向。一般來說,工作流引擎的模型主要有三種形式,一是機(jī)構(gòu)模型,二是信息模型,三是控制模型,這三種模型在應(yīng)用的過程中有著各自的特色,要根據(jù)具體的情況來進(jìn)行選擇與
判斷。
1 基于J2EE架構(gòu)的工作流引擎的具體設(shè)計(jì)和實(shí)現(xiàn)
一般意義上的工作流就是對(duì)通常業(yè)務(wù)的處理,本質(zhì)上就是將相關(guān)的數(shù)據(jù)信息進(jìn)行分類處理,主要依據(jù)的就是上述的三種模型,在實(shí)際操作中,對(duì)數(shù)據(jù)的分析與劃分也主要是三類,第一類是控制數(shù)據(jù),第二類是相關(guān)數(shù)據(jù),第三類是業(yè)務(wù)數(shù)據(jù)。通常情況下,控制數(shù)據(jù)一般指通過工作流管理系統(tǒng)進(jìn)行控制的數(shù)據(jù),有時(shí)還包括基于工作流引擎的控制數(shù)據(jù)。該種數(shù)據(jù)在實(shí)際的操作中具有不可更改的特征,控制數(shù)據(jù)也代表了在工作流程中的過程實(shí)例與節(jié)點(diǎn)實(shí)例的特征,并能夠反映出工作項(xiàng)的具體狀態(tài)信息,對(duì)工作流程的進(jìn)行有著促進(jìn)作用。業(yè)務(wù)數(shù)據(jù)與控制數(shù)據(jù)有所不同,它是專門用在工作應(yīng)用系統(tǒng)中的,與工作流系統(tǒng)的關(guān)系不大,也不受工作流系統(tǒng)的支配,在使用中可以引用工作流流程的定義。工作流管理系統(tǒng)將各種數(shù)據(jù)進(jìn)行必要的整理后有效傳遞到最終的應(yīng)用環(huán)節(jié),從功能上可以分成兩種情況,一種是系統(tǒng)保留的相關(guān)數(shù)據(jù),另一種是用戶自定義的相關(guān)數(shù)據(jù)。
在工作流程的管理系統(tǒng)中,相關(guān)數(shù)據(jù)有著非常重要的作用,一是可以確定工作流程的運(yùn)作方向,二是可以設(shè)計(jì)流程中各個(gè)節(jié)點(diǎn)的屬性,將特殊的數(shù)據(jù)進(jìn)行標(biāo)注,應(yīng)用實(shí)例的屬性也是由它來確定的,三是可以為下一步的工作流程的設(shè)計(jì)提供有力的依據(jù),四是可以設(shè)置下一步的辦理人,五是可以為下一步的轉(zhuǎn)換提供有力的參考,如圖所示。
在應(yīng)用方面,相關(guān)數(shù)據(jù)可以為上下節(jié)點(diǎn)的溝通提供必要的渠道,例如可以傳遞文檔號(hào)等,在進(jìn)行定義的時(shí)候?qū)儆谶^程,在過程創(chuàng)建之后,相關(guān)的數(shù)據(jù)就被實(shí)例化了,應(yīng)用則能夠?qū)ο嚓P(guān)的數(shù)據(jù)進(jìn)行初始化的操作。在過程創(chuàng)建節(jié)點(diǎn)之時(shí)相關(guān)數(shù)據(jù)的副本將會(huì)被節(jié)點(diǎn)進(jìn)行存留,待過程處理之后會(huì)傳遞給下一個(gè)辦理步驟,這樣進(jìn)行著不間斷的循環(huán),其原本的功能與效用也在不斷地提高。在工作流的整個(gè)組成結(jié)構(gòu)中,實(shí)施動(dòng)態(tài)設(shè)置流程的實(shí)例屬性的方法有兩種,一種是利用管理的工具對(duì)實(shí)例屬性進(jìn)行必要的修改,另外一種是在系統(tǒng)中設(shè)置相關(guān)數(shù)據(jù)對(duì)已經(jīng)定義的屬性進(jìn)行再次的檢查與修正。
工作流引擎可以為工作流管理系統(tǒng)提供業(yè)務(wù)流程的實(shí)例,以及相應(yīng)的軟件服務(wù)工具,在整個(gè)工作流的系統(tǒng)中處于核心的位置上,在具體的應(yīng)用過程中起到的作用包括為工作流定制模型的實(shí)現(xiàn)進(jìn)行特性的分析與運(yùn)行實(shí)現(xiàn)期的預(yù)測(cè),保證流程定制模塊的的合理分配。另外還可以對(duì)工作流的概念做出比較合理的解釋,所以這樣有利于控制工作流程的實(shí)例的創(chuàng)建與實(shí)現(xiàn),并增強(qiáng)流程引擎的激活和掛起行為,控制有效的終止運(yùn)作。同時(shí)還可以對(duì)實(shí)例生存期的驅(qū)動(dòng)流程進(jìn)行必要的跟蹤和監(jiān)控以及督辦等,并對(duì)行為的過程進(jìn)行動(dòng)態(tài)的督辦和查詢等。此外還能夠確定工作項(xiàng),并及時(shí)為用戶反映相關(guān)的信息,維護(hù)各種數(shù)據(jù)的安全性,為工作流程的實(shí)例與節(jié)點(diǎn)的實(shí)例和工作項(xiàng)三者之間的相互轉(zhuǎn)化提供有力的依據(jù)。工作流引擎同時(shí)還可以支持各種分布式的工作流引擎,優(yōu)勢(shì)還支持多引擎的合作工作程序,可以利用消息分發(fā)器的特點(diǎn)對(duì)多種引擎實(shí)施負(fù)載均勻的分配措施,還可以為整個(gè)工作流系統(tǒng)提供比較完善的安全保障機(jī)制,系統(tǒng)可以利用在運(yùn)作過程中使用的數(shù)據(jù)包來進(jìn)行密碼的設(shè)置,從而可以為系統(tǒng)數(shù)據(jù)的安全性提供有力的保證。
工作流引擎的模塊設(shè)計(jì)首先體現(xiàn)在層次上的劃分,其次是邏輯功能上的劃分。從層次劃分角度來說,包括邏輯層和持久化層。持久化層主要的任務(wù)就是負(fù)責(zé)工作實(shí)體的持久化工作,內(nèi)容有科學(xué)合理創(chuàng)建、存取、刪除與更新對(duì)象實(shí)體的工作,這樣還可以有效防止邏輯層對(duì)基本數(shù)據(jù)信息的影響。從邏輯功能角度上來說,主要的任務(wù)有過程定義、實(shí)例、日志、消息以及其他輔助功能的分析與判斷,從而實(shí)現(xiàn)了工作流程的順利進(jìn)行,如圖所示:
工作流程的服務(wù)對(duì)象的設(shè)計(jì)主要包括的內(nèi)容有對(duì)過程的設(shè)計(jì)、節(jié)點(diǎn)的設(shè)計(jì)、工作項(xiàng)的設(shè)計(jì)以及其他輔助對(duì)象的設(shè)計(jì)等,對(duì)工作流引擎的邏輯分析與具體實(shí)現(xiàn)主要依靠的是就是對(duì)象的設(shè)計(jì)。在工作流程的設(shè)計(jì)與創(chuàng)建過程中,從靜止的狀態(tài)轉(zhuǎn)變?yōu)閯?dòng)態(tài)的過程需要經(jīng)過邏輯單元的定義以及過程節(jié)點(diǎn)的設(shè)計(jì)等環(huán)節(jié),最后流程可以成為流轉(zhuǎn)的形式的時(shí)候,則其流轉(zhuǎn)的具體路徑就在一定程度上決定著節(jié)點(diǎn)是否可以成為實(shí)例的狀態(tài)。
2 結(jié)語
綜上所述,工作流引擎的具體模塊設(shè)計(jì)與對(duì)象設(shè)計(jì)的過程中不僅要遵從具體的模塊的特點(diǎn),還要從整個(gè)系統(tǒng)的角度去考慮每一環(huán)節(jié)的設(shè)計(jì),以便達(dá)到最高效的工作效益。同時(shí)還要對(duì)工作流引擎中的經(jīng)常出現(xiàn)的問題進(jìn)行有效的處理,通常是要對(duì)異?,F(xiàn)象進(jìn)行有效的捕獲,所以一般會(huì)使用Java的編寫方式來進(jìn)行工作流程的編寫,同時(shí)還要對(duì)異常情況采用WEException來進(jìn)行具體的描述。
參考文獻(xiàn)
[1] 范延平,曾建鷹.基于J2EE架構(gòu)的工作流引擎的分析與設(shè)計(jì)[J].武漢大學(xué)學(xué)報(bào)(信息科學(xué)版),2005(12)。
[2] 吳朝暉.工作流管理技術(shù)[J].計(jì)算機(jī)世界,1999(18)。