--- In [email protected], Michael Poulin <m3pou...@...> wrote:
[great stuff from Michael snipped] > 2) if event is delivered to the point of publishing/subscription > provided by an intermediary, it may be a bit different story. If > this intermediary is of MOM type, we may adopt the concept > of 'unawareness' between publisher and subscriber. I think there is still awareness, just at a more loosely-coupled level. The subscriber has agreed to accept events via a particular interface, it just doesn't know (nor care) who is the specific publisher. > I mean, it is a legitimate cases where a subscriber does not know > provider at all and does not have any agreements with it. No direct agreements, maybe, but there is agreement. They are each fulfilling a role defined somewhere. > The argument that publisher and subscriber have to agree, at least, > on the message semantics (I mean the message that represents event > in the distribution) is not mandatory because this agreement may be > implicit, based on common knowledge. They are agreeing to something, just not necessarily with each other directly. > For example, a message may carry an XML document with a tag <social- > security-number> or <national-insurance-number> (in the UK); the > value is the actual number and both publisher and subscriber know > what this means. > The difference here is in that the service consumer (subscriber) > now deals with the intermediary. The consumer may not care how the > messages are appear in the intermediary, i.e. where from if they > are authentically signed. That is, the consumer has to set an > agreement with the intermediary instead of publisher. > If a service/publisher does not want to delegate its relationships > with the consumers to the intermediary, the service/publisher has > to encapsulate all effects caused by the intermediary (additional > delays, repeatable sending, etc.) into the Service Description and > make them available in the Service Contract. IMO, that's exactly the right thing to do. Treat the intermediary as if it were part of the provider. For all the consumers know, they are interacting directly with the provider. > That is, the intermediary has to become transparent or invisible to > the consumer/subscriber. Exactly right. I think that simplifies things in many ways. The interface to the provide may happen to use an intermediary but the consumer neither knows nor cares. As far as it is concerned, it is interacting with the provider and the service contract reflects that interaction. -Rob
