media streams along with basic synchronization mechanisms below a programming interface will speed up application development considerably. The introduction of a multimedia programming interface already separates an application and the media streams that it uses. One step further in this direction is to represent applications and media streams by entities that communicate by means of a control protocol. Here the programming interface is provided by the protocol entity on the application side. The entity on the media side executes media stream related application requests as part of control protocol procedures. The introduction of a control protocol allows to completely insulate application processing from media processing and in fact perform the two at different locations.
A terminal-based multimedia architecture
In our architecture, applications reside in application pools inside a network, whereas media processing is performed on multimedia terminals in the periphery. The central entities in application pools and multimedia terminals communicate by means of an application management protocol that includes procedures for starting applications in the pool or inviting terminals to participate in ongoing applications. A general multiparty application in an application pool brings together a number of terminals and controls them by means of a dedicated application control protocol. The application uses this protocol to establish connection structures among participating terminals and to control media acquisition and rendering in each of them. The application is also interactive in that it receives, processes and reacts to user input. Apart from control the application may also be the source of small amounts of multimedia data. High volume multimedia data on the other hand, like video, are thought to bypass the application pool on their way from one terminal to another.
The central entity in an application pool is the application manager. The application manager is the endpoint of application management connections and communicates with terminals on behalf of applications. The application manager acts on applications according to the result of application management procedures.
Applications are implemented in the pool on top of a programming interface. This interface builds on the services provided by the application control protocol as well as on the services provided by the application manager. An application has one application control connection to every participating terminal. An application may be distributed in the meaning that not only various terminals, but also various application pools are involved in it. To support this, the programming interface offers features for group communication.
A major feature of the proposed architecture is that it allows not only fast application development, but also fast deployment. Applications are implemented on the high level programming interface and need to be installed on central pools only; as soon as an application is installed on a pool it is available to a large number of terminals.
The central entities of a terminal are the terminal agent and the connection control. The terminal agent is the entity in the terminal that processes the application management protocol. It uses this protocol for instance to forward user requests to the application manager in the application pool. The connection control is the endpoint of application control connections. After an application has been started the terminal agent advises the connection control to accept a connection request from the respective application.
A terminal may accommodate various applications at a time. An application will therefore only control a subset of the terminal resources instead of the whole terminal. The resources of a terminal are modelled as objects upon which applications are granted control. Control over