Windows Communication Foundation(WCF)介绍
Windows Communication Foundation:支持面向服务的应用程序
无论是通过工作流还是其他方式开发,绝大多数应用程序都需要与其他应用程序进行通信。近几年来,应用程序间的通信技术发展迅速。在长达数十年的不统一之后,主要供应商之间最终达成了一致的应用程序通信协议。根据 SOAP 这一全球 Web 服务协议,基于 J2EE、.NET Framework 等不同技术平台开发的应用程序间的互操作性相比以前大为简化。它还会使面向服务的架构这一思想为更多的组织接受。
当然,现在的通信方式已经不少了。以 .NET Framework 2.0 为例,您可以选择以下几种通信方式:
•ASP.NET Web 服务,提供基于 SOAP 的交互通信。
•.NET Remoting,主要用于 .NET 应用程序之间的通信。
•Enterprise Services,支持可扩展的事务性应用程序。
•System.Messaging,通过 Microsoft Message Queuing (MSMQ) 支持队列消息。
•Web Services Enhancements (WSE),它是 ASP.NET Web 服务的扩展,支持 WS-Security 等新规范。
这些技术都有其自身的价值,在实际应用中也有着各自的地位。可是,既然问题是一样的,为什么要采用好几种不同的解决方案呢?为什么不根据交互服务来建立一个单一的应用程序通信基础?
这正是 Windows Communication Foundation (WCF) 的设计初衷。有了 WCF,开发人员不必再像从前一样,处理每一类通信都要使用到不同的应用程序编程接口技术 - WCF (最初的代号为“Indigo”)以通用的 API 提供通用的方法。在 .NET Framework 3.0 环境下,大多数使用上述技术之一的应用程序将会代而使用 WCF。
WCF 通过 SOAP 提供强大的交互通信支持,这是现代计算机设备的基本要素。它还支持多项 WS-* 规范,如 WS-Security、WS-ReliableMessaging 和 WS-AtomicTransaction。WCF 不需要 SOAP,但是可能会使用其他方法,包括优化二进制协议、MSMQ 队列消息 和基于 REST 的简单通信。WCF 同样采取明确的面向服务方法来进行通信。WCF 不会在对象间进行透明通信,而是为通信各方提供略微不同的抽象服务。其结果之一就是放开了分布式对象系统间某些紧密的耦合关系,使得交互出错减少,并且更容易修改。
无论是在组织内部还是组织之间,应用程序通信都是现代软件的基本功能。.NET Framework 3.0 以其 WCF 面向服务方法解决了这一难题。