WCF简单介绍nullnull培训模块画面设计关于WCF的简单应用介绍2010-05-29null1.简介WCF是Windows Communication Foundation 的缩写,它是MS为SOA (Service Oriented Architecture)战略而设计的一套完整的技术框架。它是一种统一的编程模型,用来为微软平台编写分布式(Distributed)应用。涵盖了之前出现的多种技术,如ASMX,Remoting,MSMQ等等。
有哪些优点:
1.整合了多项技术,是MS SOA产品的集大成者。
2.更为简单易用。(它囊括...
nullnull培训模块画面设计关于WCF的简单应用介绍2010-05-29null1.简介WCF是Windows Communication Foundation 的缩写,它是MS为SOA (Service Oriented Architecture)战略而设计的一套完整的技术框架。它是一种统一的编程模型,用来为微软平台编写分布式(Distributed)应用。涵盖了之前出现的多种技术,如ASMX,Remoting,MSMQ等等。
有哪些优点:
1.整合了多项技术,是MS SOA产品的集大成者。
2.更为简单易用。(它囊括了关于服务的一切,无论是服务的创建,托管,消费 和安全保障,还是保护与互通,甚至是提高开发效率)
3.包含了 其他技术的所有优点(统一性,互操作性,可靠性,兼容性)null1.1.客户端与服务的基本关系WCF客户端
WCF服务端
端点端点请求响应服务是一组向客户端提供可用功能的端点(Endpoints)。而端点(终结点)则是网络上的一个能将消息送达的资源。客户端按照与服务之间的契约(Contract)来格式化消息,并将消息发送给端点来访问端点的功能。服务在端点指定的地址(Address)上监听具有特定格式的送达消息。客户端与服务之间的基本关系:nullWCF客户端
端点
WCF服务端
…
端点
1.2.服务的三要素(ABC)A:Address 意味着在哪里(也含有传输方式信息)
B:Binding 意味着怎么做(与地址的传输方式要匹配)
C:Contract意味着做什么(服务契约)
端点
ABCABCABC端点
ABC通信nullWCF中的地址Http(basic,WS*)
Tcp
Peer netWork(对等网)
IPC(基于命名管道的内部进程通信)
MSMQWCF1.0支持的传输样式:基地址(baseAddress):
可以理解为地址的前缀,如果地址与基地址一样,则地址使用””即可null元数据交换WCF有两种方式可以发布自己的元数据:
1.基于HTTP-GET
提供元数据
2.使用MEX终结点作用:将服务的功能发布,以便浏览与引用nullWCF体系架构
服务
代理通道通道传输
通道传输
通道通道通道分发器客户端MEX终结点业务终结点null1.2.1契约(Contract)a).服务契约(SerciceContract)
公布服务的功能。操作契约( OperationContract )则负责在方法级别公开。
b).数据契约(DataContract)
对传递的类对象进行XSD(XML Schema Definitions)定义,以便对其成员进行序列化。
c).消息契约(MessageContract)
自定义消息格式,包括消息头,消息体,还能指示是否对消息内容进行加密和签名。
d).错误契约(FaultContract)
自定义错误异常的处理方式。
null1.2.2绑定(Binding)绑定:
就是预先配置好的信道栈,它代表了客户端和服务器之间线路级别上的约定。每个绑定都会指定通信所用的传输、编码及协议。通过绑定,WCF封装了各种不同通信场所下所使用的配置。null绑定的组成:Name,Namespace,BindingElementBindElement:
a)消息编码绑定元素(Message Encoding Binding Element)
b)传输绑定元素(Transport Binding Element)
c)协议绑定元素(Protocal Element):
主要是包含设置事务流控制,安全,会话,排序,升级/帮助器等信息null主要的系统内置绑定:null系统绑定支持的功能:null性能比较:Get256Bytes50000次 平均响应时间(单位:ms) 值小者为佳null1.3信道与信道栈(Channel)信道模型
a)请求响应模式(Request/Reply)
客户端发送请求后,必须等待回应。
1)同步—请求响应模式
2)异步—请求响应模式
b)单向通信模型(Oneway)
客户端发送请求后,无需等待服务器回复,只需得到一个通知来确认消息已经成功发送即可
b)双工通信(Duplex)
通信双方都是客户端和服务器,双方都可以发送请求并回复消息。信道:就是WCF应用程序之间传送消息的通道,它负责以一种一致的方式对消息进行整理和传送。信道被用于传输层,协议层及消息解惑。
信道栈:所有各层次的信道一起,组成了信道栈。信道栈就是一个层次的通信栈,专门用于处理消息。
主要包括:传输信道、协议信道null1.4行为(Behavior)1.4.1行为的分类
a)服务行为
运行于服务级别,能访问所有的端点。主要控制实例化与事务,还用于授权和审计。
b)端点行为
涉及服务端点,适用于对进出服务的消息进行审查和处理。(消息跟踪器)
c)操作行为
涉及操作级别,对于服务操作而说,他们适用于序列化、事务流和参数处理。(参数检验器)null并发与实例化吞吐量(Throughput) = 任务(Tasks)/时间(Time)
如何提高吞吐量?
1.减少执行时间
主要依靠硬件和优化算法
2.提高并发
并发(Concurrency)
是对同时执行的任务数量的度量,度量单位为任务(如请求、作业、事务等)null并发与实例化WCF中控制并发的行为
1.实例上下文模式(InstanceContextMode)
a)Single:一个服务类的实例处理所有入站请求,这实现为单例(Singleton).
b)PerCall:为每个入站请求创建一个服务类的实例。
c)PerSession:为每个客户端会话创建一个服务类的实例。(默认方式)
2.并发模式(ConcurrencyMode)
a)Single:在同一时刻只有一个线程访问服务类,这是最安全的设置,因为不用担心线程安全问题。
b)Reentrant:在同一时刻只有一个线程访问类,但该线程能暂时离开服务类,稍后回来并继续访问。
c)Multiple:多个线程能并发访问服务类null1.5托管服务并不能单独存在,必须寄存在宿主中。服务宿主(Service host)是一个负责WCF服务的生命周期(LiftTime)和上下文(Context)的操作系统进程。负责启动和停止WCF服务,并提供了一些控制服务的基本管理功能。
托管的方式:
1.控制台程序/WINDOWS程序(自托管)
优点:开发简单
缺点:在项目中应用并不常见,通常只用在测试阶段
2.IIS
优点:宿主进程可以在客户端提交第一次请求的时候自动启动,还可以借助IIS管理宿主进程的生命周期。
缺点:只能支持HTTP协议。
basicHttpBinding
wsHttpBinding
wsDualHttpBinding
3.Windows服务(自托管)
优点:随系统一同启动
nullIIS托管浏览元数据效果图null1.6客户端客户端引用服务的方法:
1.使用svcutil.exe工具(生成ServiceBase)
2.使用 Add Service Reference(控制台程序中没有) (生成ServiceBase)
3.使用信道工厂channelFactory或channelFactory
4. 手工建立(手工添加继承ServiceBase)客户端需要哪些文件:
1.契约接口
2.配置文件(非必须,可编码实现同样功能)
3.数据契约实现的类与系统支持的数据类型null2.服务的建立建立步骤:(需引用System.ServiceModel.dll)
a).建立契约接口
b).继承契约接口建立服务
c).托管服务
d).建立客户端程序
建立方式:
a).完全使用代码
b).使用代码+配置文件(app.config/web.config)
null服务的功能->提供查询某一种商品的最新报价的功能
2.1建立一个简单的服务a)建立服务契约
注意:
需要引用System.ServiceModel.dll
添加[ServiceContract]与[OperationContract]特性
null2.1建立一个简单的服务b)继承服务契约建立服务
注意:
需要引用System.ServiceModel.dll
引用服务契约所在的dllnull2.1建立一个简单的服务c)建立托管控制台程序
注意:
需要引用System.ServiceModel.dll
引用服务契约所在的dll
引用服务所在的dllnull2.1建立一个简单的服务d)建立客户端程序
注意:
需要引用System.ServiceModel.dll
引用服务契约所在的dll
(这里建立的方式是:信道工厂)null2.1建立一个简单的服务e)运行程序null2.2复杂的范例服务的功能->提供获取大量货品档案的功能(150000条记录)
原有方式:一次性取得数据,容易导致系统假死预计处理方法:使用多线程,每个线程取得小部分数据后,统一Merge()到数据集中。null2.2其他范例2.2.1)IIS托管
2.2.2)服务实例模式
2.2.3)自动更新客户端信息
2.2.4)网络象棋null3.其他介绍数据契约
消息契约
序列化与编码
可靠传输
事务
安全
MSMQ绑定
诊断
对等网络
负载平衡
null培训模块画面设计Q&A谢谢!
本文档为【WCF简单介绍】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。