Professional Documents
Culture Documents
ObjectWeb conference
20, 21 November 2003
Eric Bruneton – France Telecom R&D
www.objectweb.org
Overview
➨Introduction
➨Model
➨Implementations
➨Tools
➨Status
➨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
controller: can
provide introspection and intercession functions
intercept incoming and outgoing operation calls
modify the behavior of its sub controllers
➨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
➨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>
➨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
➨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