Configuration Aware Distributed System Design in Erlang Gabor Batori, Zoltan Theisz, Domonkos Asztalos ETH Software Engineering Group
Slide titleIn CAPITALS
50 pt
Slide subtitle 32 pt
Configuration Aware Distributed System Design in Erlang
Gabor Batori, Zoltan Theisz, Domonkos AsztalosETH Software Engineering Group
Top right corner for field-mark, customer or partner logotypes. See Best practice for example.
Slide title 40 pt
Slide subtitle 24 pt
Text 24 pt
Bullets level 2-520 pt
EUC 2006, Stockholm, Sweden 2006-11-092
Node1 Node2
Metamodel
Input
Translator
GME
Output
Code base
CRTK
Deployment
O&M of reflexive component application via model view
Meta-model definition based on the application domain
Model population based on scenarios and meta-model
Code generation via model translation
Model
Instantiates
Component deployment onto ErlCOM middleware via Deployment ToolIn
put
procdest
b src
proc2b
proc1src b bdestb
ErlCOM ErlCOM
ErlCOM
Configuration Aware Distributed System Design
Top right corner for field-mark, customer or partner logotypes. See Best practice for example.
Slide title 40 pt
Slide subtitle 24 pt
Text 24 pt
Bullets level 2-520 pt
EUC 2006, Stockholm, Sweden 2006-11-093
Metamodel
Input
Translator
GME
Output
Code base
ErlCOM
Meta-model Based Generative Software Development
Model
Instantiates
Input
procdest
b src
Top right corner for field-mark, customer or partner logotypes. See Best practice for example.
Slide title 40 pt
Slide subtitle 24 pt
Text 24 pt
Bullets level 2-520 pt
EUC 2006, Stockholm, Sweden 2006-11-094
Meta-modeling
Establishes relationships among domain concepts Defines the syntax and the static semantics of the domains
Top right corner for field-mark, customer or partner logotypes. See Best practice for example.
Slide title 40 pt
Slide subtitle 24 pt
Text 24 pt
Bullets level 2-520 pt
EUC 2006, Stockholm, Sweden 2006-11-095
Modeling
Specifies the details of a particular scenario Populates the domain meta-model with instances corresponding to the scenario Validates the current instance configuration based on the meta-model
Top right corner for field-mark, customer or partner logotypes. See Best practice for example.
Slide title 40 pt
Slide subtitle 24 pt
Text 24 pt
Bullets level 2-520 pt
EUC 2006, Stockholm, Sweden 2006-11-096
Node1
ErlCOM
Node2
Metamodel
Input
Translator
GME
Output
Code base
Reflective Robust Reconfigurable Middleware (ErlCOM)
Model
Instantiates
Input
procdest
b srcErlCOM
ErlCOM
Top right corner for field-mark, customer or partner logotypes. See Best practice for example.
Slide title 40 pt
Slide subtitle 24 pt
Text 24 pt
Bullets level 2-520 pt
EUC 2006, Stockholm, Sweden 2006-11-097
ErlCOM’s Component Model
Component, Composite Component – Functionality Owner Interface, Receptacle – Interaction Point Owner Binding – Communication Owner Component Framework – Reconfiguration Owner
Top right corner for field-mark, customer or partner logotypes. See Best practice for example.
Slide title 40 pt
Slide subtitle 24 pt
Text 24 pt
Bullets level 2-520 pt
EUC 2006, Stockholm, Sweden 2006-11-098
ErlCOM’s Robustness Model
Capsule – Resource Owner Caplet – Component Owner Component – Functionality Owner
Top right corner for field-mark, customer or partner logotypes. See Best practice for example.
Slide title 40 pt
Slide subtitle 24 pt
Text 24 pt
Bullets level 2-520 pt
EUC 2006, Stockholm, Sweden 2006-11-099
Node1 Node2
Metamodel
Input
Translator
GME
Output
Code base
Deployment
Configuration aware Component Deployment
Model
Instantiates
Input
procdest
b src
proc1src b destbErlCOM
ErlCOM ErlCOM
Top right corner for field-mark, customer or partner logotypes. See Best practice for example.
Slide title 40 pt
Slide subtitle 24 pt
Text 24 pt
Bullets level 2-520 pt
EUC 2006, Stockholm, Sweden 2006-11-0910
Deployment Configuration Modeling
Top right corner for field-mark, customer or partner logotypes. See Best practice for example.
Slide title 40 pt
Slide subtitle 24 pt
Text 24 pt
Bullets level 2-520 pt
EUC 2006, Stockholm, Sweden 2006-11-0911
Node1 Node2
Metamodel
Input
Translator
GME
Output
Code base
CRTK
Deployment
Component Reconfiguration O&M Model
Model
Instantiates
Input
procdest
b src
proc2b
proc1src b bdestb
ErlCOM ErlCOM
ErlCOM
Top right corner for field-mark, customer or partner logotypes. See Best practice for example.
Slide title 40 pt
Slide subtitle 24 pt
Text 24 pt
Bullets level 2-520 pt
EUC 2006, Stockholm, Sweden 2006-11-0912
ErlCOM’s Reconfigurability Facility
start()-> Pid=spawn(?MODULE,loop,[]), register(notify_gme,Pid), Pid.loop()-> receive stop->true; {Command,Parameters}-> prepare_command(Command,Parameters), loop() end.
prepare_command(load,Parameters)-> [CapletID,LoaderID,ModuleName,CompID,IFIDs,RecIDs]=Parameters;
…
Static configurations via supervisors are not enough
Container and manager of logically coherent entities
Top right corner for field-mark, customer or partner logotypes. See Best practice for example.
Slide title 40 pt
Slide subtitle 24 pt
Text 24 pt
Bullets level 2-520 pt
EUC 2006, Stockholm, Sweden 2006-11-0913
Conclusion
Separates application logic and deployment adaptation logic
Component based development reduces spaghetti-code
Model aware O&M layer (almost without extra efforts) Demonstrates how Erlang and model based design can
benefit from each other’s ideas
Top right corner for field-mark, customer or partner logotypes. See Best practice for example.
Slide title 40 pt
Slide subtitle 24 pt
Text 24 pt
Bullets level 2-520 pt
EUC 2006, Stockholm, Sweden 2006-11-0914
DEMODEMO