17
A LEGO-like Lightweight Component Architecture for Organic Computing Thomas Schöbel-Theuer, Universität Stuttgart [email protected]. de www.athomux.net

A LEGO-like Lightweight Component Architecture for Organic Computing

Embed Size (px)

DESCRIPTION

Thomas Schöbel-Theuer, Universität Stuttgart [email protected] www.athomux.net. A LEGO-like Lightweight Component Architecture for Organic Computing. Outline. The LEGO principle: (almost) arbitrary combinability - PowerPoint PPT Presentation

Citation preview

Page 1: A LEGO-like Lightweight Component Architecture for Organic Computing

A LEGO-like Lightweight Component Architecture for

Organic Computing

Thomas Schöbel-Theuer, Universität [email protected]

www.athomux.net

Page 2: A LEGO-like Lightweight Component Architecture for Organic Computing

Outline

● The LEGO principle: (almost) arbitrary combinability

● How to control that?=> Strategy Representations=> Organic Properties

● Explicit Reasoning / Transformations=> Instance Orientation

● Prototype: Athomux

Page 3: A LEGO-like Lightweight Component Architecture for Organic Computing

LEGO Principle

● Examples: LEGO, Fischertechnik, FESTO, Bosch-System Fördertechnik, ...

● Key property: low number of interfaces=> Obvious Advantages!

● Next logical step after Component Software

Component Software LEGO-like Software (“Brickware”)

deals with (Object/Source)-Code

allows Extension of Functionality

where?

Brick instances

Extension of System Structure(of existing Application) (ease creation of new applications)

at predefined plug-in points (potentially) at any point

Page 4: A LEGO-like Lightweight Component Architecture for Organic Computing

Example

Execution layer of the Athomux filesystembricks ≅ transformers on instances of a memory abstraction

bricks may be stateless

Page 5: A LEGO-like Lightweight Component Architecture for Organic Computing

Advantages of Brick Systems

Insert bricks for replication, transactions / recovery, mobility, ... at any point of the execution layer

Page 6: A LEGO-like Lightweight Component Architecture for Organic Computing

Control by Strategy Level

● Allows formal reasoning on system structure:=> organic properties (self-management /organization / healing, adaptation, ...)

● Modularization at strategy level (LEGO...)● Multiple Views / Transformations in parallel:

==> Instance Orientation

Page 7: A LEGO-like Lightweight Component Architecture for Organic Computing

Example: Virtual Computeron a Network

Full replication => maximum redundancyPartitioning => local control

Page 8: A LEGO-like Lightweight Component Architecture for Organic Computing

Implementation: Athomuxwww.athomux.net

● Infrastructure / Preprocessor / brick description language (superset of C)

● Prototype of a filesystem with strategy bricks for automatic path instantiation

● Prototype of rudimentary Posix emulationopen(), close(), read(), write(), fork(), exec(), ...

● Simple shell runs binaries statically linked with uClibc

Page 9: A LEGO-like Lightweight Component Architecture for Organic Computing

Strategy Representation

● brick=adapt_meta {● attr transfer_size=4096● input==in {● connect in=3000:out● }● output==out {● connect out=5000:in● }● }

Page 10: A LEGO-like Lightweight Component Architecture for Organic Computing

Future Work

● Network transparency: automatically insert remote / mirror bricks at the execution layer, but hide them at a virtual system view:=> network location transparency=> automatic migration=> crash recovery, load balancing, ...

● Transaction bricks => insertable at any position => make any part of the system recoverable

● More organic properties ...

Page 11: A LEGO-like Lightweight Component Architecture for Organic Computing

Conclusions

● LEGO principle: next step after component software

● Explicit reasoning on system structure=> achieve organic properties

● Instance orientation: multiple views in parallel● Athomux prototype: www.athomux.net

– Preprocessor: brick description language,superset of C

– Runtime environment for bricks, good performance– Filesystem and rudimentary Posix emulation

=> Platform for experiments with organic computing

Page 12: A LEGO-like Lightweight Component Architecture for Organic Computing

Example Brick Code

● brick #selector● purpose Select a part of a nest● desc● Incomplete demo implementation● enddesc

● input :<in

● output :>out

● data {● addr_t offset;● len_t len;● }

● operation $get,$put,$transfer,$wait● {● addr_t copy_addr = @log_addr;● @log_addr -= @>offset;● if (@log_addr >= 0 &&

@log_addr+@log_len <= @>len) {● @=call :<in$op @args;● }● @log_addr = copy_addr;● }

● operation $output_init● {● // @>offset = ... ; @>len = ...;● @success = TRUE;● }

Page 13: A LEGO-like Lightweight Component Architecture for Organic Computing

OS Example

remote may be inserted at any point

Page 14: A LEGO-like Lightweight Component Architecture for Organic Computing

Emulation of AOPby Instance Orientation

Page 15: A LEGO-like Lightweight Component Architecture for Organic Computing

Automated (Formal) Reasoning

is equivalent to

Page 16: A LEGO-like Lightweight Component Architecture for Organic Computing

Performance in Distributed Systems: Optional Locking

Spatial locality => better performance

Page 17: A LEGO-like Lightweight Component Architecture for Organic Computing

Communication Paradigm as Special Case of Optional Locking