Go up to The CONCERT Architecture
Go forward to Application Programming Interface
Our mental model of a distributed education session is inspired by the SPMD (single program, multiple data) model of parallel processing where a single program is executed on multiple processors, asynchronously in principle but synchronized at exactly specified points.
The model is based on the following concepts whose relationship is explained below (see the following figure):
Each player may participate in a concert by providing her credentials for a particular player ensemble, receiving the program score and executing the part of the score corresponding to the ensemble.
In such a model of a distributed educated sessions, the part of the lecturer may be twofold:
A concert consists of the execution of multiple instruments; for each member of a player ensemble, the same set of instruments is available: a monitor may be only available for a single participant (the lecturer), a slide presentation component may be available for all participants; an audio component may be available only for the lecturer (sender-side) and for the remote participants (receiver-side) because the local participants hear the lecturer anyway.
An instrument ensemble may operate in two modes:
Different instruments of an ensemble may be designated leader in the course of the time, e.g. control of a whiteboard component may be switched from the lecturer to a student and back.
The execution of concert score if for each player restricted to the part of her ensemble only. Each instrument runs as a parallel process whose start and termination is triggered by the score. Moreover, the score may switch the operation mode of a instrument from leader mode to independent mode and vice versa (possibly designating a new leader). Furthermore, the score may invoke special instrument operations such as hiding a window and showing it again.
Synchronization between different instrument ensembles is based on the concept of beat sequences (see the figure above). Each instrument ensemble has associated to it a sequence of (not necessarily uniquely) named beat signals. This sequence is generated by the respective leader of the ensemble (when in independent mode, no beats are generated). An instrument ensemble may wait for the next beat generated by another ensemble or it may wait for a specifically named beat from that ensemble (and skip all other beats).
Synchronization between instrument ensembles takes place on an individual basis: each instrument retrieves an independent copy of the beat sequence of the ensemble it synchronizes with. This has the following consequences:
Both features are important in realistic application contexts.
Communication between instruments takes place in the following way:
Database objects are addressed by qualified identifiers; by incorporating its particular identity as an identifier component, different instruments of an ensemble can retrieve/store different objects. Updates in the database must be synchronized using beat sequences as described above.