WCF-阿里云开发者社区

开发者社区> 开发与运维> 正文

WCF

简介: 服务这个词,对于任何人来说都不陌生,那么什么是服务呢?在现实世界中,服务可以理解为做一些事情,比如说去饭店吃饭,服务人员的服务就是给你那菜单,帮你上菜等,其实这就是一种功能。在编程的世界里,服务是暴露在外的一组功能的集合。

 

服务这个词,对于任何人来说都不陌生,那么什么是服务呢?在现实世界中,服务可以理解为做一些事情,比如说去饭店吃饭,服务人员的服务就是给你那菜单,帮你上菜等,其实这就是一种功能。在编程的世界里,服务是暴露在外的一组功能的集合。在WCF中,经常会看到ABC这三个词,其实WCF框架的核心是ABC,其他的配置,接口,属性,工具,模板等都是围绕ABC在展开。

  • A:Address Where
  • B:Binding How
  • C:Contract What

WCF的全称是:Windows Communication Foundation。从本质上来说,它是一套软件开发包,是微软公司推出的符合SOA思想的技术框架。

WCF为程序员提供了丰富的功能,其中包括:托管、服务实例管理、异步、安全、事务管理、离线队列等。并且WCF对产业中的标准协议进行了封装和定义,它把程序员从繁琐的通信、格式编码中解放出来,使得程序员能够专注于业务逻辑的实现。同时,WCF统一了微软公司之前推出的多种分布式技术,其中包括:

1. Web服务和WSE。

2. .Net Remoting。

3. .Net 企业服务。

4. 微软消息队列(MSMQ)。

WCF对这些技术的集成包括两个方面:

1. WCF的架构本身吸取了这些技术的精华。

2. WCF开发的服务/客户端可以和现有的Web服务、MSMQ程序进行交互。

 .Net Framework的四大体系架构

.Net Framework的四大体系包括:WCF、WF、WPF、WCS。

WCF(Windows Communication Foundation):主要是用来做松耦合的分布式通讯的,它还有另外一个名字叫Indigo,是微软迈向SOA一个重要的标志。WCF是.Net Framework的一个子集。

WF(Windows Wordflow Foundation):工作流引擎。

WPF(Windows Presenttation Foundation):WPF使用矢量绘图引擎,提供了一种声明式编程语言XAML,用来开发具有炫目视觉效果的应用程序。

WCS(Windows Card Space):采用了一种新的数字标识技术来实现类似网银单点登录的功能,主要用来防止钓鱼式攻击等,从网络安全方面提供了一个保障。

 WCF体系框架

clip_image001

从图上来看,WCF的体系基本包含了4个方面,分别为契约、服务运行时、消息和寄宿。

1 契约(能干什么)

从SOA的概念上来看,契约属于一个服务公开接口的一部分。一个服务的契约,定义了服务端公开的服务方法、使用的传输协议、可访问的地址、传输的消息格式等内容。

基本上,契约的定义描述了该服务的功能和作用,它告诉SOA系统中的其它节点这个服务是“干什么”的。

2 服务运行时(怎么干)

服务运行时定义了服务在运行时的具体行为。如果说契约描述了服务是“干什么”的,那么服务运行时就在一定程度上描述了服务是“怎么干”的。

3 消息

消息方面包含了消息的传输方式、消息的编码与解码。消息方面的内容基本属于服务边界以内的具体实现。具体的传递时限,必须符合在契约中定义的绑定协议。

4 激活和宿主(在哪干)

激活和宿主属于WCF程序的部署方式。一个WCF服务需要在一个可运行的程序中寄宿,我们可以把宿主理解为WCF运行的容器。常用的寄宿方式包括自寄宿、IIS寄宿、Windows激活服务、Windows服务、Com+组件等。根据SOA的原则,激活和宿主类型的变化不会影响服务本身的特性和外部对该服务的访问,而WCF在这一方面也确实做的非常出色。

 

 

参考:http://blog.csdn.net/kntao/article/details/5699283

      http://blog.csdn.net/kntao/article/details/5699283

      http://blog.sina.com.cn/s/blog_570379cc0100newa.html

        http://blog.csdn.net/fangxing80/article/details/6106228

      http://www.cnblogs.com/wayfarer/archive/2007/08/24/867987.html

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章