Upload
barbara-drusilla-booker
View
220
Download
3
Embed Size (px)
Citation preview
ProActive components and legacy code
Matthieu MOREL
Objective : a framework for Grid components
Facilitating the design and implementation of complex distributed systems
Leveraging the ProActive libraryProActive components benefit from underlying features
Allowing reuse of legacy components (e.g. MPI)
Providing tools for defining, assembling and monitoring distributed components
Overview
Component-based programmingFractal component modelTowards Grid componentsOn-going and future works
Overview
Component-based programmingFractal component modelTowards Grid componentsOn-going and future works
A CORBA Component
MyBusinessComponent
Component interface
Facets
Eventsources
Eventsinks
Attributes
Receptacles
OF
FE
RE
DR
EQ
UIR
ED
Component based programming
Component = software unit, deployment unit
Industrial acceptance : EJBs, CCM, COM …
3 key concepts : 1. Encapsulation
Black boxes, offered and required services, configuration 2. Composition
Design of complex systems Hierarchical organization into sub-systems
3. Description ADL Logical and geographical composition Tools
REUSABILITYCUSTOMIZATION
COMPLEXITY HANDLING
HIGH ABSTRACTION LEVEL
Overview
Component-based programmingFractal component modelFeatures for Grid computingOn-going and future works
Fractal component model
Defined by Bruneton, Coupaye, Stefani, INRIA & FTKey features :
Lightweight and extensible Recursive Dynamic
Reference implementation : Julia (FT)New implementation based on active objectsStandard tools in the community (ADL, GUI)
Content
Cell analogy
CONTROLLER
CONTENT
Content
Interface = access point
Content
Hierarchical model
Content
Binding = interaction
Content
Binding = interaction
SUPER BINDING LIFE CYCLE CONTENT
Content
Controllers : non-functional properties
Overview
Component-based programmingFractal component modelTowards Grid componentsOn-going and future works
An activity, a process, …potentially in its own JVM
Primitive
Composite: Hierarchical, and
Distributed over machines
Parallel: Composite
+ Multicast (group)
Components for the GRID
Distributed Components
1 component can be distributed over several hosts
Components vs. Activities and JVMs
Activity JVM Component
Components orthogonal
to activities and JVMs :
contain activities,
span across several JVMs
A way to globally manipulate
distributed and running activities
Group proxyGroup proxy
Multicaston client interface
Multicast on inner server interface
Groups in components
Migration capabilities of composites
Migrate sets of components, including composites
Migration capabilities of composites
Migrate sets of components, including composites
Co-allocation, re-distribution
e.g. upon communication intensive phase
Co-allocation, re-distribution
e.g. upon communication intensive phase
Co-allocation, re-distribution
e.g. upon communication intensive phase
At runtime or design time (ADL)
getA()
getB()
getAandB()
First Class Futures
1 : Synchronous method calls
getA()
getB()
getAandB()
getB()
getA()getAandB()
getA()
getB()
getAandB() getA()
getB()
getAandB()
getB()
getA()getAandB()
First Class Futures
2 : Asynchronous method calls, full-fledge wait-by-necessity
Non-blocking method calls
value of A
value of B
Process flow is not blocked by asynchronous computations
Overview
Component-based programmingFractal component modelTowards Grid componentsOn-going and future works
On-going work : optimizations
Dynamic shortcuts for distributed bindings
(through tensioning)
1 remote call
On-going work : GUI
Perspective : legacy code wrappers
MPI Code (C/Fortran)method calls
messages on tags
messages on tags
method calls
Perspective : MxN communications
M components
N components
GATHERING
SCATTERING
REDISTRIBUTION from M to N
Conclusion
Conclusion : ProActive Components
Encapsulation : Formed from one (or several) Active Object Executing on one or several JVMs Server ports: Java Interfaces Client ports: Java Attributes
Composition : Composite components : hierarchical Point-to-point or Group communication between components Parallel component : multicast of calls in composites,
redistribution
Description : XML definition of primitive and composite (ADL) Virtual nodes capture the deployment capacities and needs
Merci!
Questions?
Contact : Matthieu Morel