命令を機器に伝えるために命令者から IoT デバイスに向かって通信する形態を、ここでは Push アクセスパターン と呼びます。
Push アクセスパターンは、命令者から IoT デバイスに向かってアクセスし命令を伝えます。IoT デバイスでは命令を受け付けるためのプログラムを実行し特定のポートを待ち受け、命令者からの命令を受け取ったらそれに対応する処理を実行します。
Push アクセスパターンのメリット/デメリット
後述の Pull アクセスパターン と比較してのメリットには、タイムラグの小ささがあります。命令は通信による遅延を除けば IoT デバイスにリアルタイムで伝わり、機器は即時で処理を実行できます。遠隔操作のイメージに近く、直感的と言えます。デメリットとしては、常時命令を受けるための IoT デバイスの対応コスト、たくさんの IoT デバイスへの命令送信をさばくための命令者の対応コスト、IoT デバイスに直接アクセスすることによるセキュリティリスクがあります。
IoT デバイスの対応コスト
電池稼働など消費電力の要件が厳しい IoT デバイスでは、スリープなどの省電力機能や時間帯ごとのスケジュール実行を駆使します。IoT デバイスが停止しているときは命令を受け取れないため、命令者は IoT デバイスがいつ停止するかを把握し動作するタイミングを狙って命令を送信します。タイミングとしてよく用いられるものとして時刻があり、IoT デバイスでは時刻を把握する RTC (Real-Time Clock) の搭載や、ネットワーク経由の時刻同期として NTP (Network Time Protocol) を組み込んでスリープと復帰のスケジュール運用を検討します。PSM (Power Saving Mode) や eDRX (extended Discontinuous Reception) といったセルラー通信モジュールの省電力機能はスケジュール運用と独立した周期的なスリープになるため、通信モジュールがスリープ中の場合はマイコンから起こすなどの対応が必要になります。
また、命令を受け付けるプログラムは一定のコンピューターリソースを消費するため、IoT デバイスが本来の処理を実行するためのリソースが目減りし、そのリソース消費に伴う消費電力増加を考慮する必要が出てくるケースもあります。
命令者の対応コスト
命令者はたくさんの IoT デバイスに命令を送信し、その結果を管理します。命令者のコンピュータリソースは有限であり、IoT デバイスの数が増えてくると特にソケットやポートなど命令者のコンピュータのネットワークリソースの逼迫が懸念されます。
クラウドサービスは分散構成にすることでリソースを潤沢に準備することもできますが、分散構成にするための構成や運用などにかかる追加のコストに注意が必要です。後述の 仲介サーバーパターン は多数の IoT デバイスへの命令をスケールする仕組みを持つため、命令者の対応コストを解決する有効な構成です。また、Pull アクセスパターン は非同期処理や負荷分散のテクニックを用いて受信側のサーバーないしクラウドサービスでのスケール対応がしやすいとも言えます。
セキュリティリスク
Push アクセスパターンでは、IoT デバイスが命令者からのアクセスを受けるためにプログラムによって特定のポート番号で接続を待ち受け、ネットワークは命令者のそのポート番号宛の通信を IoT デバイスに適切にルーティングします。一方で IoT デバイスにグローバル IP アドレスが割り当てられる環境の場合、インターネットからの不正アクセスの恐れがあるため、ポート番号や送信元 IP アドレスなど必要条件を割り出し、それ以外の想定しない外部からの通信をファイヤーウォールでブロックする、特定の通信のみポートフォワードで転送するなどセキュリティ機能で IoT デバイスを保護します。
Pull アクセスパターン および 仲介サーバーパターン は IoT デバイスでの接続待ち受けが不要であり、本リスクを極小化できます。また、後述の SORACOM サービスとの組み合わせることでセキュリティリスクを低く抑えた Push アクセスパターンの構成もあります。
SORACOM サービスとの組み合わせ例
Push アクセスパターンを SORACOM サービスで実現する構成例を示します。SORACOM Air for セルラーでは IoT デバイスにプライベート IP アドレスが割り当てられるためセキュリティリスクが軽減される一方、インターネットからの IoT デバイスへの直接アクセスはできないため、いくつかの SORACOM サービスと組み合わせることになります。
IoT デバイスの Web 管理画面に SORACOM Napter でアクセス
IoT デバイスがポート 80 番/TCP で Web 管理画面を提供する機能を持つ場合は、SORACOM Napter を利用してインターネット経由で遠隔の PC から安全にアクセスする構成が考えられます。具体的な手順は以下を参照してください。
カメラデバイスの RTSP サーバーに SORACOM Gate D2D でプライベートアクセス
IoT デバイスにカメラを搭載し、カメラ画像を配信する RTSP (Real Time Streaming Protocol) サーバーを内蔵する場合は、遠隔から SORACOM IoT SIM ないし SORACOM Arc と SORACOM Gate D2D (デバイス間接続) でアクセスする構成が考えられます。具体的な手順は以下を参照してください。