写点什么

REST 与 WS-* 战争结束!

  • 2007-07-05
  • 本文字数:847 字

    阅读完需:约 3 分钟

David Chappell 他的博客里作出了一个在过去近一年时间里为人们所悄悄接受的结论:

如果你有留意,并且如果你不是一个无可救药的死硬派,我要告诉你 REST 和 WS-* 之间的战争已经结束了。这场战争如朝鲜战争一样以停战协定终结,而不是像第二次世界大战那样由一方取得压倒性的胜利。现在看来已经很清楚,两种技术都有其价值,都将会继续被使用下去。

不管这场争论是关于 REST 对 WS-* ,还是关于 REST 对 SOA ,这种面对现实的态度(或者说骑墙的态度已经存在一段时间了。正如 David 所指出:

[……] 看看微软在下一版的 Windows Communication Foundation(WCF)中即将推出的对创建RESTful 应用程序的支持。Java 的官方组织也上了这条船,他们的 JAX-RS 也即将面世。

微软们已经说了 REST 和 WS-* 很多年好话,所以这些也不是什么令人惊奇的举动。只有很少人仍然相信 Web 服务是万灵药。也同样只有很少人仍然相信 REST 是万灵药。那我们不禁要问:“什么时候该用 REST,什么时候又该用 WS-*?”David 的意见是:

对于关注 CRUD 场景的面向数据的应用来说,RESTful 的方式是很自然的事。有很多很多程序都适用这种模型,特别是互联网上的公共应用程序。对于面向服务 / 面向方法的应用,比如需要事务、严密的安全性等等这些更高级的操作的应用来说,采用基于 WS-* 的方案显得更有道理。

不过 Mark Baker 不同意:

我完全同意他说 REST 很适合面向数据的应用,但我不同意他说 REST 只适合符合 CRUD 模型的应用。这是因为 CRUD 没有 HTTP POST 的等价物。一旦你把 POST 考虑在内,你就可以做到所有的事情,比如,网上订货。

Mark 很乐意请教别人对这个问题的见解,他说:

可能 David,或者其他人,可以给我举个例子,给我举出一个不(太)适合这个模型(不必是完整的 REST,只要举出统一接口的部分就好)的面向数据的应用的例子。

那么,当 David 在他的文章最后写下:

很高兴看到狂热在消退,而理性赢得了胜利。战争真的结束了。

他说得对吗?还是这只是暂时的平静,将军们正在策划新的战略?

查看英文原文: The REST versus WS-* war is over!

2007-07-05 01:301654
用户头像

发布了 225 篇内容, 共 70.9 次阅读, 收获喜欢 52 次。

关注

评论

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

性能测试中Disruptor框架shutdown失效的问题分享

FunTester

Disruptor 性能测试 接口测试 高性能队列 FunTester

如何打造良好的分享氛围

Hockor

团队管理 技术分享

遵循Promises/A+规范,深入分析Promise实现细节(基础篇)

战场小包

JavaScript 前端 Promise 3月月更

面试官:GRE 和 IPsec 隧道有什么区别?

Ethereal

比特币突破4.4万美元!美欧制裁或推动俄罗斯资金转向加密货币

CECBC

selenium的实现原理

红毛丹

自动化测试 自动化测试框架 selenium 3月程序媛福利 3月月更

从用户输入URL到页面展示,这中间发生了什么?

Tristan

前端 浏览器

开发电脑用 Windows 还是 Mac

HoneyMoose

今儿直白的用盖房子为例,给你讲讲Java建造者模式

华为云开发者联盟

Java 设计模式 对象 建造者模式 对象构建模式

期待!Fedora 36 发布日期和新功能

Ethereal

Linux小技巧:如何在 Vim 中显示行号?

Ethereal

docker、k8s 面试总结

yuexin_tech

Docker k8s

千万级学生管理系统的考试试卷存储方案

晨亮

「架构实战营」

什么是元宇宙?为何要关注它?——解码元宇宙

CECBC

如何做好一场技术分享

Hockor

团队管理 个人成长

从理想照进现实,浅谈“算力网络”

鲸品堂

东数西算

紫光展锐解除楚庆CEO职务,内部员工爆料那些不为人知的内情!

IC男奋斗史

芯片行业思考

读一篇博客,写一段代码,每天写写Python自然就会了,每日Python第1天

梦想橡皮擦

Python 3月月更

详解用OpenCV绘制各类几何图形

华为云开发者联盟

OpenCV 图像处理 图像 几何图形

[银行面试系列]1 进入银行之前必须了解的20个问题

暖蓝笔记

3月程序媛福利 3月月更

Go语言实战之数组的内部实现和基础功能

山河已无恙

Go 语言 3月月更

presto实战读书笔记

聚变

当TIME_WAIT状态的TCP正常挥手,收到SYN后…

华为云开发者联盟

TCP syn 报文 TIME_WAIT RST报文

NFT商城游戏系统开发技术

薇電13242772558

NFT

将本地代码同步到gitee和github中去

布衣骇客

Git Commit #Github

聊聊 Pulsar: Pulsar 分布式集群搭建

老周聊架构

云原生 Apache Pulsar 3月月更

初识工业互联网

劼哥stone

工业互联网

解密数据仓库LLVM技术神奇之处

华为云开发者联盟

数据仓库 LLVM 算子 GaussDB(DWS) 底层虚拟机

Mybatis的where标签,竟然还有这么多不知道的!

CRMEB

REST与WS-*战争结束!_SOA_Mark Little_InfoQ精选文章