当前位置:首页优秀论文 正文
网络资源检索系统的设计与实现
2011/6/14 16:07:42 点击: 15128

尹文开、韩素伟、徐千昆、李天行、王冠军

(山东师范大学信息科学与工程学院)

 

 

摘要:本文论述了dreamfly团队开发的网络资源检索系统的设计及实现细节。本系统采用分布式计算方式,利用SWT、组播、RMILucenePOI、流媒体等技术实现对网络中存在的大量共享资源的检索、预览及下载功能。

 

关键词:网络资源检索 共享资源 分布式计算 全文检索

 

1.引言:

 

网络上存在大量的资源共享服务器。这些服务器一般存储了一定量的资源,并以web的方式供用户和其它服务器访问。例如一些视频和电子书的共享网站。但不同的网站的资源组织方式往往不同,有的是通过数据库,有的是通过一些描述文件(如XML),而且数据库的种类和结构也有很大的差别,这就导致不同服务器之间资源共享和资源发现都十分困难。因此,用户如果想访问这些资源,就要登陆每一个服务器去检索和下载需要的资源。由于服务器的分布广泛,数量众多,用户显然难以检索到自己需要的资源。
   
基于此,本题目想设计这样一个系统。不同的资源分散地存在不同的服务器上,但对用户来讲,这种分散是透明的,不可见的。用户访问这些资源的时候,不会感觉这些资源分散在不同的服务器上,而是感觉资源就在他访问的这台主机上。也就是当用户登陆任何一台服务器的时候,都可以检索和访问该域内全部的资源。

 

2.系统设计及实现:

 

dreamfly网络资源检索系统主要包含九大模块程序设计:

   1.图形用户界面模块

    2.远程方法调用及其相关模块

    3.索引建立模块

    4.检索模块

    5.高级检索模块

    6.Ajax模块

    7.检索结果显示模块

    8.文档预览及音视频播放模块

    9.资源下载模块

 

1)图形用户界面模块

此模块为用户提供友好的图形界面,避免了繁琐的运行环境及服务器的设置,使普通用户能够更方便地使用本系统。

本模块采用swt编写,程序运行速度更快,界面更加美观。SWT-"Standard Widget Toolkit",它是一个Java平台下开放源码的Native GUI组件库,也是Eclipse平台的UI组件之一。从功能上来说,SWTAWT/SWING是基本等价的。SWT以方便有效的方式提供了便携式的(即Write OnceRun Away)带有本地操作系统观感的UI组件。

 

2)远程方法调用及其相关模块

本模块为资源检索系统提供了一个整体框架,可以为选举注册发布的分布式结构、资源检索、文档预览等各方面的功能的实现提供一个平台,使此系统有很强的应用性。

此模块采用RMI和组播技术。

RMI(远程方法调用):方法调用从客户对象经占位程序(Stub)、远程引用层(Remote Reference Layer)和传输层(Transport Layer)向下,传递给主机,然后再次经传输层,向上穿过远程调用层和骨干网(Skeleton),到达服务器对象。 占位程序扮演着远程服务器对象的代理的角色,使该对象可被客户激活。远程引用层处理语义、管理单一或多重对象的通信,决定调用是应发往一个服务器还是多个。传输层管理实际的连接,并且追追踪可以接受方法调用的远程对象。服务器端的骨干网完成对服务器对象实际的方法调用,并获取返回值。返回值向下经远程引用层、服务器端的传输层传递回客户端,再向上经传输层和远程调用层返回。最后,占位程序获得返回值。组播(Multicast):在发送者和每一接收者之间实现点对多点网络连接。如果一台发送者同时给多个的接收者传输相同的数据,也只需复制一份的相同数据包。它提高了数据传送效率。减少了骨干网络出现拥塞的可能性。

 

3)索引建立模块

“倒排表”是目前搜索引擎公司对搜索引擎所使用的最常用的存储方式。也是搜索引擎的核心内容。我们这一模块的工作是利用lucenetest.xml文档和resources资源文件夹下的所有资源建立索引,通过索引可以实现对xml和全文的检索。

lucene全文检索引擎工具包:在全文检索这一方面,我们采用了lucene全文检索引擎工具包,并且对程序进行了极大的优化,极大加快了索引建立速度。而且利用索引进行检索时,查全、查准率非常高,速度也非常快,可以达到毫秒级别,前100条记录可以满足几乎所有用户的要求。

 

4)检索模块

根据用户输入的关键字进行高速检索。

 

5)高级检索模块

根据用户输入的关键字和限制条件进行高速检索。

 

6Ajax模块

此模块主要用于动态的在搜索框下方生成下拉提示框,框内内容根据首汉字匹配的原则从匹配词库查得,并显示该条内容能搜索到的结果数。

Ajax基于web标准(standards-based presentationXHTML+CSS的表示;使用 DOMDocument Object Model)进行动态显示及交互;使用 XML XSLT 进行数据交换及相关操作;使用 XMLHttpRequest 进行异步数据查询、检索。

 

7)检索结果显示模块

当用户根据关键词查询进行结果显示时,会同时显示关键词在该项资源中出现频率最高的一段话,而该模块就是对这一段话中出现的关键字以特殊形式显示。

Apache POIApache软件基金会的开放源码函式库,POI提供APIJava程式对Microsoft Office格式档案读和写的功能。

  结构:

  HSSF - 提供读写Microsoft Excel格式档案的功能。

  XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。

  HWPF - 提供读写Microsoft Word格式档案的功能。

  HSLF - 提供读写Microsoft PowerPoint格式档案的功能。

  HDGF - 提供读写Microsoft Visio格式档案的功能。

 

8.文档预览及音视频播放模块

对文档图片视频音频文件进行预览。

 

9.资源下载模块

该模块主要提供给用户下载文件的功能。

 

3.结束语:

    本系统为用户提供了良好的图形界面,避免了用户对服务器和运行环境的繁琐设置。实现了大赛要求的对共享资源的检索、预览及下载功能,并提供了对资源的高级检索、结果中找等功能,方便用户检索。

 

4.参考文献:

[1]闫术卓, 杨强.Struts 2技术详解/基于Web Work核心的MVC开发与实践/程序天下: 基于Web Work核心的MVC开发与实践.北京:电子工业出版社, 2008

[2]谭鸿.Lucene IN ACTION中文版.北京:电子工业出版社, 2007

[3]吴洁.XML应用教程.北京:清华大学出版社, 2005

[4]邹竹彪.JSP宝典/宝典丛书.北京:电子工业出版社, 2007

[5]李刚, 宋伟, 邱哲.征服Ajax+Lucene构建搜索引擎.北京:人民邮电出版社, 2006

[6]李刚.Struts 2权威指南.北京:电子工业出版社, 2007

Copyright 2007-2014 济南计算机学会.All Rights Reserved 鲁ICP备09070135号
济南计算机学会维护管理
联系电话:0531-88391234