硬核干货——《中小企业 AI 实战指南》免费下载! 了解详情
写点什么

SOA 设计关乎契约还是服务实现?

  • 2010-02-11
  • 本文字数:924 字

    阅读完需:约 3 分钟

大量的出版物都在描述 SOA 实现的设计,但却对接口(契约)设计鲜有关注,这让人不由得产生一种“实现的设计更重要而且更值得关注”的感觉。对此的一个常见理由是契约会随着时间改变,预先把过多的时间花在它们的定义上跟敏捷开发方法相抵触。

Steve Jones 在他最近的贴子里对这一普遍误解提出了异议,说道:

在我看来,这种看法就像那种不愿意写文档的伪敏捷人士,他们根本就是狗屁不通,而不是因为他们已经开发出了具备自描述能力的质量极高的组件。这基本上就是在说任何人都要等到系统可运行了之后你才能知道它的功能。这等于让需求改变适应实现。我现在并不是说需求不能改变,也不是鼓吹瀑布模型,而想说明 SOA 编程中的时间分配问题:在确定规格说明和设计过程中,大部分时间应该花在服务间的契约和交互上,至于关注如何设计这些服务满足契约,则可以少花些时间。

为什么契约是 SOA 实现中的最重要部分,Steve 列举了以下原因:

  1. 其他组件依赖的是契约而不是设计。因其错误而导致的成本跟提供者的数量成指数关系。一旦契约正确就位,那么人们就可以并行开发,这可以大大加速交付时间,减少风险。
  2. 测试是围绕契约而不是设计进行的。契约是正式的规格说明,设计必须满足它,而且各种形式的测试也都应该使用它。
  3. 设计可以在契约的边界内悄悄地改变。

契约的重要性这一概念并不是新鲜事物。按照 Dimuthu Leelarathne 的说法:

如果你没有首先设计服务间的契约,服务间复杂的集成问题就会出现。

实际上,创建好的服务契约并不是件易事,要求很好地理解契约核心业务。虽然已有一些服务接口设计的公认方法,但是更多的时候它还是艺术而非科学。结果,开发者和软件厂商都典型地把注意力放在了他们受到的培训(和要卖的东西)上——服务实现的设计和编码。在 Steve 看来:

……IT 的重点……太少地放在了确保外部接口至少在一段时间内保持正确的上面。契约可以演变,我有意地使用了这个术语,但大多数时候,旧的契约在人们迁移到新版本的过程中还要被支持。这意味着契约比设计拥有的生命跨度要长得多……契约是大事,设计则微不足道。

随着我们继续提倡将 SOA 用于业务/IT 对齐,与业务需求对齐的服务契约的作用会越来越明显。

查看英文原文: SOA Design: Is it about Contracts or Service Implementation?

2010-02-11 02:171656
用户头像

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

关注

评论

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

AI技术助力传统行业数字化转型

跑一跑

AI‘’

技术干货 | 如何将大表在线改造为分区表并释放空间

GreatSQL

Flink Parallelism、Flink Slot的关系

天翼云开发者社区

大数据 计算

轻松管理项目进度:MZGantt甘特图工具入门指南

Tecjt_锦图科技

JavaScript vue.js 甘特图 插件 软件项目

为什么越来越多的企业选择 iPaaS?一文读懂数据集成的未来

谷云科技RestCloud

API 数据同步 数据集成 集成平台 ipaas

技术文章

qife122

人工智能 openai

“卧槽,系统又崩了!”——别慌,这也许是你看过最通俗易懂的分布式入门

poemyang

分布式 分布式系统 分布式协议 拜占庭将军问题

大数据-88 Spark Super Word Count 全流程实现(Scala + MySQL)

武子康

Java 大数据 flink spark 分布式

ETL VS ELT企业应该怎么选择数据集成方式

谷云科技RestCloud

数据传输 数据同步 ETL ELT 数据集成平台

理论到实战,高可用架构踩坑说明书

京东零售技术

旅行规划新纪元:腾讯元宝大模型 × MCP Server扩展生态

六月的雨在InfoQ

8 月热搜精选

KaiwuDB

数据库

官宣:Apache Cloudberry (Incubating) 2.0.0 发布!

酷克数据HashData

Apache 数据库 开源 Cloudberry

华为Mate XTs三折叠登场!PC应用让移动办公比肩桌面效率

最新动态

快递地址信息自动识别全攻略:从技术原理到落地实践

快递鸟

AI如何赋能UI设计和代码生成?AI产品设计实战分享

职场工具箱

人工智能 AI 产品设计 代码生成 ui设计

淘宝商品详情API数据解析(附代码)

tbapi

淘宝API 淘宝商品数据采集 淘宝商品详情API 淘宝数据分析

哈尔滨三级等保:为关键信息系统打造坚固安全防线

等保测评

原点安全签约秦皇岛银行,大模型助力分类分级与数据安全防护体系构建

原点安全

元数据驱动开发:inBuilder破解数据库文档同步难题的实践

inBuilder低代码平台

新客户 | TDengine 时序数据库赋能开源鸿蒙物联展区实时监控与展示

TDengine

tdengine 时序数据库

《金铲铲之战》鸿蒙版9月25日上架,Mate XTs超宽视界颠覆游戏体验

最新动态

隐形猎鹰利用微软零日漏洞CVE-2025-33053的技术分析

qife122

网络安全 APT攻击

多台服务器的所有容器,我是这样统一管理的

Yops-运维易

容器 运维 服务器 Linux 运维 #docker

YashanDB数据压缩技术及存储优化技巧

数据库砖家

数智先锋 | 重大活动零错误运行!Bonree ONE为安踏体育应用性能稳健护航

博睿数据

为什么MES总要定制?低代码MES才是未来

万界星空科技

低代码 低代码平台 mes 万界星空科技mes 万界星空科技低代码平台

黑龙江等保测评:从启动到闭环的全周期流程拆解

等保测评

哈尔滨等保测评公司选择:企业适配性筛选策略

等保测评

TCA MCP Server | 释放代码潜能,开启极速开发

六月的雨在InfoQ

腾讯云MCP场景教程

系统梳理 Test-Time Compute 的主要实现路径

Baihai IDP

人工智能 AI 推理模型 测试时计算

SOA设计关乎契约还是服务实现?_SOA_Boris Lublinsky_InfoQ精选文章