Glossary

causal vector

A list of references to events (via their event ids) which caused a given event.

See Event for more.

channel
A communication domain participants of which exchange events in a broadcast communication style. Channels form a tree with respect to set-inclusion relations of their respective sets of participants. Channels are designated by scopes.
connector
Implementation of one function, e.g. sending of notifications, for a particular transport.
converter

Mechanism that transforms event payloads into data of a particular wire type and vice-versa.

See domain->wire converter and wire->domain converter.

converter selection strategy
A mechanism to select an appropriate converter for sending and receiving an event.
data type

The type (programming language dependent) of event payload.

Example(C++,protocol buffers,spread): IplImage* for the example above

domain->wire converter

Mechanism that transforms event payloads into data of the wire type that has an interpretation w.r.t. the wire schema. Uniquely identified by the triple

  1. domain type
  2. wire type
  3. wire schema

Example(C++,protocol buffers,spread): AbstractConverter<std::string>?

See Types for a list of well-known wire schema <-> data type mappings.

event

For events in RSB, see Event.

See [Luckham2001PEI] for a general treatment.

event id

Unique identifier of an Event.

See Event for more.

filter

A mechanism for selecting events which comply to some criterion from a set of events.

See transform.

informer
A kind of participant which publishes events.
inprocess

A kind of transport, which delivers events within one process (i.e. no inter-process or network communication).

See Inprocess Transport.

introspection
In the context of RSB, refers to automatically finding the participants of a running system and gathering information about them.
handler
A piece of client code attached to a listener which is called by RSB to process received events.
homebrew
A package manager simplifying the configuration, compilation and installation process for Unixoid software packages on MacOS X. Further information is available at: http://mxcl.github.com/homebrew/
listener

A kind of participant which asynchronously receives events.

See also reader.

local server

A kind of participant which provides methods that can be called by other participants.

See also remote server.

meta-data
event meta-data

In the context of RSB, meta-data refers pieces of data attached to events in addition to the payload.

See Timestamps, User-defined Meta Data, Cause Vector.

method field

A data field in RSB events which specifies the role of a given event within a communication pattern. For example, the request/reply communication pattern uses the values "REQUEST" and "REPLY".

See Method for more.

notification

transport -specific message that contains

  • event meta-data
  • wire schema
  • (wire type, wire schema) representation of payload Note: does not contain domain type of event payload
participant
Any entity that communicates via the bus is called a participant. Typical participants are listeners which receive events and informers which publish events.
payload
event payload

Domain object (programming language dependent) that is associated with an event.

Example(C++,protocol buffers,spread): an object of type IplImage*

plugin

A particular extension of RSB’s functionality, such as a transport implementation or a converter, packaged as runtime-loadable code.

See Plugins.

reader

A kind of participant which synchronously receives events.

See also listener.

remote server

A kind of participant which is able to call methods provided by local servers.

See also local server.

scope

Descriptor for a channel of the unified bus. The channel is itself hierarchical, hence the scope also reflects this structure.

See Scope.

sequence number

A positive integer associated to each event which indicates the order of all events published by a particular informer.

See Sequence Number.

Spread
The Spread group communication framework is one the transports RSB can use. It is available as a plugin.
Spread daemon
A network server used by Spread to coordinate communication of clients and exchange data. Usually installed under the name PREFIX/sbin/spread.
subscope

A given scope has a potentially infinite number subscopes. All events visible in a subscope of a scope are visible in the scope itself.

For example, /a/b is a subscope of the scope /a.

See superscope, Scope.

superscope

A given scope has zero or more proper superscopes. Each superscope has the property that all events visible in the original scope are also visible in the superscope.

For example, / is a superscope of all scopes and proper superscope of all scopes except / itself. /a/b is a proper superscope of /a/b/c, /a/b/d, /a/b/c/d, etc but not /a or /a/c.

See subscope, Scope.

transform

A mechanism for modifying events.

See filter.

transport
transport mechanism

Mechanism for transporting notifications from their origin to their destinations. Most transports correspond to a network protocol.

See Transports.

wire schema

Layout/structure of serialized representation of event payload.

Example(C++,protocol buffers,spread): specified by ImageMessage protocol buffer descriptor

wire type

Container type (programming language dependent?) of serialized representation of event payload (specific for a port type).

Examples

  • C++,protocol buffers,spread: unsigned char*
  • Java,xmpp: XMPP message as DOM tree
wire->domain converter
See domain->wire converter.