IoT プラグ アンド プレイのアーキテクチャ
IoT プラグ アンド プレイにより、ソリューション ビルダーは、手動で構成することなく、独自のソリューションに IoT デバイスを統合することができます。 IoT プラグ アンド プレイの中核となるのは、デバイスの機能を IoT プラグ アンド プレイ対応アプリケーションに説明するデバイス モデルです。 このモデルは、次の内容を定義するインターフェイスのセットとして構成されます。
- デバイスまたは他のエンティティの読み取り専用および書き込み可能な状態を表す プロパティ。 たとえば、デバイスのシリアル番号は読み取り専用のプロパティであり、サーモスタットでの目標温度は書き込み可能なプロパティとなります。
- デバイスによって出力されるデータである "テレメトリ"。このデータはセンサー読み取り値の通常のストリーム、偶発的なエラー、または情報メッセージのいずれかです。
- デバイス上で実行できる関数または操作を記述した "コマンド"。 たとえば、コマンドでは、ゲートウェイを再起動したり、リモート カメラを使用して写真を撮影したりすることが可能です。
すべてのモデルとインターフェイスには一意の ID があります。
次の図は、IoT プラグ アンド プレイ ソリューションの主な要素を示しています。
モデル リポジトリ
モデル リポジトリは、キュレーションされたモデルとインターフェイス定義のストアです。 モデルとインターフェイスは、Digital Twins Definition Language (DTDL) を使用して定義されます。
Web UI を使用すると、モデルとインターフェイスを検索して取得できます。
デバイス
Azure IoT device SDK のいずれかを使用し、デバイス ビルダーによって IoT デバイスで実行するコードが実装されます。 デバイス SDK を使用することで、デバイス ビルダーで以下を行うことができるようになります。
- IoT ハブに安全に接続する。
- デバイスを IoT ハブに登録し、デバイスによって実装される DTDL インターフェイスのコレクションを識別するモデル ID をアナウンスする。
- デバイスと IoT ハブの間で、DTDL インターフェイスで定義されているプロパティを同期する。
- DTDL インターフェイスで定義されているコマンドのコマンド ハンドラーを追加する。
- IoT ハブにテレメトリを送信する。
IoT Edge ゲートウェイ
IoT Edge ゲートウェイは、IoT ハブに直接接続できない IoT プラグ アンド プレイ デバイスを接続するための仲介役として機能します。 詳細については、「IoT Edge デバイスをゲートウェイとして使用する方法」を参照してください。
IoT Edge のモジュール
"IoT Edge モジュール" を使用すると、エッジにビジネス ロジックをデプロイして管理することができます。 Azure IoT Edge モジュールは、IoT Edge によって管理される計算の最小単位であり、Azure Stream Analytics などの Azure サービスまたは独自ソリューション固有のコードを含めることができます。
"IoT Edge ハブ" は、Azure IoT Edge ランタイムを構成するモジュールの 1 つです。 Edge ハブは、IoT Hub と同じプロトコル エンドポイントを公開することで IoT Hub のためのローカル プロキシとして動作します。 この整合性により、クライアント (デバイスまたはモジュール) は、IoT Hub と同じように IoT Edge ランタイムに接続できます。
デバイス SDK は、モジュール ビルダーで以下を行うのに役立ちます。
- IoT Edge ハブを使用して、IoT ハブに安全に接続する。
- モジュールを IoT ハブに登録し、デバイスによって実装される DTDL インターフェイスのコレクションを識別するモデル ID をアナウンスする。
- デバイスと IoT ハブの間で、DTDL インターフェイスで定義されているプロパティを同期する。
- DTDL インターフェイスで定義されているコマンドのコマンド ハンドラーを追加する。
- IoT ハブにテレメトリを送信する。
IoT Hub
IoT Hub は、IoT ソリューションとこれによって管理されるデバイスの間の双方向通信に対する中央メッセージ ハブとして機能するクラウドでホストされるサービスです。
IoT ハブは以下を実現します。
- デバイスによって実装されたモデル ID をバックエンド ソリューションで使用できるようにする。
- ハブに接続されている各 IoT プラグ アンド プレイ デバイスに関連付けられているデジタル ツインを保持する。
- 処理または保存のためにテレメトリ ストリームを他のサービスに転送する。
- デジタル ツインの変更イベントを他のサービスにルーティングして、デバイスの監視を有効にする。
バックエンド ソリューション
バックエンド ソリューションは、IoT ハブのデジタル ツインと対話することで接続されているデバイスを監視し、制御します。 Azure IoT サービス SDK のいずれかを使用して、ユーザーのバックエンド ソリューションを実装します。 接続されているデバイスの機能を理解するため、ソリューション バックエンドでは以下が行われます。
- IoT ハブを使用して登録されたデバイスのモデル ID を取得します。
- モデル ID を使用して、任意のモデル リポジトリからインターフェイス定義を取得します。
- モデル パーサーを使用して、インターフェイス定義から情報を抽出します。
バックエンド ソリューションでは、以下の内容を行うためにインターフェイス定義からの情報を使用します。
- デバイスによって報告されたプロパティ値を読み取る。
- デバイスの書き込み可能なプロパティを更新する。
- デバイスによって実装されたコマンドを呼び出す。
- デバイスによって送信されるテレメトリの形式を理解する。
次のステップ
ここでは IoT プラグ アンド プレイ ソリューションのアーキテクチャの概要を説明しました。次の手順では以下の詳細を確認してください。