Skip to content

IS 04 05 Node

Peter Brightwell edited this page Aug 17, 2018 · 10 revisions

Please refer to the Generic API Server page as a starting point before considering the specifics below.

Basic Guide

  1. Expose an IS-04 Node API and IS-05 Connection API from a suitable port on your host (preferably 80 for HTTP and 443 for HTTPS)
  2. Discover an appropriate IS-04 Registration API using DNS Service Discovery.
  3. Select the maximum API version from those supported by the Registration API which your Node also supports.
  4. Issue a POST request to the /resource resource of the Registration API for each resource from your Node API. Simultaneously issue periodic heartbeats to the /health/nodes/id resource, where 'id' matches your Node ID.
  5. Issue POST requests to the /resource resource of the Registration API each time one of your Node's resources is modified, ensuring that the 'version' attribute of the resource is updated when doing so.

Best Practice

  • Observe and interpret all of the TXT records returned with the DNS Service Discovery responses. These indicate the preferred API instance to use (via 'pri'), the API versions supported (via 'api_ver') and the protocol supported (via 'api_proto').
  • If a Registration API request fails, follow the procedures described here and in the notes below, including use of exponential backoff when error responses are returned.
  • Permit re-configuration of your Node's heartbeat interval, whilst observing the required defaults.

Registration Procedure

The following flowchart shows the current best practice for a state machine which handles registrations with an IS-04 Registration API.

Node Registration Flowchart

Identifier Persistence

Persistent identity helps to ensure that users' expectations meet with reality. For example, if a piece of equipment is switched off and back on, the user would expect it to return with the same signals routed to and from the same ports. A control system managing this can only do so if the identifiers used by the Node remain the same.

UUIDs are used throughout the NMOS data model, and can be generated in a number of ways (including from hardware addresses) in order to achieve consistent behaviour (see RFC 4122).

Multiple Network Interfaces

Guidance coming shortly...

Mixed Version Registries

Guidance coming shortly...

Testing Unicast Discovery

See the Configuration Guide for how to configure a DNS server to advertise a Registration or Query API.