The question is, is the current implementation enough for application-specific events lke CustomerChanged?
One of the more powerful aspects of the topics-based notification in WS-Topics, that we need, is that Topics can be Imparative (the application emits a CustomerChanged Notification with the appropriate event arguments) or Declarative (the Notification Producer
looks at a list of topics that have XPath statements associated with them and assigns additional topics that the originating application is not aware of). In the case of CustomerChanged, the application would emit CustomerChanged, but the NotificationProducer
Implementation will look at that and also attach the CustomerMovedToCalifornia topic and/or the CustomerMovedToDifferentState topic based on the declarative topic definitions. For example.....
<wstop:TopicNamespace xmlns:wstop="..." xmlns:cst="uri:customer">
<wstop:Topic name="CustomerChanged" messageTypes="cst:CustomerChanged cst:NewCustomer cst:CustomerUpdated"/>
<wstop:MessagePattern dialect="....xpath namespace here.....">
/cst:CustomerChanged[cst:NewLocation/@state != cst:OldLocation/state]
So, how ready for Application-specific Events is the MSE?
The MSE does make use of Topic based pub-sub to notify the runtimes of changes in the repository. This is managed through the Catalog Service which has Subscribe/Unsubscribe operations. Notifications are sent out to all subscribers of the relevant topic (i.e.
For our next release (should be posted later today/this weekend), the notification includes the topic and information about what Runtime/Endpoint/Operation was impacted (the 6.2 release only includes the topic). Note however, that notifications are only sent
if the repository change actually has an impact to the runtime environment. For example, if an endpoint is updated with a new operation but no MSE Runtimes host the endpoint, no subscribers will be notified.
Does MSE support a publish-subscribe model?
I've seen, in the internal stuff, some classes that refer to subscriptions and notifications, but I'm not sure if that's a Message Sechange type of thing, or a sus-system that allows the different services to be notified when The Catalog is updated.
The reason I'm asking is that we recently created an implementation of the Oasis WS-Typics/WS-BaseNotification and WS-BrokeredNotifcation specs. Now we are looking at using the MSE for our bus, routing the Notification Mesages through MSE.
However, if we don't have to, and the functionality already exists, then there's no point in us doing the extra work.
So, now that I've rambled a bit....is there a sublish/Subscribe system in the MSE?