RSS与互联网的可编程性

来源:百度文库 编辑:神马文学网 时间:2024/04/27 21:42:26
RSS与互联网的可编程性     
这是车东(http://www.chedong.com/blog/)写的一篇对RSS及相关应用分析得较透彻的文章,极有收藏意义。。。。
来自:车东[Blog^2]
文章转发或引用请使用创作共用协议:
署名:你必须明确标明作者的名字。保持一致:如果你基于当前作品更改、变换或构造新作品,你应当按照与当前协议完全相同的协议分发最终作品。
2001年有关于肯德基的炸薯条断顿的事件报道。从中可以看到一种更高效的管理体系:对于快餐店这样全球性企业来说:要保证各地提供的薯条品质基本一致,成本最低的方法肯定是依靠机器而不是厨师,如果薯条机处理的土豆形状不一,机器的复杂程度和维护成本都会很高。所以土豆必须严格符合工业标准才能让结构比较简单的薯条机生产出符合标准的薯条。RSS和肯德基的土豆标准是一样的,体现了社会分工的细化:简单/可靠的规格意味更低高效的分工和更丰富的应用。
什么是RSS: Real Simple Syndication最能体现RSS的本意
对于应用服务的开发者来说:应用和应用之间,企业和企业之间交换的数据好比就是土豆,白菜,按照严格的XML标准设计的接口的确能大大简化下游开发的后期加工机器成本:可以比较一下处理HTML网页的浏览器,比如:IE和FireFox等软件安装后大小都在10M以上,但一般处理XML的解析器工具包一般都在几百K就够了。这点在未来2,3年,随着移动终端的发展,像手机这样的硬件配置比较低的设备环境中显得尤其重要。
套用生产/代理/零售模式:而将这各个环节高效联系起来的:正是RSS/XML相关标准。
生产商:RSS生产者包括Blog / 新闻网站等;
代理商:RSS聚合服务: FeedBurner/ RSS搜索服务 TechnoRati
零售商:RSS阅读器(RSS Reader/Browser)
从中也可以看到一些MVC(The Model-View-Controller)模式的影子。
下面一些例子:看看RSS如何让互联网变得更加丰富
RSS的可编程性:以在线书签服务del.icio.us为例
从自身界面上看,del.icio.us是非常简朴的:

但del.icio.us为其他应用准备了各种RSS接口:
最简单的RSS应用:del.icio.us提供的RSS首先可以被其他网站进行远程同步:比如我将我的书签当成一个LinkBlog: 和我自己的常看的几个BLOG聚合一起,同步在我的个人门户上:一页天下晓。

更有其他人利用del.icio.us开放的RSS接口发展了更丰富的应用,比如:extispicious则可以根据你收藏的书签的分类tag的个数展现你的“脑图”;

HubLog: Graph del.icio.us related tags更是将del.icio.us所有用户收藏用的tag进行了汇总分类,可以看到不同用户收藏的Tag之间的“立体”联系:

从这些应用中可以看到:如果基于传统的HTML,同样的功能实现将变得非常复杂和不稳定,数据的再生产和交换成本是很高的。所以:RSS这个标准最终要的贡献就是使得互联网的大部分网站变得可编程:类似的例子还有Blog中的:TrackBack Ping等机制,这些机制都是依赖XML/RPC实现的。当初为Lucene设计一个RSS/XML的接口也是为了这个初衷,它使得全文检索服务可以轻松的嵌入到各种应用中,通过关键词将各种内容之间实现更丰富的关联(Well Referenced)。
其他的一些RSS扩展服务介绍:
RSS阅读:在线服务 Vs. 客户端
客户端的确是可以方便一些将RSS做为日常工作高端用户:

很多工具(RadioUserLand NewzCrawler)可以设置BLOG发布系统的帐号:MT Blogger在阅读过程中边看边发布评论,非常适合网络“蜜蜂”使用。
但是和EMail一样:习惯基于WEB界面的Email还是要占大多数,所以在线服务还是会胜出的。而RSS阅读功能最后会被大多数EMail客户端所集成,比如目前的ThunderBird。

RSS作为XML聚合再发布工具:RSS代理商
如果你同时用del.icio.us的Link Blog,还喜欢用FlickR的photo blog,同时写自己的MovableType/WordPress网志和Blogger.com的服务,如何方便用户通过一个RSS订阅你所有的信息源呢?FeedBurner的功能原不止:它可以在RSS中组合多种数据源。
原先原先需要进行多次订阅的数据源:现在用http://feeds.feedburner.com/blog2这一个URL即可,并且还添加了XSLT,可以比较高版本的IE浏览器中直接看到可读性较好的内容:

Feedburner还提供一些商业性内容的嵌入,比如:Amazon的广告推广和最近推出的Google AdSense支持等。
很多RSS上面都有Add My Yahoo! / Subscribe with BlogLines这样的连接:

都是由原来的分布式的用户间RSS订阅变成了一些半中心化的服务:中心化的服务的好处在于代理分工,可以节省BLOG发布者的RSS带宽,由于很多RSS软件每隔一定时间就来服务器上,这样对于一些受到带宽限制的虚拟主机用户来说,经常就会出现带宽不够的情况,转向到中心的大的代理服务商,的确是一个解决办法。而中心的代理商由于为很多RSS订户服务,因此可以充分利用本地的缓存提高派送效率:同时也减少了对RSS数据源的访问压力。因此:对于RSS中心服务商来说:主要要解决就是一个缓存机制问题:
USER1 / RSS1
USER2 -[Rss Cache] - RSS2
USER3 /
虽然有一些中心化的风险:但是就像大家已经很少自己做馒头一样,更多丰富的功能添加还是应该由专业代理服务商进行的。
其他一些特色服务,RSS的死链检查和容错性设计:
如果RSS数据源出现错误,BlogLines会进行一些提示。RSS浏览器如果真的非常依赖严格的XML解析器,我想最终胜出的仍然会是RSS容错性最好的工具和提供校验服务的平台。现在不规范的RSS真是太多了,RSS的URI设计也需要注意尽量避免使用动态网页:这样在OPML导出中可以避免很多&没有转移导致的XML解析错误。
基于点击统计的用户行为分析:
Attention.XML这个标准专门基于用户点击的统计输出:类似与Windows桌面上的动态开始菜单。可以根据用户的点击行为(时间,URL,内容统计)反馈给内容的发布者。
RSS之间的SNS分析:
RSS的出现也降低了搜索引擎抓取的难度:TechnoRati是一个BLOG搜索引擎(后台也是Lucene),数据源是通过用户提交BLOG实现的:还会提示在TechnoRati会员之间的相互引用关系