User:Robinlk/sandbox

SensorThings API is an OGC candidate standard providing an open and unified framework to interconnect IoT devices, data, and applications over the Web. It is an open standard, builds on Web protocols and the OGC Sensor Web Enablement standards, and applies an easy-to-use REST-like style. The result is to provide a uniform way to expose the full potential of the Internet of Things. Also, it is the first IoT standard focusing on the uses and understandings of data from heterogeneous IoT devices.

Dr. Steve Liang, an associate professor at the University of Calgary and the founder and CEO of [Http://www.sensorup.com SensorUp], leads the GeoSensorweb Lab to develop OGC SensorThings API from 2013. OGC SensorThings API was released for public comment on June 18th, 2015.

Design
SensorThings API is designed specifically for resource-constrained IoT devices and the Web developer community. It follows REST principles, the use of an efficient JSON encoding, and the use of the flexible OASIS OData protocol and URL conventions. Also, it has an MQTT extension allowing users/devices to publish and subscribe updates from devices, and can use CoAP instead of HTTP. Since Amazon launches AWS IoT in October of 2015, SensorThings API can provide a modern, scalable, flexible, elegant, and interoperable way to access and manage IoT observations and associated location data from heterogeneous devices on top of Amazon’s IoT service. The foundation of the SensorThings API are the relational connections between entities in the system and the way they are used to model systems in the real world. The entities have a natural relationship which enables any IoT sensing device from any vertical industry to be modelled in the system. An IoT device or system is modelled as a Thing. A Thing has a Location with one or more Datastreams. Each Datastream observes one ObservedProperty with one Sensor and has many Observations from the Sensor. Each Observation read by the Sensor observes one particular FeatureOfInterest. Together, these relationships provide a for a flexible yet standard way to describe and model any sensing system. This allows SensorThings to be a single data exchange system for heterogeneous devices within any organization.

SensorThings API provides two main functionalities, each handled by a profile. The two profiles are the Sensing profile and the Tasking profile. The Sensing profile provides a standard way to manage and retrieve observations and metadata from heterogeneous IoT sensor systems. The Tasking profile provides a standard way for parameterizing - also called tasking - of task-able IoT devices, such as sensors or actuators. The Sensing profile is designed based on the ISO/OGC Observation and Measurement (O&M) model, and allows IoT devices and applications to CREATE, READ, UPDATE, and DELETE (i.e., HTTP POST, GET, PATCH, and DELETE) IoT data and metadata in a SensorThings service.

Parameters
SensorThings API has the following resources :
 * : An object of the physical world (physical things) or the information world (virtual things) that is capable of being identified and integrated into communication networks.
 * : Locates the Thing or the Things it associated with.
 * : Set provides the current (i.e., last known) and previous locations of the Thing with their time.
 * : A collection of Observations and the Observations in a Datastream measure the same ObservedProperty and are produced by the same Sensor.
 * : Specifies the phenomenon of an Observation.
 * : An instrument that observes a property or phenomenon with the goal of producing an estimate of the value of the property.
 * : Act of measuring or otherwise determining the value of a property.
 * : An Observation results in a value being assigned to a phenomenon.The phenomenon is a property of a feature, the latter being the FeatureOfInterest of the Observation.

Benefits
In today’s world, most IoT devices (e.g., sensors) have proprietary software interfaces defined by their manufacturers and used selectively. New APIs are requested and developed on an as needed basis, considering resource limitations and risks. This situation requires a significant investment on the part of developers with each new sensor or project involving multiple systems and on the part of the providers of sensors, gateways and portals or services where observations are used.

The OGC SensorThings API, a standardized data model and interface for sensors in the WoT and IoT, offers the following benefits:
 * 1)  It permits the proliferation of new high-value services with lower overhead of development and wider reach
 * 2)  It lowers the risks, time and cost across a full IoT product cycle
 * 3)  it simplifies the connections between devices-to-devices and devices-to-applications.

Documentation

 * OGC® SensorThings API Part 1: Sensing
 * Internal reference number of this OGC®  document: 15-078
 * Submission Date: 2015-06-18
 * Editor: Steve Liang (University of Calgary/SensorUp)
 * Co-Editors: Chih-Yuan Huang (National Central University) / Tania Khalafbeigi (University of Calgary/SensorUp)
 * Developer-friendly API Documentation:
 * RESTful API and JSON
 * Java
 * JQuery
 * .NET
 * Python
 * Ruby on Rail
 * cURL

Libraries

 * .NET client library for the SensorThings API
 * .NET Micro device library for the SensorThings API

Example

 * 1) OGC Incident Management Information Sharing Pilot project service: This OGC IMIS Pilot service supports a READ-only SensorThings service with several live sensors.
 * 2) SensorThings API - Arduino 101 A tutorial of connecting an Arduino Ethernet board to OGC SensorThings API.
 * 3) SensorThings API 101 - How to upload observation data to SensorThings API A tutorial regarding creating a Thing instance, the related entities with SensorThings API, and eventually upload sensor readings.
 * 4) Open Standard-based Internet of Pumpkins
 * 5) SensorThings API - mbed A tutorial of connecting ARM mbed LPC1768 to OGC SensorThings API.

Links

 * 1) SensorThings API - GitHub
 * 2) Presentation: Sensor up your connected applications with OGC SensorThings API (FOSS4G)
 * 3) Chapter: Mapping the OGC SensorThings API onto the OpenIoT Middleware
 * 4) Tutorial in Youtube: "Getting Started Series"
 * 5) Application: SensorThings Playground allows interested people and organizations to experiment with a SensorThings system via a friendly, step-by-step process.