Windows Azure May CTP: Service Bus Gets Interesting!
With the recently announced Azure AppFabric CTP the Service Bus may finally be moving in the right direction, and may being to offer a little competition to my-Channels Nirvana Cloud which I blogged about some time ago.
Hosting WCF NetTcp services in Azure with a Silverlight client is essentially a dead duck for want of a better word due to:
The only disadvantage of the NetTcp binding is that it Silverlight does not support TCP transport security, so all the traffic to the web service is unsecured and can be intercepted by malicious parties. That may or may not be acceptable for your application.
So to the Windows Azure AppFabric Service Bus May 2011 CTP. Queues and Topics look like they offer the expected functionality. Load balancing from a server side queue perspective looks sensible from the example of handling an RFQ:
As load increases, more worker processes can be added to read from the work queue. Each message is processed by only one of the worker processes. Furthermore, this pull-based load balancing allows for optimum utilization of the worker machines even if the worker machines differ in terms of processing power as they will pull messages at their own maximum rate. This pattern is often termed the competing consumer pattern.
Further more, if I can access all the new service bus functionality from the Windows Azure SDK for Java Developers things begin to get interesting. Primarily because I can now build Microsoft Silverlight 5 RIA’s leveraging the May CTP, coupled with backend services in either .NET or Java.
reliable message queuing and durable publish/subscribe messaging both over a simple and broadly interoperable REST-style HTTPS protocol with long-polling support and a throughput-optimized, connection-oriented, duplex TCP protocol
The May CTP offers a number of Silverlight Service Bus examples – found in WindowsAzureAppFabricSDKSamples_V2\ServiceBus\Silverlight. Of probably most interest is SilverlightChatSample. Stating the obviously, but read the readme file before trying to run the sample :) ApplicationCentext.cs requires serviceNamespace and issuerSecret to be set using the name and default key values from the Azure AppFabric Management Portal. Not sure if its my machine today, but running the chat sample using IE9 appeared to be rather slow in sending chat between two clients on the same machine via the Service Bus.