基于分布式的资源检索系统设计与实现(山东财政学院).doc_第1页
基于分布式的资源检索系统设计与实现(山东财政学院).doc_第2页
基于分布式的资源检索系统设计与实现(山东财政学院).doc_第3页
基于分布式的资源检索系统设计与实现(山东财政学院).doc_第4页
基于分布式的资源检索系统设计与实现(山东财政学院).doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于分布式的资源检索系统设计与实现刘杰君,梅炀,李超,廉翠翠,吴俊(山东财政学院,济南,250014)摘要:本系统是建立在j2ee三层架构之上的网络资源检索系统,以XML为数据库,在分布式的条件下,检索出用户需要的信息。本系统对分布式结构做了优化,提出了一种新的分布式结构:选举注册发布。同时融合大赛提出的结构以及进程选举,p2p,路由算法等方案的提出的一种分布式结构;对XML进行了优化预处理,制作成倒排索引表;检索过程更加智能化,人性化;采用流媒体技术,开发出一套独立的流媒体转换处理播放系统,使播放效果更加流畅;采用中文分词,并支持全文检索,使搜索结果更加符合用户的需要; 提供多种综合查询方式,方便用户的查找;开发出一套TaoJin开发引擎;增加日志管理功能;对office以及pdf等主流文档类型进行预览;采用AJAX异步传输技术,实时提醒用户;同时采用Webservices和Socket针对不同平台提供查询、选举接口;针对每一个模块,每一个功能都提出多套解决方案,可以适应不同的复杂的环境;针对用户的行为进行分析,使查询结果更加符合用户的需要;提供了众多的方便用户的功能,开发出淘尽IE工具条等一系列实用工具。系统启动模块注册注销模块选举模块Webservices服务Socket服务XML预处理关键字:网上掏宝;分布式;搜索引擎;选举;资源检索;Webservices;Socket;流媒体。、1程序的主要模块 (1)系统启动模块用户查询模块过滤模块解析模块查询模块敏感词汇模块拼音转汉字模块错误检查模块表达式解析模块序列化模块反序列化模块中文分词模块排序保存模块高级搜索模块表达式搜索模块在结果中搜索模块相关搜索模块全面检索模块精确检索模块全文检索模块分类搜索模块高亮显示模块(2)用户查询模块显示模块文本预览视频播放AJAX预览网页预览普通网页播放流式播放(3)显示模块截图预览管理模块登录模块用户管理模块资源管理模块定期事件模块词库模块资源权重模块资源缓存模块服务器初始化模块主服务器配置模块服务器配置模块服务器管理模块(4)管理模块2系统架构与实用技术(1)采用MVC的三层架构(见下图)从开发角度和应用角度来看,三层架构比双层或单层结构都有更大的优势。三层结构适合群体开发,每人可以有不同的分工,协同工作使效率倍增。开发双层或单层应用时,每个开发人员都应对系统有较深的理解,能力要求很高,开发三层应用时,则可以结合多方面的人才,只需少数人对系统全面了解,从一定程度上降低了开发的难度。三层架构可以更好的支持分布式计算环境。逻辑层的应用程序可以有多个机器上运行,充分利用网络的计算功能。分布式计算的潜力巨大,远比升级CPU有效。也是三层架构的最大优点是它的安全性。用户端只能通过逻辑层来访问数据层,减少了入口点,把很多危险的系统功能都屏蔽了。表示层(UI)业务逻辑层(BLL)数据访问层(DAL)(2)使用技术整个系统的实现是基于j2ee_5的。三层架构是采用Struts 2.0 + jsp 2.0 + servlet + javabean来实现的。系统的框架采用目前最流行的框架Struts 2.0。采用异步传输技术AJAX,实现用户输入的实时提示。中文分词采用lucene-2.3.2和中文分词器IKAnalyzer V2.0.2。对XML的解析处理采用dom4j-1.6.1。增加日志功能,记录系统运行情况以及遇到的问题log4j。定期触发事件,可以重新索引,采用quartz技术。Webservices技术采用xfire-1.2.6,提供选举和查询的功能。为了提高查询效率,特别提供socket技术接口,大大提高了查询的效率。采用poi技术实现对office的预览功能。采用jacob,作为对poi技术的补充,解决部分特殊格式的问题。流媒体服务器端采用ffmpeg + mencoder + FMS,实现流媒体服务器端。流媒体客户端采用actionScript 3.0和流媒体服务器端的实时通信。3各技术详细说明(1)选举、注册、注销技术本系统对分布式结构做了优化,提出了一种新的分布式结构:选举注册发布。同时融合大赛提出的结构以及进程选举,p2p,路由算法等方案的提出的一种分布式结构;先说说“正常”情况下的执行过程:默认主服务器启动。然后其余服务器启动,到主服务器上面去注册,主服务器告诉该服务器当前已经注册的主机信息,然后主服务器通知已经注册的主机又有一台新的主机加入了。主机注销:主机注销时,通知主服务器本主机注销,然后主服务器通知其余主机该主机注销。即实现了资源服务器动态的加入和退出。当检索资源的时候,如果发现有资源服务器当掉了,则将其注册信息删除。下面是选举的执行过程:当一台“注册”或者“注销”或“查询”的主机发现主服务器当机的时候,开始选举过程。发现主服务器当机的服务器开始向“优先级”最高的服务器发出消息,如果不响应,则依次发到比自己都高的服务器,如果都没有响应则表明自己是主服务器,然后向其它服务器发送自己是主服务器的消息;如果有响应则响应者是主服务器,响应者发送消息说自己是主服务器。综合服务器当机可能出现的各种情况,我们分别对各自的选举过程进行了处理:1.最简单的选举的触发情况是查询时发现主服务器当机,包括以下两种情形: 该主机不是当前的主服务器; 该主机是当前的主服务器。2.一台主机启动时发现默认主服务器当机,包括以下几种情形: 有别的主机充当主服务器; 没有别的主机,只有自己在提供服务; 别的主机均未发现主服务器当机,没有别的主机充当主服务器。3.一台主机退出时发现主服务器当机,包括以下几种情形: 没有别的主机活动; 还有别的主机活动。4.默认主服务器重新开始提供服务。(2)XML预处理、webservices和socket技术对XML进行了优化预处理,制作成倒排索引表; “倒排表”是目前搜索引擎公司的搜索引擎采用的最常用的存储方式.也是搜索引擎的核心内容!在系统启动的阶段将test.xml制作成倒排表的形式,这样可以极大的提高搜索时的效率。倒排索引是一种面向关键字的索引机制,利用它可以提高检索时的速度。通常情况下,倒排索引结构由“词典”和“出现情况”两部分组成。对于每一个关键字,都会有一个词汇列表记录关键字在所有文档中出现的位置,这些位置可以是关键字的位置(文本中的第几个单词)也可以是字符的位置(文本中的第几个字符)。同时采用Webservices和Socket针对不同平台提供查询、选举接口。webservices服务提供选举的所需要的功能以及用户查询产生的分布式查询所需要的服务,由于webservices的平台无关性,可以使用于任何平台来连接,扩大了本系统的适用性。Socket模块提供用户查询产生的分布式查询所需要的服务,对于使用java开发的平台,可用socket来连接,效率更高。总的来说,对于选举注册发布的分布式结构,更加可靠,实用平台更多的webservices;对于查询,如果别的系统用非java语言来开发的,则提供webservices服务;如果用得是java语言来开发的,则提供效率更高的socket服务。(3)过滤与解析技术对于用户输入的查询关键字,首先经过过滤模块的过滤,才能真正进入查询模块。过滤模块一共包括三层过滤:敏感词汇模块过滤,拼音转汉字模块过滤,错误检查模块过滤。敏感词汇模块:由管理员在后台设置敏感词汇,如果用户输入的关键字里面包括这些敏感词汇,则用户的查询被禁止。拼音转汉字模块:将用户输入的拼音按照词典来找出对应的汉字。错误检查模块:将用户输入的错误关键字转化为正确的关键字。解析主要只解析表达式。表达式支持的符号为:+、 -、 and 、or 、not 、() 、”、title: 、 keywords : 、 kind : 、 describe:、 date : 、 author : 、 publisher:。(4)AJAX与文档预览技术采用AJAX异步传输技术,实时提醒用户。用户在输入框输入的时候,会在出现一个下拉框,提示用户别人搜索过的和自己正在输入的关键字类似的关键字,以及它们能搜索到的条数。AJAX预览模块模块就是实现的这功能。当用户正在输入关键字的时候,触发onkeyup、onkeydown、onclick事件,利用AJAX异步传输技术,将用户当前已经输入的关键字传回服务器,服务器在AjaxDB.xml文件中查找与用户当前输入的关键字相似的关键字,然后服务器将查找到的关键字和相应的记录条数返回给客户端浏览器,客户端浏览器将其实时的显示在页面中。其中AjaxDB.xml是在上一个模块中将每次用户查询的关键字及相应信息保存到其中的文件。实现对word及ppt的预览,同时还增加了对pdf格式的预览(大赛只要求实现对word和ppt的预览)。(5)视频与FMS流媒体播放技术通过用户点击连接触发相应,将相应的URL参数传到后台相应的jsp页面中,程序根据URL参数调用不同的播放实现视频的播放。使用jsp技术和javascript从URL获取视频后缀的不同调用不同的播放器,来达到多种格式视频和音乐的播放。通过解析所传URL中的参数值来选择合适的播放器进行嵌入网页的播放,代码优化播放器的外观,使其更加美观大方。URL路径中带有中文的问题已解决,即资源路径中包含中文名称亦可正确解析。我们编写了一套独立的流媒体转换处理播放系统,支持多线程、批处理,可独立运行,然后java程序通过一定的方式提交转换任务,转换系统接收到新的转换后,开始转换视频。当有多个用户同时点击或者间隔很少时间内点击位于同一台电脑上的不同视频文件链接,而且以上链接所对应的视频都是第一次被观看时,采用多线程转换技术,把所有的转换任务依次执行,互不影响,提高了视频转换的效率。第一次转换视频完毕后,以后的用户再次点击此视频播放链接的时候,则可以直接进行流媒体播放。(6)动态视频截图技术通过用户点击连接触发相应,将相应的URL参数传到后台相应的视频截图程序中,程序调用相应插件,通过后台设置的参数对相应视频进行截图,然后嵌入到网页呈现到客户端。通过代码检测截图是否已成功,从而减少了对CPU资源的浪费,提高了利用率。通过代码设置参数,可截出影片任意一帧的图片,而且还可以截取一段视频片段,将视频服务做到了淋漓尽致。淘尽网络资源检索平台所提供的服务还不止于此,我们在对视频做flash化的同时,通

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论