PollingDuplex scaling in Windows Azure

One of the great sessions at this year’s PDC talked about a collaboration between Invensys and Microsoft’s DPE team to build a solution that can deliver energy pricing information to a variety of clients, using a duplex message pattern.

Effectively Invensys used a WCF service hosted in a Windows Azure web role to tunnel bi-directional HTTP traffic from the Windows Azure platform AppFabric service bus capability to Silverlight clients. Unfortunately this workaround is needed since the TCP-based relay binding that service bus offers is not supported in Silverlight at this point.

Once Invensys was using PollingDuplex in Azure, they needed to scale to a large number of clients, so they needed to enable scale out between multiple web role instances. This capability is not available out-of-the-box in Silverlight 3, so some hackery was required, as described in these blog posts:

The relevant content starts at around minute 38 in the video below.

Get Microsoft Silverlight

While getting PollingDuplex to scale in Azure in Silverlight 3 requires some manual steps, the team is considering supporting this scenario out-of-the-box in Silverlight 4. It is not available in Silverlight 4 Beta, but please use the comments to submit your feedback.

Yavor Georgiev
Program Manager