Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
IoT企業におけるWebエンジニアの役割 / web-engineer-of-IoT-company
Search
koichi222
March 23, 2017
Programming
0
1.2k
IoT企業におけるWebエンジニアの役割 / web-engineer-of-IoT-company
koichi222
March 23, 2017
Tweet
Share
More Decks by koichi222
See All by koichi222
NOT A HOTELでのデータ・AI活用
koichi222
0
1.5k
2023夏NAHハッカソン_音声ケビンチーム
koichi222
0
2.3k
Other Decks in Programming
See All in Programming
Make Impossible States Impossibleを 意識してReactのPropsを設計しよう
ikumatadokoro
0
140
PHP でアセンブリ言語のように書く技術
memory1994
PRO
1
160
ECS Service Connectのこれまでのアップデートと今後のRoadmapを見てみる
tkikuc
2
240
とにかくAWS GameDay!AWSは世界の共通言語! / Anyway, AWS GameDay! AWS is the world's lingua franca!
seike460
PRO
1
790
TypeScriptでライブラリとの依存を限定的にする方法
tutinoko
0
180
Macとオーディオ再生 2024/11/02
yusukeito
0
340
DefinitelyTypedに初めてPRを出した話
syumai
0
130
macOS でできる リアルタイム動画像処理
biacco42
9
2.3k
ActiveSupport::Notifications supporting instrumentation of Rails apps with OpenTelemetry
ymtdzzz
1
210
C++でシェーダを書く
fadis
6
4k
Duckdb-Wasmでローカルダッシュボードを作ってみた
nkforwork
0
110
CSC509 Lecture 12
javiergs
PRO
0
140
Featured
See All Featured
How GitHub (no longer) Works
holman
310
140k
Optimising Largest Contentful Paint
csswizardry
33
2.9k
Optimizing for Happiness
mojombo
376
69k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Navigating Team Friction
lara
183
14k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Raft: Consensus for Rubyists
vanstee
136
6.6k
Become a Pro
speakerdeck
PRO
25
5k
Why Our Code Smells
bkeepers
PRO
334
57k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
Transcript
IoT企業における Webエンジニアの役割 @koichi222
目次 ・Akerunについて ・IoT製品開発の全体像 ・Akerunバックエンドのアーキテクチャの変遷 ・IoT企業でWebエンジニアが生み出せる価値
自己紹介 ・@koichi222 ・
[email protected]
・Software Engineer
Akerunについて
None
https://www.youtube.com/watch?v=ZipOv zOQ6yo
2014.9.1 株式会社フォトシンス設立 2015.3.23 1.Akerun SmartLockRobot 2.Akerunアプリ iOS/Androidアプリ 3.Akerun Manager 権限管理/履歴参照
2015.7.23 4.Akerun Remote Web・ガラケーで開閉 2015.11.25 5.Akerun Touch スマホをかざして開閉 2015.12.3 6.Akerun Entrance 自動ドアもスマホで開閉 Akerunオンライン鍵 管理システム
初代Akerun ・2015年3月リリース ・世界初の後付型スマートロック ・スマホアプリで施錠・解錠
オンライン鍵管理システム ・2015年7月リリース ・AkerunRemote ネット接続するIoTゲートウェイ ・管理画面Akerun Manager ブラウザから鍵の開け閉め、 合鍵の発行を可能に
Akerunモジュール、Akerun Touch ・Akerunモジュール 自動ドアに取り付け可能なモジュール オートロックのエントランスに対応 2015年12月リリース ・Akerun Touch スマホをかざすだけでAkerun操作可能に 2015年11月リリース
Akerun Pro ・Akerun Pro 開閉速度など基本性能の大幅向上 NFCでの開閉に対応 2016年7月リリース
IoT製品開発の全体像
一般的なWebシステム開発(アジャイル)
IoT製品の開発の流れ
Webシステム開発とIoT開発の違い ・開発するレイヤが広い ・HW・・・メカ、エレキ ・SW・・・FW、アプリ、API、Web ・HW開発はSWに比べリードタイムが長い ・設計→製造→評価→再設計 ・SW開発には製造工程がない PJとしての複雑性が高く、マネジメントの難易度が高い
ではこのような難易度の高い プロジェクトにどう取り組んだか?
1.開発人員の全レイヤ内製化 2.プロジェクト管理方法の一元化 3.レイヤをまたいだコミュニケーション 効率化ためのフォーマットづくり
1. 開発人員の全レイヤ内製化 創業当初から全レイヤにフルタイムメンバー
内製化ゆえ素早い議論と意思決定ができた
2. プロジェクト管理方法の一元化 当初はGithub Issue, Trelloなどを利用
2. プロジェクト管理方法の一元化 当初はGithub Issue, Trelloなどを利用 各レイヤごとのタスク管理はしやすい
PJ全体のタスクが一覧できない 時系列でのスケジューリングがしにくい
信頼と実績のExcelガントチャート
信頼と実績のExcelガントチャート 全体が俯瞰して見れる ビジネスサイドにもわかりやすい ☓
編集が簡単すぎる、編集履歴が残らない Excelへの転記作業が発生しメンテされにくい
Redmineで各レイヤごとのタスク管理
Redmineで各レイヤごとのタスク管理 全レイヤのタスクが俯瞰してみれる ガントチャート、カンバンなども表示できる エンジニアのタスクの2重管理がない 気を抜くとチケット化がおろそかに
3. レイヤを超えたコミュニケーション効率化 仕様書をきっちり用意する ・シーケンス図 ・データフロー ・API仕様(FW、Web)
Akerunバックエンド アーキテクチャの変遷
初代Akerun ・2015年3月リリース ・世界初の後付型スマートロック ・スマホアプリで施錠・解錠
フェーズ1(初代Akerun)
オンライン鍵管理システム ・2015年7月リリース ・AkerunRemote ネット接続するIoTゲートウェイ ・管理画面Akerun Manager ブラウザから鍵の開け閉め、 合鍵の発行を可能に
フェーズ2(Akerun+Remote+Manager)
AkerunPro ・Akerun Pro 開閉速度など基本性能の大幅向上 NFCでの開閉に対応 2016年7月リリース
フェーズ3(Akerun Pro)
アーキテクチャで重要だと感じた部分 ・API部分は疎結合にしておく ・スケールアップしやすさ ・外部システムとの連携しやすさ ・最適な通信プロトコルを選択する(HTTP,BLE、MQTT) ・モノの部分のデータもクラウドに集約するように 予め設計する ・複雑な処理はなるべくクラウドに寄せる(電池残量計算、暗号化) ・更新のしやすさ ・豊富なリソース
事例: 電池残量の計算 電圧だけでは、正確な電池残量を計測することは難しい → クラウド側に ・電圧 ・経過時間 ・開閉回数 ・温度 などのデータを集約し、それを元に
電池残量推定ロジックを作成、算出
IoT企業でWebエンジニア が生み出せる価値
前提 IoT製品であっても通常の ・アプリのAPI ・ユーザ向け管理画面 などは必要になることが多いので、 通常のWebエンジニアとしての仕事は十分 にある
HW製品とIoT製品の違い 常にネットに繋がっている状態である ・リアルタイムにデータが取得できる ・SW部分をアップデートできる データからどう価値を生むかが非常に重要 であり、Webエンジニアが活躍できる部分
データで品質を向上 利用データを元に故障の予兆を検知 開閉回数、電池残量などの基 本情報 FWのエラーログ ゲートウェイ↔インターネット の通信状況 Akerun↔ゲートウェイ の電波強度
そろそろ電池が 切れそう! データで顧客満足度を向上
データで顧客対応を効率化 なんだかAkerunの調子 が悪いなぁ ゲートウェイ↔インターネット 接続の問題 スマホ↔Akerunの接続の問題 お客様の操作ミスによる問題 Akerun本体の設置状況の問題 (設置位置がズレている )
お客様の社内ネットワーク 環境による問題 原因が多岐に渡るため切り分けが難しい
データで顧客対応を効率化 なんだかAkerunの調子 が悪いなぁ ゲートウェイ↔インターネット 接続の問題 スマホ↔Akerunの接続の問題 お客様の操作ミスによる問題 Akerun本体の設置状況の問題 (設置位置がズレている )
お客様の社内ネットワーク 環境による問題 利用データを確認することでCSを効率化
事例: コマツ(KOMTRAX) ・GPS ・エンジン燃費、温度 ・ポンプの圧力や温度 などを取得し、 ・故障の予兆を把握、事前に 保守サービスを提供 ・燃費をモニタリングして、 燃費が良くなるような操作方法
や設定を提案
まとめ ・Akerunについて ・IoT製品開発の全体像 ・Akerunバックエンドのアーキテクチャの変遷 ・IoT企業でWebエンジニアが生み出せる価値
最後に ・すべてが合わさって1つの”モノ”が動く瞬間の感動 ・初めてプログラミングをした時以来の感動がある ・理屈抜きで楽しい! 興味がある方はぜひ飛び込んでみては
ご静聴ありがとう ございました!