微软 ESB 产品进入.NET 3.0 时代

  • 王翔

2007 年 9 月 17 日

话题:SOA.NET微软语言 & 开发架构

也许没有 IBM 和 BEA 对 SOA 那么大的宣传声势,但基于最广大客户端用户和.NET 平台,微软的 ESB 产品并不逊色于“拼凑”路线的 J2EE 平台。但令.NET 社区不满的是.NET 3.0 已经正式发布近一年,微软的 ESB 产品还仅对.NET 2.0 提供完全支持,这种情况一直拖到上周。

10 号,微软在台北市发布了 BizTalk 2006 的 R2。按照微软的产品分工,SOA 产品线中的关键产品 ESB 是由 BizTalk Server 完成的,从功能性、易用性上讲,它与“On Demand”、“Fusion”、“Liquid”的那几家产品难分伯仲,而且在很多方面 BizTalk 都要略胜一筹。但 SOA 不仅仅是概念,必须要落实,也就是要通过某些开发平台把它真正用起来,把企业的应用变成业务服务、把数据变成信息服务、把运行维护支持能力变成管理服务“挂”上去;微软的产品线中,开发平台有.NET Framework、VSTS 的产品,还有 Enterprise Library、Software Factory、ASP.NET AJAX 等通用并被广大开发人员普遍使用的框架,但作为面向服务的分布式计算中间件 WCF,即便被国内、外同行普遍看好,但在 BizTalk 2006 中始终没有用武之地,从下图不难看出如果受限于 BizTalk 所支持的.NET Framework 版本,将在大程度上阻碍 BizTalk 为中心的微软 SOA 项目发展。

此次发布的 BizTalk Server R2 版本中包括了 WCF Adapter 及相应的 SDK,它们的组合如下:

  • BizTalk 作为一个后台服务,除了可以完成点对点的消息调用外,更主要的是它可以完成多种信息源、多应用服务环境下的新业务编排和多种消息机制,而且所有操作都是基于微软平台管理员所熟悉的统一管理界面;
  • 如果说 BizTalk 搭出来的是一个平台,WCF 就很像穿针的线,它可以很容易的把所需的各种内容(其他应用提供的业务服务、数据服务、管理服务、IT 平台服务)缝在一起,形成新的业务服务能力。通过 BizTalk 的 WCF Adapter 可以把 WCF 写成的程序集作成一个个插件安到 BizTalk 这个总线上。

相比较以前 Web Service Adapter、.NET Remoting Adapter 等 Adapter 而言,WCF 则是一个更抽象的同时更为普适的选择,开发团队基于业务需求通过 WCF 的 ABC 把内容描述出来,至于到了部署的时候选择 COM+ 还是 ASP.NET Web Service,都可以。

BizTalk 2006 R2 引入了 WCF 也就等于引入了整体.NET Framework 3.0,毕竟无论向上为 WPF 传递信息、向内与 WCS 的安全机制集成,WCF 都是最平滑的。除此而外,BizTalk 2006 R2 配合 WCF 等于提供了一个支持各种消息模型的通用框架,它可以很容易完成高级 SOA 应用中亟需的事务性、异步消息队列机制、异步方法调用和统一安全机制等特性的支持,之前很多工作都需要通过重磅 COM+ 或者集成第三方产品完成,由于他们很多都不是这个时代的产品,因才在 XML 化的今天,很多时候都显得笨重而且臃肿,执行效率也因为频繁的互操作受到影响。

如果计划基于.NET 平台开发开发自己的 SOA 项目,除了已经内置了很多现成机制(UDDI、IIS、Active Directory、Automatic Update……)的 Windows 自身外,这个组合也许不错:

  • BizTalk Server 2006 R2
  • .NET Framework 3.0 +
  • SQL Server 2005 SP1
  • SharePoint Portal Server 2007
SOA.NET微软语言 & 开发架构