写点什么

从业务角度论证如何采用 REST 风格架构

  • 2008-12-25
  • 本文字数:873 字

    阅读完需:约 3 分钟

在一系列题为“REST 对话”的连载博文中,Duncan Cragg“为eBay 列举了应该给他们的集成API 采用一种真正REST 方法的论据”。在《业务对话》一文中,Duncan 从业务角度对REST 风格架构的采用进行了论证。

Duncan(以一种对话风格)向一个虚构的 eBay 架构师解释说,使用 RESTful 方法构架业务流程要比使用以 WS-* 规范为基础的 SOA 构建方法更简单,但更强大。关于应用架构师的角色,他说道:

在设计应用层资源交互,或者也可能是在架构师使用某些现有资源类型以及使用帮他完成业务逻辑的‘资源激活’代码时,架构师的工作是:资源类型或业务层。要是使用 WS-*,只会把这项任务搞得混乱和复杂。

“当你是从资源而不是动作出发进行思考时,所有事情都变得更清晰了”,在谈到用面向资源架构(ROA)来处理诸如服务发现和描述、客户端状态和会话,业务流程的问题时,Duncan states 这样说道。他还提到:

最好由松散的协议和已建立的惯例作为起始点;只在绝对必要时才添加约束、契约和中央控制。确保中央控制仅在模式(schema)之上。

使你的企业能够‘Mashable’,这样每个人都会对你感恩戴德。在 URL 中暴露数据的 UUID 和 GUID。在标准内容类型内对数据进行转换和修饰。

对于在这样一种架构中管理客户端的状态,他警告说:

任何隐藏状态都是一个危险信号。只要在 URI 中暴露状态信息,你就会知道一切运转正常。[……] 如果你发现你自己在会话或 cookies 中隐藏状态,或是通过设置 no-cache 返回该客户端专用的不同数据,或是如果你通过会话把连续的交互紧紧地绑在了一起,你就走向了一条不归路。

他承认这样一种方法可能很难在企业内推广,但是又表示它“更紧密地映射到了业务操作和互操作的实际发生方式”。

REST[……] 很自然地映射到声明性的业务规则上。当你从“流程思维”转换到“资源思维”时,你还必须把思维转换成声明性的。与协调两个手工编码的接口间数据的导入导出不同,你只能把它们全都链接起来,并指望人们可以提取(derefernce)和发现你的数据。

请分享你在企业中推广 Restful 风格的经验,另外再看看原文和这个系列文章

查看英文原文 RESTful Business Conversations

2008-12-25 03:151129
用户头像

发布了 255 篇内容, 共 58.4 次阅读, 收获喜欢 10 次。

关注

评论

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

DevOps敏捷60问,一定有你想了解的问题

华为云开发者联盟

DevOps 运维 敏捷 工具链 华为云

大话 Python:python 操作 excel 系列 -- 数据的提取与筛选

老王说编程

Python Excel 数据提取与筛选

Redis最佳实践:7个维度+43条使用规范,带你彻底玩转Redis | 附最佳实践清单

Kaito

数据库 redis 后端

区块链培训哪家专业,引领区块链技术创新

CECBC

区块链

互联网信贷风险与大数据 个人信贷业务互联网化

张老蔫

28天写作

呀,又是一个谣言「Day 12」

道伟

28天写作

基于pandas

rainbow

据说很多女性看不懂地图——视觉表象

Justin

心理学 28天写作 游戏设计

简述Electron的发展和应用

anyRTC开发者

WebRTC 跨平台 Electron RTC sdk

死磕归并排序算法

Silently9527

算法 排序算法 快速排序

试用期没过,因在公司上了1024网站...

程序猿石头

程序员 网络安全 信息安全 个人隐私

LeetCode题解:190. 颠倒二进制位,使用遮罩,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

浪潮肖雪:用工业互联网解决企业痛点问题

工业互联网

为什么你停滞不前

ES_her0

28天写作 3月日更

大话 Python:python 操作 excel 系列 -- excel 数据分析

老王说编程

Python 数据分析 Excel

话说 wait、notify 、 notifyAll

木子的昼夜

Java 通信 Wait notify notifyAll

徐烨:这20年,我与应用系统的“云化”之路

华为云开发者联盟

架构 服务器 华为云 企业上云 应用系统

职场中吃力不讨好?从根因上去破解

一笑

28天写作

Mybatis系列全解(八):Mybatis的9大动态SQL标签你知道几个?提前致女神!

潘大壮

Java 后端 mybatis 后台 mybatis源码

git 教程 --git reset命令

生之欢愉,时间同行

git git reset

B站专栏内页数据如何抓取,Web Scraper 学习在进一步,无编码学爬虫之五

梦想橡皮擦

Python 28天写作 3月日更

大话 Python:python 操作 excel 系列 -- 数据处理

老王说编程

数据处理 python excel

架构学习2021年03月03日(002)

张小胖

有图有真相:带你实现现流行的权限验证

华为云开发者联盟

安全 session 权限 JWT 认证

linux使用udev配置U盘自动挂载

happlyfox

Linux 28天写作 udev 自动挂载

大话 Python:python 操作 excel 系列 -- 怎样读取 excel 文件?

老王说编程

Python Excel 数据读取

大话 Python:python 操作 excel 系列 -- pandas 读取、分析、保存

老王说编程

Python Excel pandas

通过AWS EMR降低集群计算成本

行者AI

AWS 计算

不用代码趣讲 ZooKeeper 集群

HelloGitHub

Java zookeeper ZooKeeper原理

大话 Python:python 操作 excel 系列 -- 数据清洗

老王说编程

Python Excel 数据清洗

大话 Python:python 操作 excel 系列 -- 数据汇总与统计

老王说编程

Python Excel 数据统计

从业务角度论证如何采用REST风格架构_SOA_Dilip Krishnan_InfoQ精选文章