The NICE Specifications are in the following sections:
- NICE Overview – this provides an overview of the scope and context of the NICE system and what the NICE system provides.
- NICE Core Specifications – these are functions that cover security, protocols and the operation of the Data Pipeline. They also describe the App and the Device which are core components of the NICE system.
- Guidelines – these provide an overview of how various elements of the system shall be implemented and use cases for using the APIs defined in this specification.
- Definitions, Acronyms and References – provides a list of definitions for terms used within the NICE specifications, references to standards that are used within the NICE specifications and Acronyms.
In addition, NICE Data Service Specifications will be added in updates to the Specifications. These services provide either a richer view of the Devices in a NICE system, enhance the Data generated by the NICE system or enable the management of user account information.
NICE Core Specifications
The core of the NICE specification is made up of the following 6 sections which describe key interfaces in the system and 2 sections which describe the APIs for Devices, Apps and Services in the system.
The core interface documents are the following:
- NICE Data Pipeline Specification describes how a Data Pipeline is constructed and managed. The Data Pipeline is a workflow for generating data from sensors and analyzing that data. This section describes the API that is available to an App or Service to read out the capabilities of a Nodes, configure them to generate data and the format for the data created by the Data Pipeline.
- NICE Network Protocol Specification describes the network protocols used in the NICE system and the messaging protocols defined by the NICE specification. These protocols are used to carry NICE defined data between entities within the NICE system.
- NICE Privacy and Security Specification describes a high-level threat model for the NICE system, the roles that exist in the NICE system, Privacy Management system that is used to protect user data, Secure Time management, basic encryption and authentication methods.
- NICE Authentication Specification describes the Security Life Cycles for the Device and App, the usage of Access Tokens for access control and the establishment of a Control Session to enable an App to control Nodes within a Device.
- NICE Date Time Format describes the date time format utilized commonly in the NICE System.
- NICE Identifier Structure describes the rule for identifiers utilized in the NICE System.
The NICE Device Specification describes the APIs that are implemented on a Device.
The NICE App/Service Specification describes the APIs that an App can use to set up Control Sessions with Devices as well as the security management for Apps. Once the App has established a Control Session it can use the APIs defined in the Data Pipeline Specification to manage the Nodes that make up the Data Pipeline.
Guidelines provide an overview of how to implement a Device or App, the use cases to use APIs defined in the specifications. They also may contain security guidelines, guidelines for back end processes etc.
The current Specification has the following Guidelines:
- Data Pipeline Usage Guide. This describes the use case for how an App can manage reading the capabilities from a Node, setting the SceneMode for a Node and processing the SceneData and SceneMarks that are generated by a Node.
- Device Implementation Guide. This describes the use cases for the various stages in the Device life cycle and the security requirements for the implementation of the Device.
- App/Service Implementation Guide. This describes the process for registering an App with the NICE ecosystem and the deployment of the App.
Where to Start
For someone wanting to first get an overview of the NICE system, the best place to start is the Data Pipeline Specification and the Data Pipeline Usage Guide. This provides an overview of the core functionality of the NICE system, the use case for constructing a Data Pipeline and many of the core concepts of NICE.
For someone looking to develop devices, the Device Specification and the Device Implementation Guide provides an overview of how the Device fits into the overall architecture and how the Device is used.
For someone looking to understand the overall security of the NICE system, the Privacy and Security and the Authentication Specifications are important documents.
For someone looking to develop an App, the App/Service Specification is an important document.