WCF学习笔记一(概述)

WCF  Windows Communication Foundation 分布式通信框架。WCF是对现有分布式通信技术的整合。是各种分布式计算的集大成者。主要整合技术如下图:

WCF的服务不能孤立的存在,需要寄宿于一个运行着的进程中,我们把承载WCF服务的进程称为宿主,为服务指定的宿主的过程称为服务寄宿。自我寄宿和IIS寄宿两种服务寄宿方式。如下图:

从功能上讲,服务契约抽象了服务提供的所有操作;而站在消息交换的角度来看,服务契约则定义了基于服务调用的消息交换过程中请求消息和回复消息的结构。通过应用ServiceContractAttribute特性将接口定义成服务契约之后,接口的方法并不能自动成为服务操作。WCF采用的是显示选择(Explicit Opt-in)的策略,意味着我们需要在相应的操作方法上显示地应用OperationContractAttribute特性。WCF服务需要依赖一个运行着的宿主进程,服务寄宿就是为了服务指定一个宿主的过程。WCF采用基于终结点的通信手段。终结点由地址、绑定、契约三要素组成。简称 A B C.

地址:地址决定了服务的位置,解决了服务寻址的问题。

绑定:绑定实现了通信的所有细节,包括网络传输、消息编码,以及其他为实现某种功能(比如传输安全、可靠消息传输、事物等)对消息进行的相应处理。WCF中具有一些列的系统定义绑定,比如BasicHttpBinding、WSHttpBinding和NetTcpBinding等。

契约:契约是对服务操作的抽象,也是对消息交换模式及消息结构的定义。

当通过Visual Studio添加服务引用的时候,Visual Studio在内部帮助我们实现元数据的获取,并借助这些元数据通过代码生成工具(SvcUtil.ex)自动生成用于服务调用的服务代理相关代码和相应的配置。

服务寄宿的目的就是开启一个进程,为WCF提供一个运行的环境,并未服务添加一个或多个终结点,使之暴露给潜在的服务消费者。服务被成功寄宿之后,服务端便开始了服务调用求情的监听。

WCF采用基于契约的服务调用方法。Visual Studio在进行服务引用添加的过程中,会在客户端创建一个与服务端等效的服务契约接口。由于服务端和客户端都在同一个解决方案中,因此完全可以让服务端和客户端引用相同的契约。

终结点是WCF进行通信的唯一手段,ChannelFactory<Tchannel>本质上是通过指定的终结点创建用于进行服务调用的服务代理。

示例的创建步骤我就不具体描述了,可以参考 http://www.cnblogs.com/artech/archive/2007/02/26/656901.html。

示例的源码:http://download.csdn.net/detail/ybealq/8256967

时间: 2024-12-25 11:38:39

WCF学习笔记一(概述)的相关文章

学习笔记-性能测试-概述

性能测试的目的,什么是性能测试? 目的主要有四点:1评估系统能力,2寻找系统弱点(瓶颈),3系统调优,4验证系统可靠性,稳定性. 通俗的来说,性能测试的目的就是验证系统好不好用,就像功能测试验证系统是否可以用. 比较官方点的定义是: 是指在某个特定的硬件.软件.网络环境下通过自动化的测试工具模拟多种正常.峰值以及异常负载条件来对系统的各项性能指标进行测试. 性能测试的步骤? 设计测试方案 选择测试工具 搭建测试环境 设计测试场景 执行测试 分析测试结果 性能选择的标准? 达到客户的需求 新系统至

WCF学习笔记(一)

WCF是什么? 官方解释: Windows Communication Foundation (WCF) 是用于构建面向服务的应用程序的框架.借助 WCF,可以将数据作为异步消息从一个服务终结点发送至另一个服务终结点. 服务终结点可以是由 IIS 承载的持续可用的服务的一部分,也可以是应用程序中承载的服务.终结点可以是从服务终结点请求数据的服务客户端.简单消息可以是作为 XML 发送的单个字符或单个单词,复杂消息可以是二进制数据流. 网络收集: Windows通信基础(Windows Commu

wcf 学习笔记1

1. wcf 中的所有消息均为SOAP消息,注意WCF的消息与传输协议无关,与WEB服务不同,因此WCF服务可以在不同的协议之间传输,而不仅限于HTTP 2. wcf的每一个服务都有一个唯一的地址,地址包含两个元素:服务位置和传输协议:服务位置包括机器名,站点,通讯端口,管道或队列,以及一个可选的特定路径或URI统一资源标识 3. wcf 通讯协议有:http ,tcp , peer network , ipc , msmq ,使用命名管道的服务只能接收来自同一台机器的调用,每台机器只能打开一个

wcf 学习笔记2

服务契约 我们知道,serviceContrac特性能够将接口或者类公开为面向服务的契约,允许开发者使用c#语言编程,把类似接口这样的语法结构公开为WCF契约和服务. 操作重载,基于WSDL的操作不支持操作重载,但是,我们可以手动的启动操作重载,使用operationContract特性的name属性,为操作指定别名,如下: [ServiceContract] interface ICalculator { [OperationContract(Name="AddInt")] int

转载 TCPIP学习笔记之概述

1.分层 网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能.一个协议族,比如 T C P / I P,是一组不同层次上的多个协议的组合. T C P / I P通常被认为是一个四层协议系统,其示意图如下: (图1)TCP/IP协议族的四个层次 每一层负责不同的功能: 1) 链路层: 有时也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡.它们一起处理与电缆(或其他任何传输媒介)的物理接口细节. 2)网络层: 有时也称作互联网层,处理分组在网络中的

WCF学习笔记 -- 如何用C#开发一个WebService

假设所有工程的命名空间是demo. 新建一个C#的ClassLibrary(类库)工程. 在工程引用中加入System.ServiceModel引用. 定义接口,你可以删除自动生成的代码,或者直接修改代码来添加接口. [ServiceContract] Interface IMath { [Operationcontract] Int add (int a, int b); } 实现接口 添加一个新类,如Math实现该接口. Public class Math : IMath{ Int add(

WCF学习笔记 -- 基本概念

WCF是实现WebService的一种微软提出的技术,整合了.Remote, .NET及ASP.NET服务的一种框架.是Windows Communication Foundation的缩写.WebService就是分布式应用程序间实现互操作性的一种标准.它与语言和平台无关,你可以使用任务语言编写发布到任何平台.它在底层通过SOAP协议来传送数据. WebService必须包含的几个要素: Address – 地址,也就是在哪找到该服务.地址必须唯一. Binging – 绑定协议,即通过什么方

Struts2 学习笔记(概述)

Struts2 学习笔记 2015年3月7日11:02:55 MVC思想 Strust2的MVC对应关系如下: 在MVC三个模块当中,struts2对应关系如下: Model: 负责封装应用的状态,并实现应用的功能.通常分为数据模型和业务逻辑模型,数据模型用来存放业务数据,比如订单信息.用户信息等:而业务逻辑模型包含应用的业务操作,比如订单的添加或者修改等. 封装应用状态:某些应用数据封装起来,使得视图只能通过接口获取对应的数据 响应状态查询:对应用的状态改变进行处理 暴露应用功能:暴露接口 通

WCF学习笔记(基于REST规则方式)

一.WCF的定义 WCF是.NET 3.0后开始引入的新技术,意为基于windows平台的通讯服务. 首先在学习WCF之前,我们也知道他其实是加强版的一个面向服务(SOA)的框架技术. 如果熟悉WebService就会知道WebService是基于XML+XSD,SOAP和WSDL三大技术,当然他也是采用HTTP协议的通信,严格来说WebService是一种面向服务开发的标准.而ASP.NET WebService则是微软平台下的服务. WCF其实一定程度上就是ASP.NET Web Servi