posted on Monday, February 20, 2012 - 03:56 pm
i am interested in discovery strategy of some DDS implementations. i know OpenDDS is based on centric node,DCPSInfoRepo and CORBA rmi, it is master/slave architecture. RTI DDS utilizes 2-phase discovery protocol.so now, i am curious about the discovery strategy of Opensplice DDS,can somebody tell me something about that? thx.
For OpenSplice questions, I'd like to refer to our OpenSplice forum at forums.opensplice.org, yet here's a short answer:
OpenSplice supports both the DDSI protocol (with the standardized SDP) as well as a 'native' real-time networking-service that is more scalable and deterministic than DDSI.
For our DDSI implementation, we also support static discovery by allowing individual peers to be pre-configured.
For our native Real-time Networking protocol, data is typically 'pushed' to preconfigured, what we call 'NetworkPartitions' (which are dynamically mapped to from logical DDS-partitions) that are characterized by a multicast-group, a set of unicast-addresses or a combination of all. As for this network-protocol we include the modifyable QoS attributes in the data, it becomes 'self-sufficient' in that no discovery is required at all (as the data can be correctly processed at every node where its arriving). This 'zero-discovery' model implies a huge scalability improvement over DDSI whereas the 'locator-advertising' DDSI model is easier to configure and more dynamic (the DDSI service for instnace will chose unicast or multicast depending on the number of addressed nodes).
Furthermore we currently have a set of 'network-scheduling' features in our native RT_networking service w.r.t. providing priority-bands where traffic is 'scheduled' to the right band based on the 'urgency' (latency-budget) and 'importance' (transportpriority) of each published sample.