WCF面向服务应用程序系列之八:绑定-基本知识
2010-10-23 10:48
363 查看
服务之间的通信方式是多种多样的,有多种可能的通信模式。包括:同步的请求与应答(Request/Reply)消息,或者异步的即发即弃(Fire-and-Forget)消息等等,在通信时传输的消息编码格式也有许多种,为了简化之些操作,使之易于管理,WCF引入了绑定技术将这些通信特征组合在一起。一个绑定可以是封装了诸如传输协议、消息编码、通信模式、可靠性、安全性、事务传播以及互操作性等相关选项的集合,并使之保持一致。
传输消息的传输协议包括:HTTP(或者HTTPS)、TCP、P2P2(对等网)、IPC(命名管道 Named Pipes)以及MSMQ,除此还提供自定义协议的支持,如:UDP或者SMTP等。
消息编码格式包括:保证互操作性的纯文本编码格式、优化性能的二进制编码格式、提供有效负载的MTOM(消息传输优化机制,Message Transport Optimization Mechanism)编码格式,除此还提供自定义消息编码格式。
WCF定义了9种标准绑定:
基本绑定(Basic Binding):由BasicHttpBinding类提供,基本绑定能够将WCF服务公开为旧的ASMX Web服务,使得旧的客户端能够与新的服务协作。
TCP绑定:由NetTcpBinding类提供,TCP绑定使用TCP协议实现在Intranet中跨机器的通信。TCP绑定支持多种特性,包括可靠性、事务性、安全性以及WCF之间通信的优化。前提是,它要求客户端与服务都必须使用WCF。
对等网绑定:由NetPeerTcpBinding类提供,它使用对等网进行传输。
IPC绑定:由NetNamedPipeBinding类提供,它使用命名管道为同一机器的通信进行传输。这种绑定方式最安全,因为它不能接收来自机器外部的调用。IPC支持的特性与TCP绑定相似。
Web服务(WS)绑定:由WSHttpBinding类提供,WS绑定用不用HTTP或HTTPS进行传输,为基于Internet的通信提供了诸如可靠性、事务性与安全性等特性。
WS联邦绑定(Federated WS Binding):由WSFederationHttpBinding类提供,提供对联邦安全(Federated Security)的支持。
WS双向绑定(Duplex WS Binding):由WSDualHttpBinding类提供,WS双向绑定与WS绑定相似,但它还支持从服务到客户端的双向通信。
MSMQ绑定:由NetMsmqBinding类提供,它使用MSMQ进行传输,用以提供对断开的队列调用的支持。
MSMQ集成绑定(MSMQ Integration Binding):由MsmqIntegrationBinding类提供,它实现了WCF消息民MSMQ消息之间的转换,用以支持与旧的MSMQ客户端之间的互操作。
对于以上绑定可以进行一下分类:
Web Service绑定:BasicHttpBinding、WSHttpBinding、WSDualHttpBinding、WSFederationHttpBinding;
跨进程/主机绑定:NetNamedPipeBinding、NetTcpBinding、NetPeerTcpBinding;
消息绑定:NetMsmqBinding、MsmqIntegrationBinding。
每种标准绑定使用的传输协议与编码格式都不相同,如下所示:
文本编码格式允许WCF服务(或客户端)能够通过HTTP协议与其他服务(或客户端)通信,而不用考虑它使用的技术。
二进制编码格式通过TCP或IPC协议通信,它所获得的最佳性能是以牺牲互操作性为代价的,它只支持WCF到WCF的通信。
WCF提供了多种绑定方式供我们选择,然而如何选择绑定,我们还是要在遵循绑定特性的基础上进行选择,下面以一副图来说明如何选择WCF的绑定方式:
本章主要介绍WCF绑定的基础知识(本章知识主要参考《WCF服务编程》),下一章我们通过一些DEMO对绑定进行介绍。
传输消息的传输协议包括:HTTP(或者HTTPS)、TCP、P2P2(对等网)、IPC(命名管道 Named Pipes)以及MSMQ,除此还提供自定义协议的支持,如:UDP或者SMTP等。
消息编码格式包括:保证互操作性的纯文本编码格式、优化性能的二进制编码格式、提供有效负载的MTOM(消息传输优化机制,Message Transport Optimization Mechanism)编码格式,除此还提供自定义消息编码格式。
WCF定义了9种标准绑定:
基本绑定(Basic Binding):由BasicHttpBinding类提供,基本绑定能够将WCF服务公开为旧的ASMX Web服务,使得旧的客户端能够与新的服务协作。
TCP绑定:由NetTcpBinding类提供,TCP绑定使用TCP协议实现在Intranet中跨机器的通信。TCP绑定支持多种特性,包括可靠性、事务性、安全性以及WCF之间通信的优化。前提是,它要求客户端与服务都必须使用WCF。
对等网绑定:由NetPeerTcpBinding类提供,它使用对等网进行传输。
IPC绑定:由NetNamedPipeBinding类提供,它使用命名管道为同一机器的通信进行传输。这种绑定方式最安全,因为它不能接收来自机器外部的调用。IPC支持的特性与TCP绑定相似。
Web服务(WS)绑定:由WSHttpBinding类提供,WS绑定用不用HTTP或HTTPS进行传输,为基于Internet的通信提供了诸如可靠性、事务性与安全性等特性。
WS联邦绑定(Federated WS Binding):由WSFederationHttpBinding类提供,提供对联邦安全(Federated Security)的支持。
WS双向绑定(Duplex WS Binding):由WSDualHttpBinding类提供,WS双向绑定与WS绑定相似,但它还支持从服务到客户端的双向通信。
MSMQ绑定:由NetMsmqBinding类提供,它使用MSMQ进行传输,用以提供对断开的队列调用的支持。
MSMQ集成绑定(MSMQ Integration Binding):由MsmqIntegrationBinding类提供,它实现了WCF消息民MSMQ消息之间的转换,用以支持与旧的MSMQ客户端之间的互操作。
对于以上绑定可以进行一下分类:
Web Service绑定:BasicHttpBinding、WSHttpBinding、WSDualHttpBinding、WSFederationHttpBinding;
跨进程/主机绑定:NetNamedPipeBinding、NetTcpBinding、NetPeerTcpBinding;
消息绑定:NetMsmqBinding、MsmqIntegrationBinding。
每种标准绑定使用的传输协议与编码格式都不相同,如下所示:
名字 | 传输协议 | 编码格式 | 互操作性 |
BasicHttpBinding | HTTP/HTTPS | Text,MTOM | YES |
NetTcpBnding | TCP | Binary | NO |
NetPeerTcpBinding | P2P | Binary | NO |
NetNamedPipeBinding | IPC | Binary | NO |
WSHttpBinding | HTTP/HTTPS | Text,MTOM | YES |
WSFederationHttpBinding | HTTP/HTTPS | Text,MTOM | YES |
WSDualHttpBinding | HTTP | Text,MTOM | YES |
NetMsmqBinding | MSMQ | Binary | NO |
MsmqIntegrationBinding | MSMQ | Binary | YES |
二进制编码格式通过TCP或IPC协议通信,它所获得的最佳性能是以牺牲互操作性为代价的,它只支持WCF到WCF的通信。
WCF提供了多种绑定方式供我们选择,然而如何选择绑定,我们还是要在遵循绑定特性的基础上进行选择,下面以一副图来说明如何选择WCF的绑定方式:
本章主要介绍WCF绑定的基础知识(本章知识主要参考《WCF服务编程》),下一章我们通过一些DEMO对绑定进行介绍。
作者:心海巨澜 出处:http://xinhaijulan.cnblogs.com 版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
相关文章推荐
- WCF面向服务应用程序系列之十:绑定-标准绑定(HTTP/TCP)
- WCF面向服务应用程序系列之九:绑定-自定义绑定(CustomBinding)
- WCF面向服务应用程序系列之十一:绑定-双向绑定(WSDualHttpBinding)
- WCF面向服务应用程序系列之十二:托管(Hosting)-基础知识
- [导入]构建WCF面向服务的应用程序系列课程(5):绑定(Bindings).zip(11.77 MB)
- [导入]构建WCF面向服务的应用程序系列课程(4):异常与错误处理.zip(13.70 MB)
- WCF面向服务应用程序系列之十四:托管(Hosting)-自托管(Self-Hosting)
- WCF面向服务应用程序系列之十五:托管(Hosting)-WAS托管
- [导入]构建WCF面向服务的应用程序系列课程(3):契约版本处理.zip(15.79 MB)
- [导入]构建WCF面向服务的应用程序系列课程(2):WCF契约设计.zip(14.27 MB)
- WCF面向服务应用程序系列之十八:消息交换模式(MEP)-回调操作
- WCF面向服务应用程序系列之四:契约设计(MessageContract)
- WCF面向服务应用程序系列之六:契约版本管理—IExtensibleDataObject
- WCF面向服务应用程序系列之七:契约版本管理—服务契约的继承
- [导入]构建WCF面向服务的应用程序系列课程(15):扩展性.zip(16.75 MB)
- WCF面向服务应用程序系列之二:契约设计(ExplicitContract)
- [导入]构建WCF面向服务的应用程序系列课程(14):消息队列.zip(17.56 MB)
- 【学习】构建WCF面向服务的应用程序系列课程笔记:(1) WCF概要
- [导入]构建WCF面向服务的应用程序系列课程(13):事务.zip(19.33 MB)
- 构建WCF面向服务的应用程序系列课程(视频课程讲师:付仲恺)