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 library ProActive 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 programming Fractal component model Towards Grid components On-going and future works
Overview Component-based programming Fractal component model Towards Grid components On-going and future works
A CORBA Component My Business Component Component interface Facets Event sources Event sinks Attributes Receptacles OFFERED REQUIRED
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 REUSABILITY CUSTOMIZATION COMPLEXITY HANDLING HIGH ABSTRACTION LEVEL
Overview Component-based programming Fractal component model Features for Grid computing On-going and future works
Fractal component model Defined by Bruneton, Coupaye, Stefani, INRIA & FT Key features : Lightweight and extensible Recursive Dynamic Reference implementation : Julia (FT) New implementation based on active objects Standard tools in the community (ADL, GUI)
Content Cell analogy CONTROLLER CONTENT
Content Interface = access point
Content Hierarchical model
Content Binding = interaction
Content Binding = interaction
SUPERBINDINGLIFE CYCLECONTENT Content Controllers : non-functional properties
Overview Component-based programming Fractal component model Towards Grid components On-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 proxy Multicast on 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 programming Fractal component model Towards Grid components On-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