You are on page 1of 17

The Fractal Component Model

ObjectWeb conference
20, 21 November 2003
Eric Bruneton – France Telecom R&D

www.objectweb.org
Overview

➨Introduction
➨Model
➨Implementations
➨Tools
➨Status

www.objectweb.org (ICAR03.ppt) - D2 - 25/08/2003


Introduction:
open issues for platforms
➨Master the
deployment
administration, supervision
evolution
integration
➨Of software infrastructures that are
distributed
heterogeneous
and sometime legacy
➨While taking into account the QoS needs
www.objectweb.org (ICAR03.ppt) - D3 - 25/08/2003
Introduction: goals

➨Architectural principles for software engineering


Building by composing software bricks: components
Homogeneous vision of the software systems topology
services & applications, middleware, operating systems
Uniform management of resources, activities and control domains
Support of the full software life cycle:
programmation, deployment, administration and supervision

➨Implementation of an execution platform for components


This platform should be
modular and extensible
composable with other frameworks: persistence, duplication, security…

www.objectweb.org (ICAR03.ppt) - D4 - 25/08/2003


Introduction: goals

➨Application to the ObjectWeb middleware platforms


Configuration, integration of the ObjectWeb components
Common components, resource sharing between components:
Transaction Manager, Pool, Cache, Logger, …
Common development tools: configuration, supervision…
➨Research and development
Sure and efficient composition techniques:
Assertions, contracts, formal methods…
Integrity of dynamic reconfigurations
Availability and fault tolerance: persistence, duplication, mobility…

www.objectweb.org (ICAR03.ppt) - D5 - 25/08/2003


Model: overview

➨Foundations
Interface definition languages, naming and binding
➨External component structure
Definition, component and interface introspection API
➨Internal component structure
Definition, internal introspection and (re)configuration API
➨Instantiation
Component factories and templates
➨Typing
➨Options and extensions
www.objectweb.org (ICAR03.ppt) - D6 - 25/08/2003
Model: external structure

component, Component
➨External structure
s, I u, I
a black box t, J v, I
with access points called interfaces w, K
each interface has a name
and a signature (set of operations)

➨Introspection API
interface Component { interface Interface {
any[] getFcInterfaces(); string getFcItfName();
any getFcInterface (string name); Component getFcItfOwner();
Type getFcType(); boolean isFcInternalItf();
} Type getFcType();
}
www.objectweb.org (ICAR03.ppt) - D7 - 25/08/2003
Model: internal structure (1)

➨Internal structure
controller + content

content = other components


sub components,
primitive and composite,
content
shared components
controller

controller: can
provide introspection and intercession functions
intercept incoming and outgoing operation calls
modify the behavior of its sub controllers

www.objectweb.org (ICAR03.ppt) - D8 - 25/08/2003


Model: internal structure (2)

➨Bindings: interactions
primitive binding
binds
–a client interface
–to a server interface
in the same address space

composite binding
binds arbitrary interfaces
set of primitive bindings and binding components

normal, import and export bindings

www.objectweb.org (ICAR03.ppt) - D9 - 25/08/2003


Model: internal structure (3)

➨(Re)configuration API (main interfaces)


interface BindingController { interface ContentController {
string[] listFc(); any[] getFcInternalInterfaces();
any lookupFc (string c); any getFcInternalInterface (string c);
void bindFc (string c, any s); Component[] getFcSubComponents();
void unbindFc (string c); void addFcSubComponent (Component c);
} void removeFcSubComponent (Component c);
}
interface LifeCycleController {
string getFcState();
void startFc ();
void stopFc ();
}

www.objectweb.org (ICAR03.ppt) - D10 - 25/08/2003


Implementations

➨Julia
Reference implementation in Java
extensible framework to build component controllers
continuum from static configuration to dynamic reconfiguration
Implementation
a small runtime (Java interfaces and exceptions)
a set of mixin classes (Aspect Oriented Programming)
a set of class generators based on ASM (includes a class "mixer")
➨ProActive
Java implementation for mobile and distributed components
➨THINK
C implementation for Operating System components
www.objectweb.org (ICAR03.ppt) - D11 - 25/08/2003
Tools : Fractal ADL
<component-type name="RootType"> <primitive-template name="BasicServer" implements="ServerType">
<provides> <primitive-content class="pkg.lib.ServerImpl"/>
<interface-type name="m" signature="pkg.api.Main"/> <controller>
</provides> <attributes signature="pkg.api.ServiceAttributes">
</component-type> <attribute name="Header" value="-> "/>
<attribute name="Count" value="1"/>
<component-type name="ClientType" extends="RootType"> </attributes>
<requires> </controller>
<interface-type name="s" signature="pkg.api.Service"/> </primitive-template>
</requires>
</component-type> <composite-template name="BasicClientServer" implements="RootType">
<composite-content>
<component-type name="ServerType"> <components>
<provides> <component name="client" type="ClientType" implementation="BasicClient"/>
<interface-type name="s" signature="pkg.api.Service"/> <component name="server" type="ServerType" implementation="BasicServer"/>
</provides> </components>
</component-type> <bindings>
<binding client="this.m" server="client.m"/>
<binding client="client.s" server="server.s"/>
<primitive-template name="BasicClient" implements="ClientType"> </bindings>
<primitive-content class="pkg.lib.ClientImpl"/> </composite-content>
</primitive-template> </composite-template>

www.objectweb.org (ICAR03.ppt) - D12 - 25/08/2003


Tools: Fractal GUI

www.objectweb.org (ICAR03.ppt) - D13 - 25/08/2003


Conclusion: expected gains

➨More productivity for programmers and integrators


The model enforces the use of good software principles
Separation of interface and implementation
Separation of the functional, configuration and deployment concerns
Requires the programmers to think about the architecture
Standard methods
Standard configuration, deployment and administration tools
➨Platforms durability
Adaptability & reusability
Maintainability & evolutivity
Support of standards through "personalities"
www.objectweb.org (ICAR03.ppt) - D14 - 25/08/2003
Conclusion: current status

➨Architectural principles for software engineering


Building by composing software bricks: components
Homogeneous vision of the software systems topology
services & applications, middleware, operating systems
–examples : Fractal GUI, Speedo, Jabyce, THINK
Uniform management of resources, activities and control domains
Support of the full software life cycle:
programmation, deployment (no distributed deployment yet), administration
and supervision (API)
➨Implementation of an execution platform for components
This platform should be
modular and extensible
composable with other frameworks: persistence, duplication, security…

www.objectweb.org (ICAR03.ppt) - D15 - 25/08/2003


Conclusion: perspectives

➨Administration: JMX
➨Distributed deployment
➨Multi target tools (ADL): Java and C
➨Extensible and modular ADL: needed for Kilim, ProActive…
➨Evaluation: ObjectWeb code base refactoring
➨Ongoing Research:
FTR&D : behaviors (TLA specification/observation, automaton
composition), events/reactions (composition, auto-adaptation…), security
domains, EJB personality
INRIA : optimization, transactions, formal model
EMN : auto-adaptation, ADL
I3S : contracts, assertions
Université Valenciennes : non functionnal properties

www.objectweb.org (ICAR03.ppt) - D16 - 25/08/2003


Conclusion: for more details…

➨Fractal specification
started in January 2002
v1.0 in July 2002, v2.0 in September 2003
Authors
E. Bruneton - France Telecom R&D
T. Coupaye - France Telecom R&D
J.B. Stefani - INRIA

➨Links
Web site: http://fractal.objectweb.org
Mailing list: fractal@objectweb.org

www.objectweb.org (ICAR03.ppt) - D17 - 25/08/2003

You might also like