分类: 系统运维
2010-06-18 11:16:49
这种转变将以两种方式进行,一些站点学习amazon, del.icio.us 和Flickr, 通过REST API的方式提供他们的信息. 另一些网站将试图保持信息的私有性, 但这些信息会通过汇聚(mashups)的方式公开, 汇聚可以通过Dapper, Teqlo和Yahoo!Pipes等生成. 非结构化信息将给结构化信息让路, 使得智能计算的道路更加平坦. 本文将讲述这些重要的转变是怎样发生的以及它们怎样改变互联网.
亚马逊电子商务API-打开访问亚马逊商品目录的大门
我们已经在 写了亚马逊的WebOS战略,这个西雅图的Web巨人通过一套强大的API把自身的网站构架暴露于众。首先开放的服务是,该服务开放了亚马逊产品目录主要产品的访问,该API相当强大,允许处理用户,收藏列表和购物车,当然最关键的是可以查看亚马逊的产品。
亚马逊为什么以完全免费的方式提供这项服务呢?因为几乎所有购建在这项服务之上的应用都为亚马逊带来了流量(该服务返回给应用程序的产品中含有亚马逊的链接)。换句话说,通过提供电子商务服务,亚马逊使别人能够访问亚马逊的库存。结果是很多公司想出了利用亚马逊信息的好方法。你可以在看到这些成功的案例.
API文化升温
Del.icio.us也是最早开放其 的Web2.0网站,很多Web服务紧随其后,使得API文化逐渐升温,John Musser在上不辞辛劳地将这些API和汇聚分类整理,分门别类地给出了将近400个API。这些对理解本文很有帮助。
当前的Del.icio.us API 与亚马逊的不同,因为它没有开放del.icio.us的数据库,它做的只是允许授权的汇聚应用去加工存储在del.icio.us的信息。比如,应用程序可以通过编程添加一个帖子,或更新一个tag,但你不能通过API去知道你这个帖子发到了哪个链接,或者整个数据库中哪些内容被打上了这个tag,这些问题通过网站很容易回答,但却不能通过当前的API来得到答案。
标准化的URL-没有API的API
尽管没有直接的API(深入数据库), 很多公司还是可以利用存储在del.icio.us中的信息。这里有一些例子。
是一个有趣而且有用的汇聚站点, 它可以用del.icio.us去对Alexa站点进行归类,例如,是以book标签的著名站点。
另一个站点叫, 使用del.icio.us去推荐类似站点,例如是它认为和Read/WriteWeb相似的站点。
怎样在没有API的情况下实现这些服务呢?答案就是它们可以利用标准URL和一种叫做()的技术. 让我们来看看它是怎么工作的. 比如, 所有被标签为book的链接可以在链接 下找到, 而标签为movie的则在 下, 等等, 链接的结构总是一样的: [TAG] . 因此, 给定任意标签, 程序都可以获得被该标签标记的站点列表, 然后通过页面抓取技术抓取需要的信息.
页面抓取程序怎样工作
页面抓取本质上是HTML页面的反向工程,也可以看成页面解释器,网页以HTML编码,HTML以树型结构表示信息,实际数据与布局代码以及效果信息混杂在一起,不能被计算机直接利用。抓取器程序“知道”怎样从给定HTML页面中抓取数据。它们通过分析网页特定的标注方式找到实际数据,例如,下图给出了抓取器怎么抓取del.icio.us的页面的示意图。我们可以找到被任意标签标记的链接。
Dapper, Teqlo, Yahoo! Pipes---即将来临的的抓取技术
我们最近谈到, 一个专注于RSS融合的应用,另一个相似的技术是,刚刚上线的, 它可以让人们从Web服务和RSS中创建汇聚。在它们之前,Dapper提供了一个通用的抓取器,可以抓取任意网站。是一项有趣的技术,它通过可视界面为抓取网页提供便捷。
它是这样工作的,让开发者定义一些示例页面,然后帮助她用标记表示相似信息。这看起来很简单,但现象的背后是Dapper使用一种不平常的树匹配的算法去完成该任务。一旦用户在页面上定义了相似信息,Dapper允许用户将其转为一个字段,对页面其他信息重复该过程,开发这就可以有效的定义一个查询语句将一个非结构化的页面转为一些结构化的记录。
作用—Web网站变Web服务
这里图示了一些网络应用像Dapper和Teqlo的作用。
结合开放API(如亚马逊的电子商务服务)和抓取/汇聚技术,我们可以将任何网站看作一个开放了信息的web服务。信息,更准确地说数据,变得开放。接踵而来的是,软件可以借此获取大量数据。有了它,互联网才真正称得上是一个可以查询和重新组合的数据库。
这听起来很不错,但是否合法呢?
抓取技术事实上备受争议。某种意义上来说,它们可以被认为是偷取了属于其它网站的信息。整个问题很复杂,因为你不清楚拷贝/粘贴什么时候结束,抓取什么时候开始。人们拷贝保存网页信息是没有问题的,但用软件来做这个可能不是合法的。但抓取网页然后提供利用网页信息的服务,并且没有说明出处,可能就是非法的了。
但抓取似乎并不会停止,就像Napster的法律纠纷没有让人们停止写点对点共享软件,更近的不会使人们停止上传版权视频,看似免费的信息也会被人们理所当然的当成免费的。
互联网如果变成数据库,巨大机遇将让人们兴奋不已,如果这一转变真地会实现呢,我们是否应该反思一下怎样去顺应这一趋势呢?
为什么网站应该提供Web服务
这里有几个好的理由(特别对在线零售商),最重要的理由是控制,有了API,抓取器就变得没必要了,它还可以跟踪谁在使用数据以及怎样和为什么使用,像亚马逊,网站通过这样做去培育会员和增加流量。
陈旧的观点认为封闭的数据是竞争优势,新的观点则认为开放数据才是竞争优势。可行的解决方案是不必提心吊胆的去保护信息,而是提供API,然后收取一定费用。对每次API调用收取少量费用(想想亚马逊)是可以接受的,因为该费用对每个使用者都不会很高。但却有机会在总体上盈利。这就是战略上下的赌,这也许是个不错的赌。
结论
随着越来越多的网站可别其他网站混合利用,整个系统变成平台兼数据库。当然,这种转变并不顺利,可扩展性是一个大问题,法律问题也不那么简单。
但问题不在于网站是否会变成Web服务,而在于什么时候和怎样转变.API是一个更容易控制,干净的被大家接受的方式。尽管如此,当没有API或者API不够强大时,抓取是一种解决问题的方式。像往常一样,时间是最好的裁判;同时,我们希望从你的反馈和故事中知道你是怎么面对web3.0的。