By Rajive Joshi and Gerardo Pardo-Castellote, November 20, 2006
The OMG Data Distribution Service (DDS) Standard specifies a mandatory API for data-centric publish-subscribe
Tuning the Quality of Service
The QoSPolicy settings available on the DataReader and DataWriter objects can be used to fine tune characteristics of the data flow between them. The default policies are tuned to the desired settings, and may be specified the time of DataWriter/DataReader creation or later via the get_qos()/set_qos() operations.
For example, periodic DataWriters can indicate the rate at which they can publish by offering guaranteed update deadlines via the "Deadline" QoSPolicy. By setting a deadline, a compliant DataWriter promises to send a new update at a minimum rate. DataReaders may then request data at that or any slower rate via the TimeBasedFilter QosPolicy. DataReaders can also specify a deadline for receiving the next sample update. If the deadline is missed, the the middleware can notify a listener installed by the application.
DataWriters may offer levels of reliability (via the Reliability QoSPolicy), parameterized by the number of past issues they can store to retry transmissions (via the History QoSPolicy). DataReaders may request differing levels of reliable delivery, ranging from fast-but-unreliable "best efforts" to highly reliable in-order delivery. This provides per-data-flow reliability control.
Figure 9: Under exclusive ownership a Topic channel can only be updated by a single DataWriter, the one with the highest ownership-strength S.
The middleware can automatically arbitrate between multiple DataWriters of the same Topic as specified by the Ownership and OwnershipStrength QosPolicies (Figure 9). Under exclusive ownership, a channel in a Topic can only be updated by a single DataWriter. DataReaders receive from the highest ownership-strength active DataWriter. This provides automatic fail-over; if a strong DataWriter fails, all DataReaders immediately receive updates from the backup (weaker) DataWriter. A DataWriter can also specify duration after which a sample should be considered stale via the "Lifespan" QosPolicy (Figure 10).
Figure 10: The Lifespan QoS Policy specifies the duration after which a received data sample should be considered stale, and discarded by the middleware.
DataWriters can specify how long previously published data is saved via the Durability QosPolicy. Late-joining DataReaders to durable DataWriters can then be automatically updated with past values by the DDS middleware.
The DDS specification defines many more QosPolicies. The behavior of each entity can be tuned on a per entity instance basis (Figure 4).
Currently we allow the following HTML tags in comments:
These tags can be used alone and don't need an ending tag.
<br> Defines a single line break
<hr> Defines a horizontal line
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.
Eventually, the vast majority of Web applications will run on a platform-as-a-service, or PaaS, vendor's infrastructure. To help sort out the options, we sent out a matrix with more than 70 decision points to a variety of PaaS providers.