SORACOM Beam

SORACOM Beam

[3] SORACOM は、 株式会社ソラコムIoT 製品群・プラットフォームです。

[19] 製品にそれぞれ特徴的な固有名詞がついていて、 それが頭に入っていることを前提にいろんな説明がなされているので、 一見わけがわかりません。 使い方の説明は一通りドキュメントが揃っているので、 丁寧に読み解いていけば実は案外単純な、そりゃあそうなるよなあという設計です。 アーキテクチャの概要をいったん理解してしまえば、 最初の印象ほど難解でもない、普通のサービスです。

SORACOM Beam

[8] SORACOM Beam >>7 は、 IoT 端末からの通信を SORACOM サーバーを中継して任意の相手に送信させられるものです。

[9] 端末と直接通信するとなると端末の特性 (消費電力制限など) を鑑み簡略なプロトコルを使うなど工夫が必要になります。 自サーバー側もその対応が必要になる上、 インターネットを通過するには TLS など安全でも高コストな手法を使わざるを得ません。 SORACOM を信用し通信を媒介させるなら、 端末から SORACOM SIM を介して SORACOM サーバーまでの区間はそうした手法で通信し、 SORACOM サーバーから自サーバーまでのインターネットHTTPS のような汎用のプロトコルで通信するものと分けることができます。

[10] 端末から自サーバーまでの通信と捉えれば SORACOM サーバーは関門 (アプリケーション層ルーター) といえます。

[32] SORACOM とその裏側にある端末をまとめて1つのサービスとして捉えるなら、 Beam (を使った HTTP への変換) はいわゆる Web Hook API と理解できます。 ただ通常の Web Hook とは違って、同じ種別のプロトコルで複数の宛先を指定できないようです。 開発サーバー本番サーバーに同時送信させたりできないのはちょっと不便です。

[6] 利用料金は従量制ですが、非常に安価です >>5。 定期的にデータを送信する用途でも、かなりの回数が無料枠でカバー可能で、 それを超えても急激に課金されることはない良心的な価格設定です。

Unidifed Endpoint

[20] SORACOM のプラットフォームにはいくつもサービスがあって、 それぞれの使い道がありますが、 端末がそれに個別に対応するのは一苦労です。 構成の変更のたびに端末の改修も必要になってしまいます。 そこで、各サービスを直接使わず、 Unified Endpoint 宛に送信すれば、 端末ではなく SORACOM サーバー上の設定で、 それを更にどのサービスに送信するかを決められるというわけです。

[21] SORACOM Beam など SORACOM のサービスは一通り対応しています。 これから作成する新しいアプリケーションは、 基本的に各サービスに直接送信するのではなく、 Unified Endpoint に送信すればよいのでしょう。

GPS マルチユニット SORACOM Edition

[4] GPS マルチユニット SORACOM EditionGPS 測位端末です。

利用設定

[17] この装置は、 SORACOMSIM と組合せて使う IoT 端末です。 つまりこの装置SIM を指すと、 SORACOM サーバーにデータを送信するようになるので、 SORACOM のサービスを介してそのデータを取得する形になります。

[24] このドキュメントの手順通りに簡単に設定できます。 このドキュメントではデータを SORACOM Harvest に送信することになっています。 SORACOM Harvest に送信すると、 SORACOMWebサイト上で直近のデータを地図表示できます。 ちょっとした動作確認や、 簡単な利用ならこれでも十分でしょう。 (ただし有料なので注意。)

[26] SORACOM Harvest のデータは Web API 「DataEntry」 で取得できます。

[27] ただし DataEntry API は SIM 1つずつしかデータを取得できません。 複数端末を併用するときには不便です。 またポーリングが必要となり定期的に送信される GPS データの取得には不向きです。

[28] SORACOM Beam に送信するように設定すると、 新データが到着するたびに自サーバーに HTTPS で送信させることができます。 つまり GPS データを受信できる Web Hook API と考えることができます。 (ただし有料なので注意。)

[29] この設定方法として SIM ごとの設定から Beam を有効にできるような説明を見かけますが、 SORACOM の仕様変更前の古い説明のようですので、注意してください。 SIM ごとではなく、 SIM グループごとに Beam への送信を設定できます。

[30] Beam の設定は、 送信先サーバーと URL pathHTTPヘッダーを指定するだけなので、 みればわかります。プロトコルとして 「HTTP」が使えるという罠に注意です。 正しくは UDP から HTTP に変換するオプションを選ばなければなりません。 (端末から SORACOM サーバーまで UDP で送信し、 SORACOM サーバーから自サーバーまで HTTP で送信するという意味です。)

[31] SIM ごとではなく SIM グループごとの設定となっているので、 新規端末・ SIM を追加したときは、 同じグループにどんどん追加していくだけで、 既存の送信先設定を流用できます。

測位データ

[12] Base64 符号化された JSON データが送られてきます。 >>11

[14] 残念なことに測定日時が入っていません。受信日時が測定日時に十分近いと仮定するほかありません。

[15] GPS データは緯度経度が入っています。 高度時刻はありません。

[16] たまに緯度経度取得に失敗したのか、 null が送られてくることがあります。

メモ