基于SOAP的分布式检索系统的部署结构设计

2019-11-28 15:47崔天鑫
科技创新与应用 2019年31期

崔天鑫

摘  要:针对分布式检索的典型需求,作者设计并实现了一种基于SOAP的分布式检索系统。给出了对等型结构下的分布式部署结构设计,进一步实现了一种基于数据交换区的部署结构设计,极大提高了分布式条件下的检索效率。

关键词:SOAP;分布式检索;数据交换区;本地副本

中圖分类号: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 概述

分布式检索系统的实现往往比较复杂。区别于集中式检索,分布式检索是将检索请求提交给网络上的多个主机,由位于这些主机上的检索程序分别独立检索并将检索结果返回的过程。在实现分布式检索系统时,不可避免的要面对现有信息资源所在平台的多样性和数据的异构性等棘手的问题。

为了提高分布式检索的性能,解决分布式条件信息资源集成困难的问题,作者设计并实现了一种基于Web服务的分布式检索系统。系统设计的基本思路是:将各服务器端的检索程序封装为Web服务,由客户端的各类用户界面通过SOAP协议向多个Web服务器发出检索请求,并接收服务器端返回的检索结果。系统的运行效果也依赖于系统的部署结构设计。在系统实现的过程中,作者针对实际情况实现了两种分布式检索部署结构的设计,取得良好的应用效果。

2 完全分布式检索结构设计

在完全分布式(即对等型)检索结构中,每台服务器都独立地管理检索系统和数据存储系统,每台服务器之间处于对等的关系,每台服务器的检索系统仅对本地的数据存储系统建立索引并提供相应的信息检索服务。

完全分布式检索结构,如图1所示。在上述结构中,需要设计一种使用XML或JSON配置文档的方式来存储服务器访问路由表,只需要保存服务器的IP地址和调用SOAP服务代理的路径信息即可。

这种结构下,分布式检索的处理流程如下:

(1)用户通过客户端程序向服务器提出一个检索请求。

(2)请求服务器的SOAP请求代理将检索请求进行SOAP封装(即封装为以XML-HTTP协议格式)。

(3)请求服务器查询服务器访问路由表,获取远程访问的地址和路径信息。

(4)将请求发送到系统的所有服务器或指定服务器。

(5)收到检索请求的服务器,执行SOAP服务代理,SOAP服务代理一般只需要对本地服务器的信息进行检索,将检索结果以SOAP消息格式进行封装,然同步或异步返回给SOAP请求代理。

(6)SOAP请求代理同步接收并解析返回结果,然后合并整理从每台服务器返回的检索结果而形成最终检索结果,返回给用户;如果是异步接收返回结果,需要调用相应的回调函数,将结果呈现给用户。

3 非对等型分布式检索结构设计

完全分布式检索系统在很大程度上只是一种理想的情况,往往不能满足实际需要。现实中的大型网络结构往往是非对等型的。在规划分布式检索系统的实现时,必须考虑数据检索频率以及网络效率的因素,采用合适的网络拓扑结构。采用什么样的网络拓扑结构能够使检索效率最高、费用最省,是实现分布式检索系统时必须认真考虑的问题。

在大型网络系统中,数据访问主要分为本地访问和远程访问两种。一般来讲,受制于网络带宽及响应速度的限制,本地访问速度要大大快于远程访问的速度。但若将全部数据存放在本地访问,带宽资源耗费、网络间复制、通讯量及各服务器建设的硬件投入成本、服务器空间负载都将成倍增加,不符合经济性原则,也无法体现网络互联产生的优势,同时为管理维护造成巨大负担。因此,对数据内容进行合理划分是很有必要的。可以根据对数据检索的不同频次来对访问类型进行划分:对于访问频次高的数据存放在本地服务器,以减少网络负载及检索时间;对于访问频次低的数据,远程直接连接进行检索,以减少本地服务器负载,提高系统管理性。

建立本地副本,是提升信息检索效率的一种可行且有效的手段。一般可以根据用户查询频率、热点问题关键字等,将一部分频繁访问的文档复制到数据交换服务区。本系统中,对于用户对若干台远程服务器的访问频次非常高的情况,可以基于数据复制,建立一个数据交换区,来实现分布式检索的效率优化。如图2所示。

请求服务器和数据交换区服务器位于同一个网络域中,可以实现快速、高效的连接。通过远程服务器到数据交换区的定时数据库复制,数据交换区将多个远程服务器的数据保存为多个副本。数据交换区服务器可以对这些副本建立索引,以提高检索效率。在请求服务器的访问路由表中,将远程服务器的地址统一设置为数据交换区服务器的地址,并将这些远程服务器的SOAP服务代理的路径设置为数据交换区服务器的SOAP服务代理的路径。

对远程服务器上的数据进行检索时,不必将SOAP请求消息发送到各个远程服务器,只需要发送到数据交换区服务器即可,数据交换区服务器上运行的SOAP服务代理负责接收并解析原本需要发向远程服务器的检索请求消息,启动对远程服务器数据副本的检索,并将检索结果以SOAP消息的形式返回给请求服务器的SOAP请求代理。

数据交换区需要远程服务器定时向其进行数据复制,才能保证副本是最新数据。当远程服务器的数据更新频率比较低,而对这些服务器的检索请求频次非常高的情况下,这种基于数据交换区的结构设计非常实用。当请求服务器处理用户大量的远程检索请求时,不需要频繁地与远程服务器进行连接,可以大大地提高检索的效率。而对于访问频次不高的远程服务器,可以采用直接连接远程服务器进行信息检索。

4 结束语

除了提供强大、灵活的检索功能之外,作者基于Web服务技术实现的分布式检索系统,可以用于对等型结构下的分布式检索,进一步实现了一种基于数据交换区的非对等型检索部署结构设计,极大提高了检索效率。进一步的工作是,研究数据交换区的更新策略,以及检索算法的优化等。

参考文献:

[1]孙伟,吕强.基于文档副本局部性的分布式检索算法研究[J].计算机应用研究,2016(1):108-110,114.

[2]w3schools. XML SOAP. https://www.w3schools.com/XML/xml_soap.asp. 2018.