A LEGO-like Lightweight Component Architecture for Organic Computing

Thomas Schöbel-Theuer, Universität Stuttgart

schoebel@informatik.uni-stuttgart.de

www.athomux.net

Outline

The LEGO principle: (almost) arbitrary combinability

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

Explicit Reasoning / Transformations
=> Instance Orientation

Prototype: Athomux

LEGO Principle

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

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

Next logical step after Component Software

Example

Execution layer of the Athomux filesystem

bricks ≅ transformers on instances of a memory abstraction

bricks may be stateless

Advantages of Brick Systems

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

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

Example: Virtual Computer
on a Network

Full replication => maximum redundancy

Partitioning => local control

Implementation: Athomux
www.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 emulation
open(), close(), read(), write(), fork(), exec(), ...

Simple shell runs binaries statically linked with uClibc

Strategy Representation

brick=adapt_meta {

attr transfer_size=4096

input==in {

connect in=3000:out

}

output==out {

connect out=5000:in

}

}

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 ...

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

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;

}

OS Example

remote may be inserted at any point

Emulation of AOP
by Instance Orientation

Automated (Formal) Reasoning

is equivalent to

Performance in Distributed Systems: Optional Locking

Spatial locality => better performance

Communication Paradigm as Special Case of Optional Locking

2004-09-19T14:21:03