Question

Is it possible the following scenario in Azure?

I need to get data from customer premises into windows azure, process it and save it in db or table storage. The customer premises are behind firewall/nat .. etc. What is the best way to build one single solution (that will run for all customers) and allow me to get the data of a specific customer.

Basically the worker role will get the data from customer 1, process it and save it; than from customer 2 and so on.

I thought using service buss relay, but is it possible to build a custom wcf service that will run for many users, exposed in the same endpoint and allow the worker role to request data to that endpoint but for a specific customer?

Was it helpful?

Solution

David, The Service Bus Relay is an ideal solution for this. You can write a WCF service that will run on each customer premise and connect to your single service in the cloud. Using Service Bus relay gives you a lot of advantages here: 1) For the client side service, you do NOT need to open any inbound ports in their NAT/Firewall since the Service Bus client will make an outbound connection. 2) You can run a single or multiple instances of your service in the cloud and listen to a single or multiple addresses/endpoints on Service Bus. That way you can both scale across the service or isolate per customer depending on your needs. 3) We support load-balancing where you can have several senders (from customer locations) connect to a single endpoint address, and here again for you cloud based listener service you can connect multiple instances to that same endpoint 4) Extensive WCF binding support is available so you can choose the appropriate channel for your needs

The following are additional resources to get started: Overview: http://www.windowsazure.com/en-us/develop/net/how-to-guides/service-bus-relay/ Sample: http://code.msdn.microsoft.com/windowsazure/Relayed-Messaging-Load-bd76a9f8

OTHER TIPS

I'm somewhat confused - if you need to GET data from your customers, can't they simply call your service? typically firewalls will allow outbound requests?

The Service Bus Relay would have come really handy if you wanted to send data to your customers in an async or semi-unsolicited fashion

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top