ガーディアン モジュール
ガーディアン モジュールは、Azure Sphere チップを組み込み、"ブラウンフィールド" デバイス上のポート (つまり、既に使用されている可能性がある既存のデバイス) に物理的に接続するアドオン ハードウェアです。
ガーディアン モジュールを使用すると、インターネット接続をサポートしていないか、安全にサポートしていない機器に、セキュリティで保護された IoT 機能を追加できます。 簡単に言うと、ガーディアン モジュールは、これらのデバイスをインターネットに公開することなく、既存のデバイスにセキュリティで保護された接続を実装する方法を提供します。 Azure Sphere デバイスであるため、すべての Azure Sphere のセキュリティと接続機能を使用できます。すべてのデータが暗号化され、OS とアプリケーションの更新プログラムが安全に配信され、認証によってモジュールが信頼されたホストとのみ通信できるようになります。
ガーディアン モジュールのしくみを次に示します。
ガーディアン モジュールは、このトピックの「 接続」 セクションで説明されているように、ブラウンフィールド デバイスに接続します。 ブラウンフィールド デバイス自体がネットワークに接続されていません。
Azure Sphere OS は、ガーディアン モジュール上で、カスタムの高レベル アプリケーションと、シナリオで必要なその他の Azure Sphere アプリケーション と共に実行されます。
ガーディアン モジュールは、証明書ベースの認証、エラー報告、および空中ソフトウェア更新プログラムに Azure Sphere Security Service を使用します。
ブラウンフィールド デバイスはガーディアン モジュールと通信します。これは、ローカル アクションを実行するか、Azure IoT Central などのクラウドプレゼンスにレポートすることで応答できます。
ベンダーからガーディアン モジュールを購入し、使用シナリオに合わせてさらにカスタマイズすることも、ハードウェア パートナーと連携して独自のガーディアン モジュールを設計することもできます。 ハードウェア サプライヤーの詳細については、 Azure Sphere Web サイト を参照してください。
ガーディアン モジュールに使用します
ガーディアン モジュールは、既存の機器と外部ネットワークの間のセキュリティで保護されたインターフェイスとして機能しながら、他の Azure Sphere デバイスでできることは何でも実行できます。 ガーディアン モジュールの使用可能な用途は次のとおりです。
- ブラウンフィールド デバイスからのデータの収集、データの処理、クラウド エンドポイントへのデータの安全な送信
- 各エンドポイントを認証できる場合に、複数のエンドポイントにデータを送信する
- ブラウンフィールド デバイスから使用できない追加のデータを収集する。たとえば、ガーディアン モジュール上のセンサーは、ブラウンフィールド デバイスからの動作データで使用する環境データを提供できます
- 接続が失われた場合にブラウンフィールド デバイスからデータを保存する
Azure Sphere サンプル リポジトリには、Azure Sphere デバイスをガーディアン モジュールとして使用する方法を示す 2 つのサンプルが含まれています。
- Device to Cloud は、シリアル インターフェイスを介して接続されているブラウンフィールド デバイスにセキュリティで保護されたインターネット アクセスを提供しながら、Azure Sphere デバイスをデータ収集に使用する方法を示しています。
- プライベート ネットワーク サービス は、Azure Sphere デバイスが TCP/IP インターフェイスを介して接続されているブラウンフィールド デバイスに対してセキュリティで保護されたインターネット アクセスを提供する方法を示します。
接続
ガーディアン モジュールとネットワーク間、およびガーディアン モジュールとブラウンフィールド デバイス間の接続には、いくつかのサポートされているメカニズムがあります。 Azure Sphere 接続ソリューションの一般的な情報については、「 接続の概要 と ネットワーク要件」を参照してください。
ガーディアン モジュールの高レベル アプリケーションは、Azure Sphere Security Service やその他のクラウド サービスを含むネットワークとアップストリーム、およびブラウンフィールド デバイスを使用してダウンストリームと通信します。
ガーディアン モジュールとネットワーク間のアップストリーム接続には、 イーサネット、 Wi-Fi、または 携帯ネットワークを使用できます。
ガーディアン モジュールとブラウンフィールド機器間のダウンストリーム接続には、次の機能を使用できます。
- ブラウンフィールド デバイスが公開する UART、RS-485、SPI などのシリアル インターフェイス
- ブラウンフィールド デバイスをパブリック ネットワークに公開しないプライベート イーサネット
- Bluetooth や ZigBee などのワイヤレス
アプリケーションの開発とデプロイ
ガーディアン モジュール用のアプリケーションの開発とデプロイは、他の Azure Sphere デバイス用のアプリケーションの開発とデプロイと同じ方法です。 詳細については、「 Azure Sphere アプリケーションの概要」 と 「デプロイの基本 」を参照してください。 他の Azure Sphere デバイスと同様に、ガーディアン モジュールには、少なくとも 1 つの高レベルの Azure Sphere アプリケーションが必要であり、リアルタイム対応アプリケーションを備えている場合もあります。
サービス UART にアクセスする必要があります。これは、MT3620 とホスト コンピューターで実行されている開発環境との間のメイン プログラミングとデバッグ インターフェイスです。 独自のガーディアン モジュールを設計する場合は、サービス UART 信号が公開されていることを確認し、ガーディアン モジュール自体または別のハードウェア上でサービス UART とインターフェイスする方法をサポートする必要があります。 ベンダーからモジュールを購入する場合、ベンダーは、この接続を有効にするソリューションを提供する必要があります。
サプライヤーまたは他のサード パーティがアプリケーションを作成する場合は、アプリケーション開発者がアプリケーションを読み込んでテストし、デプロイを作成できるように、Azure Sphere カタログへのアクセス権を提供する必要がある場合があります。
高度なアプリケーション
ガーディアン モジュールの概要レベルのアプリケーションは、organizationのブラウンフィールド デバイスごとにカスタムで記述する必要があります。 ガーディアン モジュールのサプライヤーがアプリケーションを提供する場合は、アプリケーションを必要に応じて変更または更新できるように、高レベルのアプリケーション ソース コードとライブラリを受け取っていることを確認してください。
Azure Sphere デバイス アプリケーションと同様に、デバイス固有の詳細とアプリケーション固有の詳細を アプリケーション マニフェストに一覧表示する必要があります。 たとえば、 ガーディアン モジュールの接続 は、マニフェストに含める必要があるデバイス固有の詳細です。
ガーディアン モジュールで実行される高度なアプリケーションは、次の役割を担います。
- ブラウンフィールド機器との接続の確立と維持
- Azure Sphere Security Service やその他のクラウド サービスを含む、インターネットとの接続の確立と維持
- ブラウンフィールド デバイスから受信したデータの処理 - 必要に応じてデータを開梱して格納し、必要に応じてインターネット ホストと通信する
- インターネット ホストから受信したデータの処理 - 必要に応じてデータを開梱して格納し、必要に応じてブラウンフィールド機器と通信する
アップストリームに送信されるデータには、エラー レポート、運用パラメーター、または全体的なテレメトリが含まれる場合があります。 Azure Sphere では、そのようなすべてのデータが確実に暗号化されます。 アプリケーションは Web サービスに接続 し、そのような接続に相互認証を使用できます。
ダウンストリームに送信されるデータには、更新されたソフトウェアやブラウンフィールド デバイスの設定またはパラメーターの変更が含まれる場合があります。 潜在的なセキュリティ侵害を回避するために、アプリケーションは受信データをブラウンフィールド デバイスにダウンストリームに渡す前に検証する必要があります。
アプリケーションに関する考慮事項
アプリケーションを作成するときは、使用可能な周辺機器、ストレージ要件、および消費電力を考慮する必要があります。
周辺機器
他の Azure Sphere デバイスと同様に、ガーディアン モジュールは公開する周辺機器が異なります。 シナリオで必要な接続とセンシング機能を提供するガーディアン モジュールを選択します。
ガーディアン モジュールのハードウェア アーキテクチャ (つまり、Azure Sphere チップの機能を公開する方法) に応じて、個々の機能にアクセスするソフトウェアを高レベルまたはリアルタイム対応アプリケーションとして実装する必要があるかどうかを判断できます。
ストレージ要件
Azure Sphere にはストレージが限られているため、アプリケーションとデータに必要なメモリ量を慎重に検討してください。 詳細については、「 使用可能なメモリ 」を参照してください。
クラウドからブラウンフィールド デバイスにダウンストリームにデータを送信する場合は、ガーディアン モジュールにデータを保持するための十分な領域があることを確認します。 Azure Sphere GitHub サンプル リポジトリの HTTPS_Curl_Multi サンプル で示されているように、データをチャンクで送信する必要がある場合があります。
ブラウンフィールド デバイスからガーディアン モジュールにデータをアップストリームに送信する場合は、アプリケーションがアップストリーム接続エラーを処理できることを確認します。 ブラウンフィールド デバイスが継続的なテレメトリを提供する場合は、どのデータを保持し、後で接続が復元されたときにクラウドに送信するかを検討する必要があります。 ローカル ストレージを使用してデータをアップロードする前に一時的にキャッシュする方法を示す ストアアンドフォワード ギャラリーのサンプルを参照してください。
消費電力
ガーディアン モジュールがほとんどの場合非アクティブなアプリケーションは多数あります。 たとえば、1 時間に 1 回センサーのネットワークからデータを収集し、そのデータをクラウドにアップロードする Azure Sphere デバイスを考えてみましょう。これは、1 分または 2 分かかる可能性のある操作です。 この場合、デバイスによって消費される電力のほとんどは無駄になります。
電力消費を大幅に削減できるため、デバイスが非アクティブな場合は電源を切った状態にするか、電源プロファイルを設定することで、バッテリの寿命を延ばすことができます。 詳細については、「 Power Down 状態の管理 」および 「電源プロファイルの設定 」を参照してください。