A brief overview of the multikit architecture

Programs

The entities manipulated by multikit (& shown in directories) are called programs (by analogy with "TV programs", not "computer programs"). Many programs are also channels, meaning that they are associated with an IP multicast address.

(More precisely, channels are associated with a GroupEId: an IP address, a port, and a scope (which in turn consists of a TTL and an optional encryption key). Also, strictly speaking, the IP address need not be a multicast address, although it usually is.)

A directory is a special kind of channel that has contents (a set of zero or more programs as members).

A bundle is a program that has contents, like a directory, but without an associated IP address. Bundles are used to group together other programs. Each announcement of a bundle includes all of its members.

Thus there are four basic types of program:

  1. directories
    examples: "Announcements", "SDP default directory"
    denoted by a "D" in the "type" column of itemized views
  2. (non-directory) channels
    example: audio-only SDP sessions
    denoted by a "C" in the "type" column of itemized views
  3. bundles
    example: SDP sessions that contain both audio and video
    denoted by a "B" in the "type" column of itemized views
  4. other (non-channels that are no bundles)
    example: The "README" message in the "Announcements" directory
    denoted by a "N" in the "type" column of itemized views

Attributes

Much of the information about a multikit program is contained in its attributes: a set of string names - each with an associated string value. Each program also inherits attributes from a parent program, as well as from the directories and bundles that it belongs to. (The roots of the 'parent' hierarchy are a set of four 'template' programs - one for each of the basic types of program described above.)

Perhaps the most important of a program's attributes is "invokedCmd". The value of this attribute is the command that gets executed whenever the program is launched. A separate document describes how developers can implement their own "invoked commands".

Security

The multikit security architecture is not fully implemented in the current alpha release. However it is anticipated that future versions will provide the following functionality:
Return to the main multikit page