每个程序员都是创造者--诚实做人,踏实做事,快乐生活

信言不美,美言不信。善者不辩,辩者不善。知者不博,博者不知。

导航

WCF技术总结之一 前篇

  学习WCF 有段时间了, 总结下WCF 技术中有关的重要概念,WCF 技术有很多关键的概念:如终结点(EndPoint)、契约(Contract)、信道(Channel)、绑定(Binding)、行为 (Behavior)、序列化与编码托管(Hosting)等。后续文章会做个详细的陈述。

  先概括性了解他们的内容:

   终结点(EndPoint):WCF 的客户端与服务器端之间的通信是通过一对 EndPoint 进行的;即客户端通过EndPoint发送消息给服务器端,服务器端通过EndPoint接受消息并通过EndPoint发送消息给客户端。因此客户端、服务器端两端都必须有一个 EndPoint ,而且这两个EndPoint 有着一致“通信协议”因为只有这样两个EndPoint 才能进行通信,才能了解对方消息的含义,并做出回应。EndPoint 由 地址(Address)、绑定(Binding)、契约(Contract)三部分组成,地址指的是服务的地址、通过这个地址可以找到这个服务;绑定指明了这个服务支持什么协议(http等)、采用什么编码方式(text等);契约表示了这个服务能提供什么样的功能。

   契约(Contract):一个WCF 服务表示一个完整的功能,由一组动作(一个或者多个动作)组成;契约就是描述这些动作的,就像说明书,说明这个服务能做什么;客户端应该怎么调用:传递什么参数、返回什么结果。契约分服务契约(ServerContract)、操作契约(OperationContract)、数据契约(DataContract)、消息契约(MessageContract)、错误契约(FaultContract)。

   信道(Channel):信道就是消息传递的通道。信道分传输层信道、协议层信道以及消息截获的信道;所有各种信道分层次组合成信道栈,信道栈用来处理消息。最底层的是传输信道:传输信道负责通过某种传输协议来输送消息,如:HTTP、TCP、MSMQ、P2P、命名管道等;在传输信道上面的协议信道:提供各种 安全、事务、消息可靠性等。信道栈中的各个信道依次对消息进行处理(如:事务、消息可靠性;编码等)。

   绑定(Binding):客户端、服务器端开始通信前需要先初始化一个彼此兼容的信道栈,绑定就是设置好了(内置)的信道栈。WCF提供了多种绑定(basicHttpBinding、wsHttpBinding、netTcpBinding、netNamedPipeBinding、netMsmqBinding等)、也支持自定义绑定。每种绑定都规定了对消息进行处理方式;像basicHttpBinding、netMsmqBinding 就不支持事务、消息可靠性等,那么这采用了这样的绑定方式的服务就不进行相关验证。

   行为 (Behavior):行为指的是那些影响运行时操作的类。如何影响运行时:指示如何创建 实例(利用现有的实例还是重新创建实例)、是否启用事务、是否启用消息可靠性、如何处理并发、验证与授权等等这些都是行为在起作用。行为分契约行为、服务行为操作行为终结点行为。契约行为包括 DeliveryRequirement ,服务行为包括实例并发模式、实例会话模式、事务隔离级别、元素据发布、调试、审核、遏制控制等,操作行为包括事务、序列化等。终结点行为包括回调、回调调试等。

   序列化与编码:消息被传输前、消息首先被序列化成某种格式如 :text, binary,mtom,Json等格式 ;WCF提供了DataContractSerializerXmlSerializerDataContractJsonSerializer等序列化器。

   托管(Hosting):WCF服务不能独立运行,必须承载于CLR中。(WCF) 服务能够被托管于任何支持CLR的 Windows 进程。可托管WCF服务的有:托管应用程序托管Windows 服务IISWAS(Windows 激活服务)。

  

 

 

 

 

posted on 2010-09-06 12:57  HUHU慈悲  阅读(583)  评论(0编辑  收藏  举报