MHEG Applications Using JAVA Applets

Hans Werner Bitzer1, Christian Gran2, and Klaus Hofrichter2

1 DeTeBerkom
Voltastr. 5
D-13355 Berlin
Hardenbergplatz 2
D-10623 Berlin
Email: { gran, hofrichter}

September 1996, Version 1.1

Keywords: MHEG Parts 5 and 6, real-time audio&video, WWW, JAVA, CORBA


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:

  1. Bind to the loader object.
  2. Tell the Loader to invoke a new instance of the MHEG engine with its hostname and the name of the startup-file as parameters. Receive a unique identifier (ID) for the following communication.
  3. Bind to a MHEG-5 object using the received ID.
  4. Poll for initialization commands.
  5. On every user event transmit the event to the MHEG engine and immediately poll for new commands, which might occur as a reaction to the event. Repeat step 5 until the user stops the applet.
  6. On termination inform the loader to free the ID.

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 .


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.


[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