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