April 2007
Copyright (C) 2007, Motama GmbH, Saarbruecken, Germany http://www.motama.com 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 the Invariant Sections being all sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license can be found in the file COPYING.FDL. THE DOCUMENT IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE DOCUMENT BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE DOCUMENT OR THE USE OR OTHER DEALINGS IN THE DOCUMENT. |
This document gives a basic introduction to the design of the Network-Integrated Multimedia Middleware (NMM). NMM is a multimedia middleware and considers the network as an integral part and enables the intelligent use of devices distributed across a network. Therefore, it can be used as enabling technology for locally operating multimedia applications, but more importantly for all kinds of networked and distributed multimedia systems - spanning from embedded and mobile systems, to PCs, to large-scale computing clusters.
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 on a variety of operating systems and hardware platforms (please refer to NMM FAQ for details). NMM is implemented in C++, and distributed under a dual-license: NMM is released under 'free' licenses, such as the GPL, and commercial licenses.
| Next | ||
| General Design Approach |