已阅读5页,还剩64页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本 科 毕 业 论 文基于P2P架构的企业级全文搜索系统的设计与实现-服务器与连接The Design and Implementation of P2P Architecture Based Enterprise Full-text Search System -Server and connection姓 名: 学 号:学院:软件学院系:软件工程专 业:软件工程年 级:指导教师: 年 月摘要研究表明,技术型企业、设计类企业、软件开发企业均有这样的特点:技术和研发人员从网络中获取了大量的技术资料和市场信息,同时,他们通过生产工作也积累了大量的项目经验,技术文档等等,构建起个人或团体较完善的信息库。但由于公司与公司间商业性竞争而限于技术性保密和员工隐私等问题,这些有高价值信息无法在企业内部形成有效的流动和传播,从而形成了一个个信息孤岛。针对此,急需研发一个便于共享企业内部资源的信息共享系统。基于,企业内部技术、项目资料多以文件形式存储的特点,开发一个企业级全文搜索引擎是当务之急。而P2P架构在互联网应用以其方便,信息交互迅速,结点平等等特点运用极其广泛,据电信部门公布的数据表明:当今基于P2P技术的BT流量占到计算机网信息量的60%以上,可见其运用广泛。因此,我们提出一种基于P2P架构的企业资源搜索引擎,一个用于知识型企业内部的员工之间的信息共享的检索工具。该项目基于Windows Search 服务,根据用户自定义的搜索需求,进行局域网络全文文件搜索。使局域网络内的共享资源以一个界面就能全部呈现给用户,整个网络内计算机资源便形成一个资源池,任何用户能够以使用本地资源方式使用网络内的资源。服务器同时不断整合搜索结果:关键词、词频统计数据、文档的存储位置等信息。当任何一个用户试图搜索某一个资源时,系统自动在企业内部网络进行搜索和适配,并将合适的文档直接推送到搜索结果集中,并将检索结果保存在内部服务器端以加速二次检索,形成一个企业网内的P2P搜索共享系统。项目的主要任务是通过Windows Search服务实现文档的搜索和共享,使用windows search API用C#语言构建基于Socket编程和多线程技术实现的P2P客户端和服务端。关键词:P2P ;企业文件共享;全文搜索AbstractRecent researches prove that Technology-based enterprises, design-based enterprise, software development and service enterprises all have the following characteristics: technology and R & D personnel get a great deal of technical information and market information from the Internet, and through the production lot they have accumulated project experience, technical documentation, etc., that builds a better information base of individuals or groups. However, limited commercial confidentiality and employee privacy and other technical issues caused by competition between companies, the high-value information within the enterprise cant form effective flow and dissemination of information to form a one island. So, needed to develop an information sharing system for facilitate to share internal resources. Based on the characteristic of majority of enterprise technology, project information stored in the form of document, the development of an enterprise-class full-text search engine is a priority. Moreover, the P2P application in the Internet for its convenience, the rapid information exchange, equal nodes is used an extremely wide, according to data released from the telecommunications sector that BT flow technology based on P2P Counts for 60% of the computer network, which proves its extensive use. Therefore, we prepare to develop a P2P architecture based on enterprise resource search engine, one system for the information sharing among the employees in the knowledge-based enterprise. The project is based on Windows Search service, according to user search request for local area network full-text search file search. Shared resources in the local network can be a full presentation to the users, so that the network computer resources will form a resource pool, and any user can use local resources in the local network. Server also been integrated search results: Keywords, word frequency statistics, document storage location information. As a user want to search a particular pile of resources, the system automatically searches and adapts in the enterprise network and pushes the appropriate documentation directly to search results concentrated, and search results will store in the internal server to speed up the second search which forms an enterprise network sharing system within the P2P search.The projects main task is achieved by Windows Search service search and share documents, use windows search API using C # language construct based on Socket programming and multithreading technology of the P2P client and server. Key words: P2P; enterprise files sharing; full-text search目录第一章 绪论11.1前言11.2论文组织结构2第二章 系统概述与相关技术42.1系统概述42.1.1文件搜索引擎概述42.1.2P2P概述52.1.3系统实现工具概述72.2相关技术82.1.1资源预分配机制82.1.2Windows Search 4.0102.1.3Telerik RadControls for WinForms11本章小节14第三章 系统分析153.1系统需求153.1.1企业对于内部文件搜索共享系统的需求153.1.2基于P2P架构的搜索共享系统的功能需求153.2系统设计163.1.1系统概述163.1.2系统非功能需求163.1.3总体设计163.3详细设计183.1.1组件、框架与系统模块183.1.2模块通信19本章小结20第四章 系统实现224.1包设计224.2服务器的实现:254.1.1模块一:搜索服务模块:294.1.2模块二:搜索请求模块324.1.3模块三:搜索状态模块364.1.4请求池与响应池364.3客户端简介414.4Socket池化实现464.5实体对象序列化48本章小节50第五章 系统测试及运行结果515.1测试515.2结果51文件搜索:51文件下载54本章小结55第六章 展望与总结566.1 展望566.2 总结56参考文献58致谢59ContentsChapter 1 Preface11.1Introduction11.2The structure of this paper2Chapter 2 System principle and related technologies outline42.1System working principle42.1.1File search enginer working principle42.1.2P2P working principle52.1.3System Implemetation working principle72.2Related technologies introduce82.1.1Resource pre-allocation mechanism82.1.2Windows Search 4.0102.1.3Telerik RadControls for WinForms11Summary14Chapter 3 System Analysis153.1System Requirement153.1.1Requirements of enterprise search system153.1.2Functional requirements of P2P based system153.2System Design163.1.1Introduction of system163.1.2Non-functional requirements of system163.1.3Overall design163.3Detail Design183.1.1Components, framework and system modules183.1.2Module Communication19Summary20 Chapter 4 System Implementation224.1Packet Design224.2Server implementation:25Module 1: Search service module:29Module 2: The search request module32Module 3: Search state Module36Module 4: Responsepool and RequestPool364.3Client Profile364.4 Socket Pooling Implementation464.5object serialization48Summary50Chapter 5 System testing and running results515.1System testing515.2Running results51Summary55Chapter 6 Sumary and Outlook566.1 Outlook566.2 Summary of the paper56References58Thanks59Error! No text of specified style in document. Error! No text of specified style in document.第一章 绪论1.1 前言互联网和搜索引擎已经成为现在人生活中不可或缺的一部分。在带给生活极大方便的同时,互联网上庞大冗沓的信息量也使人们在搜寻自己所需上付出了较大的时间成本,其中最主要的花费就是在浩瀚的搜寻结果中甄别、挑选的时间尽管搜索引擎已经在它的能力上最大程度地进行了优化排序。在调研中,我们发现,在企业中,尤其是技术型企业、设计类企业、软件开发和服务企业中:横向对比,由于工作环境和工作项目等的相似性,同一时期员工的信息获取关键字和方向重复度非常高,在同一部门尤甚;纵向对比,由于企业的业务的相似,不同项目、工程所应用的技术、资料等资源亦可以长时间重复利用。另一方面,员工本身自己在工作中已经不自觉建立和完善的知识库和资源,这些资源往往是已经经过筛选甄别的,相比互联网上的内容,具有更高的价值和更少的冗余无用信息,但是同时又有很大数量的资源是重复浪费的,员工每一个人可能在获取一份相同的资料上都花费了不等的时间。如果能将整个公司的网络资源有效组织,那么不论是员工个人时间,还是间接的公司成本,都会得到极大的节约和改善。而资料文档的互通共享也会使工作效率得到很大程度的提高。目前一些国内外的企业已经意识到这些问题,而快速增长的企业搜索市场吸引了Google、IBM、微软等软件巨头的注意,未来搜索技术将进入每个应用程序的接口中。如推出了Google Search Appliance等本地局域网搜索设备和软件,或者提供了搜索API供定制开发,还有一些中小型公司提供专业的私有搜索引擎开发。但是仍然无法完全解决问题:如果应用大型公司的技术,成本开支过高,应用功能相对高端却用不上;应用私有技术,却担心技术支持,隐私等等没有保障。通过统计和了解,在大部分企业中,所需要的资源多为word文档,pdf文件等通用格式,重复冗余度最高,知识相关性最高的也是此类格式。同时在极大多数企业里,使用率最高的是Windows操作系统,而自Windows Vista开始,便内置了Window Search,在Windows XP中,也可以方便地安装应用,并由微软公司提供相关支持。针对上述问题和特点,我的毕业设计选择了基于Windows Search API的二次开发,它兼二者优势,成本较低,应用方便简约,同时应用了P2P架构,在作为资源获取者的同时也成为资源贡献者。并将其本机的简单搜索功能扩展化,网络化,使搜索局域网内文件如同搜索本机一样迅速高效,最终实现了公司网络内的资源共享流通。将客户机的索引文件汇入网络搜索,并将最终索引存储到内部服务器,形成网络自己的索引。在界面上提供了全文搜索,常用扩展名搜索下载等基本服务,同时在后台可以响应多种高级搜索指令以便专业用户使用,简约而功能卓越。系统在设计时便预留足够的空间可以扩展升级以及定制,在不同的公司和网络间可以方便地进行复用。本系统的设计目标:提高搜索质量1994年,有人认为一个完整的索引将会使得搜索变得十分简单。然而,随着的计算科学技术的迅速发展,事实证明查全率并不是评价搜索质量的唯一因数。大量的“无效的”结果常常冲掉用户真正感兴趣的结果。并且,人们仍然只愿意察看结果中的前十几个。因此,伴随的文件系统的庞大,我们需要的极高的查询准确度。事实上,我们希望只返回那些最“最优秀”的文档,而不是数以百计的相关性很小的文档。极高的查询准确度对于查询之后的文件访问也有重大的意义,用户不必访问大量的结果来找出所需的内容。搜索结果的显示提供了相关性判断的很好的依据。给搜索结果排序文件信息是一种很重要的资源,但是没有被文件搜索引擎很好的利用。根据关键字出现频率、文件访问频率等对文件进行分类排序,这就使其很好的与人的主观判断相符合。1.2 论文组织结构本论文共六章,论文首先对企业资源重复冗余,员工重复相同的资源收集工作的现状进行了描述,分析了其原因,以及现有的解决方案,介绍了毕业设计项目的背景和意义。紧接着论文简单概述了毕业设计项目中所用到的各项技术和原理,对用户的需求和系统的总体设计进行整体的分析和概括。然后文章详细地介绍了开发模块和系统实现。在连接方面使用SOCKET和线程池进行文件搜索和传输,并实现P2P;在UI方面使用RAD CONTROL进行设计,使用户操作体验得到很大的提升。由于是基于Windows编程,我们选择了C#语言和Visual Studio和Windows 7作为开发环境。同时为了提高开发效率和做好时间管理,我们使用了SCRUM方法来进行敏捷开发。安排如下:第一章 绪论。介绍了知识型企业在发展和生产过程中,资源共享和知识交流的困难提出局域文件搜索系统的设计背景和目标。第二章 系统概述和相关技术。简要介绍了文件搜索引擎基本组成部分,P2P技术,以及开发高效率服务器所需的资源预分配机制,Windows Search 4.0特性等第三章 系统分析。针对用户的共享文件资源,知识的需求,确定此系统的实现目标。此系统的总体设计和详细设计,包括系统框架,模块及其通信的介绍。第四章 系统实现。介绍了此系统的总体实现框架,主要介绍了服务器部分的开发。第五章 系统测试和运行结果。第六章 展望和总结。第二章 系统概述与相关技术2.1 系统概述2.1.1 文件搜索引擎概述文件搜索引擎(File Search Engine)是指根据一定的策略、运用特定程序搜集计算机上的文件信息,在对信息进行组织和处理后,并将处理后的信息显示给用户,是为用户提供检索服务的系统。文件搜索引警通常由4个部分组成:搜索器,索引器,检索器,用户接口a) 搜索器:搜索器的功能是当计算机处于空闲时自动启动,或人为手动启动发现和搜索文件信息。它尽可能多、尽可能快地搜索各种类型的新信息,同时因为某些计算机上的文件更新很快,所以还要定期更新已经搜集过的旧信息,以避免无效信息的存在(如文件已被删除,或文件名更改)。并且由于在本地机器上搜索数据可以以非常快的速度进行,因此,能够以多种搜索策略进行文件搜索。b) 索引器:索引器的功能是理解搜索器所搜索的信息,从中取出索引项,用于表示文档及生成文档库的索引表。目前,在本系统中进行局域网文件搜索最重要的技术是分布式、并行搜索技术,达到搜索结果可在多台机器上同时获取,以提高文件信息发现与获取速度。索引项有客观索引项与内容索引项两种:客观项与文档的语意内无关,如作者名、更新时间、编码、文件长度、最近访问时间、读写属性、隐藏属性等;内容索引项是用来反映文档内容的,如关键字及其出现频率、短语、单字等。且内容索引项只可以分为单索引项和多索引项两种。单索引项对于英语来说是英语单词,容易提取,这是因为单词之间存在空格是天然的分隔符;对于中文等连续书写的语言,必须进行词语的拆分。在文件搜索引擎中,一般要给单索引项赋予一个权值,以表示该索引项对文档的区分度,同时用来计算查询结果的相关度。使用的方法一般有统计法,信息论法和概率法。多索引项的提取方法有统计法,概率法和语言学法。索引表一般使用某种形式的倒排表(Inversion List),即由索引项查找相应的文档。索引表也可能要记录索引项在文档中出现的位置,以便检索器计算索引项之间的相邻或接近关系。索引器可以使用集中式索引算法或分布式索引算法。当数据量很大时,必须实现即时索引(Instant Indexing),否则不能够跟上信息量急剧增加的速度。索引算法对索引器的性能(如大规模峰值查询时的响应速度)有很大的影响。一个搜索引擎的有效性在很大程度上取决于索引的质量。c) 检索器:检索器的功能是根据用户的查询在索引库中快速检出文档,进行文档与查询的相关度评价,对将要输出的结果进行排序,并实现某种用户相关性反馈机制。检索器常用的信息检索模型有集合理模型、代数模型、概率模型和混合模型4种。d) 用户接口:用户接口的作用是输入用户查询、显示查询结果、提供用户相关性反馈机制。主要的目的是方便用户使用搜索引擎,高效率、多方式地从搜索引擎中得到有效、及时的信息。用户接口的设计和实现使用人机交互的理论和方法,以充分适应人类的思维习惯。用户接口可以分为简单接口和复杂接口两种:简单接口只提供用户输入查询串的文本框;复杂接口可以让用户对查询进行,如逻辑运算(And、Or、Not;+、-)、相近关系(相邻、Near)、目录范围、出现位置(如文件名、文件内容)、信息时间、长度等。目前一些公司和机构正在考虑制定查询选项的标准。2.1.2 P2P概述在引言中,我们提到过“在当今的社会中,我们周围P2P技术的应用越来越广泛, 也可以说我们接触到的软件中绝大部分是P2P软件。”,那么什么是P2P技术?P2P技术具有什么特点?如何实现P2P思想?P2P(Peer-to-Peer) 称为对等互联网络技术,一种网络新技术,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。P2P网络通常用于通过Ad Hoc连接来连接节点。这类网络可以用于多种用途,各种文件共享软件已经得到了广泛的使用。P2P技术也被使用在类似VoIP等实时媒体业务的数据通信中。P2P还是英文Point to Point (点对点)的简称。它是下载术语,意思是在你自己下载的同时,自己的电脑还要继续做主机上传。纯点对点网络没有客户端或服务器的概念,只有平等的同级节点,同时对网络上的其它节点充当客户端和服务器。这种网络设计模型不同于客户端-服务器模型,在客户端-服务器模型中通信通常来往于一个中央服务器。有些网络(如Napster, OpenNAP, 或IRC find)的一些功能(比如搜索)使用客户端-服务器结构,而使用P2P结构来实现另外一些功能。类似Gnutella 或Freenet的网络则使用纯P2P结构来实现全部的任务。一般报章都称P2P是点对点技术,但其实是错的,实为解作群对群(Peer-to-Peer)。在虚拟私人网络VPN (Virtual Private Network)中,也有P2P这个名称,它才是真正解作点对点(Point-to-Point)。依据中央化程度,P2P可以分为三类:纯P2P,杂P2P和混合P2P。i. 纯P2P节点同时作为客户端和服务器端,没有中心服务器,没有中心路由器。ii. 杂P2P有一个中心服务器保存节点的信息并对请求这些信息的要求做出响应;节点负责发布这些信息(中心服务器并不保存文件),让中心服务器知道需要交换的信息,让节点下载其需要的资源。iii. 混合P2P介于纯P2P和杂P2P之间的。有一定约束,同时含有纯P2P和杂P2P的特点。此系统采用了杂P2P架构。当某个Client PC节点的用户根据特定需求试图搜索与某个关键字相关文件时,搜索请求会首先发送给Server,Server负责转发给在局域网内具有文件搜索功能的Search PC节点。Search PC节点一旦接受到搜索请求,就会立即启动文件搜索服务,在完全文件搜索之后会将搜索结果集返回给服务器。Server再将搜索结果集封装成相就应的包,依次返回给发出搜索请求的Client PC节点。该节点接收到搜索结果集后,用户需要将某些下载或浏览某些文件,此时Client PC 就无需通过Server再将文件下载到本地,而是绕过Server直接与文件所在远程Search PC建立Tcp连接来实现文件传输,获取该文件。由于文件获取过程与Server无关,因此是属于杂P2P范畴。图2.1 系统运行原理图2.1.3 系统实现工具概述有了系统的架构和运行原理,就可以选择一种合适的编程语言去实现它。C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。作为微软新一代Visual Studio开发平台的首选语言,综合了VB简单的可视化操作和C+的高运行效率,与COM是直接集成的,具有强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持。可以用C#编写出安全的、稳定的、简单的、优雅的程序。因此,选择了C#作为开发语言。此系统是典型的多线程应用程序,其服务器结果类似现今相当流行的游戏服务器设计方式,很好的解决了并发互斥等问题,具有很好的稳定性。另一方面,借助于windows search SDK 提供了.NET平台下的dll库,在C#下操作windows search API更加方便。微软公司的Windows Search组件为我们实现本机搜索提供了可能,利用windows search API,我们可以通过编程实现本地文件全文搜索。Windows 7 操作系统,更是自带了Windows Search 服务,这让我们的系统随着Windows 7操作系统的普及而容易被兼容。2.2 相关技术在设计阶段,局域网络文件搜索服务器就得设计成为能同时为大量客户服务,这就要求服务器具有很高的稳定性,同时能够及时响应客户请求,性能的提高依赖服务器数据处理的每一个环节,而通信部分位于体系底层,显得愈为重要。系统资源的分配方式、Socket的管理、I/O模式的选择、并发服务以及负载均衡策略等都直接影响到通信的效率,以下将着重讨论资源分配技术。2.1.1 资源预分配机制资源分配机制的比较服务器在接受大量客户连接请求的同时,需要频繁地向系统申请资源,如系统内存申请接收缓冲区和发送缓冲区,申请线程处理业务逻辑,申请I/O对数据收发进行投递等。如下图所示,操作系统在处理应用程序的这些请求时,不断地创建资源供应用程序使用,在应用程序释放资源后执行销毁和回收操作。图2.2 资源“即时创建,即时销毁”的分配式这种“即时创建,即时销毁”的资源分配方式,存在以下缺陷:1. 系统辅助资源的过量消耗。由于服务器长时间运行,频繁的创建销毁操作会给系统增加很多额外的资源消耗,如系统需要登记零碎的资源片段。2. 系统的性能下降。创建销毁操作造成系统资源的巨大开销,而这些开销与业务逻辑无关,导致业务逻辑的处理相对延迟。针对这种情况,采用资源预分配机制可以弥补这些缺陷。预先建立一些资源对象中以备使用,当一个客户访问一种指定类型的资源时,服务器不是简单的分配给新的资源而是从池中取得已经实例化的资源对象为它服务,从而实现对象进行复用以提高系统性能。从结构上看,具有容器对象和具体的元素对象。使用方法上看,可以直接取得池中的元素来用,也可以把要做的任务交给它处理。图2.3 资源预分配技术预分配机制池化技术应用池化技术原因:在不使用池化技术的并发请求环境中,需要为每个请求重新申请分配资源,如:内存,I/O,等,频繁申请资源,释放资源造成系统资源的浪费,而这些资源本身可被多个请求重复使用。为了解决系统资源不必要浪费的问题,引入池化技术,实现资源多次利用,从而提高系统性能,节约系统资源池化技术原理:1、池中有空闲队列与繁忙列表两个集合,任何池中对象都存储且仅存储于其中一个集合。2、在建立池时,可初使化0至多个对象。3、当有请求到来时,就从空闲队列中弹出一个对象为当前请求服务,若空闲队列中无空闲对象,则才开始向系统申请分配资源,再将当前被使用的对象存入繁忙列表中。4、当对某个请求的服务结束,就将所拥有的资源对象从繁忙列表中取出,压入空闲队列,等待再次利用。注:在向空闲队列请求释放资源或向繁忙列表存取资源时,要解决多个请求并发互斥。池化技术实现:线程池、Socket池、I/O池、Object池在这里仅介绍线程池和Socket池,另外两个实现类似:i. 线程池:对于多线程编程,在C#中提供了System.Threading 名字空间下的Thread类,通常一次使用一个线程,来创建和删除线程。然而以这种方式建立和删除线程是很昂贵的(CPU密集型)。所以CLR内置了一个线程池,供应用程序使用。这个线程池可以通过ThreadPool类访问。ThreadPool类会在线程的托管池中重用已有的线程。使用完线程后,线程就会返回线程池,供以后使用。ThreadPool有25个可用的线程(每个处理器)。应用线程池最重要的需要考虑的问题:要以最简单的方式创建和删除线程;应用程序使用线程的性能要优先考虑。相反,如果需要控制所创建线程的优先级,希望所使用的线程维护其标识,该标识要与线程一起进行各种操作,经过许多不同时间段,所使用线程寿命较长等情况下就得使用Thread而不是ThreadPool。ii. Socket池具体实现:见 第四章:系统实现2.1.2 Windows Search 4.0使用Windows Search 4.0可以对计算机执行快速搜索。Windows Search 4.0可以帮助查找和预览计算机上的文档、电子邮件、音乐文件、照片和其他项目。Windows Search 4.0中的搜索引擎是一项Microsoft Windows服务,可以使用此搜索引擎为程序的内容编制索引;可以使用它获得即时结果。Windows 桌面搜索非常简单。它可以通过可扩展性机制将您的所有文档、文件和电子邮件消息以及提供给它的任何其他数据编入索引。随着新项目的添加以及对现有项目的修改,它们会重新编入索引。您可以通过 UI 在编入索引的项目中搜索字符串和关键字,并使用相关联的应用程序打开任何找到的项目。Windows桌面搜索提供一个SDK,它允许其他应用程序使用其索引和搜索功能。使用Windows Search SDK编写程序,需要在Windows 7下。Windows 7 SDK已经包含了Windows Search 3x SDK。Windows Search 3x SDK的目录结构如下图2.4 Windows Search SDK 目录结构2.1.3 Telerik RadControls for WinForms Telerik RadControls for WinForms 是一款处于行业领先地位的.NET程序UI控件,包含了30多个强大的UI和数据控件;包含透明度、比例缩放和旋转的调节特性。它提供了全面的UI功能、最完整的UI架构示例、以及最好的在线技术支持。包含Windows Forms 和 ASP.NET两个方面的服务。使用该UI控件,开发者能够容易地实现高级的UI展示,大幅提高应用程序界面的美观性。使用Telerik RadControls进行开发,具有如下特征:(1) Telerik展示框架 - 利用高级的Telerik展示框架,可以很容易地获取所需要的控件并编写代码。Telerik展示框架(TPF)是RadControls套包中所有控制的基本结构。它为遵循WPF实践的套包内的控制提供了完整地可定制的结构。支持动画效果、透明度、轮显以及尺寸调节。图2.5 Telerik 展示框架(2) 完整的控件列表 大量的不同控件类型的分类,包括:标准类型(Bar,Button,Label等)和许多组合类型(Chart,GridView,PanelBar等)。图2.6 各种UI控件(3) 多种风格的设计时支持。控件风格能够在设计时设定来代替编写运行时代码。(4) 主体风格配置文件化。RadControls控件的主题风格是以XML文件形式保存的,更改和获取控件风格都很方便。(5) 提供完备的支持资料。Telerik RadControls为程序员提供了完备的开发文档和使用实例。使用Telerik RadControls开发相当的方便。图2.7 Telerik RadControls网站帮助本章小节本章主要包含文件搜索引擎,P2P概述,系统实现工具等系统概述,以及资源预分配机制,池化技术,Windows Search 4.0,和Telerik RadControl等与此系统开发的相关技首先,介绍了文件搜索引擎的基本组件,如搜索器,索引器,检索器,用户接口。概述P2P架构,简单介绍了目前存在的三种形式:纯P2P、杂P2P和混合P2P。针对知识型企业内部知识共享的处理方法,并提出了我们的解决架构,阐述了此系统运行原理。接着我们描述了系统的实现方法,以C#作为开发语言,以Windows Search 4.0为搜索引擎实现文档在企业内部局域网的共享。第三章 系统分析3.1 系统需求3.1.1 企业对于内部文件搜索共享系统的需求在工程企业或者知识型企业中,往往需要员工在工作的同时不停对项目或者技术进行学习。在学习的过程中,员工一般会将经过筛选的,有价值的,有意义的文档、工具保留,在无形中就形成了对于某项目或者技术的知识库。但是由于隐私和网络原因,往往他们获取的有意义的资源无法及时共享或者共享度极低,使得大量的时间重复使用在资源搜集的过程中,而这些资源往往都是可复用的。因此,企业急需一种资源共享软件系统,既可以有效共享同事间的资源,又有效的屏蔽了互联网上无关信息的干扰,提高了搜索准确度。同时,还要求软件的茁壮性,安全性有很高的保障。3.1.2 基于P2P架构的搜索共享系统的功能需求本系统为企业局域网用户提供了一个资源、文件搜索共享的P2P平台,用户可以通过系统高效率地进行各种资源的搜索。客户端功能需求1.各类型文件的搜索2.本地和远程的搜索3.搜索后的结果可下载4.提供简约界面和高级命令搜索功能5.响应搜索请求并返回结果(P2P)服务器端功能需求1.接收客户搜索请求并转发2.接收搜索请求返回结果并在数据库中建立自身索引3.将返回结果发送至请求端4.在服务器索引内有对应请求的则优先返回索引内结果3.2 系统设计3.1.1 系统概述上面我们介绍了企业级搜索系统的功能需求,了解了系统需要完成的任务。为了更好的更加直观的让企业员工分享企业里的知识库,为员工的知识获取提供支持,我们构建了UI友好的企业级搜索系统。是以结构化查询和全文搜索技术结合的方式,为企业员工提供更加智能、高效、准确的检索服务和下载服务。搜索系统不但能搜索网页内容,而且能搜索各种文本、HTML、OFFICE文档、PDF等文件系统,以及散布在企业各个角落的邮件、图片等非结构化数据,提供全面的企业信息搜索应用。系统采用多线程并发搜索技术,智能分配线程数目,实现多线程并发搜索,大大提高信息获取速度。同时,结合分布式技术和Cache缓冲技术,各个节点上的搜索任务由节点完成,从而提高信息采集效率。采用相关性算法对文档进行排序,保证检索相关性最高的页面放在最前面。3.1.2 系统非功能需求1.系统应当同时具有结构化数据检索以及全文检索能力2.具有较好的查询时间性能;3.具有尽可能高的全文检索召回率与准确率;4.尽量保证用户期望的查询结果排在整个结果集的前部;5.能够通过系统运行中积累的数据自动改善检索质量和效率;6.具有形式简洁、容易使用并且高效的查询条件输入界面;7.具有便于使用、针对领域特点的查询语法;8.系统的主要方面应当易于扩展以适应需求变更。3.1.3 总体设计i. 搜索部分系统的总体设计建立在系统的功能需求和非功能需求的基础上。在整个系统中,提供2种搜索方式:本地搜索和局域网搜索。本地搜索:即检索本地机器上的文档,直接调用window search服务,根据用户输入的参数信息进搜索图3.1 本地搜索由于本地搜索速度最快,搜索方式简单,对搜索结果的处理等方面都非常容易。需要解决的问题:在对windows search 服务的调用时,必须对用户进行文档搜索时的输入数据进行规格化。而本地搜索相当于局域网文档搜索的附加模块的,对其搜索过程不作过多介绍。局域网文档搜索:用户根据需求输入关键字对局域网内的PC进行文档搜索算法思想:1、 用户输入搜索关键字,规格化后经Client App发送给Server2、 Server对每个关键字进行处理(执行搜索、搜索频度,查找数据库等)后,轮询发送给局域网内具有搜索功能的PC3、 当搜索完成时,Search PC就将搜索结果封装成结果项返回给Server4、 Server将搜索结果存储入数据库,并发送给Client5、 Client接收到搜索结果并保存搜索记录,显示,完成全部搜索图3.2 局域文档搜索ii. 文档下载与浏览:用户进行局域网文档搜索之后,常需获取或浏览其他PC上的文档,以达到用户进行搜索的最终目的。在本系统中,无论是获取文档还是浏览文档都必然要求提供文件传输服务。其中,文件浏览需要文件传输服务原因在于非本地文件,如果用户要访问,不可能直接打开远程PC上的文件,此时,就得把文件下载到本地PC上,再在临时文件夹内打开相应文件。在本系统文件传服务,基于C/S架构,在文件传输请求方,即接收方发起Tcp连接。文件传输响应方,即发送方要帧听文件传输请求。在文件发送方,建立文件流,与网络流,再把文件流接向网络流,与此同时,在文件的接收方,建立网流与文件流,把网络流接向文件流。文件传输服务绕过Server,Client pc 直接与 Search PC连接 实现文件传输。3.3 详细设计3.1.1 组件、框架与系统模块系统由3个逻辑层构成:用户显示层,逻辑业务层,数据访问层;分为2个模块:服务器,客户端; 逻辑分层: UI层(USL):用于接收BLL回送的数据,用户输入命令或数据,以及显示,方便用户使用整个系统。主要表成WinForm(RadControl)方式,依赖于BLL。 逻辑业务层(BLL): 针对该系统的逻辑实现,对数据层的操作,接收表示层的数据与命令进行业务逻辑处理。USL,DAL似为积木,那BLL就是对这些积木的搭建。主要表示成应用程序(相关算法,网络通信,多线程,信息包定制)方式,服务于USL,依赖于DAL。 数据访问层(DAL):用于接收,提供BLL的数据,其本身不是数据库,而是对数据的操作和组织管理。主要表示成数据I/O,服务于BLL图3.3 逻辑分层 模块划分:由服务器端与客户端两个部分构成 服务器:由3个部分构成:1、搜索服务模块;2、搜索请求模块;3、搜索状态模块 客户端:由3个部分构成:1、文件搜索服务,对本地文件进行搜索;2、文件传输服务,用户对文件进行下载、浏览;3搜索请求服务,发送用户的搜索请求和接收来自服务器的搜索结果3.1.2 模块通信此系统采用杂P2P结构,Client启动时提供搜索服务的模块就主动发起与服务器的Tcp连接,并且以INF包形式将配置信息发送给Server,使Server将其识别为Search PC。若用户搜索局域网内文件的需要,通过Client App将搜索请求封装成REQ包发送给Server,与此同时,Server若在resultDB中存在相应的搜索结果,就将所有相关记录封装成DBS包发送给Client,在收到ACK包后完成整个搜索。反之,数据库中不存在相关记录,就转发REQ包给各个Search PCSearch PC完成搜索后,将搜索结果封成RES包返回Server,相应的Server首先发送参予搜索的Search PC列表,再将RES中的搜索结果写入数据库再将RES包转发给此次搜索的请求方用户,直到将所有Search PC上的结果全发送给Client,接收到ACK包后,完成全部搜索。图3.4 模块通信图本章小结本章结合企业内部文件共享的迫切需求和搜索系统的基本任务,提出了该系统的功能性需求和非功能性需求,并据此介绍了系统的总体设计。然后就系统的架构和C/S信息的交互展开了详细的分析和总体实现。首先,我们分析了企业内部资源不能有效共享的现状,提出了企业对资源共享软件系统的需求。其次,我们列举出了系统的功能性需求。除了实现搜索的基本功能外,应添加其他的配套功能以提供更人性化的服务。然后,介绍了系统的总体设计。包括系统的概述和非功能性需求,系统C/S架构的总体设计。客户端发出的搜索请求被服务器转发到局域网中其他的客户端,每个客户端会把本地的搜索结果返回给服务器,再有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 石河子大学《专业外语文献阅读与写作一》2021-2022学年第一学期期末试卷
- 石河子大学《药物分析家庭安全合理用药》2022-2023学年第一学期期末试卷
- 布草洗涤承包合同
- 石河子大学《食品分析实验》2023-2024学年第一学期期末试卷
- 老年病及预防教案中班
- 沈阳理工大学《三维工程软件实训》2021-2022学年期末试卷
- 沈阳理工大学《建筑结构选型》2022-2023学年第一学期期末试卷
- 2018年四川内江中考满分作文《我心中的英雄》3
- 沈阳理工大学《电工与电子技术》2023-2024学年期末试卷
- 光伏承包合伙合同与合伙协议书
- 课题开题汇报(省级课题)
- 清真食品安全管理制度
- 学校心理健康教育合作协议书
- 2024江苏省沿海开发集团限公司招聘23人(高频重点提升专题训练)共500题附带答案详解
- 2024年初级社会体育指导员(游泳)技能鉴定考试题库(含答案)
- 湖北省危险废物监管物联网系统管理计划填报说明
- Unit6ADayintheLife教学设计2024-2025学年人教版(2024)英语七年级上册
- 苏教版三年级上册数学期末考试试卷及解析答案
- 2024年个人劳务承包合同书
- 知道网课智慧《睡眠医学(广州医科大学)》测试答案
- 如果历史是一群喵课件
评论
0/150
提交评论