帥文明
摘要:隨著大數(shù)據(jù)時代的到來, 數(shù)據(jù)爆炸式增長,異構(gòu)的Web數(shù)據(jù)更是與日俱增;“互聯(lián)網(wǎng)+”時代接踵而至,Web數(shù)據(jù)的訪問需求也將大幅度增加,對Web異構(gòu)數(shù)據(jù)進(jìn)行有效集成,讓用戶更加方便快捷地共享數(shù)據(jù)是當(dāng)前人們關(guān)心的熱點。本文針對Web異構(gòu)數(shù)據(jù)集成問題, 利用中間件技術(shù)和面向服務(wù)的架構(gòu)(Service-Oriented Architecture,SOA)設(shè)計思想,采用XML、Web服務(wù)等技術(shù),給出了一個基于SOA的異構(gòu)數(shù)據(jù)集成框架,介紹了該架構(gòu)中的SOA數(shù)據(jù)集成中間件。該方法降低了異構(gòu)數(shù)據(jù)集成系統(tǒng)的耦合度,提高了系統(tǒng)的可擴展性。
關(guān)鍵詞:SOA;Web服務(wù);中間件;異構(gòu)數(shù)據(jù)集成
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)01-0018-03
隨著互聯(lián)網(wǎng)技術(shù)的普及和發(fā)展,企業(yè)應(yīng)用需求的不斷升級,許多企業(yè)或單位都實現(xiàn)了信息化,但是在信息化實施的進(jìn)程中,因為企業(yè)內(nèi)各個部門的業(yè)務(wù)和功能的異構(gòu),造成企業(yè)系統(tǒng)中的信息難以交流,形成“信息孤島”[1]。隨著“互聯(lián)網(wǎng)+”時代的到來,Web上的數(shù)據(jù)快速增長,又引文Web數(shù)據(jù)的異質(zhì)性和缺乏結(jié)構(gòu)性,使得要利用這些數(shù)據(jù)變得更加困難[2]。要應(yīng)對這些復(fù)雜的數(shù)據(jù),就要對異構(gòu)數(shù)據(jù)集成進(jìn)行研究,通過解決數(shù)據(jù)在結(jié)構(gòu)和語義上的沖突,實現(xiàn)數(shù)據(jù)庫異構(gòu)數(shù)據(jù)的集成和訪問,得到高質(zhì)量的信息服務(wù)。本文在深入研究SOA技術(shù)及數(shù)據(jù)集成方法的基礎(chǔ)上,給出了一個基于SOA的web異構(gòu)數(shù)據(jù)集成框架,通過利用標(biāo)準(zhǔn)化接口,將數(shù)據(jù)邏輯和業(yè)務(wù)邏輯分離,把數(shù)據(jù)的訪問和處理包裝成服務(wù),方便外部使用者,實現(xiàn)信息共享。
數(shù)據(jù)異構(gòu)主要表現(xiàn)在數(shù)據(jù)結(jié)構(gòu)異構(gòu)、語義異構(gòu)、數(shù)據(jù)庫異構(gòu)、存儲模式異構(gòu)等方面,具有已存性、分布性、自治性等特點[5]。異構(gòu)數(shù)據(jù)集成就是要將這些異構(gòu)數(shù)據(jù)在邏輯上或者物理上進(jìn)行有效的集中,使用戶可以方便、高效地訪問數(shù)據(jù)[3]。為了對web異構(gòu)數(shù)據(jù)源中的異構(gòu)數(shù)據(jù)進(jìn)行有效集成,SOA作為解決該問題的方案應(yīng)運而生[4]。
1 異構(gòu)數(shù)據(jù)集成方法概述
近年來,針對如上述異構(gòu)數(shù)據(jù)集成的特點,國內(nèi)外對異構(gòu)數(shù)據(jù)集成方法進(jìn)行了研究,并提出了很多不同的解決方案,但常用的異構(gòu)數(shù)據(jù)集成方法有三類:聯(lián)邦數(shù)據(jù)庫法(Federated Database Approach)、數(shù)據(jù)倉庫法(The Warehousing Approach)和虛擬法(The Virtual Approach)[6]。
聯(lián)邦數(shù)據(jù)庫法是最簡單的一種異構(gòu)數(shù)據(jù)集成方法[7]。通過這種方法,數(shù)據(jù)源與數(shù)據(jù)源之間可以互相訪問數(shù)據(jù),但是需要較多的交互接口,大大降低了系統(tǒng)的可擴展性。因此,聯(lián)邦數(shù)據(jù)庫法只適用于小范圍內(nèi)的、數(shù)據(jù)量小的數(shù)據(jù)集成,而對于網(wǎng)絡(luò)上快速增長的、半結(jié)構(gòu)化的、不斷動態(tài)變化的數(shù)據(jù)源,采用聯(lián)邦數(shù)據(jù)庫法顯然不是理想的解決方案。
數(shù)據(jù)倉庫法是指將異構(gòu)數(shù)據(jù)源中的數(shù)據(jù)預(yù)先抽取出來,形成一個全局模式,并儲存在數(shù)據(jù)倉庫中,實現(xiàn)了數(shù)據(jù)的集中式管理,數(shù)據(jù)集成質(zhì)量高,查詢性能快;但是,這種方法必須定期更新,而且無法實時反映各個數(shù)據(jù)源的數(shù)據(jù)變化,這就可能導(dǎo)致某個時間段數(shù)據(jù)倉庫的數(shù)據(jù)與異構(gòu)數(shù)據(jù)源的數(shù)據(jù)不一致[8]。數(shù)據(jù)倉庫法適用于中小規(guī)模但要求查詢效率高、數(shù)據(jù)源數(shù)據(jù)較少更新的情形,顯然也不適合時常更新的web數(shù)據(jù)。
虛擬法也叫中間件法,其核心是提供用戶一個全局模式將各數(shù)據(jù)源集中起來,數(shù)據(jù)依然存儲在各個相對獨立的數(shù)據(jù)源中,一般由中介器(Mediator)和多個包裝器(Wrapper)組成[9]。與數(shù)據(jù)倉庫法不同,該方式不必重復(fù)存儲大量數(shù)據(jù),數(shù)據(jù)及時更新,能夠?qū)崟r地反映異構(gòu)數(shù)據(jù)源中更新的數(shù)據(jù),適用于大數(shù)據(jù)量,數(shù)據(jù)更新頻繁的情況。
2 基于SOA的web異構(gòu)數(shù)據(jù)集成體系結(jié)構(gòu)
2.1 SOA簡介
SOA的概念是在1996年由Gartner公司首次提出來的。SOA是一種粗粒度、松耦合服務(wù)架構(gòu),服務(wù)與服務(wù)之間通過簡單、精確定義的接口進(jìn)行通訊,不涉及底層編程,無需通訊模型。服務(wù)是SOA的核心概念,Web服務(wù)是實現(xiàn)SOA的理想解決方案。構(gòu)建Web服務(wù)的基礎(chǔ)有簡單對象訪問協(xié)議(SOAP)、Web服務(wù)描述語言(WSDL)及統(tǒng)一描述、發(fā)現(xiàn)和集成協(xié)議(UDDI)[10]。如圖1所示,Web服務(wù)體系結(jié)構(gòu)包括服務(wù)提供者、服務(wù)注冊中心、服務(wù)請求者等三個角色。服務(wù)提供者發(fā)布服務(wù)并響應(yīng)服務(wù)請求;服務(wù)注冊中心對服務(wù)進(jìn)行集中和分類,發(fā)布新的服務(wù)或者查找已經(jīng)存在的服務(wù);服務(wù)請求者在服務(wù)注冊中心查找自己需要的服務(wù),并調(diào)用服務(wù)。
圖1 Web服務(wù)體系結(jié)構(gòu)
2.2 基于SOA的web異構(gòu)數(shù)據(jù)集成框架
由上述分析可知,中間件法較其他數(shù)據(jù)集成方法有可擴展性好、靈活度高、實時性好等優(yōu)勢,根據(jù)當(dāng)前大數(shù)據(jù)時代背景,選擇中間件法進(jìn)行異構(gòu)數(shù)據(jù)集成的分析和設(shè)計,SOA為異構(gòu)數(shù)據(jù)集成提供了新的解決方案。在基于SOA的web異構(gòu)數(shù)據(jù)集成中,異構(gòu)的數(shù)據(jù)源均被封裝在不同粒度的數(shù)據(jù)服務(wù)里面,粒度不一的數(shù)據(jù)服務(wù)可以按需任意組合,以滿足更加復(fù)雜的信息訪問請求。這樣就可以采取數(shù)據(jù)服務(wù)的方式獲取數(shù)據(jù),其他組件在運行時更容易發(fā)現(xiàn)服務(wù)并進(jìn)行綁定,從而對web異構(gòu)數(shù)據(jù)集成和共享帶來了便利。因此,本文引入XML、Web Service等關(guān)鍵技術(shù),采用SOA思想設(shè)計異構(gòu)數(shù)據(jù)集成中間件,給出一個基于SOA的異構(gòu)數(shù)據(jù)集成框架。
圖2給出的基于SOA的web異構(gòu)數(shù)據(jù)集成框架由用戶層、應(yīng)用層、服務(wù)層、數(shù)據(jù)層四層組成。
圖2 基于SOA的異構(gòu)數(shù)據(jù)集成框架
1)用戶層,終端用戶可以通過瀏覽器等終端向Web服務(wù)器發(fā)送訪問數(shù)據(jù)的請求,結(jié)果返回給用戶。
2)應(yīng)用層,是用戶與SOA異構(gòu)數(shù)據(jù)集成中間件進(jìn)行交互的界面,為服務(wù)層提供豐富的服務(wù)和數(shù)據(jù),提供統(tǒng)一的應(yīng)用編程和查詢接口,并負(fù)責(zé)與中間件的配置、管理等工作。用戶可以根據(jù)需求透明地訪問底層數(shù)據(jù),屏蔽了數(shù)據(jù)的物理位置與數(shù)據(jù)的異構(gòu)性。
3)服務(wù)層,該層是整個體系結(jié)構(gòu)的核心,它通過SOA集成中間件完成對服務(wù)的注冊、查詢、綁定、組合、調(diào)用和發(fā)布,以及服務(wù)之間的信息交互,利用多粒度服務(wù)的SOA設(shè)計原則,用戶可以根據(jù)被封裝的服務(wù)定制不同的業(yè)務(wù)規(guī)則,從而滿足不同的用戶需求。后面將對SOA集成中間件進(jìn)行分析和設(shè)計。
4)數(shù)據(jù)層,即數(shù)據(jù)源層,在最底層,是系統(tǒng)的數(shù)據(jù)來源,包括各類結(jié)構(gòu)化、半結(jié)構(gòu)化及非結(jié)構(gòu)化數(shù)據(jù)源。
2.3 SOA集成中間件體系結(jié)構(gòu)
為了提高集成系統(tǒng)的可擴展性和業(yè)務(wù)處理敏捷性的目的,采用SOA設(shè)計思想,將數(shù)據(jù)集成中間件分為兩層:服務(wù)接口層和服務(wù)提供層。設(shè)計過程中,將數(shù)據(jù)集成中間件的業(yè)務(wù)邏輯封裝成服務(wù),服務(wù)之間的通訊采用SOAP協(xié)議,服務(wù)所產(chǎn)生的結(jié)果采用公共數(shù)據(jù)模型XML存儲。這樣做有利于提高服務(wù)的自治性和降低服務(wù)間的耦合度。SOA集成中間件體系結(jié)構(gòu)如圖3所示。
服務(wù)接口層:管理所有的服務(wù),是存取服務(wù)的入口。主要由服務(wù)解析模塊、數(shù)據(jù)匯總模塊、服務(wù)注冊庫模塊等模塊組成。服務(wù)解析模塊負(fù)責(zé)從應(yīng)用層接收服務(wù)請求,通過業(yè)務(wù)建模將業(yè)務(wù)流程分解,識別相關(guān)的業(yè)務(wù)服務(wù),定義消息類型,生成服務(wù)接口并綁定服務(wù),然后通過注冊中心將服務(wù)注冊到服務(wù)庫里。服務(wù)請求者可以在服務(wù)庫里查找到該服務(wù),實現(xiàn)不同服務(wù)間的相互組合。最后數(shù)據(jù)匯總模塊將下層返回的數(shù)據(jù)進(jìn)行匯總,以XML格式返回給Web服務(wù)。
圖3 SOA集成中間件體系結(jié)構(gòu)
服務(wù)提供層:將數(shù)據(jù)集成中間件的主要功能模塊封裝成具有統(tǒng)一標(biāo)準(zhǔn)的服務(wù)。包括存儲管理模塊、數(shù)據(jù)引擎模塊、數(shù)據(jù)服務(wù)模塊、安全管理模塊、數(shù)據(jù)源適配器模塊等,這些模塊都由多個不同的服務(wù)組成。其中存儲管理模塊主要功能是讀取和存儲管理XML文檔;數(shù)據(jù)引擎模塊主要負(fù)責(zé)優(yōu)化用戶的查詢請求,分解數(shù)據(jù)服務(wù)模塊傳人的操作命令,然后將分解后的操作存入操作隊列,按照操作隊列調(diào)用對應(yīng)的數(shù)據(jù)源適配器執(zhí)行最終的數(shù)據(jù)操作;數(shù)據(jù)服務(wù)模塊主要提供數(shù)據(jù)添加、刪除、修改、查詢等服務(wù);安全管理模塊主要包括權(quán)限認(rèn)證、加密解密等方面的內(nèi)容,為數(shù)據(jù)集成提供安全保障;數(shù)據(jù)源適配器模塊主要負(fù)責(zé)與底層數(shù)據(jù)源進(jìn)行交互,執(zhí)行增、刪、改、查等操作,并將最終結(jié)果轉(zhuǎn)化為統(tǒng)一的標(biāo)準(zhǔn)格式。
3 系統(tǒng)特點分析及關(guān)鍵技術(shù)
3.1 系統(tǒng)特點分析
本文提出四層架構(gòu)的基于SOA的異構(gòu)數(shù)據(jù)集成方法具有以下特點:
①采用了中間件的思想,數(shù)據(jù)更新及時,避免了數(shù)據(jù)重復(fù)存儲。
②消息傳遞通過輕量級對象訪問協(xié)議SOAP實現(xiàn),并采用HTTP作為傳輸協(xié)議,使系統(tǒng)的跨平臺集成成為可能。
③Web服務(wù)提供完全的封裝性,實現(xiàn)系統(tǒng)功能的封裝,而且不影響集成的安全穩(wěn)定性。
④不同于傳統(tǒng)的集成技術(shù),該系統(tǒng)可是實現(xiàn)多入口集成,保證了集成方案的靈活性。
3.2 基于語義的查找技術(shù)
現(xiàn)有的Web服務(wù)查找技術(shù)本質(zhì)上都基于關(guān)鍵字,在UDDI中查找對應(yīng)的Web服務(wù)時,必需根據(jù)關(guān)鍵字先查找對應(yīng)的實體,再查找服務(wù),獲取到Web服務(wù)的WSDL之后,用于在其中查找對應(yīng)的操作時,也使用基于關(guān)鍵字的方法。但對于操作的名字、輸入?yún)?shù)、輸出參數(shù)等都無法了解其確切含義,因此這種查找方法的準(zhǔn)確度和效率都較低。
如果在Web服務(wù)中引入語義,那么服務(wù)的查找可以按照基于語義的方式進(jìn)行。語義Web是解決服務(wù)識別、查找與匹配的主要技術(shù),如何運用對Web服務(wù)的語義描述來為一個工作流自動尋找和匹配Web服務(wù)是需要解決的問題?;谡Z義查找方法的準(zhǔn)確度將遠(yuǎn)高于基于關(guān)鍵字的方法。
4 結(jié)束語
隨著大數(shù)據(jù)時代的到來,“互聯(lián)網(wǎng)+”的普及,數(shù)據(jù)共享問題已經(jīng)成為阻礙信息化進(jìn)程的重要因素,數(shù)據(jù)集成是解決數(shù)據(jù)共享問題的根本方法。文章給出了基于SOA的web異構(gòu)數(shù)據(jù)集成方法總體框架,提出了一種web異構(gòu)數(shù)據(jù)集成方案,對該方案特點和關(guān)鍵技術(shù)進(jìn)行了分析。該方法較好地解決了因為數(shù)據(jù)異構(gòu)而導(dǎo)致數(shù)據(jù)異構(gòu)難以訪問的問題,有效地實現(xiàn)了跨平臺數(shù)據(jù)共享。另外,政府開放數(shù)據(jù)是當(dāng)前研究的熱點,如何對使這些數(shù)據(jù)有效共享是下一步需要解決的問題。
參考文獻(xiàn):
[1] 吳昊,邢桂芬.基于Web Service的企業(yè)數(shù)據(jù)集成的研究[J].計算機工程與設(shè)計,2005,26(10):2725-2727.
[2] 劉偉,孟小峰,孟衛(wèi)一.Deep Web數(shù)據(jù)集成研究綜述[J].計算機學(xué)報,2007,30(9):1475-1487.
[3] 郎炯,劉宴兵,熊仕勇.基于SOA軟件架構(gòu)的數(shù)據(jù)集成方法[J].計算機應(yīng)用,2010,30(9):2370-2373.
[4] 凌曉東.SOA綜述[J].計算機應(yīng)用與軟件,2007,24(10):122-124.
[5] 張慶福,萬麟瑞.基于SOA的異構(gòu)數(shù)據(jù)集成軟件架構(gòu)研究[J].計算機技術(shù)與發(fā)展,2011,21(5):17-21.
[6] 黃浩,歐陽柳波.基于Web Services的語義異構(gòu)數(shù)據(jù)集成設(shè)計與實現(xiàn)[J].計算機工程與設(shè)計,2009,30(19):4406-4410.
[7] 李冠宇,劉軍,張俊.分布式異構(gòu)數(shù)據(jù)集成系統(tǒng)的研究與實現(xiàn)[J].計算機應(yīng)用研究,2004,21(3):96-98.
[8] Riccardo Torlone.Two approaches to the integration of heterogeneous data warehouses[J],Journal of Distrib Parallel Databases,2008,(23):69-97.
[9] 袁景凌,徐麗麗,苗連超.基于XML的虛擬法異構(gòu)數(shù)據(jù)集成方法研究[J].2009,26(1):172-174.
[10] 韓丁,沈建京,萬芳,等.基于SOA的服務(wù)構(gòu)件封裝技術(shù)研究[J].計算機工程與設(shè)計,2009,30(7):1756-1759.