5

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?

asked Jan 24, 2013 at 18:27

2 Answers 2

2

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

answered Jan 25, 2013 at 17:43
Sign up to request clarification or add additional context in comments.

3 Comments

However I have one question. In the sample you mentioned, how I can do it so that I will not use in the client the issuername: OWNER and it's secret key? I mean for security reasons, is it possible to create a custom issuername called: "MYCUSTOMER" and it's own key and this custom issuer name will not have full control like owner has .. ? Do you know what I mean?
I know this question is 2 years old but I'm currently developing a very similar solution. In regard to creating additional identities for the Service Bus Authentication, have a look at SBAzTool from the Azure team, which is a command line interface and DLL that allows you to generate Service Bus identities and permissions (i.e. listen, send, receive) and keys programmatically. Azure SBaZ Tool Just putting this here in case anyone else comes across this question, as I did!
using Service Bus relay is fine, but for this either you need to have a wcf wrapper around your web service in on-prem or you need to make some config changes. Is it possible to call a on-prem web services from the azure web api without changing anything on the on-prem web services.
2

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

answered Jan 25, 2013 at 12:30

Comments

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.