劉芳 楊暢 皮碧媛
摘要: 詳細分析了當前分布異構數(shù)據(jù)庫訪問技術的研究現(xiàn)狀和發(fā)展趨勢,結合Web Services的優(yōu)勢構造了一個基于Web Services的分布異構數(shù)據(jù)庫訪問系統(tǒng),并闡述了系統(tǒng)的實現(xiàn)過程。該系統(tǒng)能夠有效地支持分布式數(shù)據(jù)查詢,數(shù)據(jù)源透明并且支持跨平臺檢索。
關鍵詞: 分布異構; 數(shù)據(jù)庫訪問技術; Web Services
中圖分類號:TP301文獻標志碼:A 文章編號:1006-8228(2012)05-01-02
Research of database access technology for heterogeneous distributed environment
Liu Fang1, Yang Chang2, Pi Biyuan1
(1. Engineering College of Jiangxi yuzhou scientific vocational college, Xinyu, Jiangxi 338029, China;
2. The Pinghu campus of Jiaxing University Institute of computer)
Abstract: The status and development trend of Database Access Technology for Heterogeneous Distributed Environment is analyzed, Combined the advantages of web service, a model of database access system based on Web Services for Heterogeneous Distributed Environment is constructed, and then the system implementation process is elaborated, This system can achieve distributed data query, and data source is transparent and supports cross-platform retrieval.
Key words: heterogeneous distributed; database access technology; Web Services
0 引言
網(wǎng)絡技術的迅速發(fā)展,為企業(yè)與企業(yè)之間實現(xiàn)資源共享提供了可能。然而企業(yè)內部各個部門所使用的數(shù)據(jù)庫系統(tǒng)往往不相同,不同企業(yè)所使用的數(shù)據(jù)庫系統(tǒng)也可能不一致,隨著企業(yè)內部各部門之間以及企業(yè)與企業(yè)之間的聯(lián)系日益緊密,迫切需要把這些相對孤立的信息資源有效地統(tǒng)一起來,提高信息資源的共享程度。在這種分布異構環(huán)境下實現(xiàn)不同數(shù)據(jù)庫之間數(shù)據(jù)資源的共享,成為當前信息化建設過程中急需解決的問題之一。
1 研究現(xiàn)狀及發(fā)展趨勢
把異構數(shù)據(jù)庫集成起來,給用戶呈現(xiàn)一個通用的數(shù)據(jù)視圖,是有效解決異構數(shù)據(jù)庫訪問的關鍵。目前常用解決異構數(shù)據(jù)庫集成的方法主要有數(shù)據(jù)庫遷移和轉換、多數(shù)據(jù)庫系統(tǒng)和中間件[1]技術等。數(shù)據(jù)庫遷移和轉換方法的主要原理是,通過數(shù)據(jù)類型的轉換實現(xiàn)格式的一致性,使得數(shù)據(jù)源中的數(shù)據(jù)遷移到新的數(shù)據(jù)庫管理系統(tǒng)能夠被有效管理。然而這種方法在對數(shù)據(jù)進行更新時很難達到同步,往往不能應用在數(shù)據(jù)更新比較頻繁而實時要求較高的情況下。
多數(shù)據(jù)庫系統(tǒng)是一個能夠實現(xiàn)對多個異構數(shù)據(jù)庫進行有效管理的系統(tǒng),它呈現(xiàn)在用戶面前的往往是一個集成度較高的結構而其內部又能實現(xiàn)各個異構數(shù)據(jù)庫的自治,系統(tǒng)相對比較成熟,然而擴展性較差。多數(shù)據(jù)庫系統(tǒng)主要有全局模式和聯(lián)邦數(shù)據(jù)庫系統(tǒng)兩種類型,由于缺乏相應的統(tǒng)一標準,需要進行某些特定的限制條件才能實現(xiàn),其靈活性和通用性比較差。
中間件是一個介于異構數(shù)據(jù)庫系統(tǒng)和應用程序之間的統(tǒng)一接口,其作用主要是協(xié)調各數(shù)據(jù)庫系統(tǒng)并且給應用程序訪問集成數(shù)據(jù)提供相應支持。圖1所示是一個利用中間件技術實現(xiàn)異構數(shù)據(jù)庫訪問的常用模型。
[用戶][數(shù)據(jù)集成和查詢處理器][包裝器][包裝器][包裝器][數(shù)據(jù)庫][數(shù)據(jù)庫][數(shù)據(jù)庫]
圖1基于中間件的異構數(shù)據(jù)庫訪問模型
中間件能夠有效地解決異構數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)冗余以及不一致的問題,呈現(xiàn)給用戶的數(shù)據(jù)視圖是一致的,并且可以通過統(tǒng)一的查詢語句實現(xiàn)相關的應用,有效地屏蔽了異構數(shù)據(jù)間的差異,集成后的所有數(shù)據(jù)從用戶角度來說都是統(tǒng)一無差異的?;谥虚g件的異構數(shù)據(jù)庫集成方法,根本不需要對原始數(shù)據(jù)的存儲和管理進行改變,有效地解決了數(shù)據(jù)同步的問題,同時能夠保證各個異構數(shù)據(jù)庫的自治性。目前,中間件技術是實現(xiàn)對異構數(shù)據(jù)庫系統(tǒng)進行有效訪問的理想方案[2]。
2 基于Web Services的異構數(shù)據(jù)庫中間件
從數(shù)據(jù)庫應用的角度來說,網(wǎng)絡上的每一個節(jié)點中的資源都可以看成是一個數(shù)據(jù)庫,每一個節(jié)點就相當于一個數(shù)據(jù)源。可見Internet就是一個大型而復雜的分布異構數(shù)據(jù)庫環(huán)境,用傳統(tǒng)的數(shù)據(jù)庫管理系統(tǒng)已經(jīng)難以有效解決分布異構數(shù)據(jù)的通訊問題,實現(xiàn)異構數(shù)據(jù)集成系統(tǒng)中的互操作,成為解決分布異構環(huán)境下數(shù)據(jù)庫訪問的關鍵問題。
分布式技術將網(wǎng)絡上的資源相互連接起來,對外表現(xiàn)為一個統(tǒng)一的整體,對用戶是透明的。面向對象技術通過封裝、繼承、多態(tài)等技術提供了良好的代碼重用機制。分布式對象技術為網(wǎng)絡計算平臺上軟件的開發(fā)提供了很好的解決方案[3]。目前三大主流分布式對象中間件技術是,公共對象請求代理體系結構(CORBA)、分布組件對象模式(DCOM)和JAVA企業(yè)應用組件技術(EJB)。表1所示為三種主流分布式對象中間件技術的比較。
表1三種主流分布式對象中間件技術的比較
[[接口定義
開發(fā)語言&CORBA&OMG IDL接口支持多語言&DCOM&與C++緊密集成&EJB&JAVA RMI API接口定義&平臺
通信&CORBA&支持異構平臺間通信&DCOM&僅限WINDOWS平臺&EJB&幾乎所有OS和WEB服務
器、瀏覽器&]]
異構數(shù)據(jù)集成系統(tǒng)中的互操作,可以利用前面介紹的CORBA、EJB和DCOM等技術來實現(xiàn),但它們過多地依賴于特定的對象模型,支持特定的通信協(xié)議,而無法在Internet環(huán)境下發(fā)揮作用。利用Web Services具有的完好封裝、松散耦合和規(guī)范協(xié)議高度集成能力等特性,可以對每個數(shù)據(jù)源創(chuàng)建一個Web Service,然后使用WSDL向服務中心注冊,這樣集成系統(tǒng)就可以向注冊中心發(fā)送查找請求并選擇合適的數(shù)據(jù)源,然后通過SOAP協(xié)議從這些數(shù)據(jù)源獲取數(shù)據(jù)。這種方法很好地解決了分布環(huán)境下異構數(shù)據(jù)集成中數(shù)據(jù)通信的問題,具有簡單性、開放性、靈活性、動態(tài)性、高效性、安全性等優(yōu)勢。
3 基于Web Services的分布異構數(shù)據(jù)庫訪問系統(tǒng)模型
基于Web Services的中間件給應用程序提供了一個訪問分布異構數(shù)據(jù)的平臺,通過這一平臺,用戶可以對分布在不同位置的遠端數(shù)據(jù)源進行查詢,實現(xiàn)了多個分布異構數(shù)據(jù)的資源共享?;赪eb Services的分布異構數(shù)據(jù)庫訪問系統(tǒng)模型如圖2所示。
該模型把整個系統(tǒng)劃分為表示層、應用層、中間件層和數(shù)據(jù)層。表示層主要由各種應用程序和瀏覽器等各種終端設備構成,用戶通過表示層能夠訪問部署在應用層服務器中的應用程序和服務。應用層的主要任務是實現(xiàn)與用戶的交互,把中間件層返回的合成結果,根據(jù)用戶的不同需求,以相應的格式進行包裝后反饋到表示層,用戶根本不需要知道數(shù)據(jù)源所處的位置、數(shù)據(jù)的存儲格式以及具體的數(shù)據(jù)集成環(huán)境,獲得經(jīng)過所需要的中間件層和數(shù)據(jù)層處理后的結果。
圖2基于Web Services的分布異構數(shù)據(jù)庫系統(tǒng)模型
中間件層是整個模型的業(yè)務處理核心,其主要任務有,請求服務、服務分解、服務結果、結果合成、注冊服務、服務引用和服務管理。該層一般需要先進行初始化生成元數(shù)據(jù)。元數(shù)據(jù)相當于一個虛擬數(shù)據(jù)庫,是依照服務管理的要求而產(chǎn)生的。用戶提出某個請求時,由服務請求分解程序根據(jù)元數(shù)據(jù)中的映射關系將其分解為一個或多個服務請求,同時轉到相應的服務引用去申請Web Service,由包裝器打包執(zhí)行結果并傳回到中間件層,經(jīng)服務結果程序處理后,再由結果合成程序形成用戶所要求的形式通過應用界面反饋給用戶。
數(shù)據(jù)層主要由各種分布異構數(shù)據(jù)庫構成。為了能夠高效靈活地集成這些分布異構數(shù)據(jù)庫,較好地實現(xiàn)數(shù)據(jù)層與中間件層的通訊,每個數(shù)據(jù)源都有一個Web Service包裝器,對數(shù)據(jù)源進行封裝并進行代理,注冊相應的Web Service。服務請求者調用服務后,服務管理程序根據(jù)請求執(zhí)行相應的服務,然后把執(zhí)行結果打包以SOAP形式傳輸?shù)街虚g件層。
4 基于Web Services的分布異構數(shù)據(jù)庫訪問系統(tǒng)實現(xiàn)過程
結合上述基于Web Services的分布異構數(shù)據(jù)庫訪問系統(tǒng)模型,系統(tǒng)的實現(xiàn)可以劃分為初始化和運行兩個過程,如圖3所示。
[用戶界面][服務請求分解][服務引用][服務請求][分解請求并將請
求轉給服務引用][UDDI(私有)] [Web Service包裝器m][Web Service包裝器n][請求轉給相應的
Web Services包裝器][數(shù)據(jù)源m][數(shù)據(jù)源m][服務調用][服務調用][服務結果][結果合成] [結果處理] [合成結果]
圖3分布異構數(shù)據(jù)庫訪問系統(tǒng)實現(xiàn)過程
初始化過程主要是利用中間件系統(tǒng)實現(xiàn)元數(shù)據(jù)信息的生成。這一過程一般通過中間件管理員和各數(shù)據(jù)庫管理員來完成。中間件管理員負責在中間件系統(tǒng)中完成對元數(shù)據(jù)定義的全局描述;各數(shù)據(jù)庫管理員利用本地數(shù)據(jù)源包裝器,負責完成相關私有服務的發(fā)布和注冊,并通過中間件管理系統(tǒng)實現(xiàn)共享。
用戶經(jīng)應用界面進行服務請求,經(jīng)應用層的應用服務器提交到中間件層的服務請求分解程序。服務請求分解程序根據(jù)元數(shù)據(jù)和各數(shù)據(jù)庫管理員注冊的共享信息,將其分解為多個服務請求,同時從服務注冊中心獲得相應服務的信息,通過服務引用將獲取的信息打包并發(fā)送到相應的服務包裝器。服務被執(zhí)行后其結果被打包以SOAP形式發(fā)送給中間件層的服務結果程序進行結果合成,生成符合用戶需求的規(guī)范信息返回到應用層,同時把最終結果在表示層上的相應界面顯示給用戶。
5 結束語
本文構造的基于Web Services的分布異構數(shù)據(jù)庫訪問系統(tǒng),以中間件系統(tǒng)作為數(shù)據(jù)處理的核心,能夠將多個分布異構數(shù)據(jù)庫中的數(shù)據(jù)集成后以單一的接口返回給用戶。該系統(tǒng)能夠完成有效的分布式數(shù)據(jù)查詢,數(shù)據(jù)源透明并且支持跨平臺檢索。當然,本系統(tǒng)在數(shù)據(jù)安全以及查詢優(yōu)化方面考慮還不夠周全,將是我們后期的研究重點。
參考文獻:
[1] 聶麗平,張維勇等.分布式異構數(shù)據(jù)庫集成技術的研究與應用[J].合肥工業(yè)大學學報(自然科學版),2006.3:309~312
[2] 王越, 楊平利等.一種分布異構數(shù)據(jù)庫集成中間件的設計與實現(xiàn)[J].微電子學與計算機,2009.7:80~83
[3] 李亞紅,吳江等.基于Web Services實現(xiàn)異構數(shù)據(jù)庫集成技術研究[J]. 計算機應用研究,2006.2:81~83