在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

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:171777
用户头像

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

关注

评论

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

5个方面评估YashanDB数据库的实施价值

数据库砖家

5个关键步骤确保YashanDB的高效部署

数据库砖家

Observe · Secure · AI|观测云2025中国可观测日深圳站圆满收官

观测云

可观测日

正确理解YashanDB数据库的5个常见误区

数据库砖家

5个常见用例,如何利用YashanDB改善数据库管理

数据库砖家

筑牢物理安全防线,护航哈尔滨重要时期系统稳定运行

等保测评

网络安全 信息安全 数据安全 黑龙江等保测评 哈尔滨等保测评

5个错误:如何避免在使用YashanDB数据库时常见问题

数据库砖家

技术赋能医药全链路:AI 大模型应用在药企的落地痛点与破局之道

HELLO程序员

大模型应用开发

黑龙江企业做数据安全风险评估的意义:守护“数字龙江”的坚固盾牌

等保测评

网络安全 信息安全 数据安全 黑龙江等保测评 哈尔滨等保测评

原生APP外包开发

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

软件外包公司 原生APP开发 APP外包开发

当技术面试聊到“大模型微调”,你应该怎么回答?

测吧(北京)科技有限公司

读鸿蒙论文,看性能优化

泊浮目

鸿蒙

AI内控智能体开发:把风险防控交给“智能管家”

上海拔俗

3D家居设计系统的开发

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

数字孪生 软件外包公司 3D家用居

5个常见问题解答:YashanDB的用户体验

数据库砖家

5个常见问题解答:关于YashanDB数据库的疑虑

数据库砖家

数字孪生项目的外包开发

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

数字孪生 软件外包公司 webgl开发

低代码平台:效率革命背后的架构哲学与技术深度

JeeLowCode低代码平台

低代码 低代码, 低代码引擎 低代码工具

黑龙江企业网络安全应急预案与演练实操指南

等保测评

网络安全 信息安全 数据安全 黑龙江等保测评 哈尔滨等保测评

光伏四可装置构建光伏电站的安全管理

西格电力

光伏发电 光伏产业 光伏 新型电力系统 光伏四可装置

5个常见问题解答:关于YashanDB数据库的疑惑

数据库砖家

BeeWorks:为政企沟通筑造稳定、安全、高效的协作基石

BeeWorks

即时通讯 IM 私有化部署

黑龙江企业开展信息系统重要时期保障服务的战略价值

等保测评

网络安全 信息安全 数据安全 黑龙江等保测评 哈尔滨等保测评

首都在线x智识神工:深度耦合,共启AI开发协同新范式

极客天地

5个关键步骤提升YashanDB日常维护效率

数据库砖家

一张图看懂GEO:从需求到落地的行业应用全解—《GEO AI营销行业报告2025》精要版(解读五)

易观分析

新手接手Java项目无从下手?飞算JavaAI带你高效理清代码与架构

科技经济

5个常见问题解答有关YashanDB数据库的优势

数据库砖家

5个常见问题解决:YashanDB部署指南

数据库砖家

5个成功整合YashanDB的企业经验分享

数据库砖家

5个方法帮助你更好地理解YashanDB数据库

数据库砖家

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