| 略語 | OGC STA |
|---|---|
| 状態 | OGC 標準実装仕様 |
| 開始年 | 2015 |
| 最新バージョン | 1.0 |
| 編集者 | Steve Liang ( SensorUp )、Chih-Yuan Huang ( National Central University )、Tania Khalafbeigi ( SensorUp ) |
| 基本基準 | JSON、OGC/ISO 19156:2011 O&M |
| ドメイン | オープン地理空間コンソーシアム、モノのインターネット |
| Webサイト | OGC SensorThings API 標準 GitHub ページ |
| 略語 | OGC STA |
|---|---|
| 状態 | OGC 標準実装仕様 |
| 開始年 | 2018 |
| 最新バージョン | 1.0 |
| 編集者 | Steve Liang ( SensorUp )、Tania Khalafbeigi ( SensorUp ) 氏 |
| 基本基準 | OGC SPS |
| ドメイン | オープン地理空間コンソーシアム、モノのインターネット |
| Webサイト | OGC SensorThings API 標準 GitHub ページ |
| 略語 | OGC STA |
|---|---|
| 状態 | OGC ディスカッション ペーパー |
| 開始年 | 2018 |
| 最新バージョン | 1.0 |
| 編集者 | Steve Liang ( SensorUp )、Tania Khalafbeigi ( SensorUp )、Kan Luo ( カルガリー大学 ) |
| 基本基準 | OGC センサー |
| ドメイン | オープン地理空間コンソーシアム、モノのインターネット |
| Webサイト | OGC SensorThings API タスクコア ディスカッション ペーパーのダウンロード ページ |
SensorThings API [1]は、Webを介してIoTセンサーデバイス、データ、アプリケーションを相互接続するためのオープンで統一されたフレームワークを提供するOpen Geospatial Consortium (OGC)標準です。これは、モノのインターネットの構文上の相互運用性と意味上の相互運用性に対応するオープン標準です。これは、 CoAP、MQTT、HTTP、6LowPANなどの既存のIoTネットワークプロトコルを補完します。上記のIoTネットワークプロトコルは、異なるIoTシステム間で情報を交換する機能に対応していますが、OGC SensorThings APIは、異なるIoTシステム間で交換された情報を使用および理解する機能に対応しています。OGC標準として、SensorThings APIは、既存の空間データインフラストラクチャまたは地理情報システムへの簡単な統合も可能にします。
OGC SensorThings APIには、(1)パートI - センシングと(2)パートII - タスクの2つの部分があります。OGC SensorThings APIパートI - センシングは、2015年6月18日にパブリックコメントのためにリリースされました。 [2] OGC技術委員会(TC)は、2015年12月3日に電子投票の開始を承認し、SensorThings APIパートI - センシングは、2016年2月1日にTC投票を通過しました。公式のOGC標準仕様は、2016年7月26日にオンラインで公開されました。2019年には、SensorThings APIは国連のITU-T技術仕様としても公開されました。[3]
OGC SensorThings API Part II - Tasking Coreは、2018年2月20日にパブリックコメントのために公開され、[4] 2018年6月1日にTC投票を通過しました。SensorThings API Part II - Tasking Coreの公式OGC標準仕様は、2019年1月8日にオンラインで公開されました。
より優れた開発者エクスペリエンスを提供するために、SensorThings API パート II - Tasking Core ディスカッション ペーパーが 2018 年 12 月 18 日にオンラインで公開されました。Tasking Core ディスカッション ペーパーには、SensorThings API パート II - Tasking Core の使用方法を示す 15 個の JSON 例が記載されています。
デザイン
SensorThings API は、リソースが制限された IoT デバイスと Web 開発者コミュニティ向けに特別に設計されています。REST原則、JSONエンコーディング、OASIS ODataプロトコルと URL 規則に準拠しています。また、 MQTT拡張機能を備えているため、ユーザー/デバイスはデバイスからの更新を公開およびサブスクライブでき、HTTP に加えて CoAPも使用できます。

SensorThings API の基盤は、 ISO 19156 (ISO/OGC観測および測定)に基づくデータ モデルであり、観測の概念モデルと、観測を行う際のサンプリングに関係する機能を定義します。SensorThings のコンテキストでは、機能は、モノ、センサー(つまり、O&M の手順)、および関心対象機能としてモデル化されます。その結果、SensorThings API は相互運用可能な観測中心のビューを提供します。これは、異種のセンシング システム (例:インサイチュセンサーとリモート センサー) 間の違いを調整するのに特に役立ちます。
IoTデバイスまたはシステムは、Thingとしてモデル化されます。Thingには、任意の数のLocation(0個のLocationを含む)と任意の数のデータストリーム(0個のデータストリームを含む)があります。各データストリームは、 1つのセンサーで1つのObservedPropertyを観察し、センサーによって収集された多くのObservationsを持ちます。各Observationは、 1つの特定のFeatureOfInterestを観察します。O&Mベースのモデルにより、SensorThingsは異種のIoTデバイスとデバイスによって収集されたデータに対応できます。[5]
SensorThings API は、それぞれパーツによって処理される 2 つの主要な機能を提供します。2 つのプロファイルは、センシング パーツとタスク パーツです。センシング パーツは、異機種 IoT センサー システムから観測とメタデータを管理および取得するための標準的な方法を提供し、センシング パーツの機能は OGCセンサー観測サービスに似ています。タスク パーツは、センサーやアクチュエーターなどのタスク可能な IoT デバイスのパラメーター化 (タスクとも呼ばれます) のための標準的な方法を提供します。タスク パーツの機能は OGC センサー プランニング サービスに似ています。センシング パーツは、ISO/OGC観測および測定(O&M) モデルに基づいて設計されており、IoT デバイスとアプリケーションが SensorThings サービスで IoT データとメタデータを作成、読み取り、更新、および削除( HTTP POST、GET、PATCH、および DELETE) できるようにします。
エンティティ(リソース)
SensorThings API パート I - センシングでは、以下のリソースが定義されています。SensorThings は RESTful Web サービスであるため、各エンティティは標準のHTTP 動詞( POST、GET、PATCH、DELETE) を使用して CREATE、READ、UPDATE、DELETE できます。[6] [7]
Thing: 物理世界(物理的なもの)または情報世界(仮想的なもの)のオブジェクトであり、識別され、通信ネットワークに統合されることができるもの。[8]Locations:関連する物または物を見つけます。HistoricalLocations: Set は、 Thingの現在の (つまり、最後に知られている) 位置と以前の位置をその時間とともに提供します。Datastream: Observations のコレクションとデータストリーム内の Observations は同じObservedPropertyを測定し、同じSensorによって生成されます。ObservedProperty:観測 の現象を指定します。Sensor: 特性または現象を観察することで、その特性の価値を推定する手段。Observation: 財産の価値を測定または決定する行為。[9]FeatureOfInterest:観察は現象に値を割り当てます。現象は特徴のプロパティであり、特徴は観察のFeatureOfInterestです。[9]
上記のセンシングリソースに加えて、SensorThings APIパートII - Tasking Coreでは以下のリソースが定義されています。[10]
TaskingCapabilities: アクチュエータのタスク可能なパラメータを指定します。Tasks: 作成されたタスクのコレクション。Actuator信号を現実世界の行動や現象に変換するトランスデューサーの一種。[11]
ペイロードの例
http://example.org/v1.0/Datastream(id)/Observations
{
"@iot.count" : 2 ,
"価値" :[
{
"@iot.id" : 1 、
"@iot.selfLink" : "http://example.org/v1.0/Observations(1)" 、
「現象時間」: 「2016-01-01T05:00:00.000Z」、
「結果」: 「-9」、
"結果時間" : null 、
"Datastream@iot.navigationLink" : "http://example.org/v1.0/Observations(1)/Datastream" ,
"FeatureOfInterest@iot.navigationLink" : "http://example.org/v1.0/Observations(1)/FeatureOfInterest"
},
{
"@iot.id" : 2 ,
"@iot.selfLink" : "http://example.org/v1.0/Observations(2)" 、
「現象時間」: 「2016-01-01T04:00:00.000Z」、
「結果」: 「-10」、
"結果時間" : null 、
"Datastream@iot.navigationLink" : "http://example.org/v1.0/Observations(2)/Datastream" ,
"FeatureOfInterest@iot.navigationLink" : "http://example.org/v1.0/Observations(2)/FeatureOfInterest"
}
]
}
データ配列拡張
ネットワーク経由で送信されるデータのサイズを削減するために、SensorThings API データ配列拡張を使用すると、ユーザーは複数の Observation エンティティを要求し、エンティティを dataArray 形式でフォーマットできます。SensorThings サービスが dataArray 応答を返すと、サービスは Observation エンティティを Datastream または MultiDatastream ごとにグループ化します。つまり、同じ Datastream または同じ MultiDatastream にリンクする Observation エンティティは 1 つの dataArray に集約されます。
データ配列のリクエスト例
http://example.org/v1.0/Observations?$resultFormat=dataArray
データ配列応答の例
{
"価値" :[
{
"Datastream@iot.navigationLink" : "http://example.org/v1.0/Datastreams(1)" ,
「コンポーネント」: [
「ID」、
「現象時間」、
「結果時間」、
"結果"
]、
"dataArray@iot.count" : 3 ,
「データ配列」: [
[
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 の相互運用性 「SensorThing API の実装は、OpenIoT ミドルウェアの大きな改善になると考えています。これにより、OpenIoT はセンサー値への標準化された、本当に使いやすいインターフェイスを手に入れることができます。これにより、豊富なセマンティック推論サービスが、シンプルなリソースベースのインターフェイスで補完されます。また、一貫したデータ モデル マッピングにより、モノのインターネットを記述するための共通のコンテキストが両方に提供されます。」[12]
SensorThings API の効率性 SensorThings API の包括的な評価は、Jazayeri、Mohammad Ali、Steve HL Liang、Chih-Yuan Huang の共著「モノのインターネット向けの 4 つの相互運用可能なオープン スタンダードの実装と評価」に掲載されています。Sensors 15.9 (2015): 24343-24373。
引用
SensorThings APIは、国土安全保障省科学技術局が後援するパイロットプロジェクト[13]で実証されました。国土安全保障省科学技術局次官のレジナルド・ブラザーズ博士は、「今日では、これらのさまざまな産業用センサーを、単発技術のストーブパイプ制限を排除するオープンスタンダードを使用して統合できるという『実用的な状態』に感銘を受けました。[14]」
OGC SensorThings API 標準仕様
- OGC® SensorThings API パート1: センシング[6]
- OGC® SensorThings API パート2: タスクコア[10]
- 開発者APIドキュメント
- パート I - センシング
- パート II - タスク
- SensorThings API サンドボックスは 2016-09-16 にWayback Machineにアーカイブされました
- SensorThings コンプライアンス テスト スイート
無料でオープンソースの SensorThings API 実装
ウィスカー
2016 年 3 月、SensorUpとカルガリー大学の GeoSensorWeb Lab は、Eclipse Foundation にオープンソース ソフトウェア プロジェクトの提案を提出し、承認されました。このプロジェクトは Whiskers と呼ばれています。[15] Whiskers は OGC SensorThings API フレームワークです。JavaScript クライアントと、IoT ゲートウェイ デバイス (Raspberry Pi や BeagleBone など) 用の軽量サーバーを備えています。Whiskers は、独自の情報サイロが支配するエコシステムではなく、健全でオープンな IoT エコシステムを促進することを目的としています。Whiskers は、IoT 開発者の大規模で成長を続ける世界にとって SensorThings の開発を容易にすることを目的としています。
ゴスト
GOST [16]は、Geodanが始めたGoプログラミング言語によるSensorThings APIのオープンソース実装です。簡単にデプロイできるサーバーソフトウェアとJavaScriptクライアントが含まれています。現在(2016年6月)は開発中ですが、最初のバージョンはすでにダウンロードしてデプロイできます。ソフトウェアは、DockerまたはGoをサポートする任意のデバイス(Windows、Linux、Mac OS、Raspberry Piなど)にインストールできます。デフォルトでは、センサーデータはPostgreSQLデータベースに保存されます。
霜
FROST-Server [17]は、OGC SensorThings APIのオープンソースサーバー実装です。FROST-Serverは、すべての拡張機能を含む仕様全体を実装しています。Javaで記述されており、TomcatまたはWildflyで実行でき、Dockerイメージとして利用できます。その多くの機能の中には、文字列またはUUIDベースのエンティティIDを使用する機能があります。
FROST-Client [18]は、SensorThings API互換サーバーと通信するためのJavaクライアントライブラリです。
SensorThings HcDT チャート SDK
SensorThings HcDT [19]は、OGC SensorThings API用のJavaScriptチャートライブラリです。オープンソース[説明が必要]の HighchartsライブラリとDataTablesに基づいています。これは、開発者が任意のOGC SensorThings APIサービスからのデータストリームに接続し、Webアプリケーションのチャート、表、またはダッシュボードウィジェットにセンサーの観測結果を表示できるようにするフロントエンドチャートライブラリです。
モジラSTA
MozillaはOGC SensorThings APIのノード実装を開発した。[20]
52°北 STA
52N SensorThingsAPI [21]は、OGC SensorThings APIのオープンソース実装です。その中核となる機能は、OGC Sensor Observation Serviceを実装する52N SOSとの相互運用性、カスタマイズ可能なデータベースマッピング、およびいくつかの便利な拡張機能です。Dockerコンテナとして、 Apache Tomcat内、またはスタンドアロンアプリケーションとして 展開できます。
アプリケーション例
国土安全保障省の科学技術シェイクン・フューリー実験
2019年にDHS次世代ファースト・レスポンダー・プログラムのShaken Fury運用実験[22]では、地震によりスタジアムで部分的な構造崩壊とHAZMAT漏出が発生するシナリオが描かれています。OGC SensorThings APIは、複数のセンサーを相互接続し、IoT対応のリアルタイム状況認識を提供する 標準インターフェース[23]として使用されています。
スマートシティのためのスマート市民 YYC - クラウドソーシングによる空気質のセンシング
2016年10月8日[24] 、カルガリーのボランティア(賢い市民)のグループが集まり、独自のセンサーを組み立てて自宅に設置し、クラウドソースの空気質センサーネットワークを形成しました。すべてのデータはOGC SensorThings APIを介して公開されています。[25]この市民によるセンサーの取り組みにより、カルガリーの空気質センサーの数は3個から50個以上に増加しました。
オランダ、ナイメーヘンのスマート排出プロジェクト
スマートエミッション[26]は、オランダのナイメーヘン市における大気質監視プロジェクトです。このプロジェクトでは、市内に複数の大気質センサーを設置しました。データは、OGC SensorThings APIを含むオープンスタンダードを使用して公開されています。プロジェクトの一部には、プロジェクトのセンサーデータをOGC SensorThings APIにロードするためのオープンソースETLエンジンがあります。[27]
SensorThingsダッシュボード
このダッシュボードは、OGC SensorThings API 互換サーバーからの IoT センサー データをクライアント側で簡単に視覚化できる機能を提供します。ダッシュボードでは、さまざまな種類のウィジェットを配置して構成できます。これは Web アプリケーションであり、任意の Web サイトに埋め込むことができます。ライブ デモはプロジェクト ページで入手できます。https://github.com/SensorThings-Dashboard/SensorThings-Dashboard
GOST ダッシュボード v2
GOST Dashboard v2 は、SensorThings API をサポートするカスタム HTML 要素 (Web コンポーネント) のオープン ソース ライブラリです。これらの要素により、SensorThings API 互換サービスの機能とデータを統合する HTML アプリケーションの開発が容易になります。コンポーネントは Predix-UI と Polymer を使用して開発されています。
AFarCloud プロジェクト OGC コネクタ
このコネクタは、OGC準拠のデータソースと、Horizon 2020 ECSELプロジェクトAFarCloudで開発されたセマンティックミドルウェア[28]との相互運用性を実現します。これは、15-078r6 OGC SensorThings API 1.0実装標準に従って実装された、Dockerベースのデプロイメントを備えたモジュール式Javaアプリケーションです。
OGC SensorThings API と OGC Sensor Observation Services の比較
SensorThings APIは、2005年に承認されたOGC仕様であるOGC Sensor Observation Serviceと同様の機能を提供します。両方の標準仕様は、OGC Sensor Web Enablement標準スイートの下にあります。次の表は、2つの仕様の技術的な違いをまとめたものです。[29]
外部リンク
- SensorThings API - GitHub
- プレゼンテーション: OGC SensorThings API (FOSS4G) を使用して接続されたアプリケーションをセンサーで監視する
- 章: OGC SensorThings API を OpenIoT ミドルウェアにマッピングする
- YouTube のチュートリアル : 入門シリーズ #1、SensorThings チュートリアル シリーズ #2 (2016-05-05 にWayback Machineでアーカイブ) 、SensorThings チュートリアル シリーズ #3 (2016-08-20 にWayback Machineでアーカイブ)
- アプリケーション: SensorThings Playground (Wayback Machineに 2016-02-03 にアーカイブ) を使用すると、興味のある個人や組織は、わかりやすいステップバイステップのプロセスを通じて SensorThings システムを試すことができます。
参考文献
- ^ 「OGC SensorThings API」。Open Geospatial Consortium 。2018年2月20日閲覧。
- ^ 「OGC、モノのインターネット向け SensorThings API 標準に関するパブリックコメントを募集 | OGC」www.opengeospatial.org 。2016年 1 月 26 日閲覧。
- ^ 「技術仕様 D3.2 - SensorThings API - センシング」www.itu.int . 2019年7月17日閲覧。
- ^ 「OGC は、モノのインターネットで使用するための「SensorThings API パート 2 - Tasking Core」候補標準に対するパブリックコメントを求めています | OGC」。www.opengeospatial.org 。2018年 2 月 21 日閲覧。
- ^ 「API リファレンス」www.sensorup.com。 2016 年 2 月 3 日にオリジナルからアーカイブ。2016 年 1 月 26 日に取得。
- ^ ab Liang, Steve; Huang, Chih-Yuan; Khalafbeigi, Tania 編 (2016-07-26). OGC® SensorThings API パート 1: センシング。
- ^ 「SensorThings データモデル」。ogc -iot.github.io。2016年 1 月 26 日閲覧。
- ^ tsbmail. 「Y.2060: モノのインターネットの概要」www.itu.int . 2016年1月26日閲覧。
- ^ ab 「ISO 19156:2011 - 地理情報 - 観測及び測定」。www.iso.org 。 2016年1月26日閲覧。
- ^ ab Liang, Steve; Khalafbeigi, Tania 編 (2019-01-08). OGC® SensorThings API パート 2: Tasking Core。
- ^ 「センサーモデル言語 (SensorML) | OGC」www.opengeospatial.org . 2018年2月21日閲覧。
- ^ シャーフ、ヒュルケ・ファン・デル;ヘルツォーク、ラインハルト (2015-01-01)。ジャルコ、イヴァナ・ポドナール。プリプジッチ、クレシミール。セラーノ、マーティン (編)。OGC SensorThings API を OpenIoT ミドルウェアにマッピングします。コンピューターサイエンスの講義ノート。シュプリンガー・インターナショナル・パブリッシング。 62~70ページ。土井:10.1007/978-3-319-16546-2_6。ISBN 9783319165455。
- ^ 「OGC、インシデント管理情報共有 IoT パイロットの成功を発表」。
- ^ 「S&T の IoT パイロットが「実用化の現状」を実証」 2016 年 1 月 25 日. 2016 年 2 月 14 日閲覧。
- ^ 「Whisker、Eclipse プロジェクト提案」 2016 年 3 月 11 日. 2016 年 3 月 24 日閲覧。
- ^ 「Geodan/gost」。GitHub 。 2016年6月30日閲覧。
- ^ 「FraunhoferIOSB/FROST-Server」。GitHub 。 2018年7月4日閲覧。
- ^ 「FraunhoferIOSB/FROST-Client」。GitHub 。 2018年7月4日閲覧。
- ^ 「SensorThings Highchart and DataTable (HcDT) | SensorUp」www.sensorup.com。2016年8月20日時点のオリジナルよりアーカイブ。2016年8月31日閲覧。
- ^ "mozilla-sensorweb/sensorthings". GitHub . 2017年3月5日閲覧。
- ^ 52North/sensorweb-server-sta、52°North Initiative for Geospatial Open Source Software GmbH、2020-11-17、2020-11-24取得
- ^ 「ニュースリリース:科学技術、業界、対応者が技術評価で提携」。国土安全保障省。2019年6月10日。 2019年7月17日閲覧。
- ^ 「NGFR 統合ハンドブック」。国土安全保障省。2018 年 2 月 6 日。2019 年 7 月 17 日閲覧。
- ^ 「カルガリーのセンサーパイロットが最高の空気品質でのランニング計画を支援 | Metro News」metronews.ca。2016年11月4日時点のオリジナルよりアーカイブ。 2016年11月4日閲覧。
- ^ 「カルガリーの空気質」calgary-air.sensorup.com . 2016年11月4日閲覧。
- ^ 寄稿者、Just van den Broecke - Geonovum オリジナル: Mark Otto、Jacob Thornton、Bootstrap。「Smart Emission」。data.smartemission.nl。2016年 11 月 4 日閲覧。
{{cite web}}:|last=一般的な名前があります (ヘルプ)CS1 maint: 複数の名前: 著者リスト (リンク) - ^ 「Geonovum/smartemission」。GitHub 。 2016年11月4日閲覧。
- ^ Kepka, Michal; Černý, Lukáš; Brada, Premek (2020 年 11 月)。「環境現象を監視するためのオープン システム: ポスター概要」。第18 回組み込みネットワーク センサー システム カンファレンスの議事録。ACM。pp. 659–660。doi :10.1145/ 3384419.3430443。ISBN 9781450375900. S2CID 227154703。
- ^ 「SensorThings API と Sensor Observation Service の比較」。2016 年 3 月 6 日時点のオリジナルよりアーカイブ。2016 年 2 月 29 日閲覧。
