Apps Messaging - Semantics of a Message
Mark Taylor
m.b.taylor at bristol.ac.uk
Wed Apr 11 02:50:42 PDT 2007
Doug,
On Tue, 10 Apr 2007, Doug Tody wrote:
> On Tue, 10 Apr 2007, Mark Taylor wrote:
>
>> To respond to Doug's comment about wanting various alternative argument
>> transport formats, this could be only one (the default?) of several
>> possible argument transport formats. For instance instead of
>> passing individual arguments in this way you could have a single
>> _argblock attribute which passes a packed data structure containing
>> the information.
>
> I just want to amplify this point. It appears that everyone agrees
> that it is a good thing to separate the messaging mechanism from
> the message content; the messaging infrastructure shouldn't know or
> care what is in the message, it just delivers it. We can go one step
> further and specify that the infrastructure just delivers the message
> payload as an opaque blob of some sort, and it is up to another layer
> of software to compose or interpret the message. All that is required
> is to specify the message content model, and version number.
>
> While this may sound complicated, in fact it can simplify messaging
> quite a bit, as it becomes possible to implement the basic messaging
> system without having to specify the message content (many existing
> messaging systems work this way). Furthermore, since the message
What it simplifies is the messaging infrastructure (writing a hub).
It pushes additional complexity to the client applications, which
need separate layers for (a) receiving the message and (b) parsing
its content. They may need more than one of each if they wish to
be able to operate in the presence of a variety of the defined
message protocols, or a variety of the defined content models,
that the flexibility allows.
For well-supported languages such as Java where someone will probably
write a toolkit that may not be such a big deal. However it makes
the cost of take up considerably higher if you're working in an
environment which is less well supported (Fortran, Python, Tcl, ...).
In PLASTIC, reducing this burden on application authors (at the expense
of effort made by hub authors if necessary) was one of our explicit
design objectives; I think our perception has been that this low
burden has paid dividends in widespread adoption.
I've made the point before that there are costs as well as benefits
in designing a highly generic and flexible system; I'm not necessarily
saying that we shouldn't do it, but I do think we need to bear this
in mind.
Mark
--
Mark Taylor Astronomical Programmer Physics, Bristol University, UK
m.b.taylor at bris.ac.uk +44-117-928-8776 http://www.star.bris.ac.uk/~mbt/
More information about the apps
mailing list