本文转自《WCF核心技术》
WCF(Windows Communication Foundation)是由微软开发的一系列支持数据通信的应用程序框架,整合了原有的windows通讯的 .net Remoting,WebService,Socket的机制,并融合有HTTP和FTP的相关技术,是Windows平台上开发分布式应用最佳的实践方式。
WCF服务是一组向客户端提供可用功能的端点,而端点则是网络上的一个能将消息送达的资源。客户端按照与服务之间的契约来格式化消息,并将消息发送给端点来访问端点的功能。
客户端要和服务进行通信,需要了解ABC:地址(address)、绑定(binding)与契约(contract)。
“A”是地址,意味着在哪里(where)。地址定义的是网络消息送达之处,即端点接 收消息之处,客户端必须将消息送到此处。对于HTTP来说,地址类似 http://myserver/myscrvice/:对于 TCP,地址类似 net.tcp://myserver:8080/myservice。
“B”是绑定,意味着怎么做(how)绑定定义的是与端点通信的信道(channel)。 信道是一个所有WCF应用程序传递消息的管道。信道包括一系列绑定元素(binding elements)。最底层的绑定元素是传输(transport),它负责在网络上传递消息。内置的传输包 括HTTP、TCP、命名管道(NamedPipes)、PeerChannel3和MSMQ。在此之上的绑定元素规 定安全(security)和事务(transactions〉。幸运的是,WCF中包含了系统提供的绑定,其信 道已配置安排就绪,使用绑定能节省考虑配置的时间,basicHttpBinding能与2007年前的大 多数Web服务轻松通信。它符合WS-IBP 1.1标准,具有广泛的互搡作性。wsHttpBinding实 现了通用的WS-*协议,具有安全、可靠和事务化的消息能力。
“C”是契约,意味着内容(what),它定义端点提供的功能或功能集合。契约定义 了端点对外发布的操作(operation)以及这些操作所要求的消息格式。契约的操作映射到 实现端点的类方法(class methods),包括其输入、输出参数的签名(the signature of parameters)。
WCF服务只有托管于一个运行中的系统进程后,服务端点才能响应消息。服务托管地可以是任何进程,如后台服务进程、WEB服务程序。
WCF服务只要包含一个名叫元数据交换的基础端点,就能具备可发现能力。