【原】RSS工具开发手记(03)---初始Informa

【原】RSS工具开发手记(03)---初始Informa
从Informa的官网下载了二进制码和源代码后,开始对照着API进行学习。

在开始学习Informa之前,我们必须了解以下几个核心概念:

(一)RSS 协议体系:

目前RSS的协议存在两大阵营:0.9.x/2.0 和 1.0两种类型。0.9.x和2.0都是由userland公司开发起草的,1.0是由W3C起草的。为什么会出现在中间版本插入另一个起草组织的情况呢?据说是因为当初W3C在起草1.0版本协议时,没有和userland公司的老大沟通好,userland老大很不爽,拒绝承认这个1.0版本协议而自行推出2.0版本。这两个不同阵营的RSS协议是完全不同的。

目前以RSS 2.0协议使用的比较多。

到了后来为了解决这个纷争,也为了避免出现由一家公司独自垄断的情况,google等其它第三方公司、组织开始起草另外一种用于取代RSS的新协议:Atom。目前的版本有0.3和1.0。

对于Informa来说,这几种不同阵营的协议它都支持,大大地减轻了我们的的工作负担

(二)RSS RSS Feed:

RSS是协议的简称,而这个协议的通信时依赖于XML格式,在这个XML的文件中,描述了所有RSS通信需要知道的知识。这个文件就称为RSS Feed。

(三)OPML:

OPML是一种用于在程序和RSS阅读器之间导入导出RSS定制列表的文件格式。它可以用来在你和朋友之间分享订阅的频道。

(四)Channel和Item:

Channel的中文翻译是“频道”,是描述一个RSS订阅的内容提供商。例如我订阅了163的新闻,那么163就是Channel了。Item很明确---消息主体。在RSS 2.0规范中为Channe和Item定义了不少属性,有些是必须的,有些是可选的。

Channel节点的必选属性:
 ★titile
 ★link
 ★description

Item节点的必选属性:
 ★title
 ★link
 ★description
 ★author
 ★category
 ★comments
 ★enclosure
 ★guid
 ★pubDate
 ★source

Informa的API结构如下:

 ★core包:
    核心包。订阅了RSS中channel,item等一系列元素和元数据的接口

 ★impl.basic包:
    基本功能包。使用in-memory模式实现了core包订阅的接口

 ★impl.hibernate包:
    基于hibernate实现的包,使用关系型数据库模式实现了core包定义的接口
 
 ★parsers包:
    定义了永远解析channel,item的解析器工具

 ★exporters包:
    定义了一组把channel,item导出成各种协议格式的工具

 ★search包:
    定义了用于全文搜索channel,item的工具

 ★utils.manager.memory包:
    定义了一组用于管理“in-memory”模式持久化的工具

 ★utils.manager.hibernate包:
    定义了一组用于管理关系型数据库模式持久化的工具

 ★utils.poller包:
    子项目,定义了一组定时监控、更新channel,item的工具

 ★utils.cleaner包:
    子项目,定义了一组用于清理环境的工具(例如剔除无效RSS订阅频道等)

 ★utils.toolkit包:
    定义了一组辅助poller,cleaner和其他类的工具

就这些,够简单的吧!现在我们已经对Informa的结构有了全局的认识,后面就是开始逐步地学习这各个包了!


-------------------------------------------------------------
生活就像打牌,不是要抓一手好牌,而是要尽力打好一手烂牌。

你可能感兴趣的:(【原】RSS工具开发手记(03)---初始Informa)