SlideShare a Scribd company logo
1 of 16
Download to read offline
What Is Real-Time SOA?
By Stan Schneider, Ph.D.
Real-Time Innovations, Inc.
385 Moffett Park Drive
Sunnyvale, CA 94089
June 2010
Real-Time Innovations, Inc. 2 Copyright Š 2010
Synopsis:
Integration effort and risk grow dramatically with system and team size. Connecting large systems
developed by independent teams at different times requires connecting multiple systems, thus
creating a “system of systems”. Enterprise systems use a design called Service Oriented Architecture
(SOA) to effect this integration. However, the technologies used in the enterprise do not apply well
to real-time systems; they cannot handle the strict delivery and timing requirements.
So what is “Real-Time SOA”? Ideally, it is an architecture that, like Enterprise SOA, can effectively
integrate large systems of systems. However, unlike Enterprise SOA, Real-Time SOA must handle
demanding real-time systems, connecting them with each other and with enterprise technologies.
The Object Management Group (OMG) Data Distribution Service (DDS) standard provides the right
substrate. However, as a peer-to-peer protocol, DDS cannot automatically mediate between
multiple systems. With the right technology to route between DDS systems, we can integrate
multiple applications built by different teams. Adding in adapters to other protocols and enterprise
technologies allows connecting much larger systems.
This paper outlines how to apply SOA principles to create a fast, distributed system of systems based
on DDS. The system can include both real-time and enterprise-class functionality.
How critical is integration?
On Nov 2, 2006, the Navy intentionally sank the AEGIS cruiser Valley Forge. It was the 4th
Ticonderoga-class AEGIS cruiser to be built, in service for only 18 years. It was designed to serve
at least three decades.
So what happened? The hull was sound. The engine and major components were serviceable.
However, the system software could not integrate new technology and modern weapons.
Shockingly, upgrading the software cost too much to justify the continued existence of a billion-
dollar asseti
. So, down it went.
How could this happen? Integrating complex systems is difficult, made even more so by the
challenge of coordinating teams working on different subsystems. In the past, the only way to
make this work was to have the entire system built under the direct control of a single
organization, known as “stovepiping”. Stovepiping is expensive, and worse, it does not
encourage designs that can evolve. Thus, integration and maintenance costs balloon. In the
case of the Valley Forge, those costs were more than the ship was worth. And the Valley Forge
is hardly an isolated case. Integration costs for real-time systems are out of control in many
industries.
This cannot continue.
Real-Time Innovations, Inc. 3 Copyright Š 2010
The integration problem
Integration effort and risk grow dramatically with system and team size. Very small teams
require no particular effort beyond informal communication. If the team grows to ten
programmers, they need weekly meetings to review progress, interfaces, and design changes. A
team of a hundred must divide into groups. Design documents, reviews, and project
management become important.
By the time a team grows to 1000 people, it faces all the stresses that dominate large-company
projects. The project may even include multiple organizations. Now, the interfaces must be
negotiated in detail. Technology selection becomes a political nightmare. Full-team design
reviews become the critical milestones. Integration dominates the system cost, especially if you
include the overhead of processes and pre-work. Even minor changes require careful
documentation, schedule slips, and additional payments.
If you add in the time factor, things get worse. Large systems are developed and maintained in
pieces over time. That means that old technologies and designs must somehow interface with
new versions. If the original design didn’t do a good job defining the interfaces, this can be fatal.
Mistakes like creating “custom” versions of software (a real temptation with open source)
prevent upgrades to the latest versions of fundamental infrastructure. Without the latest
platforms, all dependent technologies must be ported or adapted. “Reuse” is a never-realized
dream. Instead of upgrading gracefully, contractors charge hundreds of millions for seemingly
simple refreshes.
Simply put, integration costs dominate large system development. It gets worse, not better,
during the maintenance phase.
Figure 1: Integration Costs Explode as Systems Grow
Integration grows dramatically with system size. The cost and risk of building and
maintaining large systems is completely dominated by integration.
Real-Time Innovations, Inc. 4 Copyright Š 2010
The fundamental problem: coupled development
So why is this? The root cause is quite obvious. Systems are made of modules. Different teams
make the modules. As teams get large, communication (and agreement) gets much more
difficult.
Thus, large teams can only effectively build systems from independently designed,
independently implemented, independently managed modules that can evolve independently
over time.
But, that’s easier said than done. It implies that we can integrate modules not designed to work
together. And that’s Not Easy.
Integrating real-time systems
Our first challenge is to put together high-performance real-time distributed systems from
independent modules.
Figure 2 shows typical designs with traditional “client server” or “remote object” technologies,
such as CORBA, ODBC, RMA, OPC, etc.. The development process is to first determine functional
boundaries, then design access methods and interfaces for each piece of information. The data
is “hidden” behind object abstractions. Data requirements of each device or processing
endpoint are considered only as an afterthought. For larger systems, developers then decide
what information will reside on which servers, and where to put the servers and clients.
This design assumes the network is relatively static, servers are always present and accessible,
the server/client relationships are clear, clients know where and—most importantly—when to
request data, and all nodes have similar delivery requirements. It also assumes a “synchronous”
processing model; clients request service and then wait for a reply. This "server centric" design
quickly breaks down as complexity grows. It’s hard to add new data flows (red lines). Every
server is essentially coupled to every client. Unless the access methods happen to provide
everything needed, every single interface the new component touches must be reworked.
Real-Time Innovations, Inc. 5 Copyright Š 2010
Figure 2: Traditional OO Designs Lead to Tightly Coupled Networks
Traditional technologies require developers to define access methods for each function,
and then implement servers and other special interfaces. This leads to “spaghetti”
network design and “stovepipe” systemsii
.
Data-centric design, in Figure 3, offers an alternative. With data-centric design, developers
specify only the data requirements—inputs and outputs—of each subsystem. This is the exact
opposite of the above approach; rather than hiding data, designers specify exactly what
information flow affects each module. Integration middleware discovers the producers and
consumers of information and provides the data immediately when needed. This “data-centric
publish subscribe” design eliminates coupling and greatly simplifies integration of systems with
demanding or complex data-sharing requirements. Driven by the rapid adoption of the Object
Management Group (OMG) Data Distribution Service (DDS) standard, many fielded systems are
using this approach. DDS is the planned future integration technology of most military systems
in the US and its allies. Its use is also spreading into many other applications, including financial
trading, automotive driver assistance, air-traffic control, and electrical power generation.
Figure 3: Data Centric Design Implements an Abstract “Bus”
DDS Data Centric Publish Subscribe specifies the interfaces and information model
crisply. With clear interface specifications, components can be plugged into an
information bus.
Real-Time Innovations, Inc. 6 Copyright Š 2010
Plugging in components sounds simple, but it is not trivial
The key benefit of DDS is that you can “plug in” new modules without redesigning other
interfaces (red line in the figure). That looks simple, but it is anything but obvious how to do
that. Having a pluggable interface assumes that the “bus” specification captures all the key real-
time constraints: What is the data? When is it available? When is it needed? What happens if
it’s not on time? Are there backup sources? How are they engaged? It also makes a huge
assumption that adding more load will not affect the overall system performance; if it does,
other components can fail even if there is no direct connection. That’s an insidious type of
indirect coupling.
At a high level, participants on a DDS bus just subscribe to the information they need and
publish what they produce. Information is identified by “Topics”, and is strongly typed for safety
and easier integration. The middleware automatically “discovers” new entrants. Types are
communicated before information flow begins, so all modules know what they’re getting (called
being “content aware”). And because data can flow without servers or synchronization delays,
the system is blazingly fast; DDS is easily the highest-performance middleware standardiii
.
But perhaps the key to the success of DDS is that it crisply defines an information model.
Fundamentally, if you define the information model correctly, then components can specify
their needs at design time. At runtime, they then produce and consume via the model,
implemented by the middleware. The modules are not directly dependent on each other. This
is the key to avoiding coupling. The components adapt to the model, not the other way around.
Other messaging technologies (e.g JMS) can’t do this because they don’t define an information
modeliv
.
DDS defines the information model with over 20 “quality of service” (QoS) parameters. QoS
settings stipulate if a publisher can supply reliable information flow, how fast it can supply data,
and when you will find out if it’s up or down. A subscriber can specify exactly what it needs,
even down to filtering out updates based on timing or the content of the message. The
middleware then looks at requests from “plugged in” subscribers, and decides if any publishers
can satisfy those requests. If so, it establishes “contracts” between the publisher and subscriber
and starts sending data. If not, it reports an error. An example contract might be, “The
publisher will update the subscriber at least every millisecond, and the communication must be
reliable, so retry to repair transmission errors. If the publisher fails, switch to a backup.”
That’s a small example. The full set of DDS QoS parameters can integrate hundreds of very
complex, demanding applications. And because the middleware is fast, the specifications can be
set to satisfy very demanding real-time requirements. Fielded DDS systems send up to millions
of messages per second, with latencies measured in the tens of microseconds, through millions
of publish-subscribe pairings. Designers can specify timing requirements, supporting systems
that have deterministic delivery needs. Reliable multicast ensures that new “plug ins” don’t
burden the system. It scales well; applications comprising up to 1000 computers are deployed.
Real-Time Innovations, Inc. 7 Copyright Š 2010
DDS particularly excels when the application needs non-stop reliability, such as a in a battle
management or an electrical grid system.
Radar example
QoS contracts are made on a per-data-flow-path basis. So, for instance, consider a high-speed
radar application that publishes “tracks” to many different subscriber applications. It must send
updates 2000 times a second to a weapon system trying to track incoming missiles. For this
subscriber, the latest data is best, so if a sample is lost due to a transmission error, don’t waste
time retrying old data. At the same time, a logging system needs the radar to reliably deliver
everything being tracked for later analysis. At the same time, this data should be multicast to 50
operator screens, but they can only take 10 samples a second. Each screen may further select a
region of interest, e.g. display only tracks within 5 miles, coming towards me, and only things
that are not identified as friendly.
DDS can handle all this and more. All at the same time. And, because these issues are being
managed by the middleware, the application can simply focus on logic and processing.
Of course, all these issues are handled behind the scenes by the middleware. It doesn’t impact
the application. You can imagine how much this simplifies application development and
integration.
Now, suppose all this is working and deployed. And then we need to add a new capability. For
instance, let’s use our radar to coordinate air traffic in our local area. Since every service has
crisply defined its capabilities, we don’t require any change to any components. The new
application simply plugs in and works.
Of course, this assumes performance is not affected by loading. DDS implementations vary in
their ability to scale, but those that implement direct peer-to-peer reliable multicast suffer very
little performance hit with higher offered load. Implemented well, DDS is orders of magnitude
faster than other middleware designs. And the “QoS contract” concept adds a layer of failure
detection. If new load does cause an overload, the middleware will immediately notify the
other applications that their contracts were violated. That helps find design issues early, during
system test. It also allows live systems to take effective remedial action, should this occur
during operation.
Integrating systems of systems
So, to summarize the above, DDS’s data-centric publish subscribe connects real-time systems.
It’s the right architecture for these applications; it defines interfaces, timing, and QoS control.
Everything is decentralized for redundancy and speed.
However, it’s not the whole story. Large systems that must be developed and maintained over
many years must be able to combine without any premeditated coordination. Fundamentally,
for instance, to plug into the bus, all the components on a DDS network (a “domain”) must
Real-Time Innovations, Inc. 8 Copyright Š 2010
agree on topics and types. Even if everyone uses DDS, different groups will choose different
topics and types. And even a single group’s design will change over time. So, to integrate these
systems, we at least have to merge multiple, different DDS domains. Moreover, not all systems
use DDS; we must also merge many different protocols, legacy systems, and enterprise
technologies. DDS alone can’t handle that.
Fundamentally, DDS decouples modules, but not development. It’s a great substrate. But it’s
not enough.
SOA: Decoupled development in the enterprise
Let’s take a step back and look at the successful enterprise technology for integrating systems of
systems: SOA.
SOA stands for “Service Oriented Architecture”. A SOA is a system architecture that builds a
complex system from independent “services”.
If you are familiar with the term “SOA”, you probably know it as the design behind web services.
Web services and SOA are phenomenally successful in the enterprise. Because they enable
decoupled development, SOA and web services dominate today’s enterprise architecture. In
fact, it’s not much of an overstatement to say that SOA is today’s enterprise architecture.
SOA, implemented as web services, integrates the enterprise. Services are independent entities
that implement business functions. Applications that execute as loosely coupled services can be
developed independently and linked later. That’s how a web store can charge your credit card
and arrange shipping via multiple vendors. Those applications weren’t designed together. They
were integrated from independent modules. The web obviously can plug and play components
built by different teams at different times, even using different technologies.
How do web services work? A detailed description is beyond this paper. However,
fundamentally, the key features are crisp interface definitions (WSDL files), known places to get
those interfaces (UDDI servers), and shared type definitions (XML).
How does this compare to DDS? Although the implementation is very different, the analogy to
DDS is striking: both support interface definitions (WSDL v QoS), interface service (UDDI v DDS
topic discovery), and content-aware type sharing (XML v DDS type discovery). These are the
core features of a distributed integration substrate.
The enterprise integration point: ESB
But enterprise SOA has something that DDS does not. At run time, enterprise SOA leverages a
key integration technology: an application called an Enterprise Service Bus (ESB). An ESB runs
on a single logical machine; it is not a distributed concept, despite the “bus” in its name. The
ESB’s function is protocol interchange. Fundamentally, it “routes” incoming messages to the
right service. It can speak many protocols, e.g. SOAP and JMS. It can also translate types
between services (called “mediation”). With these abilities, an ESB can connect independently
Real-Time Innovations, Inc. 9 Copyright Š 2010
developed applications, even if they don’t share types or know where to route their requests.
See Figure 4.
Figure 4: Enterprise Systems Leverage an ESB for Integration
Enterprise SOA uses an Enterprise Service Bus (ESB) to route requests to the right
service. It allows development of complex systems built by independent teams at
independent times. The ESB can connect them at runtime.
To integrate independently developed systems, DDS needs the equivalent of an ESB.
Integrating real-time systems of systems
So, if our goal is to integrate real-time systems with each other and with enterprise systems, this
analysis brings up three obvious questions:
• Can we use enterprise SOA technology to integrate multiple real-time systems?
• Can we connect a real-time system to an enterprise system with enterprise SOA?
• Can we use SOA principles to extend DDS to integrate real-time and enterprise systems?
Let’s take a look at each of these questions.
Can we use enterprise SOA to integrate real-time systems?
The first obvious question is if we can just use enterprise ESB technology for real-time systems.
It certainly can integrate many technologies.
Unfortunately, web services and ESBs are woefully inadequate for integrating real-time systems.
They have no concept of timing control. There’s weak QoS control, and the parameters are
wrong for demanding real-time applications. Worse, enterprise SOA systems are centralized for
easy deployment, administration, and management. While the net may look like a “cloud”, the
key components like ESBs fundamentally live in data centers, and you can’t put a data center on
a battlefield (at least, not if you want to win).
And then there’s performance. Enterprise SOAs are just not fast on the scale required to
integrate a combat system or other “real-time” applications. Some web services vendors call
Real-Time Innovations, Inc. 10 Copyright Š 2010
their web services “Real-Time SOA”. What they mean by that is a system capable of responding
to web transactions in a second, or perhaps push data out every tenth of a second or so. That’s
fast compared to human response time. But, it can’t control a radar system. Real-time systems
must send thousands or millions of messages a second with sub-millisecond latency. Web
services are way (way) too slow.
And even a fast web service wouldn’t work. Web services don’t model time, so you can’t
request response within an amount of time or find out if it will be late. Real-time is more about
consistency of delivery (“determinism”) that just speed. Radar systems, for instance, flat-out fail
if they deliver data a little bit late. Users will wait a little longer while the system responds.
Incoming missiles won’t.
Enterprise SOA fails in real time systems.
Can we connect a real-time system to an enterprise system with enterprise
SOA?
So, if enterprise SOA can’t connect real-time systems, can it at least connect real-time systems
to enterprise systems? There are certainly many candidate enterprise technologies that could
talk to DDS. Apache Camel, for instance, supports 1000 plug-in protocols. If you want, for
example, to connect a tactical real-time system with its enterprise support environment, why
not just plug in DDS and go?
This is appealing. In fact, RTI tried it. It makes a nice demo…but flat-out failed in real
application. Fundamentally, it doesn’t solve the real problem. To understand why, let’s look at
some of the important differences between real-time and enterprise systems.
Real-Time systems:
• May send millions of messages/second
• Need latency measured in the microseconds
• Must be distributed for redundancy and speed
• Require strict QoS and timing control
• Use fast binary data formats
Enterprise systems:
• Send at most hundreds or a few thousand messages/second
• Expect latency of at least many milliseconds, or even seconds
• Must be managed centrally (administration, backup, etc., are all in data centers)
• Are burdened with layers of business logic support
• Use heavyweight wire data formats like XML
For these and other reasons, enterprise technologies do many things that Don’t Make Sense for
real-time systems. For instance, ESBs normalize messages. Camel translates everything to Java
objects and then back. That’s slow for little benefit in a real-time environment. If you expect
Real-Time Innovations, Inc. 11 Copyright Š 2010
the ESB to perform key functions like mediation for the real-time system, it will quickly be
overwhelmed.
So, bridging real-time systems through an enterprise ESB fails for many good reasons. It’s slow.
You lose all timing & QoS information. It imposes single points of failure and choke points.
Bottom line, it’s fundamentally the wrong end to fix problem. It just doesn’t make sense to
connect the real-time system directly through an ESB.aragraph header
Can we use SOA principles to extend DDS to integrate real-time and enterprise
systems?
So, DDS is missing the key ESB-like functionality, “routing”. Can we do that in a way that’s
compatible with the reality of real-time demands? That’s an interesting proposition. It defies
the “conventional wisdom” of just slamming all the integration load onto the ESB. But as we’ve
seen, DDS is also a powerful integration substrate. And it has the key advantages of being
fundamentally distributed and fast. So…can we build a fast, distributed analog of an ESB?
Real-time Routing
Connecting DDS domains
Let’s consider the simplest problem first: say we have two DDS applications, maybe a radar
system and a display system. Now, obviously, it would be best to design them together, use a
single DDS bus, and connect cleanly through shared types, topics, and QoS parameters. Then
we could develop a high-performance, reliable platform by starting with solid data-centric
design principles that encompass the whole application.
But, let’s assume that’s not possible in this case. These are big systems involving many
applications each. They were originally developed for other uses; perhaps we are “borrowing”
the display subsystem from a ship architecture, and merging it with a radar from a ground-based
anti-missile system. Perhaps these systems are modules that must be used in more than just
our one application, and those other uses have other requirements. Or maybe the radar is a
very new technology that we’re trying to integrate into our ship, to keep it affordably
competitive.
So, our challenge is to reuse Big Modules that were developed independently, even by other
teams or other companies at other times. As every program manager knows, this is a common
desire. (And the customer rarely understands why it’s so hard or expensive.) Unfortunately,
reuse is usually an unfulfilled dream (hallucination); integrating two large systems that were not
designed to work together is a famously frustrating exercise.
Real-Time Innovations, Inc. 12 Copyright Š 2010
Routing service
How can we effectively connect our two independent DDS domains? What would such a routing
service need to do?
Without a routing service, the only way to connect domains is to build a custom “bridge” that
knows exactly what data to pass, subscribes to it, translates it for the other side, and publishes it
with the schema and topic names that the other side expects. This is doable. However, custom
bridges are expensive to write and maintain.
Our routing service clearly needs to bridge packets between the networks. But to do routing
generically, our service needs to provide two key functions in configurable form: guards and
translators. Then, it needs to connect to both domains, find the right data, and route it to the
right destination.
Guards
Guards decide what our subsystems will export. Obviously, the display does not need access to
every single piece of data flying around in the radar system. It only needs tracks (in our
simplified example). The guard’s job is to select just that information and expose nothing else.
It can also change the QoS of the exported information; perhaps we want to control our
commitment to external systems. So, a guard is a filter that intelligently allows only the right
information through to the other side.
Importantly, the guard is also an obvious security point. Because the routing service controls all
information entering or leaving the system, it is a key opportunity to provide security. That is
critical, but beyond this paper.
Translators
Secondly, we need to transform languages between the systems. Our radar and display both
understand the concept of “tracks”, but suppose the radar publishes tracks in X-Y-Z position
relative to its location, while the display expects latitude and longitude (see Fig 5).
Real-Time Innovations, Inc. 13 Copyright Š 2010
Figure 5: Translation and Guarding are the Key Integration Functions
Any system that must connect independently developed components must translate
between the data types on each end. It also must know what information to expose.
The only alternative is an expensive rewrite of one of the end applications.
This is indeed a very simple example. Real track data structures can have hundreds of fields.
The concepts are unchanged; the translator must match the topic names and type schemas on
both ends.
Tap into discovery on both sides
So how can we do these steps generically? The routing service must be able to find the right
information within the network and publish it to the other side. Since our routing service can
tap into DDS automatic discovery, finding information is manageable. The routing service must
also understand and process topics and types. Since DDS is content aware, these functions are
implementable. The translators become simple scripts or plugins for each schema processed.
Guards become configuration scripts that specify which topics to translate. As a bonus, DDS
content awareness means that the routing service checks all types at runtime; the system can
thus work safely in an environment where the schema may change. RTI has implemented such
a routing service; it is configured via XML scripts.
Real-Time Innovations, Inc. 14 Copyright Š 2010
Figure 6: RTI Routing Service Connects Domains
RTI Routing Service connects two DDS domains. It implements both guarding and
translation. The guard selects which data will be exported from the domain. The
translator matches topics and schema between domains. It can find the data it needs
via DDS discovery.
Leverage easy distribution to make it scale
Now, suppose we want to integrate multiple DDS domains. An ESB-like approach would imply
that we should expand our routing service to process multiple DDS data streams. However, with
the DDS bus available, there’s no need for a monolithic ESB. We can just instantiate more
routing services, and distribute them around the system as needed. That’s a much faster and
more robust design. We can even have multiple routing services between single pairs of
domains for redundancy.
Build DDS into a real-time distributed ESB
This last point is suggestive of a bigger solution. Of course, Routing Service (RS) can do more
than just connect using the DDS protocol. We can extend it with plug-in protocols. Then it can
connect DDS domains through TCP, for example. This allows DDS to cleanly traverse firewalls.
The plugin can encrypt traffic. Thus, we can securely span WAN networks.
We can take this even further. The RS can connect DDS to non-DDS systems. With plugins, the
RS can be a programmable bridge to any protocol, e.g.: Link 16, STANAG 4586, JMS, C37.118,
compressed DDS streams, and many others. Each RS, running a plugin, can integrate another
protocol into the system. Of course, DDS makes it easy to have many of these. Each can run on
a separate node. The result? An efficient, distributed integration design.
Besides combining protocols, DDS can be used to integrate other technologies. For instance, RTI
has DDS services to integrate databases, web services, and tools like Excel. A JMS API on the
middleware can offer clean and easy integration with enterprise technologies. The JMS API with
Real-Time Innovations, Inc. 15 Copyright Š 2010
guarding can also interface more cleanly—without the intermediate “normalization” step—with
enterprise ESBs (like Camel).
Together, we could call design a “Real-Time Service Bus”. It fulfills the same function and
delivers the same benefit as an Enterprise Service Bus, except that it’s fundamentally
distributed, fast, and timing aware. Modules can live on any node to integrate any technology.
The Real-Time Service Bus provides the integration “point” that DDS was missing, in a
distributed architecture.
Figure 6: A Real-Time Service Bus
By adding protocol plug-ins and enterprise technology adapters, DDS becomes the
substrate for a Real-Time Service Bus that functions as a “distributed ESB”. It delivers
the key benefits of real-time SOA without the disadvantages of web services
implementations.
So is that Real-Time SOA?
This brings the key benefits of a SOA to true real time
The architecture outlined here is certainly a service-oriented architecture (SOA) by the formal
definition. With RTI’s powerful Routing Service, designers can build real-time systems from
many independent services.
More importantly, it delivers the key decoupled-development benefit. Services, even entire
DDS or other applications, can be developed by separate teams, at different times, with
different designs. The translation function allows them to then be integrated later. If a
component evolves (and this is key) only the translation configuration needs to be adjusted.
We will repeat that the innovation here is vastly different from what enterprise vendors call
“Real-Time SOA”, which really means faster web services. The DDS-based Real-Time Service Bus
is a SOA that truly integrates a real-time system of systems. And, it satisfies demanding
Real-Time Innovations, Inc. 16 Copyright Š 2010
performance, reliability, and control needs. With protocol plugins and other technology
interface components, it takes this a step further. It allows the development of complex
systems that include both real-time and enterprise components. It integrates large real-time
systems with each other and with enterprise systems.
Even lying on the bottom of the Pacific, the Valley Forge can still serve software designers. Its
lessons? Integration is key. Architecture enables integration. Real-time systems require real-
time technology. And emerging real-time technology can deliver the levels of integration that
can prevent this waste in the future. The key lesson: designing for integration from day one with
the right approach is perhaps the most important consideration in building and maintaining
affordable distributed systems.
Next steps
To learn more about RTI Data Distribution Service or to download a fully-functional software
evaluation, please contact us at info@rti.com or visit http://www.rti.com.
i
Admiral Frick, PEO IWS, at the 2006 ASNE Combat Systems Symposium
ii
Figure modified from Raytheon talk at OMG DDS Day seminar.
iii
All performance results in this paper are dependent on the right implementation. RTI publishes copious
data and numerous studies comparing middleware implementations at www.rti.com.
iv
DDS also allows interoperation across operating systems, languages, even DDS implementations. No
other middleware standard does all that either, but that’s beyond this paper.

More Related Content

What's hot

Www.Sas.Com Resources Whitepaper Wp 33890
Www.Sas.Com Resources Whitepaper Wp 33890Www.Sas.Com Resources Whitepaper Wp 33890
Www.Sas.Com Resources Whitepaper Wp 33890Gregory Pence
 
IDC: Selecting the Optimal Path to Private Cloud
IDC: Selecting the Optimal Path to Private CloudIDC: Selecting the Optimal Path to Private Cloud
IDC: Selecting the Optimal Path to Private CloudEMC
 
Facing the Future - Is the cloud right for you?
Facing the Future - Is the cloud right for you?Facing the Future - Is the cloud right for you?
Facing the Future - Is the cloud right for you?Advanced Business Solutions
 
Communicating Virtualization to Non-IT Audiences
Communicating Virtualization to Non-IT AudiencesCommunicating Virtualization to Non-IT Audiences
Communicating Virtualization to Non-IT AudiencesAkweli Parker
 
The Future Of Bpm Six Trends Shaping Process Management
The Future Of Bpm Six Trends Shaping Process ManagementThe Future Of Bpm Six Trends Shaping Process Management
The Future Of Bpm Six Trends Shaping Process ManagementNathaniel Palmer
 
Open Philosophies for Associative Autopoietic Digital Ecosystems
Open Philosophies for Associative Autopoietic Digital EcosystemsOpen Philosophies for Associative Autopoietic Digital Ecosystems
Open Philosophies for Associative Autopoietic Digital EcosystemsNathaniel Palmer
 
What are the advantages of adopting public cloud
What are the advantages of adopting public cloudWhat are the advantages of adopting public cloud
What are the advantages of adopting public cloudNicole Khoo
 
Metadata as a Service
 Metadata as a Service Metadata as a Service
Metadata as a ServiceITC Infotech
 
Cloud computing
Cloud computingCloud computing
Cloud computingYogesh Singh
 
Understanding the Cloud Computing Stack
Understanding the Cloud Computing StackUnderstanding the Cloud Computing Stack
Understanding the Cloud Computing StackRackspace
 
Software as a Service (SaaS): Custom Acquisition Strategies - LabGroup.com.au
Software as a Service (SaaS): Custom Acquisition Strategies - LabGroup.com.auSoftware as a Service (SaaS): Custom Acquisition Strategies - LabGroup.com.au
Software as a Service (SaaS): Custom Acquisition Strategies - LabGroup.com.auSusan Diaz
 
Idc analyst report a new breed of servers for digital transformation
Idc analyst report a new breed of servers for digital transformationIdc analyst report a new breed of servers for digital transformation
Idc analyst report a new breed of servers for digital transformationKaizenlogcom
 
Top 3 Reasons to Deliver Web Apps with Application Virtualization
Top 3 Reasons to Deliver Web Apps with Application VirtualizationTop 3 Reasons to Deliver Web Apps with Application Virtualization
Top 3 Reasons to Deliver Web Apps with Application VirtualizationCitrix
 
Cloud Infrastructure for Your Data Center
Cloud Infrastructure for Your Data CenterCloud Infrastructure for Your Data Center
Cloud Infrastructure for Your Data CenterDataCore Software
 
10 Reasons to Strengthen Security with App & Desktop Virtualization
10 Reasons to Strengthen Security with App & Desktop Virtualization10 Reasons to Strengthen Security with App & Desktop Virtualization
10 Reasons to Strengthen Security with App & Desktop VirtualizationCitrix
 
Cloud Computing: Latest Buzzword or Glimpse of the Future?
Cloud Computing: Latest Buzzword or Glimpse of the Future?Cloud Computing: Latest Buzzword or Glimpse of the Future?
Cloud Computing: Latest Buzzword or Glimpse of the Future?white paper
 
Service oriented cloud computing
Service oriented cloud computingService oriented cloud computing
Service oriented cloud computingMandar Pathrikar
 

What's hot (18)

Www.Sas.Com Resources Whitepaper Wp 33890
Www.Sas.Com Resources Whitepaper Wp 33890Www.Sas.Com Resources Whitepaper Wp 33890
Www.Sas.Com Resources Whitepaper Wp 33890
 
IDC: Selecting the Optimal Path to Private Cloud
IDC: Selecting the Optimal Path to Private CloudIDC: Selecting the Optimal Path to Private Cloud
IDC: Selecting the Optimal Path to Private Cloud
 
Facing the Future - Is the cloud right for you?
Facing the Future - Is the cloud right for you?Facing the Future - Is the cloud right for you?
Facing the Future - Is the cloud right for you?
 
Communicating Virtualization to Non-IT Audiences
Communicating Virtualization to Non-IT AudiencesCommunicating Virtualization to Non-IT Audiences
Communicating Virtualization to Non-IT Audiences
 
The Future Of Bpm Six Trends Shaping Process Management
The Future Of Bpm Six Trends Shaping Process ManagementThe Future Of Bpm Six Trends Shaping Process Management
The Future Of Bpm Six Trends Shaping Process Management
 
Open Philosophies for Associative Autopoietic Digital Ecosystems
Open Philosophies for Associative Autopoietic Digital EcosystemsOpen Philosophies for Associative Autopoietic Digital Ecosystems
Open Philosophies for Associative Autopoietic Digital Ecosystems
 
What are the advantages of adopting public cloud
What are the advantages of adopting public cloudWhat are the advantages of adopting public cloud
What are the advantages of adopting public cloud
 
Ey35869874
Ey35869874Ey35869874
Ey35869874
 
Metadata as a Service
 Metadata as a Service Metadata as a Service
Metadata as a Service
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Understanding the Cloud Computing Stack
Understanding the Cloud Computing StackUnderstanding the Cloud Computing Stack
Understanding the Cloud Computing Stack
 
Software as a Service (SaaS): Custom Acquisition Strategies - LabGroup.com.au
Software as a Service (SaaS): Custom Acquisition Strategies - LabGroup.com.auSoftware as a Service (SaaS): Custom Acquisition Strategies - LabGroup.com.au
Software as a Service (SaaS): Custom Acquisition Strategies - LabGroup.com.au
 
Idc analyst report a new breed of servers for digital transformation
Idc analyst report a new breed of servers for digital transformationIdc analyst report a new breed of servers for digital transformation
Idc analyst report a new breed of servers for digital transformation
 
Top 3 Reasons to Deliver Web Apps with Application Virtualization
Top 3 Reasons to Deliver Web Apps with Application VirtualizationTop 3 Reasons to Deliver Web Apps with Application Virtualization
Top 3 Reasons to Deliver Web Apps with Application Virtualization
 
Cloud Infrastructure for Your Data Center
Cloud Infrastructure for Your Data CenterCloud Infrastructure for Your Data Center
Cloud Infrastructure for Your Data Center
 
10 Reasons to Strengthen Security with App & Desktop Virtualization
10 Reasons to Strengthen Security with App & Desktop Virtualization10 Reasons to Strengthen Security with App & Desktop Virtualization
10 Reasons to Strengthen Security with App & Desktop Virtualization
 
Cloud Computing: Latest Buzzword or Glimpse of the Future?
Cloud Computing: Latest Buzzword or Glimpse of the Future?Cloud Computing: Latest Buzzword or Glimpse of the Future?
Cloud Computing: Latest Buzzword or Glimpse of the Future?
 
Service oriented cloud computing
Service oriented cloud computingService oriented cloud computing
Service oriented cloud computing
 

Viewers also liked

Tim Halas Resume
Tim Halas ResumeTim Halas Resume
Tim Halas ResumeTim Halas, MBA
 
Halas_Tim_Resume
Halas_Tim_ResumeHalas_Tim_Resume
Halas_Tim_ResumeTim Halas, MBA
 
Sistema digestivo
Sistema digestivoSistema digestivo
Sistema digestivomaritatf
 
concepto de fisica
concepto de fisicaconcepto de fisica
concepto de fisicaAndre Lopez
 
Number matching &draw line bangla
Number matching &draw line banglaNumber matching &draw line bangla
Number matching &draw line banglaCambriannews
 
Amanda bentley 102c_presentation.pptx (1)
Amanda bentley 102c_presentation.pptx (1)Amanda bentley 102c_presentation.pptx (1)
Amanda bentley 102c_presentation.pptx (1)abbentley
 
Gusto rebranding presentation
Gusto rebranding presentationGusto rebranding presentation
Gusto rebranding presentationandy boothman
 
Brian Simpson-Voice Engineer
Brian Simpson-Voice EngineerBrian Simpson-Voice Engineer
Brian Simpson-Voice Engineertelnettech
 
AnalogĂ­a entre una Tienda Real y una Tienda Virtual.
AnalogĂ­a entre una Tienda Real y una Tienda Virtual.AnalogĂ­a entre una Tienda Real y una Tienda Virtual.
AnalogĂ­a entre una Tienda Real y una Tienda Virtual.JosĂŠ Quintana Moreno
 
Articulo cientifico ambiental
Articulo cientifico ambientalArticulo cientifico ambiental
Articulo cientifico ambientalOmar Valderrama L
 

Viewers also liked (16)

Tim Halas Resume
Tim Halas ResumeTim Halas Resume
Tim Halas Resume
 
Halas_Tim_Resume
Halas_Tim_ResumeHalas_Tim_Resume
Halas_Tim_Resume
 
Autonoom
AutonoomAutonoom
Autonoom
 
Sistema digestivo
Sistema digestivoSistema digestivo
Sistema digestivo
 
concepto de fisica
concepto de fisicaconcepto de fisica
concepto de fisica
 
Number matching &draw line bangla
Number matching &draw line banglaNumber matching &draw line bangla
Number matching &draw line bangla
 
Amanda bentley 102c_presentation.pptx (1)
Amanda bentley 102c_presentation.pptx (1)Amanda bentley 102c_presentation.pptx (1)
Amanda bentley 102c_presentation.pptx (1)
 
monoiso.gr - Μονώσεις Ταρατσών
 monoiso.gr - Μονώσεις Ταρατσών monoiso.gr - Μονώσεις Ταρατσών
monoiso.gr - Μονώσεις Ταρατσών
 
Resume ENG MJ
Resume ENG MJResume ENG MJ
Resume ENG MJ
 
Wilhelm Weber
Wilhelm WeberWilhelm Weber
Wilhelm Weber
 
Gusto rebranding presentation
Gusto rebranding presentationGusto rebranding presentation
Gusto rebranding presentation
 
Brian Simpson-Voice Engineer
Brian Simpson-Voice EngineerBrian Simpson-Voice Engineer
Brian Simpson-Voice Engineer
 
AnalogĂ­a entre una Tienda Real y una Tienda Virtual.
AnalogĂ­a entre una Tienda Real y una Tienda Virtual.AnalogĂ­a entre una Tienda Real y una Tienda Virtual.
AnalogĂ­a entre una Tienda Real y una Tienda Virtual.
 
Gold
GoldGold
Gold
 
EstĂŠtica de las marcas de surf
EstĂŠtica de las marcas de surfEstĂŠtica de las marcas de surf
EstĂŠtica de las marcas de surf
 
Articulo cientifico ambiental
Articulo cientifico ambientalArticulo cientifico ambiental
Articulo cientifico ambiental
 

Similar to What is real time SOA?

A Converged Approach to Standards for Industrial Automation
A Converged Approach to Standards for Industrial AutomationA Converged Approach to Standards for Industrial Automation
A Converged Approach to Standards for Industrial AutomationGerardo Pardo-Castellote
 
Evolution of #cloud computing
Evolution of #cloud computingEvolution of #cloud computing
Evolution of #cloud computingCirro
 
Data center-terminology photostory-
Data center-terminology photostory-Data center-terminology photostory-
Data center-terminology photostory-VenkatRamana242
 
[FAQs] Best Practices for IT/OT Convergence
[FAQs] Best Practices for IT/OT Convergence[FAQs] Best Practices for IT/OT Convergence
[FAQs] Best Practices for IT/OT ConvergenceSchneider Electric
 
It’s raining savings from the cloud
It’s raining savings from the cloudIt’s raining savings from the cloud
It’s raining savings from the cloudCRM Vision
 
Governance in the age of cloud
Governance in the age of cloudGovernance in the age of cloud
Governance in the age of cloudBrenda Barrioz, CPDS
 
Cloud computing CXO's guide
Cloud computing CXO's guideCloud computing CXO's guide
Cloud computing CXO's guideAspire Systems
 
The Future of Convergence Paper
The Future of Convergence PaperThe Future of Convergence Paper
The Future of Convergence PaperHitachi Vantara
 
Scope of Data Integration
Scope of Data IntegrationScope of Data Integration
Scope of Data IntegrationHEXANIKA
 
Cloud computing Paper
Cloud computing Paper Cloud computing Paper
Cloud computing Paper Assem mousa
 
THE IMPROVEMENT AND PERFORMANCE OF MOBILE ENVIRONMENT USING BOTH CLOUD AND TE...
THE IMPROVEMENT AND PERFORMANCE OF MOBILE ENVIRONMENT USING BOTH CLOUD AND TE...THE IMPROVEMENT AND PERFORMANCE OF MOBILE ENVIRONMENT USING BOTH CLOUD AND TE...
THE IMPROVEMENT AND PERFORMANCE OF MOBILE ENVIRONMENT USING BOTH CLOUD AND TE...csandit
 
THE IMPROVEMENT AND PERFORMANCE OF MOBILE ENVIRONMENT USING BOTH CLOUD AND TE...
THE IMPROVEMENT AND PERFORMANCE OF MOBILE ENVIRONMENT USING BOTH CLOUD AND TE...THE IMPROVEMENT AND PERFORMANCE OF MOBILE ENVIRONMENT USING BOTH CLOUD AND TE...
THE IMPROVEMENT AND PERFORMANCE OF MOBILE ENVIRONMENT USING BOTH CLOUD AND TE...cscpconf
 
The improvement and performance
The improvement and performanceThe improvement and performance
The improvement and performancecsandit
 
The data center impact of cloud, analytics, mobile, social and security rlw03...
The data center impact of cloud, analytics, mobile, social and security rlw03...The data center impact of cloud, analytics, mobile, social and security rlw03...
The data center impact of cloud, analytics, mobile, social and security rlw03...Diego Alberto Tamayo
 
HOW-CLOUD-IMPLEMENTATION-CAN-ENSURE-MAXIMUM-ROI.pdf
HOW-CLOUD-IMPLEMENTATION-CAN-ENSURE-MAXIMUM-ROI.pdfHOW-CLOUD-IMPLEMENTATION-CAN-ENSURE-MAXIMUM-ROI.pdf
HOW-CLOUD-IMPLEMENTATION-CAN-ENSURE-MAXIMUM-ROI.pdfAgaram Technologies
 
AA using WS vanZyl 2002-05-06
AA using WS vanZyl 2002-05-06AA using WS vanZyl 2002-05-06
AA using WS vanZyl 2002-05-06Jay van Zyl
 
Cloud computing
Cloud computingCloud computing
Cloud computingleninlal
 

Similar to What is real time SOA? (20)

A Converged Approach to Standards for Industrial Automation
A Converged Approach to Standards for Industrial AutomationA Converged Approach to Standards for Industrial Automation
A Converged Approach to Standards for Industrial Automation
 
Evolution of #cloud computing
Evolution of #cloud computingEvolution of #cloud computing
Evolution of #cloud computing
 
Data center-terminology photostory-
Data center-terminology photostory-Data center-terminology photostory-
Data center-terminology photostory-
 
Data center terminology photostory
Data center terminology photostoryData center terminology photostory
Data center terminology photostory
 
[FAQs] Best Practices for IT/OT Convergence
[FAQs] Best Practices for IT/OT Convergence[FAQs] Best Practices for IT/OT Convergence
[FAQs] Best Practices for IT/OT Convergence
 
It’s raining savings from the cloud
It’s raining savings from the cloudIt’s raining savings from the cloud
It’s raining savings from the cloud
 
Governance in the age of cloud
Governance in the age of cloudGovernance in the age of cloud
Governance in the age of cloud
 
Cloud computing CXO's guide
Cloud computing CXO's guideCloud computing CXO's guide
Cloud computing CXO's guide
 
Cloud computing whitepaper(2)
Cloud computing whitepaper(2)Cloud computing whitepaper(2)
Cloud computing whitepaper(2)
 
The Future of Convergence Paper
The Future of Convergence PaperThe Future of Convergence Paper
The Future of Convergence Paper
 
Scope of Data Integration
Scope of Data IntegrationScope of Data Integration
Scope of Data Integration
 
DDS Best Practices
DDS Best PracticesDDS Best Practices
DDS Best Practices
 
Cloud computing Paper
Cloud computing Paper Cloud computing Paper
Cloud computing Paper
 
THE IMPROVEMENT AND PERFORMANCE OF MOBILE ENVIRONMENT USING BOTH CLOUD AND TE...
THE IMPROVEMENT AND PERFORMANCE OF MOBILE ENVIRONMENT USING BOTH CLOUD AND TE...THE IMPROVEMENT AND PERFORMANCE OF MOBILE ENVIRONMENT USING BOTH CLOUD AND TE...
THE IMPROVEMENT AND PERFORMANCE OF MOBILE ENVIRONMENT USING BOTH CLOUD AND TE...
 
THE IMPROVEMENT AND PERFORMANCE OF MOBILE ENVIRONMENT USING BOTH CLOUD AND TE...
THE IMPROVEMENT AND PERFORMANCE OF MOBILE ENVIRONMENT USING BOTH CLOUD AND TE...THE IMPROVEMENT AND PERFORMANCE OF MOBILE ENVIRONMENT USING BOTH CLOUD AND TE...
THE IMPROVEMENT AND PERFORMANCE OF MOBILE ENVIRONMENT USING BOTH CLOUD AND TE...
 
The improvement and performance
The improvement and performanceThe improvement and performance
The improvement and performance
 
The data center impact of cloud, analytics, mobile, social and security rlw03...
The data center impact of cloud, analytics, mobile, social and security rlw03...The data center impact of cloud, analytics, mobile, social and security rlw03...
The data center impact of cloud, analytics, mobile, social and security rlw03...
 
HOW-CLOUD-IMPLEMENTATION-CAN-ENSURE-MAXIMUM-ROI.pdf
HOW-CLOUD-IMPLEMENTATION-CAN-ENSURE-MAXIMUM-ROI.pdfHOW-CLOUD-IMPLEMENTATION-CAN-ENSURE-MAXIMUM-ROI.pdf
HOW-CLOUD-IMPLEMENTATION-CAN-ENSURE-MAXIMUM-ROI.pdf
 
AA using WS vanZyl 2002-05-06
AA using WS vanZyl 2002-05-06AA using WS vanZyl 2002-05-06
AA using WS vanZyl 2002-05-06
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 

Recently uploaded

Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
2.pdf Ejercicios de programaciĂłn competitiva
2.pdf Ejercicios de programaciĂłn competitiva2.pdf Ejercicios de programaciĂłn competitiva
2.pdf Ejercicios de programaciĂłn competitivaDiego IvĂĄn Oliveros Acosta
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 

Recently uploaded (20)

Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
2.pdf Ejercicios de programaciĂłn competitiva
2.pdf Ejercicios de programaciĂłn competitiva2.pdf Ejercicios de programaciĂłn competitiva
2.pdf Ejercicios de programaciĂłn competitiva
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 

What is real time SOA?

  • 1. What Is Real-Time SOA? By Stan Schneider, Ph.D. Real-Time Innovations, Inc. 385 Moffett Park Drive Sunnyvale, CA 94089 June 2010
  • 2. Real-Time Innovations, Inc. 2 Copyright Š 2010 Synopsis: Integration effort and risk grow dramatically with system and team size. Connecting large systems developed by independent teams at different times requires connecting multiple systems, thus creating a “system of systems”. Enterprise systems use a design called Service Oriented Architecture (SOA) to effect this integration. However, the technologies used in the enterprise do not apply well to real-time systems; they cannot handle the strict delivery and timing requirements. So what is “Real-Time SOA”? Ideally, it is an architecture that, like Enterprise SOA, can effectively integrate large systems of systems. However, unlike Enterprise SOA, Real-Time SOA must handle demanding real-time systems, connecting them with each other and with enterprise technologies. The Object Management Group (OMG) Data Distribution Service (DDS) standard provides the right substrate. However, as a peer-to-peer protocol, DDS cannot automatically mediate between multiple systems. With the right technology to route between DDS systems, we can integrate multiple applications built by different teams. Adding in adapters to other protocols and enterprise technologies allows connecting much larger systems. This paper outlines how to apply SOA principles to create a fast, distributed system of systems based on DDS. The system can include both real-time and enterprise-class functionality. How critical is integration? On Nov 2, 2006, the Navy intentionally sank the AEGIS cruiser Valley Forge. It was the 4th Ticonderoga-class AEGIS cruiser to be built, in service for only 18 years. It was designed to serve at least three decades. So what happened? The hull was sound. The engine and major components were serviceable. However, the system software could not integrate new technology and modern weapons. Shockingly, upgrading the software cost too much to justify the continued existence of a billion- dollar asseti . So, down it went. How could this happen? Integrating complex systems is difficult, made even more so by the challenge of coordinating teams working on different subsystems. In the past, the only way to make this work was to have the entire system built under the direct control of a single organization, known as “stovepiping”. Stovepiping is expensive, and worse, it does not encourage designs that can evolve. Thus, integration and maintenance costs balloon. In the case of the Valley Forge, those costs were more than the ship was worth. And the Valley Forge is hardly an isolated case. Integration costs for real-time systems are out of control in many industries. This cannot continue.
  • 3. Real-Time Innovations, Inc. 3 Copyright Š 2010 The integration problem Integration effort and risk grow dramatically with system and team size. Very small teams require no particular effort beyond informal communication. If the team grows to ten programmers, they need weekly meetings to review progress, interfaces, and design changes. A team of a hundred must divide into groups. Design documents, reviews, and project management become important. By the time a team grows to 1000 people, it faces all the stresses that dominate large-company projects. The project may even include multiple organizations. Now, the interfaces must be negotiated in detail. Technology selection becomes a political nightmare. Full-team design reviews become the critical milestones. Integration dominates the system cost, especially if you include the overhead of processes and pre-work. Even minor changes require careful documentation, schedule slips, and additional payments. If you add in the time factor, things get worse. Large systems are developed and maintained in pieces over time. That means that old technologies and designs must somehow interface with new versions. If the original design didn’t do a good job defining the interfaces, this can be fatal. Mistakes like creating “custom” versions of software (a real temptation with open source) prevent upgrades to the latest versions of fundamental infrastructure. Without the latest platforms, all dependent technologies must be ported or adapted. “Reuse” is a never-realized dream. Instead of upgrading gracefully, contractors charge hundreds of millions for seemingly simple refreshes. Simply put, integration costs dominate large system development. It gets worse, not better, during the maintenance phase. Figure 1: Integration Costs Explode as Systems Grow Integration grows dramatically with system size. The cost and risk of building and maintaining large systems is completely dominated by integration.
  • 4. Real-Time Innovations, Inc. 4 Copyright Š 2010 The fundamental problem: coupled development So why is this? The root cause is quite obvious. Systems are made of modules. Different teams make the modules. As teams get large, communication (and agreement) gets much more difficult. Thus, large teams can only effectively build systems from independently designed, independently implemented, independently managed modules that can evolve independently over time. But, that’s easier said than done. It implies that we can integrate modules not designed to work together. And that’s Not Easy. Integrating real-time systems Our first challenge is to put together high-performance real-time distributed systems from independent modules. Figure 2 shows typical designs with traditional “client server” or “remote object” technologies, such as CORBA, ODBC, RMA, OPC, etc.. The development process is to first determine functional boundaries, then design access methods and interfaces for each piece of information. The data is “hidden” behind object abstractions. Data requirements of each device or processing endpoint are considered only as an afterthought. For larger systems, developers then decide what information will reside on which servers, and where to put the servers and clients. This design assumes the network is relatively static, servers are always present and accessible, the server/client relationships are clear, clients know where and—most importantly—when to request data, and all nodes have similar delivery requirements. It also assumes a “synchronous” processing model; clients request service and then wait for a reply. This "server centric" design quickly breaks down as complexity grows. It’s hard to add new data flows (red lines). Every server is essentially coupled to every client. Unless the access methods happen to provide everything needed, every single interface the new component touches must be reworked.
  • 5. Real-Time Innovations, Inc. 5 Copyright Š 2010 Figure 2: Traditional OO Designs Lead to Tightly Coupled Networks Traditional technologies require developers to define access methods for each function, and then implement servers and other special interfaces. This leads to “spaghetti” network design and “stovepipe” systemsii . Data-centric design, in Figure 3, offers an alternative. With data-centric design, developers specify only the data requirements—inputs and outputs—of each subsystem. This is the exact opposite of the above approach; rather than hiding data, designers specify exactly what information flow affects each module. Integration middleware discovers the producers and consumers of information and provides the data immediately when needed. This “data-centric publish subscribe” design eliminates coupling and greatly simplifies integration of systems with demanding or complex data-sharing requirements. Driven by the rapid adoption of the Object Management Group (OMG) Data Distribution Service (DDS) standard, many fielded systems are using this approach. DDS is the planned future integration technology of most military systems in the US and its allies. Its use is also spreading into many other applications, including financial trading, automotive driver assistance, air-traffic control, and electrical power generation. Figure 3: Data Centric Design Implements an Abstract “Bus” DDS Data Centric Publish Subscribe specifies the interfaces and information model crisply. With clear interface specifications, components can be plugged into an information bus.
  • 6. Real-Time Innovations, Inc. 6 Copyright Š 2010 Plugging in components sounds simple, but it is not trivial The key benefit of DDS is that you can “plug in” new modules without redesigning other interfaces (red line in the figure). That looks simple, but it is anything but obvious how to do that. Having a pluggable interface assumes that the “bus” specification captures all the key real- time constraints: What is the data? When is it available? When is it needed? What happens if it’s not on time? Are there backup sources? How are they engaged? It also makes a huge assumption that adding more load will not affect the overall system performance; if it does, other components can fail even if there is no direct connection. That’s an insidious type of indirect coupling. At a high level, participants on a DDS bus just subscribe to the information they need and publish what they produce. Information is identified by “Topics”, and is strongly typed for safety and easier integration. The middleware automatically “discovers” new entrants. Types are communicated before information flow begins, so all modules know what they’re getting (called being “content aware”). And because data can flow without servers or synchronization delays, the system is blazingly fast; DDS is easily the highest-performance middleware standardiii . But perhaps the key to the success of DDS is that it crisply defines an information model. Fundamentally, if you define the information model correctly, then components can specify their needs at design time. At runtime, they then produce and consume via the model, implemented by the middleware. The modules are not directly dependent on each other. This is the key to avoiding coupling. The components adapt to the model, not the other way around. Other messaging technologies (e.g JMS) can’t do this because they don’t define an information modeliv . DDS defines the information model with over 20 “quality of service” (QoS) parameters. QoS settings stipulate if a publisher can supply reliable information flow, how fast it can supply data, and when you will find out if it’s up or down. A subscriber can specify exactly what it needs, even down to filtering out updates based on timing or the content of the message. The middleware then looks at requests from “plugged in” subscribers, and decides if any publishers can satisfy those requests. If so, it establishes “contracts” between the publisher and subscriber and starts sending data. If not, it reports an error. An example contract might be, “The publisher will update the subscriber at least every millisecond, and the communication must be reliable, so retry to repair transmission errors. If the publisher fails, switch to a backup.” That’s a small example. The full set of DDS QoS parameters can integrate hundreds of very complex, demanding applications. And because the middleware is fast, the specifications can be set to satisfy very demanding real-time requirements. Fielded DDS systems send up to millions of messages per second, with latencies measured in the tens of microseconds, through millions of publish-subscribe pairings. Designers can specify timing requirements, supporting systems that have deterministic delivery needs. Reliable multicast ensures that new “plug ins” don’t burden the system. It scales well; applications comprising up to 1000 computers are deployed.
  • 7. Real-Time Innovations, Inc. 7 Copyright Š 2010 DDS particularly excels when the application needs non-stop reliability, such as a in a battle management or an electrical grid system. Radar example QoS contracts are made on a per-data-flow-path basis. So, for instance, consider a high-speed radar application that publishes “tracks” to many different subscriber applications. It must send updates 2000 times a second to a weapon system trying to track incoming missiles. For this subscriber, the latest data is best, so if a sample is lost due to a transmission error, don’t waste time retrying old data. At the same time, a logging system needs the radar to reliably deliver everything being tracked for later analysis. At the same time, this data should be multicast to 50 operator screens, but they can only take 10 samples a second. Each screen may further select a region of interest, e.g. display only tracks within 5 miles, coming towards me, and only things that are not identified as friendly. DDS can handle all this and more. All at the same time. And, because these issues are being managed by the middleware, the application can simply focus on logic and processing. Of course, all these issues are handled behind the scenes by the middleware. It doesn’t impact the application. You can imagine how much this simplifies application development and integration. Now, suppose all this is working and deployed. And then we need to add a new capability. For instance, let’s use our radar to coordinate air traffic in our local area. Since every service has crisply defined its capabilities, we don’t require any change to any components. The new application simply plugs in and works. Of course, this assumes performance is not affected by loading. DDS implementations vary in their ability to scale, but those that implement direct peer-to-peer reliable multicast suffer very little performance hit with higher offered load. Implemented well, DDS is orders of magnitude faster than other middleware designs. And the “QoS contract” concept adds a layer of failure detection. If new load does cause an overload, the middleware will immediately notify the other applications that their contracts were violated. That helps find design issues early, during system test. It also allows live systems to take effective remedial action, should this occur during operation. Integrating systems of systems So, to summarize the above, DDS’s data-centric publish subscribe connects real-time systems. It’s the right architecture for these applications; it defines interfaces, timing, and QoS control. Everything is decentralized for redundancy and speed. However, it’s not the whole story. Large systems that must be developed and maintained over many years must be able to combine without any premeditated coordination. Fundamentally, for instance, to plug into the bus, all the components on a DDS network (a “domain”) must
  • 8. Real-Time Innovations, Inc. 8 Copyright Š 2010 agree on topics and types. Even if everyone uses DDS, different groups will choose different topics and types. And even a single group’s design will change over time. So, to integrate these systems, we at least have to merge multiple, different DDS domains. Moreover, not all systems use DDS; we must also merge many different protocols, legacy systems, and enterprise technologies. DDS alone can’t handle that. Fundamentally, DDS decouples modules, but not development. It’s a great substrate. But it’s not enough. SOA: Decoupled development in the enterprise Let’s take a step back and look at the successful enterprise technology for integrating systems of systems: SOA. SOA stands for “Service Oriented Architecture”. A SOA is a system architecture that builds a complex system from independent “services”. If you are familiar with the term “SOA”, you probably know it as the design behind web services. Web services and SOA are phenomenally successful in the enterprise. Because they enable decoupled development, SOA and web services dominate today’s enterprise architecture. In fact, it’s not much of an overstatement to say that SOA is today’s enterprise architecture. SOA, implemented as web services, integrates the enterprise. Services are independent entities that implement business functions. Applications that execute as loosely coupled services can be developed independently and linked later. That’s how a web store can charge your credit card and arrange shipping via multiple vendors. Those applications weren’t designed together. They were integrated from independent modules. The web obviously can plug and play components built by different teams at different times, even using different technologies. How do web services work? A detailed description is beyond this paper. However, fundamentally, the key features are crisp interface definitions (WSDL files), known places to get those interfaces (UDDI servers), and shared type definitions (XML). How does this compare to DDS? Although the implementation is very different, the analogy to DDS is striking: both support interface definitions (WSDL v QoS), interface service (UDDI v DDS topic discovery), and content-aware type sharing (XML v DDS type discovery). These are the core features of a distributed integration substrate. The enterprise integration point: ESB But enterprise SOA has something that DDS does not. At run time, enterprise SOA leverages a key integration technology: an application called an Enterprise Service Bus (ESB). An ESB runs on a single logical machine; it is not a distributed concept, despite the “bus” in its name. The ESB’s function is protocol interchange. Fundamentally, it “routes” incoming messages to the right service. It can speak many protocols, e.g. SOAP and JMS. It can also translate types between services (called “mediation”). With these abilities, an ESB can connect independently
  • 9. Real-Time Innovations, Inc. 9 Copyright Š 2010 developed applications, even if they don’t share types or know where to route their requests. See Figure 4. Figure 4: Enterprise Systems Leverage an ESB for Integration Enterprise SOA uses an Enterprise Service Bus (ESB) to route requests to the right service. It allows development of complex systems built by independent teams at independent times. The ESB can connect them at runtime. To integrate independently developed systems, DDS needs the equivalent of an ESB. Integrating real-time systems of systems So, if our goal is to integrate real-time systems with each other and with enterprise systems, this analysis brings up three obvious questions: • Can we use enterprise SOA technology to integrate multiple real-time systems? • Can we connect a real-time system to an enterprise system with enterprise SOA? • Can we use SOA principles to extend DDS to integrate real-time and enterprise systems? Let’s take a look at each of these questions. Can we use enterprise SOA to integrate real-time systems? The first obvious question is if we can just use enterprise ESB technology for real-time systems. It certainly can integrate many technologies. Unfortunately, web services and ESBs are woefully inadequate for integrating real-time systems. They have no concept of timing control. There’s weak QoS control, and the parameters are wrong for demanding real-time applications. Worse, enterprise SOA systems are centralized for easy deployment, administration, and management. While the net may look like a “cloud”, the key components like ESBs fundamentally live in data centers, and you can’t put a data center on a battlefield (at least, not if you want to win). And then there’s performance. Enterprise SOAs are just not fast on the scale required to integrate a combat system or other “real-time” applications. Some web services vendors call
  • 10. Real-Time Innovations, Inc. 10 Copyright Š 2010 their web services “Real-Time SOA”. What they mean by that is a system capable of responding to web transactions in a second, or perhaps push data out every tenth of a second or so. That’s fast compared to human response time. But, it can’t control a radar system. Real-time systems must send thousands or millions of messages a second with sub-millisecond latency. Web services are way (way) too slow. And even a fast web service wouldn’t work. Web services don’t model time, so you can’t request response within an amount of time or find out if it will be late. Real-time is more about consistency of delivery (“determinism”) that just speed. Radar systems, for instance, flat-out fail if they deliver data a little bit late. Users will wait a little longer while the system responds. Incoming missiles won’t. Enterprise SOA fails in real time systems. Can we connect a real-time system to an enterprise system with enterprise SOA? So, if enterprise SOA can’t connect real-time systems, can it at least connect real-time systems to enterprise systems? There are certainly many candidate enterprise technologies that could talk to DDS. Apache Camel, for instance, supports 1000 plug-in protocols. If you want, for example, to connect a tactical real-time system with its enterprise support environment, why not just plug in DDS and go? This is appealing. In fact, RTI tried it. It makes a nice demo…but flat-out failed in real application. Fundamentally, it doesn’t solve the real problem. To understand why, let’s look at some of the important differences between real-time and enterprise systems. Real-Time systems: • May send millions of messages/second • Need latency measured in the microseconds • Must be distributed for redundancy and speed • Require strict QoS and timing control • Use fast binary data formats Enterprise systems: • Send at most hundreds or a few thousand messages/second • Expect latency of at least many milliseconds, or even seconds • Must be managed centrally (administration, backup, etc., are all in data centers) • Are burdened with layers of business logic support • Use heavyweight wire data formats like XML For these and other reasons, enterprise technologies do many things that Don’t Make Sense for real-time systems. For instance, ESBs normalize messages. Camel translates everything to Java objects and then back. That’s slow for little benefit in a real-time environment. If you expect
  • 11. Real-Time Innovations, Inc. 11 Copyright Š 2010 the ESB to perform key functions like mediation for the real-time system, it will quickly be overwhelmed. So, bridging real-time systems through an enterprise ESB fails for many good reasons. It’s slow. You lose all timing & QoS information. It imposes single points of failure and choke points. Bottom line, it’s fundamentally the wrong end to fix problem. It just doesn’t make sense to connect the real-time system directly through an ESB.aragraph header Can we use SOA principles to extend DDS to integrate real-time and enterprise systems? So, DDS is missing the key ESB-like functionality, “routing”. Can we do that in a way that’s compatible with the reality of real-time demands? That’s an interesting proposition. It defies the “conventional wisdom” of just slamming all the integration load onto the ESB. But as we’ve seen, DDS is also a powerful integration substrate. And it has the key advantages of being fundamentally distributed and fast. So…can we build a fast, distributed analog of an ESB? Real-time Routing Connecting DDS domains Let’s consider the simplest problem first: say we have two DDS applications, maybe a radar system and a display system. Now, obviously, it would be best to design them together, use a single DDS bus, and connect cleanly through shared types, topics, and QoS parameters. Then we could develop a high-performance, reliable platform by starting with solid data-centric design principles that encompass the whole application. But, let’s assume that’s not possible in this case. These are big systems involving many applications each. They were originally developed for other uses; perhaps we are “borrowing” the display subsystem from a ship architecture, and merging it with a radar from a ground-based anti-missile system. Perhaps these systems are modules that must be used in more than just our one application, and those other uses have other requirements. Or maybe the radar is a very new technology that we’re trying to integrate into our ship, to keep it affordably competitive. So, our challenge is to reuse Big Modules that were developed independently, even by other teams or other companies at other times. As every program manager knows, this is a common desire. (And the customer rarely understands why it’s so hard or expensive.) Unfortunately, reuse is usually an unfulfilled dream (hallucination); integrating two large systems that were not designed to work together is a famously frustrating exercise.
  • 12. Real-Time Innovations, Inc. 12 Copyright Š 2010 Routing service How can we effectively connect our two independent DDS domains? What would such a routing service need to do? Without a routing service, the only way to connect domains is to build a custom “bridge” that knows exactly what data to pass, subscribes to it, translates it for the other side, and publishes it with the schema and topic names that the other side expects. This is doable. However, custom bridges are expensive to write and maintain. Our routing service clearly needs to bridge packets between the networks. But to do routing generically, our service needs to provide two key functions in configurable form: guards and translators. Then, it needs to connect to both domains, find the right data, and route it to the right destination. Guards Guards decide what our subsystems will export. Obviously, the display does not need access to every single piece of data flying around in the radar system. It only needs tracks (in our simplified example). The guard’s job is to select just that information and expose nothing else. It can also change the QoS of the exported information; perhaps we want to control our commitment to external systems. So, a guard is a filter that intelligently allows only the right information through to the other side. Importantly, the guard is also an obvious security point. Because the routing service controls all information entering or leaving the system, it is a key opportunity to provide security. That is critical, but beyond this paper. Translators Secondly, we need to transform languages between the systems. Our radar and display both understand the concept of “tracks”, but suppose the radar publishes tracks in X-Y-Z position relative to its location, while the display expects latitude and longitude (see Fig 5).
  • 13. Real-Time Innovations, Inc. 13 Copyright Š 2010 Figure 5: Translation and Guarding are the Key Integration Functions Any system that must connect independently developed components must translate between the data types on each end. It also must know what information to expose. The only alternative is an expensive rewrite of one of the end applications. This is indeed a very simple example. Real track data structures can have hundreds of fields. The concepts are unchanged; the translator must match the topic names and type schemas on both ends. Tap into discovery on both sides So how can we do these steps generically? The routing service must be able to find the right information within the network and publish it to the other side. Since our routing service can tap into DDS automatic discovery, finding information is manageable. The routing service must also understand and process topics and types. Since DDS is content aware, these functions are implementable. The translators become simple scripts or plugins for each schema processed. Guards become configuration scripts that specify which topics to translate. As a bonus, DDS content awareness means that the routing service checks all types at runtime; the system can thus work safely in an environment where the schema may change. RTI has implemented such a routing service; it is configured via XML scripts.
  • 14. Real-Time Innovations, Inc. 14 Copyright Š 2010 Figure 6: RTI Routing Service Connects Domains RTI Routing Service connects two DDS domains. It implements both guarding and translation. The guard selects which data will be exported from the domain. The translator matches topics and schema between domains. It can find the data it needs via DDS discovery. Leverage easy distribution to make it scale Now, suppose we want to integrate multiple DDS domains. An ESB-like approach would imply that we should expand our routing service to process multiple DDS data streams. However, with the DDS bus available, there’s no need for a monolithic ESB. We can just instantiate more routing services, and distribute them around the system as needed. That’s a much faster and more robust design. We can even have multiple routing services between single pairs of domains for redundancy. Build DDS into a real-time distributed ESB This last point is suggestive of a bigger solution. Of course, Routing Service (RS) can do more than just connect using the DDS protocol. We can extend it with plug-in protocols. Then it can connect DDS domains through TCP, for example. This allows DDS to cleanly traverse firewalls. The plugin can encrypt traffic. Thus, we can securely span WAN networks. We can take this even further. The RS can connect DDS to non-DDS systems. With plugins, the RS can be a programmable bridge to any protocol, e.g.: Link 16, STANAG 4586, JMS, C37.118, compressed DDS streams, and many others. Each RS, running a plugin, can integrate another protocol into the system. Of course, DDS makes it easy to have many of these. Each can run on a separate node. The result? An efficient, distributed integration design. Besides combining protocols, DDS can be used to integrate other technologies. For instance, RTI has DDS services to integrate databases, web services, and tools like Excel. A JMS API on the middleware can offer clean and easy integration with enterprise technologies. The JMS API with
  • 15. Real-Time Innovations, Inc. 15 Copyright Š 2010 guarding can also interface more cleanly—without the intermediate “normalization” step—with enterprise ESBs (like Camel). Together, we could call design a “Real-Time Service Bus”. It fulfills the same function and delivers the same benefit as an Enterprise Service Bus, except that it’s fundamentally distributed, fast, and timing aware. Modules can live on any node to integrate any technology. The Real-Time Service Bus provides the integration “point” that DDS was missing, in a distributed architecture. Figure 6: A Real-Time Service Bus By adding protocol plug-ins and enterprise technology adapters, DDS becomes the substrate for a Real-Time Service Bus that functions as a “distributed ESB”. It delivers the key benefits of real-time SOA without the disadvantages of web services implementations. So is that Real-Time SOA? This brings the key benefits of a SOA to true real time The architecture outlined here is certainly a service-oriented architecture (SOA) by the formal definition. With RTI’s powerful Routing Service, designers can build real-time systems from many independent services. More importantly, it delivers the key decoupled-development benefit. Services, even entire DDS or other applications, can be developed by separate teams, at different times, with different designs. The translation function allows them to then be integrated later. If a component evolves (and this is key) only the translation configuration needs to be adjusted. We will repeat that the innovation here is vastly different from what enterprise vendors call “Real-Time SOA”, which really means faster web services. The DDS-based Real-Time Service Bus is a SOA that truly integrates a real-time system of systems. And, it satisfies demanding
  • 16. Real-Time Innovations, Inc. 16 Copyright Š 2010 performance, reliability, and control needs. With protocol plugins and other technology interface components, it takes this a step further. It allows the development of complex systems that include both real-time and enterprise components. It integrates large real-time systems with each other and with enterprise systems. Even lying on the bottom of the Pacific, the Valley Forge can still serve software designers. Its lessons? Integration is key. Architecture enables integration. Real-time systems require real- time technology. And emerging real-time technology can deliver the levels of integration that can prevent this waste in the future. The key lesson: designing for integration from day one with the right approach is perhaps the most important consideration in building and maintaining affordable distributed systems. Next steps To learn more about RTI Data Distribution Service or to download a fully-functional software evaluation, please contact us at info@rti.com or visit http://www.rti.com. i Admiral Frick, PEO IWS, at the 2006 ASNE Combat Systems Symposium ii Figure modified from Raytheon talk at OMG DDS Day seminar. iii All performance results in this paper are dependent on the right implementation. RTI publishes copious data and numerous studies comparing middleware implementations at www.rti.com. iv DDS also allows interoperation across operating systems, languages, even DDS implementations. No other middleware standard does all that either, but that’s beyond this paper.