Présenté par Zawar Qayyum Université Européenne de Bretagne VALORIA Lab – Université de...
-
date post
19-Dec-2015 -
Category
Documents
-
view
214 -
download
0
Transcript of Présenté par Zawar Qayyum Université Européenne de Bretagne VALORIA Lab – Université de...
Présenté par
Zawar Qayyum
Université Européenne de Bretagne VALORIA Lab – Université de Bretagne-Sud
Supporting Architectural Composition at Runtime withπ-ADL.NET
(C) Zawar Qayyum, European University of Brittany, 2008
2
Contents
Related Work Research Objectives Approach π-ADL π-ADL.NET Future work
(C) Zawar Qayyum, European University of Brittany, 2008
3
Related Work
ADL Formal foundations Domain Independent
Tool Support
Modelling Refinement Implementation
MetaH None No Comprehensive Comprehensive Partial
Rapide Events modelled as Posets
Yes Partial None None
Weaves Structure conforms to Bipartite directed
multigraphs
No Comprehensive Comprehensive None
C2 None Yes Partial None None
Wright Subset of CSP Yes Partial None None
ArchJava Formal type system for architectural constructs only
Yes Comprehensive Comprehensive Comprehensive
xADL 2.0 None Yes Partial None None
π-ADL.NET π-calculus Yes Comprehensive Comprehensive Comprehensive
(C) Zawar Qayyum, European University of Brittany, 2008
4
Related Work
Abstract model (Architecture)
Refinement Implementation
Architecture
Other ADLs
(C) Zawar Qayyum, European University of Brittany, 2008
5
Related Work
Abstract model (Architecture)
Refinement Implementation
Architecture
π-ADL.NET
(C) Zawar Qayyum, European University of Brittany, 2008
6
Research Objectives
Assess feasibility of developing a Software Architecture Description Language that supports the phases from architecture description to implementation in order to: Preserve the architectural integrity of the
system at the implementation level Support analysis of the concrete architecture Support the evolution of the implementation
while enforcing its architectural integrity And directly use the implementation
mechanisms of the hosting platform
(C) Zawar Qayyum, European University of Brittany, 2008
7
Approach
Provide an implementation level compiler and analysis tool for the ADL,
Incorporate some modifications in the ADL syntax in order for it to fulfill the role of a deterministic implementation language while retaining its formal ADL comportment, and
Propose formally founded platform specific extensions to the ADL in order to enable it to access reusable software components available on the implementation platform. The resulting compiler environment is called π-ADL.NET.
(C) Zawar Qayyum, European University of Brittany, 2008
8
π-ADL
Formally grounded on the π-Calculus Support for structure and behavior Small and simple syntax Style definition
(C) Zawar Qayyum, European University of Brittany, 2008
9
π-ADL
Application Areas Ambient Intelligence Sensor-actuator Networks Mobile Agent Systems Human-computer Interfaces for Monitoring
systems Grid Computing Systems Enterprise Application Integration Systems Software Systems Targeting J2EE Platforms
(C) Zawar Qayyum, European University of Brittany, 2008
10
π-ADL
Basic units of execution: Behaviors, Abstractions (behavior templates)
Connections, Pseudo-applications Compose, Choose and Replicate
(C) Zawar Qayyum, European University of Brittany, 2008
11
π-ADL
Primitive data types: Integer, String, Boolean, Float
Constructed Data types: tuple, view, union, any, sequence, set, bag, quote, location
Syntax for conditional statements and loops
(C) Zawar Qayyum, European University of Brittany, 2008
12
π-ADL.NET
Advantages of the .NET runtime environment: A sophisticated Intermediate Language that
can completely encode the π-ADL syntax Large collection of reusable components,
potentially accessible by π-ADL code A major industry technology, standardized by
European Computer Manufacturers Association (ECMA)
(C) Zawar Qayyum, European University of Brittany, 2008
13
Weather Service Example
v : view[place : String, param : Integer,
val : Float])
Behaviourweather_man
name: String
valConn
t_Conn /s_Conn/ h_Conn
BehaviourAbstraction
Input connection
Output connection
Pseudo Application
Key
Abstractiontemperature_service
Abstractionspeed_service
Abstractionhumidity_service
Abstractionenglish_provider
Abstractionfrench_provider
(C) Zawar Qayyum, European University of Brittany, 2008
14
Weather Service Example
value temperature_service is abstraction (name : String) {
t_conn : Connection [Float];
if (name == "Paris") do {
compose {
via t_conn send 5.5;
and done;
}
}
if (name == "New York") do {
compose {
via t_conn send 2.7;
and done;
}
}
if (name == "Dubai") do {
compose {
via t_conn send 22.3;
and done;
}
}
//we get here if no match is found
compose {
via t_conn send 0.0;
and done;
}
} //end temperature_service
(C) Zawar Qayyum, European University of Brittany, 2008
15
Weather Service Example
value speed_service is abstraction (name : String){
s_conn : Connection [Float];
if (name == "Paris") do {
compose {
via s_conn send 15;
and done;
}
}
if (name == "New York") do {
compose {
via s_conn send 20;
and
done;
}
}
if (name == "Dubai") do {
compose {
via s_conn send 10;
and done;
}
}
//we get here if no match is found
compose {
via s_conn send 0.0;
and
done;
}
} //end speed_service
(C) Zawar Qayyum, European University of Brittany, 2008
16
Weather Service Example
value humidity_service is abstraction (name : String) {
h_conn : Connection [Float];
if (name == "Paris") do {
compose {
via h_conn send 75;
and done;
}
}
if (name == "New York") do {
compose {
via h_conn send 80;
and done;
}
}
if (name == "Dubai") do {
compose {
via h_conn send 30;
and done;
}
}
//we get here if no match is found
compose {
via h_conn send 0.0;
and
done;
}
} //end humidity_service
(C) Zawar Qayyum, European University of Brittany, 2008
17
Weather Service Example
value english_provider is abstraction (v : view[place : String, param : Integer, val : Float]) {
via out send "The ";
if (v::param == 1) do
via out send "Temperature";
if (v::param == 2) do
via out send "Wind Speed";
if (v::param == 3) do
via out send "Humidity";
via out send " at ";
via out send v::place;
via out send " is ";
via out send v::val;
if (v::param == 1) do
via out send " degree C";
if (v::param == 2) do
via out send " km/h";
if (v::param == 3) do
via out send " %";
via out send "\n";
} //end english_provider
(C) Zawar Qayyum, European University of Brittany, 2008
18
Weather Service Example
value french_provider is abstraction (v : view[place : String, param : Integer, val : Float]) {
via out send "La ";
if (v::param == 1) do
via out send "Temperature";
if (v::param == 2) do
via out send "Vitesse de vent";
if (v::param == 3) do
via out send "Humidite";
via out send " a ";
via out send v::place;
via out send " est ";
via out send v::val;
if (v::param == 1) do
via out send " degree C";
if (v::param == 2) do
via out send " km/h";
if (v::param == 3) do
via out send " %";
via out send "\n";
} //end french_provider
(C) Zawar Qayyum, European University of Brittany, 2008
19
Weather Service Exampleweather_man names behaviour {
vset : view[place : String, param :
Integer, val : Float];
language : Integer;
valConn : Connection [Float];
via out send "Please enter the weather location: ";
via in receive vset::place;
via out send "Please select the weather element:\n1. Temperature\n2. Wind Speed\n3. Humidity\n";
via in receive vset::param;
via out send "Please select the result language:\n1. English\n2. Francais\n";
via in receive language;
if (vset::param == 1) do {
via temperature_service send vset::place where {valConn renames t_conn};
via valConn receive vset::val;
}
else do if (vset::param == 2) do {
via speed_service send vset::place where {valConn renames s_conn};
via valConn receive vset::val;
}
else do if (vset::param == 3) do {
via humidity_service send vset::place where {valConn renames h_conn};
via valConn receive vset::val;
}
if (language == 1) do
via english_provider send vset;
if (language == 2) do
via french_provider send vset;
}
(C) Zawar Qayyum, European University of Brittany, 2008
20
Weather Service Example
v : view[place : String, param : Integer,
val : Float])
Behaviourweather_man
name: String
valConn
t_Conn /s_Conn/ h_Conn
BehaviourAbstraction
Input connection
Output connection
Pseudo Application
Key
Abstractiontemperature_service
Abstractionspeed_service
Abstractionhumidity_service
Abstractionenglish_provider
Abstractionfrench_provider
(C) Zawar Qayyum, European University of Brittany, 2008
21
Weather Service Example
(C) Zawar Qayyum, European University of Brittany, 2008
22
Conclusion: Future Work
π-ADL.NETCompiler & runtime
Testing & Analysis
.NET extensions
SOA Case Study
PiVisdomVisual interface to π-ADL
More case studies
Component creation syntax
Compilation & runtime
optimization
Debugging support
Visual debugging
Animated Execution
Visual style definition
Architectural Intellisense
Current Work Future Work
(C) Zawar Qayyum, European University of Brittany, 2008
23
Questions & Answers