Channels ▼
RSS

Parallel

The Data Distribution Service for Real-Time Systems: Part 2


Mechanism and Techniques for Scoping Information

DDS provides two mechanism for scoping information, domains and partitions. A domain establishes a virtual network linking all the DDS applications that have joined it. No communication can ever happen across domains unless explicitly mediated by the user application.

Domains can be further organized into partitions, where each partition represent a logical grouping of topics. DDS Partitions are described by names such as SensorDataPartition, CommandPartition, LogDataPartition, etc., and have to be explicitly joined in order to publish data in it or subscribe to the topics it contains. The mechanism provided by DDS for joining a partition is very flexible as a publisher or a subscriber can join by providing its full name, such as SensorDataPartition or it can join all the partitions that match a regular expression, such as Sens* or *Data*. Supported regular expressions are the same as those accepted by the POSIX fnmatch function.

To recap, partitions provide a way for scoping information. You can use this scoping mechanism to organize topics into different coherent sets. You can equally use partitions to segregate topic instances. Instance segregation can be necessary for optimizing performance or minimizing footprint for those applications that are characterized by a very large number of instances, such as large telemetry systems, or financial trading applications, and for which one can come up with natural segregation.

If we take as an example our temperature monitoring and control system, then we can come up with a very natural partitioning of data that mimics the physical placement of the various temperature sensors. To do this, we can use a partition naming scheme made of the building number, the floor level and the room number in which the sensor is installed:


"building-<number>.floor-<level>.room-<number>"

Using this naming scheme, as in Figure 3, all the topics produced in room 51 on the 15th floor on building 1 would belong to the partition "building-1.floor-15.room-51". Likewise, the partition expression "building-1.floor-1.room-*" matches all the partitions for the rooms at the first floor in building.

Figure 3: Domain, partitions, and partition matching.

In a nutshell, you can use partitions to scope information, you can also use naming conversions such as those used for our temperature control applications to emulate hierarchical organization of data starting from flat partitions. Using the same technique you can slice and access data across different dimensions or views, depending on the need of your application.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 

Video