Unifying the Global Data Space using DDS and SQL



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

RTI Real-Time Connect. Release Notes

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

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

Resource Utilization of Middleware Components in Embedded Systems

RTI Database Integration Service. Release Notes

SQL Server An Overview

Spring,2015. Apache Hive BY NATIA MAMAIASHVILI, LASHA AMASHUKELI & ALEKO CHAKHVASHVILI SUPERVAIZOR: PROF. NODAR MOMTSELIDZE

Linas Virbalas Continuent, Inc.

Using SQL Server Management Studio

DDS and SOA Interfaces to ESB

Services. Relational. Databases & JDBC. Today. Relational. Databases SQL JDBC. Next Time. Services. Relational. Databases & JDBC. Today.


Using Temporary Tables to Improve Performance for SQL Data Services

Oracle TimesTen IMDB - An Introduction

Programming Database lectures for mathema

COSC344 Database Theory and Applications. Java and SQL. Lecture 12

MS ACCESS DATABASE DATA TYPES

Database Migration from MySQL to RDM Server

!"# $ %& '( ! %& $ ' &)* + ! * $, $ (, ( '! -,) (# *&23. mysql> select * from from clienti;

RTI Database Integration Service. Getting Started Guide

The release notes provide details of enhancements and features in Cloudera ODBC Driver for Impala , as well as the version history.

How To Create A Table In Sql (Ahem)

OMG Data-Distribution Service: Architectural Overview

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

ODBC Client Driver Help Kepware, Inc.

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

Chapter 9 Java and SQL. Wang Yang wyang@njnet.edu.cn

DBMS Questions. 3.) For which two constraints are indexes created when the constraint is added?

Data Warehouse and Hive. Presented By: Shalva Gelenidze Supervisor: Nodar Momtselidze

Evaluating Metadata access

Overview. Stakes. Context. Model-Based Development of Safety-Critical Systems

RTI Analyzer. Getting Started Guide

Raima Database Manager Version 14.0 In-memory Database Engine

RTI Monitoring Library Getting Started Guide

Customer Bank Account Management System Technical Specification Document

A Brief Introduction to MySQL

Integrating Big Data into the Computing Curricula

Bryan Tuft Sr. Sales Consultant Global Embedded Business Unit

Spring Data JDBC Extensions Reference Documentation

1 File Processing Systems

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

Real-time Data Replication

A Rational Software Whitepaper

Course Objectives. Database Applications. External applications. Course Objectives Interfacing. Mixing two worlds. Two approaches

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

IT2305 Database Systems I (Compulsory)

4 Logical Design : RDM Schema Definition with SQL / DDL

<Insert Picture Here> Oracle In-Memory Database Cache Overview

What is ODBC? Database Connectivity ODBC, JDBC and SQLJ. ODBC Architecture. More on ODBC. JDBC vs ODBC. What is JDBC?

Creating PL/SQL Blocks. Copyright 2007, Oracle. All rights reserved.

Information Technology NVEQ Level 2 Class X IT207-NQ2012-Database Development (Basic) Student s Handbook

Unified access to all your data points. with Apache MetaModel

IT2304: Database Systems 1 (DBS 1)

Data warehousing with PostgreSQL

5.1 Database Schema Schema Generation in SQL

Oracle BI EE Implementation on Netezza. Prepared by SureShot Strategies, Inc.

not at all a manual simply a quick how-to-do guide

Oracle Database 10g Express

MariaDB Cassandra interoperability

HOUG Konferencia Oracle TimesTen In-Memory Database and TimesTen Application-Tier Database Cache. A few facts in 10 minutes

OMG Data-Distribution Service (DDS): Architectural Overview

Distributed Embedded Systems

MYSQL DATABASE ACCESS WITH PHP

CS 377 Database Systems SQL Programming. Li Xiong Department of Mathematics and Computer Science Emory University

Simba Apache Cassandra ODBC Driver

Tips and Tricks for Using Oracle TimesTen In-Memory Database in the Application Tier

news from Tom Bacon about Monday's lecture

The Data Access Handbook

Introduction to the onepoint PROJECTS Database Schema Dieter Freismuth, Director Development. Technical White Paper

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

Availability Digest. Raima s High-Availability Embedded Database December 2011

Exposed Database( SQL Server) Error messages Delicious food for Hackers

sqlite driver manual

Geodatabase Programming with SQL

A generic framework for game development

EDI Process Specification

Automatic Test Data Generation for TTCN-3 using CTE

Physical Design. Meeting the needs of the users is the gold standard against which we measure our success in creating a database.

Chapter 6: Physical Database Design and Performance. Database Development Process. Physical Design Process. Physical Database Design

RTI Routing Service. Release Notes

Semantic Stored Procedures Programming Environment and performance analysis

Cúram Modeling Reference Guide

Oracle 10g PL/SQL Training

11/18/15 CS q Hadoop was not designed to migrate data from traditional relational databases to its HDFS. q This is where Hive comes in.

Certified PHP/MySQL Web Developer Course

Sharding with postgres_fdw

Oracle Database 10g: Introduction to SQL

How, What, and Where of Data Warehouses for MySQL

mdwfs Model-driven Schema Translation for Integrating Heterogeneous Geospatial Data

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

Empress Embedded Database. for. Medical Systems

MySQL for Beginners Ed 3

Architecting Composite Component Systems for Heterogeneous Environments with Open Standards. Derek Dominish

High Performance XML Data Retrieval

SOLUTION BRIEF. JUST THE FAQs: Moving Big Data with Bulk Load.

Transcription:

Unifying the Global Data Space using and SQL OMG RT Embedded Systems Workshop 13 July 2006 Gerardo Pardo-Castellote, Ph.D. CTO gerardo.pardo@rti.com www.rti.com Fernando Crespo Sanchez fernando.crespo@rti.com

Outline Motivation & Background Use cases for Global Data Mapping between and R Proof-of-concept Conclusion

Motivation for a Unified Global Data Space Leverage strength of two APIs SQL/ODBC: Optimized data manipulation/management : Optimized data distribution Expand the universe of accessible data Access to existing DB-stored data Access to data from legacy DB-based applications Exploit complementary capabilities Data in flight (QoS, latency, notifications, real-time) Data storage (persistence, indexing, unlimited capacity) Save time and money! Get power & flexibility using standard API s

Background What is? What is a R? Do we need both in the same system? Alternative approaches D Data T Database Mgmt

Enables Global Data Address in Global Data Space = (DomainId, Topic, Key) Each topic corresponds to a multiple data instances Each DataWriter can write to multiple instances of a single topic Multiple DataWriters may write to the same instance Each DataReader can read from multiple instances of a single topic Multiple DataReaders may read from the same instances Data Writer 1 Data Writer 2 Data Writer Instance 2 Instance 1 Instance Instance 3 Data Reader Data Reader Data Reader Topic Square Topic Circle

elements Metamodel: Data Distribution PIM Concept of Global Data Space Domain, Topic, Key, Concept of Entity, DomainParicipant, DataReader, DataWriter, Concept of Entity Listener, QoS, Conditions, WaitSets Abstract API: PIM Classes on the PSM Operations on the Entities and semantic meaning Description of the available QoS and related behavior Concrete programming APIs (C++, Java, etc.) Actual programming API s

Example (boxes demo) Topics Square, Circle, Triangle all of type Shape Attributes of type Atributes IDL data types: struct Shape { string<16> color; // key int x; int y; int size; }; struct Attributes { string<16> shape; // key string<16> color; // key float speed; }

R enables persistence and manipulation of data Address in a R data space = (Database, Table, PrimaryKey) Each Table stores multiple records, all with the same schema (data-type) Each record represents a unique data element Records are identified by a primary key Applications can read and modify records or groups of records SQL language provides means to address groups of records New tables can be materializes by combining records from different tables T Database Mgmt

R Elements Metamodel: Relational Model Tables, Records, Primary Keys, Foreign Keys Views Abstract API: SQL SQL schema SQL statements SELECT, INSERT, UPDATE SQL clauses (WHERE, ORDERED BY, etc.) Concrete programming APIs ODBC (C API) JDBC (Java API) other e.g. Oracle s PL/SQL (C API)

R Example (boxes demo) Squares Table color x y size red 14 23 70 blue 200 67 50 Circles Table color x y size Data Base red black 43 132 22 66 50 100 Attributes Table shape color size speed square red 70 5.6 square blue 50 22.45 circle red 70 101.3 circle black 100 45.4

Do I need both in a system? Yes. They both have complementary capabilities! is good for: Data in-fight : sending & receiving data High performance communication and notifications Access to real-time nodes QoS and resource control R/SQL is good for Storing and persisting data Data analysis, correlations, fusion Data organization Integration with ODBC clients (GUIs, web-services)... most complex systems are already doing it...

How to use and R? Until now: Two disconnected data-spaces Custom mapping of data-models Custom application-level bridging Custom Bridge SQL SQL T Database Mgmt SQL SQL Data D

A better way: Standards-Based Global Data Space All data accessible to all interested applications using either API Single, unified, data-space Transparent mapping of data-models No need for application-level bridging SQL SQL D T Global Data Space SQL

Outline Motivation & Background Use cases for Global Data Mapping between and R Proof-of-concept Conclusion

Use cases: to write to read: Real-Time data distribution QoS aware communications High performance messaging and events Publish-subscribe communications D T Global Data Space

Use cases: write to SQL read write to SQL read: Logging Store all historic data values Data analysis/data mining Look at trends, correlate data from multiple topics Create custom data-views Integration to ODBC analysis/monitoring clients Use web-clients, excel, exiting GUIs to see data SQL D T Global Data Space

Use cases: SQL write to read SQL write to read: Real-Time distributed database data monitoring Get notified when any record is modified Get notification anywhere, even RT nodes Changes to data-sets E.g. Change departure time of all aircraft leaving after 5pm and delay one hour D T Global Data Space SQL

Use cases: SQL to SQL write to SQL read: Classic data-base applications Database replication full or partial Selected table replication Mix of heterogeneous (multi-vendor) databases Mix of in-memory and disk-based databases SQL D T Global Data Space SQL

Outline Motivation & Background Use cases for Global Data Mapping between and R Proof-of-concept Conclusion

R Elements Metamodel: Relational Model Tables, Records, Primary Keys, Foreign Keys Views Abstract API: SQL SQL schema SQL statements SELECT, INSERT, UPDATE SQL clauses (WHERE, ORDERED BY, etc.) Concrete programming APIs ODBC (C API) JDBC (Java API) other e.g. Oracle s PL/SQL (C API)

R mapping at the metamodel and abstract levels Metamodel: Data Distribution PIM Global Data Space Domain, Topic, Key, Abstract API: PIM Classes and operations on the PSM QoS R Metamodel: Relational Model Tables, Records, Primary Keys, Foreign Keys Abstract API: SQL SQL schema SQL statements Concrete programming APIs Concrete programming APIs

Mapping (behavior) Data Distribution Service () IDL Type Database Management System () Table Schema Topic Table Data-object Instance A single Row in a Table if no history is stored; or Multiple Rows in a Table if history is stored. Instance Key Primary Key in Table DataWriter::write*() [all variations] INSERT or UDPATE DataWriter::dispose() DELETE

Mapping (data model) IDL struct flattened out into a table schema column name full hierarchical member name field type mapping of IDL primitive type to corresponding SQL type IDL union same as struct with additional discriminator column IDL sequence several possible mappings In-line length + nullable max-length columns [bounded only] Extra table Can be shared per sequence type or dedicated Octet sequence SQL binary

Mapping (data model) IDL array in-line expansion Octet array SQL binary IDL valuetype two options Performance-oriented: Same as struct (including base valuetype fields) Relational-model oriented Expansion tables as in the DLRL mapping

Almost 1-1 mapping of primitive types IDL Type IDL Field Name SQL Type Table Field Name CHAR WCHAR OCTET BOOLEAN SHORT UNSIGNED SHORT LONG UNSIGNED LONG DOUBLE FLOAT STRING<LENGTH> WSTRING<LENGTH> LONG LONG UNSIGNED LONG LONG LONG DOUBLE my_field my_field my_field my_field my_field my_field my_field my_field my_field my_field my_field my_field my_field my_field my_field CHAR(1) WCHAR BINARY(1) TINYINT SMALLINT SMALLINT INTEGER INTEGER DOUBLE REAL VARCHAR(LENGTH) WVARCHAR(LENGTH) BIGINT BIGINT BINARY(128) my_field my_field my_field my_field my_field my_field my_field my_field my_field my_field my_field my_field my_field my_field my_field

Mapping examples IDL Type struct MyStruct { long my_key_field; //@key short my_short_field; }; Create Table MyStruct ( my_key_field INTEGER NOT NULL, my_short_field SMALLINT NOT NULL, ); SQL Table Schema PRIMARY KEY( my_key_field ) struct MyStructContainer { long my_key_field; //@key Create Table MyStructContainer ( my_key_field INTEGER NOT NULL, }; MyStruct my_struct_field; my_struct_field.my_key_field INTEGER NOT NULL, my_struct_field.my_short_field SMALLINT NOT NULL, ); PRIMARY KEY( my_key_field ) struct MySequenceContainer { long my_key_field; //@key Create Table MySequenceContainer ( my_key_field INTEGER NOT NULL, }; sequence<long,2> my_seq_field; my_seq_field#length INTEGER NOT NULL, my_seq_field[0] INTEGER, my_seq_field[1] INTEGER, ); PRIMARY KEY( my_key_field )

Mapping extends to the wire representation Type - Auto-Generated Code (UserDataReader, UserDataWriter) Table struct MyType { }; int i; double x; string<100> s; MyTypeSupport i INTEGER MyType x DOUBLE - Generic type serialization/de-serialization using the Table Schema (BridgeDataWriter, BridgeDataReader) s VARCHAR(100 ) Slot # Serialized Wire Format Representation on the Network

Configuration Table name topic_name + domain_id Can allow multiplexing: Topics of same type can be mapped into a single table A table can be published into multiple topics Partial/custom mappings Unmapped Topics/Tables Unmapped fields only fields only fields Custom mappings QoS Database history

Configuration approaches Configuration file (static) Configuration tables (static or dynamic) Publication, Subscription tables Can use SQL or to configure Other? command-line dedicated API e.g. web-service

Outline Motivation & Background Use cases for Global Data Mapping between and R Proof-of-concept Conclusion

Proof of concept Global Data Space User App Producer API Middleware Middleware API User App Consumer Subscription Publication Subscription Publication Bridge Bridge SQL User App Producer SQL API SQL API SQL User App Consumer

Conclusion The integration of relational databases and : Can be formally defined Is practical and feasible... and offers powerful benefits: Leverages strength of two API standards Expands the universe of accessible data Exploits complementary capabilities Saves time and money!

Thank you Gerardo Pardo-Castellote, Ph.D. gerardo.pardo@rti.com Fernando Crespo Sanchez fernando.crespo@rti.com www.rti.com