Hi All -
It is good to see the messaging discussion going again, and getting into important topics such as the message content, message semantics, message concepts, the messaging protocol, messaging patterns and use-cases, etc. However, the discussion is all over the place, mixing all these things, and discussing both high level issues and low level details at the same time. It is difficult to participate without merely responding to random points.
I suggest trying to organize the discussion into more-or-less separate topics so that we are not talking about everything at once. We already talked a bit about the following:
o Scope (simple inter-tool/app messaging).
o Overall architecture (separate interface from implementation, etc.)
o Basic messaging system ("hub") functionality.
o Connnection protocol.
For this next bit how about the following topics:
o Messaging model. Mike made a good start at this. What is a
message, what are the major types of messages at the system
level (notify, request, asynchrony, etc.), and what are the
standard attributes of a message? This defines the abstraction
within which message content is defined.
o Messaging protocol. John made a good start at this. What is
the interface/protocol used to send and receive messages?
How is security handled, if it is handled at all? This defines
how we map the messaging model into an actual messaging
protocol (defined independently of implementation of course).
o Message content (possibly including use-cases). Everyone
agrees that this is application-specific, can be high or low
level, that different schemes can be based on very different
approaches and concepts, and should be defined separately
from the basic messaging mechanism.
The messaging model is probably the most fundamental. Message content is probably the most critical to determine how applications can interact.
Unfortunately, even for a simple but general messaging mechanism, I think one needs to consider all these things. The main simplification is likely to come in the functionality defined by the final specification, particularly in terms of the messaging protocol and message content.