基于SOA的工作流管理系統(tǒng)設(shè)計_第1頁
基于SOA的工作流管理系統(tǒng)設(shè)計_第2頁
基于SOA的工作流管理系統(tǒng)設(shè)計_第3頁
基于SOA的工作流管理系統(tǒng)設(shè)計_第4頁
基于SOA的工作流管理系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于SOA的工作流管理系統(tǒng)設(shè)計本文設(shè)計了基于SOA的工作流管理系統(tǒng)。首先,對SOA服務(wù)與工作流進行了整合,然后,設(shè)計了系統(tǒng)工作流引擎,通過工作流管理引擎調(diào)度Web服務(wù),實現(xiàn)了工作流的最優(yōu)化。開發(fā)的工作流管理系統(tǒng)應(yīng)用于某電力公司設(shè)備管理系統(tǒng),結(jié)果表明,該系統(tǒng)可以改善設(shè)備管理的內(nèi)外部流程,提高了工作效率。0 引言 工作流管理技術(shù)是一種正在快速發(fā)展的技術(shù),正在被越來越多的企業(yè)所應(yīng)用。企業(yè)的日?;顒又?,約有70%是屬于流程類活動,如訂單出貨流程、生產(chǎn)流程、企業(yè)內(nèi)各類申請表單、公文簽審、信息傳遞與簽收、公司各類支出與收付等。由于在Internet上開展電子商務(wù)的廉價與方便性,促進了企業(yè)之間的交流,擴大了

2、企業(yè)視野,在這種環(huán)境下,工作流管理系統(tǒng)就暴露出了很多不足之處:缺乏柔性,不能及時響應(yīng)變化和相互之間缺乏互操作等,這些顯然不能滿足現(xiàn)代企業(yè)業(yè)務(wù)流程管理的要求。 面向服務(wù)體系結(jié)構(gòu)(Service-Oriented Architecture,SOA)的出現(xiàn),為解決上述難題提供了契機。SOA是為解決在Internet環(huán)境下業(yè)務(wù)集成的需要,通過連接能完成特定任務(wù)的獨立功能實體實現(xiàn)的一種軟件架構(gòu)。把SOA加入到工作流系統(tǒng)中,可以很好地解決現(xiàn)有工作流管理系統(tǒng)的柔性缺乏、不能及時響應(yīng)變化和相互之間互操作性差等缺點,極大地提高了工作流系統(tǒng)的應(yīng)用范圍,促進工作流管理系統(tǒng)的發(fā)展。因此,研究并實現(xiàn)基于SOA的工作流管

3、理系統(tǒng)具有重要的現(xiàn)實意義和廣闊的應(yīng)用前景。文中設(shè)計開發(fā)的工作流管理系統(tǒng)應(yīng)用于某電力公司設(shè)備管理系統(tǒng),實際應(yīng)用表明,設(shè)計的工作流管理系統(tǒng)改善了電力公司的內(nèi)外部流程,提高了工作效率,達(dá)到了預(yù)期的效果。1 基于SOA的工作流系統(tǒng)設(shè)計 1.1 工作流系統(tǒng)結(jié)構(gòu)設(shè)計 設(shè)計的工作流系統(tǒng)結(jié)構(gòu)如圖1所示。點擊圖片查看大圖 圖1 工作流系統(tǒng)結(jié)構(gòu)示意圖 其中,流程定義存儲服務(wù)負(fù)責(zé)提供保存流程定義文件的服務(wù);流程實例存儲服務(wù)保存流程實例狀態(tài)數(shù)據(jù);工作流引擎服務(wù)負(fù)責(zé)從流程定義存儲服務(wù)處獲得流程定義,解釋后執(zhí)行,并通過流程實例存儲服務(wù)保存流程實例數(shù)據(jù),通過調(diào)用其它服務(wù)完成流程活動,與其它引擎服務(wù)協(xié)作可進行流程遷移或并行執(zhí)

4、行,用戶則通過用戶界面與工作流引擎進行交互。 在基于SOA的工作流管理系統(tǒng)中,工作流的使用不再限于它的位置,任務(wù)由服務(wù)完成。只要為服務(wù)定義標(biāo)準(zhǔn)接口,它們就能被任何依據(jù)標(biāo)準(zhǔn)的應(yīng)用訪問到。由于一個流程不再限制于工作流引擎的位置,流程能夠在任何地方設(shè)計、存儲和執(zhí)行。用戶能夠選擇分布在網(wǎng)絡(luò)環(huán)境中的任何可獲得的工作流引擎服務(wù)來開始執(zhí)行一個流程。在執(zhí)行過程中,可以在不同引擎服務(wù)間遷移來達(dá)到負(fù)載平衡,降低不同應(yīng)用和引擎服務(wù)間的通信費用,易于從錯誤中恢復(fù),甚至一個流程同時在多個引擎服務(wù)上執(zhí)行,以獲得更高的效率??梢?,基于SOA的工作流管理系統(tǒng)具有分布、高效、容錯、負(fù)載平衡等優(yōu)點,非常適應(yīng)復(fù)雜信息環(huán)境的需求。

5、1.2 系統(tǒng)模塊及接口設(shè)計 整個工作流系統(tǒng)由建模工具、客戶端、模型分析、工作流引擎、SOA服務(wù)管理模塊組成。建模工具用來進行工作流過程建模。模型建立后使用模型分析工具對模型進行完整性、約束、時間可行等方面的檢查,檢查后在數(shù)據(jù)庫中建立對應(yīng)記錄。工作流引擎將數(shù)據(jù)庫中的記錄實例化??蛻艨梢允褂脿顟B(tài)查詢某個實例的狀態(tài),并可以控制或修改相應(yīng)的流程。客戶使用瀏覽器作為客戶端,通過工作流引擎提供的功能完成對應(yīng)的功能。SOA服務(wù)管理可細(xì)分為Web服務(wù)管理和Web服務(wù)注冊。Web服務(wù)管理主要是將已有的Web服務(wù)組合,形成從工作流活動到Web服務(wù)的對應(yīng)關(guān)系,供客戶使用。Web服務(wù)注冊主要是對Web服務(wù)進行注冊,并

6、由Web服務(wù)管理模塊進行管理。 工作流聯(lián)盟(Workflow Management Coalition,WFMC)給出了5類接口,結(jié)合本系統(tǒng)的需要,將其5類接口細(xì)化為6類接口,如圖2所示。點擊圖片查看大圖 圖2 接口示意圖 (1)接口1:工作流服務(wù)和工作流建模工具。 (2)接口2:工作流服務(wù)和客戶應(yīng)用之間的接口,客戶端使用瀏覽器,而客戶應(yīng)用使用Web服務(wù)技術(shù),所以,可以使用Java提供的標(biāo)準(zhǔn)接口。 (3)接口3:工作流引擎和直接調(diào)用的應(yīng)用程序之間的接口,即Web服務(wù)與工作流引擎之間的接口。 (4)接口4:工作流管理系統(tǒng)之間的互操作接口,細(xì)化為對數(shù)據(jù)庫操作的事務(wù)。各模塊并不直接調(diào)用,使用對數(shù)據(jù)庫

7、的事務(wù)技術(shù)來進行互操作。 (5)接口5:工作流服務(wù)和工作流管理工具之間的接口,細(xì)化為狀態(tài)查詢與數(shù)據(jù)庫的實時讀操作。 (6)接口6:單個Web服務(wù)與Web服務(wù)管理系統(tǒng)之間的接口。 其中,接口1為在不同物理或電子介質(zhì)之間傳遞過程定義的信息提供了交互的形式和API調(diào)用;接口2定義了通信建立、工作流定義操作等功能;接口3激活應(yīng)用程序的API函數(shù)應(yīng)覆蓋的/zixun/cuxiao/幾個方面的功能;接口4通過提供大量完成工作流執(zhí)行服務(wù)之間需要的API來實現(xiàn)工作流引擎互操作,例如,2個工作流執(zhí)行服務(wù)之間的直接調(diào)用或者通過網(wǎng)關(guān)函數(shù);接口5主要實現(xiàn)對工作流的管理

8、和監(jiān)視;接口6實現(xiàn)工作流活動自身的管理,實現(xiàn)業(yè)務(wù)重組之類的功能。2 SOA服務(wù)與工作流的整合 企業(yè)內(nèi)部所有應(yīng)用功能都是以Web服務(wù)的方式提供的,方便用戶需求改變時的業(yè)務(wù)重組。同時,工作流引擎在進行調(diào)度的時候,采用(Simple Object Access Protocol,SOAP)協(xié)議來實現(xiàn)工作流引擎和Web服務(wù)之間的交互。在Web服務(wù)與工作流之間交互時通過Web服務(wù)管理器,做到邏輯上的獨立性。為此,發(fā)布Web服務(wù)時使用標(biāo)準(zhǔn)的Web服務(wù)描述語言(WSDL),同時,采用SOAP代理來實現(xiàn)SOAP消息的生成和傳送。整合的整個系統(tǒng)架構(gòu)如圖3所示。點擊圖片查看大圖 圖3 SOA與工作流整合系統(tǒng)架構(gòu)示

9、意圖 系統(tǒng)的工作原理及流程可以從3個方面來描述: 首先是服務(wù)定義階段,在該階段,根據(jù)功能需求分析對應(yīng)Web服務(wù),使用WSDL來定義。WSDL和SOAP一起構(gòu)成了Web服務(wù)的核心結(jié)構(gòu)單元。WSDL基于XML格式,用來描述Web服務(wù)。它描述了Web服務(wù)可以執(zhí)行的操作以及Web服務(wù)可以發(fā)送或接收的消息格式。WSDL文檔可以看成是客戶端和服務(wù)器之間的一個協(xié)約。使用WSDL工具可以自動處理這個過程,幾乎不用手工編寫代碼就能夠讓應(yīng)用程序整合新的服務(wù)。因此,WSDL是Web服務(wù)體系結(jié)構(gòu)的基礎(chǔ),因為它提供了一個通用語言,用來描述服務(wù)和整合這些服務(wù)的平臺。由于WSDL文件能夠?qū)肫渌腤SDL文件,因此,總有可

10、能發(fā)生名字沖突的時候。所以,最后注冊的WSDL文件需要在它們的部分里面定義targetNamespace和xml:tns的屬性,在那里targetNamespace被設(shè)成對應(yīng)于特定的WSDL(通常是原始的WSDL文件的名稱)的一個唯一URL。完成此功能的WSDL生成器利用TNS對不同模塊之間的引用做范圍界定,防止相同名字沖突。使用標(biāo)準(zhǔn)WSDL工具可以指定發(fā)布的Web服務(wù)名、該服務(wù)提供的操作名等Web服務(wù)的屬性,工具根據(jù)這些設(shè)置,自動生成WSDL文檔。將這些生成的WSDL文檔放在WSDL數(shù)據(jù)庫中,數(shù)據(jù)庫可以使用新型的XML數(shù)據(jù)庫,也可以使用傳統(tǒng)的關(guān)系數(shù)據(jù)庫。此外,將所有的功能模塊放入SOAP服務(wù)

11、器(具有SOAP通信功能的Web Services器,如Apache SOAP 2.0)中,供工作流引擎在執(zhí)行過程中調(diào)用。 其次是流程定制階段,在工作流定制的過程中可使用流程定制工具,它提供了友好、簡單的圖形化界面,以支持拖放的方式實現(xiàn)工作流定制。一個流程是由許多的活動組成,每個活動表示一個要執(zhí)行的功能,該功能的執(zhí)行者就叫做參與者。一個參與者有2個可能的選項:Web服務(wù)和角色。如果是Web服務(wù),用戶選擇企業(yè)WSDL數(shù)據(jù)庫中的某一Web服務(wù);如果是角色,僅僅需要指定角色的名字。或者同時指定服務(wù)與角色。一個典型的Participant元素的定義如下:點擊圖片查看大圖 最后是流程執(zhí)行階段,當(dāng)執(zhí)行到某

12、個活動需要請求Web服務(wù)時,工作流引擎發(fā)送服務(wù)請求信息,如Web服務(wù)的名字,給Web服務(wù)管理器,管理器通過讀取并解析在流程數(shù)據(jù)庫中存儲的工作流描述文檔(WSDL),可以得到包括Web服務(wù)名稱、操作名稱、操作所需的入口參數(shù)等信息。將這些信息傳給SOAP代理,由SOAP代理執(zhí)行SOAP調(diào)用。3 基于SOA的工作流管理系統(tǒng)EleFlow的實現(xiàn) 3.1 工作流引擎設(shè)計 工作流引擎作為工作流管理系統(tǒng)的核心部分,提供對系統(tǒng)有決定作用的根據(jù)角色、分工和條件的不同決定信息傳遞路由、內(nèi)容等級等核心解決方案。如果一個工作流系統(tǒng)缺乏功能強大的引擎,勢必變得容易出錯。在前面設(shè)計的基礎(chǔ)上,對系統(tǒng)工作流引擎與系統(tǒng)的具體實

13、現(xiàn)進行了設(shè)計。該引擎可以劃分為幾個模塊,這些模塊涵蓋了引擎的使用、配置、流程定義、查詢和運行時等方面內(nèi)容,通過這些模塊可以對整個系統(tǒng)進行調(diào)度和資源協(xié)調(diào)。其中,包括對工作流引擎核心模塊、工作流引擎配置模塊、工作流引擎定義模塊、工作流引擎異常處理模塊、工作流引擎的數(shù)據(jù)庫結(jié)構(gòu)進行了設(shè)計。 WorkflowModule模塊是引擎的核心,用戶與工作流系統(tǒng)的大部分交互內(nèi)容都在這部分模塊內(nèi)實現(xiàn),它定義了最常用的接口、類和異常。Workflow接口是一個最基本的接口,通過與它交互,用戶幾乎可以完全使用EleFlow的功能,包括工作流調(diào)度和查詢、工作流定義管理和設(shè)置工作流配置信息等。ConfigModule模塊

14、是工作流引擎配置模塊,與EleFlow的配置相關(guān),定義了一個類DefaultConfiguration,這個類實現(xiàn)了Configuration接口。LoaderModule模塊是工作流引擎定義模塊,與工作流定義密切相關(guān),包含了與工作流定義中對應(yīng)元素的實現(xiàn)類,如果在工作流引擎運行時需要了解指定的動作、步驟的狀態(tài)、名字等信息時,這些元素的描述會起到很大作用。ExceptionModule模塊負(fù)責(zé)處理工作流引擎的異常。工作流的錯誤包含兩種錯誤:一是流程錯誤,如活動的執(zhí)行者不存在,活動的應(yīng)用程序定義錯誤等;二是系統(tǒng)的錯誤,如網(wǎng)絡(luò)不通,數(shù)據(jù)庫系統(tǒng)異常。對于工作流引擎控制器來說,前類異常屬于無法處理的錯誤

15、,只能通知錯誤的存在;后者是工作流引擎控制器可以處理的錯誤,工作流引擎控制器可以進行容錯處理,例如:在數(shù)據(jù)庫恢復(fù)后自動重新建立連接。執(zhí)行機對可能出現(xiàn)的錯誤進行編碼,并附有對應(yīng)的描述信息。工作流引擎所使用的數(shù)據(jù)表主要是用來存儲引擎調(diào)用時所需的數(shù)據(jù),包括當(dāng)前步驟數(shù)據(jù)和歷史步驟數(shù)據(jù)。 3.2 系統(tǒng)與外部應(yīng)用交互的實現(xiàn) 在EleFlow中,函數(shù)function是用來定義(引用)并執(zhí)行外部的商業(yè)邏輯和服務(wù),實現(xiàn)EleFlow與外部具體的應(yīng)用之間交互。當(dāng)系統(tǒng)有額外的需求和功能,例如處理“角色”、“任務(wù)分配”、“提交任務(wù)”等諸如此類的操作,就擴展function接口。點擊圖片查看大圖 所有的function

16、實現(xiàn)類都必須實現(xiàn)這個FunctionProvider接口中execute方法,而且能夠處理的信息也全部來自這個方法中的3個參數(shù): (1)transientVars:最為核心的參數(shù),記錄非常重要的一些對象,比如WorkflowContext,WorkflowEntry,輸入?yún)?shù)等。 (2)args:存儲了流程定義里的參數(shù),如00l。 (3)ps:PropertySet對象,記錄了流程實例所需要保存的數(shù)據(jù),可以理解成EleFlow所描述的流程相關(guān)數(shù)據(jù)。 3.3 系統(tǒng)的訪問控制實現(xiàn) 工作流管理系統(tǒng)對安全性要求較高,為了達(dá)到要求,必須做到充分的安全控制。訪問控制的目的是保護信息資源不被未授權(quán)用戶瀏覽或

17、修改,從而實現(xiàn)數(shù)據(jù)的保密性和完整性。因此,訪問控制技術(shù)對解決工作流系統(tǒng)安全問題起著非常重要的作用。為了實現(xiàn)這一目標(biāo),工作流系統(tǒng)訪問控制機制應(yīng)當(dāng)能夠滿足兩方面的需求:一是用戶選擇,即能夠在一個活動實例被激活后選擇合適的用戶來完成;二是實現(xiàn)活動實例與用戶權(quán)限的同步,當(dāng)一個用戶試圖完成工作列表中的某項工作時,能夠判斷該用戶是否為合法用戶,為合法用戶分配必要的權(quán)限,并在工作完成后收回分配的權(quán)限。 3.4 實際應(yīng)用 下面是基于以上方法設(shè)計的某電力公司設(shè)備管理系統(tǒng),具體設(shè)計與實現(xiàn)如下。 3.4.1 任務(wù)數(shù)據(jù)錄入 數(shù)據(jù)錄入界面如圖4所示。點擊圖片查看大圖 圖4 設(shè)備申請錄入界面 該

18、頁面主要錄入設(shè)備申請的相關(guān)信息,后臺程序操作如下: (1)創(chuàng)建一個Workflow對象。 BasicWorkflow workflow=new BasicWorkflow(caller); (2)準(zhǔn)備工作流相關(guān)參數(shù)。 Map args=new HashMap(); args.put(owner,caller); (3)實例化一個工作流。 long id=workflow.initialize(applyequipment,0,args); (4)處理業(yè)務(wù)數(shù)據(jù)(spring實現(xiàn))。點擊圖片查看大圖點擊圖片查看大圖 (5)工作流狀態(tài)改變。 workflow.doAction(id,001,args); 3.4.2 獲取工作流列表 設(shè)備審批過程應(yīng)根據(jù)登錄用戶的角色不同而顯示不同的數(shù)據(jù),如圖5所示。點擊圖片查看大圖 圖5 流程審批界面 當(dāng)部門管理用產(chǎn)登錄的時候無法看到設(shè)備管理用戶的數(shù)據(jù)。 在后臺程序

溫馨提示

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

最新文檔

評論

0/150

提交評論