stringtranslate.com

API-интерфейс SensorThings

SensorThings API [1] — это стандарт Open Geospatial Consortium (OGC), предоставляющий открытую и унифицированную структуру для соединения сенсорных устройств, данных и приложений IoT через Интернет. Это открытый стандарт, решающий вопросы синтаксической и семантической совместимости Интернета вещей. Он дополняет существующие сетевые протоколы IoT, такие как CoAP , MQTT , HTTP , 6LowPAN . В то время как вышеупомянутые сетевые протоколы IoT решают проблему возможности различных систем IoT обмениваться информацией, OGC SensorThings API решает проблему возможности различных систем IoT использовать и понимать обмениваемую информацию. Как стандарт OGC, SensorThings API также обеспечивает простую интеграцию в существующие инфраструктуры пространственных данных или географические информационные системы .

OGC SensorThings API состоит из двух частей: (1) Часть I - Зондирование и (2) Часть II - Задачи. OGC SensorThings API Часть I - Зондирование была выпущена для публичного обсуждения 18 июня 2015 года. [2] Технический комитет OGC (TC) одобряет начало электронного голосования 3 декабря 2015 года, а SensorThings API Часть I - Зондирование прошла голосование TC 1 февраля 2016 года. Официальная спецификация стандарта OGC была опубликована в сети 26 июля 2016 года. В 2019 году SensorThings API также был опубликован в качестве технической спецификации ITU-T Организации Объединенных Наций. [3]

OGC SensorThings API Часть II - Tasking Core был выпущен для публичного обсуждения 20 февраля 2018 г. [4] и прошел голосование технического комитета 1 июня 2018 г. Официальная спецификация стандарта OGC для SensorThings API Часть II - Tasking Core была опубликована в сети 8 января 2019 г.

Чтобы обеспечить разработчикам лучший опыт, 18 декабря 2018 года в сети был опубликован документ SensorThings API Часть II - Tasking Core Discussion Paper. В документе Tasking Core Discussion Paper приведены 15 примеров JSON, демонстрирующих, как можно использовать SensorThings API Часть II - Tasking Core.

Дизайн

API SensorThings разработан специально для устройств IoT с ограниченными ресурсами и сообщества веб-разработчиков. Он следует принципам REST , кодировке JSON , протоколу OASIS OData и соглашениям URL. Кроме того, он имеет расширение MQTT , позволяющее пользователям/устройствам публиковать и подписываться на обновления с устройств, и может использовать CoAP в дополнение к HTTP.

Модель данных API SensorThings

Основой API SensorThings является его модель данных, основанная на ISO 19156 (ISO/OGC Observations and Measurements ), которая определяет концептуальную модель для наблюдений и для функций, участвующих в отборе проб при проведении наблюдений. В контексте SensorThings функции моделируются как Вещи , Датчики ( т. е . Процедуры в O&M) и Функции Интересов . В результате API SensorThings обеспечивает совместимое представление, ориентированное на Наблюдение, что особенно полезно для согласования различий между гетерогенными системами датчиков (например, датчиками на месте и удаленными датчиками).

Устройство или система IoT моделируется как Thing . Thing имеет произвольное количество Location (включая 0 Location ) и произвольное количество Datastream (включая 0 Datastream ). Каждый Datastream наблюдает одно ObservedProperty с одним Sensor и имеет множество Observations, собранных Sensor . Каждое Observation наблюдает один конкретный FeatureOfInterest . Модель на основе O&M позволяет SensorThings размещать гетерогенные устройства IoT и данные, собранные устройствами. [5]

API SensorThings предоставляет две основные функции, каждая из которых обрабатывается частью. Два профиля — это часть Sensing и часть Tasking. Часть Sensing предоставляет стандартный способ управления и извлечения наблюдений и метаданных из гетерогенных систем датчиков IoT, а функции части Sensing аналогичны службе наблюдения датчиков OGC . Часть Tasking предоставляет стандартный способ параметризации — также называемой постановкой задач — устройств IoT, способных выполнять задачи, таких как датчики или исполнительные механизмы. Функции части Tasking аналогичны службе планирования датчиков OGC. Часть Sensing разработана на основе модели наблюдений и измерений ISO/OGC (O&M) и позволяет устройствам и приложениям IoT СОЗДАВАТЬ, ЧИТАТЬ, ОБНОВЛЯТЬ и УДАЛЯТЬ ( т. е . HTTP POST, GET, PATCH и DELETE) данные и метаданные IoT в службе SensorThings.

Сущности (ресурсы)

SensorThings API Часть I - Sensing определяет следующие ресурсы. Поскольку SensorThings является веб-сервисом RESTful, каждый объект может быть СОЗДАН, ЧИТАН, ОБНОВЛЕН и УДАЛЕН с помощью стандартных HTTP-глаголов ( POST , GET , PATCH и DELETE): [6] [7]

В дополнение к указанным выше ресурсам датчиков, SensorThings API Часть II - Ядро задач определяет следующие ресурсы: [10]

Пример полезной нагрузки

http://example.org/v1.0/Datastream(id)/Observations

{ "@iot.count" : 2 ,  "ценить" : [  { "@iot.id" : 1 ,  "@iot.selfLink" : "http://example.org/v1.0/Observations(1)" ,  "phenomenonTime" : "2016-01-01T05:00:00.000Z" ,  "результат" : "-9" ,  "resultTime" : null ,  "[email protected]" : "http://example.org/v1.0/Observations(1)/Datastream" ,  «[email protected]» : «http://example.org/v1.0/Observations(1)/FeatureOfInterest»  }, { "@iot.id" : 2 ,  "@iot.selfLink" : "http://example.org/v1.0/Observations(2)" ,  "phenomenonTime" : "2016-01-01T04:00:00.000Z" ,  "результат" : "-10" ,  "resultTime" : null ,  "[email protected]" : "http://example.org/v1.0/Observations(2)/Datastream" ,  «[email protected]» : «http://example.org/v1.0/Observations(2)/FeatureOfInterest»  } ]}

Расширения массива данных

Чтобы уменьшить объем данных, передаваемых по сети, расширение массива данных API SensorThings позволяет пользователям запрашивать несколько сущностей Observation и форматировать сущности в формате dataArray. Когда служба SensorThings возвращает ответ dataArray, служба группирует сущности Observation по Datastream или MultiDatastream, что означает, что сущности Observation, которые ссылаются на один и тот же Datastream или один и тот же MultiDatastream, агрегируются в один dataArray.

Пример запроса массива данных

http://example.org/v1.0/Observations?$resultFormat=dataArray

Пример ответа массива данных

{ "ценить" : [  { "[email protected]" : "http://example.org/v1.0/Datastreams(1)" ,  "компоненты" : [  "идентификатор" , "феноменВремя" , "resultTime" , "результат" ], "[email protected]" : 3 ,  "dataArray" : [  [ 1 , "2005-08-05T12:21:13Z" , "2005-08-05T12:21:13Z" , 20 ], [ 2 , "2005-08-05T12:22:08Z" , "2005-08-05T12:21:13Z" , 30 ], [ 3 , "2005-08-05T12:22:54Z" , "2005-08-05T12:21:13Z" , 0 ] ] } ]}

Оценка

Взаимодействие между OpenIoT и SensorThings « Мы считаем, что реализация API SensorThing станет серьезным улучшением для промежуточного программного обеспечения OpenIoT. Это предоставит OpenIoT стандартизированный и действительно простой в использовании интерфейс для значений датчиков. Это дополнит богатые службы семантического обоснования простым интерфейсом на основе ресурсов. А согласованное отображение модели данных дает общий контекст для описания Интернета вещей ». [12]

Эффективность API SensorThings Комплексная оценка API SensorThings опубликована в работе Джазаери, Мохаммада Али, Стива Х. Л. Ляна и Чи-Юань Хуана. «Внедрение и оценка четырех совместимых открытых стандартов для Интернета вещей». Датчики 15.9 (2015): 24343-24373.

Кавычки

API SensorThings был продемонстрирован в пилотном проекте [13], спонсируемом Управлением науки и технологий Министерства внутренней безопасности . Доктор Реджинальд Бразерс, заместитель министра науки и технологий Министерства внутренней безопасности, был «впечатлен «практическим состоянием», в котором эти различные промышленные датчики могут быть интегрированы сегодня с использованием открытых стандартов, которые устраняют ограничения одноразовых технологий. [14] »

Стандартная спецификация API OGC SensorThings

Бесплатные и открытые реализации API SensorThings

Усы

В марте 2016 года SensorUp и лаборатория GeoSensorWeb в Университете Калгари подали предложение о проекте программного обеспечения с открытым исходным кодом в Eclipse Foundation и оно было одобрено. Проект называется Whiskers. [15] Whiskers — это фреймворк OGC SensorThings API. Он будет иметь клиент JavaScript и легкий сервер для шлюзовых устройств IoT (например, Raspberry Pi или BeagleBone). Whiskers нацелен на развитие здоровой и открытой экосистемы IoT, в отличие от той, в которой доминируют закрытые информационные хранилища. Whiskers нацелен на то, чтобы сделать разработку SensorThings легкой для большого и растущего мира разработчиков IoT.

ГОСТ

ГОСТ [16] — это реализация API SensorThings с открытым исходным кодом на языке программирования Go , инициированная Geodan. Она содержит легко развертываемое серверное программное обеспечение и клиент JavaScript. В настоящее время (июнь 2016 г.) она находится в разработке, но первую версию уже можно загрузить и развернуть. Программное обеспечение можно установить на любое устройство, поддерживающее Docker или Go (например, Windows, Linux, Mac OS и Raspberry Pi). По умолчанию данные датчиков хранятся в базе данных PostgreSQL .

МОРОЗ

FROST-Server [17] — это реализация Open Source-сервера OGC SensorThings API. FROST-Server реализует всю спецификацию, включая все расширения. Он написан на Java и может работать в Tomcat или Wildfly, а также доступен в виде образа Docker. Среди его многочисленных функций — возможность использовать идентификаторы сущностей на основе строк или UUID.

FROST-Client [18] — клиентская библиотека Java для взаимодействия с сервером, совместимым с API SensorThings.

SDK для построения диаграмм SensorThings HcDT

SensorThings HcDT [19] — это библиотека JavaScript для построения диаграмм для API OGC SensorThings. Она основана на библиотеке Highcharts с открытым исходным кодом [ требуется пояснение ] и DataTables. Это библиотека фронтенд-диаграмм, позволяющая разработчикам подключаться к потокам данных из любой службы API OGC SensorThings и отображать наблюдения датчиков в виде диаграмм, таблиц или виджетов панели мониторинга для веб-приложений.

Mozilla STA

Mozilla разработала реализацию узла OGC SensorThings API. [20]

52° северной широты

52N SensorThingsAPI [21] — это реализация API OGC SensorThings с открытым исходным кодом. Ее основными функциями являются взаимодействие с 52N SOS, реализующим OGC Sensor Observation Service , настраиваемые сопоставления баз данных и несколько удобных расширений. Ее можно развернуть как контейнер Docker, внутри Apache Tomcat или как отдельное приложение.

Примеры приложений

Министерство внутренней безопасности США и Канады: оперативный эксперимент Shaken Fury

В 2019 году операционный эксперимент Shaken Fury [22] для программы DHS Next Generation First Responder описывает сценарий землетрясения, вызывающего частичное обрушение конструкции и утечку HAZMAT на стадионе. API OGC SensorThings используется в качестве стандартного интерфейса [23] , который соединяет несколько датчиков и предлагает ситуационную осведомленность в режиме реального времени с поддержкой IoT.

Умные граждане для умных городов YYC — краудсорсинговое зондирование качества воздуха

8 октября 2016 года [24] группа волонтеров (умных граждан) в Калгари собралась вместе, собрала собственные датчики, установила их в своих домах и сформировала краудсорсинговую сеть датчиков качества воздуха. Все данные общедоступны через API OGC SensorThings. [25] Благодаря этим усилиям по зондированию граждан количество датчиков качества воздуха в Калгари увеличилось с 3 до более чем 50.

Проект «Умные выбросы» в Неймегене, Нидерланды

Smart emission [26] — проект мониторинга качества воздуха в городе Неймеген, Нидерланды. В рамках проекта было развернуто несколько датчиков качества воздуха по всему городу. Данные публикуются с использованием открытых стандартов, включая API OGC SensorThings. Частью проекта является механизм ETL с открытым исходным кодом для загрузки данных датчиков проекта в API OGC SensorThings. [27]

Панель управления SensorThings

Эта панель управления обеспечивает простую в использовании клиентскую визуализацию данных датчиков Интернета вещей с совместимых с API OGC SensorThings серверов. Различные типы виджетов могут быть размещены и настроены на панели управления. Это веб-приложение, которое может быть встроено в любой веб-сайт. Живая демонстрация доступна на странице проекта. https://github.com/SensorThings-Dashboard/SensorThings-Dashboard

ГОСТ Панель инструментов v2

GOST Dashboard v2 — это библиотека с открытым исходным кодом пользовательских HTML-элементов (веб-компонентов), поддерживающих API SensorThings. Эти элементы облегчают разработку HTML-приложений, интегрирующих функциональность и данные из совместимых с API SensorThings сервисов. Компоненты разработаны с помощью Predix-UI и Polymer.

Проект AFarCloud OGC Connector

Коннектор обеспечивает взаимодействие между источниками данных, соответствующими OGC, и семантическим промежуточным программным обеспечением [28], разработанным в проекте Horizon 2020 ECSEL AFarCloud. Это модульное приложение Java с развертыванием на основе Docker, реализованное в соответствии со стандартом реализации OGC SensorThings API 1.0 15-078r6.

Сравнение API OGC SensorThings и служб наблюдения за датчиками OGC

API SensorThings предоставляет функции, аналогичные OGC Sensor Observation Service , спецификации OGC, одобренной в 2005 году. Обе стандартные спецификации входят в стандартный набор OGC Sensor Web Enablement . В следующей таблице суммированы технические различия между двумя спецификациями. [29]

Внешние ссылки

Ссылки

  1. ^ "OGC SensorThings API". Открытый геопространственный консорциум . Получено 20.02.2018 .
  2. ^ "OGC ищет публичные комментарии по стандарту API SensorThings для Интернета вещей | OGC". www.opengeospatial.org . Получено 26.01.2016 .
  3. ^ "Техническая спецификация D3.2 - API SensorThings - Датчики". www.itu.int . Получено 17 июля 2019 г.
  4. ^ "OGC ищет публичные комментарии по стандарту-кандидату 'SensorThings API Часть 2 – Ядро задач' для использования в Интернете вещей | OGC". www.opengeospatial.org . Получено 21.02.2018 .
  5. ^ "API Reference". www.sensorup.com . Архивировано из оригинала 2016-02-03 . Получено 2016-01-26 .
  6. ^ ab Liang, Steve; Huang, Chih-Yuan; Khalafbeigi, Tania, ред. (2016-07-26). OGC® SensorThings API Часть 1: Датчики.
  7. ^ "SensorThings Data Model". ogc-iot.github.io . Получено 2016-01-26 .
  8. ^ tsbmail. "Y.2060: Обзор Интернета вещей". www.itu.int . Получено 2016-01-26 .
  9. ^ ab "ISO 19156:2011 - Географическая информация - Наблюдения и измерения". www.iso.org . Получено 2016-01-26 .
  10. ^ ab Liang, Steve; Khalafbeigi, Tania, ред. (2019-01-08). OGC® SensorThings API Часть 2: Ядро задач.
  11. ^ "Язык модели датчика (SensorML) | OGC". www.opengeospatial.org . Получено 21.02.2018 .
  12. ^ Шааф, Хильке ван дер; Херцог, Рейнхард (01 января 2015 г.). Жарко, Ивана Поднар; Припужич, Крешимир; Серрано, Мартин (ред.). Сопоставление API OGC SensorThings с промежуточным программным обеспечением OpenIoT . Конспекты лекций по информатике. Международное издательство Спрингер. стр. 62–70. дои : 10.1007/978-3-319-16546-2_6. ISBN 9783319165455.
  13. ^ «OGC объявляет об успешном завершении пилотного проекта по обмену информацией об управлении инцидентами в Интернете вещей».
  14. ^ "Пилотный проект Интернета вещей от S&T демонстрирует практическое состояние". 2016-01-25 . Получено 2016-02-14 .
  15. ^ "Whisker, предложение проекта Eclipse". 2016-03-11 . Получено 2016-03-24 .
  16. ^ "Geodan/gost". GitHub . Получено 2016-06-30 .
  17. ^ "FraunhoferIOSB/FROST-Server". GitHub . Получено 2018-07-04 .
  18. ^ "FraunhoferIOSB/FROST-Client". GitHub . Получено 2018-07-04 .
  19. ^ "SensorThings Highchart and DataTable (HcDT) | SensorUp". www.sensorup.com . Архивировано из оригинала 20-08-2016 . Получено 31-08-2016 .
  20. ^ "mozilla-sensorweb/sensorthings". GitHub . Получено 2017-03-05 .
  21. ^ 52North/sensorweb-server-sta, 52°North Initiative for Geospatial Open Source Software GmbH, 2020-11-17 , получено 2020-11-24
  22. ^ "Пресс-релиз: S&T, Industry, Responders Partners для оценки технологий". Министерство внутренней безопасности . 2019-06-10 . Получено 2019-07-17 .
  23. ^ "NGFR Integration Handbook". Министерство внутренней безопасности . 2018-02-06 . Получено 2019-07-17 .
  24. ^ "Calgary sensor pilot помогает вам спланировать пробежку с лучшим качеством воздуха | Metro News". metronews.ca . Архивировано из оригинала 2016-11-04 . Получено 2016-11-04 .
  25. ^ "Качество воздуха в Калгари". calgary-air.sensorup.com . Получено 2016-11-04 .
  26. ^ участники, Just van den Broecke - Geonovum original: Mark Otto, Jacob Thornton и Bootstrap. "Smart Emission". data.smartemission.nl . Получено 2016-11-04 . {{cite web}}: |last=имеет общее название ( помощь )CS1 maint: несколько имен: список авторов ( ссылка )
  27. ^ "Geonovum/smartemission". GitHub . Получено 2016-11-04 .
  28. ^ Кепка, Михал; Черны, Лукаш; Брада, Премек (ноябрь 2020 г.). «Открытая система для мониторинга явлений окружающей среды: Аннотация к постеру». Труды 18-й конференции по встроенным сетевым сенсорным системам . ACM. стр. 659–660. doi :10.1145/3384419.3430443. ISBN 9781450375900. S2CID  227154703.
  29. ^ "Сравнение API SensorThings и Sensor Observation Service". Архивировано из оригинала 2016-03-06 . Получено 2016-02-29 .