The QuickTime for Java API introduces an abstraction known as a space. A space defines and organizes the behavior of objects and allows for the complex representation of disparate media types. Spaces provide a powerful and useful means to assemble and control a complex presentation.
You use a space to create a ``world'' that can be controlled dynamically from Java at runtime. This world could have certain characteristics that define how the objects exist and interact with others. Your application assembles the space with its objects or members and uses Java's event model to allow for user interaction with those objects. Because it is a dynamic environment, decisions about behavior and even which members belong to the space can be deferred until runtime. The Space interface, which is part of the quicktime.app.spaces package, provides the standard API that all spaces support.
QuickTime for Java controllers manipulate Java objects in spaces. These controllers can define the standard behavior for a group of objects by defining the behavior of objects over time, by monitoring objects, and by responding to user events. Controllers provide a uniform way of enforcing the same behavior on a group of objects. The behavior of a controller depends upon the support protocols defined by a space and by a controller itself.
The QuickTime for Java API provides a Controller interface and defines a protocol for the interaction between spaces and controllers. While the focus in this release of QuickTime for Java is in presentation, the architecture is general enough to be applied in the model space for generating data.