July 29th, 2005
Copyright (c) 2002-2005 NMM work group, Computer Graphics Lab, Saarland University, Germany, http://www.networkmultimedia.org Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license can be found in the file COPYING.FDL. |
This document gives a basic introduction to the design of the Network-Integrated Multimedia Middleware (NMM). The goal of this project is to design and develop a multimedia middleware for Linux (as well as other operating systems), which considers the network as an integral part and enables the intelligent use of devices distributed across a network. This framework can be used as enabling technology for traditional multimedia applications, but also for ubiquitous computing and mobile computing
Besides the PC, an increasing number of multimedia devices -- such as set-top boxes, PDAs, and mobile phones -- already provide networking capabilities. However, today's multimedia infrastructures adopt a centralized approach, where all multimedia processing takes place within a single system. The network is, at best, used for streaming predefined content from a server to clients. Conceptually, such approaches consist of two isolated applications, a server and a client. The realization of complex scenarios is therefore complicated and error-prone -- especially since the client has typically no or only limited control of the server.
Figure 1. Client/server streaming consists of two isolated applications that do not provide fine-grained control or extensibility:

The Network-Integrated Multimedia Middleware (NMM) overcomes these limitations by enabling access to all resources within the network: distributed multimedia devices and software components can be transparently controlled and integrated into an application. In contrast to all other multimedia architectures available, NMM is a middleware, i.e. a distributed software layer running in between distributed systems and application.
Figure 2. A multimedia middleware is a distributed software layer that eases application developlemt by providing transparency:

As an example, this allows for the quick and easy development of an application that receives TV from a remote device -- including the transparent control of the distributed TV receiver. Even a PDA with only limited computational power can run such an application: the media conversions needed to adapt the audio and video content to the resources provided by the PDA can be distributed within the network. While the distribution is transparent for developers, no overhead is added to all locally operating parts of the application. To this end, NMM also aims at providing a standard multimedia framework for all kinds of desktop applications.
NMM is both an active research project at Saarland University in Germany and an emerging Open Source project. NMM runs under GNU/Linux (and other UNIX operating systems), is implemented in C++, and distributed under the LGPL and GPL.
| Next | ||
| General Design Approach |