东亚银行、岚图汽车带你解锁 AIGC 时代的数字化人才培养各赛道新模式! 了解详情
写点什么

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

  • 2011-01-31
  • 本文字数:1435 字

    阅读完需:约 5 分钟

这些年我们听到了非常多 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?

2011-01-31 07:082161

评论

发布
暂无评论
发现更多内容

详细介绍OAuth2

Java 程序员 后端

记一次RabbitMQ连接阻塞,全部队列不消费异常

Java 程序员 后端

记一道简单的Java面试题,但答错率很高!

Java 程序员 后端

设计模式——工厂模式

Java 程序员 后端

读懂这些面试题,月薪45K完全没问题?

Java 程序员 后端

财富自由的声音:蚂蚁上市前,取消了周报

Java 程序员 后端

flutter版本控制第二节

坚果

flutter 版本控制 11月日更

蚂蚁金服5面,总结了49个面试题,遇到的面试官都是P7级别以上

Java 程序员 后端

认识大管家Jenkins(二)部署SpringBoot项目

Java 程序员 后端

记自己在用友的三个月实习经历

Java 程序员 后端

讲一些你所不知道的Java动态代理

Java 程序员 后端

论好文章和烂文章

Java 程序员 后端

蚂蚁金服+拼多多+抖音+天猫(技术三面

Java 程序员 后端

血拼一波算法:百度+Alibaba+字节+Tencent

Java 程序员 后端

见了鬼,我JVM的Survivor区怎么只有20M了?

Java 程序员 后端

解读 Java 并发队列 BlockingQueue

Java 程序员 后端

菜鸟程序员的超神之路——从校园到职场

Java 程序员 后端

超详细Redis入门教程

Java 程序员 后端

解析Markdown文件生成React组件文档

Java 程序员 后端

解放双手!IDEA常用代码一键补全,你学会了吗?

Java 程序员 后端

记一次蚂蚁金服Java研发岗的面试经历,分享下我的复习笔记面经

Java 程序员 后端

记自己在用友的三个月实习经历(1)

Java 程序员 后端

论如何快速吃透算法?186道高阶算法题+学习资料程序员面试必备

Java 程序员 后端

设计模式(七):桥接模式

Java 程序员 后端

详解2021最底层Mysql索引原理及其优化

Java 程序员 后端

超详细:常用的设计模式汇总

Java 程序员 后端

解开疑惑之:全面解析腾讯会议的视频前处理算法

Java 程序员 后端

胶囊网络CapsNet,自动驾驶汽车的未来 易筋 ARTS 打卡 Week 75

John(易筋)

ARTS 打卡计划 arts

请您谈下数据库调优,指的是哪方面?

Java 程序员 后端

计算机存储系统之磁盘阵列技术(1)

Java 程序员 后端

落马阿里之后 开始我的恶补过程:技术笔记+面试知道+视频教程

Java 程序员 后端

REST对云的实现真那么重要吗?_SOA_Mark Little_InfoQ精选文章