Slide title In CAPITALS 50 pt Slide subtitle 32 pt Robust Reconfigurable Erlang Component System ErlCOM Gabor Batori, Zoltan Theisz, Domonkos Asztalos ETH 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 pt EUC 2005, Stockholm, Sweden Why? Robust –Fault tolerant, Highly available Reconfigurable –Adaptability to environmental changes Erlang –Ericsson’s preferred language Component –Separation of functionality –Structured, reusable code System –Application neutral framework
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 pt EUC 2005, Stockholm, Sweden Component Model Component, Composite Component – Functionality Owner Interface, Receptacle – Interaction Point Owner Binding – Communication Owner Component Framework – Constraint 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 pt EUC 2005, Stockholm, Sweden Robust Component Model Capsule – Supervision 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 pt EUC 2005, Stockholm, Sweden Reconfiguration Reactive behavior: –Due to environmental changes (switch-over) –Due to HW/SW faults (fail-over) Implementation: –Reflectivity (observable) –Operational Facility (dynamic reconfiguration)
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 pt EUC 2005, Stockholm, Sweden Basic concepts *No reasoning about messages **Interception consists of pre/post actions synchronous communication ConceptErlangErlCOM Concurrent entity ProcessComponent CommunicationMessage Passing* Binding** StateLocal state information Reflective Repository
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 pt EUC 2005, Stockholm, Sweden RUNES Example Gateways represented by Capsules (running Erlang) Middleware and Application Component Frameworks using the services of the Ubiquitous CRTK
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 pt EUC 2005, Stockholm, Sweden Erlang Mapping Component gen_server Interface/receptacle gen_server Binding gen_server Pre/post action process Capsule erlang node, gen_server Caplet gen_server, supervisor Reflective Repository mnesia CRTK module (floating reflective API)
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 pt EUC 2005, Stockholm, Sweden Implementation details(1) Entity Relationship Diagram (ERD) + generated Erlang Code
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 pt EUC 2005, Stockholm, Sweden Implementation details(2) Message Sequence Chart (MSC) + Erlang Code (CRTK)
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 pt EUC 2005, Stockholm, Sweden What we have learnt? Entity Relationship Diagram helps identify concepts MSC helps describe dynamics Erlang provides versatile platform for component based systems Current implementation provides a feasible proof of concept for RUNES CRTK. BUT, the implementation code is COMPLEX
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 pt EUC 2005, Stockholm, Sweden How to reduce complexity? Custom libraries (API design) –Code maintenance problem (version handling) Custom behavior (language design and virtual machine) –Too intrusive, too costly Generative Programming (meta-modeling, modeling and transformation design) –New design approach Domain Specific Language engineering and supporting IDE needed
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 pt EUC 2005, Stockholm, Sweden Our solution Development cycle ERD,MSC ApplicationCode(Erlang)Application(Erlang) ErlCOM Structural Description Generates Translator(ErlangTemplates)
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 pt EUC 2005, Stockholm, Sweden Generic Modeling Environment (GME) NOT object-oriented, NOT UML Supports multi domain modeling Meta-model aware graphical editor Supports transformation frameworks Freely available, Open Source, BUT industry quality Perfect match to Erlang
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 pt EUC 2005, Stockholm, Sweden Conclusion ErlCOM extends Erlang with new abstractions (like OTP) ErlCOM’s Component System provides adaptive behavior to Erlang applications in Run-Time ErlCOM’s GME IDE allows design abstraction driven Erlang code production in Development-Time Should not be used in application development where the Erlang abstraction level is perfectly sufficient (ErlCOM is a component based adaptive extension)