next_inactive up previous



Introduction

Implementing EventWeb on MediaBroker will allow us flexibility in data typing and data transport. MediaBroker will glue together the components of EventWeb cleanly while hiding the complex transport code "under the covers." MediaBroker will also allow data streams to transparently be shared between Media Producers and Event Detectors, Stream Writers, and Live EventWeb Browsers. In Figure 1, a mid-level architecture diagram is presented. While the complex EventWeb querying interactions are represented as only 4pt lines, all MediaBroker interactions are presented in more detail.

Figure 1: System Interaction of EventWeb Implemented on MediaBroker
\includegraphics[width=5in]{eweb-mb.eps}

Media Producer

A Media Producer is a data input wrapped in MediaBroker code. The data stream from a Media Producer will be shared with an Event Detector, necessary stream writers who are archiving the Media Producer's stream and any EventWeb Browsers who are interested in the live media stream.

Each Media Producer will be specifically written for each producer type. The Media Producer will have the option of providing a fixed type of media or a complete type lattice of data types easing the burden of the network and the MediaBroker when the producer's stream if of no importantce.

The Media Producer will be named at run-time and that name will be registered with the MediaBroker's nameserver as well as with the Event Database. The Media Producer may specifically write to the Event Database as shown in Figure 1 or may rely on another facility to regularly sync information between the MediaBroker's nameserver and the Event Database.

Event Detectors

An Event Detector will listen to one or more Media Producers and judge when a stream has become interesting. When a stream is deemed interesting, the Event Detector will instantiate a Stream Writer to archive the interesting stream(s). Once the Event Detector instantiates the Stream Writer, it will register that Stream Writer with the Event Database. This record in the Event Database will show that the stream is currently live in the MediaBroker. When the stream is no longer of importance, the Event Detector will terminate the internal Stream Writer and update the Event Database to show that the stream is a static entity in the Media Database.

The Event Detectors have the option of writing a media source stream describing their current state. This stream can then be monitorred by the Continuous Query Server.

The Event Detectors will be named and charged with streams at run time.

Stream Writer

Once an Event Detector decides that a media stream is worth recording, it instantiates an Stream Writer to write the stream to the Media Database.

The Event Detector specifies both the stream to record as well as the location and name of where to write it. The Event Detector writes the data type information, the stream name and the stream itself into the Media Database.

The Stream Writer terminates when requested to do so.

Stream Reader

Stream Readers are instantiated by the MediaBroker Plugin to service requests from the EventWeb Browser. The Stream Reader is instantiated with a name and a database entity to read. The Stream Reader then queries the database for the media stream and the data type associated with it. The Stream Reader then listens for VCR commands from the MediaBroker Plugin to play, pause, rewind, fast forward and stop the media stream.

The Stream Reader terminates when requested to do so.

MediaBroker Plugin

The MediaBroker Plugin services HTTP replies of type: MediaBroker Stream. When a browser recieves a source of type MediaBroker Stream, the plugin reads for the stream name as well as the MediaBroker engine name and port numbers. The stream name will either be a live stream in the MediaBroker that the plugin will subscribe to or a database entity. If the stream name is a database entity, the plugin will need to call to instantiate a Stream Reader for that database entity and then subscribe to the instantiated reader.

The plugin will have the ability to negotiate the appropriate data type for data it will display. The specified size of the plugin will also dictate how audio and visual media will be displayed.

Plugins are required to terminate any Stream Readers that they instantiate when the reader is no longer necessary.

EventWeb Browser

The EventWeb Browser is a standard HTTP-speaking HTML-rendering web browser. The browser interacts with the Request Server and the Continuous Query Server through web forms and displays media streams using the MediaBroker Plugin when necessary.

Request Server

The Request Server will query the Event Database based on its interactions with the EventWeb Browser. These interactions are entirely within the EventWeb and are only tangentially related in that the Event Database holds records relating stream meta data to how the MediaBroker Plugin can request these streams from the EventWeb/MediaBroker architecture.

Continuous Query Server

Like the Request Server, the Continuous Query Server recieves requests from the EventWeb Browser and replies to these request as necessary. This interaction follows the Request Server interaction model and is completely out of the scope of this document.

The Continuous Query Server has the ability to subscribe to both Event Detector streams, as shown in Figure 1, or directly to Media Producer Streams. When the data in a stream meets criteria in a active continuous query, the Continuous Query Server can notify the EventWeb Browser or it could instantiate a Stream Writer to archive the important data. In this way, the Continuous Query Server could take the place of the Event Detectors or relegate the Event Detecors to simple data aggregation functionality.

About this document ...

This document was generated using the LaTeX2HTML translator Version 2002 (1.62)

Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.

The command line arguments were:
latex2html -split 0 eweb

The translation was initiated by Martin Bruce Modahl on 2003-09-25


next_inactive up previous
Martin Bruce Modahl 2003-09-25