Publish-Subscribe with the Service Bus

Chapter 11 presents the capabilities and aspects of the Windows Azure AppFabric Service Bus. The service bus offers a distinct way to manage events for applications that rely on the cloud, using the NetEventRelayBinding. This section presents these options along with the helper classes of ServiceModelEx, which streamline the overall experience.

The Event Relay Binding

The design shown in Figure 11-9 has the appearance of a general-purpose publish-subscribe pattern. In reality, it falls short of that and it is intended to provide only a lightweight, ready-made, cloud-assisted event distribution solution. Missing is administrative support to add and remove subscribers. More importantly, there is no support for discrete, operation-level events. Events equate to service endpoints or, more specifically, to the contract. The service cannot subscribe to particular operations on the contract but not to others. This means the subscribing service itself still receives events it may not care about simply because it has a matching endpoint.

For example, consider the IMyEvents contract:

[ServiceContract]
interface IMyEvents
{
   [OperationContract(IsOneWay = true)]
   void OnEvent1();

   [OperationContract(IsOneWay = true)]
   void OnEvent2(int number);

   [OperationContract(IsOneWay = true)]
   void OnEvent3(int number,string text);
}

If the subscriber defines the endpoint as so:

<endpoint address = "sb://MyNamespace.servicebus.windows.net/IMyEvents" binding = "netEventRelayBinding" ...

Get Programming WCF Services, 3rd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.