Skip to content
Andrew Bonney edited this page Jan 31, 2019 · 16 revisions

What is it?

AMWA NMOS IS-04 consists of three API specifications which provide the means to discover Nodes and their associated resources related to the processing of video, audio or other data. IS-04 systems are intended to enable 'zero-configuration' deployments, reducing the necessity to spend time manually configuring equipment before it is used.

IS-04 can be operated in two primary modes:

  • Registered mode: Each Node automatically discovers a network registry service implementing the IS-04 Registration API. The Node is responsible for registering its capabilities with the Registration API, with the registry taking on responsibility for aggregating this data and distributing it to clients via the IS-04 Query API.
  • Peer to peer mode: Nodes advertise their own presence onto the network in the absence of a registry, allowing any client (including other Nodes) to find them directly and interact with their capabilities via their IS-04 Node API.

The IS-04 APIs expose Nodes, Devices, Sources, Flows, Senders and Receivers as described in the Glossary. Each resource is identified by a UUID (Universally Unique Identifier) which provides a reliable reference point to build on top of, meaning that even the most complex deployments can easily map control systems onto the IS-04 data model.

Where to find it?

Specification v1.0 v1.1 v1.2 (Latest) v1.3 (Development)
Node API Link Link Link Link
Query API Link Link Link Link
Registration API Link Link Link Link
Documentation Link Link Link Link

Which version do I require?

Feature v1.0 v1.1 v1.2
Core functions including basic queries x x x
Peer to peer mode x x x
Basic connection management (Deprecated) x x x
HTTPS and secure WebSockets x x
Multiplexed Flows (ST.2022-6) x x
Paged queries x x
Advanced (RQL & ancestry) queries (Optional) x x
Support for IS-05 connection management x

Can I run mixed versions together?

Yes, Nodes are permitted to run differing versions of the specification provided the registry and any controllers are compatible with the full range of versions in operation. Please see the Upgrade Path for more details.

What are the optional features?

When building an IS-04 system, you may require one or more optional features of Nodes or Registries. The guide below is intended to indicate when these features may be required.

Nodes: Peer to Peer mode

Note: This is not currently an optional feature, but is scheduled to become so as part of v1.3

Peer to peer mode enables an additional multicast DNS advertisement to be made directly from IS-04 Nodes. This provides the means for a basic control system (which may be integrated into a Node or separate) to discover IS-04 resources and other NMOS API endpoints without the need for a registry. Given the additional network traffic generated by mDNS and the number of requests required to gather data from Nodes individually, use of this mechanism is not recommended in systems which include more than a few tens of Nodes.

Nodes: Basic connection management

Note: This is not currently an optional feature, but is scheduled to become so as part of v1.3

Prior to the existence of IS-05, the IS-04 specification provided the means to perform basic connection management for RTP multicast streams. This involves passing an SDP file to any IS-04 Receiver via an API resource. This mechanism is due to removal in v2.0 and use of IS-05 instead is strongly recommended.

Registries: Basic queries

This is a recommended feature for all IS-04 registries. It provides the means to return a limited subset of resources in response to a request, for example narrowing the 'Nodes' down by those which have a specific 'tag'. This can assist with scalability by ensuring that resource constrained clients do not have to handle all of the data presented by a registry if it is not relevant to them.

Registries: Downgrade queries

This is a recommended feature for IS-04 registries which support multiple API versions. It provides the means for a client which may operate at the maximal API version (for example v1.2) to gain access to lower versioned resources (for example v1.0) without making additional requests. This is important to ensure that large systems can transition between API versions and gain access to new features, without losing access to Nodes which do not yet support latest version of the specification.

Registries: Pagination

This is a recommended feature for IS-04 registries which may be used at scale. It provides the means to limit the number of resources returned in a single API request, and allows a client to page through the list of resources available at its own pace. This is important to ensure that clients are not overwhelmed by data in large systems, and that registries are not over-burdened in returning large lists of results.

Registries: Resource query language (RQL)

This is a recommended feature for IS-04 registries which may be used at scale. Much like basic queries, it provides the means for clients to narrow down the list of returned resources to only those which are of interest. This query mechanism is much more powerful than basic queries, permitting for example pattern matching in the returned results, and the use of logical operators such as 'and' and 'or'.

Registries: Ancestry queries

This is an advanced feature of IS-04 registries. It enables content to be tracked through a system as it progresses through numerous production operations. Content can be tracked in reverse (to indicate where it originated) or forwards (to indicate what new content is now forms part of).