WCF系列学习笔记2

在推出WCF之前微软提供了四种方案来实现分布式的通信交互技术,分别是:

1.Web服务和WSE

2. .NETRemoting

3. .NET 企业服务

4.微软消息队列

WCf对这些技术的集成包含了两个方面, 首先是WCF的架构本身吸收了这些技术的精华,使用WCF的客户端和服务段可以和现有的WEB服务,MSMQ队列进行交互。

 

从系列学习1到现在,都没有谈到到底WCF有那些部分组成,下面将介绍他的最基本的构成:

  1. 契约:从SOA概念上看,契约属于一个服务公开的接口的一部分,一个服务的契约,定义了服务端公开的服务方法,使用传输协议,可访问的地址,传输消息格式等内容,基本上,契约的定义描述了服务的功能和作用,他告诉SOA系统中的其他的节点这个服务是干什么的。
  2. 服务运行:服务运行方面定义了服务在运行时的具体行为,如果契约描述了服务是干什么的,那么服务运行就在一定程度上描述了服务是怎么做的,服务行为方面的内容跨越了服务的边界,他不仅包含可对外公布的内容,也包含了服务内容的实现行为。
  3. 消息:消息方面包含了消息的传输方式,消息的编码与解码,消息方面的内容基本属于服务边界以内的具体实现具体的传递实现,必须符合在契约中定义的绑定契约(绑定契约后续介绍)。
  4. 激活与宿主:一个WCF服务必须要在一个运行的程序中寄宿,有很多种选择,乘用的寄宿方式包括自寄宿,IIS寄宿,Windows激活服务,Windows服务,Com+ 组建,激活和宿主属于WCF程序的部署方式,根据SOA的原则,激活和宿主类型变化不会影响服务本身的特性和外部对服务的访问。

WCF基本概念介绍:

1.地址:每个服务都有一个唯一的地址,再SOA系统中,其他服务和客户端通过服务的地址来对服务进行访问,一个服务的地址由一个统一资源标识符来表示,一个地址包含了通信所使用的协议,协议指的是传输使用的协议,常见的有Http(使用HTTP协议),net.tcp(使用TCP协议),net.msmq(使用MSMQ协议),地址并不是负责定义服务传输所使用的协议,而只是提供一个和通信协议兼容的地址。地址是组成一个服务终结点的三要素之一。

2.绑定:绑定定义了服务与外部通信的方式,它由一组称谓绑定元素的元素构造而成,这些元素组合在一起形成了通信基础结构,一个绑定可以包含以下内容:1)通信所使用的协议,2)消息编码器,3)消息安全保障策略,4)通信堆栈的其他任何要素,绑定也是组成服务终结点的三要素之一。

3.契约:在WCF中一共包含四种契约,1)服务契约:服务契约将多个相干的操作联系在一起,组成单个功能元素,契约可以定义服务级设置,如果服务的命名空间,对应的回调契约及其其他此类设置。2)数据契约,服务使用的数据类型必须在元数据中进行描述,以使其他各方可以与该服务进行交互操作,数据类型的说明称谓数据契约,而这些类型可以在消息的任何部分使用,如果服务是用简单类型,没有必要显示使用数据契约。4)数据契约:可以将错误契约与服务操作进行关联,以指示可能返回到调用放的错误,一个操作可能具有零各或多个与其相关联的错误,这些错误是在编程模型中建模为异常的SOA错误,5)消息契约:消息契约描述消息的格式,他会声明消息元素应包含在消息头中还是包含在消息正文中,应该对消息的任何元素应用何种级别的安全。契约也是组成服务终结点的三要素之一。

4.终结点:一个终结点有三个要素组成,终结点用来发送或接收消息的构造,一个终结点就相当于服务等公共接口,每个服务可以拥有一个或多个终结点,由于每个服务都只拥有一个地址,所以某个服务拥有的所有终结点共享一个地址,终结点的配置或者编程,并不属于业务逻辑的编程,所以WCF设计分离了终结点的定义和契约的具体实现。

5.元数据:服务的元数据描述服务的特性,外部实体需要了解这些特性以便于该服务进行通信,服务所公开的元数据包括XML架构文件和WSDL文档,启用元数据后,WCF通过检查服务以及终结点自动生成服务元数据,若要发布服务元数据,必须显示启动元数据行为,在WCF中,可以为元数据设置一个专用的终结点。

6.宿主:服务必须承载与某个进程中,宿主的控制服务的生存期的应用程序,服务可以是自寄宿,也可以由现有的寄宿进程进行管理,从内部实现来看,一个服务宿主进程,可以包含一个或多个应用程序域,而每个应用程序域理论上有可以被放入到任意个服务宿主,每个服务宿主可以拥由任意个上下文,每个上下文可以有0个或1和服务示例,

posted @ 2010-05-29 11:13  justlife  阅读(326)  评论(0编辑  收藏  举报