張 杰
國(guó)防信息學(xué)院,湖北武漢 430013
伴隨著計(jì)算機(jī)網(wǎng)絡(luò)的不斷普及和World Wide Web的出現(xiàn),導(dǎo)致若干Web異構(gòu)數(shù)據(jù)源形成,異構(gòu)數(shù)據(jù)源集成為這些自然分布的異構(gòu)數(shù)據(jù)源提供了完整的模式和較為一致的接口,可以消除異構(gòu)、實(shí)現(xiàn)數(shù)據(jù)源的透明分布。對(duì)于系統(tǒng)查詢(xún)而言,網(wǎng)絡(luò)信息量的大幅增加與網(wǎng)絡(luò)延遲二者之間形成了強(qiáng)烈的反差及矛盾,導(dǎo)致網(wǎng)絡(luò)擁擠不堪,使得網(wǎng)絡(luò)用戶(hù)難以獲得應(yīng)有或理想的服務(wù)效果。異構(gòu)源數(shù)據(jù)源集成系統(tǒng)中,由于不同數(shù)據(jù)源具備著不同的查詢(xún)功能及不同效率,使得系統(tǒng)往往需要進(jìn)行大量的數(shù)據(jù)處理工作,因此必須對(duì)系統(tǒng)的查詢(xún)功能進(jìn)行優(yōu)化。
為使其延遲性得到系統(tǒng)改善,優(yōu)化過(guò)程中必須以縮減系統(tǒng)處理用戶(hù)請(qǐng)求的時(shí)間為前提基礎(chǔ)。對(duì)于計(jì)算機(jī)網(wǎng)絡(luò)中存在的各種不同存儲(chǔ)結(jié)構(gòu)的數(shù)據(jù),所有異構(gòu)數(shù)據(jù)源集成系統(tǒng)均可以實(shí)現(xiàn)集成,因此對(duì)于HTML、XML文件等半結(jié)構(gòu)化數(shù)據(jù)源,DBMS等可處理結(jié)構(gòu)化數(shù)據(jù)源和文本文件等非結(jié)構(gòu)化數(shù)據(jù)源等都能處理[1]。異構(gòu)數(shù)據(jù)集成系統(tǒng)需要處理大量的數(shù)據(jù),且各數(shù)據(jù)之間的結(jié)構(gòu)大不相同,嚴(yán)重影響了查詢(xún)速度,因此必須采取優(yōu)化措施改善查詢(xún)效率。本文結(jié)合實(shí)際,談?wù)劺镁彺婕夹g(shù)和預(yù)取技術(shù)對(duì)查詢(xún)進(jìn)行優(yōu)化的思路。
通常情況下將程序中響應(yīng)消息的本地存儲(chǔ)區(qū)以及控制傳輸信息存儲(chǔ)、刪除或獲取的子系統(tǒng),也即是指臨時(shí)文件交換區(qū)[2],將其定義為緩存。利用緩存保存可以對(duì)消息進(jìn)行緩存響應(yīng),能夠降低網(wǎng)絡(luò)的帶寬消耗和將來(lái)的響應(yīng)時(shí)間,對(duì)于請(qǐng)求消息也同樣適用。
異構(gòu)數(shù)據(jù)源集成系統(tǒng)具有很高的數(shù)據(jù)查詢(xún)能力,能夠?qū)崿F(xiàn)對(duì)大量HTML、XML以及文本文件等進(jìn)行處理,通常情況下,該類(lèi)數(shù)據(jù)文件的查詢(xún)速度較慢,所所有的查詢(xún)均從局部數(shù)據(jù)源進(jìn)行檢索,其速度必然很慢。異構(gòu)數(shù)據(jù)源集成系統(tǒng)利用緩存技術(shù)提高數(shù)據(jù)查詢(xún)速度,它有效的實(shí)現(xiàn)所有用戶(hù)對(duì)全局視圖查詢(xún)結(jié)構(gòu)的緩存存放,同時(shí)對(duì)新結(jié)果不斷更新,以此來(lái)替代數(shù)據(jù)源中的舊有的結(jié)果,從而有效提高緩存中數(shù)據(jù)的檢索命中率。在緩存中,保存查詢(xún)所需的全局視圖名和選擇條件,如果用戶(hù)的查詢(xún)與這些條件符合,可以由緩存直接讀取查詢(xún)結(jié)果。如用戶(hù)所需的查詢(xún)結(jié)果未存在于緩存中,然后再將查詢(xún)內(nèi)容進(jìn)行分解,并將分解后的結(jié)果送至各數(shù)據(jù)源,以此來(lái)獲取整個(gè)數(shù)據(jù)查詢(xún)結(jié)果。通常緩存中可以命中的查詢(xún)結(jié)果越多其查詢(xún)速度也就越快,這與緩存采用的替換算法有很大關(guān)系。在選擇緩存的的替換算法時(shí),可以進(jìn)行如下考慮:
1)局部視圖變化后,對(duì)緩存中舊的內(nèi)容進(jìn)行修改;2)當(dāng)數(shù)據(jù)源中的數(shù)據(jù)不斷更新時(shí),比較適合采用LRU替換算法;3)由于不同數(shù)據(jù)源的數(shù)據(jù)具有不同的訪問(wèn),由此看來(lái)傳統(tǒng)的LRU算法亟待改進(jìn),根據(jù)不同數(shù)據(jù)其訪問(wèn)品讀的不同,將Cache塊劃分成不同的區(qū)域,同時(shí)將所有數(shù)據(jù)源均單獨(dú)分配一個(gè)獨(dú)立區(qū)域,同時(shí)該區(qū)域內(nèi)容只允許請(qǐng)求結(jié)果進(jìn)行替代。
通過(guò)緩存技術(shù)的應(yīng)用,有效改善了系統(tǒng)性能,然而任何事物都有其兩面性,緩存技術(shù)也一樣,當(dāng)緩存中所對(duì)應(yīng)的存儲(chǔ)局部視圖出現(xiàn)了一定變化時(shí),就會(huì)產(chǎn)生緩存中的數(shù)據(jù)結(jié)果與局部數(shù)據(jù)源數(shù)據(jù)結(jié)果不一致的現(xiàn)象,必須進(jìn)行刷新。針對(duì)這一情況,根據(jù)不同的應(yīng)用需求,異構(gòu)數(shù)據(jù)源集成系統(tǒng)采取按需刷新和定期刷新的方式進(jìn)行數(shù)據(jù)源的刷新。定期(根據(jù)數(shù)據(jù)源信息更新的時(shí)間確定)對(duì)局部視圖檢查,看其是否有所變化,同時(shí)根據(jù)其變化來(lái)對(duì)緩存內(nèi)容作出相應(yīng)的修改,對(duì)于一些需要快速響應(yīng)的查詢(xún)處理,可從緩存種中直接進(jìn)行數(shù)據(jù)的讀取。當(dāng)然緩存內(nèi)容一般會(huì)對(duì)局部視圖在兩次刷新前改變的情況不能進(jìn)行很好的反映。如果是一些對(duì)精準(zhǔn)度要求極高的查詢(xún)需求,定期的刷新顯然已無(wú)法滿(mǎn)足用戶(hù)的需求了。異構(gòu)數(shù)據(jù)源集成系統(tǒng)則可以彌補(bǔ)其不足,通過(guò)按需刷新的方式,若出現(xiàn)新用戶(hù)查詢(xún)請(qǐng)求時(shí),首先對(duì)緩存中視圖變化進(jìn)行檢查,若緩存視圖中未出現(xiàn)變化情況,可直接提出緩存中的相應(yīng)數(shù)據(jù)結(jié)果,如果緩存中查不到所需結(jié)果,則對(duì)查詢(xún)進(jìn)行分解,在各個(gè)數(shù)據(jù)源中查詢(xún)更新后的數(shù)據(jù),同時(shí)修改緩存的內(nèi)容。
緩存技術(shù)具有統(tǒng)一模式的機(jī)制特點(diǎn),預(yù)取技術(shù)彌補(bǔ)了它的這一不足,在提高互聯(lián)網(wǎng)信息檢索速度上受到越來(lái)越多的重視,在備受關(guān)注的Web檢索系統(tǒng)中有著十分廣泛的應(yīng)用[3]。其技術(shù)理論依據(jù)為:首先使用者在向服務(wù)器發(fā)出兩次HTTP請(qǐng)求間存在一定的使用者空閑和思考時(shí)間,其長(zhǎng)度一般為幾秒到幾分鐘不等。若想將此段時(shí)間充分利用,即將使用的文件提前進(jìn)行取回,并將其存放于緩存中,以此來(lái)減少相應(yīng)等待的時(shí)間。也即是將用戶(hù)即將訪問(wèn)的數(shù)據(jù),在用戶(hù)的請(qǐng)求發(fā)出之前,先放置于緩存中,當(dāng)用戶(hù)對(duì)其數(shù)據(jù)發(fā)出相應(yīng)的請(qǐng)求信息后,由于該數(shù)據(jù)已經(jīng)提前存放于緩存中,便可有效減少用戶(hù)等待的時(shí)間,從而將數(shù)據(jù)訪問(wèn)等待的時(shí)間降到最小[4]。
這種理論應(yīng)用到異構(gòu)數(shù)據(jù)源集成系統(tǒng)也同樣適用。
異構(gòu)數(shù)據(jù)源集成系統(tǒng)中有多種多樣的用戶(hù)需求,查詢(xún)模式也各不相同,且請(qǐng)求具有隨機(jī)性。同時(shí),也不可避免的存在這種情況:有些用戶(hù)經(jīng)常進(jìn)行相同的查詢(xún),他們只希望瀏覽結(jié)果而不想執(zhí)行查詢(xún);有些服務(wù)固定或相對(duì)固定。針對(duì)這種用戶(hù)的需求特點(diǎn),通過(guò)服務(wù)器自動(dòng)提供所需信息給那些需求相對(duì)固定的用戶(hù),我們將其定義為服務(wù)器領(lǐng)取,其本質(zhì)也即是服務(wù)定制。一般情況下異構(gòu)數(shù)據(jù)源集成系統(tǒng)服務(wù)器會(huì)通過(guò)手工定制的方法來(lái)實(shí)現(xiàn)其數(shù)據(jù)訪問(wèn),預(yù)取過(guò)程中用戶(hù)不想在訪問(wèn)中花費(fèi)太多的等待時(shí)間,可提前填寫(xiě)申請(qǐng)定制服務(wù)表,對(duì)其服務(wù)內(nèi)容起始時(shí)間以及訪問(wèn)周期、所需服務(wù)的時(shí)間等內(nèi)容的詳細(xì)填寫(xiě)。當(dāng)用戶(hù)提出瀏覽請(qǐng)求時(shí),不需要及時(shí)做出處理,只需將服務(wù)器端處理好的結(jié)果及時(shí)進(jìn)行顯示即可[5]。
異構(gòu)數(shù)據(jù)源集成系統(tǒng)引入預(yù)取技術(shù)提高了查詢(xún)的效率,同時(shí)針對(duì)不同用戶(hù)的不同訪問(wèn)模式,借助服務(wù)器預(yù)取服務(wù)以及客戶(hù)預(yù)取服務(wù)科有效提高其使用的效率。
圖1 系統(tǒng)結(jié)構(gòu)圖
異構(gòu)數(shù)據(jù)源集成系統(tǒng)整體數(shù)據(jù)由基于機(jī)群的數(shù)據(jù)分布進(jìn)行預(yù)處理,通過(guò)緩存、預(yù)取、基于用戶(hù)需求等策略,能夠提高系統(tǒng)的應(yīng)答效率。結(jié)合緩存、預(yù)取和基于機(jī)群的數(shù)據(jù)分布三種查詢(xún)優(yōu)化策略,同時(shí)從用戶(hù)請(qǐng)求以及數(shù)據(jù)信息等方面來(lái)提高系統(tǒng)運(yùn)行的效率,進(jìn)而提高系統(tǒng)對(duì)不同用戶(hù)不同請(qǐng)求方式和海量數(shù)據(jù)的查詢(xún)效率[6]。對(duì)系統(tǒng)的整體優(yōu)化結(jié)構(gòu)見(jiàn)圖1所示。
總而言之,異構(gòu)數(shù)據(jù)集成系統(tǒng)可以對(duì)各種數(shù)據(jù)進(jìn)行集成,并具有強(qiáng)大的數(shù)據(jù)處理量,進(jìn)行查詢(xún)優(yōu)化是必須處理的工作。
[1]張亞棟.分布式異構(gòu)數(shù)據(jù)源集成研究[D].河北工業(yè)大學(xué)碩士學(xué)位論文,2005.
[2]麻亮. 信息集成系統(tǒng)中查詢(xún)結(jié)果合成研究[D].西安電子科技大學(xué)碩士學(xué)位論文,2008.
[3]唐九陽(yáng),楊強(qiáng),張維明,等. 異構(gòu)集成系統(tǒng)中面向查詢(xún)規(guī)劃的數(shù)據(jù)源能力描述框架[J],2006,27(8):1509-1513.
[4]何穎,王于同.異構(gòu)數(shù)據(jù)源集成系統(tǒng)的查詢(xún)重寫(xiě)技術(shù)研究[J].杭州電子科技大學(xué)學(xué)報(bào),2005,25(2):65-68.
[5]尚蕾,孫志揮.基于X ML的異構(gòu)數(shù)據(jù)集成系統(tǒng)的查詢(xún)處理[J].計(jì)算機(jī)工程,2005,31(5):79-82.
[6]馬偉.一種基于XML的異構(gòu)數(shù)據(jù)源集成系統(tǒng)的研究[D].西安電子科技大學(xué)碩士學(xué)位論文,2008.