在过去的几个月里,微软通过在 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,他们把订单处理逻辑抽象到一个中央共享服务中去,这样其它渠道也可以使用。再说一次,这只是一个小问题,我们可以做到运用我们的技术来解决它,同时不会引入不必要的风险。
InfoQ:非常感谢!
评论