Présenté par Zawar Qayyum Université Européenne de Bretagne VALORIA Lab – Université de...

23
Présenté par Zawar Qayyum Université Européenne de Bretagne VALORIA Lab – Université de Bretagne-Sud Supporting Architectural Composition at Runtime with π-ADL.NET
  • date post

    19-Dec-2015
  • Category

    Documents

  • view

    215
  • download

    0

Transcript of Présenté par Zawar Qayyum Université Européenne de Bretagne VALORIA Lab – Université de...

Page 1: Présenté par Zawar Qayyum Université Européenne de Bretagne VALORIA Lab – Université de Bretagne-Sud Supporting Architectural Composition at Runtime with.

Présenté par

Zawar Qayyum

Université Européenne de Bretagne VALORIA Lab – Université de Bretagne-Sud

Supporting Architectural Composition at Runtime withπ-ADL.NET

Page 2: Présenté par Zawar Qayyum Université Européenne de Bretagne VALORIA Lab – Université de Bretagne-Sud Supporting Architectural Composition at Runtime with.

(C) Zawar Qayyum, European University of Brittany, 2008

2

Contents

Related Work Research Objectives Approach π-ADL π-ADL.NET Future work

Page 3: Présenté par Zawar Qayyum Université Européenne de Bretagne VALORIA Lab – Université de Bretagne-Sud Supporting Architectural Composition at Runtime with.

(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

Page 4: Présenté par Zawar Qayyum Université Européenne de Bretagne VALORIA Lab – Université de Bretagne-Sud Supporting Architectural Composition at Runtime with.

(C) Zawar Qayyum, European University of Brittany, 2008

4

Related Work

Abstract model (Architecture)

Refinement Implementation

Architecture

Other ADLs

Page 5: Présenté par Zawar Qayyum Université Européenne de Bretagne VALORIA Lab – Université de Bretagne-Sud Supporting Architectural Composition at Runtime with.

(C) Zawar Qayyum, European University of Brittany, 2008

5

Related Work

Abstract model (Architecture)

Refinement Implementation

Architecture

π-ADL.NET

Page 6: Présenté par Zawar Qayyum Université Européenne de Bretagne VALORIA Lab – Université de Bretagne-Sud Supporting Architectural Composition at Runtime with.

(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

Page 7: Présenté par Zawar Qayyum Université Européenne de Bretagne VALORIA Lab – Université de Bretagne-Sud Supporting Architectural Composition at Runtime with.

(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.

Page 8: Présenté par Zawar Qayyum Université Européenne de Bretagne VALORIA Lab – Université de Bretagne-Sud Supporting Architectural Composition at Runtime with.

(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

Page 9: Présenté par Zawar Qayyum Université Européenne de Bretagne VALORIA Lab – Université de Bretagne-Sud Supporting Architectural Composition at Runtime with.

(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

Page 10: Présenté par Zawar Qayyum Université Européenne de Bretagne VALORIA Lab – Université de Bretagne-Sud Supporting Architectural Composition at Runtime with.

(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

Page 11: Présenté par Zawar Qayyum Université Européenne de Bretagne VALORIA Lab – Université de Bretagne-Sud Supporting Architectural Composition at Runtime with.

(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

Page 12: Présenté par Zawar Qayyum Université Européenne de Bretagne VALORIA Lab – Université de Bretagne-Sud Supporting Architectural Composition at Runtime with.

(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)

Page 13: Présenté par Zawar Qayyum Université Européenne de Bretagne VALORIA Lab – Université de Bretagne-Sud Supporting Architectural Composition at Runtime with.

(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

Page 14: Présenté par Zawar Qayyum Université Européenne de Bretagne VALORIA Lab – Université de Bretagne-Sud Supporting Architectural Composition at Runtime with.

(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

Page 15: Présenté par Zawar Qayyum Université Européenne de Bretagne VALORIA Lab – Université de Bretagne-Sud Supporting Architectural Composition at Runtime with.

(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

Page 16: Présenté par Zawar Qayyum Université Européenne de Bretagne VALORIA Lab – Université de Bretagne-Sud Supporting Architectural Composition at Runtime with.

(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

Page 17: Présenté par Zawar Qayyum Université Européenne de Bretagne VALORIA Lab – Université de Bretagne-Sud Supporting Architectural Composition at Runtime with.

(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

Page 18: Présenté par Zawar Qayyum Université Européenne de Bretagne VALORIA Lab – Université de Bretagne-Sud Supporting Architectural Composition at Runtime with.

(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

Page 19: Présenté par Zawar Qayyum Université Européenne de Bretagne VALORIA Lab – Université de Bretagne-Sud Supporting Architectural Composition at Runtime with.

(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;

}

Page 20: Présenté par Zawar Qayyum Université Européenne de Bretagne VALORIA Lab – Université de Bretagne-Sud Supporting Architectural Composition at Runtime with.

(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

Page 21: Présenté par Zawar Qayyum Université Européenne de Bretagne VALORIA Lab – Université de Bretagne-Sud Supporting Architectural Composition at Runtime with.

(C) Zawar Qayyum, European University of Brittany, 2008

21

Weather Service Example

Page 22: Présenté par Zawar Qayyum Université Européenne de Bretagne VALORIA Lab – Université de Bretagne-Sud Supporting Architectural Composition at Runtime with.

(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

Page 23: Présenté par Zawar Qayyum Université Européenne de Bretagne VALORIA Lab – Université de Bretagne-Sud Supporting Architectural Composition at Runtime with.

(C) Zawar Qayyum, European University of Brittany, 2008

23

Questions & Answers