龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > asp.net编程 >

WCF分布式系列教程1:什么是wcf

时间:2009-12-21 11:47来源:未知 作者:admin 点击:
分享到:
在.NET3.0以上的版本加入一些很重要的特性,其中包括WCF,这个能业界认为是不错的,下面讲下什么是WCF? Windows Communication Foundation (WCF)是Microsoft为构建面向服务的应用提供的分布式通信

在.NET3.0以上的版本加入一些很重要的特性,其中包括WCF,这个能业界认为是不错的,下面讲下什么是WCF?
Windows Communication Foundation (WCF)是Microsoft为构建面向服务的应用提供的分布式通信编程框架,是.NET Framework v3.0的重要组成部分,是Windows Vista® 操作系统和Windows Server® 2008操作系统的一部分。使用该框架,开发人员可以构建跨平台、安全、可靠和支持事务处理的企业级互联应用解决方案。WCF有一下几个方面的优点:

1、统一性

  WCF是对于ASMX,.Net Remoting,Enterprise Service,WSE,MSMQ等技术的整合。由于WCF完全是由托管代码编写,因此开发WCF的应用程序与开发其它的.Net应用程序没有太大的区别,我们仍然可以像创建面向对象的应用程序那样,利用WCF来创建面向服务的应用程序。http://www.xueit.com/eimg/uploadfile/downpig/20099/0991514129334.gif

  http://www.xueit.com/eimg/uploadfile/downpig/20099/0991514129770.gif

  2、互操作性

  由于WCF最基本的通信机制是SOAP,这就保证了系统之间的互操作性,即使是运行不同的上下文中。这种通信可以是基于.Net到.Net间的通信,如下图所示:

  可以跨进程、跨机器甚至于跨平台的通信,只要支持标准的Web Service,例如J2EE应用服务器(如WebSphere,WebLogic)。应用程序可以运行在Windows操作系统下,也可以运行在其他的操作系统,如Sun Solaris,HP Unix,Linux等等。如下图所示:

  3、安全与可信赖

  WS-Security,WS-Trust和WS-SecureConversation均被添加到SOAP消息中,以用于用户认证,数据完整性验证,数据隐私等多种安全因素。

  在SOAP 的header中增加了WS-ReliableMessaging允许可信赖的端对端通信。而建立在WS-Coordination和WS- AtomicTransaction之上的基于SOAP格式交换的信息,则支持两阶段的事务提交(two-phase commit transactions)。http://www.xueit.com/eimg/uploadfile/downpig/20099/0991514129796.gif

  上述的多种WS-Policy在WCF中都给与了支持。对于Messaging而言,SOAP是Web Service的基本协议,它包含了消息头(header)和消息体(body)。在消息头中,定义了WS-Addressing用于定位SOAP消息的地址信息,同时还包含了MTOM(消息传输优化机制,Message Transmission Optimization Mechanism)。如图所示:http://www.xueit.com/eimg/uploadfile/downpig/20099/0991514129364.gif

  4、兼容性

  WCF充分的考虑到了与旧有系统的兼容性。安装WCF并不会影响原有的技术如ASMX和.Net Remoting。即使对于WCF和ASMX而言,虽然两者都使用了SOAP,但基于WCF开发的应用程序,仍然可以直接与ASMX进行交互。


WCF应用SOA模式,在客户层和业务逻辑层之间加上了服务层,避免了业务逻辑层直接暴漏给客户层,客户层的技术人员就不会看到业务逻辑层的对象和方法,降低了技术之间的耦合性。

在客户进程中,service安插在serviceHost里,service和serviceHost 是安插在一个主机的进程当中的,进程中还包括若干个endpoint,是service对外服务的接口。在客户进程中有一个Proxy,负责客户进程到主机进程的通信。但是事实上,直接进行通信的是在Proxy里的endpoint. Proxy和service description通过svcutil.exe进行数据源的交换,通过这种方式实现了client和serviceHost端的松耦合。

收藏文章
表情删除后不可恢复,是否删除
取消
确定
图片正在上传,请稍后...
评论内容为空!
还没有评论,快来抢沙发吧!
按钮 内容不能为空!
立刻说两句吧! 查看0条评论
精彩图集

赞助商链接