CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

微软四项SOA准则 放弃还是坚持?

作者: ,  出处:IT专家网社区, 责任编辑: 叶江, 
2007-08-28 13:30
  微软的Harry Pierson(网名DevHawk)建议微软应该放弃他们的四项SOA准则,因为Harry认为它们是无用的,至少已经不再有用

  微软的Harry Pierson(网名DevHawk)说道:“我认为这些准则的使命已经完成。一旦你接受了面向服务的范型,这些准则还能起到什么指导作用吗?基本不能。”

  这些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的最初目标)。

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

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

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅

       
天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2008, Ctocio.com.cn
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i