论文部分内容阅读
因特网迅速发展,搜索已经成为网络的主要功能。一个搜索引擎拥有海量的数据,并且能在海量数据中迅速找到符合搜索条件的数据。然而如何在做到以上功能的前提下,实现海量数据与目标站点内的数据实时同步是一个需要解决的问题。本论文运用并行算法构建了一个计算机群搜索引擎,能实现海量数据与目标站点实时同步。论文不仅分析了构建计算机群和实时同步的并行算法,还对算法进行设计与实现。
论文从需求到设计完整讲述了如何实现一个具有数据同步功能的搜索引擎。论文可以分为引言、需求、系统设计、并行算法、算法实现、算法对比和重构优化几大部分。
在文章开始部分,论文分析了构建搜索引擎的目的和意义,剖析了行业背景,所存在的问题,例如对于传统的信息提取技术,以用户提供的信息作为搜索请求,系统寻找相似的信息作为匹配。以这样一种方法获取的页面,虽然页面上包含该信息,但大多数都不一定是所需要的页面。此外,一些垃圾页面也往往不可避免的被抓取,将这些信息返回给用户,不但造成了用户视觉污染,还浪费了服务器的宝贵的存储空间。之后论文从宏观上描绘了后续部分将要讲述的系统鸟瞰图及论文的目标:用并行算法建立计算机群、建立存储海量数据的数据库、设计制作人性化的用户操作界面、实时同步这一关键问题。
软件的需求分析要有对业务的一个深入了解、提取、抽象、升华的过程,管理软件需求分析尤其如此。软件的需求分析是从用户的业务中提取出软件系统能够帮助用户解决的业务问题,通过对用户业务问题的分析,规划出的软件产品。这个步骤是对用户业务需求的一个升华,是一个把用户业务管理流程优化,转化为软件产品,从而提升管理而实现质的飞跃。作者根据市面上搜索引擎的现有功能,以及与导师的交流,模拟了一个需求分析的完整过程。与真正去软件企业调查需求比起来,这种模拟更节约时间,更直接当然最重要的是这样的模拟亦能对业务有一个深入了解、提取、抽象、升华的过程。通过需求分析过程,作者不但理解了需求分析的必要性、提高了提取需求的能力,也为后续的系统设计提供了完整输入产品。
需求分析部分本论文对相关名词作了解释,并分析了传统站内检索及其问题。对建议系统的阐述也逐步展开。包括页面抓取、关键字分析、检索服务、用户行为反馈和链接分析五大部分。论文讲了功能性需求和非功能性需求,诸如用户界面、运行环境和安全问题等。论文接下来用流程图和状态图形象地讲述了系统流程和状态之间的迁移。需求变更是不可避免的,也是经常发生的。需求变更会导致软件开发过程中产生成本增加、质量不过关等风险,而且越往后的变更产生的风险越大。在需求分析的最后作者提到了需求变更,说明作者对将来可能出现的情况也做了充分地估计。系统设计是实现一个系统的关键步骤。系统设计有很多方法,面向对象设计OOP、面向方面设计AOP、面向组件设计等等。最常用的就是面向对象设计,作者所用的就是学校课程授的面向对象方法学。首先是模块设计,将整个系统分为几大部分。作者将系统分为五层,数据库物理存储为一层;对数据库中数据的操作全部放在存储过程这一层;用接口负责调用存储过程;DataLogicLayer同时也包含了业务逻辑,对象设计也在这一层次,最后一层就是网页层,表现出整个系统。作者还列出了类结构并绘制了界面图。
在并行算法和算法对比章节,作者对并行算法的必要性及其原理进行了详细阐述即分解任务、任务分配、数据共享与交互、负载平衡。之后作者叙述了系统的特色并提供了实验数据。
数据库是应用系统的操作基础,程序实现的各个功能都是对数据库的各种操作。论文在这一部分列出了数据库中所有的表,每个表都能找到对象设计中对应的类。还描述了表与表之间的关系,以及表间的约束。存储过程的优点是有目共睹的,不但能提高数据库执行速度,也将数据库复杂操作封装起。而且存储过程还可以重复使用,可减少数据库开发人员的工作量。这些都在本章节作了介绍。
从创建数据表到存储过程,接下来的业务逻辑层代码以及前台界面显示这一些列步骤都是有章可循的。作者经过反复实践总结出一套自动创建代码的工具,在实际工作中确实能大大提高系统设计起初的效率,省去许多复制、粘贴的简单劳动。特别是开发MIS系统时,能迅速建立系统雏形。在算法实现章节,作者做了详细介绍,相信对读者在面对MIS系统开发时有一定帮助。之后作者做了一个关于正则表达式的实验,得出关于正则表达式效率的结论。高亮关键字、URL静态化、网页去重、List实现集合和客户端脚本等都是本章的内容。在本章节最后,作者提到了系统中扮演机器人角色的程序“车”。
基于是日后维护方便,提高代码复用率等考虑,作者讲述了重构的经验和系统优化的技巧。重构是这样一个过程:在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构。优化也是必须的,特别是对于这样一个实时性要求很高的系统来说,优化更加有意义。
总体来说本论文运用并行算法构建的WEB搜索引擎,在数据同步方面提出了独特的思路。本论文的实现有明显的实用价值,会给互联网现有的搜索技术注入新的活力。