SMPTE 2071

SMPTE ST 2071 is a suite of standards published by the Society of Motion Picture and Television Engineers (SMPTE) that define a framework, protocol, and method of service discovery for the control of objects within an Internet of Things. The standards focus on the interoperability and discoverability of objects within the network, and treat media as first-class citizen. The standard also describes a programming methodology that allows objects to describe their behaviors (features) to other objects over the network and allows objects to change their behavior dynamically at runtime. Application developers developing to the SMPTE ST 2071 standards focus on writing their applications to the behaviors they wish to support and not the object or class of object that implements those behaviors.

Media as a first-class citizen
The SMPTE ST 2071 standards define media as a first-class citizen, changing the focus from controlling devices and services to controlling media. This paradigm shift provides a more natural method of discovering, managing, and manipulating media as it harmonizes the way media is controlled with the way that it is conceptually perceived.

Features as first-class citizens
The SMPTE ST 2071 standards define a development methodology that elevates features to a first-class citizen status, allowing for those features to be decoupled from the objects that implement them. The standard defines capabilities as uniquely identified features that may be defined through normative prose and/or interface definition languages, such as OMG IDL or WSDL, and consequently documented or registered within a repository to foster feature-level interoperability within heterogeneous environments.

Interoperability and new applications
The interoperable exchange of media requires common file formats, compression/encoding techniques, transport mechanisms, semantics, and a common means by which media can be discovered, located, accessed, and managed. The SMPTE ST 2071 suite of standards defines an open protocol for the control of objects within an Internet of Things with provisions for the representation and control of media as a first-class citizen. The SMPTE ST 2071 Media & Device Control standard also defines a new programming methodology by which complex behaviors can be modeled as sets of uniquely identified features, known as capabilities, and a framework by which the endpoints exposing these capabilities can be made discoverable. As with media, SMPTE ST 2071 elevates capabilities (features) to a first-class citizen status, allowing for those capabilities to be decoupled from the objects that expose them. This new methodology can be used to simplify existing applications by facilitating the discovery of media services within a local area network and/or the Cloud. New applications may also be written to control mediacentric objects (devices and services) without forehand knowledge of the implementation of those objects. Commands may also be embedded within media streams to facilitate the initiation of action within the receiving system if the capabilities are exposed by the receiving system or can be ignored if they are not. This may prove useful for the control of objects on the receiving end, such as the control of tactile devices or some yet to be identified application.

Standards documents

 * SMPTE ST 2071-1 – Media Device Control Framework standard defines a platform and application layer protocol agnostic framework for the control of devices and services on Internet Protocol networks.
 * SMPTE ST 2071-2 – Media Device Control Protocol standard defines a WS-I Basic Profile 1.2 compliant Web Services protocol with provisions for IP traffic classification to help with the implementation of network-based QoS
 * SMPTE ST 2071-3 – Media Device Control Discovery standard defines an application of the DNS-based Service Discovery protocol that is highly scalable, scaling from the smallest network to Internet scales using the DNS and adds support for the separation of the service discovery and name resolution DNS infrastructures. Thereby preventing service discovery operations from negatively impacting the performance of name resolution. Clients use the service discovery process to discover the URLs for each endpoint representing a uniquely identified feature, aka, Capability, that is registered for an implementing device or service.