论文部分内容阅读
现在,有一类被称为网络机器人的软件系统在Internet 上的应用越来越广泛。网络机器人就象在流水线上工作,不断焊接同样装置的机器人一样,它们被程序控制在网络上反复执行同样的任务。由于网络机器人的实用性,引起了很多程序员,特别是Web 程序员的兴趣。本文所要介绍的网络信息搜索机器人就是网络机器人的一种。现在大型网络信息搜索机器人应用非常广泛,最典型的例子就是搜索引擎(如Google, Baidu, Yahoo 等)。当用户需要在广阔的Internet 寻找特定信息时,这些搜索引擎非常有用处,但针对一些特殊的,细节的情况时,这种大型网络信息搜索机器人就显得不合时宜,甚至常常得不到希望的结果。例如,某跨国公司有一个强大的内部网站,里面有一些对公司内部非常有用但不能对外公布的信息,这时当公司一个成员想得到相应的信息时,他通过Internet 上的大型网络信息搜索机器人显然束手无策,只能通过浏览网页得到他想要的信息,而这些信息常常又分布在毫无关系的很多网页上。这样查找起来不仅很慢,而且也不一定能把有效信息收集齐全。由此可见,现有的搜索引擎并不能用于在公司内部网站上搜索有效的信息,因此,还需要能够适应企业内部搜索应用的中小型网络信息搜索机器人。根据本人的关注,现在还没有很成体系的提供给企业内部使用的网络信息搜索机器人。由于以上的需求,我在Motorola 成都软件中心作为核心成员设计并实现了文中将要介绍的面向企业应用的网络信息搜索机器人,并给它取了一个很酷的名字:Crazy Info Collector(文中简称为CIC)。本文主要介绍了整个CIC系统的设计与实现过程,从系统总体架构到各重要模块的分析。CIC 系统具有非常重要的普遍意义,它可以应用于任何需要内部网页搜索功能的企业。当一个企业需要内部网页搜索功能时,它可以选择不重新开发搜索系统,而是通过修改CIC 系统或直接复用该系统来满足自己的需要。相信随着CIC 系统的不断升级及功能增强,它将会变得越来越强大,给需要该应用的企业带来越来越多的方便。CIC 系统是用Java 语言来开发的,集成开发环境使用的是Eclipse,数据库使用的是MySQL 数据库。CIC 系统涉及到了Java 编程和面向对象技术的很多方面:GUI 编程,数据库编程,网络编程,多线程编程,设计模式,Cache设计等等。本文首先对整个CIC 系统的总体架构以及核心类Spider 类进行了介绍,然后介绍了用设计模式构建的两个系统子模块,紧接着对系统的多线程模块、数据库模块、Cache 管理模块分章节进行了详细介绍,最后进行总结。