Auto-Fractal: (R-)assemblage dynamique et automatique - - PowerPoint PPT Presentation

auto fractal r assemblage dynamique et automatique d
SMART_READER_LITE
LIVE PREVIEW

Auto-Fractal: (R-)assemblage dynamique et automatique - - PowerPoint PPT Presentation

1 Journ e e ADAPT ADAPT du du GdR GdR ASR ( ASR (Perpi Perpi 2006) 2006) Journ 3 octobre octobre 2006 2006 Perpignan Perpignan, France , France 3 Auto-Fractal: (R-)assemblage dynamique et automatique


slide-1
SLIDE 1

1

03/10/2006

  • G. Grondin
  • G. Grondin

1,2

1,2,

, N.

  • N. Bouraqadi

Bouraqadi

1

1,

, L.

  • L. Vercouter

Vercouter

2

2

1: 1: D Dé épt

  • pt. IA -

. IA - É École des Mines de Douai cole des Mines de Douai 2: G2I/SMA - É École des Mines de Saint-É Étienne Journ Journé ée e ADAPT ADAPT du du GdR GdR ASR ( ASR (Perpi Perpi 2006) 2006) 3 3 octobre

  • ctobre 2006

2006 – – Perpignan Perpignan, France , France

Auto-Fractal: (Ré-)assemblage dynamique et automatique d'applications à base de composants Fractal

slide-2
SLIDE 2

2

03/10/2006 Auto-Fractal - Journée ADAPT [PERPI 2006] 2

Agenda Agenda

  Introduction

Introduction

  Motivating

Motivating Example Example

  Problem

Problem Statement Statement

  Proposal

Proposal

  MaDcAr

MaDcAr / / Auto-Fractal Auto-Fractal

  Example

Example: : Clock Clock Application Application

  • Demo

Demo

  Conclusion

Conclusion

slide-3
SLIDE 3

3

03/10/2006

Introduction

slide-4
SLIDE 4

4

03/10/2006 Auto-Fractal - Journée ADAPT [PERPI 2006] 4

Motivating Motivating Example Example

Loosing Loosing network network connection connection Performing Performing a re- a re-assembling assembling

  • Conf. Proxy

Chatter

  • Conf. Proxy

Chatter Buffer

receive send

Chat Client Application

slide-5
SLIDE 5

5

03/10/2006 Auto-Fractal - Journée ADAPT [PERPI 2006] 5

Problem Problem Statement Statement

 

What What is is the the problem problem? ?

  The

The design design of

  • f

auto-adaptive auto-adaptive Component-Based Component-Based Applications Applications ( (CBAs CBAs) ) is is not not easy easy ( (often

  • ften ad hoc)

ad hoc)

  Adaptation = re-

Adaptation = re-assembling assembling

  • f
  • f

CBAs CBAs

 

Issues Issues related related to to the the problem problem: :

  Automation

Automation

  • f
  • f

CBA CBA’ ’s s adaptation adaptation

  • Minimizing

Minimizing impact on application impact on application’ ’s administration s administration

  Dynamicity

Dynamicity

  • f
  • f

CBA CBA’ ’s s adaptation adaptation

  • Minimizing

Minimizing impact on application impact on application’ ’s s execution execution

 

When When is is automatic automatic and and dynamic dynamic adaptation adaptation needed needed? ?

  Contextual

Contextual changes are changes are unpredictable unpredictable/ /frequent frequent

  Human

Human interventions must interventions must be be minimized minimized

⇒ ⇒ Ex:

Ex: Ubiquitous Ubiquitous Computing Computing, , Autonomic Autonomic Computing Computing, , … …

slide-6
SLIDE 6

6

03/10/2006 Auto-Fractal - Journée ADAPT [PERPI 2006] 6

Our Goal Our Goal

 

Required Required properties properties

  Abstraction

Abstraction: : independent independent of

  • f the

the used used component model component model

  Generality

Generality: : independent independent of

  • f the

the application application domain domain

  Openess

Openess : : customizability customizability of

  • f the

the assembling assembling process process

  Dynamicity

Dynamicity: re- : re-assembling assembling without without stopping stopping the the whole whole application application

  Automation

Automation: : behaving behaving on

  • n behalf

behalf of

  • f humans

humans

  Context-awareness

Context-awareness: : behaving behaving according according to to external external events events MaDcAr MaDcAr : an abstract model for : an abstract model for assembling assembling engines engines

  Model for

Model for A

Automatic

utomatic and and Dynamic Dynamic C

Component

  • mponent Assembly

Assembly

R Reconfiguration

econfiguration

  [Grondin et al. CBSE 2006]

[Grondin et al. CBSE 2006]

slide-7
SLIDE 7

7

03/10/2006

Auto-Fractal

An An Assembling Assembling Engine Engine for for Fractal-Based Fractal-Based Applications Applications

slide-8
SLIDE 8

8

03/10/2006 Auto-Fractal - Journée ADAPT [PERPI 2006] 8

Introduction to Introduction to Auto-Fractal Auto-Fractal

  Auto-Fractal

Auto-Fractal is is the the projection of projection of MaDcAr MaDcAr abstract abstract model on Fractal model on Fractal

  Auto-Fractal

Auto-Fractal = = Assembling Assembling Engine Engine for Fractal: for Fractal:

  Inputs

Inputs : Components, Application : Components, Application’ ’s s Requirements Requirements

  Output

Output : a component : a component assembly assembly which which meets meets these these requirements requirements

slide-9
SLIDE 9

9

03/10/2006 Auto-Fractal - Journée ADAPT [PERPI 2006] 9

Assembling Assembling Engine Engine

Auto-Fractal Auto-Fractal Assembling Assembling Engine Engine

Components Components Application Application description description Assembling Assembling policy policy Application Application ( (assembly assembly) ) Context Context Constraint Constraint Solver Solver

slide-10
SLIDE 10

10

03/10/2006 Auto-Fractal - Journée ADAPT [PERPI 2006] 10

Application Description Application Description

Application description Configuration

Role(min,max) x-y-z Required interface Provided interface Role multiplicities

Link: abstract Description of a connection Role: abstract Description of a component

Initial values for the role’s attributes

slide-11
SLIDE 11

11

03/10/2006 Auto-Fractal - Journée ADAPT [PERPI 2006] 11

Config3

Buffer(1,1)

  • Conf. Proxy(1,1)

Chatter(1,1)

Config1

  • Conf. Proxy(1,1)

Chatter(1,1)

Config2

Buffer(1,1) Chatter(1,1)

Chat Client Application Description Chat Client Application Description

Initial Initial configuration configuration To use To use when when loosing loosing network network connection connection To use To use when when network network connection connection is is re- re-established established while while buffer buffer is is not not empty empty

slide-12
SLIDE 12

12

03/10/2006 Auto-Fractal - Journée ADAPT [PERPI 2006] 12

 

3 stages 3 stages

 

Sense Sense

 

When to re-assemble: Changes detection When to re-assemble: Changes detection

 

Plan Plan

 

How to re-assemble: Decisions making How to re-assemble: Decisions making

 

Act Act

 

Perform the re-assembling accordingly Perform the re-assembling accordingly

Re-Assembling Re-Assembling Process Process

Sense Act Plan

slide-13
SLIDE 13

13

03/10/2006 Auto-Fractal - Journée ADAPT [PERPI 2006] 13

Re-Assembling Re-Assembling Process Process -

  • Sense

Sense

  Context

Context => set of => set of sensors sensors (software/hardware) (software/hardware)

  To

To automatically automatically trigger (re-) trigger (re-)assembling assembling

  • Internal changes

Internal changes : components, configurations, : components, configurations, … …

  • External changes

External changes : location, network, : location, network, neighborhood (soft/hard-ware), neighborhood (soft/hard-ware), … …

  To

To collect collect data data required required when when taking taking assembling assembling decisions decisions

⇒ ⇒ Contextual

Contextual situation = Set of situation = Set of sensor sensor values values within within some some range range specified specified by by the the designer designer

slide-14
SLIDE 14

14

03/10/2006 Auto-Fractal - Journée ADAPT [PERPI 2006] 14

Chat Client Application Chat Client Application – – Context Context

  Triggering

Triggering

  • f
  • f

assembling assembling

  When

When the the network network connection connection status status changes, or changes, or

  When

When the the buffer buffer becomes becomes empty empty

⇒ ⇒ Definition

Definition

  • f
  • f

two two sensors sensors

  netWatch

netWatch ( (line line 01) 01)

  bufferWatch

bufferWatch ( (line line 03) 03)

01 netWatch := NetworkWatcher new. 02 netWatch watchPeriod: 1000. 03 bufferWatch := BufferWatcher new. 04 bufferWatch watchPeriod: 500.

slide-15
SLIDE 15

15

03/10/2006 Auto-Fractal - Journée ADAPT [PERPI 2006] 15

Re-Assembling Re-Assembling Process Process - Plan

  • Plan

 

Assembling Assembling policy policy = a set of = a set of rules rules specifying specifying the the decisions decisions to to take take for for each each contextual contextual situation situation

 

To To choose choose a configuration a configuration

  • Identification of

Identification of eligible eligible configurations configurations

– Contract testing for each pair {role, component} – Building of a « compatibility matrix »

  • Configuration

Configuration selection selection

– According to the « compatibility matrix » and the assembling policy

 

To select components To select components

  • According

According to to the the chosen chosen configuration configuration and and the the assembling assembling policy policy

 

To To schedule schedule the the re- re-assembling assembling

  • According

According to to criteria criteria such such as as assembling assembling’ ’s s urgency urgency, , application application’ ’ services services availibility availibility, , minimization minimization of

  • f the

the assembling assembling’ ’s s cost cost, , … …

slide-16
SLIDE 16

16

03/10/2006 Auto-Fractal - Journée ADAPT [PERPI 2006] 16

Chat Client Application Chat Client Application – – Assembling Assembling Policy Policy

 

Configuration Configuration Selection Selection

  Addition of

Addition of several several constraints constraints on

  • n the

the new configuration new configuration ( (newConfig newConfig) ) according according to to the the contextual contextual situation situation

⇒ ⇒ Our

Our constraint constraint solver solver can can infer infer an an appropriate appropriate candidate for candidate for newConfig newConfig

05 (networkWatch isAvailable) ifFalse: [ 06 constraintsSet add: [newConfig doesNotInclude: conferenceRole]. 07 constraintsSet add: [newConfig includes: bufferRole]. 08 ]. 09 (networkWatch isAvailable) ifTrue: [ 10 constraintsSet add:[newConfig includes: conferenceRole]. 11 buffer := bufferRole getComponent. 12 (buffer isEmpty) ifFalse: [ 13 constraintsSet add: [newConfig includes: bufferRole)]. 14 ]. 15 ].

slide-17
SLIDE 17

17

03/10/2006 Auto-Fractal - Journée ADAPT [PERPI 2006] 17

Re-Assembling Re-Assembling Process Process – – Default Default Plan Plan

 

Default Default configuration configuration selection selection policy policy

 

If If several several configurations configurations satisfy satisfy the the assembling assembling policy policy Then Then random random selection selection

  • f
  • f
  • ne
  • ne
  • f
  • f

them them

 

If If no no configuration configuration satisfies satisfies the the assembling assembling policy policy Then Then random random selection selection

  • f
  • f an

an eligible eligible

  • ne
  • ne

 

Default Default component component selection selection policy policy

 

After After selecting selecting a minimal a minimal number number

  • f
  • f components for

components for each each role role, select , select the the remaining remaining components components while while roles roles are are not not maximally maximally fulfilled fulfilled

 

Default Default application re-building application re-building policy policy

 

Minimize Minimize useless useless component replacements component replacements

 

Minimize Minimize useless useless interfaces re-connections interfaces re-connections between between components components that that are are already already in use in use

 

Minimize Minimize the the set set of

  • f components

components that that must must be be maintained maintained in an in an idle idle state state

 

Minimize Minimize the the delay delay

  • f
  • f services

services unavailability unavailability for for each each component component that that must must be be maintained maintained in an in an idle idle state state

slide-18
SLIDE 18

18

03/10/2006 Auto-Fractal - Journée ADAPT [PERPI 2006] 18

Re-Assembling Re-Assembling Process Process – – Act Act

 

Assembly (re-)building Assembly (re-)building

 

Perform a sequence of re-assembling operations, Perform a sequence of re-assembling operations, according to decisions taken during the previous according to decisions taken during the previous stage stage

  • Disconnect

Disconnect two two components components

  • Initialize

Initialize a component a component

  • Connect

Connect two two components components

  • Activate

Activate a component a component ( (accept accept external external requests requests) )

  • Desactivate

Desactivate a component a component (refuse (refuse external external requests requests) )

  • Buffer

Buffer incoming incoming requests requests while while a component a component is is not not available available

Dynamicity Dynamicity

slide-19
SLIDE 19

19

03/10/2006

Demo Example

Clock Clock application application ( (focusing focusing on

  • n the

the assembling assembling process process) )

slide-20
SLIDE 20

20

03/10/2006 Auto-Fractal - Journée ADAPT [PERPI 2006] 20

Clock Clock Application Application

User User preferences preferences have have changed changed Performing Performing a re- a re-assembling assembling

slide-21
SLIDE 21

21

03/10/2006 Auto-Fractal - Journée ADAPT [PERPI 2006] 21

Clock Clock Application Application – – Application Application Description Description

Config1 Config2

slide-22
SLIDE 22

22

03/10/2006 Auto-Fractal - Journée ADAPT [PERPI 2006] 22

Clock Clock Application Application – – Application Application Description (1) Description (1)

Config1 Ticker(1,1) H24(1,1)

0-23

Minutes(1,1)

0-59

Seconds(1,1)

0-59 incremen incremen t t incremen incremen t t incremen incremen t t

slide-23
SLIDE 23

23

03/10/2006 Auto-Fractal - Journée ADAPT [PERPI 2006] 23

Clock Clock Application Application – – Application Application Description (2) Description (2)

Config2 Ticker(1,1) H12(1,1)

1-12

Minutes(1,1)

0-59

Seconds(1,1)

0-59

Am/Pm(1,1)

incremen incremen t t incremen incremen t t incremen incremen t t incremen incremen t t

slide-24
SLIDE 24

24

03/10/2006 Auto-Fractal - Journée ADAPT [PERPI 2006] 24

Clock Clock Application Description Application Description

The The user user prefers prefers the the 24H 24H Time Time System System The The user user prefers prefers the the Am Am/Pm /Pm Time Time System System

slide-25
SLIDE 25

25

03/10/2006 Auto-Fractal - Journée ADAPT [PERPI 2006] 25

Clock Clock Application Application – – Context Context

  Triggering

Triggering

  • f
  • f

assembling assembling

  When

When the the user user manually manually modifies modifies its its preferences preferences

⇒ ⇒ Definition

Definition

  • f
  • f
  • ne
  • ne

sensor sensor

  preferenceWatch

preferenceWatch ( (line line 01) 01) 01 01 preferenceWatch preferenceWatch := := PreferenceWatcher PreferenceWatcher new. new.

slide-26
SLIDE 26

26

03/10/2006 Auto-Fractal - Journée ADAPT [PERPI 2006] 26

Clock Clock Application Application – – Assembling Assembling Policy Policy

 

Configuration Configuration Selection Selection

 

Addition of Addition of several several constraints constraints on

  • n the

the new configuration new configuration ( (newConfig newConfig) ) according according to to the the contextual contextual situation situation

⇒ ⇒ Our

Our constraint constraint solver solver can can infer infer an an appropriate appropriate candidate for candidate for newConfig newConfig 02 (preferenceWatch isSetTo24HoursTimeSystem) 03 ifTrue: [ 04 constraintSet add: 05 (newConfig doesNotIncludes: roleAmPm)] 06 ifFalse: [ 07 constraintSet add: 08 (newConfig includes: roleAmPm)].

slide-27
SLIDE 27

27

03/10/2006

DEMO

slide-28
SLIDE 28

28

03/10/2006

Conclusion

slide-29
SLIDE 29

29

03/10/2006 Auto-Fractal - Journée ADAPT [PERPI 2006] 29

Advantages Advantages

  • f
  • f

Auto-Fractal Auto-Fractal

 

Specific Specific and and Configurable Configurable assembling assembling policies policies

⇒ ⇒ Allows

Allows global control global control over

  • ver

the the assembling assembling process process

 

Total automation Total automation of

  • f adaptations

adaptations

⇒ ⇒ Allows

Allows total control total control over

  • ver

adaptation adaptation’ ’s s triggering triggering, , decision decision and and realization realization steps steps

 

Separated Separated descriptions descriptions of

  • f

the the application application’ ’s s functionalities functionalities and and the the application application’ ’s s adaptations adaptations

⇒ ⇒ Eases

Eases understanding understanding, , reuse reuse and and evolution evolution

  • f
  • f applications

applications

 

Low Low coupling coupling between between configurations configurations and and components components

⇒ ⇒ Allows

Allows configurations configurations’ ’ reuse reuse

 

Support Support of

  • f

unpredicted unpredicted dynamic dynamic adaptations adaptations

⇒ ⇒ Allows

Allows dealing dealing with with context-sensitive context-sensitive applications ( applications (Ubiquitous Ubiquitous Computing Computing, , Autonomic Autonomic Computing Computing, , … …) )

slide-30
SLIDE 30

30

03/10/2006 Auto-Fractal - Journée ADAPT [PERPI 2006] 30

Ongoing Ongoing work work

  First

First implementation implementation

  • f
  • f

Auto-Fractal Auto-Fractal for for FracTalk FracTalk

  FracTalk

FracTalk = = our

  • ur

implementation implementation

  • f
  • f

the the Fractal Fractal component component model model (in (in Smalltalk Smalltalk) )

  Support for

Support for dynamic dynamic assembling assembling

  State

State transfer transfer when when replacing replacing a component a component

  Components

Components inter-dependencies inter-dependencies

  Support for

Support for automatic automatic detection detection

  • f
  • f

contextual contextual changes changes

slide-31
SLIDE 31

31

03/10/2006

http:// http://csl.ensm-douai.fr csl.ensm-douai.fr/grondin /grondin

MaDcAr : model for component assembling

  • Abstraction
  • Dynamicity
  • Automation

Auto-Fractal : MaDcAr for Fractal components

This This work work is is supported supported by by the the CPER TAC CPER TAC of

  • f

the the region region Nord-Pas Nord-Pas de Calais de Calais and and the the european european fund fund FEDER FEDER

slide-32
SLIDE 32

32

03/10/2006

State of Art - Related Work

slide-33
SLIDE 33

33

03/10/2006 Auto-Fractal - Journée ADAPT [PERPI 2006] 33

Related Related Work Work (1) - ADL (1) - ADL

 

C2 [Medvidovic96] C2 [Medvidovic96]

  Description

Description

  • ADL

ADL allowing allowing dynamic dynamic modification modification of

  • f an architecture

an architecture

  • Adaptative

Adaptative policies policies based based on

  • n connectors

connectors

  Limitations

Limitations

  • Rules

Rules are are locally locally defined defined in in each each connectors connectors

– Inconsistencies are detected a posteriori

  • Adaptation must

Adaptation must be be triggered triggered manually manually

  • Not

Not possible to possible to specify specify when when or

  • r under

under what what condition condition configuration are to configuration are to be be carried carried out

  • ut

⇒ ⇒ A

A high high degree degree

  • f
  • f control

control is is needed needed to to automated automated re- re-assembling assembling

slide-34
SLIDE 34

34

03/10/2006 Auto-Fractal - Journée ADAPT [PERPI 2006] 34

Related Related Work Work (2) - CBSE (2) - CBSE

 

SAFRAN [Dav05] SAFRAN [Dav05]

  Description

Description

  • Creation

Creation

  • f
  • f

dynamically dynamically reconfigurable reconfigurable component component

  • Adaptative

Adaptative policies policies based based on

  • n Event-Condition-Action

Event-Condition-Action rules rules (ECA) (ECA)

  Limitations

Limitations

  • Rules

Rules are are locally locally defined defined in in each each component component

– Inconsistencies are detected a posteriori – Unpredicted cost of the adaptations

  • Adaptation

Adaptation concern concern strongly strongly coupled coupled with with the the architecture architecture

– Need to introduce an artificial composite to share a policy between components

  • Building an application

Building an application from from scratch scratch is is not not addressed addressed

⇒ ⇒ High

High level level concepts are concepts are needed needed to to be be independent independent

  • f
  • f a

a particular particular component component model model

slide-35
SLIDE 35

35

03/10/2006 Auto-Fractal - Journée ADAPT [PERPI 2006] 35

Related Related Work Work (3) - (3) - Other Other

 

ADL ADL

  Darwin [

Darwin [Imperial Imperial College College London] London]

  • (+)

(+) dynamic dynamic instanciation instanciation rules rules for architecture for architecture creation creation

  • (-) re-

(-) re-assembling assembling not not addressed addressed

  Rapide [Carnegie

Rapide [Carnegie Mellon Mellon University University] ]

  • (+)

(+) declaration declaration

  • f
  • f

interconnection interconnection rules rules

  • (-)

(-) used used

  • nly
  • nly for architecture

for architecture verification verification ( (not not architecture architecture assembling assembling) ) like like Wright Wright

 

CBSE CBSE

  SOFA [Charles

SOFA [Charles University University] ]

  • (+/-)

(+/-) Dynamic Dynamic – –but partial but partial– – adaptation adaptation of

  • f

hierarchical hierarchical component component

  CASA [Zurich

CASA [Zurich University University] ]

  • (+)

(+) Automatic Automatic and and dynamic dynamic application adaptation application adaptation

  • (-)

(-) Based Based on a

  • n a specific

specific component component model model and and implementation implementation