写点什么

REST 的业务用例

  • 2009-09-09
  • 本文字数:1464 字

    阅读完需:约 5 分钟

Justin Cormack 的一篇博文引发了关于 RESTful 架构在企业里的采用或缺失的热烈讨论

…或多或少总会听见 CTO 说:“把它做成 SOAP 的 API,谁有什么支持或反对的意见吗?”就像在婚礼上出现的那种场景一样,没有人作声。但我坚决反对。SOAP 不会是一个良好架构的主干,然而现在我们还没有说不的能力。

在他解释了资源在企业里所扮演的角色之后,他拿出这一数据 20 位开发者中有 9 位更愿意于使用 REST 因为它生产性更高。他暗示使用基于 REST 的 API 所带来的简洁性压倒了从服务契约或者服务模式 (wsdl,xsd) 所生成的代理,这些代理可以构建于 WS-* 标准之上,也可能基于其它标准。

这并非牵涉到生成一大堆无用代码的程序。它牵涉到的是超文本 (HATEOS),而不是映射数据库模型的晦涩文档。

接着他解释了企业里的资源这一概念,并以如何在 CRM 系统里对一个典型的客户进行建模作为例子进行了说明。

企业里的资源是什么?从客户开始。一个 CRM 系统很明显就是需要被建模的资源。你需要 API,通过调用它,来找出客户购买的产品,支持票据,你构建一个客户服务门户所必须的所有核心数据,以及内部的支持系统。

根据这一篇讲述 ROE(Resource oriented enterprise) 的文章所说,每个企业都有数据筒仓 (silo);比如满足不同业务功能的筒仓,工资系统,人事系统等等。而把这些筒仓所表示的数据当作是可访问的资源来考虑,是有其好处的。这些好处表现在成本方面,同时也表现在你打开了这些数据的孤岛,然后可以用它们来驱动以作出有根据的业务决策。

…ROE 所要求的,就是它们必须更加开放它们本身。并不仅仅主要在技术方面,同时也要提供一种更好的对它们信息内容的抽象。在一个面向资源的企业里面,这明显是通过将它们集成到一个基于 URI 的访问模式来实现的。

根据 Justin 的说法,要做到这一点不难。

构建这一框架可以是循序渐进的。你要么需要已经提供了 REST API 的工具,这会让事情更简易,要么需要一个 web 应用开发框架。这是应用架构与 web 内容管理的一个交汇点

除了他在他的博文里提到的企业迈向 ROE 的好处以外,他同时还汇集了一些来自 REST邮件列表的回应。

[它] 使得事物是人可浏览的,而声明使用它们是机器可浏览的 […] 业务逻辑变成了内容而不是数据,这里存在的再不是业务逻辑要像黑箱一样填充的参数表格,而是它们的状态变成了可发现,可访问,并且可推理的资源。

把 REST 引入企业 […] 帮助企业利用了 web 架构的灵活性,并且使得构建新的企业应用更加便宜和方便。

REST 的应用将 web 分散化的方面带入了企业的世界,并且支持一个网络的系统里的设计者和开发者可以创建并发展他们的组件,而不需要承担把他们聚到一个房间里来讨论 API 所消耗的资源与时间成本。[ Jan Algermissen 在 rest-discuss 邮件列表里写到。]

我相信 REST 对于超媒体的运用 […] 使得维护,部署与版本控制更加的容易,这一点在一个应用的维护阶段就转化成了业务上更低的成本。[ Darrel Miller 在 rest-discuss 邮件列表里谈到]。

同时,[…] 互操作性通过 REST 可以更容易的达到,这是由于 HTTP 的普遍性。同时这对于集成来说也有着极大的正面的副作用。我发自肺腑觉得 SOA 治理也能够真正的从 RESTful 架构的好处中得到收获,但我现在并没有什么细节的东西。[ Bill Burke 在 rest-discuss 邮件列表写到]。

Justin 着重强调了 Benjamin Carlyle 的观察,那就是你可以将 REST 视为 SOA 的一个演化,可以更好并且更容易的消费服务。我们正在见证企业里焦点从面向服务转移到对 RESTful 方案的采用吗?或者说像 Benjamin 所指出的那样,这是一种自然的演化?

查看英文原文: Business Case For REST

2009-09-09 22:512649
用户头像

发布了 133 篇内容, 共 41.0 次阅读, 收获喜欢 1 次。

关注

评论

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

新生产力范式,重塑工作效率

百度开发者中心

人工智能 ChatGPT 生成式AI

传媒软件的未来变革与发展趋势

百度开发者中心

传媒 生成式AI 千帆大模型平台

站群服务器提升多网站管理效率的不二之选

一只扑棱蛾子

站群服务器

上升到人生法则的贝叶斯理论

小魏写代码

三步实现BERT模型迁移部署到昇腾

华为云开发者联盟

人工智能 华为云 昇腾 华为云开发者联盟 企业号9月PK榜

OpenHarmony创新赛 | 您有一份创新激励奖待领取 请查收!

OpenHarmony开发者

OpenHarmony

亮相华为全联接大会,用友荣获“华为云技术领航最佳实践伙伴”奖项

用友BIP

华为云

CocoaPods 在iOS开发中养活了这么多项目,它到底是个啥? | 京东云技术团队

京东科技开发者

ios CocoaPods 移动开发 企业号9月PK榜

大连英歌石科技公司与华为云签署盘古大模型大连实验室框架合作协议

新消费日报

开源框架中的责任链模式实践

vivo互联网技术

dubbo 设计模式 sentinel 责任链

openEuler与Linaro携手参加OSSUMMIT 2023

openEuler

Linux 开源 openEuler 资讯

openEuler 亮相全球顶级开源盛会 OSSUMMIT 2023,持续推动智能化未来的实现

openEuler

Linux 开源 openEuler 资讯

PWA建快应用,小程序建超级App?

没有用户名丶

数据驱动创新,应用场景广泛

百度开发者中心

人工智能 数据分析 生成式AI 千帆大模型平台

乙烯裂解工艺可视化2D组态系统

2D3D前端可视化开发

物联网 组态软件 工业组态 乙烯裂解工艺 乙烯裂解组态图

慢SQL原因分析之索引失效 | 京东物流技术团队

京东科技开发者

MySQL 数据库 sql 索引失效 企业号9月PK榜

Mobpush上线跨时区推送功能,助力中国开发者应用出海

MobTech袤博科技

智能推送 跨时区 app运营 应用出海

喜讯!云起无垠获评软件供应链安全技能竞赛“团队优秀奖”

云起无垠

DAPP区块链公链代币智能合约质押挖矿系统开发

l8l259l3365

一文给你讲清楚BeanFactory 和 FactoryBean 的关联与区别

华为云开发者联盟

spring 开发 华为云 华为云开发者联盟 企业号9月PK榜

ELT in ByteHouse 实践与展望

字节跳动数据平台

数据库 大数据 云原生 数仓 企业号9月PK榜

文心一言 VS 讯飞星火 VS chatgpt (97)-- 算法导论9.3 3题

福大大架构师每日一题

福大大架构师每日一题

HarmonyOS创作激励计划启动:助力技术创作突破边界

HarmonyOS开发者

HarmonyOS

搜索技术领域的“奥林匹克”,飞桨支持“第二届百度搜索创新大赛”正式启动!

飞桨PaddlePaddle

百度 飞桨 AI Studio

中移链交易模块介绍

BSN研习社

浅入深出的微前端MicroApp | 京东云技术团队

京东科技开发者

前端 React 微前端 企业号9月PK榜

小项目想当大Boss? 你该读读《孙子兵法》 | 京东云技术团队

京东科技开发者

项目管理 项目经理 企业号9月PK榜

REST的业务用例_SOA_Dilip Krishnan_InfoQ精选文章