Azure Service Bus — 深入实践 Service Bus Relay(中继)

Azure Service Bus通过为服务提供了一套通用的命名规范简化了许多通信难题,在独立于网络拓扑和配置的节点之间提供直接或间接的通信。Service Bus允许WCF应用程序监听公共网络地址,即使其位于NAT或网络防火墙后方。该功能使得应用程序的通信可以无关于其网络结构。使用Service Bus便无需编写与维护复杂的逻辑和代码来跨越不同的网络通信。 如图,Azure Service Bus的实现原理: 主要过程为:1-2. 已有服务程序(如WCF)连接Azure上的Access Control(连接控制)服务,获得密钥。3. 已有服务程序使用密钥连接Service Bus Relay(中继)服务,将本地服务注册到Service Bus Relay(中继)上,使得本地服务具备基于互联网的公开访问端口。4-5. 客户端应用程序连接Azure上的Access Control(连接控制)服务,获得密钥。6. 客户端使用密钥连接注册在Service Bus Relay(中继)上的指定服务。7. Service Bus Relay(中继)将6的请求转发到具体的本地服务程序处理。8-9. 本地服务程序处理完请求后,返回结果经Service Bus Relay(中继)最后达到客户端应用。 因此,Service Bus Relay(中继)服务主要能带来以下利好:1. 处于不同网络(地域)的客户端能自如的建立实时通信(不需要独立公网IP,不需要特殊的网络安全配置等)2. 本地已有的WCF服务能够通过Service Bus Relay(中继)暴露到互联网上,供异地的客户端随时连接、调用。 本篇将深入实践Service Bus Relay(中继)服务,分为两个部分:1. 通过Service Bus Relay(中继)实现WCF服务的暴露和访问(包括本地WCF访问)2. 通过传统WCF配置方式来完成Service Bus Relay(中继)服务调用实现。 关于WCF服务,在传统开发中应用非常常见,其定义为:http://msdn.microsoft.com/zh-cn/library/vstudio/ms731082(v=vs.90).aspx  简而言之,WCF是.Net框架下符合SOAP标准的web service,其服务可以被不同开发语言实现的客户端调用。更多内容请参见:http://msdn.microsoft.com/zh-cn/library/vstudio/ms731190(v=vs.90).aspx   实践一、通过Service Bus Relay(中继)实现WCF服务的暴露和访问 步骤一:创建Service Bus NameSpace 登录到Azure管理主页: Windows…