The Ocarina Tool Suite. Thomas Vergnaud

Similar documents
Generating Petri Nets from AADL descriptions. Thomas Vergnaud

AADL to build DRE systems, experiments with Ocarina. Jérôme Hugues, ENST

From MDD back to basic: Building DRE systems

Presentation of the AADL: Architecture Analysis and Design Language

AADL : about code generation

Presentation of the AADL: Architecture Analysis and Design Language

AADL committee, Valencia October 2 nd, Pierre Dissaux (Ellidiss) Maxime Perrotin (ESA)

AADL Generative Implementation Annex

Institut Supérieur de l Aéronautique et de l Espace Ocarina: update and future directions

Model-Driven QoS Provisioning Techniques for CCM DRE Systems

ARINC653 toolset: Ocarina, Cheddar and POK

AADL performance analysis with Cheddar : a review

From the Prototype to the Final Embedded System Using the Ocarina AADL Tool Suite

Architecture Analysis and Design Language (AADL) Part 2

Project Report. Using the AADL to support the ASSERT modeling process

Learn AADL concepts in a pleasant way

An Information Model for High-Integrity Real Time Systems

ARINC653 and AADL. Julien Delange Laurent Pautet

Ocarina. A Compiler for the AADL for Ocarina 2.0w, 11 November Jér^ome Hugues, Thomas Vergnaud, Bechir Zalila

Generating high-integrity systems with AADL and Ocarina. Jérôme Hugues, ISAE/DMIA

PolyORB: a schizophrenic middleware to build versatile reliable distributed applications

Executable AADL. Real Time Simulation of AADL Models. Pierre Dissaux 1, Olivier Marc 2.

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Distributed and Agent Systems

RAMSES. Refinement of AADL Models for the Synthesis of Embedded Systems. Etienne Borde

PROFESSOR: DR.JALILI BY: MAHDI ESHAGHI

Chapter 4 Communication

Updates on the code generation annex. Jérôme Hugues, ISAE

Model-Based Engineering for the Development of ARINC653 Architectures

AADL Subsets Annex Update

What is CORBA? CORBA (Common Object Request Broker Architecture) is a distributed object-oriented client/server platform.

European Component Oriented Architecture (ECOA ) Collaboration Programme: Architecture Specification Part 2: Definitions

French & American Educational System. Collaboration between Rutgers & Paris 6. M.S. : Distributed Systems & Applications

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING ACADEMIC YEAR (ODD SEMESTER) QUESTION BANK

AO4AADL Compiler. Sihem Loukil. June 2011

Architecture Analysis and Design Language (AADL) Part 3

IBM Integration Bus v9.0 System Administration: Course Content By Yuvaraj C Panneerselvam

AADS+: AADL Simulation including the Behavioral Annex

Rapid Prototyping of Distributed Real-Time Embedded Systems Using the AADL and Ocarina

CORBA (Common Object Request Broker Architecture)

Model Editing & Processing Tools. AADL Committee, San Diego February 4th, Pierre Dissaux. Ellidiss. Technologies w w w. e l l i d i s s.

Jade: Java Agent DEvelopment Framework Overview

DS 2009: middleware. David Evans

AADL Simulation and Performance Analysis in SystemC

Copyright 2018 Adventium Labs. 1

Simple Object Access Protocol (SOAP) Reference: 1. Web Services, Gustavo Alonso et. al., Springer

Inspirel. YAMI4 Requirements. For YAMI4Industry, v page 1

F6COM: A Case Study in Extending Container Services through Connectors

Software Architecture Patterns

Query Language for AADLv2, Jérôme Hugues, ISAE Serban Gheorghe, Edgewater

POK. An ARINC653-compliant operating system released under the BSD licence. Julien Delange, European Space Agency

Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan.

An Implementation of the Behavior Annex in the AADL-toolset Osate2

To cite this document

This is an author-deposited version published in: Eprints ID: 10292

Grid Computing. Lectured by: Dr. Pham Tran Vu Faculty of Computer and Engineering HCMC University of Technology

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF INFORMATION TECHNOLOGY. (An NBA Accredited Programme) ACADEMIC YEAR / EVEN SEMESTER

Model-Based Engineering for the Development of ARINC653 Architectures

Prototyping of Distributed Embedded Systems Using AADL

Crisis and paradox in distributed-systems development

Course 7. Reusability, interoperability. S. Motogna - Software Quality

AEROSPACE STANDARD ARCHITECTURE ANALYSIS & DESIGN LANGUAGE (AADL) V2 PROGRAMMING LANGUAGE ANNEX DOCUMENT

ARINC653 AADL Annex. Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Julien Delange 07/08/2013

Using AADL in Model Driven Development. Katholieke Universiteit Leuven Belgium

Building High-Assurance Systems out of Software Components of Lesser Assurance Using Middleware Security Gateways

CPSC 427a: Object-Oriented Programming

COTRE as an AADL profile

Model Verification: Return of experience

The Designer's Guide to VHDL Second Edition

Disciplina Sistemas de Computação

0. Overview of this standard Design entities and configurations... 5

Architectural Design

The etrice Eclipse Project Proposal

Techniques for Dynamic Swapping in the Lightweight CORBA Component Model

Octave: A Portable, Distributed, Opened Platform for Interoperable Monitoring Services

Agent-Enabling Transformation of E-Commerce Portals with Web Services

MTAT Enterprise System Integration. Lecture 2: Middleware & Web Services

An implementation of the AADL-BA Behavior Annex front-end: an OSATE2 Eclipse plug-in

Workshop 1: Specification for SystemC-AADL interoperability

Capturing Middleware using UML Models.

Jade: Java Agent DEvelopment Framework Overview

ArchiMate 2.0. Structural Concepts Behavioral Concepts Informational Concepts. Business. Application. Technology

Socket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently.

Middleware. Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004

Overview. Communication types and role of Middleware Remote Procedure Call (RPC) Message Oriented Communication Multicasting 2/36

An Efficient Modeling and Execution Framework for Complex Systems Development

(9A05803) WEB SERVICES (ELECTIVE - III)

Model-Driven Engineering Approach for Simulating Virtual Devices in the OSATE 2 Environment

WebSphere 4.0 General Introduction

SDRF-03-A-0005-V0.0. Software Defined Radio Forum. API Position Paper. System Interface Working Group. Document Number: SDRF-03-A-0005-V0.

Fundamentals of Programming Languages. PL quality factors Lecture 01 sl. dr. ing. Ciprian-Bogdan Chirila

The Object Model Overview. Contents. Section Title

Reflective Middleware. INF Tommy Gudmundsen

Distributed Systems Inter-Process Communication (IPC) in distributed systems

Benefits of multi-model architecture-based development for railway applications

AADL Tools & Technology. AADL committee 22 April Pierre Dissaux. Ellidiss. T e c h n o l o g i e s. w w w. e l l i d i s s.

Today: Distributed Middleware. Middleware

Special Topics: Programming Languages

A System Dependability Modeling Framework Using AADL and GSPNs

Service-Oriented Computing in Recomposable Embedded Systems

Involved subjects in this presentation Security and safety in real-time embedded systems Architectural description, AADL Partitioned architectures

Transcription:

The Ocarina Tool Suite <thomas.vergnaud@enst.fr>

Motivation 2 ENST is developing a middleware architecture: PolyORB generic, configurable, interoperable enables middleware verification create a tool chain to configure PolyORB lightweight modular automatic deployment of distributed applications configure the distribution infrastructure according to the application ensure reliability of the runtime facilitates verifications on the whole application

The Ocarina Tool Set 3 a set of tools to describe, generate and deploy distributed applications editors text : Emacs graphical : Dia central core general semantic verifications to be used in existing applications to provide AADL capabilities Cheddar (univ. Brest) : schedulability analysis GLADE (AdaCore/ENST) : implementation of the distributed systems annex for Ada 95 several I/O modules text graphical syntax (Dia) XML code generator: Gaia AADL (XML) model transformation AADL (texte) core runtime code generator AADL (graphique) specific analyzer

Gaia: rationale 4 to generate and deploy distributed applications need for an AADL runtime handle the communications manage the AADL threads some issues: communications must be correctly handled they should match to the AADL description application elements should not be able to take control of the system execution

Gaia: general concepts 5 a runtime structure is created from the AADL description configured from the AADL description application elements are encapsulated and driven by the runtime do not control the runtime do not have visibility on other parts of the application application code AADL wrapper application code AADL wrapper application code AADL wrapper AADL runtime

Architectural entities 6 execution platform components: provide information on deployment machines networks software components: model the applications that must be generated processes: model a logical node (partition) threads : active elements of the applications subprograms : passive elements data: data structures systems non functional elements threads symbolize the runtime subprograms describe the application systems do not correspond to anything in the application

AADL programming language 7 depend only on the target language no relation with the runtime generate wrappers from AADL description generate data types from AADL data components data dt end dt; subprogram sp features a : in parameter dt; b : out parameter dt; properties source_language => Ada; source_name => pack ; end s; type dt is procedure sp (a : in dt; b : out dt) is begin pack.sp (a, b); end sp;

AADL programming language 8 data components translation from AADL to programming language unique AADL representation, many language translations subcomponents are fields of records GAIA::data_type : enumeration integer, float, string, boolean, etc. provide the required semantics to generate data type code using a programming language the use of properties help manage data component extension subprograms if source code is specified => generate a wrapper for the specified language if call sequences are provided => generate the sequences if nothing is provided => generate an empty procedure

Distribution models 9 message passing event data ports associated to threads remote procedure call subprograms as features of a thread subprogram access provided by a thread and required by a subprogram ran by another thread (soon) distributed object data access provided by a thread; the data component provides subprograms, the same way as for remote procedure calls shared memory access to data component provided by a thread threads are crucial, since they materialize the runtime

Which runtime for the application? 10 AADL runtime = middleware high-level runtime can handle all distribution paradigms need for an adaptation layer generated from the AADL thread descriptions AADL runtime = minimal runtime low-level runtime scheduler + sockets (+ operating system?) requires additional AADL components to describe the management of communications requires AADL threads to be expanded

PolyORB 11 implementation of the schizophrenic middleware architecture 3-layer structure applicative personalities: CORBA, DSA, MOMA, neutral layer: generic middleware components, independent from distribution models protocol personalities: GIOP, SOAP, canonical architecture 7 fundamental services: addressing, binding, representation, protocol, transport, activation, execution a central component for coordination: µbroker adaptability selection & adaptation of components use of personalities that are adapted to applications and to needed protocols reliability µbroker modeled using Petri nets PolyORB instance applications application layer execution activation addressing binding µbroker protocol neutral layer transport representation protocol layer operating system network

New properties 12 node location GAIA::location : aadlstring applies to processors interpreted as an IP address actual interpretation depends on the target network/generator port GAIA::port_number : aadlinteger applies to processes (i.e. nodes) interpreted as an IP port number may be computed automatically

Use of a complete middleware 13 AADL runtime = middleware AADL thread thread provided by the middleware or system thread if the middleware does not provide this facility communications managed by the middleware code generator in two parts generation of applicative elements from AADL subprograms & data components generation of a software layer to adapt the middleware to the application from AADL threads translation of the different distribution models, depending on the middleware capabilities applicative components run by the runtime the middleware controls the application the middleware is configured, according to the information provided by the AADL description architecture analysis if we know the characteristics of the middleware ex.: Gaia/PolyORB AADL application AADL personality proto. perso. neutral layer proto. perso. network other node

The adaptation layer 14 AADL port identified by incoming request names data port requests provide data that are stored into the buffer (no queue) do not trigger the controller event data port requests provide data that are stored into the buffer (queue) may trigger the controller periodic threads the runtime triggers the controller the controller gets the required data from the buffer calls the application (according to the call sequence of the AADL thread) get the out parameters back servant runtime buffer application controller

Use of a minimal runtime 15 transformation of the AADL description expansion of AADL threads pour to insert the middleware services generation of the associated code, or link with existing code minimal and verifiable runtime execution control by the µbroker modeled using Petri nets communications using a socket library AADL API provided by the OS, or modeled in AADL the whole application is almost completely described in AADL facilitates the analysis of the application several programming languages can be used fully generic middleware ex.: Gaia/µBroker AADL runtime = PolyORB µbroker implements the scheduling protocol middleware components are parts of the application addressing AADL application AADL personality µbroker protocol representation execution activation binding operating system transport network other node

Middleware components in AADL 16 no more distribution models we are at a low lever of modeling services modeled as subprograms call sequences algorithms provided as source code may be generated from formal method representations servant application application application controller buffer execution µbroker

Gaia architecture 17 architecture expander used to generate the PolyORB instance in AADL code generation for the AADL components runtime generator complete PolyORB instance or minimal runtime translator for the application components AADL Gaia architecture validator processor architecture expander node placement manager runtime generator translator AADL source code code generator deployment tools source files + configuration files runtime files source code library

Conclusion 18 clear separation of node parts: runtime : AADL threads application : subprograms & data the AADL runtime controls the application elements help ensure the consistency between the AADL description and the actual application 2 possible approaches for the runtime: a high-level runtime provides all distribution models distribution middleware + thread library a low-level runtime communication mechanisms described in AADL thread library + AADL API for sockets http://ocarina.enst.fr https://libre2.adacore.com/polyorb