專利名稱:一種異構(gòu)服務(wù)集成引擎的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算軟件技術(shù)領(lǐng)域,特別是一種異構(gòu)服務(wù)的集成引擎。
背景技術(shù):
面向服務(wù)的體系結(jié)構(gòu)SOA(Service Oriented Architecture)已成為企業(yè)應(yīng)用集成的主導(dǎo)方向,該方法可以在不修改客戶端應(yīng)用的前提下,將互聯(lián)網(wǎng)上的資源進(jìn)行動(dòng)態(tài)集成。企業(yè)服務(wù)總線ESB的出現(xiàn)是消息中間件發(fā)展的必然結(jié)果。在SOA中,ESB經(jīng)常被視為服務(wù)連接和消息轉(zhuǎn)換的基礎(chǔ),這種結(jié)構(gòu)的顯著特點(diǎn)是服務(wù)定義與調(diào)用相分離。服務(wù)和數(shù)據(jù)經(jīng)常被部署在互聯(lián)網(wǎng)和企業(yè)內(nèi)部網(wǎng)上,使用Web服務(wù)描述語言(WSDL)進(jìn)行定義,有自己的接口和方法,任何結(jié)點(diǎn)中的數(shù)據(jù)庫都可以作為數(shù)據(jù)源。同時(shí),ESB也是一種支持消息接受、 網(wǎng)絡(luò)服務(wù)、數(shù)據(jù)轉(zhuǎn)換和智能路由的標(biāo)準(zhǔn)集成。目前ESB的路由技術(shù)僅局限于靜態(tài)路由表,使用服務(wù)提供者和數(shù)據(jù)源的URI地址來描述路由路徑,一旦ESB初始化之后,路由路徑將不再發(fā)生變化。服務(wù)和數(shù)據(jù)資源的集成,是目前各類新興信息技術(shù)如云計(jì)算等的基礎(chǔ),缺乏一種有效的利用動(dòng)態(tài)路由機(jī)制完成抽象服務(wù)與服務(wù)提供者、抽象數(shù)據(jù)與數(shù)據(jù)源之間的映射和路徑選擇引擎。
發(fā)明內(nèi)容
本發(fā)明的目的提出一種集成動(dòng)態(tài)路由機(jī)制,能解決異構(gòu)服務(wù)之間集成問題的服務(wù)集成引擎及模型。本發(fā)明通過如下方案實(shí)現(xiàn)一種異構(gòu)服務(wù)集成引擎,其特征在于所述引擎內(nèi)設(shè)有交互路由器、服務(wù)路由器、 擴(kuò)展SQL語句執(zhí)行器和表存儲區(qū);其中,交互路由器,用于為服務(wù)提供者、數(shù)據(jù)源和服務(wù)總線之間的服務(wù)流或數(shù)據(jù)流選擇連接的路由路徑,響應(yīng)上下層的服務(wù)請求和數(shù)據(jù)操作請求,傳遞服務(wù)流和數(shù)據(jù)流并更新表存儲區(qū)的各表文件;服務(wù)路由器,用于從緩沖區(qū)中提取服務(wù)流,從表存儲區(qū)內(nèi)的抽象服務(wù)映射表,獲取每個(gè)服務(wù)提供者的URI地址及其描述信息,最后選擇確定獲取服務(wù)和數(shù)據(jù)路由路徑;擴(kuò)展SQL語句執(zhí)行器,用于提取緩沖區(qū)的數(shù)據(jù)流進(jìn)行轉(zhuǎn)化、處理,同時(shí)執(zhí)行擴(kuò)展 SQL語句;表存儲區(qū),用于存儲路由表、抽象服務(wù)描述表、抽象數(shù)據(jù)描述表、抽象服務(wù)映射表和抽象數(shù)據(jù)映射表。其中,所述表存儲區(qū)存儲路由表為動(dòng)態(tài)路由表;所述表存儲區(qū)存儲抽象服務(wù)描述表包括服務(wù)名、實(shí)現(xiàn)模塊的函數(shù)名和規(guī)模信息;所述表存儲區(qū)存儲抽象數(shù)據(jù)描述表包括表名、數(shù)據(jù)庫、表描述信息;所述表存儲區(qū)存儲抽象服務(wù)映射表包括服務(wù)名、服務(wù)提供的URI、 服務(wù)實(shí)現(xiàn)模塊描述信息;所述表存儲區(qū)存儲抽象數(shù)據(jù)映射表包括表、數(shù)據(jù)的URI、數(shù)據(jù)源描述信息。
圖I是引擎應(yīng)用環(huán)境的分層結(jié)構(gòu)圖;圖2是本發(fā)明引擎的結(jié)構(gòu)框圖。
具體實(shí)施例方式參考圖1,本發(fā)明引擎適合應(yīng)用在采用三層結(jié)構(gòu)系統(tǒng)環(huán)境中。三層結(jié)構(gòu)分別包括執(zhí)行層、服務(wù)總線層和業(yè)務(wù)處理層。其中,本發(fā)明引擎應(yīng)用在服務(wù)總線層。執(zhí)行層,在執(zhí)行層中存在著大量的服務(wù)提供者和數(shù)據(jù)源,每個(gè)提供者給出了多種服務(wù)功能,包括計(jì)算和通訊等。在任何時(shí)刻,提供者都可以添加、刪除和修改服務(wù)實(shí)現(xiàn)模塊和數(shù)據(jù)。但在更新之后,必須發(fā)送消息通知服務(wù)總線層。服務(wù)總線層提供基礎(chǔ)的集成服務(wù)與用戶定制的應(yīng)用服務(wù);支持多種集成服務(wù)模式;支持服務(wù)的封裝、重用、服務(wù)組合、服務(wù)調(diào)度;提供服務(wù)配置管理的前臺工具集合,并提供行業(yè)的服務(wù)規(guī)約標(biāo)準(zhǔn);提供內(nèi)置的各種公用服務(wù);提供多種安全機(jī)制并支持和第三方安全系統(tǒng)的有效集成,提供有效的安全監(jiān)控機(jī)制。業(yè)務(wù)處理層中,業(yè)務(wù)分析器依據(jù)抽象服務(wù)描述表和抽象數(shù)據(jù)描述表將業(yè)務(wù)分解為若干服務(wù)流和數(shù)據(jù)流。參考圖2,本發(fā)明引擎交互路由器、服務(wù)路由器、擴(kuò)展SQL語句執(zhí)行器和表存儲區(qū)組成。交互路由器,用于為服務(wù)提供者、數(shù)據(jù)源和服務(wù)總線之間的服務(wù)流或數(shù)據(jù)流選擇連接的路由路徑,響應(yīng)上下層的服務(wù)請求和數(shù)據(jù)操作請求,傳遞服務(wù)流和數(shù)據(jù)流并更新表存儲區(qū)的各表文件。服務(wù)路由器,用于從緩沖區(qū)中提取服務(wù)流,從表存儲區(qū)內(nèi)的抽象服務(wù)映射表,獲取每個(gè)服務(wù)提供者的URI地址及其描述信息,最后選擇確定獲取服務(wù)和數(shù)據(jù)路由路徑。擴(kuò)展SQL語句執(zhí)行器,用于提取緩沖區(qū)的數(shù)據(jù)流進(jìn)行轉(zhuǎn)化、處理,同時(shí)執(zhí)行擴(kuò)展SQL語句。表存儲區(qū),用于存儲路由表、抽象服務(wù)描述表、抽象數(shù)據(jù)描述表、抽象服務(wù)映射表和抽象數(shù)據(jù)映射表。路由表為動(dòng)態(tài)路由表;抽象服務(wù)描述表包括服務(wù)名、實(shí)現(xiàn)模塊的函數(shù)名和規(guī)模信息;抽象數(shù)據(jù)描述表包括表名、數(shù)據(jù)庫、表描述信息;抽象服務(wù)映射表包括服務(wù)名、服務(wù)提供的URI、服務(wù)實(shí)現(xiàn)模塊描述信息。應(yīng)用時(shí),服務(wù)提供者給出了具有不同功能的服務(wù)實(shí)現(xiàn)模塊,因而某項(xiàng)服務(wù)可由不同的提供者來實(shí)現(xiàn)。系統(tǒng)運(yùn)行一段時(shí)間之后,提供者會發(fā)現(xiàn)自身的實(shí)現(xiàn)模塊中存在著一些問題,因而必須對模塊進(jìn)行修改或發(fā)布新的模塊。這種變化必須通知服務(wù)請求者,以解決抽象服務(wù)與其實(shí)現(xiàn)模塊之間的沖突。提供者發(fā)送消息通知引擎的交互路由器將要增加新服務(wù)、刪除服務(wù)或更新某項(xiàng)服務(wù),消息的主要內(nèi)容包括服務(wù)變化說明。當(dāng)刪除現(xiàn)有數(shù)據(jù)源或增加新數(shù)據(jù)源時(shí),數(shù)據(jù)提供者應(yīng)發(fā)送消息通知交互路由器,消息的主要內(nèi)容包括數(shù)據(jù)變化說明。交互路由器將修改路由表、抽象服務(wù)描述表、抽象數(shù)據(jù)描述表、抽象服務(wù)映射表和抽象數(shù)據(jù)映射表,其目的是使抽象服務(wù)和服務(wù)提供者、抽象數(shù)據(jù)與數(shù)據(jù)源之間保持一致。路由表、抽象服務(wù)描述表、抽象數(shù)據(jù)描述表、抽象服務(wù)映射表和抽象數(shù)據(jù)映射表的更新步驟如下(I)交互路由器發(fā)送消息通知服務(wù)路由器和擴(kuò)展SQL語句執(zhí)行器抽象服務(wù)描述表、抽象數(shù)據(jù)描述表、抽象服務(wù)映射表和抽象數(shù)據(jù)映射表將被修改(接收到此消息后,服務(wù)路由器和擴(kuò)展SQL語句執(zhí)行器將停止工作)。
(2)如果交互路由器修改抽象服務(wù)描述表和抽象數(shù)據(jù)描述表中的對應(yīng)項(xiàng),同時(shí)根據(jù)服務(wù)提供者的URI地址路徑修改路由表。(3)如果交互路由器修改抽象服務(wù)描述表、抽象數(shù)據(jù)映射表的對應(yīng)項(xiàng),同時(shí)根據(jù)數(shù)據(jù)源URI地址路徑修改路由表。(4)交互路由器發(fā)送消息通知服務(wù)路由器和擴(kuò)展SQL語句執(zhí)行器更新過程結(jié)束 (接收到此消息后,服務(wù)路由器重新處理緩沖區(qū)中的服務(wù)流,擴(kuò)展SQL語句執(zhí)行器重新處理緩沖區(qū)中的數(shù)據(jù)流)。服務(wù)路由器從緩沖區(qū)中提取服務(wù)流,通過查尋抽象服務(wù)映射表得到每個(gè)服務(wù)提供者的URI地址及其描述信息。由于不同的服務(wù)提供者可以實(shí)現(xiàn)同一服務(wù)功能,因而需要從多個(gè)候選提供者中選擇一個(gè)最佳的。服務(wù)路由器將依據(jù)用戶預(yù)先定義的規(guī)則(例如,用戶的喜好)、服務(wù)-數(shù)據(jù)流的評價(jià)權(quán)值和服務(wù)實(shí)現(xiàn)模塊的屬性來確定最佳提供者。最佳服務(wù)提供者和數(shù)據(jù)源的URI地址及其相關(guān)信息被發(fā)送到交互路由器中,以等待進(jìn)一步的處理。服務(wù)-數(shù)據(jù)路由依次執(zhí)行每項(xiàng)服務(wù)請求和數(shù)據(jù)操作請求,通過查詢路由表,根據(jù)URI地址確定其路由路徑。當(dāng)服務(wù)實(shí)現(xiàn)模塊發(fā)生變化時(shí),服務(wù)提供者和數(shù)據(jù)源將發(fā)送消息通知交互路由表停止當(dāng)前的處理工作,完成路由表、抽象服務(wù)描述表、抽象數(shù)據(jù)描述表、抽象服務(wù)映射表和抽象數(shù)據(jù)映射表的更新任務(wù)。交互路由器可以完成具有不同格式和內(nèi)容的消息之間的相互轉(zhuǎn)換,同時(shí)它還能屏蔽消息和協(xié)議中的差異。
權(quán)利要求
1.一種異構(gòu)服務(wù)集成引擎,其特征在于所述引擎內(nèi)設(shè)有交互路由器、服務(wù)路由器、擴(kuò)展SQL語句執(zhí)行器和表存儲區(qū);其中,交互路由器,用于為服務(wù)提供者、數(shù)據(jù)源和服務(wù)總線之間的服務(wù)流或數(shù)據(jù)流選擇連接的路由路徑,響應(yīng)上下層的服務(wù)請求和數(shù)據(jù)操作請求,傳遞服務(wù)流和數(shù)據(jù)流并更新表存儲區(qū)的各表文件;服務(wù)路由器,用于從緩沖區(qū)中提取服務(wù)流,從表存儲區(qū)內(nèi)的抽象服務(wù)映射表,獲取每個(gè)服務(wù)提供者的URI地址及其描述信息,最后選擇確定獲取服務(wù)和數(shù)據(jù)路由路徑;擴(kuò)展SQL語句執(zhí)行器,用于提取緩沖區(qū)的數(shù)據(jù)流進(jìn)行轉(zhuǎn)化、處理,同時(shí)執(zhí)行擴(kuò)展SQL語句;表存儲區(qū),用于存儲路由表、抽象服務(wù)描述表、抽象數(shù)據(jù)描述表、抽象服務(wù)映射表和抽象數(shù)據(jù)映射表。
2.如權(quán)利要求I所述的異構(gòu)服務(wù)集成引擎,其特征在于,所述引擎應(yīng)用于服務(wù)總線層。
3.如權(quán)利要求2所述的異構(gòu)服務(wù)集成引擎,其特征在于,應(yīng)用所述引擎的系統(tǒng)具有執(zhí)行層、服務(wù)總線層、業(yè)務(wù)處理層。
4.如權(quán)利要求I所述的異構(gòu)服務(wù)集成引擎,其特征在于,所述表存儲區(qū)存儲路由表為動(dòng)態(tài)路由表。
5.如權(quán)利要求I所述的異構(gòu)服務(wù)集成引擎,其特征在于,所述表存儲區(qū)存儲抽象服務(wù)描述表包括服務(wù)名、實(shí)現(xiàn)模塊的函數(shù)名和規(guī)模信息。
6.如權(quán)利要求I所述的異構(gòu)服務(wù)集成引擎,其特征在于,所述表存儲區(qū)存儲抽象數(shù)據(jù)描述表包括表名、數(shù)據(jù)庫、表描述信息。
7.如權(quán)利要求I所述的異構(gòu)服務(wù)集成引擎,其特征在于,所述表存儲區(qū)存儲抽象服務(wù)映射表包括服務(wù)名、服務(wù)提供的URI、服務(wù)實(shí)現(xiàn)模塊描述信息。
8.如權(quán)利要求I所述的異構(gòu)服務(wù)集成引擎,其特征在于,所述表存儲區(qū)存儲抽象數(shù)據(jù)映射表包括表、數(shù)據(jù)的URI、數(shù)據(jù)源描述信息。
全文摘要
本發(fā)明公開一種異構(gòu)服務(wù)集成引擎,其特征在于所述引擎內(nèi)設(shè)有交互路由器、服務(wù)路由器、擴(kuò)展SQL語句執(zhí)行器和表存儲區(qū);其中,交互路由器,用于為服務(wù)提供者、數(shù)據(jù)源和服務(wù)總線之間的服務(wù)流或數(shù)據(jù)流選擇連接的路由路徑,響應(yīng)上下層的服務(wù)請求和數(shù)據(jù)操作請求,傳遞服務(wù)流和數(shù)據(jù)流并更新表存儲區(qū)的各表文件;服務(wù)路由器,用于從緩沖區(qū)中提取服務(wù)流,從表存儲區(qū)內(nèi)的抽象服務(wù)映射表,獲取每個(gè)服務(wù)提供者的URI地址及其描述信息,最后選擇確定獲取服務(wù)和數(shù)據(jù)路由路徑;擴(kuò)展SQL語句執(zhí)行器,用于提取緩沖區(qū)的數(shù)據(jù)流進(jìn)行轉(zhuǎn)化、處理,同時(shí)執(zhí)行擴(kuò)展SQL語句;表存儲區(qū),用于存儲路由表、抽象服務(wù)描述表、抽象數(shù)據(jù)描述表、抽象服務(wù)映射表和抽象數(shù)據(jù)映射表。
文檔編號G06F17/30GK102609519SQ20121002912
公開日2012年7月25日 申請日期2012年2月7日 優(yōu)先權(quán)日2012年2月7日
發(fā)明者盧林發(fā), 葉燦才, 黃家祺 申請人:中山愛科數(shù)字科技股份有限公司