写点什么

Microsoft 应放弃四项 SOA 信条?

  • 2007-08-22
  • 本文字数:1236 字

    阅读完需:约 4 分钟

Microsoft 的 Harry Pierson(网名 DevHawk)建议 Microsoft 应该放弃他们的四项 SOA 信条,因为 Harry 认为它们是无用的,至少已经不再有用。

我认为这些信条的使命已经完成。一旦你接受了面向服务的范型,这些信条还能起到什么指导作用吗?基本不能。

这些 SOA 信条最早要追溯到 2004 年 Don Box 在 MSDN 上发表的《 A Guide to Developing and Running Connected Systems with Indigo 》(Indigo 即现今的 Windows Communication Foundation,WCF)。Don Box 在文章中说 WCF 是以 SOA 的原则为基础,这跟其他方式,特别是面向对象不同,SOA 有另外一组前提:

在 Indigo 中,服务即指靠消息交换与之交互的一个程序。一组被部署的服务即为一个系统。一个服务是以存续为前提构建的——服务的可用性和稳定性是其关键。服务聚合而成的系统天生就允许改变——即便是在初始的服务与客户部署之后很久,系统也必须适应新加入的服务,而且不能破坏任何功能。
面向服务的开发必须以下面四项基本信条为基础:

Don 随后解释了下面四项信条:

  • 边界是明确的。
  • 服务是自治的。
  • 服务共享数据定义与契约,而非类。
  • 服务兼容性根据策略来确定。

如前所述,Harry 认为这些信条不太有用。John Heintz 也认为 SOA 信条并不能真正约束实现方案。Harry 根据他与 John Heintz 的讨论作出了总结:

信条 1:边界是明确的。(当然了,有什么不是边界明确的?好吧,基于 SQL 的集成策略不满足这条。那么我要怎样才能划分出好的边界?怎样才更容易版本化?怎样才对 Mashup/ 集成更友好?)信条 2:服务是自治的。(没错。这是一个伟大的目标,但对如何达成目标完全没有任何指导和范围。)

信条 3:服务共享数据定义与契约,而非类。(我所有的采用接口与类的 OO 程序都满足这条。到底有什么不同之处可以用来区分 SOA 与 OO 设计?)

信条 4:服务兼容性根据策略来确定。(这条还算不错:策略的类型和范围可以塑造一个架构。策略即是系统中的约束条件。不过还是没有定义是怎样的策略,只是说应该要有策略。)

Hartmut Wilms 不太同意 Harry 的主张,他认为这些主张在完美的 SOA 世界中可能成立,但在现实中则行不通。特别是考虑到 WCF 最终成了一个更通用通信框架,其适用范围已经不限于 SOA:

John 和 Harry,你们真的认为每个开发者都接受了面向消息的范型吗?真的觉得“面向服务已经是主流”?我恐怕不同意。除非把 CLR/JVM/……摆在第一位的方式能被厂商们禁止,而群众又能听从,否则还远没到让这四项信条退休的时候!

Don Box 这位最初提出这些信条的作者,也对此作了评论。Don 说发表这些信条的原意是为了解释 WCF 的构建原则(或者至少是 Indigo 的最初目标)。

目标仅仅局限于在相当抽象的层次上说明“我们希望你这样用它”。

抛开最初的意图不谈,这四项信条支配了 Microsoft 在过去四年中对 SOA 的观点。你认为这些信条有任何功劳吗?还是 Harry 说得对,是时候抛弃它们了?最后,我不得不说,有什么不做 Microsoft 开发的人关心它们该不该退休吗?

查看英文原文: Retire Microsoft’s Four SOA tenets?

2007-08-22 04:541104
用户头像

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

关注

评论

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

如何减少创建订单、支付等线上写场景漏测?去哪儿流量录制回放实践

TakinTalks稳定性社区

财务共享管理体系助力企业卓越发展

用友BIP

财务共享

MySQL Router高可用搭建

GreatSQL

MySQL 高可用 greatsql社区

基于STM32+华为云IOT设计的智能温室大棚监控系统

DS小龙哥

6 月 优质更文活动

NineData,稳定、高效的Redis数据同步解决方案

NineData

redis 数据同步 迁移数据 数据同步工具 NineData

Simple Date Format类到底为啥不是线程安全的?

华为云开发者联盟

后端 开发 华为云 华为云开发者联盟 企业号 6 月 PK 榜

手把手实践丨基于STM32+NBIOT+华为云IOT设计智能井盖

华为云开发者联盟

云计算 华为云 华为云开发者联盟 企业号 6 月 PK 榜 智能井盖

阿里工程师手打的MySQL学习笔记,轻松拿捏MySQL

小小怪下士

Java MySQL 程序员

中国振华刘昕:携手用友打造电子行业的数智化平台,服务全行业

用友BIP

2023用友BIP技术大会

云管理用哪家云管平台厂商好?从哪些方面来看?

行云管家

云计算 云资源 云管理 云成本

带你走进大数据 | 写给小白的大数据指南

Data 探险实验室

大数据 数据分析 数据处理 数据存储 数据发展

软件测试/测试开发丨App自动化测试学习笔记

测试人

程序员 软件测试 测试开发 app自动化测试

硬核!阿里P8呕心沥血5年总结的Java面试速成手册开源一天上榜首

Java你猿哥

Java 微服务 算法 多线程 ssm

GaussDB数据类型介绍

轶天下事

全面数据管理 DBeaverUltimate最新中文安装包

真大的脸盆

Mac 数据库管理工具 数据库管理 Mac 软件 管理数据库

软件测试/测试开发丨App自动化测试学习笔记分享

测试人

程序员 软件测试 测试开发 app自动化测试

身未动心已远,AI带你流浪地球

华为云开发者联盟

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

GaussDB,连续五次No.1!

平平无奇爱好科技

LED广告牌企业的突破点在哪?

Dylan

技术 分辨率 LED LED显示屏 led显示屏厂家

二级等保堡垒机用哪个品牌好?理由是什么?

行云管家

网络安全 等保 堡垒机 等级保护

NFTScan | 05.29~06.04 NFT 市场热点汇总

NFT Research

MySQL对derived table的优化处理与使用限制

GreatSQL

MySQL greatsql社区

供应链中台管理系统开发私有化部署

薇電13242772558

供应链 管理系统

什么样的企业需要建设财务共享服务中心?

用友BIP

财务共享

亿视电子基于PolarDB-X打造能源数字基座实践

阿里云数据库开源

MySQL 数据库 分布式 阿里云; PolarDB-X

大型企业数智化关键举措太难懂?这本数智平台白皮书带你秒理解

用友BIP

白皮书 数智平台 平台白皮书 数智平台白皮书

测试同学职场成长的核心认知

老张

职场成长 认知

GaussDB如何给世界一个更优选择?

平平无奇爱好科技

Ambient Mesh:Istio 数据面新模式

华为云开发者联盟

云原生 华为云 华为云开发者联盟 企业号 6 月 PK 榜

后疫情时代,国际形势向好,企业出海如何把握风险管控?

用友BIP

中企出海

降本增效,StarRocks 在同程旅行的实践

StarRocks

数据库 大数据 数据仓库 湖仓一体 大数据 开源

Microsoft应放弃四项SOA信条?_SOA_Arnon Rotem-Gal-Oz_InfoQ精选文章