欢迎进入济南计算机学会官方网站!
济南计算机学会
优秀论文
优秀论文
优秀论文
优秀论文 您的位置:首页>>优秀论文
基于P2P体系的资源检索系统设计与实现
2011-06-14 1481 返回列表

(1)服务器模块

系统采用P2P体系,当系统启动时首先加入到服务器网络,然后自动连接其他服务器,连接成功则将该服务器加入到服务器网络,反之不再将其加入到服务器网络。

系统同时启动“心跳包”时时测试模块,时时测试当前服务器列表中服务器的状态,当发现有异常退出的服务器时,系统自动将其在服务器列表中删除。

相对于其他分布式体系来说,我们采用P2P体系省去了选举发布注册注销等模块,提高了系统的容错能力,使得系统更加稳定。

(3)RMI远程调用

    RMI远程调用能够使得本地Java对象调用其他机器上的Java对象,使用RMI使得服务器之间的资源共享成为可能。当用户登录一台服务器开始搜索资源时,系统除搜索本系统资源外还启动多线程同时向其他在线服务器发送搜索请求,通过RMI实现多台服务器之间的资源共享。

RMI实现过程:(1)建立远程调用接口(2)实现远程调用接口(3)注册远程调用服务器对象 (4)服务器通过本身Java对象调用其他服务器注册的Java对象搜索所需要的数据(5)获得数据并将所得到的数据按照与用户搜索数据的相关度进行排序(6)显示给用户

(4)Lucene高速检索技术

Lucene是一个全文检索引擎的框架,提供了完整的查询引擎和搜索引擎,我们利用Lucene这个框架开发了一套完全符合用户需求的全文搜索引擎。首次使用系统时系统自动将资源列表添加到倒排序索引中(倒排序索引是搜索引擎中常用的索引方式,能极大地提高信息检索的速度,现在大多数搜索引擎公司都使用的是倒排序索引),当用户搜索资源时,系统利用Lucene中丰富的查询对象和查询方法快速检索出用户所需的资源。

(5)AJAX动态提示技术

    AJAX是网页时时动态交互技术,是由Jesse James Garrett提出来的主要包括:Asynchronous  JavaScript And XML

AJAX核心:XMLHttpRequest对象,Dom与HTML,DOM与XML,面向对象的Javascript

AJAX应用的流程是:在浏览器中输入数据->点击按钮提交请求->用户可以继续做其他事情;Servlet在处理数据,并发回数据->浏览器收到响应->浏览器中的当前页面显示响应结果,这其中仍然有些过程由于时间短暂使你忽略了它的错在,但实际上这些过程都是存在的。

 

(6)文档预览技术

    Apache POI是Apache软件基金会的开放源码函式库,POI为Java程式提供对Microsoft Office格式档案读和写的功能。系统利用POI实现对主流文档的读取,并利用RMI远程调用将其他服务器的资源远程读取到本地显示给用户。我们除了使用POI外还使用了一些其他的技术,比如使用pdfReader读取pdf的内容等等,这样用户就能够对常用格式的文档进行在线预览了。

(7)图片预览以及音频歌词同步显示技术

读取歌词的lrc文件到网页中,同时隐藏歌词。获取播放器播放的速度,另外将歌词转换成html的格式显示,显示的时候显示到播放器播放到的地方。IsLyricValid()    判断是否合法lrc歌词DoSync()    定位歌词,用于显示同步的html如下:

<div>

    歌词容器

    <table>

    歌词

    </table>

</div>

 

var uiLRC=new LRC({lyric:'歌词信息',lyricTable:[歌词表元素],lyricWrapper:[容器元素],curRowClassName:'选中行css样式名',separator:'歌词行分隔符'});

    var timerId;

    if(uiLRC.IsLyricValid()){

        timerId=setInterval(function(){            

            uiLRC.DoSync(GetCurrentPosition());//GetCurrentPosition()获取播放器当前进度 单位秒

        },100);

    }

图片预览:图片显示的缩略图,形成连接,当点击小图片的时候弹出遮罩曾,把图片的小图片显示在下方,同时上方出现大图片,此外增加了键盘事件能实现查看图片的效果。当点击下一张的图片时,自动往后移动几张,当点击图片的时候会自动的找到存储的图片的真实地址,并且显示出来,滚动图片时候放大图片。

 

(8)动态视频截图技术以及媒体的转换以及播放技术

    当用户上传资源或者是管理员添加资源时,系统使用FFmpeg和Mencode自动将上传的非流媒体视频转换成流媒体视频,利用FFmpeg和Mencode能够实现对大多数非流媒体的转换。实现了非流媒体的在线预览。系统还可以将自动截取视频中的某一帧,当用户搜索到视频类资源时,系统将该帧以视频缩略图形式呈现,让用户大致了解该视频的内容。

 

(9)语音搜索,预览,下载技术

我们首先利用Java编写语音控制接口,然后再利用JavaH将语音控制借口编译成为C++中使用的H文件,然后利用Viscual C++实现语音控制接口,最后利用JNI调用语音控制接口。控制对资源的搜索,预览,FTP高速下载。我们使用Java中的FTP编程接口编写了FTP高速下载系统资源的程序,极大地提高了用户下载资源的速度。

JNI是Java Native Interface的缩写,中文为JAVA本地调用。它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的。

 

(10)FTP高速下载技术

FTP服务器,则是在互联网上提供存储空间的计算机,它们依照FTP协议提供服务。 FTP的全称是File Transfer Protocol(文件传输协议)。顾名思义,FTP就是专门用来传输文件的协议。简单地说,支持FTP协议的服务器就是FTP服务器。系统除了简单的搭建FTP服务器之外,还自主开发了FTP高速下载程序,能够为用户提供高速下载通道(语音下载即利用了FTP高速下载)。

(11)论坛模块

系统对数据库操作进行优化,极大的提高了用户操作数据库的速度,系统界面良好,方便用户发帖、回帖、搜贴、查看帖子等。系统分用户,版主,管理员三模块分模块管理,用户能够发帖、回帖、浏览帖子等,版主有权决定帖子的好坏,管理员能够管理论坛版块、用户信息,能够发表论坛动态信息等,同时系统利用servlet实现了文件上传功能,实现了个人资源的网络共享。

三   结束

系统在P2P体系下实现了多台服务器之间的资源共享,检索速度优化,并且能够对文本、图片、音频、视频等以友好的方式呈现,并支持各类资源的下载,同时实现了语音搜索,后台管理,论坛系统,新闻发布,FTP高速下载等特色功能。

参考文档:

(1) 谭鸿 《Lucene IN ACTION中文版》 ISBN: 7121032171电子工业出版社, 2007

(2) 孙卫琴的《Java网络编程精解》ISBN-9787121039003 电子工业出版社

(3) David Reilly Michael Reilly的《Java网络程序设计与分布式计算》ISBN:9787302097679   清华大学出版社

(4) 闫术卓, 杨强 《Struts 2技术详解/基于Web Work核心的MVC开发与实践/程序天下:

基于Web Work核心的MVC开发与实践》 ISBN 7121062216电子工业出版社 

 

联络方式

通讯地址:济南市历下区经十路7366号山东经济学院

电话:13465913562

E-mailwangchunhao.ok@163.com

评语:

    该队能正确理解参赛题目的核心思想,使用了较新的技术实现了题目要求的基本功能。除此之外,该队开发的语音搜索是创新亮点。把语音识别和搜索模块相结合,不光体现了作品的人性化,也体现了系统的智能性和开放性。但是,像语音搜索等相关特色功能的健壮性和稳定性还需要进一步完善。


二维码
济南计算机学会
电话:0531-88391234
地址:山东省济南市历城区舜华路1500号