Design Requirements and notes [draft, tbd]

(For clarification of terms such as processor, model and application in this context, see deliverables.)

Application Domains

SMIL NG and ANSI/NISO Z3986 (which is a SMIL 2 Application) are the primary targeted specifications.

The processor model makes heavy use of principles of abstraction in order to:

Functionality

The top-level use case is authoring of content adhering to the specifications mentioned above.

Rendering/Playback ability of multimedia is likely to become a bonus feature of the processor, but is not a formal deliverable.

Use-case collections are provided from user communities and other sources; the processor is designed so that a surrounding application can implement these use cases using the processor.

Processor Design Patterns

The processors model uses of design patterns wherever appropriate, in order to maximize transparency of the processing logic.

Examples:

The model uses bridge and/or mediator patterns in order to make the processor agnostic to surrounding libraries. For example, an application should be able to connect various multimedia frameworks (DirectShow, JMF/FFMPEG, QuickTime) without syntactical variation.

The model uses façade patterns in order to expose an easy-to-use API to application developers. Façades are also used where appropriate in order to facilitate within-processor sub-component interaction.

The model uses observer/listener patterns in order to feed state-change and other events to loosely coupled classes.

Processor Implementation Languages

The Processor Model (and its API) presupposes implementation to be done in fully object oriented programming languages.

The Processor Model and its API is programming language independent. For example, multiple inheritance is only supported by a subset of the fully object oriented languages; therefore, the model does not include multiple inheritance constructs.