52
1 Software Architecture & Composition Guillaume Waignier, Anne-Françoise Le Meur, Laurence Duchien Project-Team U. Lille 1/CNRS-INRIA http://adam.lille.inria.fr April 2009

Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

1

Software Architecture & Composition

Guillaume Waignier, Anne-Françoise Le Meur, Laurence Duchien Project-Team U. Lille 1/CNRS-INRIA

http://adam.lille.inria.fr

April 2009

Page 2: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

2

Scientific context

Future applications will be multi-paradigms and will be deployed on multi-scale environments

New forms of complexity •  Applications should be adapted in the best way to exploit these

networks •  Need for reasoning on the environmental conditions to adapt the

software with a minimum of effort

Report: beyond the Horizon, thematic Group 6, FP7, Software Intensive Systems, 2006

2

Page 3: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

3

3

ADAM’s challenge

Grid5000

Adaptive Deployment

LAN WiFi

Network

Adaptive distributed application design (UML, ADL, DSL)

Adaptive component frameworks for

distributed applications (Fractal, SCA, SOA)

Adaptation throughout

the software lifecycle

Page 4: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

4

4

Software Models

FraSCAti Soleil FraSCAme TINAP

Software Systems

DeployWare

Services/Fractal Embedded/Fractal

4

CALICO CAPucine

Page 5: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

5

Outline

Scientific context

Component AssembLy Interaction Control framewOrk 1. CALICO Framework [MODeLS 2008] 2. CALICO model-level

Unified framework for designing and analyzing application properties •  Structure design •  Contractual application specifications •  Contractual specifications composition

3.  CALICO platform-level

Conclusion and perspectives

Page 6: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

6

Scientific context

Page 7: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

7

Context

•  Software Architecture •  components or services

–  Visible external properties –  Interface, behavior

–  Relations –  assembly

•  Understandable (high level abstraction)‏ •  Construction (reuse)‏ •  Architecture Description Languages (ADLs)‏

C1 C2

C3

Abstract model

Execution model

Page 8: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

8

1. Safe architecture •  Specify the application properties

•  Structure : constrain the connection between elements •  Behavior : express the workflow going in and out •  Dataflow : limit the allowed range of value of exchanged messages •  QoS : define the maximal response time, …

• Needs for Safe Architecture •  Specification of component properties (structural, behavioral, ...)‏ •  Identify violation of application properties in the assembly •  Analysis of the interaction compatibility between components

Page 9: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

9

1. Illustrating example (PHR)‏

Page 10: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

10

1. Illustrating example (PHR)‏

Security : structural property

Page 11: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

11

1. Illustrating example (PHR)‏

Security : structural property Authentication : behavioral property

1

2

Page 12: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

12

1. Illustrating example (PHR)‏

Security : structural property Authentication : behavioral property High reliability : dataflow property

data.size<100Mb

Page 13: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

13

1. Illustrating example (PHR)‏

Security : structural property Authentication : behavioral property High reliability : dataflow property Reactivity : QoS property

Time<20s

Page 14: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

14

1. Illustrating example (PHR)‏

How to help the architect to identify inconsistency?

Security : structural property Authentication : behavioral property High reliability : dataflow property Reactivity : QoS property

Page 15: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

15

1. Problems

•  Existing static analysis tools are not suitable •  Handle a subset of application properties •  Are coupled with component or service models

How to provide a platform-independent approach supporting all kind of properties ?

Page 16: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

16

2. Illustrating example (PHR)‏

PCclient

data2.size<2Mb

data1.size<3Gb data2=data1

assumption guarantee

PDAclient

Cache ImageServer

data2.size<4Gb Compatible Interaction

Partially Compatible Interaction (depends on runtime values)‏

Need to perform runtime debugging

Page 17: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

17

2. Problems with existing tools

•  Existing tools are not suitable •  Break the continuity in the development process •  Add assertions in the application code •  Provide feedback at code level •  Lose relation between the runtime errors and the design concepts

•  Limited component platform support •  Lack of static analysis tools •  Lack of dynamic checking tools

To address these problems, we propose CALICO

Page 18: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

18

Main results of CALICO: Component AssembLy Interaction Control framewOrk

1.  CALICO Framework [MODeLS 2008]

2.  CALICO model-level Unified framework for designing and analyzing application properties

•  Structure design •  Contractual application specifications •  Contractual specifications composition

3.  CALICO platform-level

Page 19: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

19

CALICO Framework

Page 20: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

20

1.  CALICO Framework

2.  CALICO model-level [QoSA2008] Unified framework for designing and analyzing application properties

•  Structure design •  Contractual application specifications •  Contractual specifications composition

3.  CALICO platform-level

Page 21: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

21 Uniform approach for specifying contractual specifications

•  Based on the assume-guarantee paradigm [Abadi-Lamport93] •  Widely used in QoS •  assume(P) = application properties required by P from its environment •  guarantee(P) = application properties offered by P

•  assume(P) → guarantee(P)‏

•  Advantage of the assume-guarantee paradigm •  Can be composed to compute the specification of an assembly •  Can be analyzed statically

Page 22: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

22

Application structure

Common elements in component and service models

•  Entity : computational element •  Component or service

•  Connector: interaction between entities •  Binding or partnerLink

•  Communication point : access point of an entity that allows it to communicate •  Port, interface or portType

•  Communication element : action performed to communicate •  Operation

•  Argument : element exchanged between entities •  Typed object or message

Page 23: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

23

Application structure metamodel

Page 24: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

24

Behavioral specification

Describe the workflow going in and out of the communication point

Assumption : expected behavior Guarantee : offered behavior

Page 25: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

25

Assembly of entities

•  Create the assembly of entities •  Add connectors between entities •  Check the assembly

–  Need to compose the contractual specifications

Client GlobalSearch Access

Page 26: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

26

Unified contract computation

•  Contract = composition of specifications •  C{P1 * P2} = SpecP1 ∘ SpecP2

–  Pi: participant i –  SpecPi : specification of Pi –  ∘ : compositional operator (associative, commutative)‏

•  Incremental computation •  Specification of an assembly computed from the contract of this assembly

–  Spec{P1 U P2} = f( C{P1 * P2} )‏

Page 27: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

27

Contract composition order

•  Contract composition = tree •  Leaf : contractual specification written by the architect •  Node : contractual specification of a sub part of the architecture •  Root : contractual specification of the entire architecture

Client GlobalSearch Access

B1 B2 B3

B2,B3

B1,B2,B3

D1 D2 D3

D2,D3

D1,D2,D3

Page 28: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

28

PHR example

Page 29: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

29

Static interaction analysis

•  CALICO's interaction analysis tool •  Identify compatible, incompatible and partially compatible interaction •  Is independent of any component platform

•  Behavioral analysis •  Based on existing process algebras (CSP, FSP, ...)‏ •  Creating the global CFG by synchronizing CFGs

•  Dataflow analysis •  Based on partial program validation •  Forward propagation of the guarantees •  Backward propagation of the assumptions

Page 30: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

30

PHR example

Page 31: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

31

PHR example

Forward propagation

Page 32: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

32

PHR example

Forward propagation Backward propagation

Page 33: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

33

Insertion of validation points where runtime checks are needed

PHR example

Forward propagation Backward propagation

V

V

Page 34: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

34

1.  CALICO Framework

2.  CALICO model-level Unified framework for designing and analyzing application properties

•  Structure design •  Contractual application specifications •  Contractual specifications composition

3.  CALICO platform-level

Page 35: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

35

Adding the missing functionality

•  Lack of services for capturing runtime context •  Few platforms are able to capture the required runtime information (trace)‏ •  Need to add the missing functionality for capturing runtime information

→ CALICO's code instrumentation tool •  Instruments automatically the application code

–  Capturing the trace : 3 aspects –  send a trace, receive a trace, propagate the trace between components

•  Generates and weaves aspects accordingly to the models •  Is independent of any platform

Page 36: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

36

Performing dynamic checking

•  Loading of the running application •  Generates the sequence of system construction operations •  Translates them into calls to platform-specific API

•  Need to complete the validation of partially compatible interactions •  Check the runtime information

→ CALICO's dynamic validation tool •  Receives runtime information •  Analyzes it at the model-level •  Provides design feedback to the architect •  Is independent of any component platform

Page 37: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

37

Fixing the errors

Page 38: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

38

Conclusion

Page 39: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

39

Towards full runtime....and adaptation

-> reification of the whole runtime system •  manage the co-evolution of the abstract model and the running model

Abstract model

Execution model

-  keep coherent structural modifications -  on the ADL -  on the running system

-  keep an updated view of the specified properties and current contracts

Page 40: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

40

Conclusion

•  Model-level •  Describes the software architecture (structure + properties) using models •  Performs static interaction analysis •  Is platform independent

•  Platform-level •  Holds the running system •  Contains tools for loading the system •  Adds missing services for capturing runtime information

•  Couple model-level with platform-level •  Capture runtime information at the model level •  Locate model elements leading to runtime errors

http://calico.gforge.inria.fr

Page 41: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

41

Questions ?

Page 42: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

42

Towards full runtime....and adaptation

Calico : a framework that offers

- Coherent abstract models/views of an application from its construction to its execution/adaptation/evolution •  Structure •  Properties •  Deployment •  Execution context

-  Not platform specific

-  Verification supports (static and dynamic)

-  Adaptation policies and mechanisms

Page 43: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

43

7. Future work

•  Handle more platforms •  OpenCOM, SCA, Web Services, ...

•  Support more kinds of properties and analyses •  Behavioral protocol, QoS

http://calico.gforge.inria.fr

Page 44: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

44

ADAM Adaptive Distributed Applications and Middleware

•  Joint project-team INRIA, Univ. Lille 1 & CNRS since January 2008 •  2 Prof., 2 MCF, 1 CR, 1 MCF (secondment INRIA –Paris 6), 7 Ph.D students, 8 engineers

Scientific challenge •  Definition of an Adaptation Model throughout the Software Lifecycle

•  Adaptive Component Frameworks for Middleware & Services •  Self-configurable components •  A framework for composing, deploying, and executing heterogeneous components

•  Distributed Applications Design for Adaptive Platforms •  Adaptive languages for software architectures •  Context-aware modelling for context-aware platforms

Scientific community animation •  25 program committees, 6 ws organisations, Board of GDR GPL

Scientific production •  10 articles, 41 papers, 2 book chapters

Software production •  OW2 ecosystem: Suite Fractal - FAC, AOKell, Fraclet, Fractal Explorer, FraSCAti •  INRIA ecosystem: Spoon, CALICO, DeployWare/FDF

Industrial transfer •  DeployWare/FDF in JOnAS and JASMINe - Bull & in PEtALS - EBM WebSourcing

* PME

Page 45: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

45

2. Problems

•  Existing static analysis tools are not suitable •  Handle a subset of application properties •  Are coupled with component or service models

Page 46: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

46

2. Problems

•  Existing static analysis tools are not suitable •  Handle a subset of application properties •  Are coupled with component or service models

Page 47: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

47

Aspects as first-class entities

47

object JAC, Spoon…

component AOKell

architecture FAC, TranSAT

Page 48: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

48

Aspects in architecture & component FAC A programming model that merges AOSD

and CBSE

Notion of an aspect domain in a software architecture

aspect binding + aspect component + dynamic un/weaving

AOKell Engineering technical services for Fractal component-based applications •  http://fractal.ow2.org/aokell •  http://fac.gforge.inria.fr •  France Telecom •  [CBSE06, ARES 07, IJCAT 08] •  [PhD Pessemier 07]

48

Page 49: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

49 Adaptation throughout the software life cycle

49

FraSCAti Soleil FraSCAme TINAP

Software Systems

DeployWare

Adaptation at each step Development process - FAROS [Waignier] - SPL Cappucino [Parra] - Soleil [Plsek]

Transformation tools - Spoon [Noguera]

Architecture framework - CALICO [Waignier]

Runtime platforms - FraSCAti [Collective work] - FraSCAme [Romero] - Soleil [Plsek] - TINAP [Loiret]

Deployment - DeployWare [Dubus]

Maintenance - DECOR [Moha]

Formal Model Fractal/Alloy

Services/Fractal Embedded/Fractal

CALICO CaDSPL

Page 50: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

50 Framework for software architecture evolution

•  Collaborations INRIA/Triskell, I3S/Rainbow

•  ANR FAROS •  http://calico.gforge.inria.fr •  [Models 08, QoSA 08] •  [Ph.D Waignier expected end 09]

50

CALICO Component AssembLy Interaction Control framewOrk Model-based framework 2 levels: Model & PF

Page 51: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

51

FraSCAti Marriage of SCA and Fractal

m

Client Server s m s

SCA Fractal

FraSCAti

Reflective SCA components

SOA for Fractal

Reflective introspection, management, reconfiguration

Reflective components Components for SOA

Page 52: Guillaume Waignier, Anne-Françoise Le Meur, Laurence ...users.polytech.unice.fr/~blay/JourneeCompositionLogicielle/ADAMNice.pdfComponent AssembLy Interaction Control framewOrk 1

52

Loading the system

•  Loading of the running application •  Generates the sequence of system construction operations •  Translates them into calls to platform-specific API

→ CALICO's application loader tool •  Driven by the model-level specifications •  Direct Mapping of the common structural elements

–  Create/remove components/connectors •  Mapping of validation point into adaptor component

–  Generates adaptor component forwarding calls –  Intercepts the runtime information –  Generic approach for creating interceptors