文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> 资讯>REST对云的实现真那么重要吗?

REST对云的实现真那么重要吗?

时间:2011-02-01  来源:cnblogs

  这些年我们听到了非常多REST为Web开发带来的好处,特别是在Web服务环境和最近的SOA相关应用中。因此,随着云应用的增长,即使是在早期采用阶段,看到各种实现采用REST技术是毫不奇怪的。

  早在2009年,William Vambenepe就考虑到了REST在云应用中的角色,结论是,在那个时间点,Sun和Rackspace会提供更多Restful的API,而不是其它厂商。我们看到两年后的情况并不完全如他所料,随着更多的开发体验,更多的用户和更多的选择,William看到,Amazon可能是到目前为止最成功的云供应商,他提出了这样的问题:“Amazon并没有使用REST,对于成功的云应用,REST是必须的吗?”正如他所言:

每次新的云API都会宣布它的“RESTfulness”特性,好象这是必须具备的特征。但是最成功的云API,AWS API,并不是RESTful的。

  现在你可以不同意William的评价,虽然我们已经在使用云方面走得足够远,并假定这不是一个巧合,但这仍然是值得思考的有趣的环境。此外,William并不认为REST是不重要的,他只是认为至少在云的管理方面并不是那么重要,没有提供任何明显的好处,比如,RPC。

AWS主要采用了HTTP之上的RPC,通过在URL中增加类似?Action=CreateKeyPair的字串,可以发送HTTP的GET请求,或者DeleteKeyPair。与其他资源一样(容量、快照、安全组...)。Amazon没有把这些称为RESTful,而是叫做“查询API”(除了DevPay API,不知道什么原因,Amazon将其称为“REST-Query”)。

  正如他指出的,RESTful API的缺陷并没有阻止许多人使用它,也没有限制或明显的影响已经部署系统的可扩展性。也没有影响安全或限制应用程序和语言的类型。

这里有一个经验法则,如果你的大部分调用的API来自面向对象语言的库,或多或少每个HTTP请求与方法调用相对应,那么你的API是多么的RESTful可能并没那么重要。

  William指出,虽然Rackspace的工程师写的一篇早期文章对AWS API的RESTfulness进行的比较和对比是精确的,但看上去好象并没有什么不同:对于开发者和用户来说。总之,他建议最终云的RESTfulness无关紧要,只要简单就好。

AWS的API是个很特别的样例,因为并没有前人可以借鉴。正如我在写Sun的云API时,“REST并不重要,重要的是剩下的部分”。一年半之后,我认为这个案例已经结束了。

  他的文章引发了很多评论,大部分是反对意见。例如一个评论是这样写的:

在我看来你说的并不假,虽然EC2的成功与他们的API关系不大,正如John(第三个回复)指出的那样。更普遍的感觉是我不确认自己喜欢这样的论调。如果Tim Berners-Lee设计了一个接口——具体到物理学家——一旦他们的机器安装了某些具体的“物理学家的协作软件”就可以共享成果,那么今天还会有Web和互联网吗?

  另一个补充到:

你的问题非常棒,但是忽略了这样一个目标:这些细节(像RESTful API)主要影响的是库的开发人员,好的库可以把任何类型的API抽象为更面向资源的模型。这需要有人能有效和持续的进行概念映射。一旦设计优良的库开始使用,不会存在使用上的障碍,而且很少出现滥用和浪费的现象。最后的结果总是归结为一致性:只要你能提供一致的接口,即使与之前建立的概念和映射并不一致,这样的API给产品的成功带来的价值也是非常值得额外付出的。

  随着越来越多软件厂商开发了的云实现以及开源的努力,RESTfulness更多的做为一个重要的特征被提及。但是William的问题是:如果最成功的云提供商没有使用REST,它真的那么重要吗?

  查看英文原文:Is REST important for Cloud?


  

相关阅读 更多 +
排行榜 更多 +
夕鸟

夕鸟

生活实用 下载
partyplay

partyplay

聊天通讯 下载
婚礼纪

婚礼纪

生活实用 下载