Hans Werner Bitzer1, Christian Gran2, and Klaus Hofrichter2
1 DeTeBerkom Voltastr. 5 D-13355 Berlin Germany Email: bitzer@deteberkom.de |
2 GMD
FOKUS Hardenbergplatz 2 D-10623 Berlin Germany Email: { gran, hofrichter}@fokus.gmd.de |
September 1996, Version 1.1
Abstract
This paper describes an experimental application of an MHEG
engine in the WWW environment utilizing CORBA distributed objects and JAVA
applet technology.
Keywords: MHEG Parts 5 and 6, real-time
audio&video, WWW, JAVA, CORBA
Introduction
The developments described in this paper, called MAJA
for short in the following, are part of the BERKOM project GLUE
(GLobal User Environment), a follow-up of the GLASS project (GLobally Accessible
ServiceS). GLASS designed and implemented a distributed interactive multimedia
system for delivery of real-time audio and video and other media types
based on the standard specified by ISO/IEC JTC1/SC29's Multimedia and Hypermedia
Expert Group (called MHEG).
The GLASS system, multiplatform and designed to be scaleable, comprised
content and application servers, session management and other general management
components (like accounting, data handling etc.) as well as a runtime environment
that could be completely implemented in a client terminal or split between
a server (running the runtime MHEG engine) and a terminal (running the
presentation services).
One of the major goals of the project was interoperability on several levels:
The GLUE project continues this general approach, taking into account the recent/relevant developments in the context of R&D, standardization and industries:
According to these developments, GLUE's focus is on the runtime environment
for real-time multimedia applications, i.e. MHEG-5/6 engine and supporting
presentation services, as well as on the underlying object retrieval and
stream control protocol, i.e. DSM-CC User-to-User. Technology developed
in GLUE will be fit to be integrated in DAVIC systems, and GLUE's participation
at the DAVIC Interoperability Event in New York, June 96, led to a first
real integration.
In the DAVIC context, where interoperability and audio-visual quality is
paramount, the choice of a standardized format that provides for handling
and synchronization of real-time streams seems to be the logical consequence.
In the Internet world, the predominance of a text-based format (HTML) and
its ongoing multimedia extension work combined with programmability (JAVA)
to enhance interactivity, is what everybody could have expected. In order
to work towards a convergence of global interactivity paired with non-guaranteed
real-time media quality enabled by the Internet as it stands today, and
the high-quality audio-visual services infrastructure specified by DAVIC
(being too expensive to be deployed globally at once), the GLUE project
also experiments with the integration of MHEG, JAVA, WWW and CORBA.
MAJA communication approach
Presentation services that are controlled by an MHEG-5
engine are distributed as JAVA applets and relate back in real-time to
the engine based on CORBA's client-server architecture and communication
mechanism.
A JAVA applet was implemented, which connects via the CORBA Internet Inter-ORB
Protocol (IIOP) to a server where a MHEG-5 engine is spawned on demand
of the client. This engine runs the MHEG-5 application specified in the
parameter of the applet. The MHEG-5 engine controls the display objects
of the applet while interpreting the MHEG-5 objects.The C++ implementation
of the MHEG-5 engine was extended by an IDL interface to its display component
- the presentation system. In addition a special loader was developed to
which an applet talks to in the first instance. The loader process handles
all the necessary steps to setup a JAVA client with a unique MHEG-5 server.
Figure 1: MAJA overview
The JAVA applet uses IONA's Orbixweb to communicate with a CORBA 2.0 compliant
ORB. The applet uses the bind-mechanism to connect to the loader object
which is exported by the loader process on the server. Once connected the
applet transmits its hostname and the name of the MHEG-5 scene. The loader
process creates an unique ID from the hostname and an internal counter
to identify this communication process. It returns the ID to the applet
and invokes a new MHEG-5 engine on the server which gets the ID and the
name of the scene as parameters. The then started MHEG5 engine exports
an MHEG-5 CORBA object under the given ID - the applet binds to this object
and uses two functions to transmit user events to the engine and to request
commands due (like "draw a bitmap") from the engine. The applet
loads all content data via HTTP, receiving the necessary URLs from the
engine.All user events are transferred from the applet back to the MHEG-5
engine. The engine interprets the events and transfers a bundle of new
commands (for example: the layout of a new screen) to the applet. This
is a real-time process which has proven a good turn-around behavior in
the Internet environment.
To establish a communication with the MHEG-5 server a JAVA client has to
follow this protocol:
Up to now the applet can display graphic objects and play sounds. Future developments will support video and audio streams. For this task we are experimenting with the DSM-CC protocol to control multimedia services. A DSM-CC extension for the MHEG-5 engine in C++ is available now. A DSM-CC extension for MAJA is considered as an appropriate way of real-time stream handling.
Requirements to run MAJA
Running MAJA requires a JAVA enabled browser, such as Netscape 3. The last version required to "reload" the applet from time to time due to improper exception handling. When loading one of the applets, the browser will start to download quite much JAVA classes, which consumes much time. Once loaded, the applets' performance is quite well. Further details including some test applets can be found at http://www.fokus.gmd.de/ovma/glue/maja .
Conclusion
The MAJA activity has proven that the combination
of JAVA applets and CORBA technology leads to client-server models with
a sufficient turn-around time for real-time communication. An applet can
be used as a client to display MHEG-5 objects which enables the integration
of MHEG into the WWW. This provides the opportunity to use the same MHEG
content on different platforms and in different environments.First tests
with DSM-CC have shown, that this is an appropriate protocol for (remote-)
control of multimedia servers.
References
[1] | ISO/IEC 13522-1, Information technology - Coding of Multimedia and Hypermedia information - Part 1: MHEG object representation - Base notation (ASN.1). |
[2] | ISO/IEC DIS 13522-5, Information technology - Coding of Multimedia and Hypermedia information - Part 5: MHEG Subset for Base Level Implementaion. |
[3] | ISO/IEC DIS 13522-6, Information technology - Coding of Multimedia and Hypermedia information - Part 6: MHEG Support for Enhanced Interactive Applications. |
[4] | ISO/IEC DIS 13818-6, Information technology - Generic Coding of Moving Pictures and Associated Audio - Part 6: Digital Storage Media Command and Control (DSM-CC), 1995. |
[5] | CORBA 2.0 OMG Technical Document PTC/96-03-04 http://www.omg.org/corbask.htm |