壽先紅
[摘要]館際異構(gòu)數(shù)據(jù)集成系統(tǒng)是為了提高高校數(shù)字圖書館資源利用率、實(shí)現(xiàn)資源高度共享的一種方法。文章介紹了異構(gòu)數(shù)據(jù)集成的基本方法,并根據(jù)XML技術(shù)的特點(diǎn),重點(diǎn)分析和研究了基于XML的館際異構(gòu)數(shù)據(jù)集成系統(tǒng)的框架結(jié)構(gòu)和系統(tǒng)實(shí)現(xiàn)的主要技術(shù)。
[關(guān)鍵詞]異構(gòu)數(shù)據(jù);XML;請求處理;包裝器
[中圖分類號]G250.74[文獻(xiàn)標(biāo)志碼]A[文章編號]1005-6041(2012)03-0036-04
隨著各高校數(shù)字圖書館建設(shè)的深入,不同學(xué)校根據(jù)本身的專業(yè)特色和課程特點(diǎn),分別設(shè)計(jì)和購置了大量的數(shù)字圖書資源供學(xué)生和教師使用,由于各高校數(shù)字圖書館相對封閉,各館建設(shè)的時(shí)期并不同步,而且技術(shù)上采用的操作系統(tǒng)、網(wǎng)絡(luò)結(jié)構(gòu)、數(shù)據(jù)庫結(jié)構(gòu)等均不相同,因此產(chǎn)生了各種不同類型的數(shù)字信息資源,我們把這些數(shù)字信息資源統(tǒng)稱為異構(gòu)數(shù)據(jù)信息。由于異構(gòu)數(shù)據(jù)信息的存在,使各高校圖書館之間難以實(shí)現(xiàn)數(shù)據(jù)信息共享,圖書館的數(shù)據(jù)資源也就成為“信息孤島”。為了實(shí)現(xiàn)資源的有效利用以及館際信息的高度共享,使更多的資源能夠被不同學(xué)校的廣大師生使用,集成異構(gòu)數(shù)據(jù)庫就成為當(dāng)前數(shù)字圖書館迫切需要建設(shè)的內(nèi)容。
1、異構(gòu)數(shù)據(jù)集成概述
由于應(yīng)用系統(tǒng)的不同,因此各應(yīng)用系統(tǒng)的數(shù)據(jù)源無論是數(shù)據(jù)結(jié)構(gòu)、表示方式也各不相同。異構(gòu)數(shù)據(jù)集成系統(tǒng)就是要把各種結(jié)構(gòu)不同的數(shù)據(jù),通過邏輯、物理等方式最終都轉(zhuǎn)化為一種統(tǒng)一的、結(jié)構(gòu)相同的全局?jǐn)?shù)據(jù)模式,能夠讓用戶透明的訪問這些數(shù)據(jù)源,實(shí)現(xiàn)全面的數(shù)據(jù)共享。數(shù)據(jù)集成的關(guān)鍵技術(shù)是忽略數(shù)據(jù)源平臺和結(jié)構(gòu)等異構(gòu)性,將不同的異構(gòu)數(shù)據(jù)轉(zhuǎn)化成可以被識別和使用的統(tǒng)一數(shù)據(jù)進(jìn)行描述,實(shí)現(xiàn)數(shù)據(jù)的無縫整合集成。一般的異構(gòu)數(shù)據(jù)集成模型如圖1所示。
在處理異構(gòu)數(shù)據(jù)集成問題上,有以下難點(diǎn)需要解決:1)解決數(shù)據(jù)的異構(gòu)性問題:不同圖書館的數(shù)據(jù)資源各有不同,這些異構(gòu)性是由應(yīng)用系統(tǒng)所決定的,是異構(gòu)數(shù)據(jù)集成應(yīng)用需要解決的首要問題,異構(gòu)性對集成應(yīng)用的影響不僅是物理上的系統(tǒng)結(jié)構(gòu),更重要的是數(shù)據(jù)的結(jié)構(gòu)模式和表現(xiàn)方式。2)解決數(shù)據(jù)源的自治性問題:每個(gè)圖書館所擁有的數(shù)據(jù)源均對應(yīng)著不同的管理系統(tǒng),我們需要在數(shù)據(jù)集成后依然保持?jǐn)?shù)據(jù)源的相對獨(dú)立性,而不能因?yàn)閿?shù)據(jù)集成而改變它們的常規(guī)操作,同時(shí)也不能因?yàn)榧啥绊憣淼臄?shù)據(jù)升級和更新。3)解決用戶的透明性訪問問題:集成后的數(shù)據(jù)訪問,不能因?yàn)榧啥兊酶鼮閺?fù)雜,而應(yīng)該和集成前一樣,使用戶能安全、穩(wěn)定、透明的訪問數(shù)據(jù)。
2、常用的異構(gòu)數(shù)據(jù)集成方案
具體的異構(gòu)數(shù)據(jù)一般分為:結(jié)構(gòu)異構(gòu)、語法異構(gòu)、系統(tǒng)異構(gòu)和語義異構(gòu)四種。目前,使用比較多的數(shù)據(jù)集成方案主要有以下兩種:
2.1基于模式的集成方案
在基于模式的集成方法中,各數(shù)據(jù)源的數(shù)據(jù)位置保持不變,通過集成系統(tǒng)為用戶提供一個(gè)虛擬的集成平臺,并建立一套集成查詢的訪問處理機(jī)制。用戶在訪問數(shù)據(jù)時(shí),可以直接在集成界面上提交請求,通過認(rèn)證后由數(shù)據(jù)集成系統(tǒng)進(jìn)行請求轉(zhuǎn)換,將請求發(fā)送到本地?cái)?shù)據(jù)庫進(jìn)行執(zhí)行。
2.2基于數(shù)據(jù)復(fù)制的集成方案
在基于數(shù)據(jù)復(fù)制的集成方案中,需要將各個(gè)獨(dú)立數(shù)據(jù)源的數(shù)據(jù)進(jìn)行集中管理,建立統(tǒng)一的數(shù)據(jù)源,同時(shí)要求這些數(shù)據(jù)源在更新時(shí)保持一致,以此來提高資源的利用效率。最基本的數(shù)據(jù)復(fù)制方法就是建立統(tǒng)一的數(shù)據(jù)倉庫。其原理是將原有分散的、不連續(xù)的數(shù)據(jù)從不同的數(shù)據(jù)庫中抽取出來,通過對數(shù)據(jù)進(jìn)行分類加工,清理出冗余數(shù)據(jù),然后對數(shù)據(jù)進(jìn)行匯總統(tǒng)計(jì),并建立一致的數(shù)據(jù)倉庫,當(dāng)用戶訪問數(shù)據(jù)倉庫時(shí),就像訪問普通數(shù)據(jù)庫一樣。
以上兩種方式均有優(yōu)缺點(diǎn)。模式集成方法為訪問者提供了方便的集成訪問界面,因此當(dāng)各分散的應(yīng)用系統(tǒng)數(shù)據(jù)量比較多,并且系統(tǒng)數(shù)據(jù)更新較為頻繁時(shí),用戶可以通過集成系統(tǒng)很方便的訪問各數(shù)據(jù)源。但該方法由于本身只是提供虛擬界面,自身并不保存數(shù)據(jù),當(dāng)用戶訪問量較大時(shí),需要更高的網(wǎng)絡(luò)通道來對其進(jìn)行支持,否則會造成網(wǎng)絡(luò)延堵。而數(shù)據(jù)復(fù)制方法是通過集成系統(tǒng)對各數(shù)據(jù)源進(jìn)行集中管理,并建立統(tǒng)一的數(shù)據(jù)倉庫,用戶在訪問數(shù)據(jù)倉庫時(shí),可以很方便的通過集成檢索到數(shù)據(jù)倉庫中得數(shù)據(jù),從而可以快速的提高用戶的響應(yīng)時(shí)間。但該方法也存在缺點(diǎn),比如當(dāng)各數(shù)據(jù)源數(shù)據(jù)更新時(shí),需要把數(shù)據(jù)同時(shí)傳遞到數(shù)據(jù)倉庫中,因此存在著一定的數(shù)據(jù)延遲,并且有時(shí)會造成數(shù)據(jù)的不統(tǒng)一。
3、基于XML的館際資源數(shù)據(jù)集成研究
3.1XML知識介紹
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,基于Web的數(shù)字圖書系統(tǒng)已經(jīng)成為發(fā)展的趨勢和主流,這些系統(tǒng)主要是由HTML來進(jìn)行編寫,由于HTML缺乏必要的結(jié)構(gòu)和語義信息,給數(shù)據(jù)集成帶來了很大的困難,因此在W3C(World Wide Web Consortium,萬維網(wǎng)聯(lián)盟)的組織和領(lǐng)導(dǎo)下,建立了統(tǒng)一的規(guī)范,即XML規(guī)范。XML是一種技術(shù)標(biāo)準(zhǔn),它可以定義其他語言,同時(shí)XML還具有擴(kuò)展性強(qiáng)、表現(xiàn)形式多樣、與應(yīng)用系統(tǒng)平臺無關(guān)等優(yōu)點(diǎn),目前XML規(guī)范正在迅速成為不同數(shù)據(jù)交換的一種通用方法。采用XML不僅可以很好地兼容原有的Web應(yīng)用,而且可以更好地實(shí)現(xiàn)Web中的信息共享與交換。因此,XML已經(jīng)成為解決新舊系統(tǒng)、不同應(yīng)用系統(tǒng)之間或者不同數(shù)據(jù)源之間的數(shù)據(jù)共享與交互的主要技術(shù)規(guī)范。
XML包含的內(nèi)容有很多,主要有3方面內(nèi)容,分別是DTD(標(biāo)記符規(guī)則,保證XML文檔格式正確,是XML的布局語言),XSL(可擴(kuò)展的樣式語言,也就是XML的樣式表語言)以及)XLL(可擴(kuò)展鏈接語言)。
DTD的主要作用是用來規(guī)定文檔的邏輯結(jié)構(gòu),定義各類頁面的元素、屬性以及元素和屬性之間的關(guān)系等。隨著XML的不斷規(guī)范,目前描述XML文件的主要標(biāo)準(zhǔn)是XML Schema。主要是對文檔的數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)、組織方式等進(jìn)行定義和規(guī)定。XML Schema的定義準(zhǔn)則規(guī)范和DTD相類似,功能更加強(qiáng)大。
XSL主要作用是規(guī)定數(shù)據(jù)文檔的樣式和格式。當(dāng)用戶在通過瀏覽器進(jìn)行訪問時(shí),可以根據(jù)不同的需求改變文檔的顯示方式。
XLL主要作用是對已有的鏈接進(jìn)行進(jìn)一步的擴(kuò)展,當(dāng)用戶訪問鏈接無響應(yīng)時(shí),它可以結(jié)束無效的死鏈接,并且可以從服務(wù)器中僅查詢某個(gè)元素的相關(guān)部分的連接符。
3.2系統(tǒng)設(shè)計(jì)的原則
館際圖書資源的集成系統(tǒng)總體設(shè)計(jì)原則為:將根據(jù)不同圖書館數(shù)據(jù)的實(shí)際應(yīng)用需求,利用XML規(guī)范和JAVA技術(shù)建立一個(gè)中間件平臺以及一組映射規(guī)則和映射工具,通過XML來對不同數(shù)據(jù)源進(jìn)行格式轉(zhuǎn)換,屏蔽數(shù)據(jù)源之間結(jié)構(gòu)和表現(xiàn)形式差異。通過對底層異構(gòu)數(shù)據(jù)源進(jìn)行抽取和分類,集成整合到一個(gè)完整的集成數(shù)據(jù)平臺之上,為用戶提供一個(gè)標(biāo)準(zhǔn)、透明的訪問接口和完整的數(shù)據(jù)視圖,使得對不同圖書館分布式數(shù)據(jù)進(jìn)行訪問時(shí),就如同訪問本地服務(wù)器數(shù)據(jù)一樣方便可靠。
系統(tǒng)利用XML規(guī)范來作為中間件技術(shù)集成異構(gòu)數(shù)據(jù)庫,并特別將其中數(shù)據(jù)處理的系統(tǒng)稱為異構(gòu)數(shù)據(jù)庫集成中間件系統(tǒng),使用XML Schema來建立異構(gòu)數(shù)據(jù)公共模型。通過集成系統(tǒng)達(dá)到訪問的穩(wěn)定性、系統(tǒng)的易擴(kuò)展性以及較好的可維護(hù)性,并且系統(tǒng)運(yùn)行時(shí)對原有系統(tǒng)性能不造成明顯影響。系統(tǒng)的拓?fù)浣Y(jié)構(gòu)如圖2所示。
3.3集成系統(tǒng)的框架結(jié)構(gòu)
本文結(jié)合XML技術(shù),設(shè)計(jì)一個(gè)館際異構(gòu)數(shù)據(jù)集成系統(tǒng)。其體系結(jié)構(gòu)如圖3所示。
由上圖我們可以看出,整個(gè)系統(tǒng)共分為三層:系統(tǒng)應(yīng)用和表示層、數(shù)據(jù)集成中間層、數(shù)據(jù)源層。
系統(tǒng)應(yīng)用和表示層主要作用為:為各圖書館應(yīng)用系統(tǒng)和訪問用戶提供接口程序,通過數(shù)據(jù)操作引擎,為用戶提供數(shù)據(jù)查詢和數(shù)據(jù)瀏覽服務(wù)。
數(shù)據(jù)集成中間層主要作用為:從不同數(shù)據(jù)庫中抽取出異構(gòu)數(shù)據(jù),并將抽取得到的數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)的XML文件,實(shí)現(xiàn)對異構(gòu)數(shù)據(jù)源的封裝。然后對用戶的訪問請求進(jìn)行分解、解析,將訪問結(jié)果向系統(tǒng)應(yīng)用和表示層反饋。
數(shù)據(jù)源層的主要作用為:將分散的應(yīng)用系統(tǒng)數(shù)據(jù)庫抽象為各異構(gòu)數(shù)據(jù)源,完成異構(gòu)數(shù)據(jù)源的封裝和連接的權(quán)限審核。
采用上述結(jié)構(gòu)主要為了實(shí)現(xiàn)以下目標(biāo):1)數(shù)據(jù)訪問的透明性。由于采用分層結(jié)構(gòu),因此,用戶在訪問集成數(shù)據(jù)時(shí),無需考慮數(shù)據(jù)源的具體位置,只需知道數(shù)據(jù)服務(wù)中間件服務(wù)器(Middleware Server)即可,提高了系統(tǒng)訪問的透明性。2)系統(tǒng)設(shè)計(jì)的靈活性。因?yàn)橄到y(tǒng)采用了分層結(jié)構(gòu),各層的功能相對獨(dú)立又彼此聯(lián)系,在進(jìn)行數(shù)據(jù)交換和抽取過程中可以方便地進(jìn)行設(shè)計(jì),而集成系統(tǒng)設(shè)計(jì)方法也可以根據(jù)各圖書館的實(shí)際情況進(jìn)行,因此提高了系統(tǒng)設(shè)計(jì)的靈活性。3)屏蔽了數(shù)據(jù)源的異構(gòu)性。各圖書館數(shù)據(jù)源無論是分布性還是結(jié)構(gòu)性均不相同,因此解決異構(gòu)性是數(shù)據(jù)集成必須面臨的首要問題。分層結(jié)構(gòu)通過對數(shù)據(jù)的統(tǒng)一建模和利用XML Scheme的映射關(guān)系規(guī)則,實(shí)現(xiàn)了對異構(gòu)數(shù)據(jù)的統(tǒng)一表示,屏蔽了數(shù)據(jù)的異構(gòu)性。
3.4系統(tǒng)實(shí)現(xiàn)的關(guān)鍵技術(shù)
3.4.1處理請求模塊的設(shè)計(jì)。在基于XML的館際異構(gòu)數(shù)字資源集成系統(tǒng)中,如何處理用戶的訪問請求是系統(tǒng)實(shí)現(xiàn)的關(guān)鍵技術(shù)之一。通常情況下,用戶只需在透明模式下對數(shù)據(jù)源進(jìn)行查詢,不會對數(shù)據(jù)源的來源、格式進(jìn)行干涉。處理請求模塊就是根據(jù)一系列的數(shù)據(jù)映射規(guī)則將基于全局模式的查詢轉(zhuǎn)換為局部數(shù)據(jù)源導(dǎo)出模式的查詢,針對用戶的需求分別產(chǎn)生數(shù)據(jù)源的子查詢,并循序執(zhí)行子查詢,從而確定目的數(shù)據(jù)源,并將查詢結(jié)果返回給用戶。而查詢處理過程所需的方式、數(shù)據(jù)源映射規(guī)則及數(shù)據(jù)源相關(guān)信息都由XML語言描述表達(dá),并將結(jié)果存儲在集成系統(tǒng)的數(shù)據(jù)字典中。整個(gè)過程可分為3步:查詢解析、查詢分解、數(shù)據(jù)組裝,如圖4所示。
3.4.2包裝器功能模塊的設(shè)計(jì)。在查詢處理過程中,為了完成各種類型數(shù)據(jù)源與集成系統(tǒng)之間的雙向映射,在不改變元數(shù)據(jù)結(jié)構(gòu)的前提下,需要對異構(gòu)數(shù)據(jù)源加上一個(gè)包裝器,利用XML接口引擎對各種數(shù)據(jù)庫管理系統(tǒng)和其他數(shù)據(jù)源進(jìn)行封裝。其具體處理過程為:數(shù)據(jù)集成系統(tǒng)首先將用戶的查詢請求用XML查詢語言XQuery表示出來,然后將查詢請求不同的查詢語句,這些查詢語句能夠被數(shù)據(jù)源所識別和執(zhí)行,最后再將返回的結(jié)果轉(zhuǎn)換成XML數(shù)據(jù)模型的形式,以便與來自其他數(shù)據(jù)源的數(shù)據(jù)集成。
包裝器把各類不同數(shù)據(jù)源的數(shù)據(jù)結(jié)構(gòu)定義以XML Schema的形式統(tǒng)一表現(xiàn),也就是說,提供一個(gè)虛擬的系統(tǒng)Schema定義,它提供的底層數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu)信息不僅在數(shù)據(jù)集成上提供了一種數(shù)據(jù)規(guī)格,同時(shí)也支持如果底層數(shù)據(jù)源結(jié)構(gòu)發(fā)生改變后,能及時(shí)通知集成系統(tǒng)。
4、結(jié)語
一直以來,由于高校圖書館數(shù)字資源結(jié)構(gòu)、存儲方式等不同,使得對異構(gòu)數(shù)據(jù)源的集成成為一個(gè)很難解決的問題,嚴(yán)重制約了數(shù)字資源的共享和使用。隨著XML體系結(jié)構(gòu)的發(fā)展,為異構(gòu)數(shù)據(jù)的集成提供了一種有效的方法,使館際圖書資源共享成為可能。