The Data Distribution Service [Universal Standard for Real-Time Data Sharing]



Similar documents
OpenSplice DDS. Angelo CORSARO, Ph.D. Chief Technology Officer OMG DDS Sig Co-Chair PrismTech.

DDS. Building The Internet of Things. with. OpenSplice DDS

UML Profile for DDS. a tutorial for OMG Specification in Government Workshop (Real-Time & Embedded Systems) July 13, 2009

Vortex White Paper. Simplifying Real-time Information Integration in Industrial Internet of Things (IIoT) Control Systems

Repeat Success, Not Mistakes; Use DDS Best Practices to Design Your Complex Distributed Systems

What can DDS do for You? Learn how dynamic publish-subscribe messaging can improve the flexibility and scalability of your applications.

Resource Utilization of Middleware Components in Embedded Systems

Addressing the Challenges of Mission-Critical Information Management in Next-Generation Net-Centric Pub/Sub Systems with OpenSplice DDS

DDS and SOA Interfaces to ESB

Messaging Technologies for the Industrial Internet and the Internet of Things Whitepaper

Addressing the Challenge of Distributed Interactive Simulation With Data Distribution Service

A Data Centric Approach for Modular Assurance. Workshop on Real-time, Embedded and Enterprise-Scale Time-Critical Systems 23 March 2011

What can DDS do for Android?

WSO2 Message Broker. Scalable persistent Messaging System

Internet of things (IOT) applications covering industrial domain. Dev Bhattacharya

A Survey Study on Monitoring Service for Grid

A Comparison and Mapping of Data Distribution Service and High-Level Architecture

Unifying the Global Data Space using DDS and SQL

DDS-Enabled Cloud Management Support for Fast Task Offloading

Using DDS to Enable The Real-Time Enterprise Service Bus (RT-ESB)

How To Improve Your Communication With An Informatica Ultra Messaging Streaming Edition

JoramMQ, a distributed MQTT broker for the Internet of Things

OMG Data-Distribution Service (DDS): Architectural Overview

RTI Analyzer. Getting Started Guide

Real-Time Middleware. Agenda. SELEX-SI Heritage. SELEX-SI Overview. SELEX SI Overview Real-Time CORBA Data Distribution Service Concluding Remarks

A Comparison and Mapping of. Data Distribution Service and High-Level Architecture

Pulsar Realtime Analytics At Scale. Tony Ng April 14, 2015

C-DAX: A Cyber-Secure Data and Control Cloud for Power Grids C-DAX Consortium

Building the Internet of Things Jim Green - CTO, Data & Analytics Business Group, Cisco Systems

Bryan Tuft Sr. Sales Consultant Global Embedded Business Unit

Convergence of Distributed Simulation Architectures Using DDS

Could IoT be WebRTC's greatest source of innovation?

Huang-Ming Huang and Christopher Gill. Bala Natarajan and Aniruddha Gokhale

Arrowhead Framework A Local Cloud Approach to Automation. Prof. Jerker Delsing.

IBM Software Group. IBM WebSphere Process Integration Technical Overview

A Fully Standards-Based Approach to Logging High-Throughput Distributed Real-Time Data. Leveraging the DDS and SQL Standards

Enabling the SmartGrid through Cloud Computing

BIG DATA IN THE CLOUD : CHALLENGES AND OPPORTUNITIES MARY- JANE SULE & PROF. MAOZHEN LI BRUNEL UNIVERSITY, LONDON

DESIGN AND RUN-TIME QUALITY OF SERVICE MANAGEMENT TECHNIQUES FOR PUBLISH/SUBSCRIBE DISTRIBUTED REAL-TIME AND EMBEDDED SYSTEMS

A Standards-Based Integration Platform for Reconfigurable Unmanned Aircraft Systems

FlexMaster First Global Wi-Fi Managed Service

RED HAT JBOSS A-MQ COMPARED WITH IBM WEBSPHERE MQ 7.5

Building Scalable Big Data Infrastructure Using Open Source Software. Sam William

Cyber Security. BDS PhantomWorks. Boeing Energy. Copyright 2011 Boeing. All rights reserved.

Reference Architecture, Requirements, Gaps, Roles

Next Generation Open Source Messaging with Apache Apollo

Distribution transparency. Degree of transparency. Openness of distributed systems

What REALLY matters in Cloud Security? RE: Internet of things sensors, data, security and beyond!

Evolving from SCADA to IoT

PROTOTYPE IMPLEMENTATION OF A DEMAND DRIVEN NETWORK MONITORING ARCHITECTURE

OMG Data-Distribution Service: Architectural Overview

SOLUTION BRIEF. Advanced ODBC and JDBC Access to Salesforce Data.

The Information Revolution for the Enterprise

Overview of SODA and The Stepstone Reference Implementation.

CASE STUDY: Oracle TimesTen In-Memory Database and Shared Disk HA Implementation at Instance level. -ORACLE TIMESTEN 11gR1

SQL Anywhere New Features Summary

Architectures for Distributed Real-time Systems

Alfresco Enterprise on AWS: Reference Architecture

Big Data Solutions. Portal Development with MongoDB and Liferay. Solutions

Building Test-Sites with Simware

Big Data for Satellite Business Intelligence

Smart Grid Innovation: A Look at a Microgrid Testbed Industrial Internet Energy Summit Houston, TX June 23, Brett Burger, NI Brett Murphy, RTI

Future Internet Technologies

Scaling Objectivity Database Performance with Panasas Scale-Out NAS Storage

Design Patterns for Large Scale Data Movement. Aaron Lee

Towards a common definition and taxonomy of the Internet of Things. Towards a common definition and taxonomy of the Internet of Things...

SCADE System Technical Data Sheet. System Requirements Analysis. Technical Data Sheet SCADE System

Optimizing High-Performance Trading Solutions: An Engineering Perspective

Classic Grid Architecture

Distributed Embedded Systems

Introduction to WebSphere Process Server and WebSphere Enterprise Service Bus

Trends and Research Opportunities in Spatial Big Data Analytics and Cloud Computing NCSU GeoSpatial Forum

SAP HANA Vora : Gain Contextual Awareness for a Smarter Digital Enterprise

Securely Connect, Network, Access, and Visualize Your Data

Performance Testing BroadR-Reach Automotive Ethernet

Automatic Configuration and Service Discovery for Networked Smart Devices

ORACLE COHERENCE 12CR2

Enabling Cloud Architecture for Globally Distributed Applications

How To Make Data Streaming A Real Time Intelligence

Datasheet iscsi Protocol

A SIP-based Network QoS Provisioning Framework for Cloud-hosted DDS Applications

Integrating Web Messaging into the Enterprise Middleware Layer

Adapting Distributed Real-time and Embedded Pub/Sub Middleware for Cloud Computing Environments

Transcription:

The Data Distribution Service [Universal Standard for Real-Time Data Sharing] Angelo CORSARO, Ph.D. Chief Technology Officer OMG DDS Sig Co-Chair PrismTech angelo.corsaro@prismtech.com

Speaker Short Bio Angelo Corsaro, Ph.D. is Chief Technology Officer (CTO) at PrismTech. As CTO, Angelo directs the technology strategy, planning, evolution, and evangelism. Angelo leads the strategic standardization at the Object Management Group (OMG), where he co-chairs the Data Distribution Service (DDS) Special Interest Group. Prior to joining PrismTech Angelo worked as a Technology Scientist within the FINMECCANICA CTO Directorate looking after group-wide middleware strategy. Angelo is a widely known and cited expert in the field of real-time and distributed systems, middleware, and software patterns, has authored several international standards and enjoys over 10 years of experience in technology management and design of high performance mission- and business-critical distributed systems. Angelo received a Ph.D. and a M.S. in Computer Science from the Washington University in St. Louis, and a Laurea Magna cum Laude in Computer Engineering from the University of Catania, Italy. Contacts: email: angelo@icorsaro.net Mobile: +33 6 42 30 75 65

Background

Data Distribution Service Introduced in 2004 to address the Data Distribution challenges faced by a wide class of Defense and Aerospace Applications Key requirement for the standard were to deliver very high and predictable performance while scaling from embedded to ultralarge-scale deployments Scale Real-Timeliness Parallelism Systemic Signal Processing Data Processing Parallel Systems Determinism Real-Time Information Processing Throughput, Availability Near Real-Time FaultTolerant Information Processing Distributed Systems Scalability, Persistence, Security Complex Information Management Copyright 2011, PrismTech All Rights Reserved. For Real-Time Systems

Data Distribution Service Recommended by key administration worldwide, e.g. DoD, MoD, EUROCAE, etc. Widely adopted across several different domains, e.g., Automated Trading, Simulations, SCADA, Telemetry, etc. Scale Real-Timeliness Parallelism Systemic Signal Processing Data Processing Parallel Systems Determinism Real-Time Information Processing Throughput, Availability Near Real-Time FaultTolerant Information Processing Distributed Systems Scalability, Persistence, Security Complex Information Management Copyright 2011, PrismTech All Rights Reserved. For Real-Time Systems

Defense and Aerospace Integrated Modular Vetronics Training & Simulation Systems Naval Combat Systems Air Traffic Control & Management Unmanned Air Vehicles Aerospace Applications

Agricultural Vehicle Systems Large Scale SCADA Systems Smart Cities Train Control Systems Complex Medical Devices High Frequency Auto-Trading Copyright 2011, PrismTech All Rights Reserved. Commercial Applications

Smart Cities

City of Nice -- France

City Service - Architecture Urbio&ca APPLICATIONS User, City agent Urbio2ca MESH network City Message BUS Opensplice DDS Data warehouse Esper Park Control Exis2ng systems

About Opensplice DDS Publica2on Service Filtering and reading a ContentFilteredTopic an hundred 2me is faster than reques2ng once on DB Started with OpenSplice DDS for sensor data, now using OpenSplice everywhere, even as cloud messaging on Amazon Cloud!

Smart-Grids

U.S. Army Corps of Engineers 13 Grand Coulee Dam The Grand Coulee Dam is the largest hydro-electric power plant in the United States The dam network connects a 40,000-point SCADA system controlling 30 generators and the transmission switchyard In September 2011 USACE successfully deployed using

Grand Coulee Dam is used as the communication mechanism for the Generic Data Acquisition and Control System (GDACS) The dam network connects a 40,000+ point SCADA system controlling 30 generators and the transmission switchyard was selected because of its unique scalability, determinism, and robustness in presence of overload situations

Cool Vehicles

16 Agricultural Vehicle Systems GPS data correction to improve accuracy enabling automated steering, precision ploughing, seeding, fertilizing and spraying Tethered control between combine harvester and grain cart enabling unloading on-the-go is used to distribute data between the components inside the Combine system Communications between the Combine and the Grain Carts is made possible using the DDSI network protocol The OpenSplice Unicast networking capability allows to run over ad-hoc wireless networks

Race Car Video Feed Successfully proved for distributing racing car video

The Standard

DDSI DCPS The DDS Standard [1/3] The DDS Specification defines a programming-language independent API and a wire protocol for high performance data distribution API Protocol Application Durability Ownership Content Minimal Durability Ownership Content Minimal UDP TCP WebSock

DDSI DCPS The DDS Standard [2/3] The DDS API standard defines the semantics of DDS entities and the abstractions provided to applications Four different sub-profiles are defined to deal with: Content Awareness Data Durability Fail-Over Basic Pub/Sub API Protocol Application Durability Ownership Content Minimal Durability Ownership Content Minimal UDP TCP WebSock

DDSI DCPS The DDS Standard [3/3] The DDSI standard defines the protocol that DDS-compliant implementations have to use in order to implement the DDS semantics The DDSI protocol requires at most a best-effort transport--it implements reliability at a protocol level API Protocol Application Durability Ownership Content Minimal Durability Ownership Content Minimal UDP TCP WebSock

DDS Standard Evolution Application Application Security X-Types DDS RMI ANSI C 2012 2012 ISO C++ DDS Java-5 DDS RMI 2012 2010 2010 2012 2006 API Scala 2004 2010 2010 201x DDSI-RTPS DDSI-RTPS Wire Protocol Best Effort Transport Protocol 2004 X-Types Security 2006

Standards: What For? Data Model DDSI Common Language + QoS Requirements Wire Interoperability Interoperability

Standards: What For? Application DDS API Standard Portability

D D S ics Ba

OpenSplice Mobile

Data Distribution Service For Real-Time Systems DDS provides a Topic-Based Publish/ Subscribe abstraction based on: Topics: data distribution subject s DataWriters: data producers DataReaders: data consumers Data Writer Data Writer Data Writer Data Writer Topic D Topic A Topic B Topic C... DDS Global Data Space Data Reader Data Reader Data Reader Data Reader

Data Distribution Service For Real-Time Systems DataWriters and DataReaders are automatically and dynamically matched by the DDS Dynamic Discovery A rich set of QoS allows to control existential, temporal, and spatial properties of data Data Writer Data Writer Data Writer Data Writer Topic D Topic A Topic B Topic C... DDS Global Data Space Data Reader Data Reader Data Reader Data Reader

DDS Topics A Topic defines a class of streams A Topic has associated a unique name, a user defined extensible type and a set of QoS policies QoS Policies capture the Topic non-functional invariants Topics can be discovered or locally defined Circle, Square, Triangle,... ShapeType Type struct ShapeType { @Key string color; long x; long y; long shapesize; }; Name Topic QoS DURABILITY, DEADLINE, PRIORITY,

Topic Instances Each unique key value identifies a unique stream of data DDS not only demultiplexes streams but provides also lifecycle information A DDS DataWriter can write multiple instances Instances color = Green color = red color = Blue Topic struct ShapeType { @Key string color; long x; long y; long shapesize;}; Instances

DDS Readers and Writers Topic Instances DataWriter DataReader........................ DataWriter Cache DataReader Cache Writer History Reader History network... DataReader............ DataReader Cache

Data Selectors

Filters and Queries Application DDS Filters allow to control what gets into a DataReader cache DDS Queries allow to control what gets out of a DataReader cache Filters are defined by means of ContentFilteredTopics Queries operate in conjunction with read operations Filters and Queries are expressed as SQL where clauses Query DataReader............ DataReader Cache Filter

DDS Application s Anatomy

Anatomy of a DDS Application Domain (e.g. Domain 123) Partition (e.g. Telemetry, Shapes, ) Topic Instances/Samples Publisher Domain Participant DataWrter Topic Subscriber DataReader

Anatomy of a DDS Application [Scala API] Domain val dp = DomainParticipant(domainId) Publisher DataWriter Domain Participant Topic Subscriber DataReader

Anatomy of a DDS Application [Scala API] Domain val dp = DomainParticipant(domainId) Session // Create a Topic val topic = Topic[ShapeType](dp, Circle ) // Create a Publisher / Subscriber val pub = Publisher(dp) val sub = Subscriber(dp) Publisher DataWriter Domain Participant Topic Subscriber DataReader

Anatomy of a DDS Application [Scala API] Domain val dp = DomainParticipant(domainId) Session // Create a Topic val topic = Topic[ShapeType](dp, Circle ) // Create a Publisher / Subscriber val pub = Publisher(dp) val sub = Subscriber(dp) Reader/Writers for User Defined for Types // Create a DataWriter/DataWriter val writer = DataWriter[ShapeType](pub, topic) val reader = DataReader[ShapeType](sub, topic) Publisher DataWriter Domain Participant Topic Reader/Writer for application defined Topic Types Subscriber DataReader

Anatomy of a DDS Application [Scala API] Domain val dp = DomainParticipant(domainId) Session // Create a Topic val topic = Topic[ShapeType](dp, Circle ) // Create a Publisher / Subscriber val pub = Publisher(dp) val sub = Subscriber(dp) Reader/Writers for User Defined for Types // Write data val data = new ShapeType( RED, 131, 107, 75) writer write data // But you can also write like this... writer! data Publisher DataWriter Domain Participant Topic Reader/Writer for application defined Topic Types Subscriber DataReader // Read new data and print it on the screen (reader read) foreach (prinln)

Anatomy of a DDS Application [DDS C++ API 2010] Domain auto dp = DomainParticipant(domainId); Session // Create a Topic auto topic = Topic<ShapeType>(dp, Circle ) // Create a Publisher / Subscriber auto pub = Publisher(dp) auto sub = Subscriber(dp) Reader/Writers for User Defined for Types // Create a DataWriter/DataWriter auto writer = DataWriter<ShapeType>(pub, topic); auto reader = DataReader<ShapeType>(sub, topic); Publisher DataWriter Domain Participant Topic Reader/Writer for application defined Topic Types Subscriber DataReader

Anatomy of a DDS Application [DDS C++ API 2010] Domain auto dp = DomainParticipant(domainId); Session // Create a Topic auto topic = Topic<ShapeType>(dp, Circle ) // Create a Publisher / Subscriber auto pub = Publisher(dp) auto sub = Subscriber(dp) Reader/Writers for User Defined for Types // Write data writer.write(shapetype( RED, 131, 107, 89)); // But you can also write like this... writer << ShapeType( RED, 131, 107, 89); Publisher DataWriter Domain Participant Topic Reader/Writer for application defined Topic Types Subscriber DataReader // Read new data (loaned) auto data = reader.read();

QoS

QoS Model QoS-Policies control local and end-to-end properties of DDS entities Local properties controlled by QoS are related resource usage End-to-end properties controlled by QoS are related to temporal and spatial aspects of data distribution Some QoS-Policies are matched based on a Request vs. Offered Model thus QoS-enforcement QoS QoS Publisher DomainParticipant... QoS DataWriter DataWriter QoS Type Matching QoS Topic writes Type... writes Type Topic QoS Name reads reads Name QoS matching QoS DataReader DataReader QoS... QoS QoS Subscriber DomainParticipant

QoS Policies [T: Topic] [DR: DataReader] [DW: DataWriter] [P: Publisher] [S: Subscriber] [DP: Domain Participant] QoS Policy Applicability RxO Modifiable USER_DATA TOPIC_DATA GROUP_DATA DURABILITY DURABILITY SERVICE HISTORY PRESENTATION RELIABILITY PARTITION DESTINATION ORDER DP, DR, DW N Y T N Y Configuration P, S N Y T, DR, DW Y N T, DW N N Data Availability T, DR, DW N N P, S Y N T, DR, DW Y N P, S N Y T, DR, DW Y N Data Delivery LIFESPAN T, DW N Y

QoS Policies [T: Topic] [DR: DataReader] [DW: DataWriter] [P: Publisher] [S: Subscriber] [DP: Domain Participant] QoS Policy Applicability RxO Modifiable DEADLINE LATENCY BUDGET TRANSPORT PRIORITY TIME BASED FILTER OWNERSHIP OWNERSHIP STRENGTH LIVELINESS T, DR, DW Y Y T, DR, DW Y Y T, DW N Y DR N Y T, DR, DW Y N Temporal/ Importance Characteristics DW N Y Replication T, DR, DW Y N Fault-Detection

Data Delivery Partition Reliability Data Delivery Presentation Destination Order

Data Availability Lifespan History Data Availability Ownership Durability Ownership Strength

Temporal Properties TimeBasedFilter [Inbound] Throughput [Outbound] LatencyBudget Deadline Latency TransportPriority

Concluding Remarks

Concluding Remarks The DDS provides a powerful and featurerich topic-based publish/subscribe abstraction This technology is widely used in mission and business critical systems and it being swiftly adopted in data-centric/big-data systems Differently from what some people think, DDS is very simple to get-started with Very good Open Source implementation are available... Good Hacking!

DDS Everywhere

DDS Everywhere! OpenSplice Mobile OpenSplice Mobile Embedded JVM DDS OpenSplice Enterprise MQTT, AMQP, JMS, REST,... OpenSplice Gateway OpenSplice Lite Embedded OS OpenSplice RTE RTOS Enterprise OS

References DDS-based Advanced Distributed Algorithms Toolkit Open Source github.com/kydos/dada OpenSplice DDS #1 OMG DDS Implementation Open Source www.opensplice.org Simple C++ API for DDS Open Source code.google.com/p/simd-cxx [C++] Fastest growing JVM Language Open Source www.scala-lang.org [Java] DDS-PSM-Java for Open Source github.com/kydos/simd-java Escalier Scala API for Open Source github.com/kydos/escalier DDS-PSM-Cxx 2010 DDS-PSM-Cxx API Standard Open Source github.com/kydos/dds-psm-cxx

:: Connect with Us :: opensplice.com opensplice.org youtube.com/opensplicetube forums.opensplice.org opensplicedds@prismtech.com slideshare.net/angelo.corsaro @acorsaro @prismtech crc@prismtech.com sales@prismtech.com