WCF是一个分层架构,为开发各种分布式应用的充分支持。该体系结构在下面将详细说明。

约定

约定层旁边就是应用层,并含有类似于现实世界的约定,指定服务和什么样的信息可以访问它会使操作的信息。约定基本都是在简短的讨论如下四种类型。

  • Service contract - 约定规定,在沟通过程中使用的信息给客户端,以及对终端的产品和协议的外部世界。

  • Data contract - 由服务交换的数据是由一个数据契约定义。客户端和服务需要在与数据合同协议。

  • Message Contract - 数据合同由约定信息控制。它主要是SOAP消息的参数类型格式的定制。在此,应该提到的是WCF采用SOAP格式进行通信。 SOAP代表简单对象访问协议。

  • Policy and Binding - 由策略和有约束力的约定被定义为一个服务,这样的条件下通信的某些先决条件。客户端需要遵循这一约定。

服务运行时

服务运行时层仅仅是约定层之下。它指定在运行时出现的各种服务行为。有许多类型的行为,可以进行配置,如下的服务运行。

  • Throttling Behavior - 管理处理的消息的数量

  • Error Behavior – 定义任何内部服务错误发生的结果

  • Metadata Behavior – 指定的元数据的可用性到外界

  • Instance Behavior – 定义要创建需要的实例的数量,以使它们可用于在客户端

  • Transaction Behavior – 能够在事务状态的变化的情况下出现任何故障

  • Dispatch Behavior - 控制由该消息得到了WCF的基础处理方式

  • Concurrency Behavior - 控制的客户端 - 服务器通信过程中并行运行功能

  • Parameter Filtering - 功能参数的方法验证的过程,在它被调用之前

消息

这层几个通道构成主要涉及两个端点之间传送的消息的内容。一组通道的形成通道堆栈和构成的通道堆栈的下面那些渠道的两种主要类型。

  • Transport Channels - 这些通道都存在于栈底和负责发送和接收使用像HTTP,TCP,P2P,命名管道和MSMQ传输协议的消息。

  • Protocol Channels - 存在于堆栈的顶部,这些信道也被称为层状通道通过修改消息实现线级协议。

激活和托管

WCF的体系结构的最后一层是其中服务实际上是托管,或者可以以方便客户端被执行的地方。这是通过在下面简要讨论的各种机制进行。

  • IIS - 互联网信息服务的缩写提供使用HTTP协议通过服务优势很多。这里主机代码的要求不是强制性的,用于激活该服务代码,相反,服务码被自动激活。

  • Windows激活服务 - 这就是俗称WAS和带有IIS7.0。 HTTP和非HTTP通信,可以在这里通过使用TCP或Namedpipe协议。

  • Self-Hosting - 这是由一个WCF服务获取自托管的控制台应用程序的机制。这种机制提供了惊人的灵活选择所需的协议和设置自己的解决方案方面。

  • Windows Service - 主持这一机制的WCF服务是有利的,因为该服务保持激活状态,并接触到客户端,由于没有运行时激活。

原文地址:http://www.yiibai.com/wcf/wcf_architecture.html

WCF入门(四)---WCF架构的更多相关文章

  1. WCF入门四[WCF的通信模式]

    一.概述 WCF的通信模式有三种:请求/响应模式.单向模式和双工通信. 二.请求/响应模式 请求/响应模式就是WCF的默认模式,前面几篇随笔中的示例都是这种模式,当客户端发送请求后(非异步状态下),即 ...

  2. WCF入门三[WCF宿主]

    一.概述 WCF程序必须在宿主上运行,也就是WCF服务必须寄宿在某一个windows的进程中,可以是IIS.控制台程序.窗体程序.WAS以及所有.net程序等程序进程中.在我用VS2013创建WCF服 ...

  3. WCF入门一[WCF概述]

    一.什么是WCF WCF是使用托管代码建立和运行面向服务(Service Oriented)应用程序的统一框架.它使得开发者能够建立一个跨平台的.安全.可信赖.事务性的解决方案,且能与已有系统兼容协作 ...

  4. WCF入门教程[WCF基本应用]

    一.概述 Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分.由 .NE ...

  5. WCF入门二[WCF的配置文件]

    一.概述 往往在很多项目中数据库连接字符串.变量和一些动态的加载类会写在配置文件中.WCF也会在配置文件中写入一些配置参数,比如服务的地址.服务用于发送和接收消息的传输和消息编码等,通过配置文件可以灵 ...

  6. 纯手写wcf代码,wcf入门,wcf基础教程

    1.定义服务协定     =>定义接口 using System.ServiceModel; namespace WcfConsole { /// <summary> /// 定义服 ...

  7. WCF入门教程(四)通过Host代码方式来承载服务 一个WCF使用TCP协议进行通协的例子 jquery ajax调用WCF,采用System.ServiceModel.WebHttpBinding System.ServiceModel.WSHttpBinding协议 学习WCF笔记之二 无废话WCF入门教程一[什么是WCF]

    WCF入门教程(四)通过Host代码方式来承载服务 Posted on 2014-05-15 13:03 停留的风 阅读(7681) 评论(0) 编辑 收藏 WCF入门教程(四)通过Host代码方式来 ...

  8. WCF入门教程(四)通过Host代码方式来承载服务

    WCF入门教程(四)通过Host代码方式来承载服务 之前已经讲过WCF对外发布服务的具体方式. WCF入门教程(一)简介 Host承载,可以是web,也可以是控制台程序等等.比WebService有更 ...

  9. WCF入门教程(五)配置文件

    WCF入门教程(五)配置文件 服务协定以及实现写好后,需要将相关服务公布出去,就需要HOST来承载,供客户端来调用. 承载服务有两种方式,一种通过配置文件,一种通过代码进行配置.上一章已经介绍了代码方 ...

随机推荐

  1. Laravel 5 基础(四)- Blade 简介

    在多个页面中我们可能包含相同的内容,像是文件头,链接的css或者js等.我们可以利用布局文件完成这个功能. 让我们新建一个布局文件,例如 views/layout.blade.php <!doc ...

  2. python: 生成guid

    其实经常需要生成一个guid,在各种场合使用...也简单写个小脚本实现吧. 实现下来发现速度比较慢... import uuid import sys def show_ver(): print 'g ...

  3. string和stringBuilder的区别

    曾经被问到过这个问题,回答得不是很好,在网上找了一下,园子里有大神很详细地讨论了二者的区别. http://www.cnblogs.com/yunfeng8967/articles/1093832.h ...

  4. hexo-github 博客搭建

    安装nodejs 从官网下载系统对应的源码 wget -qO- https://raw.githubusercontent.com/creationix/nvm/master/install.sh | ...

  5. 通过数据绑定模板得到对应的Item控件

    这类控件都继承于Selector,其中主要有ComboBox.listview.listbox.datagrid. 由于个人对WPF的了解所有可能有遗漏,希望各位能够指出一起进步. 在遍历上面控件时主 ...

  6. Microsoft Virtual Academy 介绍

    Microsoft Virtual Academy 是微软的虚拟学院,会推出微软各个方面的一些教程 介绍一点有用的链接 http://www.microsoftvirtualacademy.com/e ...

  7. zendframework 事件管理(二)

    首先需要明确的几个问题: Q1.什么是事件? A:事件就是一个有名字的行为.当这个行为发生的时候,称这个事件被触发. Q2.监听器又是什么? A:监听器决定了事件的逻辑表达,由事件触发.监听器和事件往 ...

  8. WPF中的Style

    一.Style基础知识 构成Style最重要的两种元素是Setter和Trigger Setter类帮助我们设置控件的静态外观风格 Trigger类帮助我们设置控件的行为风格 Setter类的Prop ...

  9. Thinkphp模板中使用自定义函数的方法

    注意:自定义函数要放在项目应用目录/common/common.php中. 这里是关键. 模板变量的函数调用格式:{$varname|function1|function2=arg1,arg2,### ...

  10. apache-tomcat-9安装以及与eclipse结合

    apache-tomcat-下载:http://tomcat.apache.org/download-90.cgi 安装(转载):http://jingyan.baidu.com/article/60 ...