OSAKA NDS Embedded Linux Cross Forum #5

IoTのコストを低減する
Webベースのクラウド基盤技術
東芝情報システム株式会社
エンベデッドシステム事業部
2017年7月© 2017 Toshiba Corporation自己紹介
東芝情報システム株式会社
エンベデッドシステム事業部（参事）平井 秀治
経歴：
組込み機器向けクラウド通信基盤
平成2年に東芝情報システムに入社。
クラウドハブ
さまざまなWebシステム開発に２０年間従事し、５年前から組込み系のアプリ開発にも携わり、Web技術と組み込みアプリとの融合に取り組んでいる。
現在は、（株）東芝と連携し、本日ご紹介するクラウド基盤技術のパッケージソフト開発を推進している。

© 2017 Toshiba Corporation2

目次
１．IoTクラウド基盤– 基本機能と応用機能(アプリケーション)

２．基本機能– 遠隔監視・制御– アクセス認証・認可

３．低コスト化– 汎用APIとマイクロサービス– CIやIaaSの活用– 事例紹介：FlashAir™ IoT Hub

４．パッケージ提供について© 2017 Toshiba Corporation

3

１． IoTクラウド基盤© 2017 Toshiba Corporation

4

「IoTクラウド基盤」 と 「IoTサービス」• IoTクラウド基盤: 汎用性の高い基本機能• IoTサービス: 応用機能を含む全体※本講演での便宜上の定義

IoTサービス

IoTクラウド基盤
データ分析

可視化

自動・最適制御(グラフとして)インターネット

ローカルネットワーク

モノ© 2017 Toshiba Corporation

5

IoTクラウド基盤• 基本機能だけなら簡単に実現できる？
• デモレベルならYes

IoTクラウド基盤

インターネット

ローカルネットワーク

モノ© 2017 Toshiba Corporation

6

IoTサービスの本格運用における問題【例： 計測機器のアフターサービス】
計測機器のサービスマン(ユーザ)が, 顧客に納入した多数の計測機器の稼動ログや計測値をネット経由で監視し, 必要に応じてメンテナンスのための制御を行う

本格運用しようとすると問題が山積み
基本機能に限っても・・・
1. 遠隔監視・制御– 顧客網の中の計測機器の可制御性, 通知や制御のリアルタイム性をいかに確保するか？

2. データ収集・管理・提供– 貯まったデータの長期保持, バックアップは？ 検索・トラッキング, 統計処理も欲しい・・・

3. ユーザ・機器管理＆セキュリティ– どのユーザ(サービスマン, 顧客)が, どの機器に, どこまでアクセスできるのか？

4. 可用性とスケーラビリティ＋いかに安く済ませるか？・・・開発コスト,サービス運用・維持コスト,設置等導入コスト© 2017 Toshiba Corporation

7

IoTサービスの本格運用における問題【例： 計測機器のアフターサービス】
計測機器のサービスマン(ユーザ)が, 顧客に納入した多数の計測機器の稼動ログや計測値をネット経由で監視し, 必要に応じてメンテナンスのための制御を行う

本格運用しようとすると問題が山積み
基本機能に限っても・・・
1. 遠隔監視・制御– 顧客網の中の計測機器の可制御性, 通知や制御のリアルタイム性をいかに確保するか？

2. データ収集・管理・提供– 貯まったデータの長期保持, バックアップは？ 検索・トラッキング, 統計処理も欲しい・・・

3. ユーザ・機器管理＆セキュリティ– どのユーザ(サービスマン, 顧客)が, どの機器に, どこまでアクセスできるのか？

4. 可用性とスケーラビリティ＋いかに安く済ませるか？・・・開発コスト,サービス運用・維持コスト,設置等導入コスト© 2017 Toshiba Corporation

8

IoTクラウド基盤の基本アーキテクチャ• 全ての機能をWeb APIとして提供– 機能拡張, アプリ連携, セキュリティを考慮した場合の常識的な選択肢

IoTクラウド基盤

IoTサービスWeb API(グラフとして)Web API

可視化

データ分析
自動・最適制御Web API

インターネット

ローカルネットワーク

モノ© 2017 Toshiba Corporation

9

２．基本機能© 2017 Toshiba Corporation

10遠隔監視・制御
IoTクラウド基盤

Firewallの中の機器へどのようにアクセスするか？
インターネット
Firewall / NAT
ローカルネットワーク

モノ© 2017 Toshiba Corporation

11

遠隔監視・制御• インターネットを介した遠隔からの機器の監視・制御– 家電, 工場設備, ビル設備など
インターネット

監視・制御命令工場,ビル,家庭などのローカルネット(LAN)応答

Firewall/NAT

大量かつ多様なIoT機器• 主要な要件①様々な環境におかれた機器に対する遠隔からのアクセスの実現• 大部分の制御対象機器がローカルネット(LAN)の中– FirewallやNATの配下にあるため直接外部からアクセスできない• LANの入り口に個別の専用ゲートウェイ設置はコスト高, 実現困難な場合も②監視・制御のリアルタイム性の確保• ユーザビリティ, アプリケーションとして必須© 2017 Toshiba Corporation

12

遠隔監視・制御• 監視・制御メッセージを中継するメッセージブローカを活用– WebSocket, MQTT

• ポイントは機器側から確立して,それを維持すること– 専用GWや特別なFirewall設定なしでリアルタイムアクセス可能
メッセージブローカ

機器側から確立した
WebSocket/TLS接続(WebSocketならSSHのトンネルも可)Firewall/NAT……
監視・制御端末
機器とブローカ間のダイレクト通信路を利用するのでローカルネットに入る必要なし

工場,ビル,家庭などのローカルネット……
大量かつ多様なIoT機器© 2017 Toshiba Corporation

13

遠隔監視・制御の大規模化(スケールアウト)• WebSocket等のプッシュ型通信はスケールアウトが困難– 一般的なPull型は既存のロードバランサで容易だが・・– セキュアなTLS接続は固定的なメモリ消費を伴い高コスト【Pull型】

各サーバでの接続維持コスト【Push型】

サーバ

サーバ

サーバ

サーバ

ロードバランサでの接続維持コストもロードバランサ

サーバ

サーバ

ロードバランサ？

どこにモノがつながってる？

ユーザ

モノ

ユーザモノ
© 2017 Toshiba Corporation14

遠隔監視・制御の大規模化(スケールアウト)• 接続調停アーキテクチャ– ロードバランサを使わず, クライアントに接続先ブローカを教える接続調停サーバを導入– 相互通信する制御端末と対象機器を, 同一ブローカに接続し,収容台数が増えても遅延を一定に保つ© 2017 Toshiba Corporation

15

遠隔監視・制御の低コスト化• IoT向けに特化した省リソース化– TLS/TCPソケットバッファサイズが問題。用途に応じた調整によりメモリ4GBのブローカ１台に12万台以上の機器収容も可能• 接続維持にかかるコストの低減– TLS接続を維持するには, 定期的な通信(keep-alive)が必要• 大規模時には無視できないコストに– 環境に応じて周期拡大することでサーバ負荷や通信量を低減© 2017 Toshiba Corporation

16

アクセス認証・認可技術
適切なアクセス権限をもったユーザにセキュアにアクセスさせるには？

IoTクラウド基盤
Web API(グラフとして)

Web API

可視化

データ分析
自動・最適制御Web API
インターネット

ローカルネットワークモノ© 2017 Toshiba Corporation

17

IoT向けアクセス認証・認可基盤• 単にユーザのID,パスワードで認証すればよいだけでは？
– 話はそれほど単純ではない
IoTクラウド基盤

時系列DB

Web API

計測データ
稼動ログ

計測機器メーカのサービスマン(計測機器へのアクセス権所有者)

計測機器© 2017 Toshiba Corporation

18

IoT向けアクセス認証・認可基盤••問題: 「モノ」のアクセス権所有者と, 実際のデータ利用者(クラウドハブを利用する連携システム・アプリ)は異なる
課題: 多様な形態のデータ利用者にいかにアクセス権を与えるか？

サービスは自前で作りたい

計測機器メーカ
Webサイト

IoTクラウド基盤

当社IoTサービス
高度な解析サービスもやりたい

当社製
解析エンジン

計測機器 監視画面

時系列DB
計測機器メーカ
スマホアプリフィールドではモバイルで作業したい

計測機器メーカのサービスマン(計測機器へのアクセス権所有者)

当社製Webサイト
Web API

計測データ
稼動ログ

計測機器 監視画面

当社がアセット管理サービスを運営

計測機器© 2017 Toshiba Corporation19

OAuth2.0（Web標準のアクセス認可プロトコル）• 左図のやり方は危険⇒ 連携アプリが, ユーザのパスワードを知ることが出来てしまうから• 解決方法: OAuth2.0(+OpenID Connect)⇒ ログインはクラウドIoT基盤上で行い, アプリはユーザ認可の結果(アクセストークン)のみもらい, これでサーバ上のデータにアクセスする仕組み
IoTクラウド基盤

IoTクラウド基盤⑥ ID:xxxxの共通化データを下さい。証拠はコレです。

連携アプリ

連携アプリ

① ID: xxxx
password: yyyyのアカウントで,データをアップロード③ ID:xxxx,パスワード: yyyyの共通化データを下さい④ ログイン＆証拠(アクセストークン)取得① ID: xxxx
password: yyyyのアカウントで,データをアップロード②共通化データを取ってきて。
ID:xxxx, パスワードはyyyy です

ユーザ

ユーザ
※ 正確な手順とは異なり若干簡略化しています© 2017 Toshiba Corporation20

IoT向けアクセス認証・認可基盤• OAuth 2.0に準じた複数の認可方式に対応することで,多様な連携アプリとセキュアに連携することが可能
計測機器メーカ
Webサイト

IoTクラウド基盤

当社IoTサービス
当社製
解析エンジン

計測機器 監視画面

時系列DB

計測機器メーカ
スマホアプリ

当社製Webサイト
Web API

計測機器 監視画面

計測データ
稼動ログ

計測機器メーカのサービスマン(計測機器へのアクセス権所有者)

計測機器© 2017 Toshiba Corporation

21

３．低コスト化© 2017 Toshiba Corporation22低コスト化
いかにサービス維持コストや開発コストを低減させるか？

IoTサービス

IoTクラウド基盤
データ分析

可視化

自動・最適制御(グラフとして)インターネットローカルネットワークモノ© 2017 Toshiba Corporation

23低コストなIoTクラウド基盤への取り組み• 基本機能そのものの改善によるサービス維持コスト低減– いかに少ない計算リソース・通信量で, 大量のモノのデータ収集, モノとの相互通信を達成するか？
• クラウドは従量課金, 性能向上がコスト低減に直結⇒ 前述の省リソースメッセージブローカ技術• 多様なサービス固有要件への対応コスト低減– 多数の案件に, いかに少ない手数で対応できるようにするか？
• 基本機能と応用機能(サービス固有機能, アプリ)の役割の分離手法⇒ 前述のOAuthベースの認証認可技術• 基本機能を改変せずに多様なIoTサービスの機能要件を満たす手法⇒ 汎用Web API＆マイクロサービスアーキテクチャ• IaaS・OSS活用によるサービス開発・運用コスト低減– 結局いちばん食うのは開発やメンテナンスに係る人的コスト。どう下げるか？
⇒ CIの整備, IaaSの積極活用© 2017 Toshiba Corporation

24

汎用Web API＆マイクロサービスアーキテクチャ• 問題– IoTサービスには各々固有の要件があり, 個別対応はコスト大• 機器情報の属性, 時系列データの種類・形式, 監視・制御命令フォーマット

• 課題– いかに基本機能のロジックやデータベースを改変せずに多様なIoTサービスの機能要件を満たすか？

• アプローチ– 機能：あらゆるIoTサービス共通で使える汎用Web APIを整備• サービス固有要件は, 汎用APIを利用するアプリかラッパーサービスで対応– データ構造：サービス固有データはオブジェクトデータとして管理• リレーショナルDBのJSON型や, ドキュメント指向DBが一般化• こうした技術を利用して, 個別スキーマ定義をなるべく避ける© 2017 Toshiba Corporation25

汎用Web API＆マイクロサービスアーキテクチャ• FlashAir™ IoT Hubにおける汎用API– Job API• 遠隔監視・制御命令(ジョブ)を扱う– Measurement API• 機器からの時系列データアップロード, 時系列データ・統計データの取得• 以下で公開されています– https://iot-hub.flashair-developers.com/ja/api.html© 2017 Toshiba Corporation26

汎用Web APIによるマイクロサービスアーキテクチャ• Job API:遠隔監視・制御用高信頼・低遅延メッセージングAPI– ”Exactly Once”なメッセージングをRESTfulなセマンティクスで実現機器やサービス固有の処理への対応や標準規格等への対応を, コアから切り離した小さなサービスとして実現できるクラウドハブは, ジョブの中身には一切関与せず
ライフサイクル管理, 排他制御, 順序保証,タイムアウト制御, 高信頼・低遅延配送を担当{ “request”:{{ “request”:{

遠隔監視
制御サービス

計測機器固有の制御形式

計測機器固有の応答形式

ジョブ発行(POST)

標準規格準拠監視・制御
サービス

IoTクラウド基盤}, }計測機器固有のジョブ処理結果取得(GET)
制御形式のエンコード/デコード

監視・制御者

計測機器固有の制御形式},“response”:{

Jobs}, }ジョブ取得(GET)Job API

ジョブ処理結果登録(PUT)

個別サービス・機器対応も, 標準規格対応
も, Job API本体への変更は必要なし

計測機器

標準規格形式をJobでラップ

標準規格準拠機器© 2017 Toshiba Corporation27

CIの整備・IaaSの積極活用• Jenkins, Gitlab CI などCIツールの活用– ソースコードをコミット– テストが自動実行– Docker化 → Dockerイメージをクラウドのリポジトリに登録– コマンド１つで準本番環境や本番環境に展開• 徐々にイメージを新しいものに切り替えていくローリングアップデート• IaaSの活用– 上記のDockerクラスタ管理機能だけでなく, 人的コストを低減するさまざまなサービスを提供• データベースのマルチデータセンター運用, データバックアップ• 計算機やデータベースのメトリック監視やアラート通知• オートスケーリングや, サーバ証明書の自動更新などなど© 2017 Toshiba Corporation

28

事例紹介
IoTの開発・運用コストを低減する
FlashAir™ IoT Hub© 2017 Toshiba Corporation

引用元: http://www.flashair.info© 2017 Toshiba Corporation30

FlashAir™単体のIoT• 既存の機器をカンタンにIoT化できるアダプタとして有力– SDスロットがあればOK, 技適をとる必要なし, 大容量キャッシュで信頼性向上• スクリプト言語(lua)で簡単な組込みアプリも開発可能– 開発者向けのサイトも整備 →

引用元: https://flashair-developers.com/ja/

シンプルな例① 動作ログファイルを定期的に書き出す

既存のファイル共有サーバなどにアップ

機器②-a Wi-Fi経由でアップ(HTTP POST等)
luaLAN②-b Wi-Fi経由で取得(HTTP GET)
© 2017 Toshiba Corporation31

FlashAir™ IoT Hub• FlashAirを使ったIoTサービス開発をサポートする東芝のオンラインサービス– https://iot-hub.flashair-developers.com– FlashAir ・・・ 無線LAN搭載SDカード– SDカードスロットがあれば, レガシーな機器をIoT化できる【想定利用形態】
機器の出力データを解析・ビジュアライズする
IoTシステム
IoT機器稼働監視画面

FlashAir™ IoT HubWeb API⑥Web API経由
でデータ取得ユーザ・機器認証を前提とした(セキュリティを担保した)データ収集・管理Web サイト⑤ ライブラリを使ってデータをアップロード⑦ 分析・アラート・ビジュアライズは自社システムとして作りこむ

ライブラリ(luaスクリプト)③アクセスキー設定

データ変換処理(luaスクリプト)

ユーザ

機器④データ(稼働ログ等)
をファイル出力© 2017 Toshiba Corporation

32

FlashAir™ IoT Hub• FlashAirを使ったIoTサービス開発をサポートする東芝のオンラインサービス– https://iot-hub.flashair-developers.com– FlashAir ・・・ 無線LAN搭載SDカード– SDカードスロットがあれば, レガシーな機器をIoT化できる【想定利用形態】
機器の出力データを解析・ビジュアライズする
IoTシステム
IoT機器稼働監視画面

FlashAir™ IoT Hub
Web API⑥Web API経由
でデータ取得ユーザ・機器認証を前提とした(セキュリティを担保した)データ収集・管理Web サイト⑤ ライブラリを使ってデータをアップロード⑦ 分析・アラート・ビジュアライズは自社システムとして作りこむ

ライブラリ(luaスクリプト)③アクセスキー設定

データ変換処理(luaスクリプト)

ユーザ

機器④データ(稼働ログ等)をファイル出力© 2017 Toshiba Corporation

33

FlashAir IoT Hub：Webサイト• ユーザ登録・ログインすると、FlashAirの新規登録・管理が行える© 2017 Toshiba Corporation

34

FlashAir IoT Hub：Webサイト• ユーザ登録・ログインすると、FlashAirの新規登録・管理が行える①登録をクリックすると②アクセスキーが払い出される③アクセスキーをFlashAirに書き込めば準備OK© 2017 Toshiba Corporation

35

FlashAir IoT Hub：Webサイト• Webサイト経由で現状できること– ユーザ登録・認証・管理– ユーザによるFlashAir登録・管理・更新(表示名の変更)・削除– 動作確認用簡易ユーティリティ（PIO制御、 グラフ表示）© 2017 Toshiba Corporation

36

FlashAir IoT Hub：Web API• Web API– 外部プログラムが機能を利用できるように整備した通信プロトコル・データ形式• FlashAir IoT Hubは、基本機能をWeb APIとして開発者に公開– Web APIは、Web標準の認証・認可方式(*)で保護機器の出力データを解析・ビジュアライズする
IoTシステム
IoT機器稼働監視画面

FlashAir IoT Hub
Web API⑥Web API経由
でデータ取得機器(FlashAir)の所有者が許可した証拠(トークン)を提示しないとアクセス拒否ログイン(ユーザ認証)にFlashAir IoT Hubを利用することも可能⑤ ライブラリを使ってデータをアップロード(*)OAuth2/Open ID Connect準拠

ライブラリ⑦ 分析・アラート・ビジュアライズは自社システムとして作りこむ(luaスクリプト)

データ変換処理(luaスクリプト)

ユーザ

機器④データ(稼働ログ等)をファイル出力© 2017 Toshiba Corporation37

FlashAir IoT Hub：Web API• 現在のAPIラインナップ© 2017 Toshiba Corporation38

FlashAir IoT Hub との接続・通信用ライブラリ• FlashAir側は、ライブラリを使うことで、FlashAir IoT
HubのWeb APIを意識せずに開発可能
Webサイトからダウンロード

FlashAir IoT HubWeb API⑤ ライブラリを使ってデータをアップロード

ライブラリ(luaスクリプト)

データ変換処理(luaスクリプト)

機器④データ(稼働ログ等)
をファイル出力© 2017 Toshiba Corporation39

４．パッケージ提供について© 2017 Toshiba Corporation40

クラウド基盤のご提供について
ここまでご紹介してきた技術を用いて、(株)東芝では、機器のIoT化に必要な共通機能を高効率なクラウドサービスと通信アダプタとして提供することで、IoT化に必要な様々なコストを低減する取り組みを進めています。
これらの技術をパッケージ化し、東芝情報システム(株)よりご提供させていただきます。
デモ展示もさせて頂きましたので、ご興味のある方は、是非、お問い合わせ願います。
パッケージ名称：「クラウドハブ（仮）」上市予定：２０１７年８月© 2017 Toshiba Corporation41

クラウドハブのご提供形態◎組込み機器ソフトウェアは、ソースコードを提供させていただきます。
①サーバー側中継ソフトの提供（実行モジュール）②組込み機器側エージェントソフトの提供（C言語ソース）⇒ 既存メンテナンス基盤へ適用可能＊カスタマイズも容易
・AWS／Azure／オンプレ等 環境を選ばず適用可能
・既存認証機能との連携も可能※本パッケージには以下サポートが用意されております。
①セキュリティパッチ版の提供②Cloud Hubの使い方に関するメールによる問い合わせ対応© 2017 Toshiba Corporation42

クラウドハブ適用例（AWS構成例）②拡張性
WSを拡張可能WS Server

RV Server

WS Server

ユーザ・機器情報ＤＢ

Cache Server

RV Server
Load Balancer

AmazonCloudWatch

Cache Server③監視AWSのサービスを利用

ユーザ・機器情報ＤＢ

Amazon ElasticsearchServiceAmazon
CloudWatch①可用性
多重化により実現© 2017 Toshiba Corporation43