Question

I'm thinking of distributed website, where a website (Multi-instance) is backed by an App Server (Multi-instance). I'm struggling with defining the communication mechanism between these. I see a lot of options like WCF, messaging service, or as many would suggest by simply eliminating the App Server altogether.

So what would you do for Global Level websites which expects millions of visitors.

Okay, so these are lots of questions, but they are somehow related. Does a service bus help in scalable distributed sites ... or I'm mixing the words over here.

Any guidance is highly appreciated

Was it helpful?

Solution

I think this depends on the direction and importance of the communication. It some cases you will have two way communication that will require typical request/response transports(HTTP, etc.). In some cases you'll be able to use one way communication. This would open you up to using a messaging transport, and supplying the ability to move some processing "offline". This could help you scale the site, but you may just move your problems somewhere else without some careful design.

Importance matters because if you have some information from the user you don't want to lose, say orders, then that may also push you towards something more durable like messaging. You don't necessarily need a Service Bus to use one way, durable communication, but the feature set provided may make things easier.

OTHER TIPS

Also if you want to do load distribution or routing and filtering of the messages then you can use Topics/Subscriptions in Service Bus: http://code.msdn.microsoft.com/windowsazure/Multi-Tier-application-6c033cad

There are several ways in which Service Bus can help with your scenario. As Adam mentions if you need durability and temporal decoupling then using a Service Bus durable Queue is a good option, some detailed guidance for that is here http://www.windowsazure.com/en-us/develop/net/tutorials/multi-tier-application/

On the other hand if you have the application server sitting behind a firewall and just need NAT/Firewall traversal with full duplex communication then you can use Service Bus Relay to achieve that: http://www.windowsazure.com/en-us/develop/net/tutorials/hybrid-solution/

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