SensorThings API - SensorThings API
Положение дел | Спецификация стандартной реализации OGC |
---|---|
Год начался | 2015 |
Последняя версия | 1.0 |
Редакторы | Стив Лян (SensorUp ), Чжи-Юань Хуан (Национальный центральный университет ), Таня Халафбейги (SensorUp ) |
Базовые стандарты | JSON, OGC / ISO 19156: 2011 O&M |
Домен | Открытый геопространственный консорциум, Интернет вещей |
Сокращение | OGC STA |
Интернет сайт | Стандартная страница API OGC SensorThings на GitHub |
Положение дел | Спецификация стандартной реализации OGC |
---|---|
Год начался | 2018 |
Последняя версия | 1.0 |
Редакторы | Стив Лян (SensorUp ), Таня Халафбейги (SensorUp ) |
Базовые стандарты | OGC SPS |
Домен | Открытый геопространственный консорциум, Интернет вещей |
Сокращение | OGC STA |
Интернет сайт | Стандартная страница API OGC SensorThings на GitHub |
Положение дел | Документ для обсуждения OGC |
---|---|
Год начался | 2018 |
Последняя версия | 1.0 |
Редакторы | Стив Лян (SensorUp ), Таня Халафбейги (SensorUp ), Кан Луо (Университет Калгари) |
Базовые стандарты | OGC SensorThings |
Домен | Открытый геопространственный консорциум, Интернет вещей |
Сокращение | OGC STA |
Интернет сайт | Страница загрузки документа для обсуждения основных задач API OGC SensorThings |
SensorThings API[1] является Открытый геопространственный консорциум (OGC) стандарт, обеспечивающий открытую и единую структуру для взаимодействия Интернет вещей считывание устройств, данных и приложений через Интернет. Это открытый стандарт, касающийся синтаксическая совместимость и семантическая совместимость Интернета вещей. Он дополняет существующие сетевые протоколы IoT, такие как CoAP, MQTT, HTTP, 6LowPAN. В то время как вышеупомянутые сетевые протоколы IoT обращаются к способности различных систем IoT обмениваться информацией, OGC SensorThings API обращается к способности различных систем IoT использовать и понимать передаваемую информацию. В качестве стандарта OGC SensorThings API также позволяет легко интегрировать в существующие Инфраструктуры пространственных данных или же Географические информационные системы.
OGC SensorThings API состоит из двух частей: (1) Часть I - Определение и (2) Часть II - Задачи. OGC SensorThings API Part I - Sensing был выпущен для общественного обсуждения 18 июня 2015 г.[2] Технический комитет (TC) OGC одобряет начало электронного голосования 3 декабря 2015 года, а SensorThings API Part I - Sensing прошел голосование TC 1 февраля 2016 года. официальная стандартная спецификация OGC был опубликован в Интернете 26 июля 2016 года. В 2019 году SensorThings API был также опубликован как Техническая спецификация ITU-T Организации Объединенных Наций.[3].
OGC SensorThings API Part II - Tasking Core был выпущен для общественного обсуждения 20 февраля 2018 г.[4], и он прошел голосование TC 1 июня 2018 г. официальная стандартная спецификация OGC для SensorThings API Часть II - Ядро задач было опубликовано в Интернете 8 января 2019 г.
Чтобы предложить разработчикам лучший опыт, API SensorThings, часть II - дискуссионный документ по основным задачам был опубликован в Интернете 18 декабря 2018 года. В документе для обсуждения ядра задач приведены 15 примеров JSON, показывающих, как можно использовать SensorThings API, часть II - ядро задач.
Дизайн
SensorThings API разработан специально для устройств Интернета вещей с ограниченными ресурсами и сообщества веб-разработчиков. Следует ОТДЫХ принципы, JSON кодирование, и OASIS OData протокол и соглашения об URL. Кроме того, он имеет MQTT расширение, позволяющее пользователям / устройствам публиковать обновления с устройств и подписываться на них, а также использовать CoAP в дополнение к HTTP.
В основе API SensorThings лежит его модель данных, основанная на ISO 19156 (ISO / OGC Наблюдения и измерения ), который определяет концептуальную модель для наблюдений, а также для функций, участвующих в выборке при проведении наблюдений. В контексте SensorThings функции моделируются как Вещи, Датчики (т.е., Процедуры в O&M), и Особенность интересов. В результате API SensorThings предоставляет функционально совместимое представление с фокусом наблюдения, которое особенно полезно для согласования различий между разнородными сенсорными системами (например, на месте датчики и удаленные датчики).
Устройство или система Интернета вещей моделируется как Вещь. А Вещь имеет произвольное количество Место расположенияs (включая 0 Место расположенияs) и произвольное количество Потоки данных (в том числе 0 Поток данныхс). Каждый Поток данных замечает один Наблюдаемое свойство с одним Датчик и имеет много Наблюдения собраны Датчик. Каждый Наблюдение отмечает один конкретный FeatureOfInterest. Модель на основе O&M позволяет SensorThings работать с разнородными устройствами IoT и данными, собранными этими устройствами.[5]
SensorThings API предоставляет две основные функции, каждая из которых обрабатывается отдельной частью. Эти два профиля - это сенсорная часть и часть задач. Часть Sensing предоставляет стандартный способ управления и извлечения наблюдений и метаданных из гетерогенных сенсорных систем IoT, а функции части Sensing аналогичны функциям OGC. Служба наблюдения за датчиками. Часть «Задачи» предоставляет стандартный способ параметризации - также называемой постановкой задач - устройств IoT с возможностью выполнения задач, таких как датчики или исполнительные механизмы. Функции части задач аналогичны функциям OGC. Служба планирования датчиков. Чувствительная часть разработана на основе ISO / OGC Наблюдения и измерения (O&M) и позволяет устройствам и приложениям IoT СОЗДАТЬ, ЧИТАТЬ, ОБНОВЛЯТЬ и УДАЛИТЬ (т.е., HTTP POST, GET, PATCH и DELETE) данные и метаданные Интернета вещей в службе SensorThings.
Сущности (ресурсы)
SensorThings API Part I - Sensing определяет следующие ресурсы. Поскольку SensorThings является веб-службой RESTful, каждый объект может быть СОЗДАН, ЧИТАТЬ, ОБНОВЛЕН и УДАЛЕН с помощью стандартных HTTP-глаголы (ПОЧТОВЫЙ, ПОЛУЧАТЬ, PATCH и DELETE):[6][7]
Вещь
: Объект физического мира (физические вещи) или информационного мира (виртуальные вещи), который можно идентифицировать и интегрировать в сети связи.[8]Локации
: Находит Вещь или Вещи это связано с.Исторические места
: Set предоставляет текущее (т.е. последнее известное) и предыдущее расположение Вещь со своим временем.Поток данных
: Сборник наблюдений и наблюдений в Поток данных измерить то же самое Наблюдаемое свойство и производятся тем же Датчик.Наблюдаемое свойство
: Определяет явление Наблюдение.Датчик
: Инструмент, который наблюдает за свойством или явлением с целью произвести оценку стоимости собственности.Наблюдение
: Акт измерения или иного определения стоимости имущества.[9]FeatureOfInterest
: An Наблюдение приводит к тому, что феномену присваивается значение. Явление является свойством признака, последний является FeatureOfInterest из Наблюдение.[9]
В дополнение к указанным выше ресурсам датчиков SensorThings API Part II - Tasking Core определяет следующие ресурсы:[10]
Возможности задач
: Задает параметры актуатора, доступные для выполнения.Задачи
: Созданная коллекция задач.Привод
: Тип преобразователя, который преобразует сигнал в реальное действие или явление.[11].
Пример полезной нагрузки
http://example.org/v1.0/Datastream(id)/Observations
1 { 2 "@ iot.count": 2, 3 "ценить": [ 4 { 5 "@ iot.id": 1, 6 "@ iot.selfLink": "http://example.org/v1.0/Observations(1)", 7 "ФеноменВремя": "2016-01-01T05: 00: 00.000Z", 8 "результат": "-9", 9 "resultTime": ноль,10 "[email protected]": "http://example.org/v1.0/Observations(1)/Datastream",11 "[email protected]": "http://example.org/v1.0/Observations(1)/FeatureOfInterest"12 },13 {14 "@ iot.id": 2,15 "@ iot.selfLink": "http://example.org/v1.0/Observations(2)",16 "ФеноменВремя": "2016-01-01T04: 00: 00.000Z",17 "результат": "-10",18 "resultTime": ноль,19 "[email protected]": "http://example.org/v1.0/Observations(2)/Datastream",20 "[email protected]": "http://example.org/v1.0/Observations(2)/FeatureOfInterest"21 }22 ]23 }
Расширения массивов данных
Чтобы уменьшить размер данных, передаваемых по сети, расширение массива данных API SensorThings позволяет пользователям запрашивать несколько объектов наблюдения и форматировать объекты в формате dataArray. Когда сервис SensorThings возвращает ответ dataArray, сервис группирует объекты Observation по Datastream или MultiDatastream, что означает, что объекты Observation, которые ссылаются на один и тот же Datastream или тот же MultiDatastream, объединяются в один dataArray.
Пример запроса массива данных
http://example.org/v1.0/Observations?$resultFormat=dataArray
Пример ответа массива данных
1 { 2 "ценить": [ 3 { 4 "[email protected]": "http://example.org/v1.0/Datastreams(1)", 5 "составные части": [ 6 "я бы", 7 "ФеноменВремя", 8 "resultTime", 9 "результат"10 ],11 "[email protected]": 3,12 "dataArray": [13 [14 1,15 "2005-08-05T12: 21: 13Z",16 "2005-08-05T12: 21: 13Z",17 2018 ],19 [20 2,21 "2005-08-05T12: 22: 08Z",22 "2005-08-05T12: 21: 13Z",23 3024 ],25 [26 3,27 "2005-08-05T12: 22: 54Z",28 "2005-08-05T12: 21: 13Z",29 030 ]31 ]32 }33 ]34 }
Оценка
Взаимодействие между OpenIoT и SensorThings"Мы считаем, что реализация SensorThing API станет значительным улучшением промежуточного программного обеспечения OpenIoT. Он предоставит OpenIoT стандартизованный и действительно простой в использовании интерфейс для значений датчиков. Это дополнит богатые службы семантического мышления простым интерфейсом на основе ресурсов. И согласованное отображение модели данных дает общий контекст для описания Интернета вещей.".[12]
Эффективность SensorThings APIПодробная оценка API SensorThings опубликована в Джазайери, Мохаммед Али, Стив Х.Л. Лян и Чжи-Юань Хуанг. «Внедрение и оценка четырех совместимых открытых стандартов Интернета вещей». Датчики 15.9 (2015): 24343-24373.
Цитаты
SensorThings API был продемонстрирован в пилотном проекте[13] спонсируется Департамент внутренней безопасности Управление науки и технологий. Доктор Реджинальд Бразерс, заместитель министра по науке и технологиям национальной безопасности, был «впечатлен« практическим состоянием », в котором эти различные промышленные датчики могут быть интегрированы сегодня с использованием открытых стандартов, которые снимают ограничения, накладываемые одноразовыми технологиями.[14] "
Стандартные спецификации API OGC SensorThings
- API OGC® SensorThings, часть 1: зондирование[6]
- Внутренний ссылочный номер этого документа OGC®: 15-078r6
- Дата подачи: 18.06.2015
- Дата публикации: 26.07.2016
- Редактор: Стив Лян (Университет Калгари /SensorUp )
- Соредакторы: Чжи-Юань Хуан (Национальный центральный университет ) / Таня Халафбейги (Университет Калгари /SensorUp )
- API OGC® SensorThings, часть 2: Ядро задач[10]
- Внутренний ссылочный номер этого документа OGC®: 17-079r1
- Дата подачи: 2017-10-13
- Дата публикации: 2019-01-08
- Редактор: Стив Лян (Университет Калгари /SensorUp )
- Соредакторы: Таня Халафбейги (Университет Калгари /SensorUp )
- Документация по API разработчика
- Тестовая среда SensorThings API
- Набор тестов на соответствие SensorThings
Бесплатные и открытые реализации API SensorThings
Усы
В марте 2016 г. SensorUp лаборатория GeoSensorWeb в Университете Калгари представила Eclipse Foundation предложение по проекту программного обеспечения с открытым исходным кодом и получила одобрение. Проект называется Усы.[15] Whiskers - это платформа OGC SensorThings API. Будет JavaScript клиент и легкий сервер для устройств шлюза Интернета вещей (например, Raspberry Pi или BeagleBone). Whiskers нацелены на создание здоровой и открытой экосистемы IoT, в отличие от экосистемы, в которой доминируют разрозненные хранилища закрытой информации. Whiskers стремится упростить разработку SensorThings для большого и растущего мира разработчиков Интернета вещей.
ГОСТ
ГОСТ[16] - реализация API SensorThings с открытым исходным кодом в Язык программирования Go по инициативе Геодана. Он содержит легко развертываемое серверное программное обеспечение и клиент JavaScript. В настоящее время (июнь 2016 г.) он находится в разработке, но первая версия уже может быть загружена и развернута. Программное обеспечение можно установить на любое устройство, поддерживающее Docker или Go (например, Windows, Linux, Mac OS и Raspberry Pi). По умолчанию данные датчика хранятся в PostgreSQL база данных.
МОРОЗ
FROST-Сервер[17] - это серверная реализация OGC SensorThings API с открытым исходным кодом. FROST-Server реализует всю спецификацию, включая все расширения. Он написан на Java, может работать в Tomcat или Wildfly и доступен в виде образа Docker. Среди его многочисленных функций - возможность использовать идентификаторы объектов на основе String или UUID.
ФРОСТ-Клиент[18] - это клиентская библиотека Java для связи с сервером, совместимым с SensorThings API.
SDK для создания графиков SensorThings HcDT
SensorThings HcDT[19] - это библиотека диаграмм JavaScript для OGC SensorThings API. Он основан на открытом исходном коде[требуется разъяснение ] Highcharts библиотека и Таблицы данных. Это интерфейсная библиотека диаграмм, позволяющая разработчикам подключаться к потокам данных из любой службы OGC SensorThings API и отображать наблюдения датчиков в виде диаграмм, таблиц или виджетов панели мониторинга для веб-приложений.
Mozilla STA
Mozilla разработал реализацию узла OGC SensorThings API.[20]
52 ° северной широты
52N SensorThingsAPI[21] - это реализация OGC SensorThings API с открытым исходным кодом. Его основные особенности - это совместимость с 52N SOS реализация Служба наблюдения датчиков OGC, настраиваемые сопоставления баз данных и несколько удобных расширений. Его можно развернуть как контейнер Docker внутри Apache Tomcat или как отдельное приложение.
Примеры приложений
Департамент внутренней безопасности S&T Оперативный эксперимент Shaken Fury
В 2019 году оперативный эксперимент Shaken Fury[22] Программа первого реагирования DHS Next Generation First Responder описывает сценарий землетрясения, вызывающего частичное обрушение конструкции и утечку HAZMAT на стадионе. OGC SensorThings API используется как стандартный интерфейс[23] который соединяет несколько датчиков и предлагает ситуационную осведомленность в реальном времени с помощью Интернета вещей.
Умные граждане для умных городов YYC - Крауд-анализ качества воздуха
8 октября 2016 г.[24] группа добровольцев (умных граждан) в Калгари собралась вместе, собрала свои собственные датчики, установила в своих домах и сформировала краудсорсинговую сеть датчиков качества воздуха. Все данные публично доступны через OGC SensorThings API.[25] Благодаря усилиям по распознаванию граждан количество датчиков качества воздуха в Калгари увеличилось с 3 до более чем 50.
Проект Smart Emission в Неймегене, Нидерланды
Умная эмиссия[26] это проект мониторинга качества воздуха в городе Неймеген, Нидерланды. В рамках проекта было развернуто несколько датчиков качества воздуха по всему городу. Данные публикуются с использованием открытых стандартов, включая OGC SensorThings API. Частью проекта является движок ETL с открытым исходным кодом для загрузки данных датчиков проекта в OGC SensorThings API.[27]
Панель управления SensorThings
Этот приборная панель обеспечивает простую в использовании визуализацию на стороне клиента данных датчиков Интернета вещей с серверов, совместимых с OGC SensorThings API. На панели управления можно расположить и настроить различные типы виджетов. Это веб-приложение, которое можно встроить в любой веб-сайт. Живая демонстрация доступна на страница проекта.https://github.com/SensorThings-Dashboard/SensorThings-Dashboard
GOST Dashboard v2
GOST Dashboard v2 - это библиотека пользовательских HTML-элементов (веб-компонентов) с открытым исходным кодом, поддерживающая SensorThings API. Эти элементы облегчают разработку HTML-приложений, интегрирующих функции и данные из сервисов, совместимых с SensorThings API. Компоненты разработаны с Predix-UI и Полимер.
Сравнение OGC SensorThings API и OGC Sensor Observation Services
SensorThings API предоставляет функции, аналогичные OGC. Служба наблюдения за датчиками, спецификация OGC, утвержденная в 2005 году. Обе стандартные спецификации относятся к OGC Включение Sensor Web стандартный люкс. В следующей таблице приведены технические различия между двумя спецификациями.[28]
API OGC SensorThings | OGC Служба наблюдения за датчиками (SOS) | |
---|---|---|
Кодирование | JSON | XML |
Архитектурный стиль | Ресурсо-ориентированная архитектура | Сервис-Ориентированная Архитектура |
Привязка | ОТДЫХ | МЫЛО |
Вставка новых датчиков или наблюдений | HTTP POST (например, CRUD ) | с использованием специальных интерфейсов SOS, например, RegisterSensor (), InsertObservation () |
Удаление существующих датчиков | HTTP УДАЛИТЬ | с использованием специальных интерфейсов SOS, то есть DeleteSensor () |
Пагинация | $ top, $ skip, $ nextLink | Не поддерживается |
Pub / Sub Поддерживать | MQTT и расширение SensorThings MQTT | Не поддерживается |
Обновление свойств существующих датчиков или наблюдений | HTTP-ПАТЧ и JSON-ПАТЧ | Не поддерживается |
Удаление наблюдений | HTTP УДАЛИТЬ | Не поддерживается |
Связанные данные поддерживать | JSON-LD | Не поддерживается |
Вернуть только те свойства, которые выбрал клиент | $ select | Не поддерживается |
Возврат нескольких объектов O&M (например, FeatureOfInterest и Observation) в одном запросе / ответе | $ развернуть | Не поддерживается |
Ссылки
- SensorThings API - GitHub
- Презентация: Управляйте подключенными приложениями с помощью OGC SensorThings API (FOSS4G)
- Глава: Сопоставление API OGC SensorThings с промежуточным программным обеспечением OpenIoT
- Руководство в YouTube: Начало работы, серия # 1, Учебное пособие по SensorThings, серия # 2 и Учебное пособие по SensorThings, серия № 3
- Заявление: SensorThings Детская площадка позволяет заинтересованным людям и организациям экспериментировать с системой SensorThings с помощью удобного пошагового процесса.
Рекомендации
- ^ "OGC SensorThings API". Открытый геопространственный консорциум. Получено 2018-02-20.
- ^ «OGC требует общественного обсуждения стандарта SensorThings API для Интернета вещей | OGC». www.opengeospatial.org. Получено 2016-01-26.
- ^ «Техническая спецификация D3.2 - SensorThings API - зондирование». www.itu.int. Получено 2019-07-17.
- ^ «OGC ищет общественный комментарий к кандидатскому стандарту SensorThings API Part 2 - Tasking Core для использования в Интернете вещей | OGC». www.opengeospatial.org. Получено 2018-02-21.
- ^ «Справочник по API». www.sensorup.com. Получено 2016-01-26.
- ^ а б Лян, Стив; Хуанг, Чжи-Юань; Халафбейги, Таня, ред. (2016-07-26). API OGC® SensorThings, часть 1: зондирование.
- ^ "Модель данных SensorThings". ogc-iot.github.io. Получено 2016-01-26.
- ^ tsbmail. «Y.2060: Обзор Интернета вещей». www.itu.int. Получено 2016-01-26.
- ^ а б «ISO 19156: 2011 - Географическая информация - Наблюдения и измерения». www.iso.org. Получено 2016-01-26.
- ^ а б Лян, Стив; Халафбейги, Таня, ред. (2019-01-08). API OGC® SensorThings, часть 2: Ядро задач.
- ^ "Язык модели датчика (SensorML) | OGC". www.opengeospatial.org. Получено 2018-02-21.
- ^ Шааф, Хильке ван дер; Херцог, Рейнхард (01.01.2015). Жарко, Ивана Поднар; Припужич, Крешимир; Серрано, Мартин (ред.). Сопоставление API OGC SensorThings с промежуточным программным обеспечением OpenIoT. Конспект лекций по информатике. Издательство Springer International. С. 62–70. Дои:10.1007/978-3-319-16546-2_6. ISBN 9783319165455.
- ^ «OGC объявляет об успешном завершении пилотного проекта по обмену информацией об управлении инцидентами в Интернете».
- ^ "Пилотный проект S&T по Интернету вещей демонстрирует практическое'". 2016-01-25. Получено 2016-02-14.
- ^ "Whisker, проектное предложение Eclipse". 2016-03-11. Получено 2016-03-24.
- ^ "Геодан / гост". GitHub. Получено 2016-06-30.
- ^ «ФраунгоферIOSB / FROST-Сервер». GitHub. Получено 2018-07-04.
- ^ «ФраунгоферIOSB / FROST-Клиент». GitHub. Получено 2018-07-04.
- ^ "SensorThings Highchart и DataTable (HcDT) | SensorUp". www.sensorup.com. Получено 2016-08-31.
- ^ "mozilla-sensorweb / sensorthings". GitHub. Получено 2017-03-05.
- ^ 52Север / sensorweb-server-sta, Инициатива 52 ° North для Geospatial Open Source Software GmbH, 2020-11-17, получено 2020-11-24
- ^ "Пресс-релиз: S&T, промышленность, партнеры респондентов по оценке технологий". Департамент внутренней безопасности. 2019-06-10. Получено 2019-07-17.
- ^ «Справочник по интеграции NGFR». Департамент внутренней безопасности. 2018-02-06. Получено 2019-07-17.
- ^ «Пилот датчика Калгари поможет вам спланировать пробежку с наилучшим качеством воздуха | Новости метро». metronews.ca. Получено 2016-11-04.
- ^ «Качество воздуха в Калгари». calgary-air.sensorup.com. Получено 2016-11-04.
- ^ авторы, Just van den Broecke - оригинал Geonovum: Марк Отто, Джейкоб Торнтон и Bootstrap. «Умная эмиссия». data.smartemission.nl. Получено 2016-11-04.
- ^ "Геоновум / умная миссия". GitHub. Получено 2016-11-04.
- ^ «Сравнение SensorThings API и Sensor Observation Service». Получено 2016-02-29.