写点什么

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

评论

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

活动预告|6月15 日 Apache Paimon Meetup,深入解读 Apache Paimon 0.4.0 !

Apache Flink

大数据 flink 社区活动

软件测试/测试开发丨Allure2报告中添加附件-html、视频

测试人

程序员 软件测试 自动化测试 测试开发 Allure

瓴羊Quick BI新增多项可视化分析的模块,为数据驱动决策带来更多可能

流量猫猫头

《弥合鸿沟——2023校园招聘调研报告&备战攻略》重磅发布!一文速览10大关键发现

用友BIP

招聘 人才 校招

深度学习应用篇-计算机视觉-语义分割综述[5]:FCN、SegNet、Deeplab等分割算法、常用二维三维半立体数据集汇总、前景展望等

汀丶人工智能

人工智能 深度学习 计算机视觉 语义分割算法 6 月 优质更文活动

Terraform 改善基础架构的十个最佳实践

SEAL安全

Terraform 基础架构 企业号 6 月 PK 榜

软件测试/测试开发丨Allure2报告中添加附件-日志

测试人

程序员 软件测试 测试开发 Allure

对线面试官-为什么要使用MQ

派大星

Java 面试题

文末有奖品 | 开放原子全球峰会最新剧透,给我冲!

KaiwuDB

数据库

深度学习应用篇-计算机视觉-语义分割综述[6]:DeepLab系列简介、DeepLabV3深入解读创新点、训练策略、主要贡献

汀丶人工智能

人工智能 深度学习 计算机视觉 语义分割算法 6 月 优质更文活动

当中间件遇到云原生,看看会发生什么事

金蝶天燕云

云原生中间件 中间件套件

趋吉避凶、取名问卜!大语言模型再算命领域有哪些应用

FN0

AIGC

小程序容器与PWA有什么不同?

没有用户名丶

ESP8266调用NTP服务器进行时间校准

DS小龙哥

6 月 优质更文活动

新斗罗大陆游戏详细图文架设教程

echeverra

斗罗大陆

科兴未来|第六届中国·南宁海(境)外人才创新创业大赛

科兴未来News

【零售电商系列】走进亚马逊(二)

小诚信驿站

6 月 优质更文活动

海外直播源码技术文字聊天功能的配置

山东布谷科技

软件开发、 区块链二维码溯源系统开发 源码搭建 直播源码 海外直播源码

openEuler22+GreatSQL+dbops玩转MGR

GreatSQL

MySQL 高可用 greatsql greatsql社区

我对混沌工程的理解

老张

混沌工程

火热报名 |【崖山论“见”】第3期,如何让SQL速度飞起来

YashanDB

数据库 sql 技术沙龙 优化器 技术干货

纠删码技术在vivo存储系统的演进【上篇】

vivo互联网技术

分布式存储 磁盘故障 纠删码 数据可靠性

天翼云SD-WAN解决方案直播

天翼云开发者社区

云计算 服务器 云服务

全球LED租赁屏市场

Dylan

LED 市场 规模化 全球 技术指南

人工智能正在使代码普惠化!未来五年人人都能编程

FN0

定时任务原理方案综述 | 京东云技术团队

京东科技开发者

定时任务 线程 中间件 分布式定时任务 企业号 6 月 PK 榜

华秋干货铺 | HDMI接口需注意的PCB可制造性设计问题

华秋电子

【架构设计】【问题分析】记一次调用内部es服务超时问题

如果晴天

架构设计 问题定位 问题分析 日志平台 失败策略

文件管理开发指南全新登场,快来了解如何访问各类文件

HarmonyOS开发者

HarmonyOS

想给业务松松绑,又怕数据泄漏隐患? 动态脱敏了解一下!

极盾科技

数据安全

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