网上掏宝系统的设计与实现.doc_第1页
网上掏宝系统的设计与实现.doc_第2页
网上掏宝系统的设计与实现.doc_第3页
网上掏宝系统的设计与实现.doc_第4页
网上掏宝系统的设计与实现.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

基于分布式的网上掏宝系统的设计与实现侯培旭,孙云晨,赵中楷,房立坤,周东琪(山东师范大学信息科学与工程学院,山东济南,250358)摘要:本系统实现了基于.net framework 3.5+iis的基于分布式的网上掏宝系统,在大赛要求使用xml作为数据源的基础上,通过使用access或sql server数据库,实现了个性化的功能。在分布式方面,本系统使用基于socket的自主研发的分布式通讯系统以及借助web services技术实现了服务器间信息的交流,实现服务器间信息共享,同时还支持分布式选举、服务器异常退出的处理以及服务器分组和静态服务器设置等功能。在搜索方面,通过借助.net平台成熟稳定的lucene.net搜索引擎以及盘古中文分词组件,实现了文档精确的检索,同时还支持ajax自动完成提示、相关搜索提示、拼音搜索、拼音建议搜索、拼音切词建议搜索、英文含义建议搜索、数学表达式计算、关键词过滤以及全文检索、高级搜索等功能。在预览方面,使用完全自主研发的fxofficereader,解决了.net平台上不安装office无法读取word、powerpoint以及rtf文档文字的问题,同时借助.net平台上优秀的开源类库,实现了对excel各版本文件、pdf文件、zip及rar文件的文字读取功能,此外通过借助 adobe flashprinter以及自主研发的fykzxsharereader阅读器、swf文件切割器、后台生成预览服务实现了对word、excel以及powerpoint文档的真实文档预览。此外还开发了使用wpf技术的桌面客户端,使用wml和xhtml mobile 1.0双格式的手机页面,rss最新资源聚合,简单、易用的安装程序以及强大、完善、稳定的用户及后台系统。关键词:网上掏宝;.net;搜索;分布式;选举;web services;预览summary: this system realized a system on the base of online searching treasure system of the distribute type via the dot net framework 3.5 and iis. using xml as the foundation of the data source in the match request, we also use the access or the sql server database to realize the characteristic function. at the distribute type aspect, this system uses the method which is according to independent developing socket of communication system of distributing type and with the help of the technique of web services to realize the goal which servers exchange information and share sources. at the same time this system still support distribute type election, unusually withdraw and also to the server group and the static server list setting. at the searching aspect, under the help of the mature stable lucene.net of the dot net platform searching engine and the pangu chinese participle module in the aspects of search. we achieved the index of the text file precision, this system still support ajax to complete to hint automatically related search to hint, pronounce search, pronounce suggestion search, pronounce to slice the phrase suggestion search, english meaning suggestion search, mathematics expression type calculation, the keywords filter, the file content search and the advance search. in the aspects of preview, we used the fxofficereader of completely independent development to solve the problem that program cant read the content of word, powerpoint and the rtf file on the dot net platform when microsoft office is not installed, at the same time we used other open source classes of dot net platform to read each version document content of excel, pdf, zip and rar document. furthermore we use the help of adobe flashprinter and the fykzxsharereader reader, swf document splitting tool of independent development, flash file creating service to carry out to preview the true document of the word, excel and powerpoint file. other while we developed a desktop client which uses the wpf technology, we also developed mobile pages using wml and the xhtml mobile 1.0 language, the really simple syndication and the stable user and administration system.key words: dot net; search; distribution; election; web services; preview1、 引言目前网络上有大量提供共享资源的服务器,但是由于不同服务器的资源组织方式不同,从而导致不同服务器之间资源的共享和发现非常困难。分布式的资源检索策略可以有效地解决这一问题。用户只要登录任意一台服务器,不仅可以检索本地资源,而且可以检索其它服务器上的资源。本论文旨在概述fykzx share分布式检索与分享平台的主要架构及工作原理,论述本系统完善的功能及成熟的运行模式。2、 系统设计与实现综述fykzx share采用现在最流行的microsoft .net framework 3.5平台构建,程序通用性、移植性高。程序代码全部采用开发效率极高的microsoft visual studio 2008中的c#开发,代码使用svn平台管理,方便团队内成员协调工作以及更新代码。对于服务器端,fykzx share需要运行于安装有.net framework 3.5及以上平台以及iis4及以上平台的windows xp及以上的操作系统,同时如果服务器端开启分布式则还需要开放分布式通信端口(默认为9999,在web.config中可以修改)。对于客户端,只要安装有ie6及以上或同等规格的浏览器以及adobe flash插件则均可以正常访问服务器端的页面,如果客户端需要对音、视频进行预览,则还需要安装windows media player或者real player针对浏览器的插件以及相应格式的编码器。如果需要使用客户端应用程序(fykzxshareclient),则需要安装有.net framework 3.5。完整的fykzx share项目主要分为以下几部分:(1)、 fykzxsharefykzx share服务器端主程序,包含所有前后台页面文件及程序、分布式通信程序、数据操作程序、搜索程序、文档预览程序以及针对fykzxshareservice、fykzxshareclient的接口程序。(2)、 fykzxshareservicefykzx share服务器端windows服务(3)、 fykzxsharesetupfykzx share服务器端安装、设置、卸载程序。包括主安装程序,用于数据库初始化、fykzxshareservice安装以及flashprinter安装的初始化程序和fykzxshare服务器端卸载程序。(4)、 fykzxshareclientfykzx share客户端程序,采用最新wpf技术,拥有极佳的用户体验,方便用户在不打开浏览器的情况下查询、预览、收藏、评分、评论及下载等。(5)、 fykzxsharereaderfykzx share flash阅读器程序,采用adobe flash cs3开发,包括文档阅读器及图片阅读器。3、 系统架构与实现技术说明(1)、 系统主体架构表示层(ui)业务逻辑层(bll)数据访问层(dal)fykzxshare采用mvc的三层结构从开发角度和应用角度来看,三层架构比双层或单层结构都有更大的优势。三层结构适合群体开发,每人可以有不同的分工,协同工作使效率倍增。开发双层或单层应用时,每个开发人员都应对系统有较深的理解,能力要求很高,开发三层应用时,则可以结合多方面的人才,只需少数人对系统全面了解,从一定程度上降低了开发的难度。fykzx share服务器端主程序采用mvc的三层架构,对于表示层ui,包含客户端接口、移动设备用户界面及计算机用户界面,其中计算机用户界面包含后台用户界面和前台用户界面。对于前台页面,完全采用模板的形式实现表示层,不但修改方便,而且可以设置多套模板,在后台一键修改;对于后台管理页面,则将表示层放置于aspx文件中,方便后台复杂管理功能的实现与修改。对于业务逻辑层则包含诸如系统核心通用模块、页面模块、分布式、网络通信、搜索、预览以及后台管理及移动设备信息处理等各个功能模块及接口;而对于数据访问层则包含数据库处理模块以及文件读写模块,即为业务逻辑层提供了一个访问数据的接口,包括访问fykzx share数据库、资源信息、资源文件以及各种配置信息。(2)、 系统各模块综述表示层:客户端接口、计算机用户界面(包括后台用户界面和前台用户界面)、移动设备用户界面。业务逻辑层:后台管理模块、移动设备信息处理模块、页面模块、系统核心通用模块、分布式模块、网络通信模块、预览模块、搜索模块、小工具模块、文字处理模块数据访问层:数据操作模块、文件读写模块(3)、 分布式技术介绍fykzx share采用自主研发的使用socket通信+web service的分布式模块。fykzxshare的分布式部署如图所示,fykzxshare支持资源主机在互联网中的远距离通信,分布式系统中的资源主机可以不必在一个局域网中。分布式模块支持局域网主机自动发现。当局域网主机自动发现功能开启时,每台刚刚启动fykzxshare的主机都会向局域网中发送一条广播消息,收到该消息的启动了fykzxshare的主机会将消息的发送者加入自己的主机列表中,并向发送者回复一条应答消息,收到应答消息的主机把应答消息的发送者加入自己的主机列表。每当有主机关闭fykzxshare时,该主机将向局域网中广播一条标识自己退出的消息,收到消息的启动了fykzxshare的主机会把消息的发送者从自己的主机列表中删除。这样,每当有主机启动或关闭fykzxshare时,分布式系统都会做出相应的调整,将该主机动态加入或排出分布式系统。分布式模块采用主机静态列表和主机动态列表同时存在的模式,静态列表中的主机用户可以通过手动设置来添加删除,动态列表中的主机是通过开启局域网自动发现获取。静态列表和动态列表中的主机共同构成统一的分布式系统。在internet中使用时,可以手动关闭局域网自动发现功能。分布式模块还支持基于霸道算法(bully algorithm)的选举。霸道算法的流程如图所示。首先,主机通过静态及动态列表获取完整的主机列表,然后,按照主机的ip地址生成主机列表中所有主机的id,从中找到id最大的主机m,进行判断,如果m就是本机,那么按照霸道算法,本机将直接以主服务器身份开始运行,否则,尝试能否连接到m,如果能连接到m,那么m是主服务器,本机将把m当做主服务器自己以从服务器的身份运行,如果连接不到m,那么,从主机列表中删除m,重新寻找一个id最大的主机m*,循环上面的过程。(4)、 搜索技术介绍fykzx share采用.net平台上成熟稳定的lucene.net搜索引擎及中文分词准确且效率极高的盘古中文分词模块。在系统每次启动的时候判断lucene.net是否索引过文档,如果未索引则首先进行索引然后再正常启动系统,如果索引过则跳过该步骤。同时,在每次上传新文档后都会自动进行增补索引。此外,在系统的后台管理界面中也有重新进行全文索引的选项。每次执行搜索任务时首先由搜索模块中的关键字类进行关键字处理,挑出关键字中真正的关键词以及搜索控制语句(包括不包含词、文档种类、文档扩展名、文档作者、文件名包含等),然后对真正的关键词进行中文分词。之后判断关键词是否是表达式以及是否是英文并给与相应提示,然后判断关键词是否合法,如果合法则将真正的关键词及搜索控制项目传递到lucene.net并通过分布式显示返回结果;如果关键词非法则给与相应提示。下图为详细说明。(5)、 预览技术介绍fykzx share对于文档文件采取真实文档预览与文档文字预览相结合的方式,对于各版本的word、powerpoint文档,文档文字预览采用自主研发的fxofficereader,在服务器端免安装microsoft office 的前提下可以直接提取word、powerpoint文档内的文字;对于excel 97-2003文档,采用npoi读取文档内的文字;对于excel 2007-2010文档,采用epplus读取文档内的文字;对于pdf文件,借助ikvm.net来使用java平台上的pdfbox读取文档内的文字。同时,还借助nunrar以及sharpziplib读取rar及zip文件内容。对于文档的真实文档预览则借助adobe flashprinter。当上传新文档或打开文档时发现无真实预览时,并且文件格式为word、excel或者powerpoint格式,则调用fykzxshareservice将文件添加到生成队列中。然后fykzxshareservice后台调用adobe flashprinter,如果服务器端已经安装有microsoft office,则开始进行flash预览的生成,完成后fykzxshareservice调用自主研发的swf切割器将生成好的swf文件切割成可以供fykzxsharereader读取的文件即完成真实文档预览的生成,此时再次打开该文档即可优先显示真实预览。对于图片格式而言,我们使用adobe flash开发了fykzxsharepicviewer来预览jpg、gif、bmp、png等常见格式,并且支持图片的缩放、旋转、全屏显示以及读取进度等。对于视频及音频格式而言,我们使用windows media player与real player两款播放器的浏览器插件,针对不同类型的文件调用不同的播放器。4、 结束语本系统为分布式检索与分享平台,实现了资源的分布式检索、上传、共享、预览、下载、评论等功能,并为用户提供网页、桌面客户端、手机wap页三种使用方式,操作高效便捷,随时随地保持资源同步。基于.net平台,拥有强大后台,少许配置即可应用于公司、学校、商业、互联网等各方面用户。在完成大赛要求的基础上,丰富更多方便实用的特色功能。5、 参考文献1 microsoft.microsoft word97-2007bina

温馨提示

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

最新文档

评论

0/150

提交评论