Applying Componentbased. Engineering in On-board Software

Similar documents
The Fractal Open Component Model

Real-time & Embedded Systems Workshop July 2007 Building Successful Real-time Distributed Systems in Java

A Component Framework for Java-based Real-Time Embedded Systems

A Real-Time Java Component Model

Embedded Systems. 6. Real-Time Operating Systems

Real Time: Understanding the Trade-offs Between Determinism and Throughput

NuttX Realtime Programming

Real-Time Operating Systems Design and Implementation. LS 12, TU Dortmund

Predictable Interrupt Management and Scheduling in the Composite Component-based System

The Real-time Specification for Java

Department of Computer Science Institute for System Architecture, Operating Systems Group REAL-TIME MICHAEL ROITZSCH OVERVIEW

EMBEDDED OPERATING SYSTEMS

Lab Assignment Each team will independently implement the launch interceptor specification For this assignment, you re writing portable C code

Concurrent Programming. Implementation Alternatives. Content. Real-Time Systems, Lecture 2. Historical Implementation Alternatives.

Concurrent Programming

A Component-Based QoS. Embedded Systems. Jean-Charles TournierFrance Télécom

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Layers of an information system. Design strategies.

The Impact of a Real-Time JVM on Middleware Performance: Lessons Learned from Implementing DDS on IBM s J9

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Distributed transactions (quick refresh) Layers of an information system

F6COM: A Case Study in Extending Container Services through Connectors

Real-time for Windows NT

Commercial Real-time Operating Systems An Introduction. Swaminathan Sivasubramanian Dependable Computing & Networking Laboratory

Real-Time & Embedded Operating Systems

A Component Framework for Java-Based Real-Time Embedded Systems

Implementing Scheduling Algorithms. Real-Time and Embedded Systems (M) Lecture 9

Presentation of Open Simulation Architecture and Open Simulation Instrumentation Framework

Embedded Systems: OS. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

TDDD07 Real-time Systems Lecture 10: Wrapping up & Real-time operating systems

Software Components and Distributed Systems

The modularity requirement


AUTOBEST: A United AUTOSAR-OS And ARINC 653 Kernel. Alexander Züpke, Marc Bommert, Daniel Lohmann

Embedded Systems: OS

REAL TIME OPERATING SYSTEM PROGRAMMING-I: VxWorks

Parley: Federated Virtual Machines

For use by students enrolled in #71251 CSE430 Fall 2012 at Arizona State University. Do not use if not enrolled.

Multiprocessor and Real- Time Scheduling. Chapter 10

Java For Real-Time Enterprise Systems Delivering the Benefits of Java to the world of Real-Time distributed object computing

Model Based Development of Embedded Control Software

Agenda. Threads. Single and Multi-threaded Processes. What is Thread. CSCI 444/544 Operating Systems Fall 2008

Java Threads. COMP 585 Noteset #2 1

Fiji VM Safety Critical Java

IT 540 Operating Systems ECE519 Advanced Operating Systems

Real-Time Operating Systems (Working Draft) What is an Operating System (OS)?

Understanding the Role of Real-Time Java in Aegis Warship Modernization. Dr. Kelvin Nilsen, Chief Technology Officer Java, Atego Systems

From MDD back to basic: Building DRE systems

Web Services. Lecture I. Valdas Rapševičius. Vilnius University Faculty of Mathematics and Informatics

Implementing Real-time CORBA with Real-time Java

CSE 4/521 Introduction to Operating Systems. Lecture 29 Windows 7 (History, Design Principles, System Components, Programmer Interface) Summer 2018

Oracle-based Mode-change Propagation in Hierarchical Components.

Threads SPL/2010 SPL/20 1

Lecture notes Lectures 1 through 5 (up through lecture 5 slide 63) Book Chapters 1-4

Introduction to Real-Time Operating Systems

POSIX in Real-Time. By Kevin M. Obenland 03/15/2001. Daniel Correia nºmec Carlos Guisado nºmec 49099

Outline. Introduction. Survey of Device Driver Management in Real-Time Operating Systems

CHAPTER 3 LabVIEW REAL TIME APPLICATION DEVELOPMENT REFERENCES: [1] NI, Real Time LabVIEW. [2] R. Bishop, LabVIEW 2009.

Embedding OS in AVR microcontrollers. Prof. Prabhat Ranjan DA-IICT, Gandhinagar

6/17/2011. Real-time Operating Systems

SMD149 - Operating Systems

TI-RTOS overview. Nick Lethaby, TI-RTOS and IoT Ecosystem. May 2015

Embedded Systems. 5. Operating Systems. Lothar Thiele. Computer Engineering and Networks Laboratory

INRIA ADT galaxy An open agile SOA platform

Mission Modes for Safety Critical Java

Embedded Linux Architecture

TU Wien. Fault Isolation and Error Containment in the TT-SoC. H. Kopetz. TU Wien. July 2007

Eventrons: A Safe Programming Construct for High-Frequency Hard Real-Time Applications

EECS 571 Principles of Real-Time Embedded Systems. Lecture Note #10: More on Scheduling and Introduction of Real-Time OS

ECE519 Advanced Operating Systems

Hierarchical vs. Flat Component Models

Micrium µc/os II RTOS Introduction EE J. E. Lumpp

Capriccio: Scalable Threads for Internet Services

Data-Centric Architecture for Space Systems

European Network on New Sensing Technologies for Air Pollution Control and Environmental Sustainability - EuNetAir COST Action TD1105

CSC Operating Systems Fall Lecture - II OS Structures. Tevfik Ko!ar. Louisiana State University. August 27 th, 2009.

Announcements. Computer System Organization. Roadmap. Major OS Components. Processes. Tevfik Ko!ar. CSC Operating Systems Fall 2009

Lab 8 Real-time OS - 1

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

Processes (Tasks) and operating systems. Why multiple processes? Example: engine control

Lesson 5: Software for embedding in System- Part 2

Concurrency, Mutual Exclusion and Synchronization C H A P T E R 5

Imperative model of computation

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

MyCCM. A Component Based Approach for Real-Time & Critical Systems. Olivier Hachet Thales Communications

Real-Time Programming

Ensuring Schedulability of Spacecraft Flight Software

Programming Languages for Real-Time Systems. LS 12, TU Dortmund

OS Design Approaches. Roadmap. OS Design Approaches. Tevfik Koşar. Operating System Design and Implementation

Web Services. Lecture I. Valdas Rapševičius Vilnius University Faculty of Mathematics and Informatics

Principles of Computer Game Design and Implementation. Lecture 3

Real-Time Garbage Collection Panel JTRES 2007

Benchmark and comparison of real-time solutions based on embedded Linux

Chapter 2 Distributed Information Systems Architecture

Operating Systems Overview. Chapter 2

Module 20: Multi-core Computing Multi-processor Scheduling Lecture 39: Multi-processor Scheduling. The Lecture Contains: User Control.

LECTURE 3:CPU SCHEDULING

A High Integrity Distributed Deterministic Java Environment. WORDS 2002 January 7, San Diego CA

EE382V: System-on-a-Chip (SoC) Design

Hierarchical Real-time Garbage Collection

ARTAMIS : Open Source and Extensibility in an Embedded Mission System

Software Development & Education Center

Transcription:

Applying Componentbased Software Engineering in On-board Software 22.10.2008 SciSys Bristol, UK Aleš Plšek, ales.plsek@inria.fr Frédéric Loiret Michal Malohlava Lionel Seinturier Philippe Merle 1

INRIA INRIA 8 research centers 1800 scientists, 1000 PhD students, 100 post-docs 150 joint research project-teams 186 million Euros budget, 20% from research contracts Industrial Relations 790 active reseach contracts 89 companies 2

INRIA Nord Europe, team ADAM ADAM - Adaptive Distributed Applications and Middleware Component Oriented Programming Fractal Component Mo0del Model-Driven Engineering Service Oriented Architectures WebServices Ubiquitous computing Mobile Computing Context Oriented Programming The team 3 Profs, 2 Asist.Prof 2 Post-Doc 7 PhD students 6 R&D engineers 3

Me Past (2001-2006) Master Studies, DSRG, Charles University in Prague Model Checking of Software Components Present Since 2006 3 rd year PhD Student, INRIA ADAM Research Interests Component-Oriented Programming Real-time Java Programming 4

Outline Component-Based Software Engineering (CBSE) Real-Time Java Specification (RTSJ) Our Research RTSJ for Fractal Component-based RT OS 5

Outline Component-Based Software Engineering (CBSE) Real-Time Java Specification (RTSJ) Our Research RTSJ for Fractal Component-based RT OS 6

Component-Oriented Programming Component & Interfaces Black-box view Programming language agnostic Hierarchical Component Models Composite & primitive components Fractal Component Model Hierarchical component model Extension and adaptation reflective components Lightweight Component Sharing 7

Component-Oriented Programming Benefits Separation of concerns Reuse Architectural abstractions And many others: adaptation, reflection, 8

Component & Connectors 9

Component Container Component Container Non-functional properties management Lifecycle, Synchronization, Reconfiguration Interfaces Business & Control Hidden from the application developer Fractal Membrane Component-oriented container Reconfigurability of membranes Tailorability Controllers & interceptors (connectors) 10

Component-based Development Component Framework ToolChain Support Glue-code generation Framework overhead Execution infrastructure optimizations Component System Development Building system from pre-existing components Separation of activities development of components, testing, deployment, Price of CBSE 5x component reuse V development process for CBD 11

CBSE - Summary Benefits Reuse Separation of Concerns Architectural Abstraction Advanced Benefits Reflectivity, static/runtime adaptation Framework Benefits Tool-chain support Glue-Code Generation 12

Outline Component-Based Software Engineering (CBSE) Real-Time Java Specification (RTSJ) Our Research RTSJ for Fractal Component-based RT OS 13

Why Real-Time? Real-time Programming A little interest in Real-time from the mainstream software engineering community Deadlines, interruption handling, too low-level Real-Time Systems Trends Large-scale, heterogeneous systems Dynamically highly adaptable systems Systems composed from hard-, soft-, and non-real-time units Many software engineering techniques can be applied in real-time domain Component oriented programming, Code generation, Model Driven Engineering, Formal Verification, etc. 14

Why Java? Java Easy to use, familiar Popular programming language Libraries Portable across platforms But non-predictable RTSJ Real-time Specification for Java Making Java predictable 15

Successful Stories Shipboard computing US navy Zumwalt-class Destroyer 5mio lines of Java code Red Hat Linux, RT GC the key part Avionics 787 Dreamliner saves 900kgs of weight A380 saves a half of the processing units Financial Information Systems 16

RTSJ Making Java Deterministic Real-time Threads 2 New Types of Threads Realtime threads NoheapRealtime threads Memory Management Immortal Memory Objects are collected when the application terminates (live forever ) Real-Time threads 28 Real-time priorities NoheapRealtime threads Can not be preempted by Garbage Collector No heap memory access Memory Scope Size is fixed and pre-declared Maximum size specified when scopes are created Lifetime of objects in the Scope 17

Challenges in Real-Time Java Advantages 1/9/90 Real-time Rule Standard Java Advantages hard-, soft-, and non-real-time cooperation Complexities Error-prone process Non-intuitive rules and restrictions Introducing a new programming style Software Engineering Aspect Ad-hoc approach No reuse, verification, formalization, etc. No adaptability, distribution support 18

RTSJ vs. C++ Project Golden Gate RTSJ on a Mars Rover RTSJ vs. C++ C++ : memory management, RTSJ: scheduling API The bottom line Essential vs. incidental choices Separation of concerns needed Framework: Essentials specification Generation of language and platform- specific incidentals 19

Remedy? Component Framework for Real-time Java To shield developers from the RTSJ complexities State-of-the-Art Frameworks Compadres, Golden Gate, Real-Time Java Patterns Component-Oriented frameworks for RTSJ However: No separation of concerns Low level use of RTSJ concepts No adaptability of developed systems 20

Outline Component-Based Software Engineering (CBSE) Real-Time Java Specification (RTSJ) Our Research RTSJ for Fractal Component-based RT OS 21

Our Goal Our Philosophy RTSJ substantially influences the architecture of the system, therefore has to be considered earlier then during the implementation Separation of Concerns Ultimate Goal: Component Framework for RTSJ Alleviate the development process Isolate RTSJ related properties in clearly identified entities Manipulate RTSJ-concerns during the development lifecycle 22

Real-Time Component Model - Advantages General Purpose Layer Domain Specific Layer Domain Specific Layer Domain Components Functional Components Advantages Abstracting the complexities of real-time development Real-Time concerns at the architectural level evaluate RTSJ compatibility earlier then after the implementation 23

Domain Components Application Different assemblies of real-time components - Adapting systems for different real-time conditions. Memory Domains Thread Domains Composition & Communication constraints At the architectural level we reason about conformance to RTSJ 24

Execution Infrastructure, Membrane Architectures Framework Glue-code generation Execution Infrastructure Code Membrane architecture generation Intercepting mechanisms, connectors Generated code conforms to RTSJ 25

Framework Summary Component Framework for RTSJ Benchmarks Execution Time Distribution Advantages Separation of Concepts Domain Components Architectural Abstractions RT concerns at the architectural level RTSJ-related code generation Membranes Connectors Mitigation of complexities Only functional code implemented by the user Memory Footprint 26

Outline Component-Based Software Engineering (CBSE) Real-Time Java Specification (RTSJ) Our Research RTSJ for Fractal Component-based Real-Time OS 27

Real-time OS Motivation OS implementations generally «highly monolithic» Implemented as number of functions highly-coupled Control based on many globally shared variables Goals Component-oriented RT OS Enhance the code modularity & the reuse of low-level basic services Tailorable OS Based on Think - C implementation of Fractal Performance & memory footprint overhead impacted by the framework is a priority to considered at OS-level 28

Componentization of microc OS Micrium - μc/os-ii Provide the basic real-time services, deterministic Task management (priority-based scheduling), Time and Timer management, Fixed Sized Memory Block management, IPC : Semaphores / Message mailboxes and queues Well established in industry Certified in avionics - by the Federal Avion Adinistration (FAA) Ported on many hardware platforms 29

Real-Time OS Component Oriented Decoupling between generic and hardware-dependent components Delay Time Management Generic Component Task Resume/ Suspend TimeTick_ISR Task Create Task Management Context Switch CPU Hardware- Dependent component 30

Application Example Multitasking aspects are specified at the architectural level 31

RT OS Industrial Project RoadMap Short-term Performance and memory footprint analyses compared to the original implementation Minimize the overhead Suppress the indirections added by the framework (Several optimizations already implemented within the Think tool chain) Port the experiment to a microcontroler (32 bits / ARM based) Mid-term JVM componentization MIND project French industries interested in using CBSE toochains at the production level Implementation of Operating System and Middleware component libraries for : multiprocessor System-on-Chip (MPSoC) E.g. electric distribution devices 32

Outline Component-Based Software Engineering (CBSE) Real-Time Java Specification (RTSJ) Our Research RTSJ for Fractal Component-based Real-Time OS Conclusion 33

Conclusion Component-Oriented Programming Already established in industry - Fractal Benefits Reuse, separation of concerns, architecture abstraction Advanced Benefits Reconfigurability hard to achieve in RT systems RTSJ Not applicable without extensive tool support Framework for RTSJ CBSE substantially alleviate the development process Separation of RTSJ- and business-related code RTSJ code automatically generated 34

Questions? 35