Title: Kilim and Fractal 29012003
1Kilim and Fractal29/01/2003
2Kilim components
- A Kilim component interface slot
- controller property
this
plug
sub-component
controller
3A programmatic view (1)
- 1 ResourceRepository rep new ResourceRepository(
) - 2 TemplateDescription td rep.getTemplateDescript
ion("Hello.kilim") - 3 Component compo ComponentFactory.newComponent(
td) - 4 ComponentInterface itf compo.getInterface("hel
lo") - 5 Hello ref (Hello) itf.getValue()
- 6 ref.sayHello()
- 7 RuntimeProperty prop compo.getProperty("hello
string") - 8 RuntimeSlot slot compo.getSlot(.)
- 9 slot.plug(compo1)
méta-objects creation
"runtime" objects creation
4A programmatic view (2)
- 1 ResourceRepository rep new ResourceRepository(
) - 2 TemplateDescription td rep.getTemplateDescript
ion("Hello.kilim") - 3 Component compo ComponentFactory.newComponent(
td) - 4 ComponentInterface itf compo.getInterface("hel
l") - 5 Hello ref (Hello) itf.getValue()
- 6 ref.sayHello()
Template Description
Component
this
Template Description
hello
Component
this
Hello object
hello
5Kilim templates
- Description of component construction/intializatio
n mechanisms - should be non intrusive (to be used for existing
platform) - A Kilim model reminder
- Providers and dependancies
- Abstraction of mechanisms for object construction
(obtaining a reference) Constructors, Factory
methods, lookup methods for repositories - Dependancies induced by methods arguments,
- Transformer and triggers
- Abstraction of mechanisms for object
initialization (triggered just after creation) -
6The model through an example (1)
- Build an application
- Construction captured by implementation ctors
and setters - Launcher (main for ex.)
7The model through an example (2)
this
8The Kilim template formalism (1)
XML based syntax
lttemplate name switch and lampegt ltprovider
namelampegt ltnew classLampeImplgt ltparam
typejava.awt.Colorgt Color.RED lt/paramgt
lt/newgt lt/providergt ltprovider
nameswitchgt ltnew classSwitchImplgt lt/provi
dergt lttrigger sourceswitch eventbindgt ltca
ll methodsetLampe staticfalsegt lteventsour
ce/gt ltparam typeLampegt ltreference
namelampegt lt/paramgt lt/triggergt
P
T
P
9The Kilim template formalism (2)
arrays Inheritance mechanism public, protected,
private access control Slot and plug mechanisms
10Conclusion
- Kilim operational (XML parser, run-time,
viewers and other helpers) - used internally for building rather large
industrial softwares - future work
- introduction of dynamic reconfiguration
mechanisms - bind, unbind
- integration of distribution
- extension to C and C
- generation of compiled launchers