WCF运行机制相关功能解析

开发 开发工具
WCF运行机制其实并不复杂,我们可以先从它的体系架构等方面进行详细的分析,以方便大家对此的理解,并从中获得一些帮助。

WCF开发工具是一个主要作用于.NET Framework 3.5的开发插件。那么WCF运行机制是个什么样的呢?它应当如何正确的操作才能保证运行顺利呢?在这里我们将会针对WCF运行机制做一个详细的介绍。#t#

1、WCF运行机制是怎样运行的?

如果从宏观的角度来分析WCF的运行机制,它的实现并不复杂。WCF的体系架构是基于一种拦截机 制来实现的,负责传递和拦截消息的组件为通道,在客户端发出对服务端服务的调用时,首先会通过一个服务代理对象,将调用方提供的对象序列化到消息中,然后 该消息则通过通道进行传递。通道不只是包括一个,而是多个通道对消息进行处理,包括传输、消息编码、管理会话、传播事务等,但最底层的通道总是传输通道。 这些通道的构成形成了一个通道堆栈。由于对象已经被序列化,因而此时通道传递的消息可以跨进程或机器进行传递,利用传输通道传递到服务端。服务端的构成与 客户端基本相似,仍然是通过通道栈中最底层的传输通道接收消息,然后解析消息编码,并一层层地往上传输。在服务端的通道栈之上,则是一个分发器 (Dispatcher,或者说是调度器),它会首先对消息进行检查,然后选择一个客户端要调用的操作。在这个过程中,消息会被反序列化。

下图说明了WCF的整个运行过程:

WCF运行机制过程 

 

由 于WCF通过通道的方式传递消息,整个通道同时担当了侦听器和拦截器的功能,它可以根据服务的定义,在方法执行的前或后执行不同的操作,例如事务、会话管 理、安全等。这些操作在WCF中,大多数都可以以Attribute的方式应用到服务契约上,这样的实现方式,就类似于采用了AOP(面向服务编程)的方 法为服务提供了大量的基础功能,有助于简化服务开发者的工作。

2、WCF运行机制决定我们的选择

在Windows平台 下,尤其是在.NET平台下开发面向服务的应用程序,或者开发分布式系统,最佳选择就是WCF。为什么呢?原因就在于WCF涵盖了之前微软推出的所有用于 分布式开发的技术,包括Remoting、Web Services、WSE、MSMQ等,并以一种统一的编程模式来实现。

WCF既支持 具有互操作性的Web服务,也能够实现.NET客户端与.NET服务端的通信,提供了分布式事务的支持,同时在安全性上,它完全遵循了WS-*的标准,此 外,它还支持队列服务,可以非常方便地利用消息队列完成异步操作与脱机调用。而这些功能,以前的技术都只是部分的实现。如下表所示:

WCF运行机制表格 

WCF同时也使得面向服务编程更加简单而统一了。如果采用旧有的技术,由于各种技术的编程模型完全不一致,使得程序的迁移非常的困难。例 如,最初采用.NET Remoting技术开发的分布式系统,由于业务需求的变化,要求发布具有互操作性的Web服务,就需要重新定义服务。并且,客户端的调用方式也发生了变 化,需要添加Web引用,通过UDDI去发现服务。

采用WCF运行机制则不然。WCF引入了用通道,它封装了消息的通信细节,例如编码、事务处 理、安全等,然后又通过引入绑定的概念,封装了通道的组成顺序与处理细节。最后,引入了独有的Endpoint元素,集成了地址、绑定和契约之间的“三位 一体”,以最简单的方式定义和发布服务。

责任编辑:曹凯 来源: 博客园
相关推荐

2010-02-22 15:00:02

WCF信道工厂

2023-05-26 08:01:01

FacebookVelox机制

2010-03-02 17:43:31

WCF框架处理流程

2015-11-20 11:20:54

js开发

2017-05-31 13:16:35

PHP运行机制原理解析

2019-05-10 14:00:21

小程序运行机制前端

2009-12-11 10:52:37

PHP运行机制

2009-02-03 14:00:20

PHP运行PHP调用PHP原理

2010-02-01 17:19:30

C++运行机制

2010-01-05 16:10:21

.NET Framew

2019-10-11 09:00:00

JavaScriptEvent Loop前端

2018-12-26 16:30:09

SQL Server内部运行机制数据库

2019-08-15 10:17:16

Webpack运行浏览器

2012-03-06 10:22:00

程序

2010-09-28 11:05:49

jQuery

2016-12-13 14:12:25

程序机制

2016-12-14 14:41:20

Hello World程序运行机制

2015-11-16 11:17:30

PHP底层运行机制原理

2009-10-22 17:10:04

CLR和JRE运行机制

2010-05-06 17:54:54

Oracle锁
点赞
收藏

51CTO技术栈公众号