Mastère RSD - TC4 2005/20061 Distributed Components –ProActive-Fractal : main concepts...
-
Upload
nora-chapman -
Category
Documents
-
view
221 -
download
0
Transcript of Mastère RSD - TC4 2005/20061 Distributed Components –ProActive-Fractal : main concepts...
![Page 1: Mastère RSD - TC4 2005/20061 Distributed Components –ProActive-Fractal : main concepts –Behaviour models for components –Deployment, management, transformations.](https://reader036.fdocuments.net/reader036/viewer/2022081519/56649f555503460f94c795c2/html5/thumbnails/1.jpg)
Mastère RSD - TC4 2005/2006 1
Distributed Components
– ProActive-Fractal : main concepts– Behaviour models for components– Deployment, management, transformations– Examples of properties
Eric MadelaineINRIA Sophia-Antipolis, Oasis team
![Page 2: Mastère RSD - TC4 2005/20061 Distributed Components –ProActive-Fractal : main concepts –Behaviour models for components –Deployment, management, transformations.](https://reader036.fdocuments.net/reader036/viewer/2022081519/56649f555503460f94c795c2/html5/thumbnails/2.jpg)
Mastère RSD - TC4 2005/2006 2
Fractive’s components• FRACTAL : Component* model specification, implemented using
• ProActive : Java library for distributed applications
= Fractive
• Features:
– Hierarchical Component Model
– Separation of functionality / control
– ADL description (Fractal’s XML Schema/DTD)
– Distributed components (from distributed objects)
– Asynchronous method calls (non-blocking)
– Strong Formal Semantics (ASP) => properties and guarantees
*Component : self-contained entity, with well-defined interfaces, reusable,
composable (hierarchically)
![Page 3: Mastère RSD - TC4 2005/20061 Distributed Components –ProActive-Fractal : main concepts –Behaviour models for components –Deployment, management, transformations.](https://reader036.fdocuments.net/reader036/viewer/2022081519/56649f555503460f94c795c2/html5/thumbnails/3.jpg)
Mastère RSD - TC4 2005/2006 3
ATTRIBUTEBINDINGLIFE CYCLE CONTENT
Content
Fractal’s Components
![Page 4: Mastère RSD - TC4 2005/20061 Distributed Components –ProActive-Fractal : main concepts –Behaviour models for components –Deployment, management, transformations.](https://reader036.fdocuments.net/reader036/viewer/2022081519/56649f555503460f94c795c2/html5/thumbnails/4.jpg)
Mastère RSD - TC4 2005/2006 4
ATTRIBUTEBINDINGLIFE CYCLE CONTENT
Fractal’s Components
Life-cycle : start / stop the component
Binding : bind / unbind a connection between interfaces
Content : add / remove sub-components
Attribute : get set the value of attribute values
![Page 5: Mastère RSD - TC4 2005/20061 Distributed Components –ProActive-Fractal : main concepts –Behaviour models for components –Deployment, management, transformations.](https://reader036.fdocuments.net/reader036/viewer/2022081519/56649f555503460f94c795c2/html5/thumbnails/5.jpg)
Mastère RSD - TC4 2005/2006 5
Fractive Behavioural model build
• Functional behaviour is known– Given by the user– Obtained by static analysis
• Non-functional & asynchronous behaviour is automatically added from the component’s ADL– Automata within a synchronisation network, named controller
• Component’s behaviour is the controller’s synchronisation product
![Page 6: Mastère RSD - TC4 2005/20061 Distributed Components –ProActive-Fractal : main concepts –Behaviour models for components –Deployment, management, transformations.](https://reader036.fdocuments.net/reader036/viewer/2022081519/56649f555503460f94c795c2/html5/thumbnails/6.jpg)
Mastère RSD - TC4 2005/2006 6
System example<?xml version="1.0" encoding="ISO-8859-1" ?><!DOCTYPE .... >
<definition name="components.System">
<component name="BufferSystem" definition="components.BufferSystem(3)"> <interface name="alarm" role="client" signature="components.AlarmInterface"/> </component> <component name="Alarm"> <interface name="alarm" role="server" signature="components.AlarmInterface"/> <content class="components.Alarm"> <behaviour file="AlarmBehav" format="FC2Param"/> </content></component> <binding client="BufferSystem.alarm" server="Alarm.alarm"/></definition>
<?xml version="1.0" encoding="ISO-8859-1" ?><!DOCTYPE .... >
<definition name="components.System">
<component name="BufferSystem" definition="components.BufferSystem(3)"> <interface name="alarm" role="client" signature="components.AlarmInterface"/> </component> <component name="Alarm"> <interface name="alarm" role="server" signature="components.AlarmInterface"/> <content class="components.Alarm"> <behaviour file="AlarmBehav" format="FC2Param"/> </content></component> <binding client="BufferSystem.alarm" server="Alarm.alarm"/></definition>
![Page 7: Mastère RSD - TC4 2005/20061 Distributed Components –ProActive-Fractal : main concepts –Behaviour models for components –Deployment, management, transformations.](https://reader036.fdocuments.net/reader036/viewer/2022081519/56649f555503460f94c795c2/html5/thumbnails/7.jpg)
Mastère RSD - TC4 2005/2006 7
<?xml version="1.0" encoding="ISO-8859-1" ?><!DOCTYPE .... >
<definition name="components.BufferSystem"> <interface name=”alarm" role=”client" signature="components.AlmInterface"/>
<component name=”Buffer" <interface name=”get" role=”server" signature="components.GetInterface"/> <interface name=”put" role=”server" signature="components.PutInterface"/> <interface name=”alarm" role=”client" signature="components.AlmInterface"/> <content class="components.Alarm"> <behaviour file="AlarmBehav" format="FC2Param"/> </content> </component> <component name=”Consumer" <interface name=”buf" role=”client" signature="components.GetInterface"/> <content class="components.Consumer"> <behaviour file=”ConsBehav" format="FC2Param"/> </content> </component>
<component name=”Producer" <interface name=”buf" role=”client" signature="components.PutInterface"/> <content class="components.Consumer"> <behaviour file=”ProdBehav" format="FC2Param"/> </content> </component>
<binding client=”Producer.buf” server=”Buffer.put"/><binding client=”Consumer.buf” server=”Buffer.get”/><binding client=”Buffer.alarm” erver=”alarm”/></definition>
Building the Models: Topology
BufferSystem
<definition name="components.BufferSystem"><definition name="components.BufferSystem">
<component name=“Consumer"<component name=“Consumer"
<component name=“Buffer"<component name=“Buffer"
<component name=”Producer"<component name=”Producer"
BufferConsumer
Producer
![Page 8: Mastère RSD - TC4 2005/20061 Distributed Components –ProActive-Fractal : main concepts –Behaviour models for components –Deployment, management, transformations.](https://reader036.fdocuments.net/reader036/viewer/2022081519/56649f555503460f94c795c2/html5/thumbnails/8.jpg)
Mastère RSD - TC4 2005/2006 8
Building the Models: Topology
BufferSystem
Consumer
Producer
Buffer
<component name=”Buffer" <interface name=”get" role=”server" signature="components.GetInterface"/> <interface name=”put" role=”server" signature="components.PutInterface"/><interface name=”alarm" role=”client" signature="components.AlmInterface"/> <content class="components.Buffer"> <behaviour file=”BufferBehav" format="FC2Param"/> </content> </component>
<component name=”Buffer" <interface name=”get" role=”server" signature="components.GetInterface"/> <interface name=”put" role=”server" signature="components.PutInterface"/><interface name=”alarm" role=”client" signature="components.AlmInterface"/> <content class="components.Buffer"> <behaviour file=”BufferBehav" format="FC2Param"/> </content> </component>
?Q_get()
!R_get(x)
?Q_put(y)
!Q_alarm()
![Page 9: Mastère RSD - TC4 2005/20061 Distributed Components –ProActive-Fractal : main concepts –Behaviour models for components –Deployment, management, transformations.](https://reader036.fdocuments.net/reader036/viewer/2022081519/56649f555503460f94c795c2/html5/thumbnails/9.jpg)
Mastère RSD - TC4 2005/2006 9
Building the Models: Topology
BufferSystem
Consumer
Producer
Buffer
<definition name="components.BufferSystem"> <interface name=”alarm" role=”client" signature="components.AlmInterface"/><interface name=”foo" role=”server" signature="components.FooInterface"/>
<definition name="components.BufferSystem"> <interface name=”alarm" role=”client" signature="components.AlmInterface"/><interface name=”foo" role=”server" signature="components.FooInterface"/>
!Q_alarm()
?Q_foo()
![Page 10: Mastère RSD - TC4 2005/20061 Distributed Components –ProActive-Fractal : main concepts –Behaviour models for components –Deployment, management, transformations.](https://reader036.fdocuments.net/reader036/viewer/2022081519/56649f555503460f94c795c2/html5/thumbnails/10.jpg)
Mastère RSD - TC4 2005/2006 10
BufferSystem
Building the Models: Non-Functional Behaviour
Consumer
Buffer
?bind(..)
?start/stop
!bind/unbind(..)
Producer
?bind(f,P.f)
?unbind(a,P.f)
unboundbound
!Err(unbound,Bf.a) !Err(unbound,Bf.a)
?bind(a,BSI.a)
?unbind(a,BSI.a)
unboundbound
!bind(..)
!R_alarm()
?Q_foo()
?start/stop
BS.foo B.alarm
![Page 11: Mastère RSD - TC4 2005/20061 Distributed Components –ProActive-Fractal : main concepts –Behaviour models for components –Deployment, management, transformations.](https://reader036.fdocuments.net/reader036/viewer/2022081519/56649f555503460f94c795c2/html5/thumbnails/11.jpg)
Mastère RSD - TC4 2005/2006 11
Building the Models: asynchronous behaviour
Buffer
Consumer
Producer
!bind/unbind !start/stop
BufferSystem
Body
LF
Proxy(fut)
Queue
?Serve(M,…) Call(M,…)
?Requests !Response
?Response
!Request
Body
?Serve start/stop
?Serve bind/unbind
?Serve(M,fut,args)
!fut.call(M,args) !bind/unbind
!start/stop
!bind/unbind !start/stop
Component’s
ControllerComponent’s
Controller
![Page 12: Mastère RSD - TC4 2005/20061 Distributed Components –ProActive-Fractal : main concepts –Behaviour models for components –Deployment, management, transformations.](https://reader036.fdocuments.net/reader036/viewer/2022081519/56649f555503460f94c795c2/html5/thumbnails/12.jpg)
Mastère RSD - TC4 2005/2006 12
Static Automaton• Deployment
Automaton
Static automaton = ( Controller || Deployment )+ hiding & minimisation
<binding client=”Producer.buf” server=”Buffer.put"/><binding client=”Consumer.buf” server=”Buffer.get”/><binding client=”Buffer.alarm” server=”alarm”/>
<binding client=”Producer.buf” server=”Buffer.put"/><binding client=”Consumer.buf” server=”Buffer.get”/><binding client=”Buffer.alarm” server=”alarm”/>
![Page 13: Mastère RSD - TC4 2005/20061 Distributed Components –ProActive-Fractal : main concepts –Behaviour models for components –Deployment, management, transformations.](https://reader036.fdocuments.net/reader036/viewer/2022081519/56649f555503460f94c795c2/html5/thumbnails/13.jpg)
Mastère RSD - TC4 2005/2006 13
• Error absence
Properties Verification(ACTL)
e.g. to start Buffer without linking alarm
![Page 14: Mastère RSD - TC4 2005/20061 Distributed Components –ProActive-Fractal : main concepts –Behaviour models for components –Deployment, management, transformations.](https://reader036.fdocuments.net/reader036/viewer/2022081519/56649f555503460f94c795c2/html5/thumbnails/14.jpg)
Mastère RSD - TC4 2005/2006 14
• Functional behaviour (on the static automaton)– Get from the buffer eventually gives an answer
Properties Verification(regular -calculus)
[ true*.get_req() ] X. (< true > true [get_rep() ] X )
![Page 15: Mastère RSD - TC4 2005/20061 Distributed Components –ProActive-Fractal : main concepts –Behaviour models for components –Deployment, management, transformations.](https://reader036.fdocuments.net/reader036/viewer/2022081519/56649f555503460f94c795c2/html5/thumbnails/15.jpg)
Mastère RSD - TC4 2005/2006 15
• Functional under reconfiguration– reconfiguration actions are allowed after
deployment
Properties Verification(regular -calculus)
![Page 16: Mastère RSD - TC4 2005/20061 Distributed Components –ProActive-Fractal : main concepts –Behaviour models for components –Deployment, management, transformations.](https://reader036.fdocuments.net/reader036/viewer/2022081519/56649f555503460f94c795c2/html5/thumbnails/16.jpg)
Mastère RSD - TC4 2005/2006 16
• Functional under reconfiguration– Future update (once the method served) independent of life-cycle
or bindings reconfigurations
– E.g:
– Enabling:
Properties Verification(regular -calculus)
[ true*.get_req() ] X. (< true > true [get_rep() ] X )
![Page 17: Mastère RSD - TC4 2005/20061 Distributed Components –ProActive-Fractal : main concepts –Behaviour models for components –Deployment, management, transformations.](https://reader036.fdocuments.net/reader036/viewer/2022081519/56649f555503460f94c795c2/html5/thumbnails/17.jpg)
Mastère RSD - TC4 2005/2006 17
Vercors Platform
• Tool set :– Code analysis (prototype, partial)– Model generation (prototype, soon available)– Interactions with model-checking and verification tools
(available)
Supported by FIACRE
An ACI-Security action of the French research ministry
![Page 18: Mastère RSD - TC4 2005/20061 Distributed Components –ProActive-Fractal : main concepts –Behaviour models for components –Deployment, management, transformations.](https://reader036.fdocuments.net/reader036/viewer/2022081519/56649f555503460f94c795c2/html5/thumbnails/18.jpg)
Mastère RSD - TC4 2005/2006 18
Tools: Pragmatics
• Development of Tools:– Use standard, efficient, verification engines.– Parameterized, synchronized networks of
automata as a compact interface format.– Optimizations of state-space.– Hide the complexity to final users.
Avoiding state explosion
1. Distributed model generation (distributor, CADP)
2. Reduced controllers based on deployment
3. On-the-fly mixed with compositional hiding and minimisation
Avoiding state explosion
1. Distributed model generation (distributor, CADP)
2. Reduced controllers based on deployment
3. On-the-fly mixed with compositional hiding and minimisation
![Page 19: Mastère RSD - TC4 2005/20061 Distributed Components –ProActive-Fractal : main concepts –Behaviour models for components –Deployment, management, transformations.](https://reader036.fdocuments.net/reader036/viewer/2022081519/56649f555503460f94c795c2/html5/thumbnails/19.jpg)
Mastère RSD - TC4 2005/2006 19
More References
– Reference book:Robin Milner: Communication and Concurrency
Prentice Hall, 1989.
– Research: Methods and Toolset for distributed applications and distributed components:
www-sop.inria.fr/oasis/Vercors