崔天鑫
摘? 要:針對分布式檢索的典型需求,作者設計并實現(xiàn)了一種基于SOAP的分布式檢索系統(tǒng)。給出了對等型結構下的分布式部署結構設計,進一步實現(xiàn)了一種基于數(shù)據(jù)交換區(qū)的部署結構設計,極大提高了分布式條件下的檢索效率。
關鍵詞:SOAP;分布式檢索;數(shù)據(jù)交換區(qū);本地副本
中圖分類號:TP391.3 文獻標志碼:A? ? ? ? 文章編號:2095-2945(2019)31-0097-02
Abstract: For the typical requirements of distributed retrieval, the author designed and implemented a distributed retrieval system based on SOAP. The distributed deployment structure design under the peer-to-peer structure is given, and a deployment structure design based on the data exchange area is further realized, which greatly improves the retrieval efficiency under distributed conditions.
Keywords: SOAP; distributed retrieval; data exchange area; local copy
1 概述
分布式檢索系統(tǒng)的實現(xiàn)往往比較復雜。區(qū)別于集中式檢索,分布式檢索是將檢索請求提交給網(wǎng)絡上的多個主機,由位于這些主機上的檢索程序分別獨立檢索并將檢索結果返回的過程。在實現(xiàn)分布式檢索系統(tǒng)時,不可避免的要面對現(xiàn)有信息資源所在平臺的多樣性和數(shù)據(jù)的異構性等棘手的問題。
為了提高分布式檢索的性能,解決分布式條件信息資源集成困難的問題,作者設計并實現(xiàn)了一種基于Web服務的分布式檢索系統(tǒng)。系統(tǒng)設計的基本思路是:將各服務器端的檢索程序封裝為Web服務,由客戶端的各類用戶界面通過SOAP協(xié)議向多個Web服務器發(fā)出檢索請求,并接收服務器端返回的檢索結果。系統(tǒng)的運行效果也依賴于系統(tǒng)的部署結構設計。在系統(tǒng)實現(xiàn)的過程中,作者針對實際情況實現(xiàn)了兩種分布式檢索部署結構的設計,取得良好的應用效果。
2 完全分布式檢索結構設計
在完全分布式(即對等型)檢索結構中,每臺服務器都獨立地管理檢索系統(tǒng)和數(shù)據(jù)存儲系統(tǒng),每臺服務器之間處于對等的關系,每臺服務器的檢索系統(tǒng)僅對本地的數(shù)據(jù)存儲系統(tǒng)建立索引并提供相應的信息檢索服務。
完全分布式檢索結構,如圖1所示。在上述結構中,需要設計一種使用XML或JSON配置文檔的方式來存儲服務器訪問路由表,只需要保存服務器的IP地址和調用SOAP服務代理的路徑信息即可。
這種結構下,分布式檢索的處理流程如下:
(1)用戶通過客戶端程序向服務器提出一個檢索請求。
(2)請求服務器的SOAP請求代理將檢索請求進行SOAP封裝(即封裝為以XML-HTTP協(xié)議格式)。
(3)請求服務器查詢服務器訪問路由表,獲取遠程訪問的地址和路徑信息。
(4)將請求發(fā)送到系統(tǒng)的所有服務器或指定服務器。
(5)收到檢索請求的服務器,執(zhí)行SOAP服務代理,SOAP服務代理一般只需要對本地服務器的信息進行檢索,將檢索結果以SOAP消息格式進行封裝,然同步或異步返回給SOAP請求代理。
(6)SOAP請求代理同步接收并解析返回結果,然后合并整理從每臺服務器返回的檢索結果而形成最終檢索結果,返回給用戶;如果是異步接收返回結果,需要調用相應的回調函數(shù),將結果呈現(xiàn)給用戶。
3 非對等型分布式檢索結構設計
完全分布式檢索系統(tǒng)在很大程度上只是一種理想的情況,往往不能滿足實際需要。現(xiàn)實中的大型網(wǎng)絡結構往往是非對等型的。在規(guī)劃分布式檢索系統(tǒng)的實現(xiàn)時,必須考慮數(shù)據(jù)檢索頻率以及網(wǎng)絡效率的因素,采用合適的網(wǎng)絡拓撲結構。采用什么樣的網(wǎng)絡拓撲結構能夠使檢索效率最高、費用最省,是實現(xiàn)分布式檢索系統(tǒng)時必須認真考慮的問題。
在大型網(wǎng)絡系統(tǒng)中,數(shù)據(jù)訪問主要分為本地訪問和遠程訪問兩種。一般來講,受制于網(wǎng)絡帶寬及響應速度的限制,本地訪問速度要大大快于遠程訪問的速度。但若將全部數(shù)據(jù)存放在本地訪問,帶寬資源耗費、網(wǎng)絡間復制、通訊量及各服務器建設的硬件投入成本、服務器空間負載都將成倍增加,不符合經(jīng)濟性原則,也無法體現(xiàn)網(wǎng)絡互聯(lián)產生的優(yōu)勢,同時為管理維護造成巨大負擔。因此,對數(shù)據(jù)內容進行合理劃分是很有必要的??梢愿鶕?jù)對數(shù)據(jù)檢索的不同頻次來對訪問類型進行劃分:對于訪問頻次高的數(shù)據(jù)存放在本地服務器,以減少網(wǎng)絡負載及檢索時間;對于訪問頻次低的數(shù)據(jù),遠程直接連接進行檢索,以減少本地服務器負載,提高系統(tǒng)管理性。
建立本地副本,是提升信息檢索效率的一種可行且有效的手段。一般可以根據(jù)用戶查詢頻率、熱點問題關鍵字等,將一部分頻繁訪問的文檔復制到數(shù)據(jù)交換服務區(qū)。本系統(tǒng)中,對于用戶對若干臺遠程服務器的訪問頻次非常高的情況,可以基于數(shù)據(jù)復制,建立一個數(shù)據(jù)交換區(qū),來實現(xiàn)分布式檢索的效率優(yōu)化。如圖2所示。
請求服務器和數(shù)據(jù)交換區(qū)服務器位于同一個網(wǎng)絡域中,可以實現(xiàn)快速、高效的連接。通過遠程服務器到數(shù)據(jù)交換區(qū)的定時數(shù)據(jù)庫復制,數(shù)據(jù)交換區(qū)將多個遠程服務器的數(shù)據(jù)保存為多個副本。數(shù)據(jù)交換區(qū)服務器可以對這些副本建立索引,以提高檢索效率。在請求服務器的訪問路由表中,將遠程服務器的地址統(tǒng)一設置為數(shù)據(jù)交換區(qū)服務器的地址,并將這些遠程服務器的SOAP服務代理的路徑設置為數(shù)據(jù)交換區(qū)服務器的SOAP服務代理的路徑。
對遠程服務器上的數(shù)據(jù)進行檢索時,不必將SOAP請求消息發(fā)送到各個遠程服務器,只需要發(fā)送到數(shù)據(jù)交換區(qū)服務器即可,數(shù)據(jù)交換區(qū)服務器上運行的SOAP服務代理負責接收并解析原本需要發(fā)向遠程服務器的檢索請求消息,啟動對遠程服務器數(shù)據(jù)副本的檢索,并將檢索結果以SOAP消息的形式返回給請求服務器的SOAP請求代理。
數(shù)據(jù)交換區(qū)需要遠程服務器定時向其進行數(shù)據(jù)復制,才能保證副本是最新數(shù)據(jù)。當遠程服務器的數(shù)據(jù)更新頻率比較低,而對這些服務器的檢索請求頻次非常高的情況下,這種基于數(shù)據(jù)交換區(qū)的結構設計非常實用。當請求服務器處理用戶大量的遠程檢索請求時,不需要頻繁地與遠程服務器進行連接,可以大大地提高檢索的效率。而對于訪問頻次不高的遠程服務器,可以采用直接連接遠程服務器進行信息檢索。
4 結束語
除了提供強大、靈活的檢索功能之外,作者基于Web服務技術實現(xiàn)的分布式檢索系統(tǒng),可以用于對等型結構下的分布式檢索,進一步實現(xiàn)了一種基于數(shù)據(jù)交換區(qū)的非對等型檢索部署結構設計,極大提高了檢索效率。進一步的工作是,研究數(shù)據(jù)交換區(qū)的更新策略,以及檢索算法的優(yōu)化等。
參考文獻:
[1]孫偉,呂強.基于文檔副本局部性的分布式檢索算法研究[J].計算機應用研究,2016(1):108-110,114.
[2]w3schools. XML SOAP. https://www.w3schools.com/XML/xml_soap.asp. 2018.