The Data-Centric Modus Operandi: Part 2

First Published Monday, 20th December 2010 03:04 pm from Real-Time Innovations (RTI) : Rick Warren

The opinions expressed by this blogger and those providing comments are theirs alone, this does not reflect the opinion of Automated Trader or any employee thereof. Automated Trader is not responsible for the accuracy of any of the information supplied by this article.


An earlier post of mine, href="http://blogs.rti.com/2010/08/16/the-data-centric-modus-operandi/">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't belong there and that (2) more readers might

have the same question, and an answer in the comments

wouldn't be very visible. So here it is, my

feature-length response:

href="http://www.cyclops-software.nl/">Frans Ott

says:

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?

This question

is an important and perceptive one. My answer has a couple of

parts.

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 href="http://www.rti.com/resources/product-tour/performance-scalability.html">performance,

scalability, and href="http://www.rti.com/resources/product-tour/system-architecture.html">flexibility.

But it cannot by itself provide you transformative benefits in

terms of time-to-market and long-term maintainability.

Those larger benefits accrue as you adopt data-centric

architecture - 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.

There's my second point: when you tell your

infrastructure what you're trying to do, it can help

you do it better. I used the word "model,"

which might sound frightening and esoteric. But everyone does

this anyway! They just don't call it that. When people

design a system in a message-centric way, they write long

documents (aka "models")

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's

status, manage application state, and so on. And once

they'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.

The truth is, from the point of

view of the real business logic, "the

middleware" isn'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 ad hoc 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 href="http://www.rti.com/resources/product-tour/recording-analysis.html">off-the-shelf

component can start to do a lot of what the in-house

"middleware-above-the-middleware" used to

have to do - 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.

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're

willing to design differently. DDS does for data in motion

something like what an RDBMS does for data at rest. It

can't make 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 "middle"ware

and your business logic.

rel="nofollow"

href="http://feeds.wordpress.com/1.0/gocomments/rtidds.wordpress.com/324/"> alt="" border="0"

src="http://feeds.wordpress.com/1.0/comments/rtidds.wordpress.com/324/"

/>

href="http://feeds.wordpress.com/1.0/godelicious/rtidds.wordpress.com/324/"> alt="" border="0"

src="http://feeds.wordpress.com/1.0/delicious/rtidds.wordpress.com/324/"

/>

href="http://feeds.wordpress.com/1.0/gofacebook/rtidds.wordpress.com/324/"> alt="" border="0"

src="http://feeds.wordpress.com/1.0/facebook/rtidds.wordpress.com/324/"

/>

href="http://feeds.wordpress.com/1.0/gotwitter/rtidds.wordpress.com/324/"> alt="" border="0"

src="http://feeds.wordpress.com/1.0/twitter/rtidds.wordpress.com/324/"

/>

href="http://feeds.wordpress.com/1.0/gostumble/rtidds.wordpress.com/324/"> alt="" border="0"

src="http://feeds.wordpress.com/1.0/stumble/rtidds.wordpress.com/324/"

/>

href="http://feeds.wordpress.com/1.0/godigg/rtidds.wordpress.com/324/"> alt="" border="0"

src="http://feeds.wordpress.com/1.0/digg/rtidds.wordpress.com/324/"

/>

href="http://feeds.wordpress.com/1.0/goreddit/rtidds.wordpress.com/324/"> alt="" border="0"

src="http://feeds.wordpress.com/1.0/reddit/rtidds.wordpress.com/324/"

/>

src="http://stats.wordpress.com/b.gif?host=blogs.rti.com&blog=7350090&post=324&subd=rtidds&ref=&feed=1"

width="1" height="1" />

  • Copyright © Automated Trader Ltd 2013 - The Gateway to Algorithmic and Automated Trading

click here to return to the top of the page