專利名稱:BPM中業(yè)務(wù)流程動態(tài)生成Web Service的系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機(jī)應(yīng)用領(lǐng)域,特別涉及關(guān)于業(yè)務(wù)流程管理的體系結(jié)構(gòu)(BPM)的計算機(jī)應(yīng)用技術(shù)領(lǐng)域,具體是指一種企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成ffeb Service的系統(tǒng)及方法。
背景技術(shù):
在企業(yè)級應(yīng)用開發(fā)領(lǐng)域,隨著應(yīng)用規(guī)模的不斷擴(kuò)大,各個系統(tǒng)之間的集成和交互變得越來越頻繁,要實現(xiàn)一個特定的功能,需要與多個系統(tǒng)進(jìn)行通信,通過各系統(tǒng)之間的協(xié)作來完成。目前主流的軟件項目的架構(gòu)類似“豎井”,在這個“豎井”中有數(shù)據(jù)庫,中間層、客戶端表現(xiàn)層等。各個應(yīng)用系統(tǒng)的數(shù)據(jù)分屬在不同的豎井中,當(dāng)我們的信息化發(fā)展到一定程度,已開發(fā)和上線運(yùn)行的系統(tǒng)需要整合或?qū)崿F(xiàn)數(shù)據(jù)共享時,我們不得不通過在“豎井”中“穿洞”來訪問數(shù)據(jù)。一旦一個數(shù)據(jù)對象發(fā)生了變化,對其他系統(tǒng)的影響就將變得“不可知”和 “不可控”了。業(yè)務(wù)流程管理(Business Process Management, BPM)軟件系統(tǒng),是解決現(xiàn)有軟件系統(tǒng)結(jié)構(gòu)弊端的一種有效手段。業(yè)務(wù)流程是通過梳理和編排業(yè)務(wù)活動。BPM軟件系統(tǒng)是由之前的以功能和數(shù)據(jù)為中心轉(zhuǎn)變?yōu)橐詷I(yè)務(wù)流程為中心,通過業(yè)務(wù)流程的運(yùn)行來驅(qū)動業(yè)務(wù)的發(fā)展,通過業(yè)務(wù)流程來整合不同業(yè)務(wù)部門之間的業(yè)務(wù)交互,提升整個企業(yè)的效率。業(yè)務(wù)流程在BPM軟件系統(tǒng)中處于核心地位。傳統(tǒng)實施BPM方法里面包含業(yè)務(wù)流程建模、業(yè)務(wù)流程分析、業(yè)務(wù)流程設(shè)計、業(yè)務(wù)流程執(zhí)行、業(yè)務(wù)流程監(jiān)控、業(yè)務(wù)流程優(yōu)化等步驟。 但是隨著企業(yè)規(guī)模的發(fā)展以及自身業(yè)務(wù)模式的轉(zhuǎn)變,要求BPM系統(tǒng)能夠快速響應(yīng)業(yè)務(wù)的變化,要求BPM系統(tǒng)具有集成能力和敏捷變化能力。具體就是從兩個維度擴(kuò)展,第一是業(yè)務(wù)流程要求能夠以Web Service的方式與其他業(yè)務(wù)系統(tǒng)集成,例如能夠與SAP的庫存管理系統(tǒng)、 IBM Lotus系統(tǒng)集成;第二就是業(yè)務(wù)流程的動態(tài)優(yōu)化和調(diào)整能力,企業(yè)業(yè)務(wù)流程時刻會面臨變化,例如金融業(yè)對利率、存款準(zhǔn)備金等指標(biāo)的敏感性,業(yè)務(wù)分析人員要求在最短時間內(nèi)對業(yè)務(wù)流程調(diào)整來滿足業(yè)務(wù)的變化。針對第一種情況,通常采用的方法是對BPM系統(tǒng)進(jìn)行二次開發(fā),對BPM系統(tǒng)中的業(yè)務(wù)流程進(jìn)行封裝,引入第三方的Web Service組件,例如內(nèi)嵌一個Axis2等開源框架,通過封裝業(yè)務(wù)流程操作接口,自定義一組接口對象,借助Axis2發(fā)布為ffeb Service。但是由于集成標(biāo)準(zhǔn)的不同,甚至不同業(yè)務(wù)系統(tǒng)集成模式的區(qū)別,不同BPM系統(tǒng)經(jīng)過實施之后可能出現(xiàn)服務(wù)不一致的現(xiàn)象,例如服務(wù)接口的數(shù)據(jù)不一致,訪問安全性控制不一致等,造成服務(wù)不可用的現(xiàn)象。針對第二種情況,BPM在發(fā)展過程中經(jīng)歷過Workflow,Human Task, Business Form 等,通過把一些需要調(diào)整的指標(biāo)在業(yè)務(wù)流程分析階段定義為人工任務(wù),借助人力的方式來控制業(yè)務(wù)流程的運(yùn)行;還有通過業(yè)務(wù)流程模板里面嵌入動態(tài)腳步語言的方式,借助程序執(zhí)行腳本語言的能力來提高流程靈活性。但是每一種方式都有局限性,例如借助人力的方式對人員的要求非常高,在業(yè)務(wù)系統(tǒng)運(yùn)行過程中非常復(fù)雜,經(jīng)常面臨錯誤回退、改派等,增大
6了系統(tǒng)的復(fù)雜度,而采用動態(tài)腳本語言的方式對業(yè)務(wù)人員無法理解,而且對于軟件開發(fā)人員也很難調(diào)試等。從軟件組件的角度來看,這種方案對業(yè)務(wù)流程的程序代碼的耦合度非常
尚ο隨著系統(tǒng)的不斷擴(kuò)大,BPM系統(tǒng)中的業(yè)務(wù)流程越來越多,以及業(yè)務(wù)流程之間的集成也越來越多。如果選擇對人員要求非常高以及軟件模塊耦合性高的解決方案,這無論對于業(yè)務(wù)分析人員還是軟件開發(fā)測試人員都將是一個災(zāi)難。在BPM日益需要服務(wù)集成的今天, 如何在BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Wfeb Service變得非常緊迫。
發(fā)明內(nèi)容
本發(fā)明的目的是克服了上述現(xiàn)有技術(shù)中的缺點,提供一種能夠在BPM系統(tǒng)中通過編排業(yè)務(wù)流程之后系統(tǒng)自動根據(jù)服務(wù)接口定義生成Web krvice,并且具有災(zāi)難恢復(fù)、安全控制、簡單明確、無須編碼、服務(wù)接口一致、系統(tǒng)性能穩(wěn)定可靠,適用范圍較為廣泛的實現(xiàn)業(yè)務(wù)流程動態(tài)生成W^eb Service的系統(tǒng)及方法。為了實現(xiàn)上述的目的,本發(fā)明的企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Web Service的系統(tǒng)包括業(yè)務(wù)流程服務(wù)接口定義模塊,用以定義業(yè)務(wù)流程的ffeb Service接口信息; 動態(tài)ffeb Service構(gòu)件裝配模塊,與所述的業(yè)務(wù)流程服務(wù)接口定義模塊連接,用以根據(jù)業(yè)務(wù)流程的Web Service接口信息裝配構(gòu)件;Web Service動態(tài)生成模塊,與所述的動態(tài)Web Service構(gòu)件裝配模塊連接,用以加載所述的構(gòu)件,生成W^eb Service服務(wù),并提供Wfeb Service服務(wù)接入處理;動態(tài)服務(wù)管理模塊,與所述Wflfeb Service動態(tài)生成模塊連接,用以對Wfeb Service進(jìn)行管理操作;災(zāi)難恢復(fù)模塊,與所述的動態(tài)ffeb Service構(gòu)件裝配模塊,用以在系統(tǒng)重啟時根據(jù)系統(tǒng)中的業(yè)務(wù)流程自動生成W^eb Service ;安全控制模塊,與所述的Wfeb Service動態(tài)生成模塊連接,用以對Wfeb Service服務(wù)提供安全保障;業(yè)務(wù)流程服務(wù)版本控制模塊,分別與所述的動態(tài)Web Service構(gòu)件裝配模塊和Web Service動態(tài)生成模塊連接,用以向所述系統(tǒng)中存在的多版本的業(yè)務(wù)流程服務(wù)提供多版本的動態(tài)服務(wù)。該企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Wfeb Service的系統(tǒng)中,所述的業(yè)務(wù)流程服務(wù)接口定義模塊包括服務(wù)接口元數(shù)據(jù)模型解析器,用以對BPM系統(tǒng)所支持的數(shù)據(jù)類型進(jìn)行解析;業(yè)務(wù)流程服務(wù)接口定義配置器,與所述的服務(wù)接口元數(shù)據(jù)模型解析器連接,用以對業(yè)務(wù)流程定義服務(wù)接口的服務(wù)名稱和服務(wù)參數(shù)用XML語言進(jìn)行定義;服務(wù)接口定義分析器,與所述的業(yè)務(wù)流程服務(wù)接口定義配置器連接,并連接所述的動態(tài)Web Service構(gòu)件裝配模塊,用以將服務(wù)接口定義轉(zhuǎn)換為服務(wù)對象。該企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Wfeb Service的系統(tǒng)中,所述的數(shù)據(jù)類型為基本類型、復(fù)雜類型和XSD類型中的一種或者多種。該企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Wfeb Service的系統(tǒng)中,所述的動態(tài)
7WebService構(gòu)件裝配模塊包括服務(wù)接口生成器,連接所述的服務(wù)接口定義分析器,根據(jù)所述的服務(wù)接口定義產(chǎn)生服務(wù)虛擬java接口 ;服務(wù)組件生成器,連接所述的服務(wù)接口生成器,根據(jù)所述的服務(wù)接口定義創(chuàng)建包含服務(wù)和數(shù)據(jù)類型資源的服務(wù)構(gòu)件包;服務(wù)組件調(diào)度器,連接所述的服務(wù)組件生成器,并連接所述的ffeb Service動態(tài)生成模塊,根據(jù)所述的服務(wù)接口定義對服務(wù)組件的部署、發(fā)布、銷毀進(jìn)行調(diào)度。該企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Wfeb Service的系統(tǒng)中,所述的Web Service動態(tài)生成模塊包括服務(wù)構(gòu)件加載器,連接所述的服務(wù)組件調(diào)度器,用以加載所述的服務(wù)構(gòu)件包;Web Service服務(wù)生成器,連接所述的服務(wù)構(gòu)件加載器,通過所述的虛擬java接口生成Web Service服務(wù);Web Service服務(wù)接入器,連接所述的ffeb Service服務(wù)生成器,并連接所述的動態(tài)服務(wù)管理模塊、災(zāi)難恢復(fù)模塊、安全控制模塊和業(yè)務(wù)流程服務(wù)版本控制模塊,用以提供 Web Service調(diào)用事務(wù)的業(yè)務(wù)處理。本發(fā)明還提供一種利用系統(tǒng)實現(xiàn)企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Web Service的方法,該方法包括以下步驟(1)所述的業(yè)務(wù)流程服務(wù)接口定義模塊進(jìn)行業(yè)務(wù)流程編排過程定義服務(wù)接口信息操作;(2)所述的動態(tài)ffeb Service構(gòu)件裝配模塊和所述的業(yè)務(wù)流程服務(wù)版本控制模塊進(jìn)行業(yè)務(wù)流程熱部署動態(tài)生成Web Service操作;(3)所述的災(zāi)難恢復(fù)模塊進(jìn)行系統(tǒng)故障恢復(fù)操作;(4)所述的安全控制模塊進(jìn)行業(yè)務(wù)流程服務(wù)安全攔截操作;(5)所述的ffeb Service動態(tài)生成模塊進(jìn)行業(yè)務(wù)流程服務(wù)接入操作;(6)所述的動態(tài)服務(wù)管理模塊進(jìn)行動態(tài)服務(wù)管理操作。該企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Wfeb Service的方法中,所述的業(yè)務(wù)流程服務(wù)接口定義模塊包括服務(wù)接口元數(shù)據(jù)模型解析器、與所述的服務(wù)接口元數(shù)據(jù)模型解析器連接的業(yè)務(wù)流程服務(wù)接口定義配置器以及與所述的業(yè)務(wù)流程服務(wù)接口定義配置器連接的服務(wù)接口定義分析器,所述的業(yè)務(wù)流程服務(wù)接口定義模塊進(jìn)行業(yè)務(wù)流程編排過程定義服務(wù)接口信息操作,具體包括以下步驟(11)所述的服務(wù)接口元數(shù)據(jù)模型解析器加載系統(tǒng)支持的數(shù)據(jù)類型,所述的數(shù)據(jù)類型包括簡單數(shù)據(jù)類型和復(fù)雜數(shù)據(jù)類型;(12)所述的業(yè)務(wù)流程服務(wù)接口定義配置器編排流程并配置服務(wù)接口 ;(13)所述的服務(wù)接口定義分析器將業(yè)務(wù)流程中的服務(wù)定義解析為服務(wù)對象。該企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Wfeb Service的方法中,所述的復(fù)雜數(shù)據(jù)類型為Java Bean、List、Set和Map類型中的一種或者多種。該企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Wfeb Service的方法中,所述的服務(wù)接口定義是包含接口定義結(jié)構(gòu)描述XSD Schema的XML片段,服務(wù)接口定義包含服務(wù)接口名稱和服務(wù)接口參數(shù)列表,所述的服務(wù)接口參數(shù)列表包括傳入?yún)?shù)合返回值。
該企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Wfeb Service的方法中,所述的服務(wù)接口定義分析器將業(yè)務(wù)流程中的服務(wù)定義解析為服務(wù)對象,具體包括以下步驟(131)所述的服務(wù)接口定義分析器在BPM引擎啟動過程注入到服務(wù)接口元數(shù)據(jù)模型解析器中;(132)Web界面部署流程時候,服務(wù)接口元數(shù)據(jù)模型解析器調(diào)用服務(wù)接口定義分析器對服務(wù)接口定義XML片段解析為包含服務(wù)名稱,服務(wù)參數(shù)列表的Java Bean對象,并且緩 #1 Java Bean X^0該企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Wfeb Service的方法中,所述的動態(tài) WebService構(gòu)件裝配模塊包括服務(wù)接口生成器、連接所述的服務(wù)接口生成器的服務(wù)組件生成器以及連接所述的服務(wù)組件生成器的服務(wù)組件調(diào)度器,所述的動態(tài)Web Service構(gòu)件裝配模塊和業(yè)務(wù)流程服務(wù)版本控制模塊進(jìn)行業(yè)務(wù)流程熱部署動態(tài)生成Web Service操作, 具體包括以下步驟(21)所述的服務(wù)接口生成器根據(jù)業(yè)務(wù)流程動態(tài)部署觸發(fā)將服務(wù)對象轉(zhuǎn)換為虛擬 Java 接口 ;(22)所述的服務(wù)組件生成器加載服務(wù)對應(yīng)的虛擬Java接口、數(shù)據(jù)類型定義XSD Schema信息,并依據(jù)模板創(chuàng)建出該服務(wù)組件文件;(23)所述的服務(wù)組件調(diào)度器對服務(wù)組件進(jìn)行調(diào)度,所述的調(diào)度包括服務(wù)組件部署、發(fā)布和銷毀;(24)所述的業(yè)務(wù)流程服務(wù)版本控制模塊對服務(wù)組件版本進(jìn)行切換,并將發(fā)布版本服務(wù)組件作為默認(rèn)服務(wù)。該企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Wfeb Service的方法中,所述的服務(wù)組件包含服務(wù)裝配文件、依賴資源XSD文件和復(fù)雜數(shù)據(jù)類型Acegis文件。該企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Wfeb Service的方法中,所述的服務(wù)組件生成器加載服務(wù)對應(yīng)的虛擬Java接口、數(shù)據(jù)類型定義XSD Schema信息并依據(jù)模板創(chuàng)建出該服務(wù)組件文件,具體包括以下步驟(221)所述的服務(wù)組件生成器調(diào)用服務(wù)接口生成器創(chuàng)建的虛擬Java接口作為服務(wù)接口 ;(222)所述的服務(wù)組件生成器根據(jù)服務(wù)接口的反射數(shù)據(jù)類型,判斷是否依賴相關(guān)的XSD文件,若是,則進(jìn)入步驟023),若否,則進(jìn)入步驟0 );(223)服務(wù)組件生成器從BPM系統(tǒng)中加載該XSD文件放入服務(wù)組件,并進(jìn)入步驟 (224);(224)服務(wù)組件生成器根據(jù)服務(wù)接口的反射數(shù)據(jù)類型,判斷是否包含List、Set或 Map復(fù)雜數(shù)據(jù)類型,若是,則進(jìn)入步驟025),若否,則進(jìn)入步驟0 );(225)服務(wù)組件生成器創(chuàng)建描述復(fù)雜類型的Aegis文件放入服務(wù)組件中,并進(jìn)入步驟(226);(226)服務(wù)組件生成器使用模板資源創(chuàng)建服務(wù)組件。該企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成W^eb Service的方法中,所述的災(zāi)難恢復(fù)模塊進(jìn)行系統(tǒng)故障恢復(fù)操作,具體包括以下步驟(31)所述的災(zāi)難恢復(fù)模塊在系統(tǒng)遇到災(zāi)難故障需要重啟時作為啟動Listener檢
9查服務(wù)組件狀態(tài),確定是否啟動恢復(fù);(32)所述的災(zāi)難恢復(fù)模塊確定啟動恢復(fù)之后,調(diào)用所述的動態(tài)ffeb Service構(gòu)件裝配模塊器對系統(tǒng)中故障服務(wù)重新生成。該企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Wfeb Service的方法中,所述的安全控制模塊進(jìn)行業(yè)務(wù)流程服務(wù)安全攔截操作,具體為所述的安全控制模塊根據(jù)系統(tǒng)配置的用戶名和口令對服務(wù)請求進(jìn)行攔截,并禁止未授權(quán)用戶調(diào)用。該企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Wfeb Service的方法中,所述的Web Service動態(tài)生成模塊進(jìn)行業(yè)務(wù)流程服務(wù)接入操作,具體為所述的ffeb Service動態(tài)生成模塊根據(jù)系統(tǒng)配置的用戶名和口令對服務(wù)請求進(jìn)行攔截,并禁止未授權(quán)用戶調(diào)用。該企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Wfeb Service的方法中,所述的動態(tài)服務(wù)管理模塊進(jìn)行動態(tài)服務(wù)管理操作,具體為所述的動態(tài)服務(wù)管理模塊對系統(tǒng)內(nèi)所有的服務(wù)組件進(jìn)行管理。該企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Wfeb Service的方法中,所述的管理包括查詢服務(wù)WSDL和統(tǒng)計服務(wù)數(shù)據(jù)。采用了該發(fā)明的企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成ffeb Service的系統(tǒng),其包括業(yè)務(wù)流程服務(wù)接口定義模塊、連接該業(yè)務(wù)流程服務(wù)接口定義模塊的動態(tài)Web Service 構(gòu)件裝配模塊,連接該動態(tài)W^eb Service構(gòu)件裝配模塊的W^eb Service動態(tài)生成模塊和災(zāi)難恢復(fù)模塊、連接該Web Service動態(tài)生成模塊的動態(tài)服務(wù)管理模塊和安全控制模塊,以及分別與所述的動態(tài)Web Service構(gòu)件裝配模塊和ffeb Service動態(tài)生成模塊連接的業(yè)務(wù)流程服務(wù)版本控制模塊。利用該系統(tǒng)的業(yè)務(wù)流程動態(tài)生成Web Service的方法,其業(yè)務(wù)流程具有天然的集成特性,在編排流程的同時發(fā)布出Web krvice,并且服務(wù)接口標(biāo)準(zhǔn)統(tǒng)一,無需編碼。同時增強(qiáng)了系統(tǒng)可移植性和可擴(kuò)展性,能夠快速適應(yīng)業(yè)務(wù)需求的變化和技術(shù)變化, 能夠支撐建立高度模塊化而且又高度整合的軟件系統(tǒng),開發(fā)期簡單,接口明確,配置方便, 運(yùn)行期效率較高、系統(tǒng)性能穩(wěn)定可靠,適用范圍較為廣泛,為BPM系統(tǒng)的集成發(fā)展打下了堅實的基礎(chǔ)。
圖1為本發(fā)明的企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Wfeb Service的系統(tǒng)的結(jié)構(gòu)示意圖。圖2為本發(fā)明的企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Wfeb Service的系統(tǒng)中的服務(wù)動態(tài)生成模塊的類圖。圖3為本發(fā)明的企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Wfeb Service的系統(tǒng)中的服務(wù)組件生成器的類圖。圖4為本發(fā)明的企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Wfeb Service的系統(tǒng)中的服務(wù)接入模塊的類圖。圖5為本發(fā)明的企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Wfeb Service的系統(tǒng)中的災(zāi)難恢復(fù)模塊的類圖。
圖6為本發(fā)明的企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Wfeb Service的方法的時序圖。圖7為利用本發(fā)明的方法在企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Wfeb Service 調(diào)用的時序圖。
具體實施例方式為了能夠更清楚地理解本發(fā)明的技術(shù)內(nèi)容,特舉以下實施例詳細(xì)說明。請參閱圖1所示,為本發(fā)明的企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Wfeb Service 的系統(tǒng)的結(jié)構(gòu)示意圖。在一種實施方式中,該企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Wfeb Service的系統(tǒng)包括業(yè)務(wù)流程服務(wù)接口定義模塊,用以定義業(yè)務(wù)流程的ffeb Service接口信息;動態(tài)ffeb Service構(gòu)件裝配模塊,與所述的業(yè)務(wù)流程服務(wù)接口定義模塊連接,用以根據(jù)業(yè)務(wù)流程的Web Service接口信息裝配構(gòu)件;Web Service動態(tài)生成模塊,與所述的動態(tài)Web Service構(gòu)件裝配模塊連接,用以加載所述的構(gòu)件,生成W^eb Service服務(wù),并提供Wfeb Service服務(wù)接入處理;動態(tài)服務(wù)管理模塊,與所述Wflfeb Service動態(tài)生成模塊連接,用以對Wfeb Service進(jìn)行管理操作;災(zāi)難恢復(fù)模塊,與所述的動態(tài)ffeb Service構(gòu)件裝配模塊,用以在系統(tǒng)重啟時根據(jù)系統(tǒng)中的業(yè)務(wù)流程自動生成W^eb Service ;安全控制模塊,與所述的Wfeb Service動態(tài)生成模塊連接,用以對Wfeb Service服務(wù)提供安全保障;業(yè)務(wù)流程服務(wù)版本控制模塊,分別與所述的動態(tài)Web Service構(gòu)件裝配模塊和Web Service動態(tài)生成模塊連接,用以向所述系統(tǒng)中存在的多版本的業(yè)務(wù)流程服務(wù)提供多版本的動態(tài)服務(wù)。利用該種實施方式的系統(tǒng)實現(xiàn)業(yè)務(wù)流程動態(tài)生成ffeb Service的方法包括以下步驟(1)所述的業(yè)務(wù)流程服務(wù)接口定義模塊進(jìn)行業(yè)務(wù)流程編排過程定義服務(wù)接口信息操作;(2)所述的動態(tài)ffeb Service構(gòu)件裝配模塊和所述的業(yè)務(wù)流程服務(wù)版本控制模塊進(jìn)行業(yè)務(wù)流程熱部署動態(tài)生成Web Service操作;(3)所述的災(zāi)難恢復(fù)模塊進(jìn)行系統(tǒng)故障恢復(fù)操作;(4)所述的安全控制模塊進(jìn)行業(yè)務(wù)流程服務(wù)安全攔截操作;(5)所述的ffeb Service動態(tài)生成模塊進(jìn)行業(yè)務(wù)流程服務(wù)接入操作;(6)所述的動態(tài)服務(wù)管理模塊進(jìn)行動態(tài)服務(wù)管理操作。在一種較優(yōu)選的實施方式中,所述的業(yè)務(wù)流程服務(wù)接口定義模塊包括服務(wù)接口元數(shù)據(jù)模型解析器,用以對BPM系統(tǒng)所支持的數(shù)據(jù)類型進(jìn)行解析;業(yè)務(wù)流程服務(wù)接口定義配置器,與所述的服務(wù)接口元數(shù)據(jù)模型解析器連接,用以對業(yè)務(wù)流程定義服務(wù)接口的服務(wù)名稱和服務(wù)參數(shù)用XML語言進(jìn)行定義;
11
服務(wù)接口定義分析器,與所述的業(yè)務(wù)流程服務(wù)接口定義配置器連接,并連接所述的動態(tài)Web Service構(gòu)件裝配模塊,用以將服務(wù)接口定義轉(zhuǎn)換為服務(wù)對象。其中,所述的數(shù)據(jù)類型為基本類型、復(fù)雜類型和XSD類型中的一種或者多種。利用該種實施方式的系統(tǒng)實現(xiàn)業(yè)務(wù)流程動態(tài)生成ffeb Service的方法中,所述的業(yè)務(wù)流程服務(wù)接口定義模塊進(jìn)行業(yè)務(wù)流程編排過程定義服務(wù)接口信息操作,具體包括以下步驟(11)所述的服務(wù)接口元數(shù)據(jù)模型解析器加載系統(tǒng)支持的數(shù)據(jù)類型,所述的數(shù)據(jù)類型包括簡單數(shù)據(jù)類型和復(fù)雜數(shù)據(jù)類型;(12)所述的業(yè)務(wù)流程服務(wù)接口定義配置器編排流程并配置服務(wù)接口 ;(13)所述的服務(wù)接口定義分析器將業(yè)務(wù)流程中的服務(wù)定義解析為服務(wù)對象。其中,所述的復(fù)雜數(shù)據(jù)類型為Java Bean, List、Set和Map類型中的一種或者多種。在一種進(jìn)一步優(yōu)選的實施方式中,所述的服務(wù)接口定義是包含接口定義結(jié)構(gòu)描述 XSDSchema的XML片段,服務(wù)接口定義包含服務(wù)接口名稱和服務(wù)接口參數(shù)列表,所述的服務(wù)接口參數(shù)列表包括傳入?yún)?shù)合返回值。在利用該實施方式的系統(tǒng)實現(xiàn)業(yè)務(wù)流程動態(tài)生成ffeb Service的方法中,所述的服務(wù)接口定義分析器將業(yè)務(wù)流程中的服務(wù)定義解析為服務(wù)對象,具體包括以下步驟(131)所述的服務(wù)接口定義分析器在BPM引擎啟動過程注入到服務(wù)接口元數(shù)據(jù)模型解析器中;(132)Web界面部署流程時候,服務(wù)接口元數(shù)據(jù)模型解析器調(diào)用服務(wù)接口定義分析器對服務(wù)接口定義XML片段解析為包含服務(wù)名稱,服務(wù)參數(shù)列表的Java Bean對象,并且緩 #1 Java Bean X^0在另一種優(yōu)選的實施方式中,所述的動態(tài)ffeb Service構(gòu)件裝配模塊包括服務(wù)接口生成器,連接所述的服務(wù)接口定義分析器,根據(jù)所述的服務(wù)接口定義產(chǎn)生服務(wù)虛擬java接口 ;服務(wù)組件生成器,連接所述的服務(wù)接口生成器,根據(jù)所述的服務(wù)接口定義創(chuàng)建包含服務(wù)和數(shù)據(jù)類型資源的服務(wù)構(gòu)件包;服務(wù)組件調(diào)度器,連接所述的服務(wù)組件生成器,并連接所述的Web Service動態(tài)生成模塊,根據(jù)所述的服務(wù)接口定義對服務(wù)組件的部署、發(fā)布、銷毀進(jìn)行調(diào)度。在利用該實施方式的系統(tǒng)實現(xiàn)業(yè)務(wù)流程動態(tài)生成ffeb Service的方法中,所述的動態(tài)WebService構(gòu)件裝配模塊和業(yè)務(wù)流程服務(wù)版本控制模塊進(jìn)行業(yè)務(wù)流程熱部署動態(tài)生成WfebService操作,具體包括以下步驟(21)所述的服務(wù)接口生成器根據(jù)業(yè)務(wù)流程動態(tài)部署觸發(fā)將服務(wù)對象轉(zhuǎn)換為虛擬 Java 接口 ;(22)所述的服務(wù)組件生成器加載服務(wù)對應(yīng)的虛擬Java接口、數(shù)據(jù)類型定義XSD Schema信息,并依據(jù)模板創(chuàng)建出該服務(wù)組件文件;(23)所述的服務(wù)組件調(diào)度器對服務(wù)組件進(jìn)行調(diào)度,所述的調(diào)度包括服務(wù)組件部署、發(fā)布和銷毀;(24)所述的業(yè)務(wù)流程服務(wù)版本控制模塊對服務(wù)組件版本進(jìn)行切換,并將發(fā)布版本服務(wù)組件作為默認(rèn)服務(wù)。在進(jìn)一步優(yōu)選的實施方式中,所述的服務(wù)組件包含服務(wù)裝配文件、依賴資源XSD 文件和復(fù)雜數(shù)據(jù)類型Acegis文件。所述的服務(wù)組件生成器加載服務(wù)對應(yīng)的虛擬Java接口、 數(shù)據(jù)類型定義XSD khema信息并依據(jù)模板創(chuàng)建出該服務(wù)組件文件,具體包括以下步驟(221)所述的服務(wù)組件生成器調(diào)用服務(wù)接口生成器創(chuàng)建的虛擬Java接口作為服務(wù)接口 ;(222)所述的服務(wù)組件生成器根據(jù)服務(wù)接口的反射數(shù)據(jù)類型,判斷是否依賴相關(guān)的XSD文件,若是,則進(jìn)入步驟023),若否,則進(jìn)入步驟0 );(223)服務(wù)組件生成器從BPM系統(tǒng)中加載該XSD文件放入服務(wù)組件,并進(jìn)入步驟 (224);(224)服務(wù)組件生成器根據(jù)服務(wù)接口的反射數(shù)據(jù)類型,判斷是否包含List、Set或 Map復(fù)雜數(shù)據(jù)類型,若是,則進(jìn)入步驟025),若否,則進(jìn)入步驟0 );(225)服務(wù)組件生成器創(chuàng)建描述復(fù)雜類型的Aegis文件放入服務(wù)組件中,并進(jìn)入步驟(226);(226)服務(wù)組件生成器使用模板資源創(chuàng)建服務(wù)組件。在另一種較優(yōu)選的實施方式中,所述的ffeb Service動態(tài)生成模塊包括服務(wù)構(gòu)件加載器,連接所述的服務(wù)組件調(diào)度器,用以加載所述的服務(wù)構(gòu)件包;Web Service服務(wù)生成器,連接所述的服務(wù)構(gòu)件加載器,通過所述的虛擬java接口生成Web Service服務(wù);Web Service服務(wù)接入器,連接所述的ffeb Service服務(wù)生成器,并連接所述的動態(tài)服務(wù)管理模塊、災(zāi)難恢復(fù)模塊、安全控制模塊和業(yè)務(wù)流程服務(wù)版本控制模塊,用以提供 Web Service調(diào)用事務(wù)的業(yè)務(wù)處理。在一種更優(yōu)選的實施方式中,所述的企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Web Service的方法,具體包括以下步驟(31)所述的災(zāi)難恢復(fù)模塊在系統(tǒng)遇到災(zāi)難故障需要重啟時作為啟動Listener檢查服務(wù)組件狀態(tài),確定是否啟動恢復(fù);(32)所述的災(zāi)難恢復(fù)模塊確定啟動恢復(fù)之后,調(diào)用所述的動態(tài)ffeb Service構(gòu)件裝配模塊器對系統(tǒng)中故障服務(wù)重新生成。所述的安全控制模塊進(jìn)行業(yè)務(wù)流程服務(wù)安全攔截操作,具體為所述的安全控制模塊根據(jù)系統(tǒng)配置的用戶名和口令對服務(wù)請求進(jìn)行攔截,并禁止未授權(quán)用戶調(diào)用。所述的ffeb Service動態(tài)生成模塊進(jìn)行業(yè)務(wù)流程服務(wù)接入操作,具體為所述的 WebService動態(tài)生成模塊根據(jù)系統(tǒng)配置的用戶名和口令對服務(wù)請求進(jìn)行攔截,并禁止未授權(quán)用戶調(diào)用。所述的動態(tài)服務(wù)管理模塊進(jìn)行動態(tài)服務(wù)管理操作,具體為所述的動態(tài)服務(wù)管理模塊對系統(tǒng)內(nèi)所有的服務(wù)組件進(jìn)行管理。所述的管理包括查詢服務(wù)WSDL和統(tǒng)計服務(wù)數(shù)據(jù)。在本發(fā)明的實際應(yīng)用中,如圖2至圖7所示,該企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成ffeb Service的系統(tǒng)和方法中,所述的系統(tǒng)結(jié)構(gòu)包括(1)業(yè)務(wù)流程服務(wù)接口定義模塊,定義業(yè)務(wù)流程的服務(wù)接口,其中包括(a)元數(shù)據(jù)模型解析器,負(fù)責(zé)維護(hù)業(yè)務(wù)流程動態(tài)ffeb Service支持的數(shù)據(jù)類型,包
13括JavaBean對象和XSD用戶自定義的類型等;(b)業(yè)務(wù)流程服務(wù)定義接口配置,通過接口定義配置流程的服務(wù)接口描述信息,如服務(wù)名稱,服務(wù)參數(shù)等;(c)服務(wù)接口定義分析器,提供服務(wù)接口解析的能力,轉(zhuǎn)換為服務(wù)相關(guān)的Java對象;(2)服務(wù)動態(tài)生成模塊,與所述的業(yè)務(wù)流程服務(wù)接口定義模塊相連接,在流程部署時候動態(tài)生成W^eb krvice,其中包括(a)服務(wù)生成器,通過結(jié)構(gòu)化定義的服務(wù)定義,服務(wù)生成器能夠模擬出Java接口 ;(b)服務(wù)組件生成器,負(fù)責(zé)為每一個服務(wù)組件生成服務(wù)組件,以及依賴的資源文件;(c)服務(wù)組件調(diào)度器,調(diào)度服務(wù)組件生成之后的發(fā)布過程,包括逐出原版本、更新緩存等操作;(d)服務(wù)版本控制器,業(yè)務(wù)流程特殊的版本屬性使得流程服務(wù)需要版本控制,版本控制器維護(hù)當(dāng)前流程的服務(wù)版本。圖2為本發(fā)明的企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Wfeb Service的系統(tǒng)中的服務(wù)動態(tài)生成模塊的類圖,其中包括ProcessServiceModuleActivator 接口 ModuleActivator 的實現(xiàn),通過 ExtensionPointRegistry的實例獲得系統(tǒng)中已注冊的擴(kuò)展類型,添加擴(kuò)展點的實現(xiàn);ProcessDirectProcesser ^ Π StAXArtifactProcessor 的實 1%, i賣 ¢(至Ij composite文件中定義的新的component時,回調(diào)read()方法;ModelFactoryExtensionPoint :^ ^^ BSilW AssemblyFactory 與 JavaInterfaceFactory ;AssemblyFactory 用來創(chuàng)建新的服務(wù);JavaInterfaceFactory 用來創(chuàng)建新的 java 接口 ;IProcessServicelmplementation 流程服務(wù)的實現(xiàn),封裝基于流程的服務(wù)信息;ProcessServiceProviderFactory 接口 ImplementationProviderFactory 的實現(xiàn),添加運(yùn)行時信息的擴(kuò)展點,流程服務(wù)的邏輯提供者的工廠,用于實例化邏輯提供者;ProcessServiceProvider 流程服務(wù)的邏輯提供者,負(fù)責(zé)創(chuàng)建具體hvoker ;ProcessDirectInvoker 接口 invoker的實現(xiàn),流程服務(wù)執(zhí)行器,調(diào)用發(fā)布的W^eb Service時會回調(diào)invoke ()方法。圖3為本發(fā)明的企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Wfeb Service的系統(tǒng)中的服務(wù)組件生成器的類圖,其中包括IModelChangeListener 資源變更監(jiān)聽器接口 ;XSDResourceChangedListener :XSD/Wsdl 資源變更監(jiān)聽器;WorkflowChangeListener 流程變更監(jiān)聽器;DefinitionCacheService 流程定義緩存服務(wù);IMessageStartEventInquire :MessageStartEvent 節(jié)查詢接□ResourceChangedComponentManager 構(gòu)件包管理器;ResourceChangedMissionFactory ■/ΜΜ^'Ε ^-ΧΓ ;
ResourceChangedMission 資源變更的構(gòu)件包生成任務(wù);XSDWSDLResourceChangedMission :XSD/Wsdl 資源變更構(gòu)件包更新任務(wù);MseffFChangeMission :MessageStartEvent 流程變更構(gòu)件包更新任務(wù)。(3)災(zāi)難恢復(fù)模塊,當(dāng)系統(tǒng)遇到故障重啟之后恢復(fù)流程服務(wù)時候自動根據(jù)故障情況,在BPM系統(tǒng)中生成Wfeb krvice,其中包括(a)服務(wù)恢復(fù)處理器,判斷故障情況在災(zāi)難恢復(fù)過程動態(tài)創(chuàng)建新的業(yè)務(wù)流程服務(wù),從而實現(xiàn)系統(tǒng)自動恢復(fù);圖5為本發(fā)明的企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Wfeb Service的系統(tǒng)中的災(zāi)難恢復(fù)模塊的類圖,其中包括IComponentLoad 構(gòu)件包加載接口 ;ComponentLoadTimer 構(gòu)件包加載定時器;ComponentLoadTimerTask 構(gòu)件包加載定時任務(wù)。(4)安全控制模塊,在上述服務(wù)組件生成器創(chuàng)建服務(wù)組件時候調(diào)用,根據(jù)系統(tǒng)安全配置對服務(wù)組件增加安全性,其中包括(a)安全控制器,對服務(wù)組件的安全控制,支持WS-Security協(xié)議;(5)動態(tài)服務(wù)接入模塊,服務(wù)調(diào)用者調(diào)用業(yè)務(wù)流程服務(wù)時候,把ffeb Service調(diào)用轉(zhuǎn)換為流程引擎的調(diào)度,其中包括(a)動態(tài)服務(wù)轉(zhuǎn)換器,映射ffeb Service調(diào)用為流程引擎的調(diào)度操作;圖4為本發(fā)明的企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Wfeb Service的系統(tǒng)中的服務(wù)接入模塊的類圖,其中包括Invoker :ffeb Service 月艮務(wù)接入接口;DynamicffebServiceInvoker Jnvoker 接口實現(xiàn),用來處理動態(tài)生成的 Web Service服務(wù)的接入;Message 調(diào)用Web Service服務(wù)時傳入的參數(shù);IMessageStartEventProcessManager :MessageStartEvent ^fMiWSii Π。(6)動態(tài)服務(wù)管理模塊,提供對系統(tǒng)內(nèi)動態(tài)ffeb Service的管理功能,包括服務(wù)查詢、服務(wù)監(jiān)控等?;谏鲜龅南到y(tǒng)結(jié)構(gòu)可以看出,本發(fā)明在設(shè)計和實現(xiàn)過程中是服務(wù)概念的一種延伸和抽象,把包含業(yè)務(wù)含義的業(yè)務(wù)流程抽象出服務(wù)的概念,該服務(wù)可以直接映射到軟件領(lǐng)域的ffebService,基于這種思路做到軟件模塊化,并且與BPM系統(tǒng)解耦,本發(fā)明描述的技術(shù)完全可以適應(yīng)與其他領(lǐng)域,如規(guī)則系統(tǒng)、專家系統(tǒng)、決策支持系統(tǒng)等。本發(fā)明的核心設(shè)計是提供一種動態(tài)生成服務(wù)的框架,框架負(fù)責(zé)監(jiān)聽服務(wù)生成事件、執(zhí)行服務(wù)生成、維護(hù)服務(wù)組件等,并且基于此框架實現(xiàn)BPM系統(tǒng)中業(yè)務(wù)流程的動態(tài)服務(wù)生成。本發(fā)明的實現(xiàn)原理如下BPM系統(tǒng)中是以圖形化語言描述業(yè)務(wù)執(zhí)行過程,最終形成物理結(jié)構(gòu)為XML文檔的業(yè)務(wù)流程,其中包含流程、活動、屬性定義、事件定義等概念,在業(yè)內(nèi)又分為多個標(biāo)準(zhǔn)規(guī)范, 如XPDL、BPEL、BPMN等。通常業(yè)務(wù)流程是通過客戶端程序調(diào)用API的方式發(fā)起流程,流程引擎啟動部署的業(yè)務(wù)流程結(jié)合各類資源等,在執(zhí)行過程中需要流程引擎按照調(diào)度算法執(zhí)行, 在流程運(yùn)行的不同環(huán)節(jié),例如Human I^ask需要人工參與,而krvice Task則通過調(diào)用本地Java方法或者Wfeb Service的方式執(zhí)行活動。從以上業(yè)務(wù)流程的工作過程,可以抽象出關(guān)于業(yè)務(wù)流程的如下概念1.流程接口 流程接入是BPM系統(tǒng)的入口,即一組可調(diào)用的API,包括JavaAPI、 WebService, Restful Web 等形式。2.流程流程是BPM系統(tǒng)執(zhí)行的基本單元,BPM系統(tǒng)中的流程引擎根據(jù)流程定義的分支聚合模式計算流程的遷移路線。3.圖元圖元是流程中最小粒度的執(zhí)行單元,流程引擎依據(jù)圖元上的配置進(jìn)行不同業(yè)務(wù)語義的執(zhí)行;本方法中服務(wù)接口定義就是對以上服務(wù)接口概念的擴(kuò)展,通過在業(yè)務(wù)流程編排過程增加服務(wù)接口定義,滿足Web Service的技術(shù)要求,為動態(tài)生成ffeb Service提供事實數(shù)據(jù)結(jié)構(gòu)來源。在有了事實數(shù)據(jù)結(jié)構(gòu)來源基礎(chǔ)之上,動態(tài)生成ffeb Service需要在流程引擎中加入事件監(jiān)聽器,當(dāng)流程發(fā)生變化,例如流程發(fā)布、流程取消發(fā)布、流程刪除等事件產(chǎn)生之后, 事件監(jiān)聽器自動把事件轉(zhuǎn)換為具體的服務(wù)創(chuàng)建、服務(wù)銷毀操作。同時使用監(jiān)聽機(jī)制能最大程度上做到軟件組件結(jié)構(gòu)解耦,從而能夠把本方法抽象為一個動態(tài)生成Web Service的框架。另外,通過事件監(jiān)聽機(jī)制可以引入異步的服務(wù)動態(tài)生成,從而提高BPM系統(tǒng)的整體性能。本方法的動態(tài)Wfeb Service是以服務(wù)組件為物理介質(zhì)來發(fā)布Wfeb krvice,服務(wù)組件是一個包含服務(wù)描述文件,服務(wù)資源文件如Aegis文件,服務(wù)安全配置文件的物理存儲結(jié)構(gòu)。而不依賴于具體的服務(wù)發(fā)布技術(shù)(服務(wù)發(fā)布技術(shù)并不是本方法重點闡述的內(nèi)容),如 Aixs2> Apache CXF、Spring WS 等。該基于上述的系統(tǒng)結(jié)構(gòu)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Wfeb Service的方法, 所述的方法包括業(yè)務(wù)流程編排過程定義服務(wù)接口信息操作、業(yè)務(wù)流程部署動態(tài)生成Web Service操作、系統(tǒng)故障服務(wù)恢復(fù)操作、業(yè)務(wù)流程服務(wù)安全攔截操作、業(yè)務(wù)流程服務(wù)接入操作、動態(tài)服務(wù)管理操作。所述的業(yè)務(wù)流程編排過程定義服務(wù)接口信息操作,包括以下步驟(11)所述的服務(wù)定義接口元數(shù)據(jù)解析器加載BPM系統(tǒng)中動態(tài)流程服務(wù)支持的數(shù)據(jù)類型,包括基本簡單數(shù)據(jù)類型和復(fù)雜類型,復(fù)雜類型包括Java Bean, List、Set,Map和自定義的XSD數(shù)據(jù)類型,加載復(fù)雜XSD類型包括以下步驟;(a)導(dǎo)入目標(biāo)XSD,選擇本地XSD定義文件或者提供網(wǎng)絡(luò)URL地址;(b)判斷導(dǎo)入類型對應(yīng)的命名空間內(nèi)是否已經(jīng)存在該XSD類型,如果存在,則導(dǎo)入過程失敗,為了防止同名XSD類型的沖突。(c)元數(shù)據(jù)解析器對成功導(dǎo)入的XSD類型建立元數(shù)據(jù)庫。(12)所述的業(yè)務(wù)流程服務(wù)接口定義配置器在編排流程的時候配置服務(wù)接口,包括如下步驟;(a)編排業(yè)務(wù)流程,設(shè)置流程使用消息啟動事件(BPMN規(guī)范描述的Message StartEvent),即確定此業(yè)務(wù)流程通過消息的方式啟動;(b)消息啟動事件中定義服務(wù)接口名稱,例如Account krvice,定義服務(wù)接口操作名稱,例如operationl ;
(c)設(shè)置服務(wù)接口參數(shù),從元數(shù)據(jù)提供的數(shù)據(jù)類型中選擇數(shù)據(jù)類型,定義參數(shù)名稱,以及參數(shù)類型,包括輸入?yún)?shù)列表和輸出參數(shù)列表;(13)所述的服務(wù)接口定義分析器把業(yè)務(wù)流程中的服務(wù)定義解析為服務(wù)對象,其中服務(wù)定義使用XML片段描述,服務(wù)定義規(guī)格約束使用XSD Schema描述,所述的服務(wù)接口分析器生成的服務(wù)對象為Java Bean ;(a)所述的服務(wù)接口定義分析器在BPM引擎啟動過程注入到業(yè)務(wù)流程解析器中;(b)當(dāng)完成業(yè)務(wù)流程建模和設(shè)計,提交部署流程時候,BPM引擎觸發(fā)業(yè)務(wù)流程解析器事件,會調(diào)用業(yè)務(wù)流程解析器調(diào)用服務(wù)接口定義分析器對服務(wù)接口定義XML片段解析為包含服務(wù)名稱,服務(wù)參數(shù)列表的Java Bean對象,并且緩存該對象;所述的業(yè)務(wù)流程部署動態(tài)生成Wfeb Service操作,包括以下步驟(21)所述的服務(wù)生成器把服務(wù)對象轉(zhuǎn)換為虛擬Java接口,使用ASM框架,在JVM 中用字節(jié)碼的方式直接創(chuàng)建Java接口,采用如下轉(zhuǎn)換規(guī)則,服務(wù)對象中的服務(wù)名稱轉(zhuǎn)換為 Java虛擬接口的名稱,服務(wù)對象中的操作名稱轉(zhuǎn)換為Java虛擬接口的方法名稱,服務(wù)對象中的參數(shù)列表轉(zhuǎn)換為Java虛擬接口的方法參數(shù)。(22)所述的服務(wù)組件生成器依據(jù)服務(wù)對應(yīng)的虛擬Java接口、數(shù)據(jù)類型定義XSD khema信息,組件生成器依據(jù)模板創(chuàng)建出該服務(wù)組件文件,服務(wù)組件是可以被服務(wù)容器加載并且識別的文件結(jié)構(gòu);(23)所述的服務(wù)組件調(diào)度器負(fù)責(zé)對服務(wù)組件調(diào)度,包括服務(wù)組件部署、激活、發(fā)布、銷毀等;(a)服務(wù)組件調(diào)度器對組件生成器創(chuàng)建的服務(wù)組件統(tǒng)一調(diào)度,組件首先是被部署到指定組件倉庫;(b)組件調(diào)度器激活目標(biāo)組件,在激活過程中識別相應(yīng)的資源文件,例如XSD等交由XSD資源處理器加載;(c)組件調(diào)度器對正確激活的組件進(jìn)行發(fā)布,以ffeb Service方式提供出來;24) 所述的版本控制器對服務(wù)組件版本進(jìn)行切換,把發(fā)布版本服務(wù)組件作為默認(rèn)服務(wù);所述的系統(tǒng)故障恢復(fù)操作,包括以下步驟(31)所述的服務(wù)災(zāi)難恢復(fù)處理器是在系統(tǒng)遇到災(zāi)難故障需要重啟時,災(zāi)難恢復(fù)處理器作為啟動Listener檢查服務(wù)組件狀態(tài),確定是否啟動恢復(fù);(32)所述的服務(wù)災(zāi)難恢復(fù)處理器確定啟動恢復(fù)之后,調(diào)用服務(wù)生成器對系統(tǒng)中故障服務(wù)重新生成;所述的業(yè)務(wù)流程服務(wù)安全攔截操作,包括以下步驟(41)所述的服務(wù)安全控制器根據(jù)系統(tǒng)配置的用戶名和口令對服務(wù)請求進(jìn)行攔截, 對未授權(quán)用戶禁止調(diào)用;(a)設(shè)置啟用業(yè)務(wù)流程動態(tài)服務(wù)安全性,此設(shè)置是全局性設(shè)置,即BPM系統(tǒng)中所有的流程采用統(tǒng)一的安全策略,設(shè)置服務(wù)的用戶名和密碼;(b)對安全性的修改會觸發(fā)服務(wù)組件的重新部署,規(guī)則如下如果啟用服務(wù)安全性,服務(wù)組件調(diào)度器掃描BPM系統(tǒng)內(nèi)的所有服務(wù)組件,增加其安全性策略描述。如下描述
17< xml version-Ml.0" encoding-MUTF-8“ >
<compos itexmlns = nhttp//www.osoa.org/xmlns/sca/1.〇“
xmlns:xsd="http://www.w3. org/2 O 01/XMLSchema“ name="com.primeton.workfIowl. workflow"
targetNamespace = "http://www.osoa.org/xmlns/sca/1.〇“xmlns:c="http://crud">
<servicename="ProcessService5"
promote = "Proces sServiceComponen15/primetonWorkflow5">
<binding.ws policySets = "sca 1. O :wsAuthenticationPolicy"/> </service>
〈component name = "ProcessServiceComponent5">
<c : implementation . bprnprocessNaine = ”primetonW〇r kf low5"
ProcessVersiorL=nI .1.1" /> </component> </composite>安全策略定義在Definition, xml文件中設(shè)置,配置如下
<sca:policySet name="wsAuthenticationPolicy"
provides = "authentication" appliesTo="sca: service/sca: binding .ws"> <tuscany:wsConfigParam>
〈parameter name="工nfIowSecurity"> <action>
<user>userName</user> <items>UsernameT〇ken</items> <passwordCaIlbackClass>ServerPWCBHandler</passwordCaIlbackClass> <pas swordType>PasswordText</passwordType> </action> </parameter> </tuscany:wsConfigParam> </sca:policySet>如果取消服務(wù)安全性,則組件調(diào)度器掃描服務(wù)組件,把其中的〈binding, ws policySets = “ sca_l. OwsAuthenticationPolicy “ /> i ^ M除。(c)用戶安全攔截是通過擴(kuò)展CalIkickHandler接口實現(xiàn),對Wfeb Service調(diào)用的用戶名和口令與之前設(shè)置的匹配,如果未授權(quán)用戶則拋出異常;所述的業(yè)務(wù)流程服務(wù)接入操作,包括以下步驟(51)所述的動態(tài)W^eb Service接入模塊Qnvoker)負(fù)責(zé)把與BPM系統(tǒng)無關(guān)的Web Service調(diào)用轉(zhuǎn)換為BPM系統(tǒng)的本地API調(diào)用;(a) Invoker在對W^eb Service請求過程處理過程分析出當(dāng)前處理的業(yè)務(wù)流程名稱,請求參數(shù)等,最終請求業(yè)務(wù)流程的Message Start Event執(zhí)行啟動流程。
(b) Invoker調(diào)用完成之后把返回結(jié)果返回到W^eb Service的Response中;(c)如果發(fā)生異常,Invoker把異常信息返回到Fault Body中;所述的動態(tài)服務(wù)管理操作,包括以下步驟(61)所述的動態(tài)服務(wù)管理模塊對系統(tǒng)內(nèi)所有的服務(wù)組件管理,包括查詢服務(wù) WSDL、統(tǒng)計服務(wù)數(shù)據(jù)等.(a) BPM系統(tǒng)發(fā)布的動態(tài)Wfeb Service需要提供一個界面查詢當(dāng)前可用的服務(wù)列表,支持用戶調(diào)用或者與ESB系統(tǒng)的集成等,管理模塊提供查詢功能。如圖6所示,為本發(fā)明的企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成W^eb Service的方法的時序圖,其時序為1、當(dāng)在composite配置文件中讀取到擴(kuò)展的配置信息后,會調(diào)用 ProcessDirectProcesser 中 read ()方法;2,read ()ProcessServicelmplementationlmpl 的歹ij ;3、設(shè)置 ProcessServicelmplementationlmpl 中的流程名;4、設(shè)置版本號;5、調(diào)用 ProcessServicelmplementationlmpl 中的 build ()方法,創(chuàng)建 Web 月艮務(wù);6、調(diào)用 assemblyFactory. createService ()創(chuàng)建 Service 的實例;7、創(chuàng)建krvice的實例;8、設(shè)置krvice的實例的名稱,也就是對外發(fā)布web服務(wù)的名稱;9、根據(jù)流程定義,創(chuàng)建對應(yīng)的java接口 ;10、通過創(chuàng)建的java接口發(fā)布wsdl。本發(fā)明中,業(yè)務(wù)流程服務(wù)發(fā)布之后,客戶端與BPM系統(tǒng)端交互的橋梁是 WSDL (WebService Definition Language),其中包括了以下幾個主要元素types——數(shù)據(jù)類型定義的容器,使用XML Schema來描述數(shù)據(jù)類型的結(jié)構(gòu)信息。portType——描述服務(wù)操作的抽象集合,與Java接口類似。binding——數(shù)據(jù)傳輸過程中指定的具體傳輸協(xié)議以及所定義操作的數(shù)據(jù)格式規(guī)范。service——對外提供的服務(wù)。operation——對服務(wù)中所支持的操作的抽象描述,描述了訪問入口的請求/響應(yīng)消息以及異常的聲明。在調(diào)用ffeb Service過程中,客戶端與服務(wù)器端交互的信息為SOAP消息,以XML 格式進(jìn)行定義,其結(jié)構(gòu)包括了以下幾個主要元素SOAP Body——封裝了要傳遞的數(shù)據(jù)。SOAPHeader——作為傳遞消息的擴(kuò)展,可以自由添加。如圖7所示,為利用本發(fā)明的方法在企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成ffeb Service調(diào)用的時序圖。在外部系統(tǒng)調(diào)用發(fā)布的流程的Web服務(wù)時, 會回調(diào)ProcessDirectInvoker中的invoke ()方法。在invoke ()方法中通過 IProcesskrvicelmplementation接口獲取流程名和版本號,通過傳入的Message參數(shù)獲取調(diào)用Web服務(wù)時傳入的參數(shù)。之后調(diào)用引擎的流程啟動接口,啟動流程。本發(fā)明的BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成W^eb Service的方法,包括Web界面
19編排業(yè)務(wù)流程定義服務(wù)接口和動態(tài)生成Web krvice,所述的方法包括運(yùn)行期支撐不同數(shù)據(jù)對象轉(zhuǎn)換擴(kuò)展的通用框架和開發(fā)期數(shù)據(jù)對象轉(zhuǎn)換的配置格式定義。運(yùn)行期支撐不同數(shù)據(jù)對象轉(zhuǎn)換擴(kuò)展的通用框架包括數(shù)據(jù)對象轉(zhuǎn)換的配置加載,通過該配置形成數(shù)據(jù)類型轉(zhuǎn)換的有向圖,根據(jù)有向圖能找到從源數(shù)據(jù)類型到目標(biāo)數(shù)據(jù)類型轉(zhuǎn)換所需的最短路徑,同時針對接入服務(wù)以及接出服務(wù)時提供不同數(shù)據(jù)對象的轉(zhuǎn)換操作,數(shù)據(jù)轉(zhuǎn)換時,接口元數(shù)據(jù)統(tǒng)一用 WSDL進(jìn)行描述。開發(fā)期數(shù)據(jù)對象轉(zhuǎn)換的配置格式定義包括了針對特定數(shù)據(jù)類型轉(zhuǎn)換的接口實現(xiàn)以及對轉(zhuǎn)換器的注冊。經(jīng)過以上步驟,業(yè)務(wù)流程在編排之后無須編碼,系統(tǒng)不用重啟,不用技術(shù)人員開發(fā)即生成了 Web krvice,其他系統(tǒng)即可以集成在一起,從中可以得出采用了 BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Web Service的方法,使業(yè)務(wù)流程的開發(fā)工作變得簡單而高效,不再需要服務(wù)封裝等,而且對外的業(yè)務(wù)服務(wù)統(tǒng)一,數(shù)據(jù)類型一致。采用了該發(fā)明的企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成ffeb Service的系統(tǒng),其包括業(yè)務(wù)流程服務(wù)接口定義模塊、連接該業(yè)務(wù)流程服務(wù)接口定義模塊的動態(tài)Web Service 構(gòu)件裝配模塊,連接該動態(tài)W^eb Service構(gòu)件裝配模塊的W^eb Service動態(tài)生成模塊和災(zāi)難恢復(fù)模塊、連接該Web Service動態(tài)生成模塊的動態(tài)服務(wù)管理模塊和安全控制模塊,以及分別與所述的動態(tài)Web Service構(gòu)件裝配模塊和ffeb Service動態(tài)生成模塊連接的業(yè)務(wù)流程服務(wù)版本控制模塊。利用該系統(tǒng)的業(yè)務(wù)流程動態(tài)生成Web Service的方法,其業(yè)務(wù)流程具有天然的集成特性,在編排流程的同時發(fā)布出Web krvice,并且服務(wù)接口標(biāo)準(zhǔn)統(tǒng)一,無需編碼。同時增強(qiáng)了系統(tǒng)可移植性和可擴(kuò)展性,能夠快速適應(yīng)業(yè)務(wù)需求的變化和技術(shù)變化, 能夠支撐建立高度模塊化而且又高度整合的軟件系統(tǒng),開發(fā)期簡單,接口明確,配置方便, 運(yùn)行期效率較高、系統(tǒng)性能穩(wěn)定可靠,適用范圍較為廣泛,為BPM系統(tǒng)的集成發(fā)展打下了堅實的基礎(chǔ)。在此說明書中,本發(fā)明已參照其特定的實施例作了描述。但是,很顯然仍可以作出各種修改和變換而不背離本發(fā)明的精神和范圍。因此,說明書和附圖應(yīng)被認(rèn)為是說明性的而非限制性的。
權(quán)利要求
1.一種企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Wfeb Service的系統(tǒng),其特征在于,所述的系統(tǒng)包括業(yè)務(wù)流程服務(wù)接口定義模塊,用以定義業(yè)務(wù)流程的Web Service接口信息; 動態(tài)ffeb Service構(gòu)件裝配模塊,與所述的業(yè)務(wù)流程服務(wù)接口定義模塊連接,用以根據(jù)業(yè)務(wù)流程的W^eb Service接口信息裝配構(gòu)件;Web Service動態(tài)生成模塊,與所述的動態(tài)Web Service構(gòu)件裝配模塊連接,用以加載所述的構(gòu)件,生成W^eb Service服務(wù),并提供W^eb Service服務(wù)接入處理;動態(tài)服務(wù)管理模塊,與所述W^feb Service動態(tài)生成模塊連接,用以對Wfeb Service進(jìn)行管理操作;災(zāi)難恢復(fù)模塊,與所述的動態(tài)Web Service構(gòu)件裝配模塊,用以在系統(tǒng)重啟時根據(jù)系統(tǒng)中的業(yè)務(wù)流程自動生成W^eb Service ;安全控制模塊,與所述的Web Service動態(tài)生成模塊連接,用以對ffeb Service服務(wù)提供安全保障;業(yè)務(wù)流程服務(wù)版本控制模塊,分別與所述的動態(tài)Web Service構(gòu)件裝配模塊和Web Service動態(tài)生成模塊連接,用以向所述系統(tǒng)中存在的多版本的業(yè)務(wù)流程服務(wù)提供多版本的動態(tài)服務(wù)。
2.根據(jù)權(quán)利要求1所述的企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成WfebService的系統(tǒng),其特征在于,所述的業(yè)務(wù)流程服務(wù)接口定義模塊包括服務(wù)接口元數(shù)據(jù)模型解析器,用以對BPM系統(tǒng)所支持的數(shù)據(jù)類型進(jìn)行解析; 業(yè)務(wù)流程服務(wù)接口定義配置器,與所述的服務(wù)接口元數(shù)據(jù)模型解析器連接,用以對業(yè)務(wù)流程定義服務(wù)接口的服務(wù)名稱和服務(wù)參數(shù)用XML語言進(jìn)行定義;服務(wù)接口定義分析器,與所述的業(yè)務(wù)流程服務(wù)接口定義配置器連接,并連接所述的動態(tài)ffeb Service構(gòu)件裝配模塊,用以將服務(wù)接口定義轉(zhuǎn)換為服務(wù)對象。
3.根據(jù)權(quán)利要求2所述的企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成WfebService的系統(tǒng),其特征在于,所述的數(shù)據(jù)類型為基本類型、復(fù)雜類型和XSD類型中的一種或者多種。
4.根據(jù)權(quán)利要求2所述的企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成WfebService的系統(tǒng),其特征在于,所述的動態(tài)Web Service構(gòu)件裝配模塊包括服務(wù)接口生成器,連接所述的服務(wù)接口定義分析器,根據(jù)所述的服務(wù)接口定義產(chǎn)生服務(wù)虛擬java接口 ;服務(wù)組件生成器,連接所述的服務(wù)接口生成器,根據(jù)所述的服務(wù)接口定義創(chuàng)建包含服務(wù)和數(shù)據(jù)類型資源的服務(wù)構(gòu)件包;服務(wù)組件調(diào)度器,連接所述的服務(wù)組件生成器,并連接所述的Web Service動態(tài)生成模塊,根據(jù)所述的服務(wù)接口定義對服務(wù)組件的部署、發(fā)布、銷毀進(jìn)行調(diào)度。
5.根據(jù)權(quán)利要求4所述的企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成WfebService的系統(tǒng),其特征在于,所述的Web Service動態(tài)生成模塊包括服務(wù)構(gòu)件加載器,連接所述的服務(wù)組件調(diào)度器,用以加載所述的服務(wù)構(gòu)件包; Web Service服務(wù)生成器,連接所述的服務(wù)構(gòu)件加載器,通過所述的虛擬java接口生成 Web Service 服務(wù);Web Service服務(wù)接入器,連接所述的ffeb Service服務(wù)生成器,并連接所述的動態(tài)服務(wù)管理模塊、災(zāi)難恢復(fù)模塊、安全控制模塊和業(yè)務(wù)流程服務(wù)版本控制模塊,用以提供Web Service調(diào)用事務(wù)的業(yè)務(wù)處理。
6.一種利用權(quán)利要求1所述的系統(tǒng)實現(xiàn)企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成 WebService的方法,其特征在于,所述的方法包括以下步驟(1)所述的業(yè)務(wù)流程服務(wù)接口定義模塊進(jìn)行業(yè)務(wù)流程編排過程定義服務(wù)接口信息操作;(2)所述的動態(tài)ffebService構(gòu)件裝配模塊和所述的業(yè)務(wù)流程服務(wù)版本控制模塊進(jìn)行業(yè)務(wù)流程熱部署動態(tài)生成Web Service操作;(3)所述的災(zāi)難恢復(fù)模塊進(jìn)行系統(tǒng)故障恢復(fù)操作;(4)所述的安全控制模塊進(jìn)行業(yè)務(wù)流程服務(wù)安全攔截操作;(5)所述的ffebService動態(tài)生成模塊進(jìn)行業(yè)務(wù)流程服務(wù)接入操作;(6)所述的動態(tài)服務(wù)管理模塊進(jìn)行動態(tài)服務(wù)管理操作。
7.根據(jù)權(quán)利要求6所述的企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成WfebService的方法,其特征在于,所述的業(yè)務(wù)流程服務(wù)接口定義模塊包括服務(wù)接口元數(shù)據(jù)模型解析器、與所述的服務(wù)接口元數(shù)據(jù)模型解析器連接的業(yè)務(wù)流程服務(wù)接口定義配置器以及與所述的業(yè)務(wù)流程服務(wù)接口定義配置器連接的服務(wù)接口定義分析器,所述的業(yè)務(wù)流程服務(wù)接口定義模塊進(jìn)行業(yè)務(wù)流程編排過程定義服務(wù)接口信息操作,具體包括以下步驟(11)所述的服務(wù)接口元數(shù)據(jù)模型解析器加載系統(tǒng)支持的數(shù)據(jù)類型,所述的數(shù)據(jù)類型包括簡單數(shù)據(jù)類型和復(fù)雜數(shù)據(jù)類型;(12)所述的業(yè)務(wù)流程服務(wù)接口定義配置器編排流程并配置服務(wù)接口;(13)所述的服務(wù)接口定義分析器將業(yè)務(wù)流程中的服務(wù)定義解析為服務(wù)對象。
8.根據(jù)權(quán)利要求7所述的企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成WfebService的方法,其特征在于,所述的復(fù)雜數(shù)據(jù)類型為Java Bean, List、Set和Map類型中的一種或者多種。
9.根據(jù)權(quán)利要求7所述的企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成WfebService的方法,其特征在于,所述的服務(wù)接口定義是包含接口定義結(jié)構(gòu)描述XSD Schema的XML片段,服務(wù)接口定義包含服務(wù)接口名稱和服務(wù)接口參數(shù)列表,所述的服務(wù)接口參數(shù)列表包括傳入?yún)?shù)合返回值。
10.根據(jù)權(quán)利要求9所述的企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成WfebService的方法,其特征在于,所述的服務(wù)接口定義分析器將業(yè)務(wù)流程中的服務(wù)定義解析為服務(wù)對象,具體包括以下步驟(131)所述的服務(wù)接口定義分析器在BPM引擎啟動過程注入到服務(wù)接口元數(shù)據(jù)模型解析器中;(132)Web界面部署流程時候,服務(wù)接口元數(shù)據(jù)模型解析器調(diào)用服務(wù)接口定義分析器對服務(wù)接口定義XML片段解析為包含服務(wù)名稱,服務(wù)參數(shù)列表的Java Bean對象,并且緩存該 Java Bean 。
11.根據(jù)權(quán)利要求6所述的企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成WfebService的方法,其特征在于,所述的動態(tài)Web Service構(gòu)件裝配模塊包括服務(wù)接口生成器、連接所述的服務(wù)接口生成器的服務(wù)組件生成器以及連接所述的服務(wù)組件生成器的服務(wù)組件調(diào)度器,所述的動態(tài)Web Service構(gòu)件裝配模塊和業(yè)務(wù)流程服務(wù)版本控制模塊進(jìn)行業(yè)務(wù)流程熱部署動態(tài)生成W^eb Service操作,具體包括以下步驟(21)所述的服務(wù)接口生成器根據(jù)業(yè)務(wù)流程動態(tài)部署觸發(fā)將服務(wù)對象轉(zhuǎn)換為虛擬Java 接口 ;(22)所述的服務(wù)組件生成器加載服務(wù)對應(yīng)的虛擬Java接口、數(shù)據(jù)類型定義XSD Schema信息,并依據(jù)模板創(chuàng)建出該服務(wù)組件文件;(23)所述的服務(wù)組件調(diào)度器對服務(wù)組件進(jìn)行調(diào)度,所述的調(diào)度包括服務(wù)組件部署、發(fā)布和銷毀;(24)所述的業(yè)務(wù)流程服務(wù)版本控制模塊對服務(wù)組件版本進(jìn)行切換,并將發(fā)布版本服務(wù)組件作為默認(rèn)服務(wù)。
12.根據(jù)權(quán)利要求11所述的企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成W^ebService的方法,其特征在于,所述的服務(wù)組件包含服務(wù)裝配文件、依賴資源XSD文件和復(fù)雜數(shù)據(jù)類型 Acegis 文件。
13.根據(jù)權(quán)利要求12所述的企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成W^ebService的方法,其特征在于,所述的服務(wù)組件生成器加載服務(wù)對應(yīng)的虛擬Java接口、數(shù)據(jù)類型定義 XSDSchema信息并依據(jù)模板創(chuàng)建出該服務(wù)組件文件,具體包括以下步驟(221)所述的服務(wù)組件生成器調(diào)用服務(wù)接口生成器創(chuàng)建的虛擬Java接口作為服務(wù)接Π ;(222)所述的服務(wù)組件生成器根據(jù)服務(wù)接口的反射數(shù)據(jù)類型,判斷是否依賴相關(guān)的 XSD文件,若是,則進(jìn)入步驟023),若否,則進(jìn)入步驟0 );(223)服務(wù)組件生成器從BPM系統(tǒng)中加載該XSD文件放入服務(wù)組件,并進(jìn)入步驟 (224);(224)服務(wù)組件生成器根據(jù)服務(wù)接口的反射數(shù)據(jù)類型,判斷是否包含List、Set或Map 復(fù)雜數(shù)據(jù)類型,若是,則進(jìn)入步驟025),若否,則進(jìn)入步驟0 );(225)服務(wù)組件生成器創(chuàng)建描述復(fù)雜類型的Aegis文件放入服務(wù)組件中,并進(jìn)入步驟 (226);(226)服務(wù)組件生成器使用模板資源創(chuàng)建服務(wù)組件。
14.根據(jù)權(quán)利要求6所述的企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成WfebService的方法,其特征在于,所述的災(zāi)難恢復(fù)模塊進(jìn)行系統(tǒng)故障恢復(fù)操作,具體包括以下步驟(31)所述的災(zāi)難恢復(fù)模塊在系統(tǒng)遇到災(zāi)難故障需要重啟時作為啟動Listener檢查服務(wù)組件狀態(tài),確定是否啟動恢復(fù);(32)所述的災(zāi)難恢復(fù)模塊確定啟動恢復(fù)之后,調(diào)用所述的動態(tài)ffebService構(gòu)件裝配模塊器對系統(tǒng)中故障服務(wù)重新生成。
15.根據(jù)權(quán)利要求6所述的企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成WebService的方法,其特征在于,所述的安全控制模塊進(jìn)行業(yè)務(wù)流程服務(wù)安全攔截操作,具體為所述的安全控制模塊根據(jù)系統(tǒng)配置的用戶名和口令對服務(wù)請求進(jìn)行攔截,并禁止未授權(quán)用戶調(diào)用。
16.根據(jù)權(quán)利要求6所述的企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成WfebService的方法,其特征在于,所述的Web Service動態(tài)生成模塊進(jìn)行業(yè)務(wù)流程服務(wù)接入操作,具體為所述的ffeb Service動態(tài)生成模塊根據(jù)系統(tǒng)配置的用戶名和口令對服務(wù)請求進(jìn)行攔截,并禁止未授權(quán)用戶調(diào)用。
17.根據(jù)權(quán)利要求6所述的企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成WfebService的方法,其特征在于,所述的動態(tài)服務(wù)管理模塊進(jìn)行動態(tài)服務(wù)管理操作,具體為所述的動態(tài)服務(wù)管理模塊對系統(tǒng)內(nèi)所有的服務(wù)組件進(jìn)行管理。
18.根據(jù)權(quán)利要求17所述的企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成WfebService的方法,其特征在于,所述的管理包括查詢服務(wù)WSDL和統(tǒng)計服務(wù)數(shù)據(jù)。
全文摘要
本發(fā)明涉及一種企業(yè)BPM系統(tǒng)中實現(xiàn)業(yè)務(wù)流程動態(tài)生成Web Service的系統(tǒng),其包括業(yè)務(wù)流程服務(wù)接口定義模塊、動態(tài)Web Service構(gòu)件裝配模塊、Web Service動態(tài)生成模塊、災(zāi)難恢復(fù)模塊、動態(tài)服務(wù)管理模塊、安全控制模塊以及業(yè)務(wù)流程服務(wù)版本控制模塊。本發(fā)明還涉及利用該系統(tǒng)的業(yè)務(wù)流程動態(tài)生成Web Service的方法。利用本發(fā)明的系統(tǒng)及方法,其業(yè)務(wù)流程具有天然的集成特性,在編排流程的同時發(fā)布出Web Service,并且服務(wù)接口標(biāo)準(zhǔn)統(tǒng)一,無需編碼。同時增強(qiáng)了系統(tǒng)可移植性和可擴(kuò)展性,能夠快速適應(yīng)業(yè)務(wù)需求的變化和技術(shù)變化,能夠支撐建立高度模塊化且高度整合的軟件系統(tǒng),開發(fā)期簡單,接口明確,配置方便,運(yùn)行期效率較高、系統(tǒng)性能穩(wěn)定可靠,適用范圍較為廣泛。
文檔編號H04L29/08GK102291464SQ20111025125
公開日2011年12月21日 申請日期2011年8月29日 優(yōu)先權(quán)日2011年8月29日
發(fā)明者魏巍 申請人:上海普元信息技術(shù)股份有限公司