Skip to content

IOTデバイスの管理

複雑なIoTシステムには、多くのデバイスが含まれている可能性があり、そのアーキテクチャにデバイス管理機能を含める必要があります。IoTデバイスは、しばしば敵対的な環境に配置されます。IoTデバイスは積極的に監視する必要があり、障害が発生した場合には、それらの環境で動作し続けられるように引退させたり、更新したりする必要があるかもしれません。

デバイス管理機能は、デバイスの保護と監視を容易にすることで、デバイスとそのデータの保護に役立ちます。デバイス管理機能により、IoT開発者は、デバイスを工場出荷時の状態にリセットしたり、セキュリティ問題やバグを修正するためのアップデートを適用したりといった操作を行って、IoTデバイスを制御することができます。

IoTデバイスは、異なるプロトコルやデータフォーマットで通信する場合があるため、デバイスの数が増えるとIoTシステムの複雑性が増し、IoTデバイスの管理がより重要かつ困難になります。

デバイス管理の課題

IoTデバイスの管理・維持には、セキュリティ、相互運用性、制約のあるデバイス、スケーラビリティ、可用性などの課題があります。

セキュリティ

セキュリティは、IoTシステムのすべてのレイヤーにおいて重要な検討事項です。デバイス管理サービスは、セキュアなデバイス登録・認証サービスを提供したり、暗号化されたマシン・ツー・マシン(M2M)通信をサポートしたりすることで、セキュリティを備えたIoTデバイス自体の管理を容易にします。これには一般的に、SSLやアクセストークンなどの標準的なセキュリティ対策を、アーキテクチャのすべての層に組み込むことが含まれます。詳しくは、Top 10 IoT Security Challengesの記事をご覧ください。また、IoTシステムにデバイス管理サービスを実装することで、これらのセキュリティ課題の多くに対処することができます。

相互運用性

現在および将来のIoTシステムに導入されるデバイスは、クラスが異なり、さまざまなメーカーが製造し、さまざまな通信プロトコルを使用している可能性があります。デバイス管理ツールは、異種デバイス間の相互運用性を維持するために、すべてのデバイスの一貫した管理をサポートする必要があります。標準的なデバイス管理プロトコルをサポートしているデバイス管理サービスや、一般的なデバイスを一括して管理するための抽象化を提供するプロトコルやAPIを実装しているデバイス管理サービスを探してください。長期的なサポートのためには、IoTアーキテクチャのリファレンスに準拠し、MQTTのような業界標準のデータ転送プロトコルや、LMW2M、OMA-DM、TR-069のようなより高度なデバイス管理指向のプロトコルを遵守するようにしてください。

制約のあるデバイス

IoTデバイスは多くの場合、電力、メモリ、処理能力、接続性などが制限されています。(IoTデバイスについては、こちらのIoTハードウェアガイドをご参照ください)。これらの制約は、デバイスがリモートで管理できるかどうか、またリモート操作をどれだけ効果的に適用できるかに影響します。デバイスがバッテリーで駆動している場合、デバイスが利用可能な電力を使い果たすことなく、デバイスマネージャーと通信し、アップデートや操作を実行できることが重要です。電源を使い切った後に、ファクトリーリセットやファームウェアのアップデートなどの操作が中断されると、デバイスがブリック化してしまう可能性があります。

LWM-2Mのような軽量デバイス管理プロトコル(リソースのオーバーヘッドが少ないもの)は、効率的に設計されており、デバイス自体が実行する必要のある処理を最小限に抑えることができるため、良い選択となり得ます。これらの軽量デバイス管理プロトコルは、デバイスと上流の管理サービス間の通信に必要な帯域幅と頻度が少ないため、計算能力やバッテリーなどのリソースを節約することができます。軽量プロトコルの欠点は、データ転送エラーの処理、信頼性、セキュリティなどの高度なデバイス管理機能や対策については、独自の実装に頼らざるを得ない場合があることです。

スケーラビリティ

デバイス管理サービスは、システムに追加されるデバイスの数が増えると、デバイス管理サービスへの登録や通信を行うデバイスの数が増えた場合に対応するための拡張性が必要になります。また、デバイス管理サービスは、常に実行する必要のあるデバイス管理の定型的な操作の数が増加しても対応できる必要があります。

例えば、複雑なIoTシステムでは、数千の異なる種類のデバイス(センサー、アクチュエーター)が、世界の異なる地理的エリアの異なるネットワーク上で接続されている可能性があります。これらのデバイスの中には相互に依存しているものもあるため、システムの更新の一部は同期して行われなければなりません。このような場合、手動でデバイスを監視・管理することは不可能になります。グループでのリモートコントロール、リモートでのデバイスの状態変更、新しいデバイスのプロビジョニング、デバイスディスカバリーなど、ハイレベルな機能が必要になります。このように、IoTのためのデバイス管理を拡張するには、自動化が鍵となります。

入手方法

デバイス管理サービスは、可用性を確保するために、デバイスだけでなく、ネットワークの状況も把握する必要があります。デバイス管理には、アップデート中にデバイスが再起動したり、バッテリー残量が少ないデバイスにアップデートを適用したりといったインシデントを防ぐために、デバイスの現在の状態を監視することが含まれます。また、保守作業を行う前に、ネットワークの状態、デバイスの状態や使用可能な電力、現在のデバイスの使用状況などをより広く認識することも含まれます。デバイス管理サービスは、デッドロックを防ぎ、混乱を最小限に抑えるために、ファームウェアの更新やシステムのリセットなどの操作の同期管理をサポートする必要があります。

デバイス管理プロトコル

これらのデバイス管理に関する課題の多くは、標準的なデバイス管理プロトコルを採用するか、IoTプラットフォームが提供するデバイス管理サービスを利用することで解決できます。(IoTソリューションでWhy you might need to use an IoT platformについては、以前のIBM Developerの記事で詳しく紹介しています)。

IoTデバイスは通常、XMPP(XMLベースのチャットプロトコル)、CoAP (Constrained Application Protocol)や、MQTT (MQ Telemetry Transport)などがあります。IoT通信プロトコルについては、こちらのコネクティビティとネットワークプロトコルガイドで詳しく解説しています。

デバイス管理プロトコルは、これらの一般的な接続プロトコルの上で動作し、デバイスの登録、認証、デバイスの機能の照会、およびデバイス間で一貫した操作の実行をサポートします。

ブロードバンドやモバイル業界でIoTデバイスに適用されている標準的なデバイス管理プロトコルには、TR-069、OMA DM、LWM2Mなどがあります。

  • TR-069. BroadBand ForumのTR-069 Customer Premises Equipment (CPE) WAN Management Protocol (CWMP)は、2004年にSOAPをベースに開発されたもので、モデム、ルーター、ゲートウェイ、セットトップボックスなどの家庭用機器を含むブロードバンド機器を管理するためのプロトコルです。このプロトコルは、IoTスマートホームのアプリケーションに適用されています。
  • tr-369 (USP)TR-369 User Services Platform protocolは、TR-069をよりIoTに向けて拡張したものである。同社のサイトによると、TR-069の自然な発展形であり、Device:2 Data Modelの拡張版を使用して、デバイスの操作(ファームウェアのアップグレード、リブートなど)、ネットワークインターフェース、サービス機能(IoT機能、VoIPなど)を表現しています。
  • OMA DM. Open Mobile Alliance Device Management (OMA DM)仕様は、LWM2Mの前身であり、携帯電話、PDA、タブレット向けに開発され、2003年に初めてリリースされました。帯域幅が限られた制約のあるデバイス向けに設計されており、HTTP、WAP、またはSMSを含む様々なプロトコルでのM2M通信をサポートしています。IoTデバイスに適用することで、プロビジョニング、コンフィグレーション、ファームウェアアップデート、障害管理をサポートします。ただし、LWM2Mほど軽量ではありません。
  • LWM2M. OMAのLightweight Machine to Machine (LWM2M)プロトコルは、センサーネットワーク内など、セルラーネットワーク上で通信するデバイスを管理するために設計されています。LWM2Mは通常CoAPで実装されます。LWM2Mプロトコルをサポートするクライアントやサーバーのオープンソース実装は、ARM mbedやEclipse LeshanWakaamaなどがあります。

IoTデバイス管理は標準化が活発に行われている分野なので、この分野はかなり断片的なままです。多くのIoTリファレンス・アーキテクチャにはデバイス管理機能が記述されており、IBM Watson IoT PlatformなどのほとんどのIoTプラットフォームでは、特定のプラットフォームで使用するIoTデバイスを管理する要件に合わせたカスタム・デバイス管理サービスが実装されています。

デバイス管理機能

IoT プラットフォームは通常、そのデバイス管理のための API とダッシュボードを提供します。これらのダッシュボードやAPIは、デバイスの登録管理、リモート操作のトリガー、デバイスの監視、検索、フィルタリング(メーカーやシリアル番号など)などに利用できます。

IoTプラットフォームが提供するデバイス管理、標準的なデバイス管理プロトコルを実装したスタンドアロンのサービス(例えばEclipseのLeshanサーバー)、またはデバイス管理サービスの組み合わせのいずれの採用を検討している場合でも、探すべき主な機能は以下のとおりです。

  • Provisioning. システムに新しいデバイスが追加された場合、デバイスはデバイス管理サービスに自身を安全に登録し、デバイスのメタデータを登録する必要があります。デバイスを登録することで、アイデンティティとクレデンシャルが提供されます。
  • Authentication. 認証サービスは、デバイスのアイデンティティを確立します。デバイスは、プロビジョニングプロセスで最初に作成されたアイデンティティを使用し、他のデバイス、アプリ、サービスと通信する際に、相手はデバイスが信頼できる本物のデバイスであることを保証することができます。
  • 設定. デバイス管理サービスは、通常、IoTデバイスに新しい設定を直接適用したり、新しい設定をブロードキャストしてデバイスを一括で更新したり、デバイスの設定の依存関係を管理することをサポートします。
  • 例えば、デバイスの機能、ファームウェアのバージョン、デバイスの通常の場所、デバイスID、ステータスなどを追跡することができます。デバイス管理サービスは、これらの情報に加えて、エラーや接続性のログをダッシュボードやAPIを通じて公開し、健全性や状態の監視、診断やリモートデバッグに利用することができます。また、ログやステータスは、デバイスが一定期間データを生成しなかった場合などのアラートの生成にも利用できます。
  • 多くのデバイス管理サービスは、デバイスの再起動、デバイスの有効化/無効化、工場出荷時のリセット、無線アップデートによる新しいファームウェアのダウンロード/アップデートなど、リモート操作のスケジューリングをサポートしています。これらのメンテナンス作業を人手を介さずにリモートで行うことで、デバイスの寿命までの時間とコストを削減できるだけでなく、作業中のミスを防ぎ、デバイスのダウンタイムを最小限に抑えることができます。また、物理的にアクセスしにくい場所に設置されたデバイスを手動で回収したり、アップデートしたりする必要もなくなります。
  • 自動化:IoTシステムに導入されるデバイスの数や範囲が拡大すると、自動化が必要になります。例えば、セキュリティ上の脆弱性に対処するために、複数のデバイスに対してファームウェアのアップデートを迅速に実行することが可能になります。例えば、セキュリティ上の脆弱性に対応するために、複数のデバイスに対してファームウェアのアップデートを迅速に行う場合などです。デバイスによっては、専用のデバイス管理プロトコルを使用してアップデートを行う場合もありますが、Linuxベースのデバイスの場合は、Kubernetesのようなオープンソースのオーケストレーションツールを使用して、ファームウェア、アプリケーション、オペレーティング環境を含むDockerコンテナを複数のデバイスに展開することができます。
  • Retirement. デバイスは最終的に故障するか、または耐用年数を迎えたときに置き換えられます。デバイス管理サービスは、システム内の他のデバイス、アプリケーション、またはサービスとの通信ができなくなるように、デバイスに関連付けられたトークンやアイデンティティの取り消しを含む、デバイスの安全な廃止をサポートする必要があります。

結論

デバイス管理サービスは、プロビジョニング、認証、設定、保守運用、監視、そして最終的なデコミッションなど、IoTデバイスのライフサイクルを通じた管理の自動化を支援します。デバイス管理は、拡張性、安全性、相互運用性に優れたIoTソリューションにとって、非常に重要な要素です。