Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does DDS have a Broker?

I've been trying to read up on the DDS standard, and OpenSplice in particular and I'm left wondering about the architecture.

Does DDS require that a broker be running, or any particular daemon to manage message exchange and coordination between different parties? If I just launch a single process publishing data for a topic, and launch another process subscribing for the same topic, is this sufficient? Is there any reason one might need another process running?

In the alternative, does it use UDP multicasting to have some sort of automated discovery between publishers and subscribers?

In general, I'm trying to contrast this to traditional queue architectures such as MQ Series or EMS.

I'd really appreciate it if anybody could help shed some light on this.

Thanks,

Faheem

like image 210
user910904 Avatar asked Dec 22 '22 04:12

user910904


2 Answers

DDS doesn't have a central broker, it uses a multicast based discovery protocol. OpenSplice has a model with a service for each node, but that is an implementation detail, if you check for example RTI DDS, they don't have that.

like image 140
Johnny Willemsen Avatar answered Feb 15 '23 03:02

Johnny Willemsen


DDS specification is designed so that implementations are not required to have any central daemons. But of course, it's a choice of implementation.

Implementations like RTI DDS, MilSOFT DDS and CoreDX DDS have decentralized architectures, which are peer-to-peer and does not need any daemons. (Discovery is done with multicast in LAN networks). This design has many advantages, like fault tolerance, low latency and good scalability. And also it makes really easy to use the middleware, since there's no need to administer daemons. You just run the publishers and subscribers and the rest is automatically handled by DDS.

OpenSplice DDS used to require daemon services running on each node, but they have added a new feature in v6 so that you don't need daemons anymore. (They still support the daemon option).

OpenDDS is also peer-to-peer, but it needs a central daemon running for discovery as far as I know.

like image 39
Ertan D. Avatar answered Feb 15 '23 05:02

Ertan D.