• Aucun résultat trouvé

TINA is the predominant standardization effort in the area of MMC service provision. It is at the same time the most important multimedia RM-ODP system architecture, which makes it the ideal target for all RM-ODP related multimedia research. IMA-MSS is a first standardiza-tion effort for multimedia middleware. It adds multimedia-specific funcstandardiza-tionality to the basic CORBA object model and defines interfaces that facilitate the programming of distributed multimedia applications. The IMA-MSS virtual device could be expressed in TINA-ODL with a stream interface for every port, and with separate operational interfaces for device control and device-level stream control. The IMA-MSS virtual device can therefore be regarded as a specialization of the RM-ODP object, which can be a basis for the integration of IMA-MSS in the larger TINA framework. Medusa finally is an MMC framework like it is typically found in research. The main target of platforms like Medusa is the programming of MMC applications, and not the openness of platform interfaces, or standardization. This relieves such platforms from a lot of ballast, and explains the fact that it is much easier to program an exciting MMC application on the Medusa platform than on IMA-MSS or TINA. Another way to express the relation between TINA, IMA-MSS and Medusa is to say that an ideal MMC platform could be composed of these three architectures, with TINA providing the service environment, IMA-MSS a standard low-level component framework, and Medusa a comfortable programming environment.

TINA, IMA-MSS and Medusa were chosen here because they exemplify different develop-ment directions in the area of MMC platforms. The following sections provide a short over-view of other frameworks, of which most are similar in spirit to the three that were already presented. They are classified into three categories depending on their object model. The first section presents frameworks that are based on a standard object model, which is either the one of RM-ODP or the one of CORBA. The second section presents frameworks that define a pro-prietary object model, and the third section presents frameworks that only exhibit a rudimen-tary object model.

5.5.1 Frameworks Based on a Standard Object Model

One of the first researchers to work on multimedia extensions to ODP was Geoffrey Coulson from Lancaster University, who proposed a stream interface with QoS functionality and a syn-chronization service framework in his Ph.D. thesis [Coul93]. The distributed multimedia plat-form proposed by Coulson was implemented on top of APM’s ANSAware [vdL93], which is more or less an implementation of ODP. APM itself continues to work on multimedia exten-sions to the ANSAware as part of the Distributed Interactive MultiMedia Architecture (DIMMA) project [Otwa95a]. APM is engaged in RM-ODP, CORBA and TINA standardiza-tion.

Various research groups have started to implement aspects of TINA. An example for this is for instance the TANGRAM project at DeTeBerkom [Ecke96] in the course of which a TINA-C compliant DPE has been implemented that integrates various commercially available CORBA 2.0 implementations. Another example is the European ReTINA project [Bosc96] in which an industry-quality realtime DPE is going to be developed. APM and Chorus Systèmes are among the participants of the ReTINA project.

Xbind

The COMET group at Columbia University is working on a project called Xbind that is moti-vated by both IMA-MSS and TINA [Laza95]. Xbind recycles some of the abstractions of IMA-MSS, namely the concept of a virtual resource and a virtual device, and establishes net-work connections via switch management operations, as is done in TINA. Xbind focuses on resource management in ATM networks, for which it defines a whole set of new abstractions.

As for now, ATM features like virtual channel or path identifiers are directly visible in the vir-tual device interface [Laza96]. This would need to be changed in order to make the underlying ATM network transparent.

5.5.2 Frameworks Based on a Proprietary Object Model

Frameworks that do not build on a standard object model tend to be more interesting from the point of view of programming. Frameworks based on a standard object model are mostly found in the area of telecommunications, where the primary concern is to bring large volume media streams safely from a source object to a sink object. The frameworks presented in this section do no neglect QoS, but their focus is more on multimedia abstractions and on support for rapid application development.

Gibbs’ Multimedia Component Kit

The first framework that has to be mentioned here is the C++ multimedia component kit devel-oped by Simon Gibbs and others at the University of Geneva [dM93]. The media objects defined by Gibbs are active in the sense that they process multimedia streams in the absence of method invocations. Gibbs defines three kinds of media objects, namely producer, transformer and consumer, which are derived from the common base class component. Components have ports, with ports of different components being linked with connectors. Associated with ports are formats that describe the kind of media formats a component accepts on a port. Compo-nents, ports, connectors and formats are abstractions that are similarly found in most of the frameworks that have been discussed until now. What distinguishes Gibbs’ component kit from frameworks like Medusa or IMA-MSS is the definition of abstractions for media objects.

Gibbs defines a hierarchy for media classes consisting of a classMedia at the root, the classes Text,Graphic,Image and TemporalMedia derived fromMedia, and the classes Audio, Video,Music andAnimation derived from TemporalMedia. The primary interest of hav-ing a media class hierarchy is to bridge the gap between authorhav-ing and playback of stored mul-timedia presentations. The class Media contains the basic methods cut(), copy() and paste() which are applicable to all media objects. These methods are supplemented by more specific operations on media values further down the media class hierarchy that all together provide significant comfort in the authoring of multimedia content. Media classes and compo-nents share the format abstraction, making it possible to transmit and process media objects within a network of components, and to present them to users via consumer components. The multimedia component kit is described in detail in a book by Simon Gibbs and Dionysios Tsichritzis about multimedia programming [Gibb94]. In this book, Gibbs and Tsichritzis present many examples for advanced applications based on the component kit. The originality of these applications is that they deploy components not only for audio and video, but also for other media types like graphics and animation. This is a proof of concept that most other frameworks described in literature fail to deliver.

CINEMA

Another interesting framework is the Configurable INtEgrated Multimedia Architecture (CIN-EMA) that was developed at the University of Stuttgart [Roth94]. CINEMA defines abstrac-tions for components and ports similar to those of Gibbs. In addition to that it allows to build compound components from existing components that resemble the molecules known from Medusa. CINEMA supports stream synchronization via the clock hierarchy abstraction with which multiple streams can be synchronized to the same clock. An application editor has been implemented on top of CINEMA that allows to visually configure component networks in real-time.

Other Work

Other work that needs to be mentioned is the component-based authoring and presentation platform described by John Bates and Jean Bacon from the University of Cambridge [Bate94].

Their platform offers a configuration service that supports a simple scripting language for the setup and control of component networks. Robert Mines and others from the Sandia National Laboratories describe the Distributed Audio and Video Environment (DAVE) [Mine94]. DAVE features a connection management API in addition to a simple component model. J. Christian Fritsche from the University of Frankfurt defines a component model featuring a management interface in addition to the stream interface and the component control interface [Frit96].

David Tennenhouse and others from the Massachusetts Institute of Technology have realized the VuNet and VuSystem, a multimedia platform that is like Medusa based on the desk area network paradigm [Houh95]. All multimedia processing in the ViewStation is done in soft-ware, which is an optimal environment for component frameworks. The VuSystem defines simple module, port and payload abstractions, and uses an extended Tcl interpreter for the composition of module pipelines. Lawrence A. Rowe and Ketan Mayer-Patel describe the Ber-keley Continuous Media Toolkit (CMT), which is also using Tcl for the composition of appli-cations from components [MP97]. CMT supports the remote control of components via Tcl-DP RPC.

5.5.3 Frameworks Based on Rudimentary Object Models

None of the MMC platforms that are already deployed on a large scale is explicitly based on object-oriented principles. Wide-scale deployment, especially in commercial environments, requires standardization, and standard or pseudo-standard DOC platforms like CORBA, DCOM or Java RMI have not yet found a level of maturity that would make them acceptable for usage in strategically important ITU or ISO standards. There are also no real DOC tenden-cies to be seen in the various MMC standardization activities of the IETF, let aside the Web.

One reason for this is that the emphasis of MMC application development for the Internet is on robustness rather than software reuse. It can be expected that interest in DOC for MMC appli-cations on the Internet will grow along with the available bandwidth.

MBone

The network platform for MMC applications on the Internet is the Multicast Backbone (MBone) [Mace94]. The applications that are deployed on the MBone correspond in granular-ity roughly to components found in frameworks like Medusa or IMA-MSS. There is the Visual Audio Tool (vat) that handles audio, the WhiteBoard (wb) that supports shared drawing and slide distribution, the VIdeo Conferencing tool (vic), and a number of alternative audio or video tools. Although these tools are not based on an object model they must be considered as

components, simply because they can be composed to form different applications. The glue that holds these tools together for the moment is the session directory (sdr). Session announce-ments contain a description of the tools that are used for a conference, and when a user joins an announced conference the respective tools are automatically launched. Once implemented, the RTP Control Protocol (RTCP) [Schu96b] will allow standard control communication among the tools that participate in a session. Steve McCanne and Van Jacobson propose in their paper about vic [McCa95] a lightweight protocol for the coordination of the MBone tools running at a node. This so-called conference bus defines a small set of standard messages that are exchanged between the tools participating in a session via IP multicast sockets bound to the loopback interface. The voice-switched video windows of vic rely on activity messages sent by vat on the conference bus. Other functionality that can be provided by the conference bus is floor control, synchronization and hardware device access. Note that the internal structure of vic is based on module pipelines that are controlled via Tcl.

T.120/T.130 Conferencing

The T.120 and T.130 standards suites are today the dominant framework for multimedia con-ferencing on telecommunications networks [ITU94][ITU97]. The T.120 standards define the general conferencing and data exchange framework, to which the T.130 standards add audiovi-sual capabilities. An inherent assumption in T.120 is that all communication over the network is point-to-point. All multipoint capabilities of the architecture must therefore be provided by multipoint bridges, or Multipoint Control Units (MCU) in the terminology of T.120. The T.120 standards define an MMC application platform that supports the development of applications with features like the Generic Conference Control (GCC) and a Multipoint Communications Service (MCS). An interesting aspect of T.120 is that it standardizes application protocols.

This shows that the focus of T.120 is more on interoperability than on application portability.

The application protocols standardized until now are whiteboard and file transfer. Also sup-ported are non-standard application protocols, but T.120 does not specify a standard program-ming interface that would allow applications developed by third parties to be uniformly deployed on the terminal infrastructure of different vendors. The Generic Application Tem-plate (GAT) defined by T.121 might appear as something like a programming interface, but it is actually only a conceptual model for application protocols [ITU95]. It can nevertheless be expected that it provides a certain level of application portability between the T.120 toolkits of different vendors. Application protocols are implemented by Application Service Elements (ASE). T.120 allows a one-to-one mapping between ASE and applications, with the result that high-level applications can be constructed from low-level ASE. T.120 may therefore be consid-ered as a component framework.

InSoft OpenDVE

Insoft’s Communique!TM teleconferencing product is based on the company’s Open Digital Video Everywhere (OpenDVE) architecture [InSo94]. OpenDVE features an API that allows third parties to develop plug-ins on top of a generic conference engine. Available plug-ins can be orchestrated via a toolkit API.

Netscape Plug-Ins

Netscape plug-ins [Nets97] are components that extend the Netscape Web browser with inter-active multimedia capabilities. Plug-ins make it possible to use the Netscape browser for vide-oconferencing or other MMC applications. They may expose a control interface towards Java applets and scripts that are being executed by the browser.