Intention of Event Based Components

Event Based Components (EBC) are the next step to design component oriented systems. The traditional component designs are most likely Injection Based Components (IBC) with unwanted bindings between the components. The goal of EBC is to create decoupled components by sending and recieving messages only.

There is no specific scope for EBC. EBCs are usefull on any level of software architecture. EBCs make possible a shift in viewing software design.

Main Facts
  1. The key feature of boards are wiring functional units
  2. Events are useful to sending messages
  3. There are no base types for messages
  4. A graphical description for EBCs is a wiring diagram
  5. A functional unit has zero or more pins (In or Out)

Key words

Terms and notation of EBC are rooted in electrical engineering. This is the simplest way to find or describe the terms.
  • Functional Unit,
  • Part,
  • Board,
  • Pin,
  • Message,
  • Wiring and
  • Wiring Diagram

Functional Unit
The base of all logical elements are functional units. Any kind of functional unit is described by one ore more contracts. A functional unit communicates with its environment via zero or more pins (see below).
interface IFoo {
    void In_ReciveMessage(InMessage message);
    event Action<OutMessage> Out_XYZ;

A part is the smallest functional unit in a hierarchy; it´s the leave of a tree of nested functional units. It is comparable to electronic parts. Parts performing only one task, one concern.

The Board connects a set of functional units. Thats it. Boards have no logical or functional job in EBC.

A pin is the connector between the functional units. The board uses pins for wiring the functional units. Two kinds of pins are defined, IN- and OUT-Pin.

  • Gets the message
  • The name beginns with "In"
  • Message parameter is not a "must have"
  • If there a message, so ensure it is only one
  • The return type of this pin is void; pins are procedures
void In_ReciveMessage(InMessage message);
void In_StartProcess();

  • Sends a message
  • Defined through event (multicast delegate) or single cast delegate
  • The name begins with "Out"
  • Message parameter is not a "must have"
  • Must have only 1 parameter; conforms to delegate Action<T> (or Action)
event Action<OutMessage> Out_XYZ;
event Action Out_XYZ;

Pins without parameters should be called trigger, (or signal).

Messages contains the sending data for functional units.

This is the act for connecting pins on a board. Is has no equivalent programming syntax or command.

Wiring Diagram
For conceptional viewing and designing of EBCs we use wiring diagrams, it is a proven method.

Last edited Jan 18, 2011 at 6:51 AM by slieser, version 4


No comments yet.