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.