AICon日程100%就绪,9折倒计时最后一周 了解详情
写点什么

基于经验的 SOA 成功原则

  • 2013-04-15
  • 本文字数:1662 字

    阅读完需:约 5 分钟

多年以来,我们对 SOA 原则这一主题以及什么会促进 SOA 成功,什么会阻碍 SOA 实施等内容都进行过很多相关的报道。从初期的狂热宣传,到大规模企业的实施、Web 服务以及较近期 REST 带来的影响力。我们可以通过这 7 年来的文章,对 SOA 的演进进行追溯。然而,在此期间的成功案例却通常少之又少,据一些数据表明仅有 20% 的 SOA 项目获得了成功。其中包括了 CISCO eBay 等几个著名的成功案例。

InfoQ 英文站编辑 Jean-Jacque Dubray 不仅帮助我们追溯了 SOA 在那段岁月的发展,也分享了不少他的个人观点。他对 SOA 起到了积极的影响并基于 SOA 原则部署过很多成功的系统。通过基于这些经验背景的思考,Jean-Jacques(JJ)最近在博客中发表了他所信奉的四条促进SOA 成功的原则:

1. 服务接口应该与服务实现解耦

  1. 所有业务逻辑应该标准化
  2. 变更一个服务应该是非常容易的
  • 在服务消费者准备就绪之前,服务变更对消费者来说应该是不可见的
  • 当服务消费者准备就绪之后,服务变更应该是易于消费的
  1. 服务版本控制应该基于兼容性

JJ 认为只要你在所有设计和开发阶段一贯地遵守这些原则,成功的机率将会大大提升。虽然这些原则相对来说比较容易理解,但遗憾的是他没有对所列举的这些原则进行更详细的阐述。对于“服务接口”,JJ 补充道:

大部分人在 SOA 中遭遇了失败,因为他们认为服务是一种抽象,就好比 OO 中的“类”。但实际上服务接口是一种契约,通过它可以暴露和控制变更。[…] 不要在你的服务边界(service boundaries)上耗费太多精力,应尽可能的将更多的精力花在构建最好的服务接口上(也就是指有效地管理变更)。

然而,JJ 所做的工作还涉及到围绕 SOA 相关的其他一些领域,这些领域在过去的时间里也曾引起了很多人的关注。其中包括治理(governance),对此他建议道:

不要“过度治理”,治理应该保持最小化并且是基于短期内(3-6 个月)的合乎情理的共识。而数据治理(Data Governance)则更为重要,因为你的信息模型发生的任何变更通常都会对服务接口造成影响。

松耦合通常作为成功 SOA 的核心组成部分而被人们广为称道,对于如何实现松耦合,JJ 建议道:

对消费者交互环境的管理不涉及接口背后的业务逻辑实现。在接口消费者中,不出现重复的涉及对各类记录系统状态管理的业务逻辑。

服务复用通常是 SOA 中另一个被认为非常重要,然而也很难实现的领域。早在 2009 年的时候,我们就援引过 Burton 的 Richard Watson 曾经说过的一段话:

一个服务可能永远不会被复用,但是我们仍然可以通过其他方式来创造价值:通过适应性和低成本的维护来减少冗余;通过对既定策略的贯彻执行来提升安全性和依从性,以上列举了一些我们期望得到的其他成果。而过于专注在复用上将会蒙蔽我们的双眼,从而导致我们无法看到这些其他的成果。

而 JJ 也赞同这一点:

没有人会指望今天构建的一个服务会在从现在开始的三年内被持续的新消费者们不断消费,这是荒唐的想法。如果你想以这种方式进行复用,那么你迟早会失败并最后得出一个例如“SOA 不起作用了”这样的愚蠢结论。对于 SOA(在现实世界中也是如此)的复用,它是以另外一种方式进行的:并不是一个新的消费者复用一个老的服务;几乎都是一个服务的新版本(变更以支持新消费者)在不打断老消费者的情况下被消费者复用。

事实上在 2009 年的文章中,JJ 曾对此有过以下评论:

大多数的人仍然无法理解的是:在 SOA 中的“复用”并不是人们通常听到的“复用”,对它们的理解是不一样的。在 SOA 中的复用是向前复用(forward reuse),而例如我今天早上听到的复用则是向上复用(upward reuse)。在 SOA 中,复用意味着为新消费者构建的服务新版本并不会打断现有的老消费者。对于认为某人能在今天设计出一个服务并且可以在两年内被一直“复用”这种想法,很大程度上来说是个幻想。在 SOA 中,较老的消费者可以“复用”那些为最新消费者而创建的服务新版本。

正如最初所提到的,所有这些原则和思想都受到了 JJ 在这个领域中多年经验的影响。其他人对于这些问题又是怎么认为的呢?你愿意也来分享一下你的经验吗?

查看原文链接 http://www.infoq.com/news/2013/02/succeed-soa

2013-04-15 04:463705
用户头像

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

关注

评论

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

房地产从业者必备的100+数据源盘点!

八爪鱼采集器︱RPA机器人

爬虫 采集

八爪鱼数据采集在国央企的主要应用场景:产业态势分析

八爪鱼采集器︱RPA机器人

爬虫 采集

包材推荐中的算法应用|得物技术

得物技术

算法

Canalys:软通动力旗下PC品牌出货量年增86%,居国内市场首位

财见

抖音商品 SKU 数据接口:为电商数据分析注入新活力

tbapi

抖音商品sku接口 抖音接口 抖音sku接口 抖音sku数据接口

IBM发布最新云威胁态势报告:凭证盗窃仍是主要攻击手段,企业亟需强健的云安全框架

财见

与chatGPT对话 | 如何用八爪鱼采集招投标数据进行竞争情报分析

八爪鱼采集器︱RPA机器人

爬虫 采集

不是 PHP 不行了,而是 MySQL 数据库扛不住啊

快乐非自愿限量之名

php MySQL 数据库

淘宝 API:关键词搜商品列表接口,助力商家按价格销量排序分析数据

tbapi

淘宝API接口 淘宝商品列表数据接口 淘宝商品数据采集 淘宝商品列表数据API

软通动力荣登"2024北京民营企业百强"等多项榜单

财见

浅谈 Nginx 头部配置:add_header 及其常见功能实践

inBuilder低代码平台

nginx 代理 Nginx配置

面试官最反感这样的简历!

王磊

4个实用的数据同步方法

RestCloud

数据同步 ETL 数据集成 ELT CDC

LeetCode题解:2347. 最好的扑克手牌,哈希表,详细注释

Lee Chen

如何高效使用索引——10个索引优化最佳指南

Chat2DB

MySQL 数据库 sql 开源 AI

人工智能加速打破“设备壁垒”,系统安全护航“数字中国”

Geek_2d6073

Abaqus可以做流体仿真吗?流固耦合项目介绍

思茂信息

abaqus 有限元技术 流固耦合

通过观测云 DataKit Extension 接入 AWS Lambda 最佳实践

观测云

aws lambda

南京中医药大学与和鲸科技签署101数智领航计划,加速“医学+人工智能”交叉学科人才培养

ModelWhale

人工智能 大数据 人才培养 高等教育 南京中医药大学

开放式数字商业平台赋能产业数字化转型

快乐非自愿限量之名

低代码 数字化

小米回应「网友恶搞 AI 雷军配音骂人」;Hailuo AI 上线图片生成视频功能丨 RTE 开发者日报

声网

云MES适用于哪些行业?

万界星空科技

制造业 mes 云 原生云 CTO 云mes 万界星空科技mes

前端开发个人职业发展的四个阶段,你处于哪里?

不在线第一只蜗牛

Java 前端 前端框架

望繁信科技成功签约国显科技 流程挖掘助力制造业智造未来

望繁信科技

数字化转型 流程挖掘 流程资产 流程智能 望繁信科技

开发体育直播平台的成本差异大?如何用源码快速上线省70%!

软件开发-梦幻运营部

金融从业人员获取公开数据必备的126个网址

八爪鱼采集器︱RPA机器人

爬虫 采集

高清图解28个高并发之数据结构/数据结构场景匹配技巧分析(高并发精通篇一)

肖哥弹架构

Java 数据结构

深度解析淘宝商品详情API返回值的业务价值

技术冰糖葫芦

API 接口 API 文档 API 测试 pinduoduo API API 性能测试

在2024 VDC,听一曲“蓝心智能”的江河协奏

脑极体

AI

2024百度云智大会|百度大模型内容安全合规探索与实践

百度安全

免费简洁的绘图工具:Pollyoyo

Byte

流程图 PlantUML 时序图 drawio Mermaid

基于经验的SOA成功原则_SOA_Mark Little_InfoQ精选文章