【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

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:301244
用户头像

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

关注

评论

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

java开发之Redis分布式锁相关知识分享

@零度

Java redis

成功只有一种-OBKoro1的2021年终总结

OBKoro1

前端 年终总结

前端开发React使用中常用的开发框架

@零度

前端 React

Spring Boot 2 教程:WebFlux 集成 Thymeleaf 、 Mongodb 实践(六)

程序员泥瓦匠

Serverless Devs 新手引导

刘宇

云计算 Serverless 云原生 Serverless Devs 新手引导

Serverless架构下PaddleOCR项目开发与部署

刘宇

人工智能 paddle Serverless Serverless Devs

鸿蒙轻内核源码分析:MMU协处理器

华为云开发者联盟

鸿蒙 MMU协处理器 ARM CP15协处理器 协处理器 MMU

阿里云函数计算(FC)组件简介

刘宇

云计算 Serverless 云原生 函数计算 Serverless Devs

Spring Boot 2 教程:WebFlux Restful CRUD 实践(三)

程序员泥瓦匠

Spring Boot WebFlux

Spring Boot 2 教程:WebFlux 整合 Redis(七)

程序员泥瓦匠

Spring Boot 2 教程:WebFlux 集成测试及部署(十)

程序员泥瓦匠

openLooKeng社区Apache Log4j2高危安全漏洞修复完成,建议用户升级

openLooKeng

大数据 安全漏洞 openLooKeng Apache Log4j2 远程代码执行

工具链建设的必要性

刘宇

云计算 Serverless 云原生 工具链

Linux一学就会:shell脚本基础

侠盗安全

Linux linux运维 运维工程师 云计算架构师

多种操作模式下的工具体系

刘宇

Serverless Serverless Devs

从云计算到 Serverless

刘宇

云计算 Serverless 云原生 Serverless Devs

重磅来袭|第一届 OpenSEC 征文活动正式开启

SphereEx

开源社区 技术分享 ShardingSphere SphereEx OpenSEC

Spring Boot 2 教程:WebFlux 快速入门实践(二)

程序员泥瓦匠

Spring Boot WebFlux

Spring Boot 2 教程:WebFlux 整合 Mongodb(四)

程序员泥瓦匠

Spring Boot WebFlux

Linux之rm命令

入门小站

Linux

Serverless 架构简介

刘宇

云计算 Serverless 云原生 Serverless Devs

Java常用的五大算法详解

编程江湖

算法 java编程

Spring Boot 2 教程:WebFlux 系列教程大纲(一)

程序员泥瓦匠

Spring Boot WebFlux

Serverless Desktop 上手

刘宇

Serverless Serverless Devs

Serverless Devs 简介

刘宇

Serverless 函数计算 Serverless Devs

Spring Boot 2 教程:WebFlux 集成 Thymeleaf(五)

程序员泥瓦匠

Spring Boot 2 教程:WebFlux 中 Redis 实现缓存(八)

程序员泥瓦匠

Vue中slot插槽的使用方法

Changing Lin

12月日更

Spring Boot 2 教程:WebFlux 中 WebSocket 实现通信(九)

程序员泥瓦匠

让发布更安全的:线上异动感知

刘宇

云计算 Serverless 云原生 Serverless Devs

从工具看函数资源评估

刘宇

Serverless 函数计算 Serverless Devs

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