基于J2EE的柔性工作流引擎的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
基于J2EE的柔性工作流引擎的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
基于J2EE的柔性工作流引擎的設(shè)計(jì)與實(shí)現(xiàn)_第3頁
基于J2EE的柔性工作流引擎的設(shè)計(jì)與實(shí)現(xiàn)_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于J2EE的柔性工作流引擎的設(shè)計(jì)與實(shí)現(xiàn) 摘要 工作流的柔性問題日益成為研究的熱點(diǎn),本文在分析工作流和分布式計(jì)算技術(shù)J2EE的基礎(chǔ)上,給出一個(gè)基于J2EE的柔性工作流引擎的設(shè)計(jì)方案及其關(guān)鍵部分的實(shí)現(xiàn)技術(shù)。關(guān)鍵詞 工作流引擎,柔性,J2EE1 引言在一個(gè)企業(yè)或部門的日?;顒?dòng)中,70以上屬于流程類的活動(dòng),如生產(chǎn)流程,各類申請(qǐng)表單,訂單出貨,公務(wù)簽審等,不難得出這樣的結(jié)論,如果要提高企業(yè)效率,就必須通過一定的技術(shù)手段將這些流程自動(dòng)化,并對(duì)其進(jìn)行有效的管理,使之協(xié)調(diào)工作,這就必須使用工作流的有關(guān)技術(shù)。工作流指整個(gè)或部分經(jīng)營(yíng)過程在計(jì)算機(jī)支持下,實(shí)現(xiàn)全自動(dòng)或半自動(dòng)化,因此可以看出工作流技術(shù)為企業(yè)更好的提高

2、辦事效率,提高生產(chǎn)成本,提高企業(yè)的競(jìng)爭(zhēng)力提供了先進(jìn)的技術(shù)手段。目前的工作流的運(yùn)行模式比較適合流程的執(zhí)行邏輯事先可以確定的情況,而在企業(yè)中存在著大量的執(zhí)行邏輯無法事先確定的半結(jié)構(gòu)化和非結(jié)構(gòu)化的流程過程,這種集中式的定義方式和執(zhí)行過程就成為一種低效的過程。這種靜態(tài)模型定義的方式,使得工作流系統(tǒng)不能靈活地根據(jù)實(shí)際情況進(jìn)行工作流邏輯的更改,不能適應(yīng)企業(yè)經(jīng)營(yíng)過程的變化,不能響應(yīng)市場(chǎng)敏捷性的要求,因此實(shí)現(xiàn)工作流引擎的柔性是至關(guān)重要的。本文將介紹一種基于J2EE的柔性工作流引擎的設(shè)計(jì)與實(shí)現(xiàn)技術(shù)。2 工作流參考模型工作流管理聯(lián)盟(WfMC)給出的工作流參考模型如圖1所示。圖1工作流參考模型1) Work Fl

3、ow Enactment Service工作流執(zhí)行服務(wù):由一個(gè)或多個(gè)工作流引擎組成,為工作流實(shí)例提供運(yùn)行時(shí)期的執(zhí)行環(huán)境的軟件服務(wù)器。2)Process Definition Tool過程定義工具:用圖形化的方式定義工作流、構(gòu)造工作流模型,通過接口1與引擎通信。3)Work Flow Client Application 工作流的客戶應(yīng)用:由用戶結(jié)合業(yè)務(wù)需求而開發(fā),用它來驅(qū)動(dòng)工作流??蛻舳顺绦蛲ㄟ^接口2與引擎交互。一般的工作流引擎用戶不需要懂引擎的實(shí)現(xiàn),只要知道怎么實(shí)現(xiàn)客戶端程序就可以了。4)Invoked Applications工作流直接調(diào)用的應(yīng)用:在工作流運(yùn)作的過程中,可能需要調(diào)用工作流引

4、擎之外的功能,這時(shí)可通過定義好的接口3來完成。5)Other Work Flow Enactment Service其它工作流執(zhí)行服務(wù):接口4用于工作流引擎與其他工作流引擎的協(xié)作。6)Administration and Monitoring Tools工作流管理工具:接口5用于管理和監(jiān)視工作流引擎。3 J2EE技術(shù)J2EE(Java2 Enterprise Edition)是SUN公司把企業(yè)用戶、廠商及技術(shù)專家聚集到JCP(Java Community Process),開發(fā)的企業(yè)級(jí)Java API標(biāo)準(zhǔn),是一種利用Java 2平臺(tái)來簡(jiǎn)化企業(yè)解決方案的開發(fā)、部署和管理等復(fù)雜問題的體系結(jié)構(gòu),屬于

5、分布式計(jì)算平臺(tái)的一種。其不僅鞏固了標(biāo)準(zhǔn)版中的許多優(yōu)點(diǎn),如“Write Once,Run Anywhere”的特性、方便存取數(shù)據(jù)庫的JDBC API以及能夠在Internet應(yīng)用中保護(hù)數(shù)據(jù)的安全模式等,同時(shí)還提供了對(duì) EJB(Enterprise JavaBeans)、Servlets、JSP(Java Server Pages)以及XML技術(shù)的全面支持。同目前流行的其它分布式計(jì)算平臺(tái)比較,J2EE在可重用性、安全服務(wù)、跨平臺(tái)性性能、事務(wù)處理能力、組件間的通信等性能上均占有優(yōu)勢(shì)。我們?cè)O(shè)計(jì)引擎所用到的核心技術(shù)有:3.1 EJB (Enterprise JavaBean)是一種服務(wù)器端組件體系結(jié)構(gòu),

6、簡(jiǎn)化了Java企業(yè)級(jí)開發(fā)的分布式組件應(yīng)用程序的過程。按EJB3.0規(guī)范,分為三類,會(huì)話Bean (Session Bean):模擬商務(wù)過程和執(zhí)行動(dòng)作,實(shí)現(xiàn)SessionBean接口。實(shí)體Bean(Entity Bean):模擬商務(wù)數(shù)據(jù),代表持久狀態(tài)的Java對(duì)象,用于持久化數(shù)據(jù),包含核心商務(wù)數(shù)據(jù),實(shí)現(xiàn)EntityBean接口。一個(gè)實(shí)體Bean操作數(shù)據(jù)庫中的一個(gè)實(shí)體(即數(shù)據(jù)庫中的一個(gè)表),封裝與數(shù)據(jù)庫相關(guān)的操作,用于提供數(shù)據(jù)庫中的數(shù)據(jù)記錄在EJB服務(wù)器中的對(duì)象類型視圖。消息驅(qū)動(dòng)Bean,與會(huì)話Bean類似,代表動(dòng)作,是Java消息服務(wù)(JMS)和EJB的一個(gè)有用組合,是無狀態(tài)的,由容器在消息到達(dá)

7、時(shí)調(diào)用。3.2 Java RMI(Remote Method Invoke)遠(yuǎn)程方法調(diào)用,是實(shí)現(xiàn)Java對(duì)象間的遠(yuǎn)程通信。服務(wù)器用注冊(cè)器把一個(gè)名字和遠(yuǎn)程對(duì)象綁在一起,客戶機(jī)通過名字從服務(wù)器注冊(cè)器上查找遠(yuǎn)程對(duì)象,找到后下載遠(yuǎn)程對(duì)象的本地代理,調(diào)用遠(yuǎn)程對(duì)象的方法。3.3 JNDI(Java Naming and Directory Interface)Java命名和目錄接口,為分布式系統(tǒng)訪問遠(yuǎn)程對(duì)象提供了一個(gè)標(biāo)準(zhǔn)的命名接口。EJB主接口對(duì)象、數(shù)據(jù)源、消息服務(wù)器等都可以用JDNI樹的形式注冊(cè)到名稱服務(wù)器中,調(diào)用它們的對(duì)象通過符合JDNI的程序接口在JNDI名稱服務(wù)器中查找指定名稱的遠(yuǎn)程對(duì)象。3.4

8、JMS(Java Message Service)Java消息服務(wù),為開發(fā)消息中間件應(yīng)用程序定義了一套規(guī)范,Java客戶端和Java中間層訪問消息系統(tǒng)只要實(shí)現(xiàn)JMS定義的簡(jiǎn)單的接口,就可以實(shí)現(xiàn)復(fù)雜的應(yīng)用,而不必去關(guān)注低級(jí)的技術(shù)細(xì)節(jié)。4 柔性工作流引擎的體系結(jié)構(gòu)4.1 工作流引擎是工作流系統(tǒng)中樞,實(shí)現(xiàn)工作流模型解釋識(shí)別并轉(zhuǎn)換為自定義模型,為工作流實(shí)例提供運(yùn)行時(shí)的執(zhí)行環(huán)境,包括實(shí)例的創(chuàng)建,激活,掛起,終止,并按定義流程和數(shù)據(jù)信息導(dǎo)航推進(jìn)實(shí)例。因此,工作流引擎設(shè)計(jì)的好壞直接關(guān)系到工作流的執(zhí)行效率與可擴(kuò)展性,進(jìn)而影響到工作流系統(tǒng)的柔性以至企業(yè)的辦事效率及在市場(chǎng)中的競(jìng)爭(zhēng)力。其功能包括:解釋過程定義;控制

9、過程實(shí)例的創(chuàng)建、激活、掛起、終止;為過程的活動(dòng)導(dǎo)航,一般包含順序或平行的操作、最后時(shí)間期限、對(duì)工作流相關(guān)數(shù)據(jù)進(jìn)行解釋;參與者簽名和退出;確定任務(wù)項(xiàng)目,實(shí)現(xiàn)用戶意圖,提供接口,支持用戶交互;維護(hù)工作流控制和工作流相關(guān)數(shù)據(jù),在應(yīng)用程序間或用戶間傳遞工作流相關(guān)數(shù)據(jù);提供調(diào)用外部程序的接口,連接所有工作流相關(guān)數(shù)據(jù);提供控制、管理和審查功能。4.2 柔性是指在工作流程不中斷執(zhí)行的情況下可以改變其執(zhí)行路徑、有適應(yīng)能力。柔性可以分為兩種:選擇柔性,是在工作流建模階段對(duì)可預(yù)見的情形進(jìn)行說明定義,從而給用戶提供一定的自由度,工作流有許多可以替代的有效途徑,每一條途徑都是正確的,只是不同的情況下執(zhí)行的途徑不同;適

10、應(yīng)柔性,是在工作流執(zhí)行期間允許用戶對(duì)工作流程進(jìn)行各種適應(yīng)性的調(diào)整或更改,是工作流引擎可以根據(jù)具體情況靈活地改變其途徑,動(dòng)態(tài)指定流程流向,臨時(shí)決定任務(wù)執(zhí)行者等。其中適應(yīng)柔性根據(jù)對(duì)工作流產(chǎn)生影響的時(shí)間的不同,又可以分為模型調(diào)整和實(shí)例調(diào)整兩類:模型調(diào)整指對(duì)工作流的修改不影響當(dāng)前運(yùn)行的流程,除非整個(gè)流程從頭開始重新運(yùn)行;而實(shí)例調(diào)整則意味著對(duì)工作流的修改,即時(shí)生效,其要求動(dòng)態(tài)改變運(yùn)行中的工作流。4.3 柔性工作流引擎的結(jié)構(gòu)采用分層技術(shù)實(shí)現(xiàn),在J2EE組件開發(fā)中,按功能可分為四層。第一層是用戶接口層。實(shí)現(xiàn)工作流引擎與用戶交互功能,如用戶登陸驗(yàn)證,任務(wù)列表查詢,過程實(shí)例創(chuàng)建及實(shí)例狀態(tài)監(jiān)控等,只提供引擎與外部

11、交互能力,需要的數(shù)據(jù)從引擎的第三層和第四層獲得,是用戶調(diào)用工作流引擎的外部接口。第二層是動(dòng)態(tài)控制層。工作流系統(tǒng)的柔性主要體現(xiàn)在這層:(1)實(shí)現(xiàn)在系統(tǒng)的運(yùn)行是有權(quán)限的用戶可以根據(jù)需要修改或補(bǔ)充定義原來工作流的模型;(2) 有權(quán)限的用戶在工作流執(zhí)行中可以動(dòng)態(tài)修改工作流實(shí)例數(shù)據(jù),動(dòng)態(tài)指定工作流的流向,臨時(shí)指定任務(wù)執(zhí)行者或設(shè)置任務(wù)的完成時(shí)間等各種屬性,并負(fù)責(zé)將信息傳遞到第四層。第三層是過程實(shí)例層。用于描述工作流實(shí)例信息,提供工作流實(shí)例運(yùn)行態(tài)的信息,如當(dāng)前實(shí)例運(yùn)行狀態(tài),活動(dòng)的完成情況等。該層信息具有實(shí)時(shí)性,只涉及到與過程實(shí)例相關(guān)數(shù)據(jù),沒有涉及到工作流過程定義數(shù)據(jù),當(dāng)需要由實(shí)時(shí)信息實(shí)現(xiàn)過程實(shí)例推進(jìn)時(shí),調(diào)用

12、下層過程定義邏輯導(dǎo)航實(shí)例運(yùn)行。第四層是模型層。該層的主要功能(1) 描述引擎內(nèi)部自定義工作流的模型和工作流過程定義用到的組件,能夠識(shí)別外部過程定義,并且根據(jù)內(nèi)部活動(dòng)間邏輯驅(qū)動(dòng)關(guān)系實(shí)現(xiàn)對(duì)工作流實(shí)例運(yùn)行控制,同時(shí)根據(jù)過程運(yùn)行中的實(shí)時(shí)參數(shù)推進(jìn)過程執(zhí)行;(2) 接受第二層傳遞過來的數(shù)據(jù),并對(duì)工作流模型進(jìn)行相應(yīng)的修改,并且對(duì)第三層的工作流實(shí)例信息進(jìn)行相應(yīng)的更新。該層是四層結(jié)構(gòu)的核心部分。5 關(guān)鍵部分的實(shí)現(xiàn)技術(shù)5.1 工作流過程定義接口2002年WfMC提出的新接口描述規(guī)范XPDL(XML Process Definition Language ),工作流引擎采用 JAXB(Java Architectu

13、re for XML Binding )技術(shù)處理Schema, 識(shí)別出這個(gè)Schema,處理符合XPDL規(guī)范的模型描述文件,由于XML標(biāo)準(zhǔn)為高度可移植性和可重用文檔中的各種數(shù)據(jù)提供了標(biāo)準(zhǔn)的描述機(jī)制,使得數(shù)據(jù)更易于移植到任何計(jì)算機(jī)或軟件包,只要企業(yè)的工作流系統(tǒng)能夠解析XML文檔,將其中的元素轉(zhuǎn)換成自己的工作流流程模型,就能達(dá)到不同企業(yè)工作流系統(tǒng)共享工作流信息和協(xié)同工作,因此這里把XML作為模型描述語言,用XML schema 定義和描述XML模型文檔結(jié)構(gòu)和內(nèi)容模式。5.2 用戶接口層采用Model-View-Controller(MVC)模式,在該模式中Servlet充當(dāng)Controller角色

14、,負(fù)責(zé)處理請(qǐng)求與頁面流轉(zhuǎn),JSP充當(dāng)View角色,它是數(shù)據(jù)表現(xiàn)層,生成用戶顯示界面. 這部分主要是響應(yīng)Servlet功能調(diào)用,實(shí)現(xiàn)特定業(yè)務(wù)功能由工作流引擎通過JMS技術(shù)調(diào)用相應(yīng)的EJB組件完成。5.3 企業(yè)遺留系統(tǒng)接口實(shí)現(xiàn)通過RMI技術(shù)工作流引擎與企業(yè)遺留系統(tǒng)通信,使企業(yè)遺留系統(tǒng)成為工作流引擎可管理的對(duì)象,供工作流引擎調(diào)用,提高了工作流系統(tǒng)的可擴(kuò)展性和系統(tǒng)的柔性。 5.4 數(shù)據(jù)庫接口實(shí)現(xiàn)在與數(shù)據(jù)庫通信時(shí)采用連接池技術(shù)、用JNDI獲得數(shù)據(jù)源并通過DataSource連接工廠與數(shù)據(jù)庫連接,可以提高工作流引擎訪問數(shù)據(jù)庫的效率、操作的靈活性且增強(qiáng)安全性。Oracle 數(shù)據(jù)庫本身就具有事務(wù)處理能力,而且

15、安全性健壯性能良好,在一定程度上保證了整個(gè)系統(tǒng)的數(shù)據(jù)安全性和一致性. 因此這里采用數(shù)據(jù)庫ORACLE9i,管理工作流相關(guān)數(shù)據(jù)。6 結(jié)束語通過采用J2EE,XML,ORACLE數(shù)據(jù)庫技術(shù),設(shè)計(jì)并實(shí)現(xiàn)了柔性工作流引擎,使得工作流管理系統(tǒng)在執(zhí)行階段的可以動(dòng)態(tài)的修改,提高了工作流管理系統(tǒng)在企業(yè)應(yīng)用中的自適用性,并且應(yīng)用到PDM(Product Data Management)系統(tǒng)中,使得整個(gè)PDM系統(tǒng)在工作流的驅(qū)動(dòng)下,各個(gè)功能模塊,如文檔管理,產(chǎn)品結(jié)構(gòu)和配置,項(xiàng)目管理,形成一個(gè)相互協(xié)作的有機(jī)的整體,從而增強(qiáng)了企業(yè)的應(yīng)變能力,提高了企業(yè)的工作效率和競(jìng)爭(zhēng)力。但在工作流對(duì)于長(zhǎng)事務(wù)處理能力以及復(fù)雜的子流程方面需進(jìn)一步研究。參考文獻(xiàn):1 WfMC. Workflow Management Coalition Specification: Terminology & Glossary. Document Number WFMC-TC-1011, Brussels, 19962 Petra H,Stefan H,Stefan J,Jens N,Katrin S,Michael T. A comprehensive approach to flexibility in workflow management systemsJ.In: Softw

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論