2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

REST“皈依者”日记

  • 2011-07-22
  • 本文字数:1369 字

    阅读完需:约 4 分钟

就在每个人都认为 REST 相关的论战应该停息的时候,新的一轮 REST 文章浪潮却紧跟而上。正如 Mark Little看到的

公平地说,只要提到 REST,就会引发争论……

延续这一趋势,Ronald Schmelzer 发表的新作中谈到为什么以及如何从 Web Service 转向 REST。

据 Schmelzer,也即 ZapThink 认为:

REST 是一种分布式软件架构风格,它可以替代人们普遍接受的基于 XML 的 Web Service 实现系统间的整合……当我需要实现一个服务,当然在此之前我已经分析过该服务的必要性了,我会面临两种选择:Web Service 或 REST 风格的服务。从下列理由可以看出,而我而言,REST 明显胜出。

这段话本身就很有意思,因为它与 Dhananjay Nene 先前提出的观点是直接对立的:

面向服务既不是 REST 的核心,也不是 REST 的目标。REST 不是面向服务的,面向服务与 REST 也不相干……REST 并不想变成面向服务。这是因为它不把流程当作任务的序列来执行。它把流程看作一组不断修改的资源序列。换言之,它将流程看成一组角色,它们之间不断地交换资源(或文档),并且基于接收的资源来执行活动。

因此,Schmelzer 所谈论的似乎不是 REST,而是人们通常所说的 RESTful Web Service,这是一种使用 REST 技术构建 SOA 的方法。尽管通常称之为 REST,但这种方法与本真的 REST 没有关系,而且它类似于 POX(plain old XML over HTTP),不过与 POX 不同的是,它不仅支持 XML,还支持其他数据类型,比如 JSON(JavaScript Object Notation)、ATOM、二进制数据块。而且,它不像 POX 那样通常只基于 GET 和 PUT,它基于更多的 HTTP 方法。

Schmelzer 继续谈到:

……选择 REST 的原因有很多,但是最主要的原因是简单……REST 比 Web Service 更易于使用和理解。开发 REST 更方便、更快捷……而且,这也是为什么大多数最流行的 Web API 基于 REST 开发的原因……不过,除了简单外,我还很喜欢 REST 方法的优雅。基本操作和 Web 的扩展性是 REST 方法的底层基础。HTTP 操作是标准的、广泛接受的、便于理解的、在操作上一致的……

以上这些是任何一篇 REST 文章中都包含的 REST 的经典优点,但是对于 ZapThink 这么知名的分析公司来说,人们总是希望能看到更多细节。

回到架构问题上,Schmelzer 继续写到:

因此,如何将 SOA 的基本信条与 REST 实现方法结合起来?……REST 是一种架构风格,不是一种实现。而且,Web 和 HTTP 协议正好就是基于这种协议而设计的。

不幸的是,直到文章末尾 Schmelzer 也没有回答这个问题。它继而转向讨论 XMPP 协议的使用,但却没有解释两种架构风格(ROA 和 SOA)是怎么结合的。

Schmelzer 在文章的结尾说:

我不认为 REST 或 Web Service 是可以当作宗教般信仰的对象,以至于对它至死不变。话虽如此,在过去十几年中,垄断供应商、开发者和企业架构师们一直强调,正确实施 SOA 必须使用 Web Service……实施 SOA 无需 Web Service 就能做得很好。SOA 相关的讨论是架构层面的讨论——过去十年中我们谈论的所有东西对于 REST 或 Web Service 是同等适用的,不论它们基于哪种协议、基础设施或数据格式。优秀的企业架构师在架构这一抽象层次上工作,而将实现细节留给那些关心如何将 SOA 原则应用于实践的人们。

所以,REST 优于 Web 服务的讨论仍然在继续。那么,是否应该将本真的 REST 作为实现 SOA 的基础?仍然缺乏依据。


查看英文原文: The Diary of a REST “Convert”

2011-07-22 09:163334
用户头像

发布了 184 篇内容, 共 84.6 次阅读, 收获喜欢 8 次。

关注

评论

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

如何使用 Helm 在 K8s 上集成 Prometheus 和 Grafana|Part 3

SEAL安全

Kubernetes Helm Grafana

基础架构即代码 | 亚马逊如何在现实生活中实践 DevOps

亚马逊云科技 (Amazon Web Services)

DevOps 微服务 架构设计 Amazon Lambda Amazon API Gateway

魔搭×函数计算:一键部署,缩短大模型选型到生产的距离

阿里巴巴云原生

阿里云 云原生

云消息队列 Kafka 版阿里云 SAE 2.0 正式商用:极简易用、百毫秒弹性效率,降本 40%生态谈第一期:无代码转储能力介绍

阿里巴巴云原生

阿里云 Serverless 云原生

推荐收藏 | 【Git实战专题】「必坑宝典」带你深入剖析Git操作指令下的奥秘原理和运作机制

码界西柚

Java git 原理分析 后端处理 2024年第十八篇文章

【Mac&win】datagrip2023安装教程与激活码分享 亲测有效

Rose

ide DataGrip2023激活 DataGrip2023安装

速看,速进。一起学习一起交流。

薛定谔的皮皮虾

一些无人不知的命名规范

小魏写代码

顺丰科技LaaS实现产品化,数字生态战略提速

新消费日报

XMind 2024思维导图:新增 310 张 AI 原创插画

Rose

XMind 2024思维导图 XMind 2024下载 XMind 2024中文 思维导图下载

Spark SQL五大关联策略

京东科技开发者

可观测实践丨如何利用 AI 算法解决告警配置三大难题?

阿里巴巴云原生

阿里云 云原生 可观测

texifier mac LaTeX编辑工具下载安装(原Texpad)

Rose

Mac软件 LaTeX 编辑器 Texpad Texifier激活码

文心一言 VS 讯飞星火 VS chatgpt (184)-- 算法导论13.5 1题

福大大架构师每日一题

福大大架构师每日一题

面试官:Redis持久化能关吗?怎么关?

王磊

Java 面试题

Rainbond v5.17 版本发布,统一管理离线镜像和私有仓库

北京好雨科技有限公司

Kubernetes 云原生 容器云 离线

Led显示屏同步和异步控制的原理是什么

Dylan

控制 LED显示屏 全彩LED显示屏 led显示屏厂家

从内核的视角观测容器——SysOM 容器监控

阿里巴巴云原生

阿里云 云原生 容器服务

画眉(京东科技设计稿转代码平台)介绍

京东科技开发者

为什么人工智能与软件测试的结合话题开始火爆

测试人

软件测试 自动化测试 测试开发

十家传统企业数字化转型的心得体会:10大关键方面、拆解74 小点

天津汇柏科技有限公司

数字化转型

BOE(京东方)携手新浪微博举办手机影像艺术展 创新科技赋能数字影像

科技热闻

秒速出图!体验 TensorRT 加速 Stable Diffusion 图像创作

阿里巴巴云原生

阿里云 云原生

荣耀时刻 | 第七在线荣获艾媒2023中国企业服务年度企业

第七在线

DvD刻录软件DVD Cloner 2024 for Mac,现已支持最新的蓝光电影复制

Rose

mac软件下载 DVD克隆 DVD Cloner 2024下载 DVD Cloner 2024 Mac

弹性调度助力企业灵活应对业务变化,高效管理云上资源

阿里巴巴云原生

阿里云 云原生 弹性计算

恭喜 Nacos 和 Sentinel 荣获 2023 开源创新榜“优秀开源项目”

阿里巴巴云原生

阿里云 云原生

Jira 母公司全面停服 Server 产品,用户如何迁移至极狐GitLab

极狐GitLab

Linux 中常见目录的作用

emanjusaka

Linux 目录

【2024开年必备】最全面的Macbook/苹果电脑必备实用软件推荐

Rose

苹果软件 装机必备 Mac应用

REST“皈依者”日记_SOA_Boris Lublinsky_InfoQ精选文章