MFSM || glossary

Alexandre R.J. François
ARJF © 2001-2005

active pulse || cell || filter || FSF || handle || library || module || node || passive pulse || pulse || signature || source || stream

Active Pulse

A pulse carrying volatile data. Active pulses flow down streams.

Cell

Processing unit in the SAI architectural style. A cell must be connected to exacly one source for persistent shared memory access. A cell can be connected to exactly one upstream cell and an arbitrary number of downstream cells. Incoming active pulses are processed in parallel, asynchronously. The processing may result in the augmentation of the active pulse and/or update of the passive pulse. A cell is logically defined by its active and passive filters and its output.

Filter

A filter is an object that specifies a node type, a node name and eventual sub-filters corresponding to sub-nodes. The filter composition hierarchy is isomorphic to its target node structure.
Notation: nested square brackets, e.g.: [NODE_TYPE_ID "Node name" handle_string_id [...] ... ]; the handle ID string is optional; a star denotes an optional filter, e.g. [NODE_TYPE_ID "Node name" handle_string_id]*

Flow Scheduling Framework (FSF)

The Flow Scheduling Framework is an extensible set of classes that provide code support for the architectural abstractions defined by the SAI architectural style.

Handle

A handle is a pointer to a node in a pulse. Handles can be organized in composition hierarchies isomorphic to filter and node structures. A handle or composition hierarchy of handles is formed as the result of the filtering of a pulse's structure.

Library (Module Library)

A (module) library is a packaged group of related functional modules.

Module

A module is a set of cells and nodes which together implement a given functionality (or by extension a set of related functionalities). One or several related functional modules can be grouped into a library or a toolkit.

Node

Nodes are atomic data units. Data nodes in pulse structures are instances of a node type and have a unique name. The nodes constitute an extensible set of atomic data units that implement or encapsulate specific data structures.
Notation: nested parentheses, e.g.: (NODE_TYPE_ID "Node name" (...) ... )

Passive pulse

Pulse that encodes the state of persistent data in the application. Passive pulses are stored in sources. For example, process parameters must be persistent during the execution of the application: they must therefore be stored in a source, as part of a passive pulse.

Pulse

A pulse is a data structure holding synchronous. Pulses have a time stamp. Information in a pulse is organized as a mono-rooted composition hierarchy of nodes, referred to as the pulse structure.

Signature

The signature of a node instance is a unique identifier, combination of the node type and the instance name. It is used for run-time target node binding in filtering operations.

Source

Shared memory repository in the SAI architectural style. A source can be connected to an arbitrary number of cells which are then allowed concurrent data access to the data held by the source (passive pulse).

Stream

A stream represents one or several synchronized multimedia objects. Streams carry volatile data in active pulses. For example, the frames captured by a video camera do not necessarily need to remain in the application space after they have been processed: they are volatile data. Persistent data is stored in sources.

ARJF © 2001-2005