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



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

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

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

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

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

Unifying the Global Data Space using DDS and SQL

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

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

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

Resource Utilization of Middleware Components in Embedded Systems

DDS and SOA Interfaces to ESB

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

What is Enterprise Architect? Enterprise Architect is a visual platform for designing and constructing software systems, for business process

Addressing the Challenge of Distributed Interactive Simulation With Data Distribution Service

RTI Monitoring Library Getting Started Guide

DDS-Enabled Cloud Management Support for Fast Task Offloading

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

Using UML to Construct a Model Driven Solution for Unified Access to Disparate Data

Applying Model Driven Development to the DDS Domain Bruce Trask Hans van t Hag

Business Rule Standards -- Interoperability and Portability

Building Test-Sites with Simware

Integrated Development of Distributed Real-Time Applications with Asynchronous Communication

Business Process Modelling Notation A tutorial

RTI Data Distribution Service

SERVICE-ORIENTED MODELING FRAMEWORK (SOMF ) SERVICE-ORIENTED SOFTWARE ARCHITECTURE MODEL LANGUAGE SPECIFICATIONS

SEARCH The National Consortium for Justice Information and Statistics. Model-driven Development of NIEM Information Exchange Package Documentation

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

Applying 4+1 View Architecture with UML 2. White Paper

What can DDS do for Android?

The Enterprise Service Bus: Making Service-Oriented Architecture Real

MDA Overview OMG. Enterprise Architect UML 2 Case Tool by Sparx Systems by Sparx Systems

Open Source egovernment Reference Architecture Osera.modeldriven.org. Copyright 2006 Data Access Technologies, Inc. Slide 1

F-16 Modular Mission Computer Application Software

Security Model and Enforcement for Data-Centric Pub/Sub with High Information Assurance Requirements

Distributed Embedded Systems

OMG Data-Distribution Service (DDS): Architectural Overview

Metamodels and Modeling Multiple Kinds of Information Systems

Analysis of a potential use of middleware technologies for railway domain

Usage of Business Process Choreography

Model Driven Interoperability through Semantic Annotations using SoaML and ODM

Design Document. Offline Charging Server (Offline CS ) Version i -

Using UML Part One Structural Modeling Diagrams

<Insert Picture Here> Oracle SQL Developer 3.0: Overview and New Features

Middleware support for the Internet of Things

SQL Server 2008 Performance and Scale

Common Warehouse Metamodel (CWM): Extending UML for Data Warehousing and Business Intelligence

OMG Data-Distribution Service: Architectural Overview

New Features in Neuron ESB 2.6

Data Distribution Service for Industrial Automation

DATA SHARING AND ACCESS WITH A CORBA DATA DISTRIBUTION SERVICE IMPLEMENTATION

A HW/SW Codesign Methodology based on UML

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

Monitoring Infrastructure (MIS) Software Architecture Document. Version 1.1

Revel8or: Model Driven Capacity Planning Tool Suite

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

A Survey Study on Monitoring Service for Grid

Building Views and Charts in Requests Introduction to Answers views and charts Creating and editing charts Performing common view tasks

Analysis of the Specifics for a Business Rules Engine Based Projects

A Software Development Platform for SOA

CoSMIC: An MDA Tool Suite for Application Deployment and Configuration

Event-based middleware services

Embedded/Real-Time Software Development with PathMATE and IBM Rational Systems Developer

Applying MDA in Developing Intermediary Service for Data Retrieval

Chapter 7, System Design Architecture Organization. Construction. Software

Developing in the MDA Object Management Group Page 1

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles

Enterprise Application Development in SharePoint 2010

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

An MDA Approach for the Development of Web applications

XpoLog Center Suite Data Sheet

Data Modeling Basics

Model-Driven Architecture: Vision, Standards And Emerging Technologies

Sparx Systems Enterprise Architect for Team Players

Policy Driven Practices for SOA

Tomáš Müller IT Architekt 21/04/2010 ČVUT FEL: SOA & Enterprise Service Bus IBM Corporation

The Sierra Clustered Database Engine, the technology at the heart of

MODEL DRIVEN DEVELOPMENT OF BUSINESS PROCESS MONITORING AND CONTROL SYSTEMS

Service-Oriented Architecture and Software Engineering

Building Web-based Infrastructures for Smart Meters

Introduction to Service Oriented Architectures (SOA)

Software Life-Cycle Management

LearnFromGuru Polish your knowledge

Oracle SOA Suite: The Evaluation from 10g to 11g

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

Enterprise Architecture for Architecture Driven Planning

A Management Tool for Component-Based Real-Time Supervision and Control Systems

A BIAN Building Block Service Repository and Registry

Model Driven Benchmark Generation for Web Services

RTI Analyzer. Getting Started Guide

Ikasan ESB Reference Architecture Review

A standards-based approach to application integration

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

Transcription:

UML Profile for DDS a tutorial for OMG Specification in Government Workshop (Real-Time & Embedded Systems) July 13, 2009 Prepared by: Sam Mancarella (Sparx Systems) Presented by: Angelo Corsaro (PrismTech)

Agenda Part 1 - Introduction DDS Overview Motivating the UML4DDS Part 2 UML4DDS by Examples DCPS DLRL Application Targets MDA, PIM PSM Part 3 - Conclusion Other Applications Concluding Remarks Discussion

The OMG Data Distribution Service (DDS) DDS v1.2 API Standard Language Independent, OS and HW architecture independent DCPS. Standard API for Data-Centric, Topic-Based, Real-Time Publish/ Subscribe DLRL. Standard API for creating Object Views out of collection of Topics DDSI/RTPS v2.1 Wire Protocol Standard Standard wire protocol allowing interoperability between different implementations of the DDS standard Ownership Application Object/Relational Mapping Data Local Reconstruction Layer (DLRL) Durability Minimum Profile Data Centric Publish/Subscribe (DCPS) Real-Time Publish/Subscribe Protocol DDS Interoperability Wire Protocol UDP/IP Content Subscription

High Performance Pub/Sub Fully distributed, Peer-to-Peer Communication No Single Point of Failure No Single Point of Bottleneck Multicast-enabled High performance and highly scalable High availability The right data, at the right place, at the right time -- All the Time. Publisher Publisher Publisher Broke Subscriber Subscriber Subscriber

Data-Centric Pub/Sub Distributed Relational Data Model Local Queries Continuous Queries / Content Based Subscriptions Windows Object/Relational Mapping Support for a subset of SQL-92 Publisher Publisher Publisher Data-Centric Features are built-in and don t rely on an external DBMS Providing thus performance, scalability, and availability B A J K m D E Perfect Blend of Data-Centric and Real-Time Publish/Subscribe Technologies F DBMS C Subscriber Subscriber Subscriber

Topics and Data-Centric Pub/Sub Topics. Unit of information exchanged between Publisher and Subscribers. Topic Data Types. Type associated to a Topic must be a structured type expressed in IDL Topic Instances. Key values in a datatype uniquely identify a Topic Instance (like rows in table) Content Awareness. SQL Expressions can be used to do content-aware subscriptions, queries, joins, and correlate topic instances Topic Type struct TempSensor { long tid; float temp; float humidity; }; #pragma keylist TempSensor tid tid temp humidity 1 2 3 21 62 27 78 25.5 72.3 tid temp humidity 2 3 SELECT * FROM TempSensor t WHERE t.temp > 25 27 78 25.5 72.3

Distributed Relational Information Modeling Topic Keys can be used to identify instances as well as relationships Relationships can be navigated by relying on a subset of SQL 92 One-to-many relationships can be captured using foreign keys Many-to-many relationships need to be modeled using a topics Keys can be represented by an arbitrary number of Topic fields

Object/Relational Mapping Automatically bridges the Object/Relational Impedance Mismatch Arbitrary object reconstructions Automatic Relationships Management Inheritance Local Operations Local/Distributed State

Sample QoS Policies QoS Policy Applicability RxO Modifiable DURABILITY DURABILITY SERVICE LIFESPAN HISTORY PRESENTATION RELIABILITY PARTITION DESTINATION ORDER OWNERSHIP OWNERSHIP STRENGTH DEADLINE LATENCY BUDGET TRANSPORT PRIORITY TIME BASED FILTER RESOURCE LIMITS USER_DATA TOPIC_DATA GROUP_DATA T, DR, DW Y N Data T, DW N N Availability T, DW - Y T, DR, DW N N P, S Y N Data T, DR, DW Y N Delivery P, S N Y T, DR, DW Y N T, DR, DW Y N DW - Y T, DR, DW Y Y Data T, DR, DW Y Y Timeliness T, DW - Y DR - Y Resources T, DR, DW N N DP, DR, DW N Y Configuratio T N Y n P, S N Y QoS DomainParticipant QoS Publisher... QoS DataWriter DataWriter QoS Type Matching writes writes QoS Topic Type... Type Topic QoS Name DataReader Subscriber Rich set of QoS allow to configure several different aspects of data availability, delivery and timeliness reads reads Name QoS matching DataReader QoS can be used to control and optimize network as well as computing resource QoS QoS... QoS QoS DomainParticipant

DDS is a PIM Overcoming the Challenges of DDS Design Provides a platform independent model of entities, roles and QoS Policies PIM is mapped to specific implementations, or platform specific models (PSM) Variety of software languages Variety of runtime platforms Variety of vendors B m Radar Sensor 1 A F J D X Aircraft Sensor n K E PDA Workstation Workstation

Overcoming the Challenges of DDS Design Manage Complexity Complex information models with QoS data Heterogeneous Design Different implementations, same information model Reuse Repository, Patterns Change Management One change in model 00 s changes in code

UML 4 DDS A UML Profile designed for the analysis and design of object-oriented systems using Data Distribution Service technology. Provides DDS designers, architects and practitioners with a standard, domain-specific modeling language to design DDS-based distributed information systems in a manner not specific to the underlying implementation of that design.

UML 4 DDS Beta Specification: mars/2008-06-18 Joint Submission by: PrismTech Real Time Innovations Inc Sparx Systems Request For Proposal: mars/2006-09-40

Model - Driven Architecture Domain-Specific Modeling Taxonomy of constructs, relationships, constraints Notation, presentation, diagrams MOF or UML mappings (UML Profiles) PIM PSM Transformation Platform Independent Model transformed to Platform specific model automatically One domain-specific model to another

Timeline RFP Issued September, 2006 First LOI November, 2006 First Initial Submission March, 2007 First Revised Submission September, 2007 Second LOI October, 2007 Second Initial Sub December, 2007 Second Revised Sub February, 2008 BoD Adoption June, 2008 FTF Charter June, 2008 FTF Report Due August 2009

Vendor Support Sparx Systems MDG Technology for DDS Language Addin for Enterprise Architect DDS-specific Toolboxes, Constructs, Diagrams Automatically generates PSM code for OpenSplice & RTI DDS Other DDS platform targets coming soon!

Language Architecture Part 1 - UML Profile Defines a collection of constructs that represent: Data Centric Publish Subscribe Entites (+ QoS) Data Local Reconstruction Layer Introduced a collection of common constructs to define: PSM Application Targets Topic Data Types (IDL)

Language Architecture Part 2 Metamodel Defines meta-level artifacts for XMI serialization

Worked Example - NetChat Stage 1 DCPS-only Application Stage 2 DLRL-Enabled

Designing DDS Systems

DDS Design Steps Designing DDS-based system can be decomposed in the following few simple steps: Step#1: Define Information Model Step #2: Associate QoS representing key nonfunctional invariants for your system with the Information Model Step #3: Define Topics / Partition / Domain Mapping Step #4: Identify Topic Readers/Writers Step #5: Define QoS requirements for Readers/Writers Step #6: Bind the model to a specific PSM

NetChat Overview Hypothetical, peer-to-peer network chat application Two Components: ChatRoom DDS Dataspace containing conversation threads amongst users Directory Server Application to maintain a collection of active NetChat users Real-world application of DDS DCPS and DLRL in distributed application designs

DDS Design Steps Designing DDS-based system can be decomposed in the following few simple steps: Step#1: Define Information Model Step #2: Associate QoS representing key nonfunctional invariants for your system with the Information Model Step #3: Define Topics / Partition / Domain Mapping Step #4: Identify Topic Readers/Writers Step #5: Define QoS requirements for Readers/Writers Step #6: Bind the model to a specific PSM

DCPS Topics & Data Types Data Types Describes the data payloads for DCPS topics IDL-based library structs, unions, arrays

DCPS Topics & Data Types Data Types Describes the data payloads for DCPS topics IDL-based library structs, unions, arrays Attributes can be nominated as DCPS Key fields

DCPS Topics & Data Types DDS Topics Describes the DCPS characteristics of the published/ subscribe data type, constrained to QoS Policy

DCPS Topics & Data Types DDS Topics Describes the DCPS characteristics of the published/ subscribe data type, constrained to QoS Policy

DCPS Topics & Data Types DDS Topics Describes the DCPS characteristics of the published/ subscribe data type, constrained to QoS Policy ContentFilteredTopic, MultiTopic denoted by kind, expression tags

DDS Design Steps Designing DDS-based system can be decomposed in the following few simple steps: Step#1: Define Information Model Step #2: Associate QoS representing key nonfunctional invariants for your system with the Information Model Step #3: Define Topics / Partition / Domain Mapping Step #4: Identify Topic Readers/Writers Step #5: Define QoS requirements for Readers/Writers Step #6: Bind the model to a specific PSM

DCPS QoS Policy Library qospolicylibrary Package Top-Level Classifiers defining default QoS Policies Define sets of qospolicylibraries for domain-specific applications Template of reusable QoS assets for multiple projects

DCPS QoS Policy Library

DCPS QoS Policy Library Defines QoS policy data as tagged values

DDS Design Steps Designing DDS-based system can be decomposed in the following few simple steps: Step#1: Define Information Model Step #2: Associate QoS representing key nonfunctional invariants for your system with the Information Model Step #3: Define Topics / Partition / Domain Mapping Step #4: Identify Topic Readers/Writers Step #5: Define QoS requirements for Readers/Writers Step #6: Bind the model to a specific PSM

DCPS Domain & Entities Domain Entity Logical grouping of DCPS Topics, & DomainParticipants

DCPS Domain & Entities DomainParticipant Entity DDS Publish/Subscribe entity

DCPS Domain & Entities DomainParticipant Entity Participate in domain nominated by tagged value

DCPS Domain & Entities DomainParticipant Entity Qos applied as properties, typed by the QoS Policy types in the qospolicylibrary

DDS Design Steps Designing DDS-based system can be decomposed in the following few simple steps: Step#1: Define Information Model Step #2: Associate QoS representing key nonfunctional invariants for your system with the Information Model Step #3: Define Topics / Partition / Domain Mapping Step #4: Identify Topic Readers/Writers Step #5: Define QoS requirements for Readers/Writers Step #6: Bind the model to a specific PSM

DCPS Domain & Entities Added Publisher, Subscriber Entities

DCPS Domain & Entities Added DataReaders, DataWriters Entities

DCPS Domain & Entities DDS Topics connected to DataReaders & DataWriters

DDS Design Steps Designing DDS-based system can be decomposed in the following few simple steps: Step#1: Define Information Model Step #2: Associate QoS representing key nonfunctional invariants for your system with the Information Model Step #3: Define Topics / Partition / Domain Mapping Step #4: Identify Topic Readers/Writers Step #5: Define QoS requirements for Readers/Writers Step #6: Bind the model to a specific PSM

Application Targets ddsapptarget Binds one or more DomainParticipants to a PSM configuration

Application Targets ddsapptarget Binds one or more DomainParticipants to a PSM configuration usage Dependency binds the DomainParticipant to the Target

Application Targets ddsapptarget Binds one or more DomainParticipants to a PSM configuration Tagged values specify the desired PSM output

Tool Specific: Enterprise Architect prompts the user to designate the application targets to a specific DDS output platform Code (PSM) Generation

Code (PSM) Generation

Code (PSM) Generation

Worked Example DLRL

Object/Relational Mapping Automatically bridges the Object/Relational Impedance Mismatch Arbitrary object reconstructions Automatic Relationships Management Inheritance Local Operations Local/Distributed State

DLRL: How does it Work? Concepts The mechanism at the foundation is a managed Object Cache: An Object Cache can be populated by different types (classes) of Objects. Each object class has its own manager called an ObjectHome. They can inform the application about object creation/modification/deletion. Classes may contain navigable relationships to other classes. Each Object class may inherit from 1 other Object class.

DLRL: How does it Work? DR DR DR OpenSplice DDS Information backbone Processing Updates vanilla DDS : updates arrive as separate samples at separate times. DDS Object Technology: updates are processed in update rounds : ObjectHomes read all available samples from the DDS information backbone and update their corresponding objects in the Cache accordingly. Objects are allocated once and their state is overwritten on subsequent updates. Therefore an Object always contains the latest available state. Push mode: update rounds start when new data arrives. The application gets notified by Listeners. Pull mode: the application can determine the start of each update round manually.

Notification Patterns on_object_modified() on_object_created() attach_listener on_begin_ updates() attach_listener on_end_ updates() DR DR DR Application get_modified_objects() OpenSplice DDS Information backbone Notifying the application The Object Caches offer two ways to notify an application of incoming information: Listeners can be triggered for each modification of an object s state. Listeners registered to the Cache indicate the start and end of each update round. Listeners registered to the ObjectHome pass each modification back as a callback argument. With a simple mechanism that can be translated into callbacks for Listeners on individual objects. It is possible to get a separate list of all objects that have been created/modified/deleted in the current update round.

CacheAccess: Examining Objects in Isolation DR DR DR DCPS Using snapshots Some applications want to be able to store temporal snapshots : A CacheAccess can be used to contain a temporal graph of objects. The graph is identified by a so-called cloning contract. Objects must physically be cloned from Cache to CacheAccess. A CacheAccesses is not automatically kept in sync with the main Cache. A refresh operation can be used to resync the contents of CacheAccess with the contents of the main Cache.

CacheAccess: Modifying and Creating Objects DR DR DR DW DW DW Using snapshots DCPS Some applications want to be able to modify or create certain objects: An initial set of Objects may be cloned into a writeable CacheAccess. Available objects may then be modified locally. New objects can be created in the CacheAccess as well. The write operation instructs the ObjectHomes to write any modifications into the system.

Using Selections to Manage Subsets S on_object_in() Application DR DR DR DCPS Creating and managing Selections A Selection mechanism can keep track of subsets of information: Selections are created and managed by the ObjectHomes. A Criterion plugged into a Selection determines the boundaries of a subset: A QueryCriterion determines boundaries based on an SQL statement. A FilterCriterion determines boundaries based on user-defined callback filters. Selections can notify the application when objects enter and leave it.

dlrlclass DLRL Class & Type DLRL Class representing a subscribed DCPS Topic Type Mapping

dlrlclass DLRL Class & Type DLRL Class representing a subscribed DCPS Topic Type Mapping

dlrlattribute DLRL Class & Type DLRL Attribute representing mapped DCPS Type fields Mapping

relation DLRL Class & Type Association used to aggregate multiple classes using DLRL foreign keys Mapping

Cache DLRL Local Reconstruction Describes a DLRL cache entity used to provide dlrl class access to the user

Cache DLRL Local Reconstruction Describes a DLRL cache entity used to provide dlrl class access to the user DCPS ChatRoom DomainParticipant DLRL Classes

objecthome, topicmanager DLRL Local Reconstruction Binds the cache to DataReaders to access the specific DCPS Topic, Types

Application Targets ddsapptarget Binds one or more DomainParticipants to a PSM configuration Binds at most one DLRL cache to the PSM configuration

Conclusion & Wrap Up

Other Applications Not just a DDS architecture description Not just a PIM

Other Applications XMI Serialization Direct Deployment XMI Document describes the DDS application configuration with Participants, Topics, QoS, etc Configuration loaded by runtime to configure nodes No source code

Other Applications Visual Deployment Interface DDS discovery to create a DDS model which visualizes a running deployment Field Engineers interact with the DDS model to make changes to the deployment Maintenance, re-engineering, documentation applications

Concluding Remarks UML Profile for DDS exemplifies the cooperation of multiple OMG standards to: Overcome the real-world challenges of design complexity management Provide turnkey rapid-development solutions for DDS applications Culmination of OMG s Real-time distributed data middleware technology UML extensibility (domain-specific languages) Model-Driven Development / Architecture XML Metadata Interchange specifications

Concluding Remarks Next Steps Complete the FTF submission Unleash to the world promote industry adoption, drive market demand For More information Contact us sam.mancarella@sparxsystems.com angelo.corsaro@prismtech.com Visit the Sparx exhibit for more information & demo

Thank you for your attention!