Applications Messaging Standard
Alasdair Allan
aa at astro.ex.ac.uk
Thu Feb 8 09:04:43 PST 2007
Doug Tody wrote:
> In any case, the real issue here is not what the current PLASTIC
> implementation does, but what we want for an inter-tool messaging
> standard developed via the IVOA framework.
Absolutely, however I think the first thing we should do is take a
hard look at PLASTIC. Its proved that it can fill the inter-
application messaging niche extremely successfully, and has been
widely adopted, usually from the ground up, rather than imposed from
the top down. That says to me that its easy to develop against and
that it does what it sets out to do well enough that people are
willing to overlook its flaws (and I'd be the first to say there are
several, sorry John!)...
> I suggest that this should:
>
> o Target simple inter-tool messaging (don't try to be a full
> messaging infrastructure; that is a separate problem).
Yup.
> o Separate protocol from implementation. That is, we should be
> able to implement a message bus/hub in different languages such
> as Java or C, or layer the protocol on top of an existing robust
> messaging infrastructure such as D-Bus, MPI, PVM, ActiveMQ,
> Ice, CORBA, etc. It is fine to have a simple hub (or two)
> developed as part of the standard, which doesn't queue messages,
> guarantee delivery, and so forth.
Yes, but. Surely the entirely point is that one application that
supports this messaging protocol can talk (possibly via some sort of
messaging hub, although we shouldn't entirely rule out peer-to-peer
at this stage), if we're required to support all of these that isn't
possible. What's the point of having a standard that doesn't let one
application that supports it talk to another application that
supports it?
> o Separate protocol from message content. The message content can
> be defined/standardized separately. It should be possible to
> easily extend the protocol by adding new message content.
Yup.
> o Be multi-language and not tied to any one messaging technology
> (such as Java RMI).
Yup, I see this as a main requirement. Whatever we do has to work in
Java, Perl, Python, Ruby, C++ and preferably C and Fortran. I'd like
whatever we come up with to be simple enough so that your "astronomer
in the street" can add some code to their monolithic Fortran 77
simulation code to talk to our cutting edge VO-aware display tools.
That'd be nice, but that means things have to be really simple,
astronomers may be good algorithms people, but historically they
haven't dealt with messaging all that much or socket programming or
any of the other things we tend to take for granted when we call
something "easily implement-able".
> o Be multi-protocol, with the same message content expressable
> in at least two different wire protocols (XML/RPC, JSON,
> OpenWIRE, STOMP, etc.).
Yes, but... err, why?
> A concern is that, if in the future we try to use this inter-tool
> messaging standard in distributed data analysis system which already
> has a robust general messaging infrastructure, it should be possible
> to layer the inter-tool protocol on top of this infrastructure,
> without having to support two similar but different implementations.
Yes, but... what's the point? So people can claim they support the
IVOA's standard? In itself that's pointless, the existing distributed
data analysis system you're talking about has to be able to talk to a
random "off the street" 3rd party application from some other
developer on the other side of the planet that you've never heard of
before.... or the entire exercise is totally futile. The reason to
have this is so that one random 3rd party application can talk to
some other random 3rd party application without any prior knowledge
of it. We aren't aiming at replacing existing standards, or existing
messaging layers here.
Al.
More information about the apps
mailing list