【IT168 分析评论】
在过去的几个月里,微软通过在MSDN2上架设了一个新的SOA网站以加强其在市场上的销售成果。网站上有关于微软SOA应用平台的系列深度在线研讨会、电子书,以及John Evdemon(OASIS WS-BPEL的副主席)授权的《真实世界的SOA》。去年十月底微软还在Rdemond举行了“SOA暨业务流程大会2007”。
另外,微软还赞助了一个针对北美500家拥有1000名员工,或超过这个数字的企业的综合应用平台的研究。其目的旨在确定哪种软件平台被用于构建关键任务的应用,以及什么是首选供应商的关键组件平台等。IDC的研究报告指出:
在被问及“你希望在未来两年内使用哪种应用技术平台为贵公司开发关键任务应用?”时,得到的回复是:
- 30%的反馈结果是.NET,25%认为是Java。
- 71%的反馈说他们现在正在使用SOA的应用。
- 在这71%中,有36%使用的是微软的SOA,18%用的是IBM的。
InfoQ采访了Dino Chiesa,微软Connected System部门.NET的市场总监,以便更好地理解微软的SOA策略,及其客户如何使用WCF。
InfoQ:微软自从1999年就一直在推动Web Service和SOA技术。经过这么多年,您是如何评价微软在SOA上的努力的?
Dino:SOA是业界发展的潮流,像其它供应商一样,微软也在此进行投资。我们从一开始就采用了重实效的方法,努力发展技术以帮助我们的客户从SOA中收益。我们试图获得基础架构的权利、标准制订的权利和模型设计的权利。从1999年起我们就已经处于领先地位,发布了代表SOA技术发展水平的ASMX、WSE构架,并且仍在致力于追求更加完善的架构。我们从2003年开始构建了Windows Communication Foundation,2006年它已经做为.NET 3.0的一部分公布了出去。这些年来我们在SOA上采用的是稳健、直接的方式确立其在真实世界中的地位。
从技术角度来讲,特别是从Windows Communication Foundation来看,我不认为还有一款其它类似的产品可以有资格和它相媲美。你不可能在Java世界中再找到如此协调的作品,它细分成大量的小部分,每一部分都渗透着坚持不懈的努力。举个例子,Axis虽然也很好,但其主要目的是Web Service,它并不能提供像WCF那样的通用的通讯模式。
InfoQ:WS-*系列标准现在已经完成,那么WCF的下一步计划是什么?
Dino:WCF现在已经取得了最广泛的业界标准的支持,但WebSphere还不能支持WS-*的标准。老天似乎要捉弄人似的,我们离全自动的协同工作还差那么一点点的距离,但我们已经快要取得成功了。.NET 3.5已经在2007年11月提出,我们将会支持最新的迭代标准,比如像WS-AtomicTransaction和WS-ReliableMessaging等。
我们也在通过在编程模型层上使用syndication协议的方式不断加强SOA的能力。我们希望帮助客户在企业级的应用上使用RSS,我们也希望推广REST方式的服务,使其成为对WS-*系列标准的一个补充。很多情况下你并不需要中间的传输机构、交易、安全,或去承受Web Service协议的开销。WCF 3.5将帮您做这些事情。注意,我们并没有改变WCF的基本原则,仍旧利用的是服务、通讯和SOA的技术。我们只是不再坚持认为SOA只能是WS-*和SOAP了。下面是一个很好的例子:WCF是一个广义的通讯架构,当端点之间进行匹配时,它采用了一种简单的配置变更的方式切换到更加高效的二进制传输方式上。这就是WCF做为通用的通讯架构的优点所在。
在3.5的版本中,我们发布了一些新的通讯通道(Communication Channels), 比如IBM公司正在研制一种为MQSeries订制的通道。微软想通过变更协议来满足客户的需求。我们还发布了WCF Line of Business Adapter SDK,它扩展了WCF的通讯模式,使其能够连接其他企业级系统(如SAP、Siebel等)。尽管使用了相同的WCF模式,但这并不是一种固有的模式。人们当然也可以构建自己订制的通道。
InfoQ:在过去的两三年中,ESB已经取得了很大的发展势头,Java厂商们至少在一种ESB上展开了营销。微软是如何定位自己在ESB领域的地位的呢?
Dino:ESB这个概念吸引了很多的关注目光。我们也已经在这上面做了很大的投资,力图让客户理解如何使用微软的技术提供企业级的服务总线。ESB的一个关键问题是从概念到实际部署应用是有经济意义可言的。为此,微软已经发布了ESB和BizTalk server 2006 R2的指导手册。这个手册提供了应用ESB解决现实问题的实用的、在财务上负责任的指导。
除了微软在ESB上的投资,我们也投资于服务总线的网上交付模式。现在这个功能已经在http://labs.biztalk.net可用了。客户告诉我们,随着时间的推移,他们希望可以让服务总线服务于On-Premise和跨防火墙两种情况。我们在这两方面的技术投资将会让用户体验都无缝衔接。
InfoQ:客户是如何采用.NET 3.0的呢?他们是把WPF、WF、WCF组件一起使用,还是单独使用它们呢?
Dino:这其实取决于你从哪个角度来看:对于不同的人它们的优先级不一样。比如在一个大型企业的构架团队,.NET 3.0里定义的WCF绝对是一个关键切入点。但对于那些侧重于用户体验的人来说,WPF则会带来更大的价值。所有这些组件都是相互关联的,它们能为正确的人带来正确的信息,这就是各种不同规模组件想要达到的目的。这也是SOA的真正目的。
SOA在业界和对WCF的采用上都是非常棒的,IDC的报告中显示,.NET是目前企业里SOA使用最流行的一种基础架构。我们成功的关键因素在于帮助我们的客户用切实可行的方法稳步做好每一件事情。一般来说,我们的客户避免自顶向下从头开始构建的SOA大项目。他们寻求的是一种循序渐进的工作方式。他们希望在进入到下一步之前就能看到成效。我们认为客户可以运用我们的技术、敏捷开发方式的原则、采用更加现实的方法去归纳解决问题。其结果是,大部分客户已经完成了SOA的启动阶段,正在致力于提升其成熟度上。
InfoQ:您能结合几个客户的成功案例来谈谈吗?
Dino:Newegg就是SOA的一个成功案例。随着这家线上零售商的成长,他们发现整合不同系统的工作正在变得越来越复杂和昂贵。他们接受了ESB的理念,决定实施SOA。他们公司通过对SONY、IBM和Tibco的ESB产品进行对比后,最终选择了按照微软提供的ESB指导手册在WCF上构建ESB。他们的选择是在比较了其它产品的学习曲线和复杂度后做出的。他们所需要做的就是在一个简单得多的SOA平台上规划运营。这就是一个真实的SOA案例。
Crutchfield是另一个零售商。他们已经从单一的按照商品目录销售,转变为一个包括商品目录、线上销售、以及通过像亚马逊等这样的合作伙伴销售的多种销售渠道的零售公司。每种渠道都使用的是不同的销售和客户系统。随着渠道的成长,他们开始面临着敏捷度的问题。他们决定运用面向服务式的设计,以一种非常集中的方式解决这个问题。通过使用WCF,他们把订单处理逻辑抽象到一个中央共享服务中去,这样其它渠道也可以使用。再说一次,这只是一个小问题,我们可以做到运用我们的技术来解决它,同时不会引入不必要的风险。