こんにちは。製品開発部の渡辺です。
2015年9月30日、
今回は、そんなサービスにSkyOnDemandを利用してつないでみました。
MVNOとは、
ちなみに、
「Soracom」とは
「Soracom」には、以下、2つのサービスが存在します。
「Soracom Air」
こちらは、IoT向けのデータ通信SIMを提供するサービスです。NTT docomoの通信基盤を利用したMVNEになり、発行されるSIMカードはdocomoマークが入ったものになります。
データ通信の利便性をあげるべく、
その他の特徴としては、SIM1枚、1日10円という低価格の基本料金で、
また、
「Soracom Beam」
こちらは、IoT事業の課題である、
SIMカードを搭載したモノから通信業者のゲートウェイまでは安全なので、その先の各サービス(サーバ)
HTTPS、
現在、このサービスはPublic Betaというステータスで提供されており、「お客様からのフィ
Soracom API
続いては、ソラコムの特徴となっている、
APIリファレンスページ(https://dev.
APIとしては、以下のものが用意されてます(
-Auth
認証処理周りですね。
-Operator
作成したアカウントに対して認証処理をする事で、
-Subscriber
SIMの管理を行います。SIMの情報取得はもちろんですが、
-Stats
登録したSIMの利用情報を取得します。通信料の履歴情報をJSON形式で取得する他、その情報をAWS S3にCSV形式で出力する処理も用意されてます。
-Group
SIMをグルーピングする事が可能でそのためのグループを作成し
-Event Handler
利用に対する監視設定ができ、
SkyOnDemandでつないでみる
Soracom APIの、"Auth"を利用し、API Key及びTokenを取得。それを利用して、APIの"Subscriber"を利用して、SIMの速度クラスを変更していきます。
まずは認証。利用するアダプタは、RESTアダプタのPOST処理を利用します。
必要な情報である、"email"、"password"をJSON形式で渡す設定をするだけです。
結果として得られる、"API Key"と"token"は後続の処理で必要なので、スクリプト変数に格納しておきます。他の処理でも必ず使うであろう、認証処理は他の処理からも呼ばれるよう、サブスクリプトとして呼ばれるようにしておくと便利ですね。
続いて、Subscriberのupdate_speed_classを実行するため、同様にRESTアダプタのPOST処理を利用します。
更新対象となるSIMのIMSIコードを"パス"に設定し、リクエストヘッダーに取得したAPI-Key及びTokenに設定します。また、リクエストボディには変更したいスピードクラス(S1.XXXX)を設定し、実行します。
実行結果を、ユーザコンソールで見てみましょう。
この流れで、API-KeyとTokenを設定し、APIリファレンスにしたがって必要な値を設定する事でSkyOnDemandからSoracom APIは容易に実行できます。
「Soracom」と「SkyOnDemand」
大量のSIMの取り扱い
Soracomのユーザコンソールは、非常に見やすく使いやすく、特に説明もなくて操作できます。
数枚~数十枚のSIM管理であれば何の面倒もないと思います。しかし、IoTをターゲットとすると、それなりに扱うSIMも多くなってきますので、数百から数千枚のSIM管理が必要になります。
もちろんAPIが公開されてますので、得意な言語でサクッとプログラミングできてしまえば一括管理をすることも可能でしょう。
しかし、サクッと開発できない場合でもSkyOnDemandを利用すれば、APIの実行はもちろん、スケジュール管理やトリガーを利用した実行などもノンプログラミングで可能となります。
クラウドサービスとの連携
SoracomはAWS上に構築されている事もあり、AWSの各種サービスとの親和性は高いです。またクラウド上にあるサービスと連携した利用というのも考えられるでしょう。
下の例を見てください。
Salesforce上には、SIMの情報を設定できるようにしておき、
上記のスクリプトでは、使用中となってないSIM情報だけを取得しSoracomAPIを利用して、有効化(activate)していく処理になります。成功した場合の後処理として、Salesforce上の対象データの使用中フラグをONにする流れとなっております。この処理をSkyOnDemandのスケジュールトリガーを利用すれば、Salesforceで入力したSIM情報が定時でチェックされ有効化されるような仕組みだって簡単に構築できます。
SalesforceのAPIコール数の制限を考慮すると、更新する数次第では、上記のスクリプトのようにループ中で1件ずつの更新ではなく、ファイルに更新対象の情報を出力して一括での更新のほうが良さそうですね。
上記のような更新もあれば、今後は、Soracomを搭載したモノから集めた情報をSalesforce上で管理し、その情報を条件に有効化や無効化などの制御はもちろん、前述で紹介した通信速度を動的に変更する処理などもSkyOnDemandを利用して手軽に実装できそうです。
IoTにまつわるサービスは年を追うごとに増えていき、またその実績も増えてきています。我々もそれらの情報に対してキャッチアップしていきたいと思います。
またご報告できる内容できましたら、投稿させていただきます。
それでは、今回はこの辺で。。。