SlideShare une entreprise Scribd logo
1  sur  51
SOLEIL : An Integrated Approach for Designing and Developing Component-based Real-time Java Systems   AlešPlšek INRIA Lille, team ADAM Université de Lille, France Supervisors:  Prof.LionelSeinturier Dr.PhilippeMerle 14.9.2009 Lille, France
Introduction Context Domains ,[object Object]
Real-time Java Programming  (RTSJ)Our Approach ,[object Object]
High-Level AbstractionsThesis Statement.  An effective development process of RTSJ-compliant systems must consider RTSJ concerns at early stages of the system design and must provide their high level abstractions as the only way to avoid tedious and error-prone process when implementing them. 2
Introduction Outline Introduction State of the Art Proposal Validation Conclusion 3
Introduction Outline Introduction State of the Art Proposal Validation Conclusion 4
Why Real-Time? Introduction 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 the real-time domain Component oriented programming, Generative Programming, Model Driven Engineering, Formal Verification, etc. 5
Successful Stories Introduction 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 100 milliseconds deadlines Thomson Reuters Market Data System (powered by SUN RTS Java) 6
Why Java? Introduction Java Easy to use, familiar Popular programming language Libraries Portable across platforms But – non-predictable RTSJ – Real-time Specification for Java Making Java predictable Thread and Memory model 7
RTSJ Illustration Example Introduction SweetFactory A helloworld RTSJ example developed by IBM [GHMS07] Output statistics control, reporting anomalies and wrong values Real-time and non-real-time concerns coexist in the system RTSJ Implementation How to express RTSJ? RTSJ concerns mixed with system architecture 8
Introduction RTSJ Thread Model  2 New Types of Threads ,[object Object]
NoheapRealtime threads
Cannot be preempted by Garbage Collector
No heap memory access9 Thread Management Issues ,[object Object]
Bootstrapping threads
Cross-ThreadCommunication,[object Object]
Objects are collected when the application terminates (live forever…)
Memory Scope
Size is fixed and pre-declared
Lifetime of objects in the Scope10 Memory Management Issues ,[object Object]
Communication Rules
RTSJ patterns,[object Object]
Non-intuitive rules and restrictions
Functional code tangled by the RTSJ code
Introducing a new programming style11
Remedy? Component-based Software Engineering (CBSE) ,[object Object]
Separation of Concerns
Runtime Infrastructure
Component Container
Generative programming
Container Implementation automatically generated
Adaptation SupportComponent Framework for Real-time Java  ,[object Object],Introduction 12
State of the Art Outline Introduction State of the Art Proposal Validation Conclusion 13
State of the Art Component Frameworks for Real-time Systems ,[object Object],Component Frameworks for Real-time Java Systems ,[object Object],State of the Art 14
Component Frameworks for Real-time Systems State of the Art Separation of Real-time and Functional Concerns AADL [FLV06], AdaCCM [PMPL08] Development Methodology AADL [FLV06], AdaCCM [PMPL08] Component-Oriented Containers SOFA HI [MWP+08] Active/Passive Components Fractal [BCL+06] Formalization Support Fractal in Alloy [MS08] Towards a specific programming language AdaCCM [PMPL08] Matured component models employed 15
Component Frameworks for RTSJ State of the Art CBSE Criterions Weak Component Models Only event-oriented Compadres [HGCK07], Golden Gate [DBC+04]  Matured Model Etienne et al. [ECB06] Inspired by Fractal Development Methodology Compadres [HGCK07] Features not supported Component-Oriented Containers Formalization of the model 16
Component Frameworks for RTSJ State of the Art RTSJ criterions Memory model “one memory area per component” No other granularity or flexibility Compadres [HGCK07] No support for heap memory Etienne et al. [ECB06] Thread model Active/Passive components Etienne et al. [ECB06] No abstractions of RTSJ complexities provided Development process not facilitated RTSJ concepts not separated, this hinders  reuse of components No support for cross-memory and cross-thread communication 17
Proposal Outline Introduction State of the Art Proposal Validation Conclusion 18
Our Goal Our Philosophy RTSJ considerably influences the architecture of the system, therefore has to be considered earlier than during the implementation Ultimate Goal: Component Framework for RTSJ Isolate RTSJ–related properties in clearly identified entities Manipulate RTSJ-concerns during the development lifecycle Separation of Concerns State of the Art 19
Proposal SOLEIL  Design Framework HULOTTE Implementation Framework SOLEILMetamodel Contributions – Big Picture Domain Component RTSJ abstractions 20 ,[object Object]
Runtime Infrastructure Generation
Methodology
Metamodel Formalization
Validation Support,[object Object]
SOLEILMetamodel Proposal 22 Metamodel ,[object Object]
Hierarchical model
Component sharingNew concepts: ,[object Object]
Active and Passive Components
Implement functional services
Domain Component
Represents non-functional services,[object Object]

Contenu connexe

Similaire à Soleil: A Component Framework for RTSJ

A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Toolsghodgkinson
 
Reference Architecture
Reference ArchitectureReference Architecture
Reference ArchitectureJohan Eltes
 
Real-time Programming in Java
Real-time Programming in JavaReal-time Programming in Java
Real-time Programming in JavaAleš Plšek
 
Sdlc cource in_mumbai
Sdlc cource in_mumbaiSdlc cource in_mumbai
Sdlc cource in_mumbaivibrantuser
 
Performance Verification for ESL Design Methodology from AADL Models
Performance Verification for ESL Design Methodology from AADL ModelsPerformance Verification for ESL Design Methodology from AADL Models
Performance Verification for ESL Design Methodology from AADL ModelsSpace Codesign
 
PhD defense: David Ameller
PhD defense: David AmellerPhD defense: David Ameller
PhD defense: David AmellerDavid Ameller
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...ghodgkinson
 
200923 01en
200923 01en200923 01en
200923 01enopenrtm
 
The Architecture Of Software Defined Radios Essay
The Architecture Of Software Defined Radios EssayThe Architecture Of Software Defined Radios Essay
The Architecture Of Software Defined Radios EssayDivya Watson
 
Il product development - 20 01 2011
Il  product development - 20 01 2011Il  product development - 20 01 2011
Il product development - 20 01 2011nakham
 
D22 Portlet Development With Open Source Frameworks
D22 Portlet Development With Open Source FrameworksD22 Portlet Development With Open Source Frameworks
D22 Portlet Development With Open Source FrameworksSunil Patil
 
D22 portlet development with open source frameworks
D22 portlet development with open source frameworksD22 portlet development with open source frameworks
D22 portlet development with open source frameworksSunil Patil
 
Micro Front Ends for Micro Services using Oracle JET
Micro Front Ends for Micro Services using Oracle JETMicro Front Ends for Micro Services using Oracle JET
Micro Front Ends for Micro Services using Oracle JETVijay Nair
 
JAVA J2EE LEAD coming out of CITI
JAVA J2EE LEAD coming out of CITIJAVA J2EE LEAD coming out of CITI
JAVA J2EE LEAD coming out of CITIvravi123
 
Software Process Models
 Software Process Models  Software Process Models
Software Process Models MohsinAli773
 
Legacy Renewal of Central Framework in the Enterprise
Legacy Renewal of Central Framework in the EnterpriseLegacy Renewal of Central Framework in the Enterprise
Legacy Renewal of Central Framework in the EnterpriseAnatole Tresch
 

Similaire à Soleil: A Component Framework for RTSJ (20)

A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Tools
 
Reference Architecture
Reference ArchitectureReference Architecture
Reference Architecture
 
Real-time Programming in Java
Real-time Programming in JavaReal-time Programming in Java
Real-time Programming in Java
 
Sdlc cource in_mumbai
Sdlc cource in_mumbaiSdlc cource in_mumbai
Sdlc cource in_mumbai
 
Performance Verification for ESL Design Methodology from AADL Models
Performance Verification for ESL Design Methodology from AADL ModelsPerformance Verification for ESL Design Methodology from AADL Models
Performance Verification for ESL Design Methodology from AADL Models
 
.net Framework
.net Framework.net Framework
.net Framework
 
PhD defense: David Ameller
PhD defense: David AmellerPhD defense: David Ameller
PhD defense: David Ameller
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
 
200923 01en
200923 01en200923 01en
200923 01en
 
The Architecture Of Software Defined Radios Essay
The Architecture Of Software Defined Radios EssayThe Architecture Of Software Defined Radios Essay
The Architecture Of Software Defined Radios Essay
 
Il product development - 20 01 2011
Il  product development - 20 01 2011Il  product development - 20 01 2011
Il product development - 20 01 2011
 
Microservices.pdf
Microservices.pdfMicroservices.pdf
Microservices.pdf
 
soa1.ppt
soa1.pptsoa1.ppt
soa1.ppt
 
D22 Portlet Development With Open Source Frameworks
D22 Portlet Development With Open Source FrameworksD22 Portlet Development With Open Source Frameworks
D22 Portlet Development With Open Source Frameworks
 
D22 portlet development with open source frameworks
D22 portlet development with open source frameworksD22 portlet development with open source frameworks
D22 portlet development with open source frameworks
 
Waterfall model
Waterfall modelWaterfall model
Waterfall model
 
Micro Front Ends for Micro Services using Oracle JET
Micro Front Ends for Micro Services using Oracle JETMicro Front Ends for Micro Services using Oracle JET
Micro Front Ends for Micro Services using Oracle JET
 
JAVA J2EE LEAD coming out of CITI
JAVA J2EE LEAD coming out of CITIJAVA J2EE LEAD coming out of CITI
JAVA J2EE LEAD coming out of CITI
 
Software Process Models
 Software Process Models  Software Process Models
Software Process Models
 
Legacy Renewal of Central Framework in the Enterprise
Legacy Renewal of Central Framework in the EnterpriseLegacy Renewal of Central Framework in the Enterprise
Legacy Renewal of Central Framework in the Enterprise
 

Dernier

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 

Dernier (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

Soleil: A Component Framework for RTSJ

  • 1. SOLEIL : An Integrated Approach for Designing and Developing Component-based Real-time Java Systems AlešPlšek INRIA Lille, team ADAM Université de Lille, France Supervisors: Prof.LionelSeinturier Dr.PhilippeMerle 14.9.2009 Lille, France
  • 2.
  • 3.
  • 4. High-Level AbstractionsThesis Statement. An effective development process of RTSJ-compliant systems must consider RTSJ concerns at early stages of the system design and must provide their high level abstractions as the only way to avoid tedious and error-prone process when implementing them. 2
  • 5. Introduction Outline Introduction State of the Art Proposal Validation Conclusion 3
  • 6. Introduction Outline Introduction State of the Art Proposal Validation Conclusion 4
  • 7. Why Real-Time? Introduction 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 the real-time domain Component oriented programming, Generative Programming, Model Driven Engineering, Formal Verification, etc. 5
  • 8. Successful Stories Introduction 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 100 milliseconds deadlines Thomson Reuters Market Data System (powered by SUN RTS Java) 6
  • 9. Why Java? Introduction Java Easy to use, familiar Popular programming language Libraries Portable across platforms But – non-predictable RTSJ – Real-time Specification for Java Making Java predictable Thread and Memory model 7
  • 10. RTSJ Illustration Example Introduction SweetFactory A helloworld RTSJ example developed by IBM [GHMS07] Output statistics control, reporting anomalies and wrong values Real-time and non-real-time concerns coexist in the system RTSJ Implementation How to express RTSJ? RTSJ concerns mixed with system architecture 8
  • 11.
  • 13. Cannot be preempted by Garbage Collector
  • 14.
  • 16.
  • 17. Objects are collected when the application terminates (live forever…)
  • 19. Size is fixed and pre-declared
  • 20.
  • 22.
  • 23. Non-intuitive rules and restrictions
  • 24. Functional code tangled by the RTSJ code
  • 25. Introducing a new programming style11
  • 26.
  • 32.
  • 33. State of the Art Outline Introduction State of the Art Proposal Validation Conclusion 13
  • 34.
  • 35. Component Frameworks for Real-time Systems State of the Art Separation of Real-time and Functional Concerns AADL [FLV06], AdaCCM [PMPL08] Development Methodology AADL [FLV06], AdaCCM [PMPL08] Component-Oriented Containers SOFA HI [MWP+08] Active/Passive Components Fractal [BCL+06] Formalization Support Fractal in Alloy [MS08] Towards a specific programming language AdaCCM [PMPL08] Matured component models employed 15
  • 36. Component Frameworks for RTSJ State of the Art CBSE Criterions Weak Component Models Only event-oriented Compadres [HGCK07], Golden Gate [DBC+04] Matured Model Etienne et al. [ECB06] Inspired by Fractal Development Methodology Compadres [HGCK07] Features not supported Component-Oriented Containers Formalization of the model 16
  • 37. Component Frameworks for RTSJ State of the Art RTSJ criterions Memory model “one memory area per component” No other granularity or flexibility Compadres [HGCK07] No support for heap memory Etienne et al. [ECB06] Thread model Active/Passive components Etienne et al. [ECB06] No abstractions of RTSJ complexities provided Development process not facilitated RTSJ concepts not separated, this hinders reuse of components No support for cross-memory and cross-thread communication 17
  • 38. Proposal Outline Introduction State of the Art Proposal Validation Conclusion 18
  • 39. Our Goal Our Philosophy RTSJ considerably influences the architecture of the system, therefore has to be considered earlier than during the implementation Ultimate Goal: Component Framework for RTSJ Isolate RTSJ–related properties in clearly identified entities Manipulate RTSJ-concerns during the development lifecycle Separation of Concerns State of the Art 19
  • 40.
  • 44.
  • 45.
  • 47.
  • 48. Active and Passive Components
  • 51.
  • 52. Abstracting the complexities of real-time development
  • 53. Evaluate RTSJ compatibility earlier than “after the implementation”23
  • 54.
  • 55.
  • 56.
  • 57. Methodology how to gradually construct and merge design components with functional architecture
  • 58. Defining and distinguishing between real-time and non-real-time parts of the system
  • 59. Designing RTSJ concerns independently from the rest of the system26
  • 60.
  • 61. Alloy specification languageabstractsigComponent { interface: setInterface superComponent : setComposite } sigComposite in Component { subComponents : setComponent } sigPrimitive inComponent { } sig FunctionalComponent { } fact { all f : FunctionalComponent| f in Primitive or f in Composite and not f in (Primitive and Composite) } 27
  • 62. Proposal fact EveryCompHasMemory { all f : Component | one m: MemoryArea| f inm.^subComponent } Architecture Validation Process Composition Rules Validation Consistence with RTSJ RTSJ communication Patterns Formalized in the model The process facilitates Incremental design Reasoning about the system before starting with implementation Using the Formalized Metamodel 28
  • 63. Proposal Outline Introduction State of the Art Proposal RTSJ-specific Metamodel SOLEIL Design Framework HULOTTE Implementation Framework Validation Conclusion 29
  • 64. HULOTTE Implementation Framework Proposal Motivation Keep components also at the implementation layer Distinguish functional and domain components Implementation of Domain Components Component-Oriented Containers Hidden Intercepting and control mechanisms to manage RT concerns Component Refinement 30
  • 65. HULOTTEMetamodel Proposal Metamodel Specifics Application and Container Level Fractal Component model concepts Container level Implements Domain Components Container architectures Component Refinement Process 31 Application Level Container Level Container Level Application Level Container Level
  • 66. Component Refinement Example Proposal 32 Application Level Container Level
  • 67. Component Refinement Example cont. Proposal 33 Application Level Container Level
  • 68.
  • 69. Hulotte internal is implemented using CBSE
  • 70.
  • 72.
  • 73. Validation Outline Introduction State of the Art Proposal RTSJ-specific Metamodel SOLEIL Design Framework HULOTTE Implementation Framework Validation Conclusion 36
  • 74.
  • 77. Ambient and Distributed Programming in Hulotte
  • 78. Goals
  • 82.
  • 85. OO - IBM’s object-oriented
  • 86. SOLEIL - SOLEIL implemented and optimized implementations38
  • 87. Validation Performance Benchmarks Measuring overhead of the framework Different levels of optimization Memory Footprint Memory Footprint 5% Execution Time Distribution 39
  • 88. Validation Real-time Collision Detector Real-Time Collision Detector Algorithm computing collision courses of aircraft in real-time A software engineering challenge A well-known Real-time Java benchmark [PFHV04, ABG+08] Goals of the Case Study Evaluation on a large real-life application Comparison with the state-of-the-art approaches Componentization of the Application 40
  • 89. Validation Realtime Collision Detector RCD Architecture Results RTSJ concerns separated from the functional logic of the system Simplified design and development No trade-offs caused by RTSJ Separation of concerns 41 Refined Architecture
  • 90. Validation Ambient and Distributed Programming Goals Evaluate SOLEIL&HULOTTE in a more general perspective Face challenges from different domains Targeted Domains Distributed Programming To provide a transparent implementation of a distributed system Ambient Programming To provide implementation of ambient services 42
  • 91. Validation Distributed Programming A new domain component DistributedNode Execution infrastructure Distribution support implemented Transparent implementation for the functional components Using RTZenmiddleware [RZP+05] RTZen Stubs/skeletons 43
  • 92. Outline Introduction State of the Art Proposal RTSJ-specific Metamodel SOLEIL framework HULOTTE framework Validation Conclusion and Perspectives 44
  • 93.
  • 96. Automatic instantiation of runtime infrastructures
  • 100. Conclusion Selected Publications International Conferences FrédéricLoiret, Michal Malohlava, AlešPlšek, Philippe Merle, Lionel Seinturier. Constructing Domain-Specific Component Frameworks through Architecture Refinement. SEAA 2009 AlešPlšek, FrédéricLoiret, Philippe Merle, Lionel Seinturier. A Component Framework for Java-based Real-time Embedded Systems, Middleware 2008 AlešPlšek, JiříAdámek. Carmen: Software Component Model Checker. QoSA 2008 AlešPlšek, Philippe Merle, Lionel Seinturier. A Real-Time Java Component Model, ISORC 2008 International Workshops Tomas Kalibera, Jeff Hagelberg, FilipPizlo, Ales Plsek, Ben Titzer, Jan VitekCDx: A Family of Real-time Java Benchmarks. JTRES 2009 Michal Malohlava, AlešPlšek, FrédéricLoiret, Philippe Merle and Lionel Seinturier. Introducing Distribution into a RTSJ-based Component Framework, JRWRTC 2008 AlešPlšek, Philippe Merle, Lionel Seinturier. Ambient-Oriented Programming in Fractal. ECOOP Workshop 2007 46
  • 101. Conclusion Contributions cont. Developed Software SOLEILandHULOTTEFrameworks Alloy: 400 signatures, facts, and predicates in 4.5KLoC 55kLoC Available at http://adam.lille.inria.fr/soleil/ Real-time Collision Detector 30kLoC Available at www.ovj.org/cdx Works influenced by the Dissertation Annotation Framework for Domain-Specific Component Applications [NL09] Homogenous validation of architectural and implementation concepts towards OCL rules Domain Components expressed as annotations 47
  • 102. Conclusion Future Work Short-Term Perspective Taxonomy of Domain Components Resolve conflicts and dependencies between different Domain Components Long-Term Perspective Run-time Adaptation of RTSJ-based System Reconfiguration support specified by domain components Reconfiguration in the context of RTSJ Model-Checking of RTSJ-based Components 48