wcf服务编程规范.doc
文本预览下载声明
wcf服务编程规范
篇一:WCF服务编程规范
WCF服务规范
一 目标
业务处理与界面呈现分离,C/S与B/S结构的程序能通用转换和数据共享,
各个系统可以资源共享
二 软件构架
三WCF介绍
3.1、WCF的运行机制
如果从宏观的角度来分析WCF的运行机制,它的实现并不复杂。WCF的体系架构是基于一种拦截机制来实现的,负责传递和拦截消息的组件为通道,在客户端发出对服务端服务的调用时,首先会通过一个服务代理对象,将调用方提供的
对象序列化到消息中,然后 该消息则通过通道进行传递。通道不只是包括一个,而是多个通道对消息进行处理,包括传输、消息编码、管理会话、传播事务等,但最底层的通道总是传输通道。 这些通道的构成形成了一个通道堆栈。由于对象已经被序列化,因而此时通道传递的消息可以跨进程或机器进行传递,利用传输通道传递到服务端。服务端的构成与 客户端基本相似,仍然是通过通道栈中最底层的传输通道接收消息,然后解析消息编码,并一层层地往上传输。在服务端的通道栈之上,则是一个分发器 (Dispatcher,或者说是调度器),它会首先对消息进行检查,然后选择一个客户端要调用的操作。在这个过程中,消息会被反序列化。
下图说明了WCF的整个运行过程:
由 于WCF通过通道的方式传递消息,整个通道同时担当了侦听器和拦截器的功能,它可以根据服务的定义,在方法执行的前或后执行不同的操作,例如事务、会话管理、安全等。这些操作在WCF中,大多数都可以以Attribute的方式应用到服务契约上,这样的实现方式,就类似于采用了AOP(面向服务编程)的方 法为服务提供了大量的基础功能,有助于简化服务开发者的工作。
3.2、为什么我们要选用WCF
在Windows平台 下,尤其是在.NET平台下开发面向服务的应用程序,或者开发分布式系统,最佳选择就是WCF。为什么呢?原因就在于WCF涵盖了之前微软推出的所有用于 分布式开发的技术,包括Remoting、Web Services、WSE、MSMQ等,并以一种统一的编程模式来实现。
WCF既支持 具有互操作性的Web服务,也能够实现.NET客户端与.NET服务端的通信,提供了分布式事务的支持,同时在安全性上,它完全遵循了WS-*的标准,此 外,它还支持队列服务,可以非常方便地利用消息队列完成异步操作与脱机调用。而这些功能,以前的技术都只是部分的实现。如下表所示:
WCF同时也使得面向服务编程更加简单而统一了。如果采用旧有的技术,由于各种技术的编程模型完全不一致,使得程序的迁移非常的困难。例如,最初采用.NET Remoting技术开发的分布式系统,由于业务需求的变化,要求发布具有互操作性的Web服务,就需要重新定义服务。并且,客户端的调用方式也发生了变 化,需要添加Web引用,通过UDDI去发现服务。
采用WCF则不然。WCF引入了用通道,它封装了消息的通信细节,例如编码、事务处 理、安全等,然后又通过引入绑定的概念,封装了通道的组成顺序与处理细节。最后,引入了独有的Endpoint元素,集成了地址、绑定和契约之间的
“三位 一体”,以最简单的方式定义和发布服务。
3.3、WCF基础的技术要素
WCF的大部分功能都放在一个单独的程序集System.ServiceModel.dll中。WCF的几个最重要的技术元素包括:绑定、契约、端点。
如 前所述,绑定封装了通道的组成顺序与处理细节,它直接决定了WCF的通信方式,消息的编码方式,通道的协议,消息传递的可靠性以及安全等内容。通过使用绑 定,我们就无需了解消息在WCF通道中的实现细节,从而简化程序员的开发。正是因为此,WCF为开发人员提供了多个内置绑定,基本上涵盖了WCF应用的大 部分场景。以下是Aaron Skonnard在《WCF深度绑定》一文中列举的内置绑定:
篇二:WCF编程:WCF服务和客户端的建立
1.概念
Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口。它是.NET框架的一部分,由 .NET Framework 3.0 开始引入。
WCF的终结点有三个要素组成,分别是地址(Address)、绑定(Binding)和契约(Contract),简记可写成Endpoint = ABC。
地址:地址决定了服务的位置,解决了服务寻址的问题。
绑定:绑定实现了通信的所有细节,包括网络传输、消息编码,以及其他为实现某种功能对消息进行的相应处理。绑定的类型包括BasicHttpBinding、WsHttpBinding、NetTcpBinding等。
契约:契约是对服务操作的抽象,也是对消息交换模式以及消息结
显示全部