Skip to content

Procurement Guide

Peter Brightwell edited this page Aug 31, 2018 · 2 revisions

For the simplest systems it should be sufficient to request support for a particular specification and version in order to ensure the functionality that you require will be available, for example:

  • Nodes must have AMWA NMOS IS-04 v1.2 support
  • A registry must be provided which supports AMWA NMOS IS-04 v1.1 and v1.2

In many cases it will be possible to identify these capabilities via product marketing literature.

For more complex deployments which require some of the optional features of the specifications it is important to be clear which (if any) of these are required. In addition there may be specific requirements around support for NMOS specifications via particular network interfaces, or the scalability of a registry implementation.

An overview of the features which each version of the specifications provide can be found via the Specifications page.

Understanding Versioning

As is common with web APIs, over time changes will be made to support new use cases and deprecate old ways of working. The NMOS APIs are no different, and have been designed to permit in-service upgrades across a facility which may be running large amounts of equipment with support for different versions of these specifications.

The NMOS specifications use 'Semantic Versioning' in order to provide guarantees around compatibility between different versions. Each version has three parts in the form: 'X.Y.Z'. At the time of writing the IS-04 specification version is '1.2.0'. These numbers should be identified as follows:

  • X: Major version: This number increments when breaking changes occur (such as feature removal). It is unlikely that two systems implementing different major versions of a specification would work together.
  • Y: Minor version: This number increments when compatible changes occur (such as feature addition). Two systems which operate at different minor versions may be compatible with each other, however specifications should be consulted for details of exactly how this is permitted.
  • Z: Patch version: This number increments whenever a fix or documentation update is made to the specification. These updates should have no detrimental effect on existing systems but may resolve compatibility issues if there were bugs present (for example API schema errors).

Every released version should be considered as a stable snapshot which provides a functional specification suitable for production use. Not every deployment will require all of the features which are added by new versions, and the feature matrix for each specification should be considered when developing requirements for a new system.

Testing Implementations

Development of test suites to enable authoritative testing of implementations is in progress. These can be found as part of the Developer Resources in this wiki.

Open Source & Freeware Implementations

There are several open source or freeware implementations known to exist which may be of use for testing or implementing systems. These can be found with NMOS Solutions page.