Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
可能性は無限大!SORACOM Orbit 入門 /SORACOM Orbit-UG Onli...
Search
SORACOM(ソラコム)
PRO
September 24, 2020
Technology
0
940
可能性は無限大!SORACOM Orbit 入門 /SORACOM Orbit-UG Online #1
2020年9月24日(木)SORACOM UG Online #1
可能性は無限大!SORACOM Orbit 入門
株式会社ソラコム プリンシパルエンジニア 小熊 崇/ogu
SORACOM(ソラコム)
PRO
September 24, 2020
Tweet
Share
More Decks by SORACOM(ソラコム)
See All by SORACOM(ソラコム)
投資家様向けビジネス概要<2025年11月版>
soracom
PRO
0
220
Business Overview for Investors [November 2025 Edition]
soracom
PRO
0
55
【SORACOM UG Okayama】IoTとSORACOMとAI
soracom
PRO
0
280
【SORACOM UG Explorer 2025】さらなる10年へ ~ SORACOM MVC 発表
soracom
PRO
1
550
10年の共創が示す、これからの開発者と企業の関係 ~ Crossroad
soracom
PRO
2
1.4k
投資家様向けビジネス概要<2025年8月版>
soracom
PRO
0
550
Business Overview for Investors[August 2025 Edition]
soracom
PRO
0
82
少人数・短期間で実現!“ゼロから作らない” 4つの事例から見る、新時代IoT【SORACOM Discovery 2025】
soracom
PRO
0
360
現場のリアルをカメラで変える!小売・商業施設の「現場改革」最前線【SORACOM Discovery 2025】
soracom
PRO
0
340
Other Decks in Technology
See All in Technology
Agent Skillsがハーネスの垣根を超える日
gotalab555
2
710
2025-12-18_AI駆動開発推進プロジェクト運営について / AIDD-Promotion project management
yayoi_dd
0
130
生成AI活用の型ハンズオン〜顧客課題起点で設計する7つのステップ
yushin_n
0
250
AlmaLinux + KVM + Cockpit で始めるお手軽仮想化基盤 ~ 開発環境などでの利用を想定して ~
koedoyoshida
0
120
SREには開発組織全体で向き合う
koh_naga
0
390
20251218_AIを活用した開発生産性向上の全社的な取り組みの進め方について / How to proceed with company-wide initiatives to improve development productivity using AI
yayoi_dd
0
280
初めてのDatabricks AI/BI Genie
taka_aki
0
230
コンテキスト情報を活用し個社最適化されたAI Agentを実現する4つのポイント
kworkdev
PRO
1
1.7k
業務のトイルをバスターせよ 〜AI時代の生存戦略〜
staka121
PRO
2
230
mairuでつくるクレデンシャルレス開発環境 / Credential-less development environment using Mailru
mirakui
5
560
大企業でもできる!ボトムアップで拡大させるプラットフォームの作り方
findy_eventslides
1
860
AWS re:Invent 2025 re:Cap LT大会 データベース好きが語る re:Invent 2025 データベースアップデート/セッションの紹介
coldairflow
0
110
Featured
See All Featured
Chasing Engaging Ingredients in Design
codingconduct
0
75
4 Signs Your Business is Dying
shpigford
186
22k
Code Reviewing Like a Champion
maltzj
527
40k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
34
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.1k
Testing 201, or: Great Expectations
jmmastey
46
7.8k
Deep Space Network (abreviated)
tonyrice
0
18
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
32
Believing is Seeing
oripsolob
0
10
Transcript
可能性は無限大! SORACOM Orbit 入門 2020.09.24 SORACOM UG Online #1 株式会社ソラコム
プリンシパル ソフトウェア エンジニア 小熊 崇 @ogu
自己紹介 小熊 崇(おぐま たかし)- @ogu • プリンシパルソフトウェアエンジニア • SORACOM Orbit
開発者 • AT コマンドの本を書きました: SORACOM で学ぶ AT コマンド入門 https://zenn.dev/bearmini/books/12ebf8331d6f9ea1d90d
目次 1. SORACOM Orbit とは? 2. なぜ SORACOM Orbit ?
3. SORACOM Orbit の使い方
SORACOM Orbit とは?
インライン プロセッシング サービス SORACOM プラットフォームの通信経路上 (=インライン)で お客様が定義したデータ変換処理(=プロセッシング)プログラムを実行 IoT デバイス Unified
Endpoint ユーザーコード (変換処理) SORACOM Funk SORACOM Funnel SORACOM Beam SORACOM Orbit SORACOM Lagoon SORACOM Harvest
インライン プロセッシング・・・? όΠφϦͰ ૹ৴͍ͨ͠ 0x1A2B... IoT デバイス σʔλ௨৴ྔΛ ݮͰ͖Δ サーバー
{ "battery": 54, "latitude": 35.652748, "longitude": 139.750827 } +40/ Ͱ ड৴͍ͨ͠ ΫϥυͰ ॲཧ͍͢͠
インライン プロセッシング・・・! όΠφϦͰ ૹ৴͍ͨ͠ 0x1A2B... IoT デバイス σʔλ௨৴ྔΛ ݮͰ͖Δ サーバー
{ "battery": 54, "latitude": 35.652748, "longitude": 139.750827 } +40/ Ͱ ड৴͍ͨ͠ ΫϥυͰ ॲཧ͍͢͠ ユーザーコード (変換処理) SORACOM Orbit
バイナリパーサーとどう違うの? バイナリパーサー • ◦ シンプル • ◦ すぐに使える • ?
固定のフォーマットにしか対応できない • ? 入力形式はバイナリのみ • ? 出力形式は JSON のみ • ? アップリンク方向のデータのみ変換できる SORACOM Orbit • ◦ 好きな言語で自由に処理を書ける • ◦ ソラコム公式の開発環境が用意されている • ◦ ある程度複雑なフォーマットでも対応可能 • ◦ バイナリ以外のデータにも対応 • ◦ JSON 以外の出力も可能 • ◦ ダウンリンクのデータも変換可能 • ◦ バイナリパーサーと組み合わせての利用も可能
バイナリだけじゃない SORACOM Lagoon SORACOM Harvest { "lat":35.000000, "lon":139.000000, "bat":3, "rs":4,
"temp":16.0, "humi":32.4, "x":0.0, "y":-64.0, "z":-960.0, "type":0 } ユーザーコード (変換処理) SORACOM Orbit { "lat":35.000000, "lon":139.000000, "bat":3, "rs":4, "temp":16.0, "humi":32.4, "x":0.0, "y":-64.0, "z":-960.0, "type":0, "name":"oguのGPSマルチユニット", "imsi":"44010xxxxxxxxxx", "inside_area":1, "distance":0.123487 } GPS マルチユニット SORACOM Edition SIM のタグなどの メタ情報
Funk + FaaS とどう違うの? SORACOM Funk + FaaS • ◦
ほぼなんでもできる • ◦ クラウドサービスとの連携 • ? Harvest や Lagoon との連携にはひと工夫必要 SORACOM Orbit • ◦ Orbit の中に閉じた処理であれば何でもできる • ◦ SIM のメタデータ等を活用できる • ◦ Harvest や Lagoon に直結
Funk + FaaS からの Harvest / Lagoon SORACOM Funk 経由で
AWS Lambda を呼び出して処理 その後 Inventory を使って Harvest にデータ投入 SORACOM Inventory SORACOM Funk SORACOM Harvest SORACOM Lagoon AWS Lambda IoT デバイス 外部にサーバー等を用意しなくてすむお手軽さが Harvest / Lagoon の良さですが、 これだとちょっと大変… ユーザーコード (変換処理)
Harvest / Lagoon との連携 ちょっとだけデータの形式を変えて Harvest に入れたい場合に シンプルに実現可能 SORACOM Orbit
SORACOM Harvest SORACOM Lagoon IoT デバイス ユーザーコード (変換処理) Unified Endpoint
なぜ SORACOM Orbit ?
それは2017年にさかのぼります LPWA はデータサイズが 小さいとはいえ、データの 一部を読んで場合分けし たいことはありそうだよ なぁ・・・ ogu LPWA のバイナリデータを
かんたんに JSON に変換できる バイナリパーサーを作りましょう! 記法はこんな感じで: status:0:uint:2:7 battery:0:uint:6:5:*2 latitude:5:float:32 longitude:1:float:32 altitude:7:uint:16:/10-100 いいね!
ogu DSL 記法は便利だけど、ソラコム独自の記法をユーザーのみなさまに覚えてもらうのは心苦しい・・・ 場合分けなどの複雑な機能を持たせたら、なおさら学習コストが高まる・・・ 複雑な DSL を作っちゃうとソラコム側でのメンテナンスコストも・・・ nginx とかみたいに Lua
を使えばいいのかな・・・ Lua も馴染みがない人が多いよなぁ・・・ 今後廃れちゃうかもしれないしな・・・ 任意のプログラミング言語をサポートできるのが理想だけど、 そうするためにはユーザーさんの書いたネイティブコードを動かせるようにしたり、 Java VM みたいなものを動かしてその上でユーザーさんのコードを動かせるように する必要がありそう。そうなるとセキュリティが・・・ https://blog.soracom.com/ja-jp/2020/07/14/soracom-orbit/ 新サービス SORACOM Orbit のご紹介(&開発秘話)
時は流れて2019年
WebAssembly のいいところ • いろいろな言語で書いたコードを Wasm 形式に出力できる • お客様は使い慣れた言語を使えるので学習コスト:低 • ソラコム側は
Wasm ランタイムのみサポートすればよいので メンテナンスコスト:低 • 言語の流行に左右されるリスク:低 • セキュア • もともと Web 向けに開発された • 軽量・高速
WebAssembly で万事解決! όΠφϦͰ ૹ৴͍ͨ͠ 0x1A2B... IoT デバイス σʔλ௨৴ྔΛ ݮͰ͖Δ サーバー
{ "battery": 54, "latitude": 35.652748, "longitude": 139.750827 } +40/ Ͱ ड৴͍ͨ͠ ΫϥυͰ ॲཧ͍͢͠ ユーザーコード (変換処理) SORACOM Orbit
SORACOM Orbit の使い方
SORACOM Orbit の使い方 1. 対応言語で変換処理プログラムを書く 2. Wasm モジュールにコンパイル 3. アップロード
4. テスト 5. 本番投入! 詳しくは SORACOM Orbit 開発者ガイド https://dev.soracom.io/jp/orbit/what-is-orbit/
SDK 提供言語 • AssemblyScript • TypeScript のサブセット • Rust •
WASM との親和性の高い言語 • C/C++ • Emscripten というツールセットで WASM に対応 • TinyGo • Go 言語のサブセット ※ 2020年9月現在 New!
開発は VS Code を使ってめっちゃ簡単 • Dev container • 開発環境(コンパイラ等)インストール済・設定済 •
Orbit extension • Soralet の管理 • アップロード • テスト実行 • ログ確認
でも、お高いんでしょう・・・? 無料利用枠 • 基本料金 1 SIM 分 • リクエスト 10,000
回分 くわしくは SORACOM Orbit のご利用料金 https://soracom.jp/services/orbit/price/
API Sandbox も Orbit をサポート /v1/soralets 以下の API を実行できるようになりました •
Soralet のアップロード • テスト実行 • ログの確認 etc. … New!
サンプルプログラム • 各言語用の SDK 内に同梱 • SORACOM IoT DIY レシピ
• Meitrack T366による車両トラッキング https://soracom.github.io/iot-recipes/vehicle-tracking-by-meitrack-t366 • SORACOM Summer Challenge 2020 • 1万円で作る SORACOM LTE-M Button Plusで冷蔵庫を用いた見守りシステム https://qiita.com/reomaru7/items/8276ab4dee1c8bdc1183 • Qiita • SoracomOrbit で検索
Orbit でできることのほんの一例 • デバイスからは CSV を送信、JSON に変換 • 入出力のフォーマットは自由 •
LTE-M button の Click type を type 別にカウント • デバイスからの GPS 座標と、タグに設定しておいた中心座標から距離を 計算しジオフェンシング • SIM のタグから設定値を読み込んで処理に利用可 • デバイスやサーバーサイドのバージョン違いを吸収 :
無限大の可能性 感じていただけましたか? 特に Harvest / Lagoon との相性が最高なので オススメです! みなさまからのフィードバックお待ちしております!
世界中のヒトとモノをつなげ 共鳴する社会へ