写点什么

基于经验的 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:464227
用户头像

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

关注

评论

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

单图高精度6D位姿估计方法开源,让机器人“一眼看懂”陌生物体

智源研究院

大数据-137 ClickHouse MergeTree 实战指南|分区、稀疏索引与合并机制 存储结构 一级索引 跳数索引

武子康

nosql 大数据 flink 分布式 Clickhouse

2025年人工智能与可持续发展国际学术会议

搞科研的小刘

人工智能 上海 可持续发展 国际学术会议

全球舆情监控:实现多语言舆情实时感知的技术路径

沃观Wovision

舆情监控 舆情监测 沃观Wovision 舆情监控软件 全球舆情监控

2026海外舆情风险全景图:关键区域与行业趋势洞察

沃观Wovision

舆情监测 海外舆情 沃观Wovision 海外舆情监测 全球舆情监测

OpenTiny HUICharts——RankProcessChart 排名进度图上手指南

OpenTiny社区

开源 前端 图表库 OpenTiny

京东商品详情API秘籍!Python爬虫轻松获取SKU属性数据

Datafox(数据狐)

京东API 京东商品数据采集 京东商品详情API 京东数据采集

当人人都在谈模型时,拖垮 AI 项目的却是"数据

MatrixOrigin

数据智能 AI数据 企业AI落地

怎样通过Abaqus代理商思茂信息采购软件?-Abaqus采购流程

思茂信息

仿真 几何图形 abaqus

一起为可信数据流通添砖加瓦,隐语社区 OSCP 专项开源活动正式启动!

隐语SecretFlow

GitHub 贡献代码 #开源

2026全球舆情监控软件市场现状及未来发展趋势报告

沃观Wovision

舆情监控 舆情监测 海外舆情监控 全球舆情监测 全球舆情监控

不想付费?这8个舆情监测网站提供免费版与试用

沃观Wovision

舆情监控 沃观Wovision 舆情监测系统 舆情监测软件 舆情监测网站

别再瞎配低代码表单控件!功能 + 样式 + 多端适配,这篇讲透

引迈信息

告别 “专业壁垒”:MyEMS 如何让一线操作工也能看懂能耗、发现浪费?

开源能源管理系统

开源 能源管理系统

杨凌美畅用 TDengine 时序数据库,支撑 500 条产线 2 年历史数据追溯

TDengine

tdengine 时序数据库

第五届 HiPM 产品创新力峰会|矩阵起源带您深度解析企业级 Agent 实践

MatrixOrigin

数据治理 企业级应用 AI Agent HiPM峰会

《AI+纺织服装白皮书》发布 第七在线实践成果获权威收录

第七在线

被动合规不如主动降碳:MyEMS 驱动企业实现 “政策达标” 与 “成本优化” 双赢

开源能源管理系统

开源 能源管理系统

智能微电网如何无缝集成分布式光伏 / 风电?

西格电力

管理系统 智能电网 微电网 电力系统

剖析绿电直连模式在实际应用中的核心挑战

西格电力

绿色低碳 碳中和碳达峰 电力系统 绿电直连 绿色低碳发展

第五届新能源与电力工程国际学术会议(ICNEPE 2025)

搞科研的小刘

新能源 国际学术会议 电力工程

告别数据无序:得物数据研发与管理平台的破局之路

得物技术

“能耗责任田” 划分术:MyEMS 帮企业实现 “部门担责、人人节电” 的管理闭环

开源能源管理系统

开源 能源管理系统

AI 英语学习 App 的开发

北京木奇移动技术有限公司

AI教育 软件外包公司 AI英语

运维服务方案,运维管理办法

金陵老街

运维

2026北京国际人工智能展览会(春季展)

AIOTE智博会

人工智能展览会 人工智能博览会 人工智能展 北京人工智能展

京东商品评论API技术指南

Datafox(数据狐)

京东商品评论API 京东评论API 京东数据接口 京东评论数据采集

OpenRouter vs. SightAI:统一入口,还是统一“智能体验”?

SightAI

大模型 API 开发者体验 api Token

从手动到全自动:我们如何用Dify重构了API回归测试流程

测试人

软件测试

盘点十个2026全球最佳舆情监测网站

沃观Wovision

舆情监测 海外舆情监测 舆情监测网站 舆情监控网站 全球舆情监测

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