您的位置:首页 > 其它

WCF系列博文(三)-----WCF定义的12中标准绑定特性

2015-08-30 21:21 330 查看
在使用WCF框架进行开发时,如何选择一个适合的绑定对于消息传输的可靠性,传输模式是否跨进程、主机、网络,传输模式的支持、安全性、性能等方面有着重要的影响。从本质来看,绑定具有的这些特性源于其使用的网络协议和编码器。绑定是一个定制好的通道栈,包含了协议通道、传输通道和编码器。所以在使用WCF框架进行开发时,如何选择一个合适的绑定是非常必要的。

下面先介绍一下这12个标准绑定:



常用

1、基本绑定(BasicHttpBinding)

对应BasicHttpBinding类,能够将WCF服务公开为传统的ASMX Web服务,是以前就的程序能够使用现在的WCF

服务。在实际开发中一个WCF服务可能会给不同的程序调用,如给Java的程序调用,给Flex的程序调用等,那么采

用BasicHttpBinding最合适不过了

2、TCP绑定(NetTcpBinding)

对应与NetTcpBinding类,TCP绑定使用TCP协议在Intranet中跨机器的通信,注意这里是Intranet而非Internet。

支持多种特性,包括可靠性、事务性、安全性、以及WCF之间通信的优化。前提是要求客户端与服务端都必须使用

WCF

3、IPC绑定(NetNamedPipeBinding)

对应于NetNamedPipeBinding累,使用命名管道为同一机器通信进行传输,安全性最高,因为不能接收其它机器的

外部调用。IPC协议绑定与TCP协议绑定相似,也是性能最好的绑定,因为IPC协议比TCP协议更简单

4、Web服务(WS)绑定(WSHttpBinding)

对应于WSHttpBinding类,WS绑定使用Http或Https进行传输。为基于Internet的通信提供了多种特性(可靠性、

事务性、安全性),遵循WS-*标准。该绑定用来与支持WS-*标准的系统进行互操作

5、MSMQ绑定(NetMsmqBinding)

对应于NetMsmqBinding类,它使用MSMQ进行传输,用于支持断开的队列调用

注:二进制编码格式使用TCP、IPC、MSMQ可以获取最佳性能,但是它是以牺牲互操作性为代价,因为它只支持

WCF到WCF的通信

不常用

6、WS双向绑定

对应于WSDualHttpBinding类,与WS绑定几乎一样,不过它支持双向通信。由于没有支持回调的行业标准,所以

不支持互操作性。在.NET服务总线以及NetTcpRelayBinding出现后,不再推荐使用

7、对等网络绑定

对应于NetPeerTcpBinding类,它使用对等网络来传输消息:使用对等网络与客户端可以订阅的相同网格,并且广

播消息。设计网络拓扑与网络计算

8、联邦WS绑定

对应于WSFederationHttpBinding类,主要是支持联邦安全

9、联邦WS 2007绑定

对应于WS2007FederationHttpBinding类,为WSFederationHttpBinding的更新版本

10、MSMQ集成绑定

对应于MsmqIntegrationBinding类,支持消息队列的绑定,MSMQ集成绑定可以将WCF消息转化为MSMQ消息,

它的设计目标就是为了与MSMQ客户端交互

11、WS 2007绑定

对应于WS2007HttpBinding类,继承与WSHttpBinding类,添加了对于事务、安全、可靠性规范的支持。

  现在知道了这些绑定的含义了,那么我们该如何去选择他们,下面通过一张图,来帮助我们选择合适的绑定。



  除此之外,性能也是我们要考虑的因素,通常情况 ,在满足系统使用性能前提下,选择一种最佳的绑定方式。一般的,使用IPC(即:netNamedPipeBinding)的绑定要优于使用TCP的绑定,而使用TCP(即:netTcpBinding)的绑定又优于使用HTTP的绑定。使用针对WCF优化的绑定要优于参与非WCF系统交互的绑定。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: