SlideShare a Scribd company logo
SORACOM Bootcamp
SORACOM Inventory
株式会社ソラコム
テクノロジー・エバンジェリスト
松下 享平
SORACOM Bootcampとは
IoT通信プラットフォーム SORACOM の
IoTシステム構築に役立つ機能やTIPSを紹介する
技術者向けオンラインセミナー
Agenda
•IoTシステム本格導入フェーズでの課題
•SORACOM Inventory
• 概要
• OMA DM LwM2M
• SORACOM Inventory で、できること
• SORACOM Inventory エージェント
•ご利用価格
•FAQ
IoTの基本要素とシステム構築時の課題
クラウド
アプリケーション
ネットワーク
センサー/デバイス
“モノ”
セキュリティ
デバイスの
制限
ネットワークへ
の接続
デバイス
管理
クラウドとの
インテグレーション
IoTシステム構築を支援するSORACOMサービス
専用線
IoTバックエンド
お客様のシステム
Public
Endpoints
SORACOM
Canal/Direct/Door
クラウド
サービス
SORACOM
Endorse
SORACOM Airが提供する安全な通信路
SORACOM
Harvest
SORACOM Beam
SORACOM Funnel
SORACOM Gate
SORACOM Air
IoTの基本要素とシステム構築時の課題
Internet CloudThings
セキュリティ
デバイスの
制限
ネットワークへ
の接続
デバイス
管理
クラウドとの
インテグレーション
IoTの本格導入フェーズにおけるデバイスの課題
•デバイスのデータ/状態取得
•デバイスへのデータ/設定のセット
•プログラムの遠隔実行
•ファームアップデート
通信回線の管理だけでなく
デバイスの管理も
SORACOM InventoryI
デバイス管理サービス
SORACOM Inventory
エージェント
READ
バッテリー残量、メモリ空き容量、現在位置 etc.
WRITE 設定値、更新パッケージデータ etc.
専用エージェントを通じて
デバイスの状態管理・設定更新・コマンド実行を可能に
EXECUTE パッケージ更新、再起動 etc.
SORACOM Inventory
OMA DM LwM2M HTTP Rest API
IoT通信プラットフォーム SORACOM
SORACOMのグローバルなインフラ
120以上の国・地域で利用可能
ライブラリ & SDKs
CLI, Ruby, Swift
Web インターフェース
User Console
データ転送支援
SORACOM
Beam
クラウドアダプタ
SORACOM
Funnel
データ収集・蓄積
SORACOM
Harvest
プライベート接続
SORACOM
Canal
デバイスLAN
SORACOM
Gate
IoT向けデータ通信
SORACOM Air
Cellular (2G, 3G, LTE) / LPWA (LoRaWAN, Sigfox)
専用線接続
SORACOM
Direct
仮想専用線
SORACOM
Door
API
Web API, Sandbox
データ通信
ネットワーク
アプリケーション
インターフェース
認証サービス
SORACOM
Endorse
デバイス管理
SORACOM
Inventory
透過型
トラフィック処理
SORACOM
Junction
SORACOM Inventory / 管理デバイス一覧
OMA DM LwM2M
• OMA DMとは?
• Open Mobile Alliance (OMA)で定められた
デバイス管理の業界標準
• 通信プロトコルとデバイス管理オブジェクトを規定
• OMA DM LwM2Mとは?
• OMAが定めたIoT/M2M向けのデバイス管理標準
• 制約のあるデバイスでも適用可能なプロトコルを採用
OMA DM LwM2M プロトコルスタック
• UDPベースのCoAPプロトコ
ル
• DTLSによる暗号化
• オブジェクト定義を事前共有
UDP
DTLS
CoAP
LwM2M
Device
Object
温度
センサー
Object
Device
Object
温度
センサー
Object
データ転送量の最小化と
セキュリティ確保を両立
OMA DM LwM2M デバイス管理オブジェク
ト
• IoT/M2Mに有用な多数のObjectが定義済み
Device
Model number
Reboot
Battery Level
Memory Free
...
Software
Component
Component Identity
Component Version
Activate
Deactivate
...
Analogue
Input
Current Value
Min Measured Value
Sensor Type
...
http://www.openmobilealliance.org/wp/OMNA/LwM2M/LwM2MRegistry.html
OMA LwM2M Objects
各オブジェクトやリソースには全てIDが定義済
み
→ このIDを基に読み/書き/実行を行う
例: Device (3)のBattery Level (9)
Inventory
エージェント
Inventory
サーバ
Read API
デバイスの情報取得: Read
1. 値のReadリクエスト
GET /3/0/9
2. 現在のBattery Level
DeviceのBattery Level (== /3/0/9) をRead
24%
Inventory
エージェント
Inventory
サーバ
デバイスの設定変更: Write
Write API
1. Writeリクエスト
PUT /3/0/14
2. Accepted
DeviceのUTC Offset (== /3/0/14) にWrite
デバイス上のコマンド実行: Execute
Inventory
エージェント
Inventory
サーバ
Execute API
1. Executeリクエスト
POST /3/0/4/execute
2. Accepted
DeviceのReboot (== /3/0/4) をExecute
SORACOM Bootcamp Rec12 | SORACOM Inventory
Inventoryサービスには2つのエンドポイント
•Bootstrap: デバイス登録と認証情報提供
•Device Management: デバイス管理サービス
SORACOM Inventoryのエンドポイント
Read/Write/Execute
Observe/Un-observe
SORACOM Air経由
Bootstrap
Bootstrap
SORACOM Airでのみ
到達可能
Device
Management
任意の通信路から
到達可能
SORACOM Air以外の通信路
SORACOM Inventoryのデバイス登録
1. BootstrapサーバにSORACOM Airでアクセス
• 自動でSIM所有者に紐づくデバイスを作成・鍵発行
2. 発行された鍵を使って認証・暗号化通信
1. Bootstrap リクエスト
2. デバイスID、認証鍵を
発行・保存3. デバイスID、認証鍵
4. デバイス登録リクエスト
(デバイスID, 認証鍵) 5. 認証鍵
6. デバイス登録完了
Read/Write/Execute
Observe/Un-observe
SORACOM Airを使っているデバイスは自動登録が可能!
SORACOM Inventoryのデバイス登録
• SORACOM Airを使うゲートウェイの配下デバイスも
自動登録してデバイス管理の対象に含めることが可能
• 各デバイスに独立してID及び鍵を発行
セルラー非搭載
デバイス
2. デバイスID・
認証鍵を発行・保存3. デバイスID、認証鍵
4. デバイス登録リクエスト
(デバイスID, 認証鍵) 5. 認証鍵
SORACOM Air搭載
ゲートウェイ 1. Bootstrap リクエスト
6. デバイス登録完了
Read/Write/Execute
Observe/Un-observe
SORACOM Inventoryのエージェント
OMA DM LwM2M準拠エージェントが利用可能
•オープンソース実装の例
• Eclipse Leshan (Java)
• http://www.eclipse.org/leshan/
• Eclipse Wakaama (C言語)
• https://github.com/eclipse/wakaama
• AVSystem Anjey (C言語)
• https://github.com/AVSystem/Anjay
検証事例:日置電機様 / SSH接続の確立
SSH
1. HTTP POST
/v1/devices/<deviceId>/14/0/3/execute
2. CoAP
POST /14/0/3
4. Establish SSH tunnel
管理者
3. SSHの実行
エージェントの注意点(1)
•LwM2Mで規定しているのは
「リソースIDと、それに対する呼び出し&レスポン
ス」
返される値はクライアント(エージェント)の実装に依存
取得可能な情報や、追加実装が必要な場合がある
※ 7/18現在
デバイスの利用可能な空きメモリ領域を返すリソースID /3/0/10 に対する実装
GET /3/0/10
Cベースのエージェント (Wakaama) :
“15 (KB)” という固定値を返却
Javaベースのエージェント (Leshan) :
Runtime.getRuntime().freeMemory() を返却
コマンド実行の例: Javaエージェント(Eclipse
Leshan)
SoftwareComponent オブジェクト(/14)の
ActivateやDeactivateが呼ばれた時の挙動実装
POST /14/0/3
でコマンド実行
POST /14/0/4
でプロセスをKill
エージェントの注意点(2)
•SORACOM Air for セルラーの接続およびSORACOM
Inventoryのエージェント起動やプロセス維持は
OSや実装に依存
• NetworkManager や systemd 、 supervisord 等の利用
SORACOM Inventoryの料金
アクティブデバイス数: 当該月に1度以上サーバにRegistrationをしたデバイスの数
イベント数: Registration、値の取得・通知・書き込み、コマンド実行などを行った数
(税別)
Limited Previewの申込み受け付け中!
•C/Java/Androidのクライアントサンプルを提供
•Limited Preview期間中の利用料金は無料
エージェントのサンプル実装を公��※
•Cエージェント
• Eclipse Wakaamaベースの実装
• OSのリブートなどの例を含む
•Javaエージェント
• Eclipse Leshanベースの実装
• デバイス上でのコマンド実行の例含む
•Androidエージェント
• Eclipse Leshanベースの実装
• 位置情報やバッテリ残量などの取得含む
※Limited Preview お申込み者に配布中 (7/18現在)
おわりに
SORACOM Inventory:
デバイス管理のフレームワーク
•セキュアかつ低オーバーヘッドなプロトコル
•コマンド実行や設定更新も低遅延で
•SORACOM Air連動で自動デバイス登録
•SORACOM Airを使わないデバイスでも利用可
是非Limited Previewで
お試しの上フィードバックを!
画像提供: http://maxpixel.freegreatpicture.com/Magic-Halloween-Sunset-Bounce-Magic-Wand-Witch-1112643
世界中のヒトとモノをつなげ
共鳴する社会へ
Q&A
Q:
SORACOM Inventory 管理対象デバイスに
複数のセンサーや、プログラムがある場合の管理方法
は?
A:
“Instance ID” が利用できます
0
1
2
3
常駐プログラムA
常駐プログラムB
常駐プログラムC
OMA DM ObjectとResourceの関係
• 温度計が4つあるデバイスはTemperature SensorのInstanceを4つ
• 常駐プログラムが3つ稼働するデバイスは Instanceを3つ
※管理対象デバイス自体は Instance = 0 ( /3/0/9 = 管理対象デバイス自体のBattery Level)
Object Instance 0
Resource 0
Resource n
Instance n
Resource n
Resource 0
/<Object ID> /<Instance ID> /<Resource ID>
Q:
LwM2M Registryを探しても、要求に合致する
オブジェクトやリソースが見つからない
A:
Object IDやResource ID は
独自定義が可能です
• 濫用は避けたほうが
無難です
• 特にリソースは定義済
リソースで十分です
• “text” や “on/off” 等
カテゴリ Object ID レンジ 説明
oma-label 0 - 1023
OMAで決められたObject。OMAのObjectのみ
が利用可能なレンジ
reserved 1024 - 2047 将来の拡張のため予約済み
ext-label 2048 - 10240
第三者機関やアライアンスの標準で決められた
Object
x-label
10241 - 26240
26241 - 32768
企業や個人で登録されるObjectや、ベンダーが
再利用可能なObjectLwM2M Registryを
よく確認することが一番で
す
Q:
SORACOM Inventory はCLIやAPIから操作可能です
か?
A:
可能です
APIはすでに対応済み
CLIは soracom-cli v0.2.3 以降で対応しています
CLI(API)からの操作
世界中のヒトとモノをつなげ
共鳴する社会へ

More Related Content

SORACOM Bootcamp Rec12 | SORACOM Inventory