来源:视采网站采集
1 前言
本章提供整个SRS综述。
开源,注定了她属于全人类,并且永远永远的忠诚于抚育她的精英们。她是我们每个人的爱的结晶,展示我们自我的才华。
开源也付给openWEBant一个特殊的意义,它的成功,也代表着中国开源的成功,它,也成为一种纽带,把中国的有志青年、爱心大使,紧紧的聚集在一起,展示我们中华英才的智慧和力量。
用我们全身的力气喊出:"团结就是力量,奉献就是美德!!"
1.1 目的
在这一条包括下列内容:
- 描述实际SRS的目的;
- 说明SRS所预期的读者。
本文档详细说明openWEBant的应用场合、功能特征、系统结构、项目来由以及小组特征。
本文档适合系统设计者,系统开发者,系统测试者阅读和参考。
1.2 范围
通常应考虑到,若要为软件选择高层次的设计,就可能需要大量的资源(可能占整个产品开发成本的10%-20%以上)。有两种选择:
- 用一个名字标识被生产的软件产品。比如:×××数据库系统,报表生成程序等等;
- 说明软件产品将干什么,如果需要的话,还要说明软件产品不干什么
描述所说明的软件的应用。应当:
- 尽可能精确地描述所有相关的利闪、目的、以及最终目标。
- 如果有一个较高层次的说明存在,则应该使其和高层次说明中的类似的陈述相一致(例如,系统的需求规格说明)。
openWEBant,物如其名,她是开源的,贡献于WEB的,并且像蚂蚁一样勤劳的非结构化文本信息采集系统。
openWEBant可作为网站的信息收集,站内的全文检索,非结构化文本信息的结构化处理等场合下使用。
系统采用java技术开发,分bs和cs两种结构。目前暂实现bs结构。
由于信息采集系统需要面向不同的输入和输出,而这些输入输出与设备相关,无法统一编码,所以openWEBant必须提供这些输入输出的应用接口。并且能够管理这些外部驱动。
系统涉及多种技术,包括词法搜索、多线程、xml、语法分析、网图数据结构、插件、传输协议、数据库、模版语言等技术。迫切希望各类专家加入系统开发或提供技术支持。
项目组遵循一般的开源协议开源发布系统,并在我们的官方网站www.java51.com上提供下载,并提供一定的有偿技术支持。
openWEBant是用于信息采集的系统。采集内容局限于非结构的化文本信息。信息源可为以下几种:
- web系统
- 文件系统
- 数据库系统
- 其它非结构化文本数据源
发布目标为提供非结构化文本数据存储的系统或接收设备。可为以下几种类型:
- 文件系统
- 数据库系统
- 其它非结构化文本数据存储系统或接收设备
对于openWEBant,信息的采集称为输入,信息的发布称为输出。为了透明性支持各类设备相关性的终端系统,系统提供统一的输入接口和输出接口,系统根据调度策略驱动已安装的终端1。
各类终端必须提供一套策略,以实现自身与采集系统之间的通信。这个策略包括:
a)通信协议 b)采集规则或发布驱动
对于不同的终端,有不同的通信协议,对于web系统有http、https、ftp等。对于文件系统,操作系统提供标准的读写接口。对于数据库系统,可以采用jdbc实现数据的读写。
openWEBant有多个独立组件组成。根据不同的职责,共划为以下几个模块:
- 输入驱动管理模块
- 输出驱动管理模块
- 输入驱动管理模块参数设定
- 输出驱动管理模块参数设定
- 采集规则语法
- 采集规则解析模块
- 采集规则管理模块
- 采集引擎调度管理模块
- 采集引擎
- 管道构建模块
- 模板管理模块
- 模板解析模块
- http输入驱动模块
- 文件系统输入驱动模块
- jdbc发布驱动模块
- http驱动参数设定
- jdbc驱动参数设定
- 采集规则参数设定
- 模板参数设定
系统实现常用的输入和输出的实现。如:输入包括ftp、http、file。输出包括数据库、file。
定义、缩写词、略语
本条中必须提供全部需求的术语、缩写词及略语的定义,以便对SRS进行适当的解释。这些信息可以由SRS的附录提供。也可以参考其他的文件。
- openWEBant:开放的非结构化文本信息采集系统。
- 输入源:提供信息的存储设备或软件系统。
- 输出目标:接受信息的存储设备或软件系统。
- ftp:文件网络传输协议。
- http:网页传输协议。
- file:文件系统。
1.4 参考资料
本条应包括:
- 在SRS中各处参照的文件的全部清单,如经核准的计划任务书,上级机关批文、合同等;
- 列出其他参考资料,如属本项目的其他已发表的文件和主要文献等。每一个文件、文献要有标题,索引号或文件号,发布或发表日期以及出版单位;
- 详细说明可以得到该参考文件的来源。这个信息可以通过引用附录或其他文件提供。
2 项目概述
本章应描述影响产品和其需求的一般因素,本章不说明具体的需求,而仅使需求更易于理解。
信息时代的今天,信息的收集和再加工可以创造价值。信息共享使我们的视野越来越开阔,但在这茫茫的信息大海,我们常常缺少一种工具来发现我们所关心的内容,并有效的组织它们。
openWEBant出于这样的目的而产生。希望虽大,但个人力量单薄,所以需要积聚多方才智,共同打造openWEBant。参与的人越多,智慧就越丰富,openWEBant就会越强大,就能更好的造福人类。
本人也迫切希望通过openWEBant这个纽带,结识更多的有识之士,共同开拓更广阔的天地。
2.1 产品描述
这一条是把一个产品用其他有关的产品或项目来描述。
- 如果这个产品是独立的,而且全部内容自含,应在此说明;
- 如果SRS定义的产品是一个较大的系统或项目中的一个组成部分,那么本条应包括如下内容:
- 要概述这个较大的系统或项目的每个组成部分的功能,并说明其接口;
- 指出该软件产品主要的外部接口。在这里,不要求对接口详细地描述,详细描述放在SRS其他章条中;
- 描述所使用的计算机硬件、外围设备。这里仅仅是一个综述性描述。
在本条的描述中,用一个方框图来表达一个较大的系统或项目的主要组成部分、相互联系和外部接口是非常有帮助的。
本条既不用来强迫进行设计方案的描述,也不是描述在解决问题时的设计约束。本条应对在以后具体需求一章中说明的设计约束提供理由。
openWEBant按子系统划分的话,可以分为输入子系统、过滤引擎、输出子系统。示意图如下:
抓取引擎通过输入子系统读取数据,根据过滤规则提取结果,通过输出子系统发布到存储设备或接收系统。
输入子系统:
输入子系负责管理各类输入接口,提供输入的扩展接口,如扩展ftp接口、http、接口、file接口等。并提供其它模块对输入接口的查找和引用。
过滤引擎:
过滤引擎职责是对输入的数据根据过滤规则,将匹配的结果提交给下一个过滤器或则提交给输出子系统发布到存储设备或接收系统。
输出子系负责管理各类输出接口,提供输出的扩展接口,如扩展db接口、外部系统输入接口、file接口等。并提供其它模块对输出接口的查找和引用。
系统结构图:
输入子系统通过相应的通信协议从外部系统或设备读取数据,提交到过虑引擎。过滤引擎根据过滤规则构建过滤管道,并将数据提交到过滤器中。顾虑器根据输入的数据,判断是否是值,如果是外部系统的地址,则从输入系统读取数据。最后将过滤结果提交到输出子系统发布到存储设备或提交到接收系统中。
过滤管道是信息流的通道,它是过滤引擎根据过滤器的输入关系以树的数据结构,将过滤器组织在一起。示意图如下:
图中有五个管道:
1==1-1==1-1-1;
1==1-1==1-1-2;
1==1-2==1-2-1;
1==1-2==1-2-2;
1==1-2==1-2-3
采集规则通过约定的语法来定义。描述语言可以采用XML,规则逻辑可以使用正则表达式或自定义的脚本语言,或者是这两者的结合。
openWEBant需要对采集逻辑进行的合法性的检查,检查是否有输入输出环状,检查是否有输出的结果没有发布等情况。
案例:
1)输入输出首尾互联!outerr1.GIF!
2)输出的结果没有发布!outerr2.GIF!
采集存储器存储过滤器过滤的结果,并作为下一个过滤器的输入。
系统在采集过程中,值关联有以下几种形式:
a)父子间的关联
过滤器A有多个匹配结果a1、a2、a3,值a1、a2、a3又作为输入源进行第二次匹配B,又产生多个匹配结果(a1b1、a1b2),(a2b1、a21b1),(a3b1、a3b2)。系统发布时要保证[a1、(a1b1、a1b2)], [a2、(a2b1、a2b2)], [a3、(a3b1、a3b2)]的关联性。
图:
b)兄弟间的关联
数据a、b、c是从数据源过滤的结果。字母的下标表示一个过滤器匹配的多个值。B和C关联时只能是以下形式:[b1-1、c1-1],[b1-2、c1-2] ,[b2-1、c2-1] ,[b2-2、c2-2]。我们称之为顺序关联。
图:
采集存储器在存储数据结构上必须能表示上述的数据关系,并且能通过过滤器的下标进行索引和向上查找。
2.2 产品功能
本条是为将要完成的软件功能提供一个摘要。例如,对于一个记帐程序来说,SRS可以用这部分来描述:客户帐目维护、客户财务报表和发票制作,而不必把功能所要求的大量的细节描写出来。有时,如果存在较高层次的规格说明时,则功能摘要可直接从中取得,这个较高层次的规格说明为软件产品分配了特殊的功能,为了清晰起见,请注意:
- 编制功能的一种方法是制作功能表,以便客户或者第一次读这个文件的人都可以理解;
- 用方框图来表达不同的功能和它们的关系也是有帮助的。但要牢记,这样的图不是产品设计时所需求的,而只是一种有效的解释性的工具。
这一条不用作陈述具体需求,只是对后来SRS中具体需求一章中为什么要描述的某些需求提供理由。
系统采用xml文件描述系统的采集行为,描述范围包括输入目标、匹配规则、发布目标及输入目标,发布目标的附加参数。系统向用户提供友好的向导式页面来配置该文件。
系统是个开放式的结构,预留输入输出编程接口,用户可以很容易扩展在网站、文件、数据库上抓取内容,并发布到其它类别的系统中去。
系统提供上下文关联的采集存储器,发布接口可以在采集结果中实现全文检索和重加工。
系统可以同时进行多个信息采集任务,每个任务可以使用多个线程,可以通过限制任务数、线程数和采集间隔时间,来限制系统开销,可以根据采集的深度和网址的标识来限制采集的范围。
系统自动关联不同深度下和不同范围内的采集的结果,并自动替换远程地址为本地地址。可自动过滤数据的格式控制符。
支持用户登录,断点续采等,条件发布,重复过滤,模板修饰、内容替换等功能。可在一定程度上识别特殊目标地址和分页采集。
2.3 用户特点
本条要描述影响具体需求的产品的最终用户的一般特点。
许多人在软件生存周期的操作和维护阶段与系统相关。而这些人中有用户、操作员、维护人员和系统工作人员。这些人的某些特点,象教育水平、经验、技术、专长等,都是施加于系统操作环境的重要约束。
如果系统的大多数用户是一些临时用户,那么就要求系统包含如何完成基本功能的提示,而不是假设用户已经从过去的会议或从阅读用户指南中了解到这些细节。
这一条的内容不能用来陈述具体需求或强加若干特殊的设计约束,本条应对在SRS的具体需求一章之中的某些具体需求或设计约束的描述提供理由。
系统的最终用户群是网站的管理员们,对一些给目标地址做了隐藏的网站,可能会使他们操作失败,特别有些网站对网页内容作了扰乱处理,使得他们更难准确地定位关键字。对于这些问题,系统尽量提供一些范例和一些匹配通配符,使他们能够模仿和忽略一些不规则的网页。并且官方网站提供交流论坛,共享和学习相互之间的经验。
系统预留了输入输出的编程接口,一些用户扩展这些接口,使系统应用到更多的场合下。针对这些用户,系统会提供详细的接口说明,扩展示例代码。我们会提供开发包,并描述每个类和每个方法的使用方法和功能。
还有一类用户属于商人的范畴,他们仅从事规则的制作,在网上交换或出售自己的规则。他们更关心网站的搜索和内容的质量,他们分两种类型,一种是猎人,他们能够发现各种各样的信息,能够满足各类网管的内容需求,他们从数量上获取大把金钱。当然,对于个别稀有的内容,价格就像黄金一样了。另一种属于黑客,他们精通web技术,机智并执着,在他们手里,都是一些很难发掘到的精品,当然价格都是高昂的。
由于openWEBant属于开源软件,会有很多人去分析和使用openWEBant中的组件,扩展和完善openWEBant。他们使用的级别不仅是系统的界面上,而是深入到代码的内部上,他们需要参考openWEBant的各类技术文档,所以系统除了用户手册,其它的开发文档也是必不可少的。
协作关系:
待完成。相关文章请访问 视采网站采集器
java无忧发布openWEBant项目的进展,提供项目共建和交流的网络平台,与项目成员共享和编写openWEBant的各种技术文档。探讨java相关的技术研究。欢迎有志者加盟!