SlideShare a Scribd company logo
Model-Driven Analysis and Design of
Distributed, Heterogeneous Systems
Eugenio Villar
University of Cantabria
Agenda
▪ Introduction
▪ Single-Source Embedded Systems Design
▪ Model-driven Analysis en Design of distributed Systems
▪ Conclusions
Introduction
▪ Model-Driven Design (MDD)
▪ High-abstraction level
▪ Mature SW engineering methodology
▪ State-of-the-Art
▪ Matlab-Simulink
▪ Proprietary, only one MoC, M language
▪ CoFluent
▪ Proprietary, a few MoCs, C/C++ language
▪ Ptolemy II
▪ Academic, any MoC, C/C++ inside a Java block
▪ …
Introduction
▪ UML
▪ Standard, any (user-defined) MoC, any language
▪ Natural way to capture system architecture
N2 BN1
M A
▪ Semantic lacks
▪ Domain-specific profiles
▪ MetaMorph
▪ Commercial, any (user-defined) MoC, language agnostic
▪ CHESS
▪ Open Source, any (user-defined) MoC, language agnostic
C/C++,…
Autosar RTE
UML
ES DSLs
HTML5,…
Java,…
Dalvik VM,…
UML
SmartPhone
DSLs
Introduction
Java,…
MPI,…
UML
DC DSLs
ADA,…
C/C++,…
MCAPI,…
UML
ES DSLs
Single-Source Embedded System Design
ADA,…
C/C++,…
MCAPI,…
UML
MARTE
Trust Simulation
Verification
Performance
Analysis
PrivacyArchitectural
Mapping
Security
Safety
HW
Synthesis
SW
Synthesis
Model-Driven Analysis of IoE Services
▪ Programming the Internet of Everything
▪ Services provided on computing platforms of many kind
Model-Driven Analysis of IoE Services
▪ Programming the Internet of Everything
▪ Services provided on computing platforms of many kind
C/C++,…
Autosar RTE
ForTran,…
Python,…
MPI,…
Java,…
MPI,…
C/C++,…
MCAPI,…
HTML5,…
Java,…
Dalvik VM,…
UML
DC DSLs
UML
ES DSLs
UML
SmartPhone
DSLs
Service
UML
ES DSLs
UML
CPSoS DSL
Model-Driven Analysis of IoE Services
▪ Programming the Internet of Everything
▪ Services provided on computing platforms of many kind
HW
Synthesis
SW
Synthesis
(RT)OS,
Runtime,…
Corba, TCP/IP,
MPI, MCAPI,…
ForTran,
Python, Java,
HTML5,
C/C++,…
Concerns
Performance,
safety, cost,
security, size,
…
Trust
Simulation
Verification
Performance
AnalysisPrivacy
Optimization
Service
UML
CPSoS DSL
Security
Safety
Model-Driven Analysis of IoE Services
▪ UML/MARTE System Modeling Methodology
▪ Platform-Independent
▪ Component-Based
▪ Supporting
▪ Object-Orientation
▪ Actor-Orientation
required
interface
Component 1
Component 3
Component 2
Port 3.1
Port 3.2 Port 2.1Port 2.2
Port 1
provided
interface
required
interface
provided
interface
required
interface
OO
CB
AO
▪ UML/MARTE System Modeling Methodology
▪ Platform-Independent
▪ Component-Based
▪ Supporting
▪ Object-Orientation
▪ Actor-Orientation
▪ Reusable
▪ Flexible
▪ Analyzable
▪ Security
▪ Reliability
▪ Test
▪ Safety
▪ Privacy, Trust…
Model-Driven Analysis of IoE Services
Model-Driven Analysis of IoE Services
▪ Properties of the Provided Port
▪ NotAttendedService
▪ Retry
▪ Properties of the Interface Methods
▪ concurrency
▪ exekind
▪ syncKind
▪ Properties of the Required Port
▪ queueSize
▪ FullPoolPolicy
Model-Driven Analysis of IoE Services
▪ Function Call/RPC/RMI
▪ Rendezvous
Required Port RtService Provided Port
MoCNotAttendedService retry concurrency exekind syncKind queueSize FullPoolPolicy
infiniteWait none G or C rem.Im. sync. none none exactly once
infiniteWait none G or C rem.Im. async. none none at most once
dynamic none G or C rem.Im. sync. none none exactly once
dynamic none G or C rem.Im. async. none none at most once
timedWait 0 G or C rem.Im. sync. none none exactly once
timedWait 0 G or C rem.Im. async. none none at most once
timedWait > 0 G or C rem.Im. sync. none none at least once
timedWait > 0 G or C rem.Im. async. none none maybe once
Required Port RtService Provided Port
MoCNotAttendedService retry concurrency exekind syncKind queueSize FullPoolPolicy
infiniteWait none G or C rem.Im. rendezvous none none CSP
timedWait 0 G or C rem.Im. rendezvous none none RV
timedWait > 0 G or C rem.Im. rendezvous none none RV
Model-Driven Analysis of IoE Services
▪ Data-Flow
▪ Discrete-Event/Time-Triggered/Timed Data-Flow
Required Port RtService Provided Port
MoCNotAttendedService retry concurrency exekind syncKind queueSize FullPoolPolicy
infiniteWait none G or C deferred async. > 0 block KPN/SDF
infiniteWait none G or C deferred async. > 0 (any other) DF
dynamic none G or C deferred async. > 0 any DF
timedWait 0 G or C deferred async. > 0 any DF
timedWait > 0 G or C deferred async. > 0 any DF
Required Port RtService Provided Port
MoCNotAttendedService retry concurrency exekind syncKind queueSize FullPoolPolicy
dynamic none G or C rem.Im. async. none none DE/TT/TDF
Conclusions
▪ The IoE demands new CPSoS design methods and tools
▪ Model-Driven system design is a powerful candidate
▪ A CPSoS system modeling language is required
▪ Supporting Mega-Modeling
▪ Analysis & design of the whole IoE service
▪ Single-Source Approach

More Related Content

Similar to Model-Driven Analysis&Design of Distributed, Heterogeneous Systems

Functional verification techniques EW16 session
Functional verification techniques  EW16 sessionFunctional verification techniques  EW16 session
Functional verification techniques EW16 session
Sameh El-Ashry
 
Low Latency Polyglot Model Scoring using Apache Apex
Low Latency Polyglot Model Scoring using Apache ApexLow Latency Polyglot Model Scoring using Apache Apex
Low Latency Polyglot Model Scoring using Apache Apex
Apache Apex
 
PipelineAI + AWS SageMaker + Distributed TensorFlow + AI Model Training and S...
PipelineAI + AWS SageMaker + Distributed TensorFlow + AI Model Training and S...PipelineAI + AWS SageMaker + Distributed TensorFlow + AI Model Training and S...
PipelineAI + AWS SageMaker + Distributed TensorFlow + AI Model Training and S...
Chris Fregly
 
Optimizing, Profiling, and Deploying High Performance Spark ML and TensorFlow AI
Optimizing, Profiling, and Deploying High Performance Spark ML and TensorFlow AIOptimizing, Profiling, and Deploying High Performance Spark ML and TensorFlow AI
Optimizing, Profiling, and Deploying High Performance Spark ML and TensorFlow AI
Data Con LA
 
Villar presentation.pdf
Villar presentation.pdfVillar presentation.pdf
Villar presentation.pdf
Eugenio Villar
 
RESTful Machine Learning with Flask and TensorFlow Serving - Carlo Mazzaferro
RESTful Machine Learning with Flask and TensorFlow Serving - Carlo MazzaferroRESTful Machine Learning with Flask and TensorFlow Serving - Carlo Mazzaferro
RESTful Machine Learning with Flask and TensorFlow Serving - Carlo Mazzaferro
PyData
 
Scaling FreeSWITCH Performance
Scaling FreeSWITCH PerformanceScaling FreeSWITCH Performance
Scaling FreeSWITCH Performance
Moises Silva
 
.NET compiler platform codename Roslyn
.NET compiler platform codename Roslyn.NET compiler platform codename Roslyn
.NET compiler platform codename Roslyn
Piotr Benetkiewicz
 
Do You Need a Service Mesh? @ London Devops, January 2019
Do You Need a Service Mesh? @ London Devops, January 2019Do You Need a Service Mesh? @ London Devops, January 2019
Do You Need a Service Mesh? @ London Devops, January 2019
Matt Turner
 
What we learnt at carousell tw for golang gathering #31
What we learnt at carousell tw for golang gathering #31What we learnt at carousell tw for golang gathering #31
What we learnt at carousell tw for golang gathering #31
Ronald Hsu
 
Værktøjer udviklet på AAU til analyse af SCJ programmer
Værktøjer udviklet på AAU til analyse af SCJ programmerVærktøjer udviklet på AAU til analyse af SCJ programmer
Værktøjer udviklet på AAU til analyse af SCJ programmer
InfinIT - Innovationsnetværket for it
 
On component interface
On component interfaceOn component interface
On component interface
Laurence Chen
 
GC Tuning Confessions Of A Performance Engineer
GC Tuning Confessions Of A Performance EngineerGC Tuning Confessions Of A Performance Engineer
GC Tuning Confessions Of A Performance Engineer
Monica Beckwith
 
H2O Design and Infrastructure with Matt Dowle
H2O Design and Infrastructure with Matt DowleH2O Design and Infrastructure with Matt Dowle
H2O Design and Infrastructure with Matt Dowle
Sri Ambati
 
SELF - Becoming a Rails Developer - The Rest of the Story
SELF - Becoming a Rails Developer - The Rest of the StorySELF - Becoming a Rails Developer - The Rest of the Story
SELF - Becoming a Rails Developer - The Rest of the Story
Nathanial McConnell
 
TechUG Glasgow talk 22/Feb/17 Configuration Management Best Practices
TechUG Glasgow talk 22/Feb/17 Configuration Management Best PracticesTechUG Glasgow talk 22/Feb/17 Configuration Management Best Practices
TechUG Glasgow talk 22/Feb/17 Configuration Management Best Practices
Dag Sonstebo
 
Trends and development practices in Serverless architectures
Trends and development practices in Serverless architecturesTrends and development practices in Serverless architectures
Trends and development practices in Serverless architectures
DiUS
 
Node.js scaling in highload
Node.js scaling in highloadNode.js scaling in highload
Node.js scaling in highload
Timur Shemsedinov
 
PHP At 5000 Requests Per Second: Hootsuite’s Scaling Story
PHP At 5000 Requests Per Second: Hootsuite’s Scaling StoryPHP At 5000 Requests Per Second: Hootsuite’s Scaling Story
PHP At 5000 Requests Per Second: Hootsuite’s Scaling Story
vanphp
 
How to Productionize Your Machine Learning Models Using Apache Spark MLlib 2....
How to Productionize Your Machine Learning Models Using Apache Spark MLlib 2....How to Productionize Your Machine Learning Models Using Apache Spark MLlib 2....
How to Productionize Your Machine Learning Models Using Apache Spark MLlib 2....
Databricks
 

Similar to Model-Driven Analysis&Design of Distributed, Heterogeneous Systems (20)

Functional verification techniques EW16 session
Functional verification techniques  EW16 sessionFunctional verification techniques  EW16 session
Functional verification techniques EW16 session
 
Low Latency Polyglot Model Scoring using Apache Apex
Low Latency Polyglot Model Scoring using Apache ApexLow Latency Polyglot Model Scoring using Apache Apex
Low Latency Polyglot Model Scoring using Apache Apex
 
PipelineAI + AWS SageMaker + Distributed TensorFlow + AI Model Training and S...
PipelineAI + AWS SageMaker + Distributed TensorFlow + AI Model Training and S...PipelineAI + AWS SageMaker + Distributed TensorFlow + AI Model Training and S...
PipelineAI + AWS SageMaker + Distributed TensorFlow + AI Model Training and S...
 
Optimizing, Profiling, and Deploying High Performance Spark ML and TensorFlow AI
Optimizing, Profiling, and Deploying High Performance Spark ML and TensorFlow AIOptimizing, Profiling, and Deploying High Performance Spark ML and TensorFlow AI
Optimizing, Profiling, and Deploying High Performance Spark ML and TensorFlow AI
 
Villar presentation.pdf
Villar presentation.pdfVillar presentation.pdf
Villar presentation.pdf
 
RESTful Machine Learning with Flask and TensorFlow Serving - Carlo Mazzaferro
RESTful Machine Learning with Flask and TensorFlow Serving - Carlo MazzaferroRESTful Machine Learning with Flask and TensorFlow Serving - Carlo Mazzaferro
RESTful Machine Learning with Flask and TensorFlow Serving - Carlo Mazzaferro
 
Scaling FreeSWITCH Performance
Scaling FreeSWITCH PerformanceScaling FreeSWITCH Performance
Scaling FreeSWITCH Performance
 
.NET compiler platform codename Roslyn
.NET compiler platform codename Roslyn.NET compiler platform codename Roslyn
.NET compiler platform codename Roslyn
 
Do You Need a Service Mesh? @ London Devops, January 2019
Do You Need a Service Mesh? @ London Devops, January 2019Do You Need a Service Mesh? @ London Devops, January 2019
Do You Need a Service Mesh? @ London Devops, January 2019
 
What we learnt at carousell tw for golang gathering #31
What we learnt at carousell tw for golang gathering #31What we learnt at carousell tw for golang gathering #31
What we learnt at carousell tw for golang gathering #31
 
Værktøjer udviklet på AAU til analyse af SCJ programmer
Værktøjer udviklet på AAU til analyse af SCJ programmerVærktøjer udviklet på AAU til analyse af SCJ programmer
Værktøjer udviklet på AAU til analyse af SCJ programmer
 
On component interface
On component interfaceOn component interface
On component interface
 
GC Tuning Confessions Of A Performance Engineer
GC Tuning Confessions Of A Performance EngineerGC Tuning Confessions Of A Performance Engineer
GC Tuning Confessions Of A Performance Engineer
 
H2O Design and Infrastructure with Matt Dowle
H2O Design and Infrastructure with Matt DowleH2O Design and Infrastructure with Matt Dowle
H2O Design and Infrastructure with Matt Dowle
 
SELF - Becoming a Rails Developer - The Rest of the Story
SELF - Becoming a Rails Developer - The Rest of the StorySELF - Becoming a Rails Developer - The Rest of the Story
SELF - Becoming a Rails Developer - The Rest of the Story
 
TechUG Glasgow talk 22/Feb/17 Configuration Management Best Practices
TechUG Glasgow talk 22/Feb/17 Configuration Management Best PracticesTechUG Glasgow talk 22/Feb/17 Configuration Management Best Practices
TechUG Glasgow talk 22/Feb/17 Configuration Management Best Practices
 
Trends and development practices in Serverless architectures
Trends and development practices in Serverless architecturesTrends and development practices in Serverless architectures
Trends and development practices in Serverless architectures
 
Node.js scaling in highload
Node.js scaling in highloadNode.js scaling in highload
Node.js scaling in highload
 
PHP At 5000 Requests Per Second: Hootsuite’s Scaling Story
PHP At 5000 Requests Per Second: Hootsuite’s Scaling StoryPHP At 5000 Requests Per Second: Hootsuite’s Scaling Story
PHP At 5000 Requests Per Second: Hootsuite’s Scaling Story
 
How to Productionize Your Machine Learning Models Using Apache Spark MLlib 2....
How to Productionize Your Machine Learning Models Using Apache Spark MLlib 2....How to Productionize Your Machine Learning Models Using Apache Spark MLlib 2....
How to Productionize Your Machine Learning Models Using Apache Spark MLlib 2....
 

Recently uploaded

Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Zilliz
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Zilliz
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 

Recently uploaded (20)

Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 

Model-Driven Analysis&Design of Distributed, Heterogeneous Systems

  • 1. Model-Driven Analysis and Design of Distributed, Heterogeneous Systems Eugenio Villar University of Cantabria
  • 2. Agenda ▪ Introduction ▪ Single-Source Embedded Systems Design ▪ Model-driven Analysis en Design of distributed Systems ▪ Conclusions
  • 3. Introduction ▪ Model-Driven Design (MDD) ▪ High-abstraction level ▪ Mature SW engineering methodology ▪ State-of-the-Art ▪ Matlab-Simulink ▪ Proprietary, only one MoC, M language ▪ CoFluent ▪ Proprietary, a few MoCs, C/C++ language ▪ Ptolemy II ▪ Academic, any MoC, C/C++ inside a Java block ▪ …
  • 4. Introduction ▪ UML ▪ Standard, any (user-defined) MoC, any language ▪ Natural way to capture system architecture N2 BN1 M A ▪ Semantic lacks ▪ Domain-specific profiles ▪ MetaMorph ▪ Commercial, any (user-defined) MoC, language agnostic ▪ CHESS ▪ Open Source, any (user-defined) MoC, language agnostic
  • 5. C/C++,… Autosar RTE UML ES DSLs HTML5,… Java,… Dalvik VM,… UML SmartPhone DSLs Introduction Java,… MPI,… UML DC DSLs ADA,… C/C++,… MCAPI,… UML ES DSLs
  • 6. Single-Source Embedded System Design ADA,… C/C++,… MCAPI,… UML MARTE Trust Simulation Verification Performance Analysis PrivacyArchitectural Mapping Security Safety HW Synthesis SW Synthesis
  • 7. Model-Driven Analysis of IoE Services ▪ Programming the Internet of Everything ▪ Services provided on computing platforms of many kind
  • 8. Model-Driven Analysis of IoE Services ▪ Programming the Internet of Everything ▪ Services provided on computing platforms of many kind C/C++,… Autosar RTE ForTran,… Python,… MPI,… Java,… MPI,… C/C++,… MCAPI,… HTML5,… Java,… Dalvik VM,… UML DC DSLs UML ES DSLs UML SmartPhone DSLs Service UML ES DSLs UML CPSoS DSL
  • 9. Model-Driven Analysis of IoE Services ▪ Programming the Internet of Everything ▪ Services provided on computing platforms of many kind HW Synthesis SW Synthesis (RT)OS, Runtime,… Corba, TCP/IP, MPI, MCAPI,… ForTran, Python, Java, HTML5, C/C++,… Concerns Performance, safety, cost, security, size, … Trust Simulation Verification Performance AnalysisPrivacy Optimization Service UML CPSoS DSL Security Safety
  • 10. Model-Driven Analysis of IoE Services ▪ UML/MARTE System Modeling Methodology ▪ Platform-Independent ▪ Component-Based ▪ Supporting ▪ Object-Orientation ▪ Actor-Orientation required interface Component 1 Component 3 Component 2 Port 3.1 Port 3.2 Port 2.1Port 2.2 Port 1 provided interface required interface provided interface required interface OO CB AO
  • 11. ▪ UML/MARTE System Modeling Methodology ▪ Platform-Independent ▪ Component-Based ▪ Supporting ▪ Object-Orientation ▪ Actor-Orientation ▪ Reusable ▪ Flexible ▪ Analyzable ▪ Security ▪ Reliability ▪ Test ▪ Safety ▪ Privacy, Trust… Model-Driven Analysis of IoE Services
  • 12. Model-Driven Analysis of IoE Services ▪ Properties of the Provided Port ▪ NotAttendedService ▪ Retry ▪ Properties of the Interface Methods ▪ concurrency ▪ exekind ▪ syncKind ▪ Properties of the Required Port ▪ queueSize ▪ FullPoolPolicy
  • 13. Model-Driven Analysis of IoE Services ▪ Function Call/RPC/RMI ▪ Rendezvous Required Port RtService Provided Port MoCNotAttendedService retry concurrency exekind syncKind queueSize FullPoolPolicy infiniteWait none G or C rem.Im. sync. none none exactly once infiniteWait none G or C rem.Im. async. none none at most once dynamic none G or C rem.Im. sync. none none exactly once dynamic none G or C rem.Im. async. none none at most once timedWait 0 G or C rem.Im. sync. none none exactly once timedWait 0 G or C rem.Im. async. none none at most once timedWait > 0 G or C rem.Im. sync. none none at least once timedWait > 0 G or C rem.Im. async. none none maybe once Required Port RtService Provided Port MoCNotAttendedService retry concurrency exekind syncKind queueSize FullPoolPolicy infiniteWait none G or C rem.Im. rendezvous none none CSP timedWait 0 G or C rem.Im. rendezvous none none RV timedWait > 0 G or C rem.Im. rendezvous none none RV
  • 14. Model-Driven Analysis of IoE Services ▪ Data-Flow ▪ Discrete-Event/Time-Triggered/Timed Data-Flow Required Port RtService Provided Port MoCNotAttendedService retry concurrency exekind syncKind queueSize FullPoolPolicy infiniteWait none G or C deferred async. > 0 block KPN/SDF infiniteWait none G or C deferred async. > 0 (any other) DF dynamic none G or C deferred async. > 0 any DF timedWait 0 G or C deferred async. > 0 any DF timedWait > 0 G or C deferred async. > 0 any DF Required Port RtService Provided Port MoCNotAttendedService retry concurrency exekind syncKind queueSize FullPoolPolicy dynamic none G or C rem.Im. async. none none DE/TT/TDF
  • 15. Conclusions ▪ The IoE demands new CPSoS design methods and tools ▪ Model-Driven system design is a powerful candidate ▪ A CPSoS system modeling language is required ▪ Supporting Mega-Modeling ▪ Analysis & design of the whole IoE service ▪ Single-Source Approach