MHEG in Java -- Integrating a Multimedia Standard into the Web

Lars Geyer, Michael Baentsch, Lothar Baum, Georg Molter, Steffen Rothkugel, Peter Sturm
Computer Science Department
University of Kaiserslautern
D-67653 Kaiserslautern, Germany.

Abstract:

This paper presents the Java implementation of the ISO standard for network-based multimedia document representation, MHEG. The experiences with MHEG, Java, and the Web as made during the development of this truly platform-independent prototype are reported . In particular, MHEG offers features that are also considered to be advantageous for the Web, such as resource accounting hooks, an enhanced client-side event handling model, and a standardized application framework for kiosk-like systems. The extent to which an MHEG implementation can benefit from the facilities present in the WWW is highlighted as well. In summary, this paper proposes a way to somewhat decouple the technological enhancements with respect to multimedia document presentation on the Web from the actual authoring of such scenarios. This approach aims at helping to preserve investments in the area of network-based multimedia document presentations.

1. Introduction

Originally, multimedia was but one element of the Web's design, meant as a support technology for the presentation of technical content in a research environment. Over time, however, multimedia has become one of the cornerstones of the marketing hype surrounding the WWW. Standards have been broken just to make Web pages colorful, loud, and animated. The advent of technologies like Java, Plugins, and ActiveX supported the capabilities of every service provider to make Web pages stand out from the rest of the pack. Thus, over time, Web browsers have become the memory and CPU monsters they often are today.

During the past years -- starting actually even before the Web was born -- an international standard for the description of multimedia scenarios with a distinct focus on easy-to-use, low-end graphical terminals has been developed by the International Organization for Standardization (ISO). Its core design consideration has been driven by the kiosk metaphor of user interface design especially useful to particularly easy to access devices equipped with touch-screens. The standard evolved and matured over time until it became useful as the foundation for business research. The Multimedia and Hypermedia Experts Group (MHEG) standard is by now one of the serious contenders for the integration of kiosk information systems, TV sets, or video-on-demand servers for set-top boxes.

With respect to its networked nature and the type of information presented, MHEG has to live up to the WWW. In several areas it compares favorably, in others it does not. However, this standard offers one advantage: It is the stability of investments in Multimedia scenarios developed at any one time. MHEG multimedia scenarios are developed once and need not be modified as new or more powerful presentation capabilities become available. In contrast to this, content that was created for the Web a year ago looks pale by now and has to be redone. This rework will become more important with the advent of ever more powerful presentation facilities in Web browsers. New plugins might have to be developed, new HTML code written or generated, or new Java code has to be realized to accommodate a change in the favorite browser's API. This is a waste of resources that might be spent much more sensibly in the creation of new content. This danger is not present in MHEG because the semantics of description elements may not change and new elements may not be added as simply as has been the case with HTML. MHEG was designed with the option in mind to dynamically enhance presentation semantics in a way comparable to the recently implemented Style Sheets do for the Web.

The huge installation base of the WWW attained over time suggests its clear dominance of the network application market for multimedia document presentation. With the integration of a hardly changing scenario description and execution environment as specified by MHEG, one of the most promising developments for enhancing the Web and for supporting the document providers in this particular market may be given.

The integration of this ISO standard into today's Web is the main focus of this paper. It is shown that a set of not overly sophisticated Java classes is all that is needed to bring a commercial-grade standard to (nearly) everybody's favorite Web browser containing an engine for running SunSoft's Java code. Due to the maturity and familiarity Java has attained over the course of the last two years, Java will not be featured particularly in this paper, as many papers and books have been written on that subject. For those not as familiar with this technology, some pointers to introductions and in-depth presentations are given in the literature appendix of this paper.

Thus, this paper is structured as follows. The ensuing section contains a brief overview about some of the key features of MHEG. One project is presented that had been using MHEG and which spurred the work presented in this paper. In particular, a short overview about an earlier gateway between the WWW and MHEG is revisited with a distinct focus on its problems. Section 3 contains a discussion of the design decisions made during the development of this system, as some of them have been influenced by the features of either the Web or the MHEG system. A hands-on example of MHEG at work is contained in section 4, including a more detailed presentation of the implementation issues. Section 5 lists some of the essential problems and advantages that surfaced when realizing this integration of MHEG and the WWW. It also provides an overview on further work to be done in this field. The paper concludes with a section on comparable technologies seen on the Web.

2. MHEG

ISO's MHEG standard defines an object-oriented model for the presentation of multimedia applications. The first part of the MHEG standard suite [MHEG-1] is the oldest and most fundamental. It describes the core hierarchy of classes which are dedicated, e.g. to containing simple media data like audio and video clips, or to holding information for the synchronization of different media objects. The combination of such media objects make up an MHEG application. MHEG applications are processed by so-called MHEG engines, which are responsible for the interpretation and presentation of the objects, and for triggering the object's actions. Since the class hierarchy defined by MHEG-1 is very abstract, a concrete MHEG system has to refine specialized classes which describe the structure of the multimedia applications used by the system.

Over time, additional parts have been added to the MHEG standard. Most of them define mechanisms of MHEG presentations in greater detail. One example is the specification of a script language to be used in an MHEG engine to execute more complex operations than those made available by the core MHEG classes.

MHEG-5

Currently, the standard comprises a total of 6 parts, with part 5 [MHEG-5] refining and extending the class hierarchy of part 1. The difference between these hierarchies can be seen in the level of abstraction. Containing a variety of specialized classes ready to immediately handle concrete types of media, the MHEG-5 hierarchy is ready to use without the need for further specialization.

The structure of an MHEG-5 multimedia application is well defined. The application itself is represented by an object of the type Application. The different components of the application are separated in scenes, with each scene being represented by a Scene object. At any one moment, only one Application and one Scene object can be active. All MHEG objects are part of an Application or a Scene object. Since all objects are grouped in either object, the unit to be transferred over the network is either a complete Application or a Scene object. In addition to the object types, MHEG-5 defines a set of states for each MHEG object: active, available, or not available. Newly downloaded MHEG objects are initially in the state not available. With the allocation of required resources -- including the download of media data or the set-up of the data stream if necessary -- an object can make the transition to the state available. By making the transition to the active state, the object is presented to the user.

The actual presentation is driven by system-generated events. Such events can be either internal, e.g. resulting from an expired timer, or external due to an interaction with the user. Each event has a source and a type. The source is represented by an MHEG object which is responsible for the creation of the event. The type is chosen from a list of different events an MHEG-5 engine can handle. Objects of an MHEG application communicate via special Link objects. These Links contain a list combining events with so-called elementary actions. Whenever a registered event occurs, the corresponding action is performed and the Link is said to "fire". The elementary actions are calls to methods provided by the MHEG classes. With these actions the MHEG engine can influence the state of the objects of an MHEG application.

All modifications to the state of an object are triggered by events. The only exceptions are special objects which can directly interact with the user. Such objects (namely objects of type Interactible) process the raw input delivered from the underlying window system. In all other cases the MHEG engine generates MHEG events representing preprocessed input.

3. GlassWWWay

The GLASS project (GLobally Accessible ServiceS) [Hof94] initiated by German Telekom's research subsidiary DeTeBerkom developed a system with the goal to offer different services like video on demand, interactive TV, or online shopping in one coherent, easy-to-access, directly manipulative user interface. The presentations within this system have been encoded with MHEG (1).

The GLASS system consists of four components. The communications agent (CA) and the user interface agent (UIA) reside on the client side. The CA is responsible for the interpretation of the MHEG objects and therefore contains an MHEG engine. The UIA's task is to present the multimedia data to the user according to the instructions of the CA. On the server side, the session management agent (SMA) and the content store (CS) provide access to the data of the multimedia application. The SMA contains the MHEG objects of the GLASS system, and the CA uses a network connection to retrieve the objects from the SMA. The CS server manages the media data. The UIA retrieves the data from the CS over a separate network connection.

During participation in the GLASS project, which was based on the MHEG-1 standard, our research group developed a gateway (GlassWWWay) making it possible to use the services offered by the GLASS system with a usual WWW browser. This development took place more than two years ago -- at a time WWW browsers did not have mechanisms to run additional program code on the client side. This led to the use of the CGI mechanism for the development of the gateway.


Figure 1: The Architecture of GlassWWWay

The original design consisted of three components (Figure 1), of which the first one embodies a usual WWW browser. The user had to start an MHEG session with this browser via a CGI script executed on the WWW server. The WWW server and a set of special-purpose GLASS clients made up the second component, with GLASS clients and WWW server communicating via the CGI mechanism. The GLASS clients were modified to create HTML output instead of instructions for the local window system. The HTML output was then sent directly to the browser. The third component consisted of the unmodified GLASS server which communicated with the GLASS clients over a network connection.

This design, limited by the comparatively inferior browser technology at that time, resulted in a number of problems. A first one arose from the fact that MHEG presentations have to be converted to HTML documents on the fly. This necessity originates from the state-based design of the kiosk-like client software upon which the GlassWWWay was built. Furthermore, MHEG uses absolute positioning and a layer stack to present objects on top of each other. In order to mimic this behaviour in the GlassWWWay system, the only feasible way was to create JPEG images on the fly containing a complete, possibly complex scene consisting of several images all coalesced into one. This resulted in computationally expensive image operations on the server and in heavy network traffic, since every change in the scene required the creation and the transfer of the image which made up the scene. Only the high computing power provided by the DEC AlphaStations used in the project made this implementation work reasonably fast.

A second problem not inherent to the initial design arose from the fact that MHEG uses many more events than a WWW browser can recognize. No working solution has been found for this problem as hypertext browsing without active interaction with other programs on the client side is inherent for the original Web model.

As a result of this design based on unsophisticated browsers in use two years ago, we already made at that time the case for WWW browsers which can execute scripts on the client side [BaR95]. This has been considered as a prerequisite for a much simpler client/server design which can effectively scale to large number of clients. With the widespread availability of Java, this prerequisite is fulfilled, and our considerations for improvement that developed during the initial implementation provided the basis for realizing a non-intrusive bridge between MHEG and the WWW as presented below.

4. The Java-based MHEG engine

Because of the reasons outlined above, an implementation of the MHEG engine in Java [CaW96] appeared to be a sensible choice for the integration of MHEG into the WWW. Additionally, the decision was made to implement an MHEG engine using the most current MHEG class model, MHEG-5, as opposed to the previously used, more generic and less specific MHEG-1.

The newly developed MHEG engine is realized as a Java applet which can be started from an HTML page, resulting in an effective integration of the engine into the WWW, as it can be downloaded like any other resource in the Web, manipulated by following (graphical) hyperlinks, and finally, left by following a link to another WWW document. In this context, it is necessary to translate MHEG references denoting objects and media data into "WWW adresses" ,i.e., URLs. Since MHEG-5 specifies only which data type has to be used to reference MHEG resources, it is perfectly adequate to have the references directly encode URLs. For this purpose, our MHEG engine's startup code contains a base URL, forming the initial path information for all MHEG resources used. The reference IDs of MHEG objects as used in the standard MHEG description in turn are interpreted as file names on the MHEG servers. In combination with the base URL, they form the valid, complete document access path -- an approach adopted from the standard URL addressing scheme.

For the internal representation of MHEG objects, Java classes have been created for each item in the MHEG-5 class hierarchy. The engine itself consists of only five classes each of which is specialized for one task, e.g. event or window handling. Since MHEG classes use external interpreters for managing different media data types, a special API has been developed to allow an easy integration of so-called format interpreters. Using this API based on Java interfaces, it is very easy to integrate further interpreters without modifications to the engine code.

The Java AWT (Abstract Window Toolkit) does not implement a layer stack for the components grouped in a window. Therefore components cannot be presented on top of each other since no appropriate clipping handling is provided within the API of JDK 1.0.2. The importance of this feature for our MHEG engine led to the decision to have MHEG objects draw their data directly into the applet window.

Usually MHEG-5 applications are encoded in ASN.1 BER (Abstract Syntax Notation 1, Basic Encoding Rules [ASN90] [BER90]). ASN.1 is a language defined by an ISO standard which is specialized on the description of data structures in a platform-independent way. Currently no Java library exists readily providing ASN.1 support. For this reason, our current implementation is based directly on the textual notation defined in MHEG-5 standards documents. This notation has the advantage that it is possible to manually code the parser methods. A second advantage is the fact that the coding of MHEG-5 applications with the textual notation is much easier than trying to manually code in ASN.1. This way, no authoring tools had been necessary for writing initial sample applications.

5. Scenario

In this section we present a very simple sample MHEG application to provide a more concrete insight into the inner workings of an MHEG engine. To this end, this section is structured as follows. A description of the functionality visible to the user is followed by an overview of the internal structures set up to run the scenario. Finally, a thorough discussion on the concrete execution within the Java-MHEG engine is given.

The example consists of a typical kiosk-like scenario consisting of a large, screen-sized background image within which three buttons are placed in order to provide a menu-like choice about further data, i.e., MHEG scenarios to be presented. Each single button has to provide immediate feedback about whether it is about to fire an operation if an activation (e.g., a mouse click) is performed by a pointing device during traversal of its screen estate . Figure 2 shows a screen dump of this scene.


Figure 2: Screen Dump of an MHEG Application

By following this link, the complete sample application including the MHEG engine itself can be downloaded.

Internally, the objects discussed below are mapped to Java object instances of classes that parallel the respective MHEG-5 classes. In particular, the user interface elements providing the perception of a button consist of two MHEG elements handling input and output, respectively. Additionally, the three buttons are grouped into a container to facilitate explicit control over the activation order of each single button.

The buttons visible to the user are generated in this example by two MHEG objects, since MHEG-5 does not predefine buttons that are represented by bitmaps. The first object describes the image and the second object a special, invisible hotspot. It can be used to give any visible MHEG object the functionality of a standard button. The following code example shows the definition of one of the buttons:


    {:bitmap

      :object-identifier 2

      :initially-active false

      :content-hook :proprietary-content-register 1

      :content-data :referenced-content "contents/s01_a_1.jpg"

      :original-box-size ( 561 73 )

      :original-position ( 154 218 )

    }

    {:hotspot

      :object-identifier 7

      :original-box-size ( 561 73 )

      :original-position ( 154 218 )

      :engine-resp false

    }

The object's -numerical- identifications, its initial state, contents, and position are clearly discernible. With regard to the identification of the content type to be displayed, the ID '1' within the content-hook line refers to JPEG as defined for this implementation. The keyword mheg-content-register is intended to be defined in the upcoming standard document type registry of MHEG-5.

In general, this code also shows where more advanced data presentation facilities could be integrated. In order to change the static bitmap of a button into a thumbnail movie, just the :bitmap keyword including the content-hook components would have to be adapted. Any further issue, like loading the correct object code or the format interpreter, are automatically resolved. The overall interaction pattern as originally authored need not be modified, a rule true not only for this simple button example but also for more complex scenarios containing several audio, video, or still-image streams.

The three buttons are grouped by a special container object that passes a token between the contained objects. This container is necessary because MHEG-5 buttons are not permitted to process raw input like Interactible instances as discussed above. Therefore, the button is activated by means of a link which fires on a global event, a mouse click in this example. Without the token, every button would be activated by a user interaction within the scenario. By using tokens the engine can put the application in control of object focus (the buttons in this example). Thus, the user interaction only affects the objects which are intended to react to the input.

A button in the scene gets the focus whenever the mouse cursor is within its bounding box. This behavior is generated by six Link objects, two for each button. The following code represents two links which implement this behavior for the button shown above:


    {:link

      :object-identifier 12

      :event-source 7

      :event-type CursorEnter

      :link-effect ( :run 2 :move-to ( 6 1 ) )

    }

    {:link

      :object-identifier 13

      :event-source 7

      :event-type CursorLeave

      :link-effect ( :stop 2 :move-to ( 6 0 ) )

    }

The keyword link-effect describes the elementary actions to be performed when the link fires. In this example the highlighting of a selected button is done by a bitmap object which is presented while the button is in the highlighted state. If the button is not in this state, its image is contained in the background image by a darker version of the same bitmap. Button highlighting can be achieved in several ways, e.g. by changing the transparency of the bitmap object or by drawing a rectangle around the button which can be done by the Hotspot object.

The first of the two links above fires as soon as the mouse cursor enters the bounding box of the object. This leads to the described highlighting which is realized by the activation of the bitmap object through the elementary action run. The second elementary action informs the grouping object to move the token to a new position. The first parameter of the action, 6, represents the object identificator of the container. The second parameter defines the new position. The described button is at position 1, so the first link sets the focus to the button. The position 0 has a special semantics according to the MHEG-5 specification. If the token is in this position, no object within the group has the focus.

Finally, button activation is done by the following Link object:


    {:link

      :object-identifier 18

      :event-source ( "mainapp1.mheg" 0 )

      :event-type UserInput

      :event-data 2

      :link-effect (

	:call-action-slot ( 6 0 )

      )

    }

This link reacts on MouseUp events generated when the user releases a mouse button. This link takes effect on the button which has the focus. Technically, this is done by the container object using a list of elementary actions which can be activated by an invocation of the core MHEG action call-action-slot. The list contains actions combined with one of the grouped objects specifying the actions permitted on the respective object. With the elementary action call-action-slot, an MHEG engine executes the actions associated with the focused object. In the current example, this leads to the activation of the associated button. This activation is further propagated by a special event, such as to fire a second link implementing the concrete effect of this button, e.g. the transition to another scene.

The example shows the conceptually intuitive style of MHEG-5 programming with respect to interactive multimedia scenarios. The use of buttons appears to be somewhat complicated as compared to other predefined types or Interactible objects that prove to be more straightforward to employ. Nevertheless it has been chosen as an example to clarify all core aspects of MHEG.

To reiterate, all objects can catch and process the raw user input before the engine generates MHEG events, e.g. for performance reasons. Afterwards, these objects can handle the raw input themselves, e.g. fill in a new character in a text field. In this case, the MHEG code attains more control over the presentation and the input is discarded by the engine as it needs not be processed any further. However, this is considered to be a dangerous shortcut as it introduces platform-dependence into an MHEG application.


Figure 3: Event Processing Within the MHEG Engine

Pulling it all together, the basic instruction cycle executed by an MHEG engine can be clarified. The MHEG engine parses each MHEG-5 statement clause of application or scene code, and instantiates newly defined MHEG objects. After this initial instantiation process terminates, the system enters an event handling loop out of which calls to the appropriate methods of the objects are fielded according to the MHEG events (cf. Figure 3). These operations map in a straightforward way to Java as the class hierarchy used for the implementation directly parallels the one specified for MHEG-5. For example, the conceptual entity elementary action directly maps to Java object method calls.

6. Discussion and further work

During the implementation of the MHEG engine some problems and opportunities have been discovered in the MHEG specification, the Java language environment, and the WWW mechanisms.

Drawbacks of MHEG

In the first realm, some inconsistencies in the MHEG-5 draft document have been unearthed. These are probably due to the rather premature stage of definition of MHEG-5 (Version 6 Dec. 95) chosen as the foundation for this implementation. For one, some attributes in MHEG classes appear to specify redundant functionality. An example of this is an input check defined by the Scene class. In this check, the engine tests whether the specific input type is permitted in the particular scene. Only input explicitly enabled generates an MHEG event. This test however is redundant because the creation of an event would have no effect anyway since the execution model of MHEG specifies that any event triggering no action is to be discarded. In summary, it does not matter whether events are discarded because they are not permitted in the first place or whether there is no link firing upon their arrival.

A more severe problem in our point of view is the level of abstraction provided by MHEG-5. The current state of specification prevents the implementation of interoperable MHEG applications. An example for this deficiency can be seen for example in the lack of a commonly agreed-upon addressing scheme for MHEG objects. Though this is very convenient for implementors that may choose any representation they like, it seriously hampers interoperability.

Thus, an MHEG-5 scenario defined for the engine described in this paper would very probably not run on any other MHEG-5 engine. In principle, no apparent problem exists for creating a standard in which all aspects of the multimedia scenario description language are defined. This would make universally interoperable multimedia applications in this area feasible. On the one hand, only a few modifications to MHEG-5 would be required as compared to the current draft in order to remedy this issue. On the other hand, such a refinement would provide the conceptual excellent advantage to create fully interoperable multimedia scenarios, i.e., MHEG applications on a broad basis.

Problems with Java

Some problems arose from the programming language used in this implementation. Regardless of the several refinements made as compared with the language and runtime underlying the initial Pre-Alpha HotJava browser presented at Sun's booth at WWW3 in spring 1995, some parts of it still have to be considered to be at an early stage of development. In particular the AWT needs some further development. In this application's context, one particular problem was that the AWT does not implement a document presentation layer stack, i.e., the possibility to arrange visual components in an overlapping manner where the ordering can be explicitly specified. This led to the decision that the MHEG objects have to draw their contents directly into the applet window.

This mechanism has two important disadvantages. First, the engine has to infer and artificially create some MHEG events from the information given by other events. One example for this is the case of a mouse cursor entering the bounding box of another object. This leads to a delay between the time the event should be generated and the time the engine has sufficient information for the creation of the event. However, these issues are being reconsidered given the new version 1.1 of the Java Development Kit released recently, as modifications to the event delegation model are just one part of the overhaul of the AWT.

The second disadvantage results in the fact that some MHEG objects have to draw their objects themselves instead of using the components provided by the AWT. In particular, the classes which present sliders or buttons are going to benefit from the use of the AWT 1.1 components like the new ScrollPane container.

Other problems with the AWT arise from the fact that it does not readily provide some features defined within MHEG-5. This includes the rendering of text with an application specific font and the use of application specific shapes for the mouse cursor. Nevertheless, all these shortcomings are more of a technical inconvenience that appear to be solvable relatively easily.

What the Web might learn from MHEG

In turn, some advantageous properties specified in MHEG-5 might be interesting to consider for the Web in general, and Java in particular.

Resource usage

A more serious problem as compared to the ones listed above is particularly emphasized by this type of resource intensive multimedia application. Although it is not necessarily inherent to only this application, the issue of resource control and resource reservation is certainly a prominent one with implications to any networked infrastructure in general, and the WWW in particular.

Within MHEG some approaches to remedy this problem are provided that might also be worth considering for the Web's design. For example, MHEG scenario designers can specify probabilities for certain links to be activated by the user. These hints for the actual MHEG engine can be used to prefetch the data highly probable to be needed in the immediate future.

Another example is a priority value that can be added to an MHEG description to specify the importance of an MHEG object. This information can be used to optimize any engine-internal as well as infrastructural caching strategies. This way, high-level semantic knowledge influencing the resource consumption can be communicated to the low level parts of the MHEG engine that retrieve, interpret, and present data to the document format handlers which finally draw it on the screen.

As far as the World-Wide Web is concerned, these two values, i.e., prefetching and caching hints, would prove to be very advantageous to caching and replication techniques used or under development for the WWW [BMS96].

In a broader sense, these are but two examples for the larger issue of resource reservation and guarantee within networking, operating, and runtime systems. In our opinion, a more explicit control over the resources used by any Java applet is in order. This thought is fully in line with the end-to-end argument [SRC84] and will foster more research in which we are intending to use the application presented in this paper as a validation example.

Better client-side interaction

An example of a much more mundane problem possibly better solved within MHEG concerns user interaction with the browser. Recent developments like client-side imagemaps or popup-menus for Web browsers highlight the need for such facilities already built into MHEG. Closely associated with such features is the more advanced event-generation and propagation mechanism within MHEG. These shortcomings of the Web in the area of -- unforeseen interaction patterns for -- multimedia documents, however, can be easily overcome with the use of Java code, for example.

Layering

Finally, the possibility of overlaying different user interface components is advantageous in some settings. In particular, it permits the development of more self-contained and easy-to-author kiosk-like applications for which the ease of use and accessibility of the ensuing presentation is most important. However, this advantage of MHEG has been paid for with one of its most grave shortcomings as discussed below: An MHEG scenario in general is only suitable for one particular screen resolution and size.

What MHEG has to learn from the Web

Due to the draft status of the MHEG-5 standard underlying this implementation, the ensuing comments have to be considered preliminary. For one, the lack of definitive guidelines for many components as well as mechanisms within MHEG is considered dangerous. For example, the possibility of choosing any address representation as long as it fits into a string data type will seriously hamper the interoperability easily attained by the WWW. Unfortunately, this caveat undermines the whole MHEG approach.

The development of a hardly understandable ASN.1-based notation for MHEG might also be overkill. The lesson to be learned is that a globally unique encoding of data including the respective platform-independent document representation as used in the Web appears to be more than sufficient. This is especially true when considering the currently available compute power at the desktop.

Another issue where MHEG is wrong as compared to the Web is the display independence originally present in the WWW. By being forced to develop for one particular display configuration only, designers have to consider MHEG as being suitable for, at most, a distinct but small application niche. Another problem in this area is the lack of more sophisticated abstractions for hypertext as provided by the Web.

Finally, a hard to resolve issue is the question concerning the suitability of state within both clients and servers of a distributed multimedia document presentation facility. The stateless approach of the Internet in general and the WWW in particular clearly has a leading edge with respect to fault-tolerance and scalability. Nevertheless, the growing tendency to maintain state within either cookies or dynamically generated URLs point towards the need for state in the Web as well. The approach present in MHEG might offer some ideas in this area.

7. Related work

Currently, multimedia applications in the WWW are mostly coded within HTML pages. Generally HTML is very suitable for presentations mostly containing textual information. But with the introduction of other media types like images or audio and video streams, HTML necessarily met its limits. Therefore, a multimedia author needs extensions like Java applets, ActiveX controls or plug-ins.

ActiveX has some inherent disadvantages resulting from the concepts used for this technology. An ActiveX control is platform-specific. Thus, a control is either limited to one platform or needs to be developed several times (of course only as long as ActiveX is restricted to the MS-Windows platform). A second disadvantage that ActiveX shares with Java is the complexity arising from the use of a general purpose language. Compared to that, MHEG-5 is much easier to use since the development of MHEG applications is only slightly more complex than the development of HTML pages, especially when authoring tools like the Macromedia Director are used that are capable of producing the necessary code.

A second advantage of MHEG-5 is that resource control mechanisms exist which can be used to keep a good balance between the response times of the multimedia application and the use of system resources. Since the description of an MHEG-5 application can be compared in complexity with an HTML page, an MHEG object interpreted by a local MHEG engine very efficiently employs network resources.

Plug-ins can be used to increase the number of media formats supported. Since plug-ins are machine dependent, they should only be a last resort to be used when direct coding in Java is impossible due to constraints in the language or the runtime. Examples for application-visible limitations may be different design philosophies (vs. AWT) or execution models/performance requirements (vs. interpretation).

Each new WWW-based multimedia application like RAVE [EAU96], Vosaic [CTC94], or RealAudio always has required either new platform-specific plug-ins, or even more disturbing, external programs to be installed. Each application in this realm could be easily specified and seamlessly integrated into an open, not vendor-specific, and comparatively simple-to-author multimedia framework as provided by MHEG and executed by a dynamically and unobtrusively extensible engine based on Java. This way, multimedia documents could be blended into a framework that does not rely on the presence of vendor-specific programs like Shockwave, thus returning to the original driving force of the whole Internet, namely openness.

8. Conclusion

This paper presents the realization of an MHEG multimedia scenario runtime execution as a set of Java classes downloadable into every user's browser. A sample scenario has been walked through to clarify the concept of MHEG and to explain the implementation presented in this paper. A system has resulted that combines the strengths of both --committee, resp. de-facto-- standards MHEG, resp. WWW/Java. Some drawbacks of both systems as well as possible remedies have been highlighted.

It has been demonstrated in which way the MHEG system can take direct advantage of the resources readily available on the Web. In turn, some of the features of MHEG have been highlighted that might benefit the WWW as a whole. For example, resource usage hints, an extensible, standardized multimedia content representation facility, and a more clearly visible distinction into client- as well as server-side components have been discussed.

Particularly important for more areas of application than only the one featured in this paper is the need for resource control within the execution environments. In this area, the Java engine beneath MHEG will be the focal point for further work.

References

[ArG96]
K. Arnold, J. Gosling: The Java Programming Language; Addison Wesley, 1996

[ASN90]
Information Technology - Open Systems Interconnection - Specification of Abstract Syntax Notation One (ASN.1); ISO/IEC 8824; 1990;
Available at: http://www.iso.ch/cate/d16288.html.

[BaR95]
M. Baentsch, P. Rösch: Weaving interactive media into the Web: The WWW-GLASS gateway;
Proc. Workshop on Interactive and Distributed Multi-Media Systems on Highspeed Networks; held in conjunction with the 3rd International WWW Conference , Darmstadt, Apr. 1995; Available at: http://www.igd.fhg.de/www/www95/proceedings/workshops/workshop-D/work_D_proceedings.ps.

[BER90]
Information Technology - Open Systems Interconnection - Specification of Basic Encoding Rules for Abstract Syntac Notation One (ASN.1); ISO/IEC 8825; 1990;
Available at: http://www.iso.ch/cate/d16294.html.

[BMS96]
M. Baentsch, G. Molter, P. Sturm: Introducing Application-level Replication and Naming into Today's Web;
Computer Networks and ISDN Systems, Vol. 20, No. 6; Proc. 5th International Conference on the World-Wide Web, Paris, May 1996;
Available at: http://www5conf.inria.fr/fich_html/papers/P3/Overview.html.

[CaW96]
Mary Campione, Kathy Walrath: The Java Tutorial, Object-Oriented Programming for the Internet; 4.3.1996;
Available at: ftp://ftp.javasoft.com/docs/tutorial.ps.zip.

[CTC94]
Z. Chen, S. Tan, R.H. Campbell, Y. Li: Real Time Video and Audio in the World Wide Web;
Proc. 4th International WWW Conference, Boston, Dec. 1994;
Available at: http://www.w3.org/pub/Conferences/WWW4/Papers/211/.

[EAU96]
P. England, R. Allen, R. Underwood: RAVE: Real-time services for the Web;
Computer Networks and ISDN Systems, Vol. 20, No. 6; Proc. 5th International WWW Conference, Paris, May 1996;
Available at: http://www5conf.inria.fr/fich_html/papers/P57/Overview.html

[Hof94]
K. Hofrichter: The Berkom GLASS Project (Overview);
GLASS Homepage at: http://www.fokus.gmd.de/ovma/berglass/entry.html, June 1994.

[Jav95]
JavaSoft: Java -- Documentation Index
Available at: http://www.javasoft.com/nav/read/docindex.html

[MBE95]
T. Meyer-Boudnik, W. Effelsberg: MHEG Explained;IEEE Multimedia, Spring 1995.

[MHEG1]
Information Technology - Coding of Multimedia and Hypermedia Information - Part 1: MHEG Object Representation, Base Notation (ASN.1); ISO/IEC DIS 13522-1; 17.10.1994;
Available at: http://www.iso.ch/cate/d22153.html.

[MHEG5]
Information Technology - Coding of Multimedia and Hypermedia Information - Part 5: Support for Base-Level Interactive Applications; ISO/IEC DIS 13522-5; 6.12.95;
Available at: http://www.iso.ch/cate/d26876.html.

[RoB96]
P. Rösch, M. Baentsch: Reviewing two Multimedia Presentation (Quasi-)Standards;
Proc. IEEE International Workshop on Multimedia Software Development, Berlin, Mar. 1996;
Available at: http://www.uni-kl.de/AG-Nehmer/GeneSys/Papers/MMSD96.Published.ps.

[SRC84]
J.H. Saltzer, D.P. Reed, D.D. Clark: End-to-End Arguments in System Design;
ACM Transactions on Computer Systems, Vol.2, No.4, Nov. 1984.


Michael Baentsch <baentsch@informatik.uni-kl.de>



Return to Top of Page
Return to Posters Index