写点什么

从业务角度论证如何采用 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:15985
用户头像

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

关注

评论

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

常用SQL语句分享

Simon

MySQL sql

高效程序员的45个习惯:敏捷开发修炼之道(4)

石云升

读书笔记 敏捷开发

天地玄黄,宇宙洪荒

zhoo299

随笔杂谈

ARTS打卡第一周(200511-200517)

老胡爱分享

ARTS 打卡计划 ARTS活动

MySQL常用函数介绍

Simon

MySQL mysql常用函数

MySQL容器化详细教程

Simon

MySQL Docker 容器

GrowingIO 数据采集 iOS SDK 测试实践

GrowingIO技术专栏

ios 数据采集 sdk

一个域名值百万, 现在不注册,未来价更高

华为云开发者联盟

备案 商标 DNS 域名配置 SSL证书

带你认识MySQL sys schema

Simon

MySQL

LeetCode152-乘积最大子数组-medium

书旅

LeetCode 动态规划

学习源码的第八个月,我成了Spring的开源贡献者

程序员DMZ

spring 开源

SecureBoost算法

soolaugust

学习 同态加密 secureboost

时间戳,这样用就对了

Simon

MySQL timestamp

Flink任务执行-3

小知识点

大数据 flink

带着面试题学习红黑树操作原理,解析什么时候染色、怎么进行旋转、与2-3树有什么关联

小傅哥

Java 数据结构 小傅哥 红黑树 2-3树

CDN百科11 | 担心纸质病例被洪水淹没?ECS+CDN+OSS如何助力医疗上云

阿里云Edge Plus

CDN 存储 云服务器

Docker入门与简单使用

Simon

Docker Linux

Docker 架构及工作原理

哈喽沃德先生

Docker 容器 微服务

三分钟看懂Python和Java的区别

程序员生活志

Java Python

LeetCode题解:11. 盛最多水的容器,while循环双指针,JavaScript,详细注释

Lee Chen

大前端 LeetCode

不说再见

太以

疫情 毕业季 遗憾 大学

互联网公司建网站时最应该注意什么?

姜奋斗

互联网 网络安全 网站 网站搭建 互联网公司

拼多多员工小便池拉屎,网易智能马桶屏蔽信号,360、搜狐厕所被监控,互联网公司厕所那些事!

程序员生活志

互联网 职场

糖果不需要意义

zhoo299

随笔杂谈 电影

Docker从入门到放弃---基础篇

书旅

Docker 容器

MySQL中几种常见的日志

Simon

MySQL 日志

大数据平台架构设计探究

vivo互联网技术

大数据 架构设计 数据平台

200 行代码就能骗人的首个聊天机器人

程序员生活志

编程 机器人

疫情按下快进键,电商抢占市场红利需可靠的助力

华为云开发者联盟

高并发 电商 华为云 流量 云服务器

MySQL下的DB Link

Simon

MySQL

云上攻击太多怎么办?不妨试试这些工具

华为云开发者联盟

黑客 云服务 数据安全 华为云 企业上云

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