<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Blogs from RTI &#187; Rick Warren</title>
	<atom:link href="http://blogs.rti.com/author/rtirick/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.rti.com</link>
	<description>The Real-Time Middleware Experts</description>
	<lastBuildDate>Thu, 05 Jan 2012 07:49:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blogs.rti.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Blogs from RTI &#187; Rick Warren</title>
		<link>http://blogs.rti.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blogs.rti.com/osd.xml" title="Blogs from RTI" />
	<atom:link rel='hub' href='http://blogs.rti.com/?pushpress=hub'/>
		<item>
		<title>New Video: DDS in a Nutshell</title>
		<link>http://blogs.rti.com/2011/02/23/new-video-dds-in-a-nutshell/</link>
		<comments>http://blogs.rti.com/2011/02/23/new-video-dds-in-a-nutshell/#comments</comments>
		<pubDate>Thu, 24 Feb 2011 03:28:35 +0000</pubDate>
		<dc:creator>Rick Warren</dc:creator>
				<category><![CDATA[Best practices]]></category>
		<category><![CDATA[Standards]]></category>

		<guid isPermaLink="false">http://blogs.rti.com/?p=328</guid>
		<description><![CDATA[A data-centric architecture helps you build and integrate systems efficiently and effectively &#8212; I&#8217;ve written about that before. And it&#8217;s all around you &#8212; even microblogging services like Facebook and Twitter depend upon it. Standards-based DDS technology is a great way to implement this approach: it&#8217;s fast, dynamic, and fault-tolerant. The cost savings can be [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogs.rti.com&amp;blog=7350090&amp;post=328&amp;subd=rtidds&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A data-centric architecture helps you <a href="http://blogs.rti.com/2010/12/17/the-data-centric-modus-operandi-part-2/">build and integrate systems efficiently and effectively</a> &#8212; I&#8217;ve written about that before. And it&#8217;s all around you &#8212; even microblogging services like Facebook and Twitter depend upon it.</p>
<p><a href="http://www.rti.com/products/dds/index.html">Standards-based DDS technology</a> is a great way to implement this approach: it&#8217;s fast, dynamic, and fault-tolerant. The cost savings can be dramatic: one large distributed asset-tracking program replaced their proprietary middleware with DDS and realized a 90%+ savings while increasing capacity, performance, and robustness.</p>
<p>Check out the video.</p>
<p><span style="text-align:center; display: block;"><a href="http://blogs.rti.com/2011/02/23/new-video-dds-in-a-nutshell/"><img src="http://img.youtube.com/vi/u-saogMmKOo/2.jpg" alt="" /></a></span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rtidds.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rtidds.wordpress.com/328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rtidds.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rtidds.wordpress.com/328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rtidds.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rtidds.wordpress.com/328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rtidds.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rtidds.wordpress.com/328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rtidds.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rtidds.wordpress.com/328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rtidds.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rtidds.wordpress.com/328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rtidds.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rtidds.wordpress.com/328/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogs.rti.com&amp;blog=7350090&amp;post=328&amp;subd=rtidds&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogs.rti.com/2011/02/23/new-video-dds-in-a-nutshell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/90e74a4e6594c1b054e07d7a6c6193c3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Rick</media:title>
		</media:content>

		<media:content url="http://img.youtube.com/vi/u-saogMmKOo/2.jpg" medium="image" />
	</item>
		<item>
		<title>The Data-Centric Modus Operandi: Part 2</title>
		<link>http://blogs.rti.com/2010/12/17/the-data-centric-modus-operandi-part-2/</link>
		<comments>http://blogs.rti.com/2010/12/17/the-data-centric-modus-operandi-part-2/#comments</comments>
		<pubDate>Fri, 17 Dec 2010 22:06:04 +0000</pubDate>
		<dc:creator>Rick Warren</dc:creator>
				<category><![CDATA[Best practices]]></category>

		<guid isPermaLink="false">http://blogs.rti.com/?p=324</guid>
		<description><![CDATA[An earlier post of mine, The Data-Centric Modus Operandi, has garnered a couple of good comments recently. I was in the process of responding to one of them when it occurred to me that (1) a response longer than the WordPress comment field probably didn&#8217;t belong there and that (2) more readers might have the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogs.rti.com&amp;blog=7350090&amp;post=324&amp;subd=rtidds&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>An earlier post of mine, <em><a href="http://blogs.rti.com/2010/08/16/the-data-centric-modus-operandi/">The Data-Centric Modus Operandi</a></em>, has garnered a couple of good comments recently. I was in the process of responding to one of them when it occurred to me that (1) a response longer than the WordPress comment field probably didn&#8217;t belong there and that (2) more readers might have the same question, and an answer in the comments wouldn&#8217;t be very visible. So here it is, my feature-length response:</p>
<p><a href="http://www.cyclops-software.nl/">Frans Ott</a> says:</p>
<blockquote><p>Good piece of work Rick! Does this mean that practising the DDS-perspective, I will respect the business domain model more as it is? And that, as a consequence, less domain-burden will be drawn into the middleware?</p></blockquote>
<p>This question is an important and perceptive one. My answer has a couple of parts.</p>
<p>First, DDS is not a panacea. Adopting DDS but using it in the same way you used your old messaging middleware can bring you incremental benefits in terms of <a href="http://www.rti.com/resources/product-tour/performance-scalability.html">performance, scalability</a>, and <a href="http://www.rti.com/resources/product-tour/system-architecture.html">flexibility</a>. But it cannot by itself provide you transformative benefits in terms of time-to-market and long-term maintainability.</p>
<p>Those larger benefits accrue as you adopt data-centric <em>architecture</em> &#8212; that is, as you begin to model your business domain and tie your distributed applications to that model instead of to each other. You can start to do this with any middleware, not just with DDS, and doing so will allow you to more smoothly integrate capabilities over time without perturbing existing behavior. But when you use a technology like DDS, which unlike other middlewares provides functionality to directly support this type of architecture, you get an additional benefit: the middleware can start to automate things that you used to have to do yourself.</p>
<p>There&#8217;s my second point: when you tell your infrastructure what you&#8217;re trying to do, it can help you do it better. I used the word &#8220;model,&#8221; which might sound frightening and esoteric. But everyone does this anyway! They just don&#8217;t call it that. When people design a system in a message-centric way, they write long documents (<em>aka</em> &#8220;models&#8221;) describing who has to send messages to whom, in what format, at what times. Then they email these documents to each other and implement the various components based on what the documents say. In the process, they write a lot of code to encode and decode data, validate it, monitor and respond to the system&#8217;s status, manage application state, and so on. And once they&#8217;ve done all of this work, they plug their components in and find out whether the documents had any ambiguities in them and whether everyone has correctly implemented all of those infrastructure pieces I enumerated.</p>
<p>The truth is, from the point of view of the real business logic, &#8220;the middleware&#8221; isn&#8217;t just a messaging or data-distribution component purchased off the shelf. It also includes all of the stuff your in-house infrastructure developers had to build on top of that to make the applications work right. A key innovation in DDS is the answer to this question: what if we took a lot of the <em>ad hoc</em> content out of all of those word-processing design documents and replaced it with a formal structure that the off-the-shelf middleware could understand? The answer is that the <a href="http://www.rti.com/resources/product-tour/recording-analysis.html">off-the-shelf component can start to do a lot</a> of what the in-house &#8220;middleware-above-the-middleware&#8221; used to have to do &#8212; based on configuration rather than on custom code. The result is a more portable, interoperable system of higher quality and performance that was developed and integrated in less time. In other words: faster, cheaper, better.</p>
<p>You can use DDS as just a fast, interoperable way to send messages from here to there. Lots of people do. But DDS can do more than that if you&#8217;re willing to design differently. DDS does for data in motion something like what an RDBMS does for data at rest. It can&#8217;t <em>make</em> you create a good data design. But if you teach it what your design is, it can help you enforce that design, and it can reduce the amount of code you have to write in between your &#8220;middle&#8221;ware and your business logic.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rtidds.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rtidds.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rtidds.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rtidds.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rtidds.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rtidds.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rtidds.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rtidds.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rtidds.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rtidds.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rtidds.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rtidds.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rtidds.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rtidds.wordpress.com/324/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogs.rti.com&amp;blog=7350090&amp;post=324&amp;subd=rtidds&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogs.rti.com/2010/12/17/the-data-centric-modus-operandi-part-2/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/90e74a4e6594c1b054e07d7a6c6193c3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Rick</media:title>
		</media:content>
	</item>
		<item>
		<title>The Data-Centric Modus Operandi</title>
		<link>http://blogs.rti.com/2010/08/16/the-data-centric-modus-operandi/</link>
		<comments>http://blogs.rti.com/2010/08/16/the-data-centric-modus-operandi/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 22:32:22 +0000</pubDate>
		<dc:creator>Rick Warren</dc:creator>
				<category><![CDATA[Best practices]]></category>
		<category><![CDATA[Standards]]></category>

		<guid isPermaLink="false">http://blogs.rti.com/?p=255</guid>
		<description><![CDATA[Data distribution is about observing a changing world. A system whose communication is based on this paradigm tends to become data-centric: it becomes more concerned with modeling the first-class concepts of its business domain and less concerned with managing second-class "who-told-whom-to-do-what" middleware concepts like queues and messages. Along the way, it enjoys the benefits of decreased coupling and improved reliability, scalability, and performance.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogs.rti.com&amp;blog=7350090&amp;post=255&amp;subd=rtidds&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.omgwiki.org/dds/">DDS stands for &#8220;Data Distribution Service.&#8221;</a> <em>Data distribution</em> is not messaging, and it is not eventing. However, <a href="http://blogs.rti.com/2009/06/03/thinking-differently-about-messaging/">data distribution subsumes messaging</a> and eventing as use cases to a large extent, and as a result it often gets lumped into those categories.</p>
<p><em>Data distribution is about observing a changing world.</em> A system whose communication is based on this paradigm tends to become <em>data-centric</em>: it becomes more concerned with modeling the first-class concepts of its business domain and less concerned with managing second-class &#8220;who-told-whom-to-do-what&#8221; middleware concepts like queues and messages. Along the way, it enjoys the benefits of decreased coupling and improved reliability, scalability, and performance.</p>
<p><strong>Data Distribution and Its Kin</strong></p>
<p>Classically, <em>messaging</em> is an evolution of the remote method invocation (RMI) paradigm &#8212; an attempt to make that paradigm less coupled and more scalable by making it asynchronous. A message says &#8220;I tell you to do this.&#8221; When compared with RMI, &#8220;I&#8221; and &#8220;you&#8221; are more abstract, both in identity and multiplicity, and the request can be queued for processing at a later time or by another party without making the sender wait. These are improvements, but the interaction remains coupled, because the roles of &#8220;I&#8221; and &#8220;you&#8221; (often in the guises of &#8220;client&#8221; and &#8220;server&#8221; or the trendier &#8220;service consumer&#8221; and &#8220;service provider&#8221;), as well as the intention of what action should be performed, are still very much in play.</p>
<p><em>Eventing</em>, like data distribution, is preoccupied with changes to the world. An event says &#8220;I changed in this way.&#8221; It reduces coupling by entirely removing both the recipient of that information and  any notion of intention from you business logic and your mental model; who might receive an event, and what they might choose to do as a result, are not the business of the event source. But state management remains a problem, because in order to understand the change that occurred, all recipients must have an up-to-date understanding of the state of the world prior to the latest event &#8212; &#8220;the price went up by a dollar&#8221; doesn&#8217;t do me any good if I don&#8217;t know what the price was before. This temporal coupling means that every recipient must process every event in order, whether those events are interesting or not, just in case the interpretation of a subsequent interesting event should happen to require the state established by a previous otherwise-uninteresting one.</p>
<p>The resulting processing and state management are complex and expensive. As a mitigation, they are frequently factored out of the applications that need the data and into state-management &#8220;servers&#8221; that &#8220;clients&#8221; must query using a message-centric or even RMI-based approach &#8212; a huge regression in engineering practice! The system becomes complicated by the presence of multiple interacting communication paradigms, and the servers (which serve no business role) introduce performance and fault-tolerance choke points.</p>
<p>A data-centric architecture eliminate these problems by simplifying the interactions. A data sample says simply &#8220;the world is like this.&#8221; It thereby eliminates coupling not only in terms of source, recipients, and their intentions, but also in terms of time. There&#8217;s no longer any need for recipients to process or store information they don&#8217;t care about, because samples don&#8217;t implicitly encompass previous samples. Therefore it becomes perfectly reasonable for one observer to examine the state of the world every second, or every minute, or every hour &#8212; and for another to observe every single intermediate state, even if those states change from one to the other many times a second.</p>
<p><strong>Modeling the World with DDS</strong></p>
<p>A set of DDS entities, and the data they distribute and manage, define a view into this changing &#8220;world.&#8221;</p>
<ul>
<li>A &#8220;domain&#8221; defines the boundaries of the world, the set of information that a collaborating group of applications might find interesting. A &#8220;domain participant&#8221; defines the presence of some application in that world; it is the data-centric analogue to what is frequently known as a &#8220;connection&#8221; in the messaging middleware.</li>
<li><a href="http://blogs.rti.com/2009/04/30/data-transparency-why-you-should-care/">A &#8220;type&#8221; is a structural description of some part of the world</a> &#8212; for example, an Antelope is brown in color and has four legs and two horns; a Ferrari is red in color and has four wheels and two seats. A type has a formal definition, usually (though not always) in a  declarative language like XSD or OMG IDL, and it implies a corresponding definition in the target programming language.</li>
<li>A &#8220;quality-of-service&#8221; (QoS) definition defines the fidelity with which some party/parties is/are able to describe the world. For example, will the description contain every state the world passes through or only a subset? Will observers have access to new states of the world only, or will they be able to see previous states as well? If the latter, how far back will those previous states go?</li>
<li>A &#8220;topic&#8221; defines some aspect or subset of the world consisting of similar objects. As such, it combines a type, which defines the structure of those objects, with a QoS definition, which defines how they can be observed to change.</li>
<li>An &#8220;instance&#8221; defines a single object in the group defined by a topic. For example, a topic may be used to distribute the positions of airplanes as detected by a radar. Each plane would be an instance. All radar tracks have the same structure (type) and are updated in the same way (QoS). But they are also distinct from one another: it matters whether the plane at a given location happens to be American Airlines flight 123 or Delta flight 456.</li>
<li>A &#8220;data writer&#8221; defines a source of information about a particular subset of the world (topic). As such, it may override the QoS of its topic &#8212; multiple parties may provide information about the same part of the world but with different degrees of fidelity.</li>
<li>A &#8220;data reader&#8221; defines an observer of a particular subset of the world (topic). As such, it may also override the QoS of its topic. Furthermore, it may only be able and/or interested to observe certain states of the world. For example, it may only be interested in airplanes flying over a particular geographic area or in stocks trading at over $20/share.</li>
</ul>
<p>By creating a data reader with a certain QoS definition, an application makes an affirmative statement that it wishes to observe a certain portion of the world under a certain set of circumstances. For example, it may state that it is interested in observing the most recent five states (samples) to the objects (instances) in its part of the world (topic), but it doesn&#8217;t need to process changes more frequently than once every second.</p>
<p>This statement is one of interest only; it in no way requires the observer to actually observe a certain set of samples in a certain way or within a certain period of time. On the one hand, the observer may choose to be notified asynchronously of every new sample and to respond to it immediately. On the other, it may &#8220;go away&#8221; to other business and return hours later; when it does, it will find the most recent five samples of each instance, occurring no more frequently than once every second, waiting for it. In the mean time, DDS will have taken care of all of the necessary data reception, filtering, and replacement in order to make that happen.</p>
<p>DDS&#8217;s ability to combine notification and lightweight caching &#8212; in effect, to maintain an application&#8217;s observed state of the world on its behalf &#8212; is something no other standards-based technology provides. Developers of data-centric systems reap the benefits: <a href="http://www.rti.com/resources/product-tour/performance-scalability.html">higher performance and scalability</a>, <a href="http://www.rti.com/resources/product-tour/system-architecture.html">greater tolerance to dynamic network conditions</a>, and ultimately <a href="http://www.rti.com/mk/commercial-middleware-vs-roll-your-own.html">improved ROI and time-to-market</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rtidds.wordpress.com/255/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rtidds.wordpress.com/255/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rtidds.wordpress.com/255/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rtidds.wordpress.com/255/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rtidds.wordpress.com/255/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rtidds.wordpress.com/255/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rtidds.wordpress.com/255/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rtidds.wordpress.com/255/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rtidds.wordpress.com/255/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rtidds.wordpress.com/255/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rtidds.wordpress.com/255/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rtidds.wordpress.com/255/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rtidds.wordpress.com/255/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rtidds.wordpress.com/255/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogs.rti.com&amp;blog=7350090&amp;post=255&amp;subd=rtidds&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogs.rti.com/2010/08/16/the-data-centric-modus-operandi/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/90e74a4e6594c1b054e07d7a6c6193c3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Rick</media:title>
		</media:content>
	</item>
		<item>
		<title>OMG Update</title>
		<link>http://blogs.rti.com/2010/04/29/omg-update/</link>
		<comments>http://blogs.rti.com/2010/04/29/omg-update/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 23:11:00 +0000</pubDate>
		<dc:creator>Rick Warren</dc:creator>
				<category><![CDATA[Future directions]]></category>
		<category><![CDATA[Standards]]></category>

		<guid isPermaLink="false">http://blogs.rti.com/?p=235</guid>
		<description><![CDATA[Last month, the Object Management Group (OMG) held a technical meeting, sponsored in part by RTI, in Jacksonville, Florida. There were a lot of important developments, and I&#8217;d like to give you a short recap: Perhaps the most important milestone for DDS followers was the recommendation for adoption of the new specification Extensible and Dynamic [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogs.rti.com&amp;blog=7350090&amp;post=235&amp;subd=rtidds&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Last month, the <a href="http://www.omg.org/">Object Management Group (OMG)</a> held a technical meeting, sponsored in part by RTI, in Jacksonville, Florida. There were a lot of important developments, and I&#8217;d like to give you a short recap:</p>
<ul>
<li>Perhaps the most important milestone for DDS followers was the recommendation for adoption of the new specification <em>Extensible and Dynamic Topic Types for DDS</em> (sometimes abbreviated &#8220;DDS-XTypes&#8221;). <a href="http://blogs.rti.com/2009/09/01/omg-dds-extensible-and-dynamic-types/">I wrote about DDS-XTypes late last year</a>; it will make it much easier for DDS users to upgrade and evolve their systems over time. It will also enable whole new categories of plug-and-play tools and integration components &#8212; such as <a href="http://www.rti.com/products/dds/RTIReal-TimeConnect.html">database connectors</a>, <a href="http://www.rti.com/products/dds/rtirecorder.html">recorders</a>, and <a href="http://www.rti.com/products/dds/routing-service.html">bridging/routing services</a> &#8212; to be developed in a way that&#8217;s portable and interoperable across DDS implementations, increasing the size and diversity of the DDS marketplace and increasing competition. RTI was a lead author of this specification, and a number of the capabilities defined in it are available in pre-standard form in <a href="http://www.rti.com/products/dds/index.html">RTI Data Distribution Service</a> today.</li>
<li>The meeting also saw the presentation of three initial submissions, representing six different companies, to the <a href="http://www.omg.org/techprocess/meetings/schedule/Web-enabled_DDS_RFP.html">Web-Enabled DDS RFP</a> that was released last year. (The previous link is only accessible to OMG members; sorry. When it&#8217;s finished, the specification will be publicly available.) This very strategic initiative will produce a specification for the integration of systems based on DDS with those based on web technologies. For the first time, it will be possible for SOAP- or REST-based client applications to consume data flowing along a DDS data plane, and for them to provide services back to applications in that plane, in a standards-based way with COTS technology. RTI is currently developing an implementation of this technology in parallel with the standard; this component, called RTI Web Integration Service, will be included in the <a href="http://www.rti.com/products/dds/editions.html">Professional and Elite Editions of RTI Data Distribution Service</a>. You can see a <a href="http://www.youtube.com/user/RealTimeInnovations#p/u/2/CUE3G6eEalw">video demo of DDS-web integration</a>, based on a pre-release version of this component, on YouTube.</li>
<li>Work continues on further improving the portability and usability of DDS implementations with updated C++ and Java API bindings. The <a href="http://www.omg.org/techprocess/meetings/schedule/Native_C++_Language_DDS_PSM_RFP.html">improved C++ APIs</a> are already in the revised submission stage, and we expect them to be adopted within the next small number of OMG meetings. The <a href="http://www.omg.org/techprocess/meetings/schedule/Java_5_Language_PSM_for_DDS_RFP.html">improved Java APIs</a> will be presented as initial submissions at the next OMG meeting, to be held in Minneapolis in June. RTI&#8217;s initial proposal will be based on the <a href="http://code.google.com/p/datadistrib4j/">DataDistrib4J</a> APIs, which we have made available in open source.</li>
<li>Finally, the group had a lively discussion of DDS security, especially with respect to data tagging and labeling. We expect to take these discussions to a formal RFP in the coming months.</li>
</ul>
<p>I think it&#8217;s a testament to the strength of the DDS ecosystem that while its core standards remain stable and support <a href="http://www.rti.com/industries/">significant real-world deployments</a>, at the same time the depth and breadth of that ecosystem continues to grow. It&#8217;s an exciting time to be involved with this technology.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rtidds.wordpress.com/235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rtidds.wordpress.com/235/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rtidds.wordpress.com/235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rtidds.wordpress.com/235/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rtidds.wordpress.com/235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rtidds.wordpress.com/235/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rtidds.wordpress.com/235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rtidds.wordpress.com/235/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rtidds.wordpress.com/235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rtidds.wordpress.com/235/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rtidds.wordpress.com/235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rtidds.wordpress.com/235/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rtidds.wordpress.com/235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rtidds.wordpress.com/235/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogs.rti.com&amp;blog=7350090&amp;post=235&amp;subd=rtidds&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogs.rti.com/2010/04/29/omg-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/90e74a4e6594c1b054e07d7a6c6193c3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Rick</media:title>
		</media:content>
	</item>
		<item>
		<title>Introducing the RTI Product Tour</title>
		<link>http://blogs.rti.com/2010/03/17/introducing-the-rti-product-tour/</link>
		<comments>http://blogs.rti.com/2010/03/17/introducing-the-rti-product-tour/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 05:15:00 +0000</pubDate>
		<dc:creator>Rick Warren</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.rti.com/?p=231</guid>
		<description><![CDATA[The RTI Product Tour is a new web-based guide to RTI's product suite. Learn about how the components of RTI Data Distribution Service work together through a series of short videos.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogs.rti.com&amp;blog=7350090&amp;post=231&amp;subd=rtidds&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>About a year ago, we rolled out no-cost downloadable product evaluations. If you were interested in learning more about RTI products, you no longer had to call your account representative and have him or her enable an evaluation for you. Instead, you could download the software yourself with just a few clicks and evaluate it on your own time line. The time it took you to get your evaluation started fell from a day or two to just an hour or two.</p>
<p>We&#8217;re dropping that time again. Recently, we rolled out an additional new capability on our web site: the <a href="http://www.rti.com/resources/product-tour/index.html">RTI Product Tour</a>. (At least for now, the Product Tour is also linked from the <a href="http://www.rti.com">www.rti.com</a> home page.) The Product Tour covers many of the components of <a href="http://www.rti.com/products/dds/index.html">RTI Data Distribution Service</a> in a streamlined way with embedded screenshots and <a href="http://www.youtube.com/user/RealTimeInnovations">demonstration videos</a>. Instead of downloading the software, installing it, and reading through the documentation, you can just click on a couple of five-minute videos to get some basic information with a lot less effort. (We hope that afterward you&#8217;ll still want to download the software to try it for yourself!)</p>
<p>So if you&#8217;re interested in RTI&#8217;s <a href="http://www.rti.com/resources/product-tour/system-architecture.html">decoupled system architecture</a>, <a href="http://www.rti.com/resources/product-tour/performance-scalability.html">industry-leading performance and scalability</a>, built-in <a href="http://www.rti.com/resources/product-tour/recording-analysis.html">value-added features like recording and analysis</a>, or powerful <a href="http://www.rti.com/resources/product-tour/interoperability.html">connectors to enterprise and legacy systems</a>, check out the RTI Product Tour. It&#8217;ll just take a few minutes.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rtidds.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rtidds.wordpress.com/231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rtidds.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rtidds.wordpress.com/231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rtidds.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rtidds.wordpress.com/231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rtidds.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rtidds.wordpress.com/231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rtidds.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rtidds.wordpress.com/231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rtidds.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rtidds.wordpress.com/231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rtidds.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rtidds.wordpress.com/231/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogs.rti.com&amp;blog=7350090&amp;post=231&amp;subd=rtidds&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogs.rti.com/2010/03/17/introducing-the-rti-product-tour/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/90e74a4e6594c1b054e07d7a6c6193c3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Rick</media:title>
		</media:content>
	</item>
		<item>
		<title>New DDS Article in Dr. Dobbs</title>
		<link>http://blogs.rti.com/2010/02/26/new-dds-article-in-dr-dobbs/</link>
		<comments>http://blogs.rti.com/2010/02/26/new-dds-article-in-dr-dobbs/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 02:18:46 +0000</pubDate>
		<dc:creator>Rick Warren</dc:creator>
				<category><![CDATA[Standards]]></category>

		<guid isPermaLink="false">http://blogs.rti.com/?p=224</guid>
		<description><![CDATA[The journal Dr. Dobb's has just published an introductory article on DDS. If you're new to DDS or to real-time communications in general, take a look. It's a quick read, and it does a good job of summarizing the rich functionality of DDS and the impressive performance relative to other technologies.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogs.rti.com&amp;blog=7350090&amp;post=224&amp;subd=rtidds&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The journal Dr. Dobb&#8217;s has just published an <a href="http://www.drdobbs.com/mobile/222900238">introductory article on DDS</a>. If you&#8217;re new to DDS or to real-time communications in general, take a look. It&#8217;s a quick read, and it does a good job of summarizing the <a href="http://www.rti.com/resources/product-tour/index.html">rich functionality of DDS</a> and the <a href="http://www.rti.com/resources/product-tour/performance-scalability.html">impressive performance relative to other technologies</a>. (Note that the article was written by another DDS vendor, and the author chose to use some IDL and C++ syntax in his example that&#8217;s specific to his implementation. That&#8217;s a detail, though; the concepts are the same across all implementations of the standard.)</p>
<p>Click here for more <a href="http://www.rti.com/resources/articles.html">articles on DDS</a>. Click here for <a href="http://www.rti.com/resources/whitepapers.html">whitepapers on DDS</a>, including a link to the Embedded Market Forecasters study that finds DDS middleware from <a href="http://www.rti.com/mk/commercial-middleware-vs-roll-your-own.html">RTI improves ROI</a> when compared with other alternatives.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rtidds.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rtidds.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rtidds.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rtidds.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rtidds.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rtidds.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rtidds.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rtidds.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rtidds.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rtidds.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rtidds.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rtidds.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rtidds.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rtidds.wordpress.com/224/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogs.rti.com&amp;blog=7350090&amp;post=224&amp;subd=rtidds&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogs.rti.com/2010/02/26/new-dds-article-in-dr-dobbs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/90e74a4e6594c1b054e07d7a6c6193c3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Rick</media:title>
		</media:content>
	</item>
		<item>
		<title>Mutexes and Semaphores</title>
		<link>http://blogs.rti.com/2009/09/24/mutexes-and-semaphores/</link>
		<comments>http://blogs.rti.com/2009/09/24/mutexes-and-semaphores/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 03:09:00 +0000</pubDate>
		<dc:creator>Rick Warren</dc:creator>
				<category><![CDATA[Best practices]]></category>

		<guid isPermaLink="false">http://blogs.rti.com/?p=183</guid>
		<description><![CDATA[For many software developers, the differences between a mutex and a semaphore is murky at best. This post summarizes and links to several recent articles that clarify the situation.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogs.rti.com&amp;blog=7350090&amp;post=183&amp;subd=rtidds&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This post doesn&#8217;t contain any new information or clever opinions. It simply points out a few articles published elsewhere that this humble author suspects his readers will find relevant. (Members of the <a href="http://www.linkedin.com/groups?home=&amp;gid=37565&amp;trk=anet_ug_hm">Embedded</a> group on <a href="http://www.linkedin.com/">LinkedIn</a> may have seen some of these articles already, but they have relevance to any multi-threaded system, embedded or not.)</p>
<p>Many developers suffer from confusion with respect to the differences between mutexes and semaphores. Michael Barr of <a href="http://www.netrino.com/">Netrino</a> provides solid information in his article <a href="http://www.netrino.com/node/202"><em>Mutexes and Semaphores Demystified</em></a>. My summary: mutexes protect shared resources by enforcing mutual exclusion; semaphores should be used for signaling across tasks.</p>
<p>Niall Cooling of <a href="http://www.feabhas.com/">Feabhas</a> provides a longer discussion in two parts:</p>
<ol>
<li><a href="http://www.feabhas.com/blog/2009/09/mutex-vs-semaphores-part-1-semaphores.html">Mutex vs. Semaphores – Part 1: Semaphores</a></li>
<li><a href="http://www.feabhas.com/blog/2009/09/mutex-vs-semaphores-part-2-mutex.html">Mutex vs. Semaphores – Part 2: The Mutex</a></li>
</ol>
<p>Cooling focuses especially on the problems that arise when developers use semaphores where they should rather use mutexes. In particular, he discusses accidental lock release, various causes of deadlock, and priority inversion. (The latter is of special interest to developers of real-time software.)</p>
<p>Although semaphores and mutexes are critical concurrency-control structures, the APIs to use them unfortunately differ from platform to platform with respect to both form and function. At the end of his Part 2, Cooling briefly summarizes some of the differences between the semaphore and mutex APIs of several operating systems. This section will be of interest to anyone developing systems that will be ported across very different platforms. Chris Simmonds goes into more depth, with respect to Linux in particular, in his article <a href="http://www.embedded-linux.co.uk/tutorial/mutex_mutandis"><em>Mutex mutandis: understanding mutex types and attributes</em></a> posted on <a href="http://www.embedded-linux.co.uk/">The Inner Penguin</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rtidds.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rtidds.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rtidds.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rtidds.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rtidds.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rtidds.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rtidds.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rtidds.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rtidds.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rtidds.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rtidds.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rtidds.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rtidds.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rtidds.wordpress.com/183/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogs.rti.com&amp;blog=7350090&amp;post=183&amp;subd=rtidds&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogs.rti.com/2009/09/24/mutexes-and-semaphores/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/90e74a4e6594c1b054e07d7a6c6193c3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Rick</media:title>
		</media:content>
	</item>
		<item>
		<title>In Progress at OMG: Extensible and Dynamic Types</title>
		<link>http://blogs.rti.com/2009/09/01/omg-dds-extensible-and-dynamic-types/</link>
		<comments>http://blogs.rti.com/2009/09/01/omg-dds-extensible-and-dynamic-types/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 23:33:34 +0000</pubDate>
		<dc:creator>Rick Warren</dc:creator>
				<category><![CDATA[Future directions]]></category>
		<category><![CDATA[Standards]]></category>

		<guid isPermaLink="false">http://blogs.rti.com/?p=179</guid>
		<description><![CDATA[DDS is popular, and addresses a number of important use cases that are not addressed by other specifications, but that doesn&#8217;t mean it&#8217;s perfect. The DDS community &#8212; including both customers and vendors &#8212; is active within the OMG to address additional areas in need of standardization. I thought I&#8217;d share one of those areas [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogs.rti.com&amp;blog=7350090&amp;post=179&amp;subd=rtidds&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://portals.omg.org/dds">DDS</a> is popular, and addresses a number of <a href="http://www.rti.com/solutions/">important use cases</a> that are not addressed by other specifications, but that doesn&#8217;t mean it&#8217;s perfect. The DDS community &#8212; including both <a href="http://www.rti.com/industries/">customers</a> and <a href="http://portals.omg.org/dds/VendorsPage">vendors</a> &#8212; is active within the <a href="http://www.omg.org/">OMG</a> to address additional areas in need of standardization. I thought I&#8217;d share one of those areas now.</p>
<p>One of the really powerful things about DDS is that it brings to distributed systems the same kind of type safety that you&#8217;ll find in local applications. In addition to reducing errors, this <a href="http://blogs.rti.com/2009/04/30/data-transparency-why-you-should-care/">deep knowledge of data types</a> can improve performance and resource usage by reducing the number of data copies in the system and easing integration with other field- and type-aware technologies, including <a href="http://www.rti.com/products/dds/RTIReal-TimeConnect.html">relational databases</a> and even <a href="http://www.rti.com/products/dds/microsoft-excel.html">Microsoft Excel</a>.</p>
<p>But as systems evolve over time, type definitions can evolve too, and it&#8217;s important that applications that are already deployed don&#8217;t break as the types used by new applications change. It&#8217;s also desirable to ease the development of infrastructure or cross-cutting components &#8212; like <a href="http://www.rti.com/products/developer_platform/index.html">tools</a>, <a href="http://www.rti.com/products/dds/rtirecorder.html">recorders</a>, generic data routing and transformation facilities, and others &#8212; that shouldn&#8217;t be tied to specific data types. DDS users have been solving these problems in a variety of ways for some time, and <a href="http://www.rti.com/products/dds/RTIDDS.html">some implementations address them already</a>, but it&#8217;s time for a <em>standardized</em> solution.</p>
<p>To that end, the OMG is working on a new specification, <em>Extensible and Dynamic Topic Types for DDS</em>, that will provide additional capabilities for the following:</p>
<ul>
<li>A clarified and extended type system that incorporates keys and extensibility as first-class concepts</li>
<li>An API for the definition of new data types at run-time without code generation</li>
<li>A reflective API for the construction, inspection, and manipulation of data samples based on dynamic type definitions</li>
<li>The ability to define data types declaratively using not only OMG IDL but XML and XML Schema (XSD) as well for easier integration with <a href="http://www.rti.com/solutions/enterprise-messaging.html">enterprise systems</a></li>
</ul>
<p>The proposed specification will be discussed at the <a href="http://www.omg.org/news/meetings/tc/tx/info.htm">OMG Technical Meeting next month</a> and some outstanding open issues addressed. I expect the proposal to be voted on and approved at a subsequent meeting not far in the future.</p>
<p>If your organization is an OMG member, you can access the <a href="http://www.omg.org/techprocess/meetings/schedule/Extensible_and_Dynamic_Topic_Types_for_DDS_RFP.html">in-progress specification proposal documents</a> yourself.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rtidds.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rtidds.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rtidds.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rtidds.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rtidds.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rtidds.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rtidds.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rtidds.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rtidds.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rtidds.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rtidds.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rtidds.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rtidds.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rtidds.wordpress.com/179/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogs.rti.com&amp;blog=7350090&amp;post=179&amp;subd=rtidds&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogs.rti.com/2009/09/01/omg-dds-extensible-and-dynamic-types/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/90e74a4e6594c1b054e07d7a6c6193c3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Rick</media:title>
		</media:content>
	</item>
		<item>
		<title>Making it Work</title>
		<link>http://blogs.rti.com/2009/07/01/making-it-work/</link>
		<comments>http://blogs.rti.com/2009/07/01/making-it-work/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 06:18:40 +0000</pubDate>
		<dc:creator>Rick Warren</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.rti.com/?p=171</guid>
		<description><![CDATA[I&#8217;ve been having a problem with my car, so I brought it in to the shop today. (No, this is not a parable invented for the purpose of this post. This is a true story, I promise.) I brought the problem to the mechanic, who said, &#8220;It could be that your [part] is broken. The [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogs.rti.com&amp;blog=7350090&amp;post=171&amp;subd=rtidds&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been having a problem with my car, so I brought it in to the shop today. (No, this is not a parable invented for the purpose of this post. This is a true story, I promise.) I brought the problem to the mechanic, who said, &#8220;It could be that your [<em>part</em>] is broken. The [<em>part</em>]s are along the back wall; you can buy one at the register there, then bring it around to me, and I&#8217;ll put it in for you.&#8221;</p>
<p>I don&#8217;t know a thing about cars, so it seemed to me that there was a flaw in this plan. <span id="more-171"></span></p>
<p>&#8220;What if,&#8221; I asked, feeling like a jerk already, &#8220;it turns out that my [<em>part</em>] isn&#8217;t broken after all, and the problem is caused by something else? Then I&#8217;ll have a brand new [<em>part</em>] on my hands that&#8217;s of no use to me.&#8221;</p>
<p>The mechanic looked frustrated. &#8220;Well, I could run an electrical test first. We charge $35 for that. Do you want me to do it that way?&#8221;</p>
<p>I resisted the urge to retort, &#8220;You&#8217;re the mechanic; you tell me!&#8221;</p>
<p>The thing is, he really wanted me to pay him <em>for a part</em>, and I really wanted to pay him <em>to make my car work</em>. If I&#8217;d been an expert myself, and knew in detail what my problem was, and how to fix it, I would have been very happy to buy a part. I bought one in any case and crossed my fingers &#8212; I got lucky this time. But next time, I&#8217;ll be looking for someone else to help me, someone more able to speak to me in my language.</p>
<p>I&#8217;m sure there&#8217;s an analogy to software in there somewhere.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rtidds.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rtidds.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rtidds.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rtidds.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rtidds.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rtidds.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rtidds.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rtidds.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rtidds.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rtidds.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rtidds.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rtidds.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rtidds.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rtidds.wordpress.com/171/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogs.rti.com&amp;blog=7350090&amp;post=171&amp;subd=rtidds&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogs.rti.com/2009/07/01/making-it-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/90e74a4e6594c1b054e07d7a6c6193c3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Rick</media:title>
		</media:content>
	</item>
		<item>
		<title>Thinking Differently About Messaging</title>
		<link>http://blogs.rti.com/2009/06/03/thinking-differently-about-messaging/</link>
		<comments>http://blogs.rti.com/2009/06/03/thinking-differently-about-messaging/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 04:24:39 +0000</pubDate>
		<dc:creator>Rick Warren</dc:creator>
				<category><![CDATA[Best practices]]></category>
		<category><![CDATA[Standards]]></category>

		<guid isPermaLink="false">http://blogs.rti.com/?p=153</guid>
		<description><![CDATA[If you're an old hand at messaging, but new to data distribution, the phrase "data-centric design" may sound like just a new way of describing the same old architectures. But data-centric and message-centric thinking differ in subtle-yet-important ways. Understanding those differences will help you pick the right tool for each job.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogs.rti.com&amp;blog=7350090&amp;post=153&amp;subd=rtidds&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>You may have heard system architects talking about &#8220;data-centric design,&#8221; or you may have attended an <a href="http://www.rti.com/services/training.html">RTI training class</a> and heard one of us use that term. Is data-centricity just a new buzzword to make messaging seem cool again? No indeed!</p>
<p>Message-centric design and data-centric design are similar, but they also differ in important ways. Let&#8217;s start with some terminology. There&#8217;s a reason why <a href="http://www.rti.com/mk/DDS.html">DDS</a> says &#8220;sample&#8221; where <a href="http://java.sun.com/products/jms/">JMS</a> says &#8220;message&#8221;: those words are intended to suggest a different mental model to you.<span id="more-153"></span></p>
<p><strong>Data-Centric Thinking</strong></p>
<p>When you hear the word &#8220;sample,&#8221; imagine some data value (perhaps the temperature in a certain place) being published periodically. Those values describe a single logical data object &#8212; an &#8220;instance&#8221; in DDS terms &#8212; whose state changes over time. Or think of subsequent frames of a movie: the movie is a single logical object, and you view slices of it one after another. In other words, in a data-centric design, as the system&#8217;s state changes, it uses the middleware to publish that state directly.</p>
<p>Therefore, a data distribution middleware &#8212; such as <a href="http://www.rti.com/products/data_distribution/index.html">RTI Data Distribution Service</a>, which implements the <a href="http://www.omg.org/spec/DDS/Current">DDS specification</a> &#8212; needs to understand what that state is and under what circumstances it should be published. That&#8217;s why RTI Data Distribution Service allows you to describe your application&#8217;s own data types to the middleware (using XML, IDL, or a programmatic API): your application stores its state using those types, so the middleware needs to understand them in order to publish that state. That&#8217;s also why DDS-compliant middleware provides applications with such extensive control over which data should be published where and when, including filters on data contents and update rates, duration- and depth-based time-to-live rules, data reliability and availability contracts, deadline enforcement, and so on. A data-centric system uses its network middleware as a lightweight cache to manage its state, thereby replacing programmatic application logic with declarative descriptions of its delivery obligations and expectations.</p>
<p><strong>Message-Centric Thinking</strong></p>
<p>In contrast, a messaging middleware provides no facilities for state maintenance or management. Instead, the system maintains that state externally to the middleware, and when it changes, it sends &#8220;messages&#8221; <em>about</em> those state changes. The recipient(s) of those messages then decide if and how to update their own state. Because only the application-level logic &#8220;above&#8221; the middleware has access to its state and knows when and how to update it, there&#8217;s no need for the middleware to understand the contents of messages. Messaging middleware implementations therefore typically don&#8217;t support content-aware message handling and provide more limited control over delivery contracts than do data distribution middleware implementations.</p>
<p><strong>Choices, Choices</strong></p>
<p>Of course, the lines between these communication paradigms are often blurred, and many complex systems will use both in different places. For example, you may use RTI Data Distribution Service to <em>distribute</em> your data, but use a relational database to <em>maintain</em> and <em>manage</em> that data, and then use a product like <a href="http://www.rti.com/products/data_distribution/RTIReal-TimeConnect.html">RTI Real-Time Connect</a> to make sure changes that occur on one side are automatically propagated to the other. Or you may implement a data-centric system with RTI Data Distribution Service but view that data, in certain subsystems, through a message-centric API with <a href="http://www.rti.com/products/jms/index.html">RTI Message Service</a>.</p>
<p>Just as you can write procedural code in C++ or Java by choosing not to use certain object-oriented features of those languages, you can implement a message-centric system using a data distribution middleware by simply choosing to limit the capabilities of that middleware that you leverage. And just as you can write object-oriented code in C if you put your mind to it, you can implement a data-centric system using a messaging middleware. But to get the most value from your middleware, and save yourself the most effort, <a href="http://www.rti.com/services/architecture-study.html">consider which paradigm will serve you best</a> most often, and pick the right tool for the job.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rtidds.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rtidds.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rtidds.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rtidds.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rtidds.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rtidds.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rtidds.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rtidds.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rtidds.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rtidds.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rtidds.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rtidds.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rtidds.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rtidds.wordpress.com/153/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogs.rti.com&amp;blog=7350090&amp;post=153&amp;subd=rtidds&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogs.rti.com/2009/06/03/thinking-differently-about-messaging/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/90e74a4e6594c1b054e07d7a6c6193c3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Rick</media:title>
		</media:content>
	</item>
	</channel>
</rss>
