Applications Messaging Standard
Alasdair Allan
aa at astro.ex.ac.uk
Thu Feb 8 02:13:45 PST 2007
Doug Tody wrote:
> Noel Winstanley wrote:
>> Tony Linde wrote:
>>> Quick(ish) question re PLASTIC: is the plastic hub something like
>>> a message broker?
>>
>> Its a little like a message broker, but specialized and simplified
>> to the task of inter-application messaging - so not a general
>> messaging solution.
>>
>> Unlike a messaging system like MSeries or ActiveMQ, Plastic hub
>> implementations don't queue messages, and makes no guarantees
>> about delivery of messages (whilst MSeries guarantee once and once
>> only for every message), or, I believe, ordering of messages.
>
> Depending upon what one is doing, these semantics can be quite
> important to the correct functioning of an application.
Sure, but I don't believe simple inter-application messaging at the
desktop level really needs guaranteed delivery, or quality of service
guarantees or messages queues , or any of that other complicated stuff.
The secret to building an excellent specification is to get just
complicated enough to implement the features needed to accomplish the
task, and then stop. Adding extra features at that point doesn't make
anyone's life easier except the people writing the specification who
can't agree which features aren't necessary.
> Is PLASTIC a messaging protocol or a messaging infrastructure?
Both, PLASTIC applications pass a message either using Java-RMI or
XML-RPC to the PLASTIC Hub which passes the message out to
applications that have registered that they deal with that message
either using Java-RMI or XML-RPC depending on which the application
supports. We have discussed adding further (perhaps optionally
supported) transport protocols to the standard, and in fact have
discussed removing Java-RMI as a mandatory protocol (just leaving XML-
RPC since that's cross-platform and cross-language and relatively
easy for most developers to target).
> That is, if I already have a robust messaging infrastructure, can I
> layer a PLASTIC adapter on top of this and achieve the same level
> of interoperability between applications as with the simple PLASTIC
> hub? PLASTIC apps would still "speak" PLASTIC, but the messaging
> infrastructure could be anything.
Sort of...
I sort of do this inside eSTAR. I have a software as services
architecture, and some PLASTIC messages are propagated between "non-
customer facing" back end daemons until they reach a piece of
software that actually speaks PLASTIC (via XML-RPC since I'm a Perl
guy) at which point they're pushed to the outside world via the
PLASTIC Hub. In some instance this means the message will them be
bridged again off that machine via the PLASTIC Gateways I was
discussing in my initial message.
However if you mean "Can I send a PLASTIC message via random protocol
X" then at least at the moment the answer is "No" because it's not
PLASTIC if the message doesn't go via the Hub.
> Messaging is fundamental to all distributed applications (no one is
> saying anything here about transactions, that is a separate matter).
> I think the main distinction is that PLASTIC is intentionally limited
> in scope, being intended only for simple inter-tool messaging.
Totally agree...
> As soon as it grows and you get real distributed applications, as
> opposed to independent tools sending an occasional "load this" type
> message, then one is back in the realm of the more complex
> messaging systems.
I'd tend to agree, internally I use XML via SOAP web services in the
negotiation layer between my pieces of software. However I've found
PLASTIC to be just the right level of complexity for my code to talk
to other people's code.
I'd really hate to loose the simplicity that PLASTIC offers by over-
burdening it with complex message brokering tasks. I don't view
either PLASTIC, or the IVOA application messaging standard, as
needing the features of messaging systems like MSeries or ActiveMQ.
Al.
More information about the apps
mailing list