命令の仲介役となるサーバーを介すことで、多数の IoT デバイスに対応できる仕組みです。IoT デバイスからサーバーに向かって接続を常時確立します。命令者は遠隔の端末からサーバーに命令を送信し、その命令をサーバーが IoT デバイスに転送することで IoT デバイスを操作します。
IoT デバイスではサーバーからの命令を待ち受けるほか、稼働情報やイベント情報をサーバーに送信します。通信は IoT デバイスからサーバーへの方向になるため、Push アクセスパターンのような通信到達性の要件やセキュリティリスクはありません。
仲介サーバーとの通信形式
Pull アクセスパターンに比べると通信内容が複雑になるため、IoT デバイスとサーバー間の通信は Publish-Subscribe モデルや Obsever パターンと呼ばれる方式をベースに標準化された通信プロトコルを利用します。たとえば、シンプルに命令を転送するサーバーの場合は MQTT (Message Queue Telemetry Transport)、デバイス管理を主目的とする場合は LwM2M (Lightweight Machine to Machine) があります。これらには IoT デバイスの増加にも対応できるスケーラビリティや要件に合わせたメッセージ到達性 (QoS : Quality of Service) の機能があるため、IoT システムの要件に見合う設定を検討します。
IoT デバイスの省電力設定と常時接続設定の競合について
IoT デバイスでスリープなどの省電力機能を組み込んでいる場合は、省電力設定と常時接続の設定が競合することがあります。常時接続の設定には、接続を維持するための KeepAlive と呼ばれる定期通信が含まれます。この定期通信の間隔が短いと IoT デバイスがスリープにならずに、意図せず稼働状態を続けてしまう場合があります。省電力設定と常時接続設定が意図したとおりに動作していることを確認してください。
MQTT の QoS とは
MQTT の QoS は、IoT デバイスと MQTT ブローカー (仲介サーバー) 間の到達性を示す設定です。命令者から IoT デバイスへのメッセージ自体の到達性を示すものではありません。
SORACOM サービスでの構成例
仲介サーバーパターンを SORACOM サービスで実現する構成を示します。
SORACOM Beam + MQTT ブローカーサービス
SORACOM Beam は IoT デバイスとサーバーとの通信を中継するサービスです。IoT デバイスからの MQTT 接続を受け付け、MQTTS (MQTT over TLS) の形式に暗号化して安全に MQTT ブローカーサービスと連携します。具体的な利用手順は以下を参照してください。
SORACOM Inventory
SORACOM Inventory は LwM2M に対応するデバイス管理のサービスです。利用するための具体的な手順は以下を参照してください。