This document provides an overview of integration patterns for mission/business critical systems of systems based on Data Distribution Service (DDS). It discusses common integration challenges such as data integration, data policing, impedance/quality of service (QoS) adaptation, and technology integration. It then describes specific integration patterns for data integration, impedance/QoS adaptation, and security. The document concludes by discussing how the OpenSplice Gateway leverages integration frameworks to enable connectivity and integration across DDS and other technologies.
[2024]Digital Global Overview Report 2024 Meltwater.pdf
Integration Patterns for Mission Critical Systems
1. Integration Patterns
[For Mission/Business Critical System of Systems]
OpenSplice DDS
Angelo CORSARO, Ph.D.
Chief Technology Officer
OMG DDS Sig Co-Chair
PrismTech
angelo.corsaro@prismtech.com
2. 18:45 CET OpenSplice DDS Hans van't Hag, OpenSplice DDS Product
Today - The V6 Manager, PrismTech
game changers
19:10 CET OpenSplice DDS Dr Angelo Corsaro, OpenSplice DDS CTO,
Tomorrow - What's PrismTech
coming next
19:35 CET Buffet and Hands
on with OpenSplice
DDS
Thank you for registering to attend PrismTech’s OpenSplice DDS User
Conference which will be held in Paris, France on Tuesday 17 April 2012 at 20.05 CET The Community - Dr Angelo Corsaro, OpenSplice DDS CTO,
6.00pm Central European Time.
Your contributions PrismTech and Hans van't Hag, OpenSplice
enriching DDS Product Manager, PrismTech
We very much look forward to meeting both new and experienced OpenSplice
OpenSplice DDS
DDS Users at the event. Please see below some logistical information for the
event.
20:30 CET OpenSplice DDS OpenSplice DDS Users
Copyright
2011,
PrismTech
–
All
Rights
Reserved.
Event Location User Success
Stories
The OpenSplice DDS User Conference is free to attend and will be held at:
20:45 CET The OpenSplice All
GRAND ETOILE D’OR ROOM (first level) DDS Forum – Your
Hotel Concorde La Fayette - http://www.concorde-lafayette.com/en/? questions
3 Place du General Koenig, answered and your
75017, ideas discussed
Paris,
OpenSplice DDS
France. 21:30 CET Finish
The hotel is conveniently located close to the Champs-Elysees and the business
district of La Defense. Detailed directions to the hotel via different travel modes
is available from: Special Offer
http://www.concorde-lafayette.com/en/paris-tourism/directions.aspx
The OpenSplice DDS User Conference is being held in collaboration with the
Event Agenda Object Management Group (OMG) Real-Time, Embedded, and Enterprise Scale
Time-Critical Systems Workshop, which will run from Tuesday 17 April until
The agenda for the event will be as follows: Thursday 19 April.
Time Agenda Presenter PrismTech is pleased to announce that as a platinum sponsor of the Workshop,
18:00 CET Drinks and
we are able to offer you a special discounted rate.
Canapes
Simply click on the link - http://www.omg.org/registration/RT-WS/index.htm -
18:15 CET The Progress of Dr Richard Soley, OMG and enter the code “rts” where it prompts you to do so.
DDS
The code gives you a €295 saving off the standard conference rate as well as
18:30 CET The Success Story Keith Steele, CEO, PrismTech pricing options for individual days.
that is OpenSplice
DDS
3. Scope and Context
This presentation will focus on Integration Patterns for systems
Copyright
2011,
PrismTech
–
All
Rights
Reserved.
☐
based on DDS
☐ The patterns presented address the challenges arising when
OpenSplice DDS
integrating multiple DDS-based systems or when bridging across
technology
☐ Finally, it is worth keeping in mind that Mission/Business- Critical
systems have specific QoS requirement that should not be
affected by integration!
4. Integration Challenges [1/2]
☐ Data Integration
Copyright
2011,
PrismTech
–
All
Rights
Reserved.
☐ Enable data to flow across systems/sub-systems
☐ Data Policing
Control which data is allowed to get in/out of a given system/subsystem
OpenSplice DDS
☐
☐ Impedance/QoS Adaptation
☐ Different network bandwidth
☐ Different processing power
☐ Ensure that QoS properties of parts are preserved when integrated into
the whole
5. Integration Challenges [2/2]
Copyright
2011,
PrismTech
–
All
Rights
Reserved.
☐ Technology Integration
☐ Enable data to flow across multiple formats and communication stacks
☐ Security
OpenSplice DDS
☐ Secure information exchange across system/sub-system boundaries
7. Data Integration Patterns [1/2]
Data Integration Patterns are a synthesis of the most commonly used
Copyright
2011,
PrismTech
–
All
Rights
Reserved.
techniques for integrating systems that don’t share the same
representation for some given entities
☐ Some common Data Integration Patterns are
OpenSplice DDS
☐ Content Enricher
☐ Content Filter
☐ Type Transformation
☐ Canonical Data Model
8. Content Enricher
Copyright
2011,
PrismTech
–
All
Rights
Reserved.
☐ Enriches a data type by adding additional information required
by the target system/subsystem
☐ Example: Compute speed and enrich position
OpenSplice DDS
Content Enricher
struct Dynamics2D {
struct CartesianCoord2D { long x;
long x; long y;
long y; long dx;
}; long dy;
System A }; System B
9. Content Filter
☐ Projects a data type by removing information not required by the
Copyright
2011,
PrismTech
–
All
Rights
Reserved.
target system/subsystem
☐ Example: Going from Dynamics to Position
OpenSplice DDS
Content Filter
struct Dynamics2D {
struct CartesianCoord2D { long x;
long x; long y;
long y; long dx;
}; long dy;
System A }; System B
10. Canonical Data Model
Copyright
2011,
PrismTech
–
All
Rights
Reserved.
☐ The Canonical Data Model Pattern is commonly
used in DDS systems. In this case, data is always
transformed into the representation used by the
“Canonical Model”. This approach is very useful
as it reduces the integration complexity Canonical Data Model
OpenSplice DDS
☐ Example: Coordinate Systems
Type Transformer
struct CartesianCoord2D { struct PolarCoord2D {
long x; long rho;
long y; float theta;
}; };
System A System B
12. Impedance/QoS Adaptation Patterns
Copyright
2011,
PrismTech
–
All
Rights
Reserved.
☐ Impedance/QoS Adaptation Patterns provide solutions to the
integration of systems/subsystems that have non-negligible
difference w.r.t. their computational and/or networking capabilities
OpenSplice DDS
☐ Commonly Used Patterns are:
☐ Impedance/QoS Mediator
☐ Rate Adaptation
☐ Compressor
13. Impedance Mediator
Copyright
2011,
PrismTech
–
All
Rights
Reserved.
System A (“Fast System”) System B (“Slow System”) Data
Reader
Data
Writer
Data
Reader
TopicD TopicD
OpenSplice DDS
TopicA TopicA
Data
TopicB TopicB Reader
Data
Writer
TopicC TopicC
...
Data Data
Writer Reader
14. Impedance Mediator
System A (“Fast System”) System B (“Slow System”) Data
Copyright
2011,
PrismTech
–
All
Rights
Reserved.
Reader
Data
Writer
Data
Reader
TopicD TopicD
TopicA TopicA
Data
OpenSplice DDS
TopicB TopicB Reader
Data
Writer
TopicC TopicC
...
Data Data
Writer Reader
☐ Direct integration of the two systems could lead to serious issues w.r.t. the
“Fast” System as slow readers could slow down writers. This is not
acceptable on a large class of Mission/Business Critical Systems
15. Impedance Mediator
System A (“Fast System”) System B (“Slow System”) Data
Copyright
2011,
PrismTech
–
All
Rights
Reserved.
Reader
Data
Writer
Data
Reader
TopicD TopicD
TopicA TopicA
Data
Mediator
OpenSplice DDS
TopicB TopicB Reader
Data
Writer
TopicC TopicC
...
Data Data
Writer Reader
☐ The mediator becomes the point of elasticity of the integrated system
☐ It decouples the fast from the slow system and allows for further injection of
integration policies, such as, down-sampling (rate-adaptor), DDS QoS
adaptation and compression
17. Security Patterns
☐ Security Integration Patterns provide common solutions to implement
secure information exchanged across system/subsystems
Copyright
2011,
PrismTech
–
All
Rights
Reserved.
☐ The most commonly used security pattern in integration is the combination
of the Border Security Model with Secure data Tunneling
OpenSplice DDS
Unsecured
Environment
Unsecured System A Unsecured
Environment Secure Communication Environment
System B System C
Unsecured Environment
19. OpenSplice Gateway
☐ Provides DDS applications with unprecedented JMS
Copyright
2011,
PrismTech
–
All
Rights
Reserved.
integration capabilities by supporting high
performance format and content
XM
ST
PP
RE
transformation, routing and QoS mediation OpenSplice
Gateway
Leverages Apache Camel integration
P
Cu
☐
AMQ
sto
framework and its support for over 80
OpenSplice DDS
m
connectors
DDSI-RTPS
☐ OpenSplice Gateway is the best choice for
integrating DDS-interoperable applications with
proprietary as well as standard-based Supported Connectors Include:
messaging technologies, such as JMS and - JMS - HTTP
AMQP, as well as user applications leveraging - REST - AMQP
- CometD - XMPP
Web standards such as W3C Web Services, - CFX - Hibernate
REST and HTML5 WebSockets - TCP & UDP Sockets - Custom
20. Architecture
OpenSplice
Gateway
Based on camel-ospl
Copyright
2011,
PrismTech
–
All
Rights
Reserved.
•
DataReader & Component
DataWriter
•
Typed data OpenSplice DDS
•
No native or camel-ddsi
generated code Component
No marshalling
OpenSplice DDS
•
(raw data buffer) JDDSI
Camel DDS Processors
•
DDSI demarshaller /
marshaller
•
Data transformation
•
Dynamic Poll Enricher
•
QoS adaptations
21. Key Elements
☐ Components: Provide connectivity to a given technology
Copyright
2011,
PrismTech
–
All
Rights
Reserved.
☐ Endpoints: Represent a source/destination of messages from/to a components
☐ Exchanges: Encapsulate data and meta coming from and end-point
☐ Routes: Define path from input endpoints to output endpoints
OpenSplice DDS
☐ Processors: Allow to perform transformation to the data, its format, etc.
route
endpoint exchange
processor
22. Components and Endpoints
☐ A component is a factory of Endpoint instances. Over 80
Copyright
2011,
PrismTech
–
All
Rights
Reserved.
components are supported
☐ Endpoints are specified using URI:
dds:TopicName:DomainID/TopicType?QoS
OpenSplice DDS
☐
☐ cometd://host:port/channelname
☐ jms:[topic:]destinationName
☐ [tcp|udp|vm]:host[:port]
☐ xmpp://host:port/room
☐ …
23. Routes
Copyright
2011,
PrismTech
–
All
Rights
Reserved.
☐ A route defines a path from an in endpoint to an out
endpoint.
☐ Route can be defined in Spring, or using either the Java or
OpenSplice DDS
Scala DSL (I prefer the Scala DSL ;-)
24. Sample Route in Scala
val route= new RouteBuilder {!
Copyright
2011,
PrismTech
–
All
Rights
Reserved.
“dds:Foo:1/FooType” to “dds:Bar:2/FooType” !
}!
DDS Endpoint! Topic Name! DomainID! TypeName!
OpenSplice DDS
val route= new RouteBuilder {!
“ddsi:Foo:1/FooType” to “dds:Bar:2/FooType” !
}!
DDSI Endpoint! Topic Name! DomainID! TypeName!
25. Enterprise Integration Patterns
☐ EIP provide pre-specified ways of integrating
Copyright
2011,
PrismTech
–
All
Rights
Reserved.
endpoints Content Based
Recipient List
Router
☐ The most common integration patterns are
supported, such as, multicast, filtering, Message
A B
OpenSplice DDS
correlation, content-routing, load- FIlter Correlation ID
balancing, etc.
☐ Multicast Ex: Splitter Aggregator
val shapesRoute = new RouteBuilder {!
“dds:Foo:1/FooType” !
"to (“dds:Bar:2/BarType”, “jms:topic:Foo”)!
}!
27. iShapes Application
☐ To explore the features
Copyright
2011,
PrismTech
–
All
Rights
Reserved.
provided by the OpenSplice
Gateway we’ll use the simd-
cxx ishapes application
☐ Three Topics
OpenSplice DDS
☐ Circle, Square, Triangle
☐ One Type
struct ShapeType {
string color;
long x;
long y; Spotted shapes represent subscriptions
long shapesize;
}; Pierced shapes represent publications
#pragma keylist ShapeType color
29. Topic/Domain Bridging
DDS
1 val in = "ddsi:Circle:0/ShapeType" Domain 0
Copyright
2011,
PrismTech
–
All
Rights
Reserved.
2 val out = "ddsi:Square:1/ShapeType"
3 Topic
“Circle”
4 val shapesRoute = new RouteBuilder {
5 in to out
6 }
OpenSplice DDS
☐ When using a DDSI endpoint de-
marshaling is lazy. Thus in this example Topic
“Square”
data is never de-marshalled but simply
sent-over to the target domain, with the DDS
result that domain bridging is very Domain 1
efficient!
30. Type Transformation
DDS
Domain 0
Copyright
2011,
PrismTech
–
All
Rights
Reserved.
1 val shapeRoute0 = new RouteBuilder {
2 in unmarshal(cdrData) process ({
Topic
3 e => foo2Bar(e.getIn.getBody(classOf[Foo]))}) “Foo”
4 to out
5 }
OpenSplice DDS
☐ process allows to perform arbitrary
modifications to the exchange Topic
content “Bar”
☐ As such it can be used to implement DDS
Domain 1
arbitrary type transformations
43. Concluding Remarks
The OpenSplice Gateway, through its tight integration with
Copyright
2011,
PrismTech
–
All
Rights
Reserved.
☐
Apache Camel, provides the best solution for integrating DDS-
based Systems with just about anything else
OpenSplice DDS
☐ The OpenSplice Gateway architecture minimizes the integration
overhead by being lazy -- in other terms, only performing work
when this is necessary for the kind of transformation required
☐ In brief the OpenSplice Gateway provides you with a rich set of
Integration Patterns and great performances!
44. References
Copyright
2011,
PrismTech
–
All
Rights
Reserved.
OpenSplice | DDS
¥ #1 OMG DDS Implementation ¥ Integration Framework
¥ Open Source ¥ Open Source
¥ www.opensplice.org ¥ camel.apache.org
OpenSplice DDS
Escalier
¥ Fastest growing JVM Language ¥ Scala API for OpenSplice DDS
¥ Open Source ¥ Open Source
¥ www.scala-lang.org ¥ github.com/kydos/escalier
45. :: Connect with Us ::
¥opensplice.com ¥forums.opensplice.org
¥@acorsaro
¥opensplice.org ¥opensplicedds@prismtech.com ¥@prismtech
OpenSplice DDS
¥ crc@prismtech.com
¥sales@prismtech.com
¥youtube.com/opensplicetube ¥slideshare.net/angelo.corsaro