• 投稿日
  • 新サービス: SORACOM Inventory を発表

    皆さんは、デバイス管理にどのようなツールをお使いでしょうか?
    例えばSSHですか?便利ですね

    とはいえ、セルラー通信においてSSHを利用するには、様々なハードルがあります
    まずはネットワーク。一般的にはグローバルIPアドレスが必要ですが、これにより二つの課題が発生します

    1. IPアドレスを知る仕組みが無い (ifconfig.ioのような外部サービスが必要)
    2. デバイス自身にサーバ並みのセキュリティ対策を施す必要がある

    これらの課題は SORACOM Gate で解決できます
    では、SORACOM Gateを利用して例えばAnsible over SSHで構成管理をすれば良いのでしょうか?

    IoTにおいてはAnsibleでは管理できない、例えばArduinoといったデバイスもつながる事になるため、これではすべてを管理することは叶いません

    もっと包括的に、そしてSSHではない、多くのデバイスを管理するための仕組みとして SORACOM Inventory を紹介します

    SORACOM Inventory とは

    OMA LightweightM2M (LwM2M) をベースにした、デバイス管理のためのフレームワークを提供するサービスです

    関連プレスリリース
    IoT 通信プラットフォーム「SORACOM」においてIoTデバイスの設定の管理や状態把握、コマンド実行などを可能にするデバイス管理サービス「SORACOM Inventory」を7月5日より提供開始

    OMA LwM2M

    デバイス管理を目的として、 CoAP を使用したオープンな仕様&実装です。アーキテクチャはLwM2MサーバとLwM2Mクライアント(エージェント)のサーバ/クライアント方式となります

    About LwM2M

    ※OMA LightweightM2M および 移動体通信網とのインターワーク / TTC oneM2M専門委員会 日本電気株式会社 山田 徹(講演者)、内田 訓雄 / P4より

    制御は LwM2M で規定されているツリー形式のリソースモデルのIDの単位で読み/書き/実行と、値の観察(Observe/Unobserve)を行います
    e.g.) /3/0/9Battery Level を読みだすためのID。SNMPに似ていますね

    SORACOM Inventory が提供すること

    SORACOM Inventory は下記のようなアーキテクチャでご利用いただけます

    全体像

    SORACOM Inventory を使用する利点

    SORACOMコンソールからの操作が容易

    SORACOM Inventory は、SORACOMコンソール上でデバイスが一覧できる他に、リソースモデルIDを調べることなく値の読み/書き/観察/実行が行える点にあります

    コンソールでの一覧表示

    コンソールでの一覧表示

    デバイスの詳細表示

    デバイスの詳細表示

    LwM2Mサーバがフルマネージド

    SORACOM Inventoryでは LwM2Mサーバ(起動時の参照サーバ:Bootstrap, 実際の制御:Device management)をフルマネージドでご利用いただけます。お客様でサーバを立てる必要がありません。ほかにも、LwM2Mクライアント(エージェント)のサンプル実装がご利用いただけます※

    現在用意しているサンプル実装は C/Java/Android のクライアント(エージェント)となります。もちろんLwM2Mはオープンであるため、ソラコムが提供がクライアント実装以外でも利用可能です

    ※Limited Preview期間中においては、ご申請をいただいた方に C/Java/Androidのサンプル実装をご提供いたします。その後は広く公開する予定です
    ※ソラコムではサンプル実装含め、クライアント(エージェント)のサポートは受けかねますのでご了承ください

    LwM2Mのリソースモデルとクライアント(エージェント)の関係

    LwM2Mで規定しているのは「リソースIDに対する呼び出しと、そのレスポンス」になります。そのため、どのような値が返るかはクライアント(エージェント)の実装に依存します

    • 例) Firmware のバージョンを返すリソースモデルID /5/0/7 が読みだされた時
      • Linux OSの場合: uname -a の結果を返す
      • Arduino UNOの場合: 固定文字列 1.0.0 を返す
    • 例) デバイスの再起動を実行する /3/0/4 が実行されたとき
      • Linux OSの場合: shutdown -r now を実行する
      • Arduino UNOの場合: 下記の関数を作成したうえで software_reset() を実行する
    /* Software reset for Arduino UNO */
    #include  <avr/wdt.h>
    void software_reset() {
      wdt_disable();
      wdt_enable(WDTO_15MS);
      while (1) {}
    }
    

    実装ができるということは、言い換えると実装が必要ということです。そのため、Limited Previewにおいてご提供するサンプル実装においては、固定の値が返ったり、値自体が取得できないといったリソースIDも存在しますので、ご留意ください

    まとめ

    SORACOM Inventory は Limited Preview でご提供しております! (2017/7/5現在)
    利用には事前申請が必要となりますが、簡単にお申込みいただけますので、まず試してみたい方はお申し込みください

    特にLinux OS(Raspberry Piとか)が再起動する様子を目の当たりにすると、**SSHじゃなくてもいいかも?!**と思えますので、是非とも試してみてください!

    ソラコム 松下