question? DDS vs. AMQP

412 views
Skip to first unread message

John Scott

unread,
Aug 19, 2009, 3:10:40 PM8/19/09
to mil...@googlegroups.com
quick question:

DDS as in http://www.opendds.org/
vs.
AMQP

which do you prefer and why for the military? pros/cons?

js

--
------------------------------------------------------------------
John Scott
< johnm...@mindspring.com >
<     jms...@gmail.com      >
ph 240.401.6574

kitplummer

unread,
Aug 19, 2009, 6:43:19 PM8/19/09
to Military Open Source Software
Don't forget XMPP.

Quickly, as there are others with much deeper knowledge of DDS than I,
AMQP is an "enterprise" message queuing protocol designed with volume/
throughput in mind. DDS, although an open standard, is tied to RTOS-
ish platforms (yes I do know there are many non-RT implementations).

My take, based on experience with unmanned systems is that once there
is a network infrastructure in play, QoS becomes very difficult. I
would imagine that AMQP/JMS/XMPP would all be much better (standards)
than DDS. I do know that on the DDG-1000 they've engineered a
demarcation between mission-critical apps (which use DDS) and non-
mission-critical which use JMS (even with RTJava).

XMPP is getting a lot of play even as a general purpose collaboration
messaging platform in the Army. XMPP's built-in extensibility
(redundant I know) makes it a nice play for mapping, aggregation, etc.

On Aug 19, 12:10 pm, John Scott <jms...@gmail.com> wrote:
> quick question:
>
> DDS as inhttp://www.opendds.org/
> vs.
> AMQP
>
> which do you prefer and why for the military? pros/cons?
>
> js
>
> --
> ------------------------------------------------------------------
> John Scott
> < johnmsc...@mindspring.com >
> <     jms...@gmail.com      >
> ph 240.401.6574

Jae Stutzman

unread,
Aug 19, 2009, 7:05:05 PM8/19/09
to mil...@googlegroups.com
John,

I presented on DDS at the working group. I would recommend
OpenSpliceDDS as an LGPLv3 OSS DDS, it is in full conformance of the
DDS spec and fully commercially supported by PrismTech.

Links:

http://www.opensplice.org

http://www.opensplice.com/section-item.asp?snum=3&sid=334

Jae

Jae Stutzman

unread,
Aug 19, 2009, 7:40:24 PM8/19/09
to mil...@googlegroups.com
Here is a paper comparing AMQP vs DDS:
http://www.omg.org/news/meetings/workshops/RT-2007/04-3_Pardo-Castellote-revised.pdf

DDS is not RTOS in most cases. It is used more often on regular Linux
or Windows workstations, because it is better than JMS, CORBA, DCOM,
.NET for most application domains. Remember DDS is a peer-to-peer
communication type. We have been doing distributed systems for over a
decade and have waddled into some crazy things. As we have been
replacing our legacy distributed systems, so far, DDS has been
completely awesome. In fact, the QoS is one of the awesome things
about it. Oh and that all of the data is relational, so that you can
do SQL-like queries on live data.

Don't forget that DDS is a mandated standard for publish-subscribe
messaging by the U.S. Department of Defense (DoD) Information
Technology Standards Registry (DISR):
http://disronline.disa.mil/VJTA/docs/DISRBaseline0410.pdf

Cheers,

Jae

Kit Plummer

unread,
Aug 19, 2009, 8:03:12 PM8/19/09
to mil...@googlegroups.com
Great info Jae! Thanks for the OMG link.

I didn't realize there was a mandate, who would've thunk, DISA
mandating something like one standard over another. (BTW, the DISR
link didn't work for me.)

So, my ignorance is limited exposure to a MITRE developed Java-based
DDS implementation. It uses HTTPS as the transport, which is quite
clever (as so to be pseudo-SOA). I guess I find it really difficult
to call DDS un-brokered knowing that there is still and advertisement,
subscription, and publication step with a server (somewhere). But, I
suppose there's deep logic there as to how the one-to-many pub-sub
model works in a P2P way. I definitely need more education here, but
that's just another J-curve.

Curious why the Enterprise doesn't to DDS. Perhaps it is the Java
thing. The web-world seems quite enamored with RabbitMQ - and so it
is squeeking into the Cloud space too. I've got a task to look into
RabbitMQ, but am wondering if it might be time to get a trade study on
DDS/JMS/AMQP going. Jae, you know of anything anywhere that might
compare performance? Anyone?

Kit

Jae Stutzman

unread,
Aug 19, 2009, 8:36:36 PM8/19/09
to mil...@googlegroups.com
I believe the link is behind a CAC card :( I have not actually seen
the mandate except a small screenshot used in a presentation i saw
once.

As for unbrokered, a true DDS system is. The wire communication uses
broadcast/multicast udp so there isn't any need for a "server"
anywhere. DDS supports a decoupled design where the only thing
publishers and subscribers agree upon is the data, which is the data
structure and the qos. (btw: i uploaded my slides to the files of the
group, it gives a pretty good read on dds). There isn't a notion of
RPC with DDS. So DDS is service oriented in that many autonomous
services can execute anywhere in the DDS domain publishing and
consuming whatever they need to...but it isn't SOA in the sense of a
client needing to know about an interface on some server...it is data
oriented :)

When you need to bust out of a firewall or gateway to some other
medium, XMPP makes an excellent transport. I'm personally done with
language/platform specific protocols...ie JMS. .NET remoting, etc.

DDS solves a different problem than a typical webservice. The current
draft of the OMG spec includes some kind of webservice gateway into
DDS, so we shouldn't have to roll our own much longer.

As a side note, I (plus one) personally contributed the c# wrapper for
OpenSpliceDDS (ospl), we did it so that it will work under Mono on
Linux and Windows. This means that ospl has language bindings for c,
c++, java, c# on Linux, Windows, Mac, vxWorks. And I'd personally like
to see a Python binding soon, any takers?

I know we often hear about the next thing...and then reality sets in.
But there are some real world applications using DDS right now (check
my presentation). As far as benchmarking, there is an opensource tool
called TouchStone avail on sourceforge. Incidentally, it is provided
by the same folks that bring us OpenSplice!, but it allows for some
good metric gather and is designed to allow comparisons between
multiple DDS implementations.

And checkout the OpenSplice Tube (youtube channel), it provides a lot
of DDS information.

Also more DDS community here: http://dds-forum.com

Jae
Reply all
Reply to author
Forward
0 new messages