• Aucun résultat trouvé

The anatomy of the multimedia terminal can be described in terms of its interfaces. The fol-lowing introduces the major interfaces of the multimedia terminal, namely the interfaces of the terminal control, the applet handler and the stream agent. The complete set of interfaces, along with the most important operations and types, will be presented in the following two chapters.

6.5.1 Terminal Control

Figure 6.5 shows the interfaces of the terminal control. The terminal control interacts with remote applications and application pool utilities, and with local terminal servers, control pan-els and terminal applications. The public terminal interface to the outside isTc::Terminal. This interface allows applications to invite the currently logged user to participate in an

appli-cation session.Tc::Terminal also contains attributes that allow applications or other users to retrieve information about the terminal and the currently logged user. More functionality is not necessary in this interface, because once the terminal participates in an application session it will offer additional interfaces to the application.

The principal interface visible to control panels is Tc::PanelTerminalControl. This interface allows users to register with the terminal, to respond to invitations, and to find out about the applications that are currently running on the terminal. On registration, the control panel receives an object reference to the interfaceTc::ApplicationControl which allows it to start an application in an application pool, or to join an already existing application ses-sion.Tc::PanelTerminalControl contains an operation that allows control panels to reg-ister for terminal control events. Events are conveyed to control panels via the CORBA event service. This makes it possible to run multiple control panels on top of the terminal control that are all kept up-to-date about the state of the terminal.

The terminal control creates a user session object for every application in which the termi-nal participates, as is indicated in Figure 6.5. This object has three interfaces, namely Tc::

UserSession, Tc::ApplicationControl, and Tc::TerminalControl. The interface Tc::TerminalControl is the terminal control as perceived by an application. This interface can be accessed by the application in the application pool as well as by its local representatives running in applet handlers. Its operations allow applications to create terminal servers like applet handlers and stream agents, to get access to the naming service, to test terminal compat-ibility, and to synchronize activities in different terminal servers. Applications also use this interface to communicate important events to the terminal control, with an example being an imminent application termination. Applications that want the terminal to start or join other applications can retrieve a reference to a Tc::ApplicationControl interface via Tc::

TerminalControl. An example for this is the yellow page application that allows users to browse through the offers of a service gateway or application pool. The yellow page applica-tion is able to start selected applicaapplica-tions directly via its Tc::ApplicationControl inter-face, which means that a user can start an application without ever touching its identifier. The start and join operations of theTc::ApplicationControl interface return a reference to the interfaceTc::UserSession. This interface contains operations for the compound control of applications, and allows to find out about the terminal servers that the application is currently

Figure 6.5. Terminal control interfaces.

running on the terminal. TheTc::UserSession interface of a session object is hidden from all applications with the exception of the eventual parent application. It is visible to control panels, which allows them to monitor the activities of an application, and to control them.

Also shown in Figure 6.5 is theTa::Management interface of the terminal control that is accessed by the terminal management. This interface is considered to be an integral part of APMT, but it has not been defined yet.

6.5.2 Applet Handler

Figure 6.6 shows the interfaces of an applet handler. An applet handler is a shell for the applets that the application executes on the terminal. It is created via the Tc::TerminalControl interface, and exposes an interface derived from the generalTs::TerminalServer interface, which contains operations for the compound control of terminal servers. This interface is accessed by both the terminal control and the application, as is indicated in Figure 6.6. An applet handler can receive an applet as parameter to an operation in its interface, or it may load it from a server in the application pool for which the application supplies an object reference.

The exact mechanism depends on the language in which the applet is implemented. Applets are executed on top of a secure system services API that hides the operating system of the ter-minal. This API provides ways for the applet to find out about the environment in which it is running. It allows to retrieve the object reference to Tc::TerminalControl, and may also allow to retrieve references to objects in the application. Once activated the applet may instan-tiate objects that it advertises via the naming service to other terminal servers. It creates a graphical user interface and forwards user input that it cannot process locally to the parent application in the application pool.

An applet may have a very tight relationship with its parent application, in which case it is just a sensor, or it may be completely decoupled from its parent application, in which case it is an application in its own right.

Figure 6.6. Applet handler interfaces.

Terminal Server

Ts::TerminalServer

Applet Handler

Applications and Naming Service

Terminal Control

Terminal Boundary

Applet

Secure System Services API

Application Pool Utilities

Application Specific

Object

Application Specific

Object

6.5.3 Stream Agent

Figure 6.7 shows the stream agent and some of the multimedia middleware objects that it con-trols. The interface of the stream agent, Strag::StreamAgent, inherits from Ts::Termi-nalServer and is accessed by both the terminal control and the application, as is the case with all terminal servers.

The unit of multimedia processing functionality in APMT is the device. Devices have ports that are interconnected by untyped device connectors. Devices and device connectors have a public interface towards applications and control panels, and a hidden management interface towards a graph that controls them. Devices, device connectors and graphs inherit from inter-faces defined by the CORBA relationship service. This allows applications, control panels, and devices to navigate the relationships within the graph and to discover its topology. All devices inherit from the abstract interfaceBas::Device. Two different kinds of device connectors are defined which offer different levels of control. Both of them inherit from the abstract interface Bas::DeviceConnector. Control over a graph is provided via the interface Tgraph::

Graph. This interface contains operations for the compound control of graphs and for graph modification. A graph can be created with a call to the create_graph() operation in the Strag::StreamAgent interface. Devices and device connectors are added to it with calls to theadd_objects() andcommit() operations inTgraph::Graph.

Device connectors can only connect the ports of devices that are situated inside the same terminal. Their IDL interface does not provide much more functionality to the application than the possibility to choose the device ports that are to be connected. The way this is done is com-pletely hidden from applications, and may for instance involve the establishment of network connections if the terminal consists of more than one network node. The application on the other hand is responsible for connecting the network ports of devices located in different termi-nals. This is a task that it will usually delegate to special connection managers in the applica-tion pool.

Figure 6.7. Selected multimedia middleware interfaces.

Applet Handler

Strag::StreamAgent

Stream Agent

Application and Application Pool Utilities Control Panel

Terminal Control

Terminal Boundary

Graph

Device Device

Device

Bas::Device

Tgraph::Graph De

vice Cxtor

Device Cxtor Bas::DeviceConnector