Networked Media Open Specifications
DOCS SPEC... VERSIONS... GITHUB INFO... TOOLS... IS-XX... MORE... SEARCH

AMWA NMOS Discovery and Registration Specification: Overview

Index↑ · APIs→

Documentation

The documents included in this directory provide additional details and recommendations for implementations of the defined APIs, or their consumers.

Familiarity with the JT-NM reference architecture (http://jt-nm.org/) is assumed, but a summary of the resources referenced by this specification is available in the Data Model.

Introduction

The purpose of this document is to explain how the individual entities in an NMOS system can be made discoverable.

In NMOS, all Nodes (logical hosts) expose one or more APIs:

Requirements on Nodes

A Node MUST implement the Node API.

A Node MUST attempt to interact with the Registration API.

Clients requiring data about other Nodes in the system (such as connection managers) MUST obtain this via the Query API if available, or by using the Peer-to-peer specification in smaller networks.

Node Structure

Regardless of their implementation, viewed logically, Nodes provide:

More detail on the Node HTTP API is contained in the Node API specification.

NMOS does not specify the internal interfaces within a Node.

Node Components

Registering and Discovering Nodes

The Registration and Discovery Specification describes two mechanisms for discovery of Nodes and their resources: peer-to-peer and registered. Note that these two mechanisms may co-exist if this is operationally useful.

Peer-to-Peer Discovery

Peer-to-peer (P2P) discovery requires no additional infrastructure. Nodes make DNS Service Discovery (DNS-SD) announcements regarding the presence of their Node API. Peers browse for appropriate DNS records and then query the Node HTTP API for further information.

Registered Model

Registered discovery takes place using a Registration & Discovery System (RDS), which is designed to be modular and distributed. An RDS is composed of one or more Registry & Discovery Instances (RDIs). Each RDI provides:

Registration and Discovery

The Registration Service implements the Registration API of the NMOS Discovery and Registration Specification. Nodes POST to this API to register themselves and their resources. The Registration Service also manages garbage collection of Nodes and their resources by requiring Nodes to send regular keep-alive/heartbeat messages.

The Query Service implements the Query API of the NMOS Discovery and Registration Specification. Clients can GET lists of resources from this API. Typical usage examples include:

The Query API also provides the ability to generate ‘long lived’ queries using its Subscription mechanism and WebSockets.

Examples

The diagram below shows examples of peer-to-peer and registered discovery.

Registration Sequence

Index↑ · APIs→