BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Microsoft应放弃四项SOA信条?

| 作者 Arnon Rotem-Gal-Oz 关注 0 他的粉丝 ,译者 郭晓刚 关注 0 他的粉丝 发布于 2007年8月23日. 估计阅读时间: 4 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

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?

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

:) by hello hello

Coding is believing.

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT