| Network-Integrated Multimedia Middleware (NMM) : Basic Introduction | ||
|---|---|---|
| Prev | ||
The registry service in NMM allows discovery, reservation, and instantiation of nodes available on local and remote hosts. On each host a unique registry server administrates all NMM nodes available on this particular system. For each node, the server registry stores a complete node description that includes the specific type of a node (e.g. 'sink'), its name (e.g. 'PlaybackNode'), the provided interfaces (e.g. 'IAudioDevice' for increasing or decreasing the output volume), and the supported input and output formats (e.g. an input format 'audio/raw' including additional parameters, such as the sampling rate).
The application uses a registry client to send requests to registry servers running on either the local or remote hosts. Registry servers are contacted by connecting to a well-known port. After successfully processing the request the server registry reserves the requested nodes. Nodes are then created by a factory either on the local or remote host. For nodes to be instantiated on the same host, the client registry will allocate objects within the address space of the application to avoid the overhead of an interprocess communication.
To setup and create complex distributed flow graphs, an application can either request each node separately or use a graph description as query. Such a description includes a set of node descriptions connected by edges.
For an application to be able to create a distributed flow graph, the NMM application called serverregistry needs to be running on each participating host. For purely locally operating applications this is not required. Then, a server registry is running within the application itself but not accessible from remote hosts.
Before a server registry can be used, it needs to determine which devices and software components are available on a particular host. Therefore, the registry needs to be initialized once using following command.
user@linux:~/nmm/bin> ./serverregistry -s Create config file with plugin information ... Loading plugins... AC3DecodeNode available AVDemuxNode available AVIReadNode available ... and many further nodes Config file successfully written. |