農(nóng)嘉NONG Jia
(廣西生態(tài)工程職業(yè)技術(shù)學(xué)院汽車與信息工程系,柳州545001)
服務(wù)組合源于軟件重用,其基本思想是使用系統(tǒng)中已有的Web服務(wù),通過(guò)它們一定順序的組合或組合順序的改變,創(chuàng)建出新的或更高質(zhì)量的服務(wù)滿足用戶需求。總的來(lái)說(shuō),其定義可歸納為兩個(gè):
①基于過(guò)程模型:從服務(wù)組合內(nèi)在因素的角度,將其定義為一個(gè)依賴于特定控制流和數(shù)據(jù)流結(jié)合起來(lái)的、能夠完成一定任務(wù)的Web服務(wù)集合。②基于構(gòu)件單元:從構(gòu)件的角度,將服務(wù)組合定義為一個(gè)由自治且能相互協(xié)作的自描述單元所組成的系統(tǒng),如文獻(xiàn)[1]。
本文根據(jù)服務(wù)的特性設(shè)計(jì)一種基于Web的服務(wù)組合系統(tǒng),如圖1所示。
圖1 服務(wù)組合系統(tǒng)圖
從圖中看,服務(wù)的組合處理包括用戶需求翻譯以及服務(wù)需求執(zhí)行等都是通過(guò)服務(wù)組合系統(tǒng)平臺(tái)來(lái)實(shí)現(xiàn)的。在用戶通過(guò)WEB服務(wù)圖形化工具進(jìn)行服務(wù)組合,并通過(guò)需求翻譯器翻譯成系統(tǒng)的組合語(yǔ)言之后傳到系統(tǒng)平臺(tái),在服務(wù)組合系統(tǒng)平臺(tái)接收方,系統(tǒng)降調(diào)用各底層服務(wù)并按一定的規(guī)則進(jìn)行組合,并將用戶自定義的組合服務(wù)以XML文檔直接存儲(chǔ)到數(shù)據(jù)庫(kù)。
服務(wù)組合系統(tǒng)實(shí)現(xiàn)主要包括兩個(gè)個(gè)關(guān)鍵部分:服務(wù)組合建模、服務(wù)組合系統(tǒng)。
3.1 服務(wù)組合建模 為用戶提供建立Web組合執(zhí)行流程的建模手段,該服務(wù)應(yīng)支持針對(duì)具體服務(wù)的靜態(tài)服務(wù)組合和針對(duì)抽象服務(wù)的動(dòng)態(tài)服務(wù)組合兩種建模方法。利用組合服務(wù)建模服務(wù)可組成一個(gè)設(shè)計(jì)WEB服務(wù)組合執(zhí)行流程的圖形化建模工具,該服務(wù)可以根據(jù)用戶的需求建立由抽象服務(wù)組成的WEB服務(wù)流程,是實(shí)現(xiàn)動(dòng)態(tài)WEB服務(wù)組合的關(guān)鍵。該服務(wù)輸出為組合服務(wù)流程文檔,該文檔包含的信息規(guī)范如下:
服務(wù)組件名
服務(wù)組件業(yè)務(wù)邏輯描述
服務(wù)組件可調(diào)用接口列表
服務(wù)組件引用的其它組件列表
服務(wù)組件實(shí)現(xiàn)技術(shù)
——公共接口1的名稱
——公共接口1的實(shí)現(xiàn)的業(yè)務(wù)邏輯描述
——公共接口1的所需的參數(shù)列
——公共接口1的返回的結(jié)果信息描述
……
服務(wù)組合建模每次運(yùn)行時(shí),根據(jù)用戶需求可以選擇各種基本服務(wù)來(lái)填充進(jìn)模型中,再根據(jù)各種數(shù)據(jù)流的走向?qū)⒎?wù)按需鏈接起來(lái),服務(wù)和服務(wù)根據(jù)彼此的業(yè)務(wù)需要可以有上下級(jí)關(guān)系或同級(jí)關(guān)系。用戶定義好服務(wù)組合后由需求翻譯器將該組合服務(wù)翻譯為組合服務(wù)流程文檔,并通過(guò)網(wǎng)絡(luò)傳遞至服務(wù)組合系統(tǒng)平臺(tái)執(zhí)行。
3.2 服務(wù)組合系統(tǒng) 通過(guò)接收需求翻譯器傳遞過(guò)來(lái)的組合服務(wù)流程文檔,由需求執(zhí)行引擎進(jìn)行翻譯解釋,服務(wù)組合管理器負(fù)責(zé)調(diào)度基礎(chǔ)服務(wù)數(shù)據(jù)庫(kù)進(jìn)行構(gòu)造組合,并通過(guò)XML數(shù)據(jù)庫(kù)服務(wù)器部署至組合服務(wù)數(shù)據(jù)庫(kù)。
準(zhǔn)備工作包括:①接收組合流程文檔;②翻譯組合流程文檔;③傳遞至組合服務(wù)管理器。
有了具體組合服務(wù)模型的Schema,服務(wù)組合管理器就可以針對(duì)具體的業(yè)務(wù)服務(wù)進(jìn)行服務(wù)構(gòu)造了,主要通過(guò)以下幾步來(lái)實(shí)現(xiàn):
①服務(wù)組合管理器調(diào)用基礎(chǔ)服務(wù)數(shù)據(jù)庫(kù)中的基礎(chǔ)服務(wù)進(jìn)行服務(wù)組合,當(dāng)服務(wù)組合的量比較大時(shí),還將調(diào)用服務(wù)器中的組合算法來(lái)進(jìn)行優(yōu)化工作,算法問(wèn)題將在其它文章中闡述;②組合完畢后通過(guò)基于XML數(shù)據(jù)庫(kù)服務(wù)器來(lái)進(jìn)行服務(wù)的XML轉(zhuǎn)換,并轉(zhuǎn)換成XML文檔;③進(jìn)行文檔的驗(yàn)證,以確保文檔的有效,最后存入組合服務(wù)數(shù)據(jù)庫(kù),以待用戶的調(diào)用。
在建模工具調(diào)用后臺(tái)基礎(chǔ)服務(wù)列表后,用戶在圖形化建模工具里可以為服務(wù)流程建模。用戶按照需求從預(yù)制組件面板中選擇所需服務(wù),拖入設(shè)計(jì)窗口,通過(guò)事件路徑將各服務(wù)連接成一個(gè)圖形化的業(yè)務(wù)流程,第二步將是為每個(gè)組件進(jìn)行相關(guān)屬性的基本配置,另外還包括其它特殊信息例如數(shù)據(jù)庫(kù)組件的數(shù)據(jù)庫(kù)類型、驅(qū)動(dòng)等也可以進(jìn)行配置。建模工具根據(jù)用戶的需求設(shè)計(jì)通過(guò)翻譯器后生成組合服務(wù)流程文檔,傳至組合服務(wù)系統(tǒng)平臺(tái),由后臺(tái)負(fù)責(zé)進(jìn)行組合、保存。當(dāng)提示保存成功后,用戶便可以進(jìn)行組合服務(wù)流程的執(zhí)行了。
例如學(xué)院要審核教師工作量的服務(wù),將需要組合教師信息調(diào)用、教師工作量錄入、領(lǐng)導(dǎo)批閱等服務(wù)。每個(gè)都提供了調(diào)用接口例如 Getteacherinfo(),Getteacherwork(),Getleader()等,組合服務(wù)后生成的組合服務(wù)流程文檔內(nèi)容如下:
服務(wù)組件名:TeacherWork and Services。
服務(wù)組件業(yè)務(wù)邏輯描述:調(diào)用教師信息輸入、教師工作量輸入、領(lǐng)導(dǎo)批閱等服務(wù)組合為審核教師工作量服務(wù)……
服務(wù)組件可調(diào)用接口列表:Getteacherinfo(),Getteacherwork(),Getleader()……
服務(wù)組件引用的其它組件列表:教師信息輸入服務(wù)、教師工作量輸入服務(wù)、領(lǐng)導(dǎo)批閱服務(wù)……
本文設(shè)計(jì)了組合服務(wù)系統(tǒng),并對(duì)其設(shè)計(jì)和具體的服務(wù)處理進(jìn)行了分析和設(shè)計(jì)。本系統(tǒng)是基于服務(wù)來(lái)實(shí)現(xiàn)的,保證了服務(wù)組合的安全與可靠,為Web服務(wù)組合問(wèn)題的研究和企業(yè)應(yīng)用開(kāi)發(fā)提供更強(qiáng)有力的支持,本文設(shè)計(jì)的服務(wù)組合系統(tǒng)可以作為企業(yè)應(yīng)用服務(wù)開(kāi)發(fā)組件的一個(gè)參考。
[1]Hamadi R,Benatallh B.A Petri Net-based Model for Web Service Composition [C].Proceedingsofthe14th Australasian Database Conference on Database Technologies.Adelaide:ACM Press,2003.
[2]趙彧,范玉順.面向信息化整體解決方案的集成化企業(yè)建??蚣躘J].控制與決策,2004(7):769-772.
[3]劉小琳,鄭有才.面向服務(wù)的工作流技術(shù)[J].計(jì)算機(jī)工程與應(yīng)用,2006,27.