AI 年度盘点与2025发展趋势展望,50+案例解析亮相AICon 了解详情
写点什么

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:082273

评论

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

带你读论文丨Fuzzing漏洞挖掘详细总结 GreyOne

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 8 月 PK 榜

第三周作业

大肚皮狒狒

电脑硬件迭代快,对仿真软件有什么影响?

智造软件

仿真软件 电脑硬件 结构仿真 电脑配置 硬件配置

生成式AI引领未来传媒业发展趋势

百度开发者中心

媒体 #人工智能 生成式AI 文心一言

和鲸 × 临床医学丨“人”作为一生命体在 AI for Science 过程中的作用与交互

ModelWhale

数据科学 临床医学 AI for Science 交叉学科 临床研究

蚂蚁安全实验室登上全球白帽黑客最高领奖台

科技热闻

在数字化时代的挑战与解决:跨国大文件传输方法

镭速

大文件跨国传输 跨国快速传输大文件

死锁产生的条件及解决方法

红袖添香

Java 多线程 死锁

生成式AI技术市场现状与发展前景展望

百度开发者中心

#人工智能 生成式AI 文心一言

Lightroom下载 图像处理软件Lightroom Classic 2023 mac完美激活版

mac

苹果mac Windows软件 Lightroom Classic 2023 lrc2023 数字图像处理软件

生成式AI:全球科技革命的驱动力

百度开发者中心

教育 #人工智能 ChatGPT 生成式AI

华为云GaussDB打造最可信的数据库,给世界一个更优选择

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 8 月 PK 榜

CQ 社区版 2.3.0 发布 | 自动授权、分级授权、审计上卷下钻等

BinTools图尔兹

数据安全 数据库管理 权限管理 数据库操作 审计大屏

电脑的配置对仿真软件的分析速度有影响吗?

思茂信息

硬件 仿真软件 电脑硬件 有限元分析 电脑配置

有奖活动 | 以代码之名,写出对Ta的爱

HarmonyOS开发者

HarmonyOS

技术分享 | 编程界也内卷?浅析“斜杠青年”RCU

鼎道智联

ETL 小技巧:文件输出插件数据写入空闲时间阈值配置及作用

大河

缓冲区 ETL bboss 文件输出

《守望先锋 2》性能提升高达33%!英特尔锐炫从未止步

E科讯

盘点!3月份Github上“最热门”的开源项目

java易二三

Java 程序员 Vue 前端 计算机

生成式AI助力智能未来

百度开发者中心

#人工智能 ChatGPT 生成式AI 文心一言

低成本生成式AI技术:推动AI普及的关键

百度开发者中心

医疗 #人工智能 ChatGPT 文心一言

容器化微服务:用Kubernetes实现弹性部署

高端章鱼哥

Kubernetes 微服务 容器化

用案例带你认识决策树,解锁洞察力

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 8 月 PK 榜

企业国际大数据传输必须了解的5种跨国快速传输大文件工具

镭速

大文件传输 跨国传输大数据

技术领先的用友iuap平台,助力升级数智化底座、驾驭数智未来

用友BIP

2023全球商业创新大会

2023 年如何将您的应用提交到 App Store

雪奈椰子

ios 开发 Windows ios 开发证书

生成式AI:内容创作新革命

百度开发者中心

自然语言处理 内容 #人工智能 文心一言

AI与众包平台共铸新机遇

知者如C

分布式数据库架构:高可用、高性能的数据存储

互联网工科生

分布式数据库 高性能 高可用性

生成式AI助力高效写作

百度开发者中心

大模型 #人工智能 ChatGPT 生成式AI

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