Publish Subscribe in MSE

Topics: Usage Scenarios
Jan 9, 2009 at 11:00 AM

Could anyone explain
- How MSE fares in publish-subscribe services scenarios (any samples?)
- Also in have noticed mentioning of Integration of MSE with ESB Guidance, could anyone explain this?

Jan 15, 2009 at 12:37 AM
Typically the MSE is the facade over the services you have, helping you to manage and control what changes are made visible to consumers.  So the MSE could host a virtual endpoint for a pub service you have to help you control how changes to the pub service affect consumers that want to use the service to publish and/or receive events.  In addition, if appropriate for your scenario, subscribers could provide the pub service with an MSE hosted endpoint of their listening service thereby providing flexibility in the subscriber to change its logic and services while allowing the MSE to isolate them from the pub service's notificiation routines.

Alternatively, the MSE could publish messages to subscribers as a message is received/processed at an endpoint for any business service.  This isn't common and we don't have much guidance to publish on this.  It could be handled by attaching a WCF Message Inspector as policy to the endpoint or channel.  This inspector would need to decide based on the message who the subscribers are that are interested in being notified and how to notify them.  Also, the inspector would probably do its work in BeforeSendReply() if it was necessary to determine if the message was properly processed before publishing the events.

For the ESB Guidance integration, the MSE would typically be used to provide high fidelity service endpoints for consumers to use.  The MSE would perform the appropriate message translation and itinerary injection to submit the message to the generic ESB onramp services.  This provides a nice level of isolation so a consumer doesn't have to know anything about Itineraries and they also get well defined services to submit their messages to.  The MSE then helps manage changes when the services need to be versioned.  Likewise, the services that may be called by the ESB could be virtual services as well.