Soracom

Users

ドキュメント
Home ドキュメント SORACOM Beam はじめに

SORACOM Beam の特徴

Beam は、デバイスから SORACOM (具体的には、Unified Endpoint や Beam のエントリポイント) に送信されたリクエストを、エントリポイントの設定 に従って、パブリッククラウドやお客様のサーバーなど任意のサーバー (以下、転送先サーバー) に転送するサービスです。

SORACOM Beam SORACOM Beam

デバイスの処理負荷を軽減 (オフロード)

デバイスのスペックや消費電力の問題から、複雑な処理ができないデバイスでも、処理の一部を任意のサーバーに任せることで、デバイスの処理負荷を軽減できます。たとえば、デバイスに接続された温度センサーデータを取得し、Beam を利用して温度をサーバーに送信し、サーバーで計算した推移予測をデバイスに返すことができます。デバイスでは、この予測結果をもとに、ファンの速度を制御できます。

Beam の主な特徴

特徴説明Beam、Funk、Funnel の主な違い
想定される転送先パブリッククラウドやお客様のサーバーなど、任意のサーバーに転送できます。
  • Beam は、任意のサーバーを指定できます。また、1 つのグループ設定に複数の転送先を設定できます。
  • Funk は、パブリッククラウドの関数 (FaaS) を指定できます。また、1 つのグループ設定には転送先を 1 つだけ設定できます。
  • Funnel は、あらかじめ決められたサービスに転送するためのアダプターを指定できます。また、1 つのグループ設定には転送先を 1 つだけ設定できます。
Beam を利用できるデバイス

以下のサービスを利用したデバイスから利用できます。

  • SORACOM Air for セルラー (IoT SIM)
  • SORACOM Arc (バーチャル SIM/Subscriber)
  • SORACOM Air for LoRaWAN
  • SORACOM Air for Sigfox
  • SORACOM Inventory
なし
通信経路の暗号化
  • デバイスと Beam のエントリポイントの間の通信経路は、通信キャリアの閉域網でデータが送信されるため、暗号化されていない HTTP などを利用しても安全です。
  • デバイスから任意のサーバーに安全にデータを送信する場合、Beam で TLS 暗号化処理を行えば、デバイスでの TLS 暗号化処理が省略できます。
    • TLS 暗号化処理を利用するには、HTTPS、MQTTS、TCPS のいずれかのプロトコルに変換するように設定してください。
    • 暗号化のための認証情報は、デバイスではなく 認証情報ストア で保管できます。
Beam を利用しない方法や Beam で TLS 暗号化処理を行わない場合はデバイスで TLS 暗号化処理を行う必要があります

デバイスで TLS 暗号化処理を行うには、認証情報 (クライアント証明書など) も、あらかじめデバイスに保管する必要があります。

Beam が対応する TLS バージョンは 1.2 と 1.3 です

Beam から転送されるお客様のサーバーでは、TLS 1.2 または 1.3 に対応するように設定してください。

なし
プロトコル変換HTTP/HTTPS を利用できないデバイスからの通信を、転送先サーバーにあったプロトコルに変換して送信できます。たとえば、TCP や UDP から、HTTPS に変換できます。
  • Beam と Funk は、SORACOM でプロトコル変換を行います。
  • Funnel は、アダプターがプロトコル変換を行います。
接続先の切り替え

PoC フェーズと Production フェーズで、アルゴリズム (処理内容) が変わる場合や、処理結果の送信先が異なる場合でも、デバイスの設定を変更する必要はありません。

デバイスからは、Beam のエントリポイント または Unified Endpoint にデータを送信します。転送先サーバーや転送時のパラメータは、デバイスが手元になくても SORACOM ユーザーコンソールや SORACOM CLI / SORACOM API でいつでも変更できます。

なし
データ通信量と消費電力の削減デバイスから Beam までの暗号化処理が省略でき、さらにデータ通信の手続きが簡素なプロトコルを利用できるため、データ通信量も消費電力も削減できます。また、バイナリパーサー を利用すると、さらにデータ通信量と消費電力を削減できます。なし
同期 / 非同期

同期。転送先サーバーからのレスポンスを受け取れます。

  • LPWA (Sigfox、LoRaWAN) に関しては、デバイスに対してレスポンスを返すことはできません。
  • SMS でデータを送信した場合に、デバイスでレスポンスを受信することはできません。デバイスに SMS を送信する手順については、SORACOM と SMS を送受信する を参照してください。
  • Beam と Funk は、同期で処理されます。転送先サーバーからのレスポンスを受け取れます。
  • Funnel は、非同期で処理されます。転送先サーバーからのレスポンスを受け取れません。
対応プロトコル (デバイス - Beam 間)
  • TCP
  • UDP
  • HTTP
  • MQTT
  • SMS
  • USSD
  • LPWA (Sigfox、LoRaWAN)
  • Inventory (データ更新イベント)

プロトコルごとにエントリポイントが用意されています。詳しくは、SORACOM Beam のエントリポイントを設定する を参照してください。

MQTT エントリポイントの想定用途

MQTT エントリポイントは、デバイスからは MQTT で送信し、Beam からは MQTTS で送信するエントリポイントです。このエントリポイントは、デバイスに CPU パワーがあまりなく、MQTTS で送信することが難しい場合に有用です。

  • Beam は、任意の HTTP メソッド (GET、POST、PUT など) を利用できます。また、MQTT を利用できます。
  • Funk と Funnel は、HTTP で送信する場合は POST のみ利用できます。なお、MQTT は利用できません。
送信間隔Beam を使って短い間隔 (1 秒に 1 リクエスト等) でデータ送信することを検討されているお客様は、セールスチーム にお問い合わせください。なし
ヘッダー操作 / トピック操作

Beam でリクエストを転送する際に、IMSI、IMEI、署名ヘッダー、カスタムヘッダー、Authorization ヘッダーなどの情報を追加できます (ヘッダー操作)。

MQTT の場合は、トピックに SIM ID や IMEI などの情報を追加できます (トピック操作)。

転送先のプロトコルによって、追加できるヘッダーや追加方法が異なります。詳しくは、エントリポイントリファレンス を参照してください。

Beam は、高度なヘッダー操作やトピック操作ができます。
Beam からのアクセスであることを確認するには転送される際に、署名を付与できます。転送先サーバーで、その署名を検証することで、Beam からのアクセスであることを確認できます。詳しくは、転送先サーバーで SORACOM Beam からのリクエストであることを検証する を参照してください。
  • Beam は、署名を検証して確認します。
  • Funk は、トークンを検証して確認します。<
  • Funnel は、転送先サービスが確認します。

転送先サーバーが自己署名証明書またはプライベートな認証局で署名された証明書を使用している場合は、証明書の検証ができないため接続に失敗します。

HTTP/MQTT/TCP/UDP セッションは切断されることがあります

確立済みの HTTP/MQTT/TCP/UDP セッションは、さまざまな要因によって切断される場合があります。セッションが切断された場合は再接続を試行してください。再接続を試行する際は、Exponential Backoff 等のアルゴリズムを利用することも検討してください。

なお、SORACOM のメンテナンスに伴うセッション切断は、SORACOM Status Dashboard などで告知されません。ご了承ください。

そのほかのサービスを併用する

Unified Endpoint

Beam は、Unified Endpoint のデータ送信先の一つです。グループ設定で Beam が有効化されている場合は、デバイスから Unified Endpoint に送信されたデータは、Beam に転送され、さらに Beam からデータ転送先にデータが送信されます。

SORACOM Beam SORACOM Beam

Unified Endpoint を経由すると利用できないエントリポイントがあります

次のエントリポイントは、Unified Endpoint を経由すると利用できません。

バイナリパーサー

バイナリパーサー は、デバイスから送信されたバイナリデータを、グループ設定で定義されたフォーマット に従って JSON データに変換する機能です。Beam とバイナリパーサーを併用すると、デバイスから Beam のエントリポイントに対して軽量のバイナリデータを送信するだけで、転送先のサーバーでは JSON データを受信できます。

Orbit

Orbit は、デバイスから Unified Endpoint に送信されたデータを、Beam に転送する前に任意のデータフォーマットに変換するサービスです。たとえば、転送先サーバーで受け付けるデータフォーマットが変更されたとしても、Orbit で転送先サーバーにあわせてデータを変換できるため、デバイスから送信するデータフォーマットを変更する必要がありません。