Robust Reconfigurable Erlang Component System ErlCOM - PowerPoint PPT Presentation

1 / 15
About This Presentation
Title:

Robust Reconfigurable Erlang Component System ErlCOM

Description:

ErlCOM extends Erlang with new abstractions (like OTP) ... ErlCOM's GME IDE allows design abstraction driven Erlang code production in Development-Time ... – PowerPoint PPT presentation

Number of Views:55
Avg rating:3.0/5.0
Slides: 16
Provided by: erl07
Category:

less

Transcript and Presenter's Notes

Title: Robust Reconfigurable Erlang Component System ErlCOM


1
Robust Reconfigurable Erlang Component
SystemErlCOM
  • Gabor Batori, Zoltan Theisz, Domonkos Asztalos
  • ETH Software Engineering Group

2
Why?
  • Robust
  • Fault tolerant, Highly available
  • Reconfigurable
  • Adaptability to environmental changes
  • Erlang
  • Ericssons preferred language ?
  • Component
  • Separation of functionality
  • Structured, reusable code
  • System
  • Application neutral framework

3
Component Model
  • Component, Composite Component Functionality
    Owner
  • Interface, Receptacle Interaction Point Owner
  • Binding Communication Owner
  • Component Framework Constraint Owner

4
Robust Component Model
  • Capsule Supervision Owner
  • Caplet Component Owner
  • Component Functionality Owner

5
Reconfiguration
  • Reactive behavior
  • Due to environmental changes (switch-over)
  • Due to HW/SW faults (fail-over)
  • Implementation
  • Reflectivity (observable)
  • Operational Facility (dynamic reconfiguration)

6
Basic concepts
Concept Erlang ErlCOM
Concurrent entity Process Component
Communication Message Passing Binding
State Local state information Reflective Repository
  • No reasoning about messages
  • Interception consists of pre/post actions ?
    synchronous communication

7
RUNES Example
  • Gateways represented by Capsules (running Erlang)
  • Middleware and Application Component Frameworks
    using the services of the Ubiquitous CRTK

8
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)

9
Implementation details(1)
  • Entity Relationship Diagram (ERD) generated
    Erlang Code

10
Implementation details(2)
  • Message Sequence Chart (MSC) Erlang Code (CRTK)

11
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

12
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

13
Our solution
  • Development cycle

Translator (Erlang Templates)
ERD,MSC
Generates
ErlCOM Structural Description
Application Code (Erlang)
Application (Erlang)
14
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 ?

15
Conclusion
  • ErlCOM extends Erlang with new abstractions (like
    OTP)
  • ErlCOMs Component System provides adaptive
    behavior to Erlang applications in Run-Time
  • ErlCOMs 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)
Write a Comment
User Comments (0)
About PowerShow.com