SlideShare une entreprise Scribd logo
1  sur  125
Télécharger pour lire hors ligne
Smart Camera: Azure IoT + Container
リファレンスアーキテクチャーで使われている Azure テクノロジーをご紹介
Microsoft Japan Smart Store Dev-Team
Smart Store プラットフォーム
の設計概念
リファレンスアーキテクチャ
4. サンプル実装 Smart Camera
小売業をとりまく環境変化と技術トレンド
新興経済圏の
成長
人口動態の変化
人材確保、
育成難
消費行動の変化
インターネット
スマートフォン
の普及
新たな競合
(Disrupter)
の出現
モバイル ソーシャル ビッグデータ クラウドAI IoT
1. Smart Store の目的
1-1. 小売業界の最新状況(DX)
✓小売業界は顧客ニーズが多様化し、体験やストーリーを重視して購買を行うように変化していると言われています。
✓その過程で競争力の維持・強化・顧客満足向上のために、デジタルトランスフォーメーションをスピーディーに進めていくことが求められています。
✓日本マイクロソフト(株)は最新テクノロジとデータを活用してビジネスモデルを変革し、顧客志向で革新的なサービスを提供する次世代店舗
モデル「Smart Store」の実現に向けた支援策を提供開始しました。
Intelligent Retail
Know your
customers
Empower your people
Deliver intelligent
supply chain
Reimagine retailReimagine Retail
流通業ビジネスの
再創造
Know your Customers
顧客理解の促進
Deliver intelligent
Supply chain
サプライチェーンの
高度化
Empower your
Employees
従業員の強化
1-2. Smart Store 施策の背景
次世代の小売業で求められている姿 日本の小売業が直面しているシステム課題
• 単一のテクノロジ/ソリューションではビジネス課
題が解決できない (単発的なPOCの繰り返し)
• 新しいテクノロジに追従する技術者育成・確保
困難
• 革新的なサービス開発を支えるシステムのサイロ
化による運用コストの増大
• 省人化や効率化かつ顧客満足の維持と向上
• 新しいビジネスモデルへの転換
• 顧客・店舗データの利活用
• カスタマイズされたサービス提供
• イノベーティブなサービスの実現
出典: 「スマートストアの実現に向けて」 平成30年3月経済産業省 消費・流通政策課 Smarter Retailing Forum 2018
VS
日本マイクロソフトは
このGAPを本施策で解消します
1-3. Smart Store プラットフォームの提供
✓ 流通業界におけるシステム共通部分について、マイクロソフトによるリファレンスアーキテクチャーを提供します。
✓ リファレンスアーキテクチャーでは、スマホ決済等のキャッスレス化対応や、数百店舗での数百万商品や在庫を一括管理でき
る商品マスタ、および商品トランザクション管理など、店舗ビジネスにおける主要な業務シナリオ(ユースケース)、
サンプルアプリケーション、およびサンプルコードが含まれます。
✓ 小売業各社は新規サービス開発期間、開発コスト、および運用コストを大幅削減し、イノベーションライフサイクルを短縮化
することができます。
Smart Store
迅速で柔軟な店舗展開とデータ取得の促進
今後提供予定
Smart Store リファレンスアーキテクチャー
メーカー 物流卸売 小売
ECB
決済 消費者
提供中 今後提供予定
今後提供予定
1-4. リファレンスアーキテクチャー利用イメージ
Smart Store リファレンスアーキテクチャー
API API API API API API
メーカー 物流卸売 小売
ECB
決済 消費者
メーカー 卸・物流関連事業者 流通小売事業者 新規事業者
提供中
流通小売事業者
• 新しいビジネステーマに迅速な対応
• 継続的なイノベーションを実現
ソリューション パートナー
• 店舗デバイスによる新規ビジネスモデル開発
• AI、IoT、カメラ等と連携した先進的なソリューション開発
RaaS (Retail As a Service) パートナー
• 複数ソリューションを連携して、事業者へ統合サービスと
して提供
日本マイクロソフト
• 主要な業務シナリオにおける リファレンスアーキテクチャー
を提供し、より短いサイクルで継続的なイノベーションを
実現可能にする
• 適切なソリューションパートナー・RaaSパートナーを紹介する
ダイナミック・
プライシング
ソリューション
カメラ
ソリューション
電子タグ
ソリューション
決済
ソリューション
在庫管理
ソリューション
…
✓ 電子棚札
✓ サイネージ
✓ 店舗メディア
✓ etc
✓ 映像
✓ 赤外線
✓ TOF(3D)
✓ etc
✓ 場所特定
✓ Bluetooth
✓ RFID
✓ etc
✓ RFIDレジ
✓ カート一体型
セルフレジ
✓ モバイル端末
✓ etc
✓ リアルタイム
在庫管理棚
✓ 作業指示端末
✓ etc
今後提供予定
1-5. Smart Store プラットフォームの目的
✓ 複数ソリューションを有機的に連携させる環境を作り、お客様が差別化すべき領域を限定的にします。
✓ その効果により、中小小売業を含めた流通小売事業全体のイノベーションを加速化させます。
施策の概要
① 先進的なテクノロジを用いた基本的な実現方式(リファレンス
アーキテクチャー)を、業界共通でオープン化し各社へ提供
② リファレンスアーキテクチャーをベースとしたパートナー・技術者を育成
③ 事業者が差別化した新規ビジネス開発に専念できるよう支援
パートナー様
流通事業者様
サービス構築期間の短縮化
RaaS/Solutionの提供
技術者の育成
差別化したサービス開発
革新的な新事業展開
先進的なテクノロジ
を用いたリファレンスの提供
日本マイクロソフト
1-6. 今後のデジタルを活用した店舗イメージ
• 商品の評価を入れる
• ポイント付与
• クーポン発行
• 定性情報の蓄積
退店後
入店前
• 店外から商品在庫確認
• 予約 (決済) も可能
• 店外でも LINE などから
レコメンドを受信
イートイン
商品在庫+予約
レコメンド
商品レビュー・評価
クルーデバイス
入店認証
動線分析
ロッカー商品受取
ヒートマップ
滞留分析
広告効果測定
店内行動
各種情報
電子棚札
オススメ
店内レコメンド
商品情報 (アレルギー等)
AR商品情報
ランキング・商品評価配信
対面KIOSK
接客ロボ
RFID対応レジ
モバイル決済
Suica決済退出ゲート
ウォークスルー
ゲート決済
電子レシート
サイネージ
店内調理
縦型サイネージ
FF在庫管理
在庫管理
電子棚札制御
¥1000¥550
空調・照明制御
スマートエネルギー
自動発注
個品単位での追跡
生産~廃棄まで
個品管理が可能
業務アシスト
需要予測
カート一体型セルフレジ
欠品分析
棚割分析
棚一体型サイネージ
防犯カメラ
画像認識レジ
リアルタイムクーポン
冷蔵庫モニタリング
2. Smart Store プラットフォームの設計概念
2-1. Smart Storeプラットフォームにクラウドを選ぶ理由(1)
✓ スピード
これまでは機器設備の調達や設置に多くの日数を要するため、事前に入念な計画が必要でした。クラウドの最大の
メリットは、最小限の準備で「すぐに」実行できるスピードにあります。店舗数や来店客数、品数や在庫量・流通
量などのデータ変動量の予測が困難になっている現在、フェイルファスト(行動学習)可能な環境は何よりも強い
武器になります。
✓ スケーラビリティ
将来のデータの変動量の予測が難しい現状では、例えば3年後に必要になるサーバーやストレージのサイズを予想す
ることに意味はありません。必要なのは「必要な時に必要なだけ拡張/縮小できるリソース」です。クラウドは、無
駄な資源とともに無駄な検討時間も減らしてくれます。
✓ 高い保守性
オンプレでは最小限の物理機器で動作するため、店舗新規開設時やメンテナンス時の「取り回し」の軽さとともに、
データセンター側の冗長化や多重化などの災害対策環境も容易に構成できる能力が得られます。
2-1. Smart Storeプラットフォームにクラウドを選ぶ理由(2)
✓ アクセス性の向上
クラウドではパブリックかつ無尽蔵のリソースを利用できるようになることで、場所と時間を問わずリソースに
アクセスすることができます。また、これまでインターネット経由のチャネル利用には自社ネットワークの増強
が不可欠でしたが、プラットフォームにクラウドを選択することで、最初からストレスのない帯域が手に入りま
す。
✓ セキュリティ
業務プラットフォームにクラウドを利用する際の最大の障壁がセキュリティでした。自社データセンターと専用
線接続のみで構成された環境はセキュリティ面で最も強固です。しかし、現在のリテールシステムはインター
ネットと切り離して考えることはできない状況になりつつあります。一方で、クラウドシステムは全てソフト
ウェアで構成されています、高価なファイアウォールもクラウドであれば全てのエンドポイントに配置すること
も可能です。これまでのデータセンターでは考えられなかった強固なセキュリティをクラウドでは実現すること
ができるのです。
2-2. マイクロサービスの採用
✓ ビジネス機能を一定の単位でカプセル化し、サービス間を疎結合に保つ設計手法
✓ 個々のサービスを、それぞれのビジネス機能に求められる非機能要件を適用できる
✓ ビジネスの規模や成長ステージに合わせて、個々のサービス毎に拡張、更新、スケールが可能となる
✓ それぞれのサービスに適したテクノロジーを個別に適用することができる
商品マスタサービス
POSサービス BOX管理サービス
在庫管理サービス
利用者向け
アプリ用サービス
管理者向けWeb用サー
ビス
ビジネス機能単位で
サービスを分割
サービス間は疎結合に保ち独立し
て追加・更新可能に
サービスの処理特性に応じて
個々にテクノロジーを適用
サービス毎の非機能要件
に合わせて、デプロイ・ス
ケールが可能
マイクロサービスの特徴と利点
✓ 昨今のセキュリティ概念においては、外部からの脅威だけでなく、内部の不慮または故意による事故に対しても考慮しなければなりません。
✓ そこで Smart Store では、Zero trust network という概念に基づき、クラウドベンダーとクラウド利用者間で責任範囲を分担し、
セキュリティの保護に努めるというモデルを前提とします。
✓ さらに、PaaSおよびサーバーレスの構成に限定することで、クラウド利用者側の責務が最小限になるよう配慮します。
✓ この構成において、クラウド利用者は下記における責任を負います。
・データの管理
・エンドポイントの管理
・アカウントと権限の管理
・行動の記録と監査
責任範囲 SaaS PaaS IaaS
データの管理
エンドポイントの管理
アカウント、アクセス管理
IDとディレクトリ構成
アプリケーション
ネットワーク制御
OS
クラウド利用者が対応する
サービスの種類により、
それぞれが対応する
クラウドベンダー クラウド利用者
物理ホスト、ネットワーク
データセンター
2-3. Smart Storeにおけるセキュリティの考え方
2-4. Smart Storeのリファレンスアーキテクチャ構想例テナント別機能PF
ショッピングアプリ
スマホ決済
キャッシュレス
消費者向け
スマートフォンアプリ
ウェブアプリ、API
無人レジ
発注
品出し、棚卸
バックオフィス向け
端末
ウェブアプリ、API
クーポン発行
ちらし配布
経営会議
マーケティング向け
管理画面、自動処理
BIツール
店舗PF
POS データストア 分析・学習
商品照会
カート
決済
API
IoT-PF
設備 監視・制御
入力装置
(カメラ・マイクなど)
出力装置
(空調・照明・放送など)
販売BOX・陳列棚
利用者動向追跡
商品動向追跡
制御・データ送受信
機器管理制御・データ送受信
API、処理商品マスタ
利用者データ
在庫データ
設備データ
商品学習
利用者分析
需要予測
設備メンテナンス予測
データストア
Function App単位でスケールでき
2-5. クラウドPOSとは
✓サービスの中心となるPOSをクラウドでAPI化することで、既存のPOS,タブレットなど様々なデバイスにも共有できるロジックを作ることができます。
✓POSサービスAPI(Web API)を介しPOSとして必要な商品追加や支払等の複雑な処理をクラウドPOSが引き受けることにより、
様々なシーンのPOSデバイスが必要なWeb APIを呼び出して決済完了~取引情報の生成を簡単に行うことができます。
Function App単
位でスケールで
き
Azure Cosmos DBAzure Functions
HTTP Trigger
クラウドPOS
カート取引作成/情報取得
商品追加(PTU)/削除
取引確定/中止
POSサービスAPI(Web API)デバイス
カートPOS
ECサイト
AIカメラ
タブレットPC
その他デバイス(BOX等)
取引確定/中止
取引確定/中止
✓ クラウドPOSは以下の3レイヤから構成され、Smart Store Platform では中間のPOS Service Layerを提供します。
◼ Backoffice Layer :マスタ・在庫の管理等を行います
◼ POS Service Layer :取引などのPOSのサービスレイヤにて提供です
◼ UI/UX/Device Layer:店舗の形態により自由にカスタマイズ可能なレイヤーです
✓ 中間層であるPOS Service LayerがPOSの複雑な処理を一元管理するため、UI/UXの種類が変わってもカスタマイズ箇所が限定的になる
為、短いサイクルでサービスの提供が可能となります
2-6.クラウドPOSの構成レイヤ
BOX管理
デバイス(BOX)管理 デバイス(カメラ)管理
ハード筐体 カメラ
ECサイト タブレットPOS
UI/UX
Layer
マスタ管理 在庫管理
ク
ラ
ウ
ド
P
O
S
の
構
成
レ
イ
ヤ
決済管理 BI
商品
MD
リアル在庫
受発注
商品
MD
ETL
PowerBI
POS
Service
Layer
Back
Office
Layer
マスタ照会 カート管理 決済 取引管理
POSサービス
分析/可視化
(Power BI等)
2-7. Azure上に構成するクラウドPOSの利点
✓ Azureを利用することにより、 Back Office Layerに以下のようなサービスを簡単に構築することが可能です。
✓例えば、集計や月間売上などの分析を実施するために、Data Factory+Data WarehouseやFeed(Cosmos DB)+SQL Databaseを
用いて構築することが可能です。
集計サービス
分析サービス
POSサービスAPI
取引ログ
カート取引作成/情報取得
商品追加(PLU)/ 削除
小計
支払追加
取引確定/中止
Change
3. リファレンスアーキテクチャ
3-18. Smart Camera (AI防犯カメラ) 概要
✓ ディープラーニングベースの画像認識エンジンにより、防犯カメラ映像を分析可能なエッジデバイスです。本リファレンスアーキテクチャでは、エッジ
用の高速推論チップを活用することで、高速・高精度な人物検出、人物トラッキング、顔検出、顔からの性別・年齢推定を実現しています。
✓ エッジデバイスでの画像認識結果は、Cosmos DBに格納されます。当該格納されたデータは、ダッシュボード上にて人流分析や客層分析結
果として表示が可能です。
✓ エッジデバイス上で動作する画像認識モジュールは、Azure IoT Hubを利用して、デプロイ・実行・停止の制御が可能です。例えば本アーキテ
クチャの画像認識モジュールをリプレースすることで、商品認識等、別用途の分析も可能です。
Azure IoT Edge Runtime
人物検出 トラッキング
顔検出
性・年齢
推定
防犯カメラ
映像
Cosmos
DB
画像認識結果を
ダッシュボード表示
IoT Hub
画像認識モジュールの
デプロイ・実行制御
3-19. Smart Camera (AI防犯カメラ) 全体構成図
Container
registry
コンテナ管理
ソフトウェアランタイム環境
Raspberry Pi 3B+
カメラ
高速推論チッ
プ
Azure IoT Edge Runtime
ビデオ管理
モジュール
推論チップ管理モ
ジュール
Docker
画像認識モジュール
ハードウェア
Stream
Analytics
データ中継
Cosmos
DB
データ保存
Container
instances
サーバデプロイ
IoT Hub
モジュール管理
✓ エッジデバイスの全て市販のハードウェアで構成されています。このため、誰でも安価かつ簡単に購入・作成可能です
✓ 安価なRaspberry Pi 3B+ をベースにしています。
✓ Raspberry Pi カメラモジュールV2にて、エッジデバイスに映像を入力可能です。
✓ 市販のエッジ用高速推論チップ(Movidius NCS2)を利用した、高速なCNN(畳み込みニューラルネットワーク)ベースの人物検出
が可能です。
3-20. Smart Camera – ハードウェア機能と特長
エッジデバイス内容物
✓ エッジデバイスにDockerエンジン及びAzure IoT Edge Runtime搭載。これにより、Azure IoT Hubを利用した、パワフ
ルかつ容易なモジュールの管理・制御を実現しています。
3-21. Smart Camera – ソフトウェア機能と特長 (1)
✓ 画像認識モジュール
✓ エッジ用の高速推論チップを利用した防犯カメラ映像分析を行います。本アーキテクチャではカメラ映像からの人物
検出、人物トラッキング、顔検出及び顔からの性別・年齢推定を実現しています。
✓ モジュールのデプロイ・実行・停止・更新はAzure IoT Hubによって管理、制御されています。モジュールを差し替
えることで、例えば商品認識等の別用途の分析も可能になります。
3-22. Smart Camera – ソフトウェア機能と特長 (2)
✓ 推論チップ管理モジュール
✓ 市販の高速推論チップを利用するためのライブラリ及びそのチップに特化したプログラムを搭載しており、画像認識
タスクを高速に行います。(本アーキテクチャでは推論チップとしてIntel社のMovidius NCS2を使用しています)
✓ ビデオ管理モジュール
✓ エッジデバイス自身のカメラ、ビデオファイル、RTSP対応の防犯カメラと多彩な入力ソースに対応しています。
✓ 入力映像をバッファリングし、推論チップの処理能力に応じた逐次処理を行います。例えば開店時間の録画映像を、
閉店時間後の時間を利用して処理を完了させる、といったことも可能です。
3-23. Smart Camera – ソフトウェア機能と特長 (3)
✓ エッジデバイス、集計サーバ及びコンテナの管理をAzureクラウド上で一元化し、管理コストを低減します。
✓ Azure IoT Hubを通して、エッジデバイスの状態確認及びエッジデバイス上で走るモジュールの管理ができます。
✓ 画像認識モジュールによる認識結果は、Azure Stream Analyticsを経由し、Azure Cosmos DBに保存されます。
✓ Azure Container Instancesによって集計サーバを立ち上げ、保存された認識結果を集計し、各カメラの通過人数及
び年齢性別分布を図示するダッシュボード機能を提供します。
✓ Azure Container Registryによって、エッジデバイスモジュール及び集計サーバの元となるコンテナを管理します。
3-24. Smart Camera – サーバサイド機能と特長
カメラ
日付選択
各カメラ通過人数
カメラ毎
年齢・性別分布
3-25. Smart Camera – 参考ドキュメント
✓ Azure IoT Hub / IoT Edge
https://docs.microsoft.com/ja-jp/azure/iot-hub/
https://docs.microsoft.com/ja-jp/azure/iot-edge/
✓ Azure Stream Analytics
https://docs.microsoft.com/ja-jp/azure/stream-analytics/
✓ Azure Cosmos DB
https://docs.microsoft.com/ja-jp/azure/cosmos-db/
✓ Azure Container Instances
https://docs.microsoft.com/ja-jp/azure/container-instances/
✓ Azure Container Registry
https://docs.microsoft.com/ja-jp/azure/container-registry/
4. サンプル実装 Smart Box
4-1. サンプル実装(業務シナリオ ): ユースケース
✓ オフィスなどで、店員がいなくても、商品販売が可能な販売方法をユースケースとしました。(オフィス内、コンサート会場物販、店舗省スペース)
1.Boxオープン Boxに表示されるQRコードをスマホで読み取ることにより、Boxのドアの鍵を開け、スマホからはお客様のチェックインができます。
2.商品登録 商品をBoxから取り出す状態を商品画像認識により、商品特定を行い、商品登録を行います。そしてその商品登録状態をスマホ
に表示する。さらに、在庫の更新もリアルタイムに行い、店舗スタッフが補充等の対応にすばやく行えるように致します。
3.買物終了 Boxのドアを閉めることにより、買い物の終了として、決済を完了します。(今回決済自体はダミー実装になります)。
顧客 1.ボックスオープン 2.商品取り出し 3.ボックスクローズ
Box
4-2. サンプル実装 (全体像): ユースケース
Box状態管理
統合商品マスタ
POS
リアルタイム在庫管理
Push
通
知
サ
ー
ビ
ス
顧客アプリ用BFF バックオフィス用BFF
Smart BOX
モニター
Web
ショッピングカート
Azure IoT
Device SDK
Azure Functions Azure Functions
Azure Functions
Azure Functions Azure Functions
Azure Functions
App Center
SQL DBCosmos DB Cosmos DBBlob
商品API
商品データ 商品イメージ 在庫トランAPI 在庫イベントソース 在庫データマート 在庫モニターAPI
カートAPI
IoT Hub
Boxイベント通知
Azure Functions
IoT Hub
店舗PF
テナント別機能PF
IoT-PF
Azure Functions Cosmos DB
各種データ
4-3. サンプル実装(Microsoft Azure) : ユースケース
POS
顧客用アプリ
Android/iOS
Box状態管理
1.ボックスオープン
2.商品取り出し
3.ボックスクローズ
IoT Hub
統合商品マスタ
Azure Functions
Cosmos
DB
Blob
商品API
商品データ 商品イメージ
リアルタイム在庫管理
Azure Functions
Azure FunctionsSQL DB
Cosmos
DB
在庫トランAPI 在庫イベントソース
在庫データマート 在庫モニターAPI
顧客
バックオフィス
Azure Functions
バックオフィス用BFF
Android/iOS
Webモニター
Azure Functions
顧客アプリ用BFF
Box
Azure Functions
Push通知
ショッピングカートAPI
商品登録一覧
レシート
買物開始
Boxオープン状態
商品変動状態
Boxクローズ状態
カートAPI呼び出し
プッシュ情報送信
モバイルデバイスへの通知
在庫情報参照
在庫情報取得
商品情報取得
商品情報取得
在庫トラン
カートAPI呼び出し
BFF呼び出し
Azure Functions
Cosmos
DB
各種データ
カートAPI
4-4. サンプル実装 (Device/Smart Box): ユースケース
1.ボックスオープン
2.商品取り出し
3.ボックスクローズ
顧客
商品登録一覧
レシート
買物開始
顧客用アプリ
Android/iOS
Box POS
QRコードから Box IDを取得する
Box ID とアプリ固有IDを通知し、取引開始を通知する
カート更新要求を通知する
開錠し、画像解析を開始する
商品が取り出されたことを通知する
PUSH
カート情報を取得する
取引開始
カート更新
取引終了を通知する
扉が閉じたことを通知する
PUSH
レシート情報を取得する
レシート表示
Box状態管理
Smart BOX
Azure Functions
IoT Hub
IoT Hub
IoT-PF
IoT Edge
Dockerコンテナ
AIによる画像認識
カメラからの画像スオリーミング
IoT Device
Azure IoT
Device SDK
BOXの各種デバイス
(扉、鍵、LED、LED等)カメラからの画像ストリーミング
D2Cによる、デバイス状態通知
C2Dによる、デバイス制御
デバイス制御
AI開始/終了
イベントトリガ
BOX内在庫差分通知
4-5. サンプル実装 (Device/Smart Box): ユースケース
Azure IoT
Device SDK
Azure IoT
Device SDK
Dockerコンテナ
カメラ画像の
プレフィルタ
Azure IoT
Device SDK
AIによる画像認識
モジュール管理
カメラ画像プレフィ
ルタモジュール管理
ドア状態等通知
及び
鍵、LED等デバイス制御
5. サンプル実装 Smart Camera
5-1. Smart Camera サンプル実装: ユースケース
本Smart Cameraシステムを店舗内に設置し、人流分析と客層分析を行う際の処理の流れについて説明します。
1.エッジデバイス設置 既存の防犯カメラと同じ要領でエッジデバイスを設置します。顔を真正面から捉えられる位置、例えばエントランスに
水平に近い角度で設置すると、顔の検出が容易になり、客層分析の精度が上がります。
2.システム起動 Azureクラウドを通してエッジデバイス上に画像認識用のアプリケーションをデプロイして実行します。これにより、
エッジデバイス側で画像認識が開始され、認識結果がクラウド上に伝送されます。また、Azureクラウド上に集計サーバを立ち上げます。
3.分析結果確認 集計サーバのURLにアクセスし、ダッシュボードにて人流・客層の分析結果を確認します。
エッジデバイス設置 システム起動 分析結果確認
5-2. Smart Camera サンプル実装: シーケンス図
IoT Hub
Stream
Analytics
Cosmos
DB
カメラから撮った
フレーム画像
ローカルクラウドエッジ
クラウド側エッジ側
5-3. Smart Camera サンプル実装: データフロー
Container
registry
Cosmos
DB
Stream
Analytics
ビデオ管理
モジュール
ビデオデータ
リクエスト
ダッシュボード
Container
instances
コンテナを提供
結果データ
結果データ
Raspberry Pi
カメラ
高速推論
チップ
Azure IoT Edge Runtime
Docker
画像認識
モジュール
フレーム画
像
推論チップ管理モ
ジュール
フレーム画
像
検出・推定結
果
検出・推定結
果制御
認識結果
結果
データ 集計結果
IoT Hub
コンテナを提供
デプロイ
デプロイ
Azure IoT
サーバレス API 、 POS サービス ・・・ Azure Functions
BOX 管理サービス ・・・ IoT Hub 、 IoT Edge
ー商品画像認識 ・・・ Tensor Flow
在庫管理、商品マスター ・・・ Azure SQL Database 、 Azure Cosmos DB
使用されている主なサービス
Azure IoT サービス 一般構成例
IoT Hub を中心に, 用途に応じた
多様なサービスを組み合わせ可能
Microsoft Azure社内
アラート配信
ダッシュボード(カスタム)
AI モデル作成
BIダッシュボード
ビッグデータ分析
時系列データ
可視化
予測AI
IoT Hub の基本機能
IoT Hub1
IoT Hub1
IoT Hub1
Device
Send Device-to-Cloud
Receive
Cloud-to-Device
Receive Device-to-Cloud
Send Cloud-to-Device Message,
Receive Message Delivery Ack
Device Identity Management
IoT Hub
Resource
Provider
Resource Provider Endpoint
①新規デバイスの登録
②デバイスからクラウドへの
データ送信
③クラウドでのデバイスからの
データ受信
④クラウドからデバイスへの
コマンド送信
⑤デバイスでのクラウドからの
コマンド受信
⑥クラウドでのデバイスの
コマンド受信確認Event Hubを内包
IoT Hub 全体像
Devices
RTOS,Linux,Windows,Android,iOS
Field
Gateway
IoT Hub
• 双方向通信
• 1千万台以上のデバイス
• 遠隔測定入力
• コマンドと制御
• デバイス登録とアイデンティティ
• デバイス管理
• HTTP/AMQP
• プロトコルの拡張サポート / MQTT
Cloud
Protocol
Gateway
組込み機器向けSDK
• C#
• C/C++
• Java
• JavaScript
デバイスを IoT Hub に接続する
Azure
デバイス IoT Hub
接続用ライブラリを
オープンソースで公開
• OS
• ミドルウェア
• 言語
http://github.com/azure/azure-iot-sdks
http://azure.microsoft.com/develop/iot/get-started
46
デバイス管理
① Azure IoT Hub のアーキテクチャ
データ送受信
⚫ マルチ プラットフォーム / マルチ ランゲージのデバイス ライブラリを使用した、セキュアで簡単なデバイスの接続
⚫ スケーラビリティと信頼性に優れた、デバイスとクラウド間の双方向メッセージング
デバイス管理
⚫ デバイスごとのセキュリティ資格情報とアクセス制御を使用した、通信のセキュリティ保護
⚫ デバイス ツインによるプロパティ同期とダイレクト メソッドによるリモートからの処理要求
デバイス ID 管理
メッセージング(受信)
メッセージング(送信)
デバイス ツイン管理
ダイレクト メソッドの起動
ジョブ管理
モニタリング イベントの受信
ファイル受信
IoT Hub
メッセージング (受信)
メッセージング (送信)
ファイル アップロードの開始
デバイス ツイン プロパティの同期
ダイレクト メソッド要求の受信
データ送受信
47
Pricing and scale tier
7 種類の価格レベル
⚫ Azure サブスクリプションに最大 10 個の IoT Hub と最大 1 個の Free ハブを作成可能
⚫ 1 つの IoT Hub に接続できるデバイスの最大数:500,000
⚫ この制限を引き上げる場合、Microsoft サポートにお問い合わせください
Tier 価格レベル ユニットあたりの持続送信レート ユニット数 ユニットあたりの月額価格
(東日本)
Free F1 8,000 メッセージ/日 (平均 5.6 メッセージ/分) 1 無料
Basic B1 40 万 メッセージ/日 (平均 278 メッセージ/分) 1~50 ¥1,120
B2 600 万メッセージ/日 (平均 4,167 メッセージ/分) 1~50 ¥5,600
B3 3 億件のメッセージ/日 (平均 208,333 メッセージ/分) 1~50 ¥56,000
Standard S1 40 万 メッセージ/日 (平均 278 メッセージ/分) 1~50 ¥2,800
S2 600 万メッセージ/日 (平均 4,167 メッセージ/分) 1~50 ¥28,000
S3 3 億件のメッセージ/日 (平均 208,333 メッセージ/分) 1~10 ¥280,000
48
Basic と Standard の相違点
Standard レベルではすべての機能が利用可能
⚫ セキュリティ機能と認証機能は、どちらのレベルも同等
機能 Basic Standard
device-to-cloud テレメトリ 〇 〇
デバイスごとの ID 登録 〇 〇
HTTP、AMQP、MQTT プロトコル 〇 〇
メッセージ ルーティング、Event Grid の統合 〇 〇
Azure IoT Hub Device Provisioning Service を使用したデバイスのプロビジョニング 〇 〇
監視と診断 〇 〇
cloud-to-device メッセージング 〇
デバイス ツイン、モジュール ツイン、およびデバイス管理 〇
Azure IoT Edge 〇
49
IoT Hub エンドポイントとアクセス許可 (1/2)
メッセージの送受信で使用される IoT Hub エンドポイント
アクセス許可
アクセス許可の種類 説明
① デバイス接続 (DeviceConnect)
※ このアクセス許可はデバイスごとに設定する
⚫ デバイス向けの通信エンドポイントへのアクセスを許可する
⚫ D2C メッセージの送信と、C2D メッセージの受信のアクセス許可を付与する場合に使用
⚫ ファイル アップロード実行のアクセス許可
② サービス接続 (ServiceConnect) ⚫ クラウド サービス向けの通信エンドポイントと監視エンドポイントへのアクセスを許可する
⚫ D2C メッセージの受信、C2D メッセージの送信、対応する配信確認メッセージの取得のアクセス許可をバックエン
ド クラウド サービスに付与する場合に使用
⚫ ファイル アップロードの配信確認メッセージの取得
IoT Hub
D2C メッセージ送信
C2D メッセージ受信
① デバイス接続
ファイル アップロードの配信確認
C2D メッセージ送信
ACK 受信
D2C メッセージ受信
② サービス接続
ファイル アップロードの開始
<IoT Hub ホスト名>
.azure-devices.net
50
IoT Hub エンドポイントとアクセス許可 (2/2)
デバイス管理で使用される IoT Hub エンドポイント
4 種類のアクセス許可
アクセス許可の種類 説明
① デバイス接続 (DeviceConnect) ⚫ デバイス ツインの必要なプロパティ通知の受信のアクセス許可
⚫ デバイス ツインの報告されるプロパティの更新のアクセス許可
② サービス接続 (ServiceConnect) ⚫ タグおよび必要なプロパティを更新するためのデバイス ツインのアクセス許可
⚫ 報告されるプロパティの取得のアクセス許可
⚫ クエリ実行のアクセス許可
③ レジストリ読み取り (RegistryRead) ⚫ デバイス ID レジストリへの読み取りアクセス権を許可する
④ レジストリ書き込み (RegistryReadWrite) ⚫ デバイス ID レジストリへの読み取りと書き込みのアクセスを許可する
① デバイス接続
デバイス ID 管理
② サービス接続
デバイス ツイン管理
ダイレクト メソッドの起動
デバイス ツイン プロパティの同期
ダイレクト メソッド要求の受信
③ レジストリ読み取り、④ レジストリ書き込み
<IoT Hub ホスト名>
.azure-devices.net
IoT Hub
51
IoT Hub のホスト名
対象の IoT Hub の [概要] ブレードで [ホスト名] を確認する
Azure IoT Hub ホスト
の URL
52
対象の IoT Hub の [共有アクセスポリシー] ブレードを選択
⚫ 5 種類のビルトインされたポリシー
⚫ 管理用アプリから IoT hub にデバイス登録する場合、デバイス ID 管理可能な 「iothubowner」 ポリシーの接続文字列を使用する
⚫ 管理用アプリから IoT hub に接続して、受信データを読み取る場合、「service」 ポリシーの接続文字列を使用する
共有アクセス ポリシー
接続文字列
53
Azure ポータルからのデバイス登録
対象の IoT Hub の [デバイス エクスプローラー] ブレードを選択し、[追加] をクリック
⚫ デバイスに割り当てるデバイス ID を入力して、保存する
⚫ 3 種類の認証:対称キー、X.509 自己証明書、 X.509 CA 証明書
キーの自動生成を指定
任意のデバイス ID を入力
認証の種類を選択
参照:https://docs.microsoft.com/ja-jp/azure/iot-hub/iot-hub-devguide-identity-registry
54
デバイスごとの接続情報
対象の IoT Hub の [デバイス エクスプローラー] ブレードを選択
⚫ デバイスから IoT Hub に接続する場合、 接続情報に デバイス ID が必要なため、
デバイス エクスプローラーから対象デバイスの [接続文字列] を取得して、使用する
デバイス ID を選択
デバイス ID を含む接続情報
接続を許可するデバイスは有効化しておく
55
IP アドレスによる IoT デバイスのフィルタリング
IP フィルター
⚫ 1 つの IPv4 アドレスか、または CIDR 表記法で記述した IP アドレス ブロックを指定
⚫ 拒否または、許可の設定が可能
⚫ 指定された範囲の IP アドレスからのトラフィックのみを受信し、それ以外のトラフィックをすべて拒否する場合
⚫ IoT Hub の管理者によって疑わしいと識別された IP アドレスからのトラフィックを拒否する場合
拒否と許可の設定が可能
56
[参考] Raspberry Pi Azure IoT Online Simulator
node.js 版オンライン シミュレーター
デバイスごとに割り当てられた接続文字列
https://docs.microsoft.com/ja-jp/azure/iot-hub/iot-hub-raspberry-pi-web-simulator-get-started
IoT Hub で受け取るデータ
Sensor1
Sensor2
Sensor3
Survo1
Survo2
Servo3
{“SensorId”:”Sensor1”,”AccelX”:0.234,”AccelY”:0.0152,”AccelZ”:-1.325,”Timestamp”:20150804…}
{“SensorId”:”Sensor2”,”AccelX”:-2.085,”AccelY”:0.173,”AccelZ”:0.623,”Timestamp”:20150804…}
…….
{“PartsId”:”Survo2”,”Status”:”On”,”Value”:231,,”Timestamp”:20150804…}
……..
センサー計測・状態データ(いつ、何を測った)
論理モデル(どこで、何の)
工場
生産ライン
工作ロボット
アーム1
ジョイント1
センサー:Sensor1
サーボ:Survo1
いつ、どこで、何の、何を測った その時何が…×
58
IoT Hub コンシューマー グループ
バックエンドに対し、パブリッシュ/サブスクライブのメカニズムを提供
⚫ イベント データを読み取るエンティティをイベント コンシューマーと呼ぶ
コンシューマー グループに対するアクティブな受信者は 1 つだけにする
⚫ 必要に応じて追加する
既定のコンシューマー グループ
⚫ $Default
Function App
Stream Analytics
IoT Hub
function
streamanalytics
$Default カスタム
アプリケーション
コンシューマー グループ
59
① Azure Function App によるストリーム データの格納、および通知
イベント駆動のサーバーレス アーキテクチャ
⚫ 100 万回/月の実行までは無料、以降は使用した分のみ課金 (分単位)
⚫ C#、F#、Node.js、Java、Python、PHP、Batch、Bash による関数の記述
⚫ NuGet、NPM のサポートにより、使い慣れたモジュールが参照可能
Function App
Event HubsIoT Hub
出力バインドトリガー バインド
HTTP Generic Webhook
Service Bus Queue Service Bus Topic
BLOB Queue
Timer
Service Bus Queue Service Bus Topic
BLOB Queue
Event Hubs
HTTP
Table
Mobile App
Notification Hub Cosmos DB
Send Grid
入力からのイベントをトリ
ガーにデータ処理、通知処
理などを実行
Graph Events
Graph Events
60
[関数] ⇒ [新しい機能] ⇒ [IoT Hub (Event Hub)] テンプレートを選択
⚫ C#、F#、JavaScript から選択
ストリーム データを Blob に保存する IoT Hub トリガーの作成
61
② Azure Stream Analytics によるリアルタイム分析
イベントのデータ ストリームを Stream Analytics ジョブで処理する
⚫ ジョブに入力、クエリ、出力を定義する
⚫ 入力: Azure データ ストリーム ソース (Event Hubs、IoT Hub、Blob Storage) からのデータ ストリーム
⚫ クエリ:入力データを変換、集計する SQL ライクなクエリ言語の記述が可能
データの時間的側面を処理するための言語構造を提供 (System.Timestamp)
静的な参照データを結合させることが可能
⚫ 出力:ジョブの処理結果
Event Hubs
IoT Hub
Blob
Event Hubs
SQL Database
Table
Power BI
Stream Analytics
Blob
Cosmos DB
Function App
Data Lake
62
Azure Stream Analytics クエリ言語
クエリの基本要素
APPLY
CASE
CREATE TABLE
FROM
GROUP BY
⚫ウィンドウ処理
⚫Tumbling Window
⚫Hopping Window
⚫Sliding Window
HAVING
INTO
JOIN
SELECT
UNION
WHERE
WITH
レコード関数
GetRecordProperties
GetRecordPropertyValue
時間と日付関数
DATEADD
DATEDIFF
DATENAME
DATEPART
DATETIMEFROMPARTS
DAY
MONTH
YEAR
文字列関数
CHARINDEX
CONCAT
LEN
LOWER
PATINDEX
REGEXMATCH
SUBSTRING
UPPER
数学関数
ABS
CEILING
EXP
FLOOR
POWER
SIGN
SQUARE
SQRT
地理空間関数
CreateLineString
CreatePoint
CreatePolygon
ST_DISTANCE
ST_OVERLAPS
ST_INTERSECTS
ST_WITHIN
参照:https://msdn.microsoft.com/library/en-us/Dn834998.aspx
分析関数
ISFIRST
LAG
LAST
変換関数
CAST
GetType
TRY_CAST
配列関数
GetArrayLength
GetArrayElement
GetArrayElements
メタデータ入力関数
GetMetadataPropertyValue
集計関数
AVG
COUNT
Collect
CollectTOP
MAX
MIN
Percentile_Cont
Percentile_Disc
STDEV
STDEVP
SUM
TopOne
VAR
VARP
63
ストリーム分析機能の比較
Azure Stream Analytics と HDInsight Apache Storm
参考:https://azure.microsoft.com/ja-jp/documentation/articles/stream-analytics-comparison-storm/
Azure Stream Analytics HDInsight Apache Storm
オープンソース NO YES
言語 SQL Java、C#
カスタム コードによる拡張 NO YES
入力データソース Event Hubs、IoT Hub、Blob Event Hubs、サービス バス、Kafka
入力データ形式 Json、CSV、Avro いずれの形式もカスタム コードを使用して実装可能
出力
SQL Database、Blob、テーブル、Event Hubs、
Service Bus キュー、Service Bus トピック、
Cosmos DB、Power BI
SQL Database、Blob、Event Hubs、Cosmos DB、Power BI、Hbase などの
コネクターを提供
カスタム コネクターの記述が可能
Microsoft によるサポート YES YES
料金
処理するデータ ボリュームと必要なストリーミング ユニット
数によって請求される
購入単位はクラスター ベースで、デプロイされるジョブとは無関係に実行されるク
ラスターの実行時間に基づいて請求される
64
Azure Time Series Insights
4 つの特徴
⚫ クラウド ゲートウェイ (Azure IoT Hub、Azure Event Hubs) への接続
⚫ Time Series Insights はこれらのイベント ソースに簡単に接続して、メッセージや、クリーンな行と列でデータを保持
する構造から、JSON を解析します。 メタデータとテレメトリを結合し、単票形式のストア内のデータにインデックスを
作成します。
⚫ データ ストレージの管理
⚫ メモリと SSD に最大 400 日間データを格納
⚫ 必要に応じて、何十億ものイベントに対する対話形式の照会を数秒で行うことができます。
⚫ TSI エクスプローラーによるデータの可視化
⚫ TSI エクスプローラーと API の両方に対応するクエリ サービスの提供
⚫ 簡単に統合できる API で時系列データをカスタム アプリケーションに埋め込むことができます。
デモ:https://docs.microsoft.com/ja-jp/azure/time-series-insights/tutorial-create-populate-tsi-environment
https://github.com/Azure/azure-iot-pcs-remote-monitoring-dotnet/wiki/Developer-Reference-Guide#ssh-into-a-vm
65
[参考] Azure Time Series Insights
分析、ストレージ、および可視化サービスを完全に管理
⚫ 何十億というイベントを同時に探索し、分析することを簡単に実現
⚫ アクションにつながるインサイトを数秒で発見
⚫ 秒単位で開始し、分単位で IoT スケールデータのグローバル ビューを作成
参考:https://azure.microsoft.com/ja-jp/services/time-series-insights/
IoT Hub デバイス管理
Microsoft Azure
Device Registry
Service List
論理モデル
プロビジョニング
蓄積データ
最新データ
(状態)
←Endpoint、Token Device Info→
67
IoT デバイスのリモート管理を実現する 2 種類のエンドポイント
⚫ デバイス ツイン
⚫ デバイス固有のメタデータをクラウドに格納し、クラウドとデバイス間でプロパティを同期させることができる
⚫ Desired と Reported の 2 種類の同期プロパティとクラウドのみで保持される Tags 情報
⚫ デバイスがオフラインであっても、属性情報をクエリ可能
⚫ ダイレクト メソッド
⚫ 同期型のデバイス操作コマンド実行
IoT Hub
① IoT デバイス管理のためのエンドポイント
デバイス ID 管理
メッセージング(受信)
メッセージング(送信)
デバイス ツイン管理
ダイレクト メソッドの起動
ジョブ管理
モニタリング イベントの受信
ファイル受信
メッセージング (受信)
メッセージング (送信)
ファイル アップロードの開始
デバイス ツイン プロパティの同期
ダイレクト メソッド要求の受信
デバイス管理
デバイスツイン
ダイレクトメソッド
デバイス管理
68
デバイス管理のためのエンドポイント通信
デバイス ツインとダイレクト メソッドの通信方向
IoT デバイス
デバイス ツイン
properties
desired
reported
IoT Hub
デバイス ツイン
tags
properties
desired
reported
ダイレクト メソッド
参考:https://docs.microsoft.com/ja-jp/azure/iot-hub/iot-hub-devguide-device-twins
メソッドの起動
書き込み・読み取り
書き込み・読み取り
読み取り
バックエンド
アプリ
応答
デバイス アプリ
書き込み・読み取
り・変更通知
書き込み・読み取り
メソッドの実行
実行要求
69
② デバイス ツイン
デバイス ツインの情報を使用したクエリの実行
⚫ 既定のデバイス ツイン json データ
IoT Hub
デバイス ツイン
tags
properties
desired
reported
ダイレクト メソッド
70
③ ダイレクト メソッド
ダイレクト メソッドの呼び出し
⚫ バックエンド アプリからデバイスのメソッドを呼び出し、デバイスを再起動する例
public static async Task StartReboot()
{
client = ServiceClient.CreateFromConnectionString(connString);
CloudToDeviceMethod method = new CloudToDeviceMethod("reboot");
method.ResponseTimeout = TimeSpan.FromSeconds(30);
CloudToDeviceMethodResult result
= await client.InvokeDeviceMethodAsync(targetDevice, method);
}
Client.SetMethodHandlerAsync("reboot", onReboot, null).Wait();
デバイスの再起動を呼び出す非同期メソッドの定義呼び出されたメソッドに delgate を登録し、待機状態にする
デバイス
アプリ
メソッドの実行
IoT Hub
ダイレクト メソッド
応答
メソッドの実行要求
バックエンド
アプリ
メソッドの起動
71
デバイス ツインを使用したデバイス管理
デバイスの再起動
⚫ バックエンドアプリからデバイス再起動を要求
⚫ デバイス ツイン情報に履歴を保存
構成管理
⚫ 構成の初期化
⚫ 構成の設定とデバイス ツイン情報の更新
ソフトウェアの更新
⚫ デバイスへのソフトウェアのダウンロードと適用
⚫ デバイス ツイン情報の更新
ファームウェアの更新
⚫ デバイスへのファームウェアのダウンロードと適用
⚫ デバイス ツイン情報に履歴を保存
IoT Hub
デバイス ツイン
tags
properties
desired
reported
ダイレクト メソッド
72
Device app Back end
デバイス ツインを使用したファームウェアの更新フロー
長時間のメソッド実行時、デバイス ツインで、進捗状況を確認する
ファームウェア更新の起動ファームウェア更新処理
2
ファームウェア イメージの
ダウンロードとレポート
イメージの適用と
ステータスの記録
再起動と再接続
レポート情報の更新を確認4
レポート情報の更新を確認
3
5
6
IoT Hub
デバイス ツイン
properties
参考:https://docs.microsoft.com/ja-jp/azure/iot-hub/iot-hub-csharp-node-firmware-update
バックエンド アプリIoT デバイス
ダイレクト メソッド1
reported
IoT Edge
Gateway
D
D
D
D
デバイス/センサ
クラウドで処理していたタスクがエッジでも実行可能に
ユースケース
Edge
Computing
Power
Vibration
Fluid
Pressure
Temperature
2.5MB / sec
150MB / min
9GB / hour
216 GB / Day
80KB / sec
4.8MB / min
288MB / hour
6.912GB / Day
Extracted Data
Data Analysis
優れたフィールド サービスを提供
「このソリューションのおかげで、製造プロセスを変革できました。お客様の現場から
営業のやり取りまで、あらゆる段階で工具、機械、プロセスを連携させることで、
かつてないレベルのフィールド サービスを提供できるようになりました。」
Klas Forsström 氏
Sandvik Coromant、社長
目的
Sandvik Coromant は、
切削工具の製造と金属切削
業界向けのサービスを展開。
1 つ上のサービスを提供する
ことを目指している。
戦術
マイクロソフトの
テクノロジを活用し、
温度、負荷、振動などの
データを機械加工プロセス
からリアルタイムで収集し、
そのデータをクラウドに
接続するソリューションを
開発する。
結果
• 顧客にフィードバックを瞬時に
提供して効率を向上
• 数百万ドルのコスト削減を実現
78
フィールド側に設置するインテリジェントなエッジ デバイスのためのプラットフォーム
① IoT Edge のロードマップ
● オープンソースのゲートウェイ SDK
● レガシー デバイスの接続を可能に
● 開発言語:Node.js、Java、C#、C
● パッケージ:NPM、Maven、NuGet
● モジュールによる機能分割
● オープンソース:https://github.com/Azure/iot-edge
● 公開されているモジュール:
• ble
• hello_world
• Identitymap
• iothub
• logger
• simulated_device
• azure_functions
• OPC Publisher
• OPC Proxy
• Modbus
• GZip Compression
• Proficy Historian
• SQLite
• Batch/Shred
• ZWave
● Azure IoT Hub との統合
• ランタイムによる接続
• IoT Hub からの管理が可能に
• デバイス ツイン、モジュール ツイン
● Docker コンテナーによるモジュールの配置
● Azure サービス互換モジュール
• Stream Analytics
• Machine Learning
• Function App
79
Docker コンテナー ベースのモジュール拡張
⚫ クラウドで行っていた分析とカスタム ビジネス ロジックをデバイス側で実行可能に
⚫ Linux と Windows のサポート
ランタイム
⚫ デバイスにデプロイされたモジュールを管理する Edge Agent とモジュール間の通信を担う Edge Hub で構成される
モジュール
⚫ Azure のサービス、サード パーティのサービス、またはカスタム コードを実行する Docker コンテナー
Azure IoT Edge Runtime
Edge Agent
② IoT Edge v2 とは?
Azure IoT Hub
IoT デバイス
モジュール 1 モジュール 2 モジュール 3
Azure IoT Edge デバイス
テレメトリ取得 インサイト アクション
Edge Hub インサイトテレメトリ
コンテナー コンテナー コンテナー
$upstream
JSON でルートを定義
80
IoT Edge ランタイム
・IoT Edge ハブ
・IoT Edge エージェント
③ IoT Edge モジュールによる拡張
Azure IoT Edge により、クラウド機能をエッジに拡張
⚫ クラウドとエッジによるハイブリッドなモノのインターネット (IoT) ソリューションを実現
Azure IoT Hub
ローカル
ストレージ
Stream
Analytics
⚫ コンテナー ベース モジュール
⚫ Azure Stream Analytics
⚫ Azure Function App
⚫ Azure Machine Learning
⚫ Microsoft Cognitive Services
⚫ オフライン、および同期されたデバイス ツイン
⚫ ローカル ストレージ
⚫ クラウドからの管理と配置
⚫ 高可用性と耐障害性
⚫ リモートからの開発、テストのサポート
デバイス
ツイン
デバイス
ツイン
Function Machine
Learning
Cognitive
Services
モジュール
ツイン
モジュール
ツイン
モジュール
ツイン
モジュール
ツイン
モジュール
ツインモジュール
ツインモジュール
ツインモジュール
ツインモジュール
ツイン
IoT デバイス
コンテナー コンテナー コンテナー コンテナー
カスタム
コード
モジュール
ツイン
コンテナー
Azure IoT Edge ゲートウェイ
④
⑤ ⑥
81
④ IoT Edge v2 の構成手順
前提条件
⚫ Windows 10 (Fall Creators Update:OS ビルド 16299 以降)
⚫ Windows Server (OS ビルド 16299 以降)
⚫ x64 ベース デバイス上の Windows IoT Core (OS ビルド 16299 以降)
1. Docker for Windows のインストール
⚫ https://docs.docker.com/docker-for-windows/install/#download-docker-for-windows より、
Get Docker for Windows (Stable) を選択して、Docker for Windows Installer.exe をダウンロードしてインストールする
2. Python 2.7 のインストール
⚫ https://www.python.org/downloads/ より、
2.7.X を選択し、python-2.7.X.msi をダウンロードしてインストールする
3. IoT Edge 制御スクリプトをダウンロード
参考:https://docs.microsoft.com/ja-jp/azure/iot-edge/quickstart
pip install -U azure-iot-edge-runtime-ctl
python.exe へのパスを設定
ハイパースケールの
エンタープライズ
グレードの
インフラストラクチャ
開発者用ツールおよび
サービス
データ サイエンスのための
オープン プラットフォーム
ハードウェア
ストレージ管理
ソフトウェア
ML および AI プラットフォーム
AI アプリケーション (ファーストおよびサード パーティ) コグニティブ サービス Bot
Framework
Spark AI Batch Training DS VM SQL Server ACS
BLOB Cosmos DB SQL DB/DW ADLS
CPU FPGA GPU IoT
Azure Machine Learning
モデルのデプロイおよび管理
機械学習ツールキット
実験の管理、データの準備、
コラボレーション
CNTK
TensorFlow
ML Server
Scikit-Learn
その他のライブラリ
PROSE
Docker
クラウド - Spark、SQL、その他の
エンジン
ML Server - Spark、SQL、VM
エッジ
Transform Data into Intelligence
Azure Machine Learning
Azure Machine Learning Service Azure Machine Learning Visual Interface
GUI でのドラッグ & ドロップコードファースト
機械学習と AI のポートフォリオ
いつどれを使用するか?
どのエンジンを使用するか?
デプロイ対象
どちらの経験を優先するか?
独自に構築するか、事前トレーニング
されたモデルを使用するか?
Microsoft ML
および AI 製品
独自に構築
Azure Machine
Learning
コードファースト
(オンプレミス)
ML サーバー
オンプレミスの
Hadoop
SQL
Server
(クラウド)
AML (プレビュー)
SQL
Server
Spark Hadoop Azure Batch DSVM Azure
Container
Service
ビジュアル ツール
(クラウド)
AML Studio
使用
コグニティブ
サービス、ボット
8585
NEW
ビデオインデクサー
NEW
ラボ
NEW NEW NEW
カスタム カスタム カスタムカスタム カスタム
Cognitive Services : 29 種類の API を提供
8686
Challenge Solution Benefits
• 時間帯別の来場
者の把握
• 顧客層の把握に
よる適切なプロ
モーション戦略
の確立
• 「Cognitive
Services」と連
携した「アロバ
ビューコーロ」
を使用し、来場
者のカウントお
よび属性情報を
取得
• 人力による集計作業の
コスト圧縮
• プロモーション実施時の
効果測定が実現
• Emotion APIによる感情
値の取得によって顧客満
足度の計測を実現
AI を使った効果測定
サイネージ視聴率の各KPIを測定し、OOHの多層的な媒体効果が把握可能
Microsoft x 電通 人工知能型 DOOH 広告ソリューション
KPI1 = エンゲージメント
KPI2= リーチAKPI5= ポテンシャルリーチ KPI3= リーチB
KPI4= リーチC
© 2017 Ebiya Ltd. All rights reserved.
Challenge
• 在庫適正化困難ゆえの
高廃棄コスト
• 利益を圧迫する人件費
• 提供までの時間が長い
ことによる低い回転率
Solution
• 男女比率&入店率&幸
せ度など属性情報含む
来客データ数値化、
機械学習で需要予測
• 需要予測的中率 90%
超、Power BI で視覚化
Benefits
• 定量的判断に基づく対処
• 4 年間で売上 5 倍・利益率
12 倍・平均給与 20% Up
• 人員配置適正化実現、配膳
スピード改善、回転率向上
来店予測 AI がサービス業における属人的感覚を数値化
データドリブン オペレーションによる個客おもてなしを実現
伊勢の老舗店「ゑびや」のAI活用事例
8989
入店人数のカウント
通行人数のカウント
性別年齢のカウント
入店人数のカウント
1. 顧客属性を適切に把握する
2. 通行客属性と入店属性の
乖離を見る
3. 入店率から店頭ディスプレイ
の効果検証を行う
(ゑびや様講演より抜粋)
ECのような店頭ファネル分析
入店率15.78% 購買率26.9%
女性比率 56.8%
(2017/9/1~9/30)
入店率9.63% 購買率22.6%
女性比率 53.6%
(2017/10/1~11/22)
A
画像解析AIや購入実績を元にA/Bテストを実施
(ゑびや様講演より抜粋)
B
効果測定結果
「A」「B」を比較すると「A」のほうが
入店率も購買率も客単価も高かった
A
B
9191
(ゑびや様講演より抜粋)
1.時間単位で来客数と売上を
予測
2.各メディアのアクセス数、
観光予報データと通行者
数・売上などの相関を見る
3.スタッフのインタビューに
よりデモグラ属性まで把握
ダッシュボードによる可視化と予測分析
Custom Vision on Kubernetes
92https://github.com/asashiho/ContainerDays1812
IoT デバイスに対する悩み
組み込み系デバイスをクラウドに繋いだり、
テレメトリを送ったり、設定の変更を適用し
たり出来るようにするには、その開発に関す
る非常に深い知識が必要
ハードウェアの入手、ソリューション対応の
組み込み、そして量産への移行は、ほとんど
の顧客のとって数ヶ月から数年を要するタス
クになる
ソリューション開発者にとって、ローレベル
なデバイスメッセージを有用なデータ、イベ
ント、ワークフローに変換するのは極めて難
易度が高い
IoT をシンプルに、とかかげる Azure IoT にとって、喫緊に解決すべき課題
IoT デバイスとソリューション関係:現状
デバイス上のソフトウェアとクラウド上のソリューションが
1:1 で堅く結ばれている(= 全てが個別対応になっている)
似たような状況が過去にも
Windows “Plug and Play” による解決
Capability
Model
Device
Metadata
デバイスは Capability Model を公開、それを遵守
Windowsはその Capability Model でデバイスとの対話方法を把握
Azure Container
だれのマシンでも実行できる
すべての環境を同じように扱える
ベロシティを上げる
どこでも実行できる
Why Containers
Linux
Windows
クラウド
ドローン, Raspberry PI, IoT
Containers run everywhere
Docker Container
ホストOSカーネルを共有
移植性
拡張性の向上
インスタンスごとに個別のOS
大きなフットプリント
起動が遅い
Virtual machines
Containers vs Virtual Machines
Azureのコンテナー エコシステム
IaaSPaaS
Azure services
SQL
Database
Redis Cache
CosmosDB
And more!
Partner services
OpenShift
Pivotal Cloud
Foundry
Docker
Enterprise
Edition
Mesosphere
DC/OS
Azure
Azure
Container
Registry
(ACR)
OSBA
Azure Kubernetes
Service (AKS)
AKS
Engine
Batch
Azure Container
Instances
(ACI)
Virtual Machine
Scale Sets
(VMSS)
Service Fabric
Mesh Cluster
Virtual kubelet
Web Apps for
Container ( App
Service )
Azure Virtual
Machine
Decision tree for Azure compute services @ Azure Architecture Center
https://docs.microsoft.com/en-us/azure/architecture/guide/technology-choices/compute-decision-tree
新規開発かどうかLift & Shift ?
クラウド最適化?
コンテナー化可能
Web/APIアプリ
Azureコンテナー
関連サービスから選択
制御・自由度?
ポータビリティ?
HPCワークロード
マイクロサービス
アーキテクチャ
イベント駆動
オーケストレーション
が必要
.NET + ステートフル
ワークロード
Yes
Yes
No
Yes
Yes
Yes
No
No
No
No
No
Yes
Lift&Shift
No
No
No
Yes
新規開発既存資産の更新・移行
https://azure.microsoft.co
m/overview/containers/
Yes
Yes
IDC Japan社 2018年 国内クラウドインフラストラクチャに関するユーザー動向調査結果
https://www.idcjapan.co.jp/Press/Current/20180614Apr.html
41%
Docker & Kubernetes のモーメンタム
Dockerの導入状況に関するユーザー調査結果(調査年別)
Performance
コンピューティングリ
ソースの有効活用
Machine
learning
Portability
アプリケーションの
可搬性
IoT
Agility
サービスインまでの
時間を短縮
デプロイ頻度
Microservices
Cost saving
コード変更なしで移行
コンテナによる
Lift and shift
コンテナの利用シナリオ
Lift and shift to
containers
Microservices Machine learning IoT
既存コードを変更することなくコンテナ化
• コンテナ技術を使用した
アプリケーションのモダナイズ
• コンテナオーケストレーション
による障害リスク低減
• 継続的インテグレーション
継続的デプロイメント
Azure
Container
Registry
Existing
application
Kubernetes cluster
Cloud
Database
Modernized
application
Modernized
application
Modernized
application
CI/CD
Lift and shift to
containers
Microservices Machine learning IoT
マイクロサービス型のアプリケーション実行基盤
• マイクロサービスによる独立
したデプロイ
• サービスごとのスケーラビリ
ティとリソース使用率の向上
• チームでの並行分離開発
Monolithic
APP APP APP
Microservices
Large, all-inclusive app Small, independent services
Lift and shift to
containers
Microservices Machine learning IoT
ディープラーニングでの活用
• アプリケーションデプロイの容易
さと高い可用性
• 低レイテンシのデータ処理
• テスト・学習・推論の統合管理
https://github.com/Azure/kubeflow-labs
Compute
Training
data
Algorithm
GPU-enabled VMs
AKS trained
model
AI model in
production
Developer
<¥>
Data
Scientist
Serve the
model
Lift and shift to
containers
Microservices Machine learning IoT
IoTのエッジデバイスへのデプロイ
• コードの可搬性の高さ
• 柔軟な拡張性と管理
• アプリケーションデプロイの
容易さと高い可用性
AKS
Database
for MySQL
Azure
Cosmos DB
SQL
Database
IoT Hub
IoT Edge
devices
IoT Edge
Connector
Azure Container Registry
Docker イメージのプライベートレジストリ
Azure Container Registry
Docker イメージのプライベートレジストリ
Docker コマンドライ
ンをそのまま使える
geo-replicationAzure の全コンテナ
サービスをサポート
ACR: イメージストレージ
https://docs.microsoft.com/ja-jp/azure/container-registry/container-registry-storage
• 全てのイメージは保存時に暗号化される
• 全てのプラン Basic/Standard/Premium で地理的冗長構成
• Docker, OCI (Open Container Initiative) のイメージフォーマットをサポート
• 加えて、Helm チャート をサポート(プレビュー)
1. ある拠点の開発者が、コンテナー イメージを構築す
るためにコードをコミットする
2. イメージは DNS に基づいて最も近い ACR リージョ
ンにプッシュされる
3. その拠点へのデプロイがトリガーされる
4. ACR は設定されたリージョンへ地理的レプリケー
ションを行う
5. もう一方の拠点へのデプロイがトリガーされる
6. 双方の AKS クラスターが contoso.azurecr.io からイ
メージをプルする
ACR: geo-replication
https://docs.microsoft.com/ja-jp/azure/container-registry/container-registry-geo-replication
Developer Container image
contoso.azurecr.io
East US West Europe
contoso.azurecr.io
contoso.azurecr.io/app:v1
AKS CD ACR
contoso.azurecr.io/app:v1
AKSCDACR
Geo-Replication
※ Premiumプランでのみサポート
Azure Container Instance
サーバレスコンテナで高速スケール
Azure Container Instances
サーバレスコンテナ環境
GPU 対応のコンテナがサポート
az container create ¥
-g aci_grp ¥
--name nginx ¥
--image library/nginx ¥
--ip-address public ¥
–cpu 2 --memory 5
Azure Container Instance の料金
高速起動、秒単位課金の威力
• 100 instance
• 300 sec = 5 min
• Memory 1GB
• vCPU x 1
※ 2019年11月時点
Azure App Service
PaaS のアプリケーション基盤
※本リファレンスアーキテクチャーには利用されていないが、有力な選択肢のひとつ
複数の言語とフレームワーク
拡張性と高可用性
DevOpsの最適化、セキュリティ、コンプライアンス
テンプレート、IDE統合、サーバーレス、and more…
Azure App Service
フルマネージドなコンピューティングプラットフォーム
ウェブサイト、ウェブアプリのホスティングに最適化
Windows/Linuxネイティブ環境、コンテナー環境
非常に大規模で隔離された環境向けのオプション
Azure App Service
コンテナー化されたアプリケーションを簡単にデプロイ
して実行
ビルトインされたオートスケーリングとロードバランシン
グ
Docker Hub、Azure Container Registry、
GitHub を用いた CI/CD のストリームライン化
Web App for Containers
まとめ
もういちど全体構成図を
123123
レベル 100 (初級・入門) レベル 200(中級) レベル 300 (Smart Store用)
Smart Store Azure 関連トレーニング コース
はじめてシリーズ
Azure Data and AI
IoTで加速する
デジタルトランスフォーメーション
営業
Azure Data and AI
商品認識の仕組み(その1)
IoT
提供
予定
Azure Data and AI
商品認識の仕組み(その2)
AI
提供
予定
※この他 Azure システム運用、CI / CD 、 Mobile アプリ開発などのコースも計画中
Azure Data and AI
オンプレミス SQL Server から Azure 上の
SQL サービス利用へのポイントと使い分け!
技術
Azure Data and AI
技術者向けいまさら聞けない
機械学習/AI の基礎
技術
SmartStoreリファレンスアーキテクチャハンズオン(ハッカソン)(2日間)
AI,IoT,App,DB
Azure Data and AI
Azure Cosmos DB の概要を
あらためて理解する
技術
Azure Data and AI
商品マスタとトランザクション管理
DB
提供
予定
対面Azure Data and AI
進化を続けるAzure IoT
技術
今日から始める Azure Functions 2.0
技術
Azure App and Infra Azure App and Infra
サーバレスアーキテクチャ
App
SmartStoreリファレンスアーキテクチャトレーニング(2日間)
AI,IoT,App,DB
はじめてシリーズ
SmartStore概要解説
提供
予定 対面
https://ms-smartstore.connpass.com/
“Microsoft Smart Store” で検索
◼ 本書に記載した情報は、本書各項目に関する発行日現在の Microsoft の見解を表明するものです。Microsoftは絶えず変化する市場に対応しなければならないため、ここに記載し
た情報に対していかなる責務を負うものではなく、提示された情報の信憑性については保証できません。
◼ 本書は情報提供のみを目的としています。 Microsoft は、明示的または暗示的を問わず、本書にいかなる保証も与えるものではありません。
◼ すべての当該著作権法を遵守することはお客様の責務です。Microsoftの書面による明確な許可なく、本書の如何なる部分についても、転載や検索システムへの格納または挿入を
行うことは、どのような形式または手段(電子的、機械的、複写、レコーディング、その他)、および目的であっても禁じられています。
これらは著作権保護された権利を制限するものではありません。
◼ Microsoftは、本書の内容を保護する特許、特許出願書、商標、著作権、またはその他の知的財産権を保有する場合があります。Microsoftから書面によるライセンス契約が明確
に供給される場合を除いて、本書の提供はこれらの特許、商標、著作権、またはその他の知的財産へのライセンスを与えるものではありません。
© 2016 Microsoft Corporation. All rights reserved.
Microsoft, Windows, その他本文中に登場した各製品名は、Microsoft Corporation の米国およびその他の国における登録商標または商標です。
その他、記載されている会社名および製品名は、一般に各社の商標です。

Contenu connexe

Tendances

Tendances (20)

3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
 
Hubsカスタマイズ 別WEBサイトとのログイン連携による入室制限
Hubsカスタマイズ 別WEBサイトとのログイン連携による入室制限Hubsカスタマイズ 別WEBサイトとのログイン連携による入室制限
Hubsカスタマイズ 別WEBサイトとのログイン連携による入室制限
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 
ここがつらいよ、Hyperledger Fabricの商用適用(Blockchain GIG #4発表資料)
ここがつらいよ、Hyperledger Fabricの商用適用(Blockchain GIG #4発表資料) ここがつらいよ、Hyperledger Fabricの商用適用(Blockchain GIG #4発表資料)
ここがつらいよ、Hyperledger Fabricの商用適用(Blockchain GIG #4発表資料)
 
ジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりました
ジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりましたジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりました
ジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりました
 
IoT と時系列データと Elasticsearch | Data Pipeline Casual Talk Vol.4
IoT と時系列データと Elasticsearch | Data Pipeline Casual Talk Vol.4IoT と時系列データと Elasticsearch | Data Pipeline Casual Talk Vol.4
IoT と時系列データと Elasticsearch | Data Pipeline Casual Talk Vol.4
 
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
 
Azure Digital TwinとUnreal Engineを統合するADTLink Pluginについて
 Azure Digital TwinとUnreal Engineを統合するADTLink Pluginについて Azure Digital TwinとUnreal Engineを統合するADTLink Pluginについて
Azure Digital TwinとUnreal Engineを統合するADTLink Pluginについて
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
IoTで生き残れ!成功なんて結果論、こうすれば失敗します。プロ達が語る『IoT失敗あるある談』!!! | IoT ありがちな失敗パターンと 回避する方法
IoTで生き残れ!成功なんて結果論、こうすれば失敗します。プロ達が語る『IoT失敗あるある談』!!! | IoT ありがちな失敗パターンと 回避する方法IoTで生き残れ!成功なんて結果論、こうすれば失敗します。プロ達が語る『IoT失敗あるある談』!!! | IoT ありがちな失敗パターンと 回避する方法
IoTで生き残れ!成功なんて結果論、こうすれば失敗します。プロ達が語る『IoT失敗あるある談』!!! | IoT ありがちな失敗パターンと 回避する方法
 
メタバースのビジネスモデルと技術限界
メタバースのビジネスモデルと技術限界メタバースのビジネスモデルと技術限界
メタバースのビジネスモデルと技術限界
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
 
トランザクションの設計と進化
トランザクションの設計と進化トランザクションの設計と進化
トランザクションの設計と進化
 
知っているようで知らないPAMのお話
知っているようで知らないPAMのお話知っているようで知らないPAMのお話
知っているようで知らないPAMのお話
 
【プライム・ストラテジー】ローカルLLMを複数組み合わてみた(インフラエンジニアのためのChatGPT入門LT)
【プライム・ストラテジー】ローカルLLMを複数組み合わてみた(インフラエンジニアのためのChatGPT入門LT)【プライム・ストラテジー】ローカルLLMを複数組み合わてみた(インフラエンジニアのためのChatGPT入門LT)
【プライム・ストラテジー】ローカルLLMを複数組み合わてみた(インフラエンジニアのためのChatGPT入門LT)
 
Part 1: IoT 基盤 (製造リファレンス・アーキテクチャ勉強会)
Part 1: IoT 基盤 (製造リファレンス・アーキテクチャ勉強会)Part 1: IoT 基盤 (製造リファレンス・アーキテクチャ勉強会)
Part 1: IoT 基盤 (製造リファレンス・アーキテクチャ勉強会)
 

Similaire à Smart Camera: Azure IoT + Container

インタリオカンファレンス案内(修正版)3
インタリオカンファレンス案内(修正版)3インタリオカンファレンス案内(修正版)3
インタリオカンファレンス案内(修正版)3
Tomoaki Sawada
 

Similaire à Smart Camera: Azure IoT + Container (20)

"Kong Summit, Japan 2022" カスタマーセッション:持続可能な店舗運営を支えるリテールテックとKongの利活用について
"Kong Summit, Japan 2022" カスタマーセッション:持続可能な店舗運営を支えるリテールテックとKongの利活用について"Kong Summit, Japan 2022" カスタマーセッション:持続可能な店舗運営を支えるリテールテックとKongの利活用について
"Kong Summit, Japan 2022" カスタマーセッション:持続可能な店舗運営を支えるリテールテックとKongの利活用について
 
Smart Store Map
Smart Store MapSmart Store Map
Smart Store Map
 
MTとAzure の素敵な関係@MTDDC Meetup Tohoku 2015
MTとAzure の素敵な関係@MTDDC Meetup Tohoku 2015MTとAzure の素敵な関係@MTDDC Meetup Tohoku 2015
MTとAzure の素敵な関係@MTDDC Meetup Tohoku 2015
 
観光産業におけるEamの必要性
観光産業におけるEamの必要性観光産業におけるEamの必要性
観光産業におけるEamの必要性
 
インタリオカンファレンス案内(修正版)3
インタリオカンファレンス案内(修正版)3インタリオカンファレンス案内(修正版)3
インタリオカンファレンス案内(修正版)3
 
Salesforce Platformとモバイル活用
Salesforce Platformとモバイル活用Salesforce Platformとモバイル活用
Salesforce Platformとモバイル活用
 
Big Data Architecture 全体概要
Big Data Architecture 全体概要Big Data Architecture 全体概要
Big Data Architecture 全体概要
 
Smart storeを実現するAzureサービス IoT編
Smart storeを実現するAzureサービス IoT編Smart storeを実現するAzureサービス IoT編
Smart storeを実現するAzureサービス IoT編
 
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。 複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
 
第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」
第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」
第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」
 
変化に強いインフラを楽して構築するために考えること
変化に強いインフラを楽して構築するために考えること変化に強いインフラを楽して構築するために考えること
変化に強いインフラを楽して構築するために考えること
 
SORACOM Discovery2019 G3 eSIM 搭載デバイスの作り方 eSIMを選択する理由から実装、調達まで
SORACOM Discovery2019 G3 eSIM 搭載デバイスの作り方 eSIMを選択する理由から実装、調達までSORACOM Discovery2019 G3 eSIM 搭載デバイスの作り方 eSIMを選択する理由から実装、調達まで
SORACOM Discovery2019 G3 eSIM 搭載デバイスの作り方 eSIMを選択する理由から実装、調達まで
 
POSのご紹介
POSのご紹介POSのご紹介
POSのご紹介
 
Microsoft Developer Forum 2011 KeyNote by Akihiro Ooba
Microsoft Developer Forum 2011 KeyNote by Akihiro OobaMicrosoft Developer Forum 2011 KeyNote by Akihiro Ooba
Microsoft Developer Forum 2011 KeyNote by Akihiro Ooba
 
Cm re growth-devio-mtup11-sapporo-004
Cm re growth-devio-mtup11-sapporo-004Cm re growth-devio-mtup11-sapporo-004
Cm re growth-devio-mtup11-sapporo-004
 
IoT@Loft#20 - IoTプラットフォームを進化さ せるAWSの活用方法
IoT@Loft#20 - IoTプラットフォームを進化さ せるAWSの活用方法IoT@Loft#20 - IoTプラットフォームを進化さ せるAWSの活用方法
IoT@Loft#20 - IoTプラットフォームを進化さ せるAWSの活用方法
 
ビッグデータ時代にむけて/濱田 正彦
ビッグデータ時代にむけて/濱田 正彦ビッグデータ時代にむけて/濱田 正彦
ビッグデータ時代にむけて/濱田 正彦
 
プライベートクラウドの動向とIT業へのインパクト(インタリオセミナー072409)最終版
プライベートクラウドの動向とIT業へのインパクト(インタリオセミナー072409)最終版プライベートクラウドの動向とIT業へのインパクト(インタリオセミナー072409)最終版
プライベートクラウドの動向とIT業へのインパクト(インタリオセミナー072409)最終版
 
Lt4 aws@loft #11 aws io-t for smart building
Lt4 aws@loft #11 aws io-t for smart buildingLt4 aws@loft #11 aws io-t for smart building
Lt4 aws@loft #11 aws io-t for smart building
 
三協立山の仮想化基板の成長を支えるイーサネット・ファブリック
三協立山の仮想化基板の成長を支えるイーサネット・ファブリック三協立山の仮想化基板の成長を支えるイーサネット・ファブリック
三協立山の仮想化基板の成長を支えるイーサネット・ファブリック
 

Plus de Microsoft Azure Japan

Plus de Microsoft Azure Japan (20)

Awl introduction and camera ra 121219
Awl introduction and camera ra  121219Awl introduction and camera ra  121219
Awl introduction and camera ra 121219
 
Microsoft smart store strategy
Microsoft smart store strategyMicrosoft smart store strategy
Microsoft smart store strategy
 
Ms retail update ra 20191030
Ms retail update ra 20191030Ms retail update ra 20191030
Ms retail update ra 20191030
 
Smart store servlerless-20191030-40min
Smart store servlerless-20191030-40minSmart store servlerless-20191030-40min
Smart store servlerless-20191030-40min
 
Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編
 
Azure IoT/AI最前線
Azure IoT/AI最前線Azure IoT/AI最前線
Azure IoT/AI最前線
 
Ceonnect(): 2018 Japan AKS (Yoshio Terada)
Ceonnect(): 2018 Japan AKS (Yoshio Terada)Ceonnect(): 2018 Japan AKS (Yoshio Terada)
Ceonnect(): 2018 Japan AKS (Yoshio Terada)
 
Connect(); 2018 Japan IoT <Hiroshi Ota>
Connect(); 2018 Japan IoT <Hiroshi Ota>Connect(); 2018 Japan IoT <Hiroshi Ota>
Connect(); 2018 Japan IoT <Hiroshi Ota>
 
App Service の DevOps と Visual Studio Team Services 最新アップデート
App Service の DevOps と Visual Studio Team Services 最新アップデートApp Service の DevOps と Visual Studio Team Services 最新アップデート
App Service の DevOps と Visual Studio Team Services 最新アップデート
 
進化する Web ~ Progressive Web Apps の実装と応用 ~
進化する Web  ~ Progressive Web Apps の実装と応用 ~進化する Web  ~ Progressive Web Apps の実装と応用 ~
進化する Web ~ Progressive Web Apps の実装と応用 ~
 
音声 Chat で見込み客を獲得!Bot を活用した業務効率化
音声 Chat で見込み客を獲得!Bot を活用した業務効率化音声 Chat で見込み客を獲得!Bot を活用した業務効率化
音声 Chat で見込み客を獲得!Bot を活用した業務効率化
 
スケーラブルで手間なく動かせる!もうすぐ 一般提供開始 Azure Database for MySQL / PostgreSQL
スケーラブルで手間なく動かせる!もうすぐ 一般提供開始 Azure Database for MySQL / PostgreSQLスケーラブルで手間なく動かせる!もうすぐ 一般提供開始 Azure Database for MySQL / PostgreSQL
スケーラブルで手間なく動かせる!もうすぐ 一般提供開始 Azure Database for MySQL / PostgreSQL
 
App center an overview
App center  an overviewApp center  an overview
App center an overview
 
Intelligent Mobile App と Cloud Native、これからの時代のアプリケーション開発ビジョン
Intelligent Mobile App と Cloud Native、これからの時代のアプリケーション開発ビジョンIntelligent Mobile App と Cloud Native、これからの時代のアプリケーション開発ビジョン
Intelligent Mobile App と Cloud Native、これからの時代のアプリケーション開発ビジョン
 
高速開発でビジネスニーズをいち早く具現化する DevOps ソリューション
高速開発でビジネスニーズをいち早く具現化する DevOps ソリューション高速開発でビジネスニーズをいち早く具現化する DevOps ソリューション
高速開発でビジネスニーズをいち早く具現化する DevOps ソリューション
 
おもてなしサービスで売上伸長! 画像認識を活用した先端マーケティング 〜カメラとAIの素敵なカンケイ〜
おもてなしサービスで売上伸長! 画像認識を活用した先端マーケティング 〜カメラとAIの素敵なカンケイ〜おもてなしサービスで売上伸長! 画像認識を活用した先端マーケティング 〜カメラとAIの素敵なカンケイ〜
おもてなしサービスで売上伸長! 画像認識を活用した先端マーケティング 〜カメラとAIの素敵なカンケイ〜
 
AIを使いこなせ! ~AI最新技術とMicrosft AI Platform~
AIを使いこなせ! ~AI最新技術とMicrosft AI Platform~AIを使いこなせ! ~AI最新技術とMicrosft AI Platform~
AIを使いこなせ! ~AI最新技術とMicrosft AI Platform~
 
センサーxIo tx機械学習が実現する導線分析のビジネス貢献
センサーxIo tx機械学習が実現する導線分析のビジネス貢献センサーxIo tx機械学習が実現する導線分析のビジネス貢献
センサーxIo tx機械学習が実現する導線分析のビジネス貢献
 
Msのio tと最新事例 ms_02082018
Msのio tと最新事例 ms_02082018Msのio tと最新事例 ms_02082018
Msのio tと最新事例 ms_02082018
 
Io taiプロジェクトの進め方、組織作り 20180208_ver1.02
Io taiプロジェクトの進め方、組織作り 20180208_ver1.02Io taiプロジェクトの進め方、組織作り 20180208_ver1.02
Io taiプロジェクトの進め方、組織作り 20180208_ver1.02
 

Dernier

Dernier (11)

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 

Smart Camera: Azure IoT + Container

  • 1. Smart Camera: Azure IoT + Container リファレンスアーキテクチャーで使われている Azure テクノロジーをご紹介 Microsoft Japan Smart Store Dev-Team
  • 4. 1. Smart Store の目的
  • 5. 1-1. 小売業界の最新状況(DX) ✓小売業界は顧客ニーズが多様化し、体験やストーリーを重視して購買を行うように変化していると言われています。 ✓その過程で競争力の維持・強化・顧客満足向上のために、デジタルトランスフォーメーションをスピーディーに進めていくことが求められています。 ✓日本マイクロソフト(株)は最新テクノロジとデータを活用してビジネスモデルを変革し、顧客志向で革新的なサービスを提供する次世代店舗 モデル「Smart Store」の実現に向けた支援策を提供開始しました。 Intelligent Retail Know your customers Empower your people Deliver intelligent supply chain Reimagine retailReimagine Retail 流通業ビジネスの 再創造 Know your Customers 顧客理解の促進 Deliver intelligent Supply chain サプライチェーンの 高度化 Empower your Employees 従業員の強化
  • 6. 1-2. Smart Store 施策の背景 次世代の小売業で求められている姿 日本の小売業が直面しているシステム課題 • 単一のテクノロジ/ソリューションではビジネス課 題が解決できない (単発的なPOCの繰り返し) • 新しいテクノロジに追従する技術者育成・確保 困難 • 革新的なサービス開発を支えるシステムのサイロ 化による運用コストの増大 • 省人化や効率化かつ顧客満足の維持と向上 • 新しいビジネスモデルへの転換 • 顧客・店舗データの利活用 • カスタマイズされたサービス提供 • イノベーティブなサービスの実現 出典: 「スマートストアの実現に向けて」 平成30年3月経済産業省 消費・流通政策課 Smarter Retailing Forum 2018 VS 日本マイクロソフトは このGAPを本施策で解消します
  • 7. 1-3. Smart Store プラットフォームの提供 ✓ 流通業界におけるシステム共通部分について、マイクロソフトによるリファレンスアーキテクチャーを提供します。 ✓ リファレンスアーキテクチャーでは、スマホ決済等のキャッスレス化対応や、数百店舗での数百万商品や在庫を一括管理でき る商品マスタ、および商品トランザクション管理など、店舗ビジネスにおける主要な業務シナリオ(ユースケース)、 サンプルアプリケーション、およびサンプルコードが含まれます。 ✓ 小売業各社は新規サービス開発期間、開発コスト、および運用コストを大幅削減し、イノベーションライフサイクルを短縮化 することができます。 Smart Store 迅速で柔軟な店舗展開とデータ取得の促進 今後提供予定 Smart Store リファレンスアーキテクチャー メーカー 物流卸売 小売 ECB 決済 消費者 提供中 今後提供予定
  • 8. 今後提供予定 1-4. リファレンスアーキテクチャー利用イメージ Smart Store リファレンスアーキテクチャー API API API API API API メーカー 物流卸売 小売 ECB 決済 消費者 メーカー 卸・物流関連事業者 流通小売事業者 新規事業者 提供中 流通小売事業者 • 新しいビジネステーマに迅速な対応 • 継続的なイノベーションを実現 ソリューション パートナー • 店舗デバイスによる新規ビジネスモデル開発 • AI、IoT、カメラ等と連携した先進的なソリューション開発 RaaS (Retail As a Service) パートナー • 複数ソリューションを連携して、事業者へ統合サービスと して提供 日本マイクロソフト • 主要な業務シナリオにおける リファレンスアーキテクチャー を提供し、より短いサイクルで継続的なイノベーションを 実現可能にする • 適切なソリューションパートナー・RaaSパートナーを紹介する ダイナミック・ プライシング ソリューション カメラ ソリューション 電子タグ ソリューション 決済 ソリューション 在庫管理 ソリューション … ✓ 電子棚札 ✓ サイネージ ✓ 店舗メディア ✓ etc ✓ 映像 ✓ 赤外線 ✓ TOF(3D) ✓ etc ✓ 場所特定 ✓ Bluetooth ✓ RFID ✓ etc ✓ RFIDレジ ✓ カート一体型 セルフレジ ✓ モバイル端末 ✓ etc ✓ リアルタイム 在庫管理棚 ✓ 作業指示端末 ✓ etc 今後提供予定
  • 9. 1-5. Smart Store プラットフォームの目的 ✓ 複数ソリューションを有機的に連携させる環境を作り、お客様が差別化すべき領域を限定的にします。 ✓ その効果により、中小小売業を含めた流通小売事業全体のイノベーションを加速化させます。 施策の概要 ① 先進的なテクノロジを用いた基本的な実現方式(リファレンス アーキテクチャー)を、業界共通でオープン化し各社へ提供 ② リファレンスアーキテクチャーをベースとしたパートナー・技術者を育成 ③ 事業者が差別化した新規ビジネス開発に専念できるよう支援 パートナー様 流通事業者様 サービス構築期間の短縮化 RaaS/Solutionの提供 技術者の育成 差別化したサービス開発 革新的な新事業展開 先進的なテクノロジ を用いたリファレンスの提供 日本マイクロソフト
  • 10. 1-6. 今後のデジタルを活用した店舗イメージ • 商品の評価を入れる • ポイント付与 • クーポン発行 • 定性情報の蓄積 退店後 入店前 • 店外から商品在庫確認 • 予約 (決済) も可能 • 店外でも LINE などから レコメンドを受信 イートイン 商品在庫+予約 レコメンド 商品レビュー・評価 クルーデバイス 入店認証 動線分析 ロッカー商品受取 ヒートマップ 滞留分析 広告効果測定 店内行動 各種情報 電子棚札 オススメ 店内レコメンド 商品情報 (アレルギー等) AR商品情報 ランキング・商品評価配信 対面KIOSK 接客ロボ RFID対応レジ モバイル決済 Suica決済退出ゲート ウォークスルー ゲート決済 電子レシート サイネージ 店内調理 縦型サイネージ FF在庫管理 在庫管理 電子棚札制御 ¥1000¥550 空調・照明制御 スマートエネルギー 自動発注 個品単位での追跡 生産~廃棄まで 個品管理が可能 業務アシスト 需要予測 カート一体型セルフレジ 欠品分析 棚割分析 棚一体型サイネージ 防犯カメラ 画像認識レジ リアルタイムクーポン 冷蔵庫モニタリング
  • 11. 2. Smart Store プラットフォームの設計概念
  • 12. 2-1. Smart Storeプラットフォームにクラウドを選ぶ理由(1) ✓ スピード これまでは機器設備の調達や設置に多くの日数を要するため、事前に入念な計画が必要でした。クラウドの最大の メリットは、最小限の準備で「すぐに」実行できるスピードにあります。店舗数や来店客数、品数や在庫量・流通 量などのデータ変動量の予測が困難になっている現在、フェイルファスト(行動学習)可能な環境は何よりも強い 武器になります。 ✓ スケーラビリティ 将来のデータの変動量の予測が難しい現状では、例えば3年後に必要になるサーバーやストレージのサイズを予想す ることに意味はありません。必要なのは「必要な時に必要なだけ拡張/縮小できるリソース」です。クラウドは、無 駄な資源とともに無駄な検討時間も減らしてくれます。 ✓ 高い保守性 オンプレでは最小限の物理機器で動作するため、店舗新規開設時やメンテナンス時の「取り回し」の軽さとともに、 データセンター側の冗長化や多重化などの災害対策環境も容易に構成できる能力が得られます。
  • 13. 2-1. Smart Storeプラットフォームにクラウドを選ぶ理由(2) ✓ アクセス性の向上 クラウドではパブリックかつ無尽蔵のリソースを利用できるようになることで、場所と時間を問わずリソースに アクセスすることができます。また、これまでインターネット経由のチャネル利用には自社ネットワークの増強 が不可欠でしたが、プラットフォームにクラウドを選択することで、最初からストレスのない帯域が手に入りま す。 ✓ セキュリティ 業務プラットフォームにクラウドを利用する際の最大の障壁がセキュリティでした。自社データセンターと専用 線接続のみで構成された環境はセキュリティ面で最も強固です。しかし、現在のリテールシステムはインター ネットと切り離して考えることはできない状況になりつつあります。一方で、クラウドシステムは全てソフト ウェアで構成されています、高価なファイアウォールもクラウドであれば全てのエンドポイントに配置すること も可能です。これまでのデータセンターでは考えられなかった強固なセキュリティをクラウドでは実現すること ができるのです。
  • 14. 2-2. マイクロサービスの採用 ✓ ビジネス機能を一定の単位でカプセル化し、サービス間を疎結合に保つ設計手法 ✓ 個々のサービスを、それぞれのビジネス機能に求められる非機能要件を適用できる ✓ ビジネスの規模や成長ステージに合わせて、個々のサービス毎に拡張、更新、スケールが可能となる ✓ それぞれのサービスに適したテクノロジーを個別に適用することができる 商品マスタサービス POSサービス BOX管理サービス 在庫管理サービス 利用者向け アプリ用サービス 管理者向けWeb用サー ビス ビジネス機能単位で サービスを分割 サービス間は疎結合に保ち独立し て追加・更新可能に サービスの処理特性に応じて 個々にテクノロジーを適用 サービス毎の非機能要件 に合わせて、デプロイ・ス ケールが可能 マイクロサービスの特徴と利点
  • 15. ✓ 昨今のセキュリティ概念においては、外部からの脅威だけでなく、内部の不慮または故意による事故に対しても考慮しなければなりません。 ✓ そこで Smart Store では、Zero trust network という概念に基づき、クラウドベンダーとクラウド利用者間で責任範囲を分担し、 セキュリティの保護に努めるというモデルを前提とします。 ✓ さらに、PaaSおよびサーバーレスの構成に限定することで、クラウド利用者側の責務が最小限になるよう配慮します。 ✓ この構成において、クラウド利用者は下記における責任を負います。 ・データの管理 ・エンドポイントの管理 ・アカウントと権限の管理 ・行動の記録と監査 責任範囲 SaaS PaaS IaaS データの管理 エンドポイントの管理 アカウント、アクセス管理 IDとディレクトリ構成 アプリケーション ネットワーク制御 OS クラウド利用者が対応する サービスの種類により、 それぞれが対応する クラウドベンダー クラウド利用者 物理ホスト、ネットワーク データセンター 2-3. Smart Storeにおけるセキュリティの考え方
  • 16. 2-4. Smart Storeのリファレンスアーキテクチャ構想例テナント別機能PF ショッピングアプリ スマホ決済 キャッシュレス 消費者向け スマートフォンアプリ ウェブアプリ、API 無人レジ 発注 品出し、棚卸 バックオフィス向け 端末 ウェブアプリ、API クーポン発行 ちらし配布 経営会議 マーケティング向け 管理画面、自動処理 BIツール 店舗PF POS データストア 分析・学習 商品照会 カート 決済 API IoT-PF 設備 監視・制御 入力装置 (カメラ・マイクなど) 出力装置 (空調・照明・放送など) 販売BOX・陳列棚 利用者動向追跡 商品動向追跡 制御・データ送受信 機器管理制御・データ送受信 API、処理商品マスタ 利用者データ 在庫データ 設備データ 商品学習 利用者分析 需要予測 設備メンテナンス予測 データストア
  • 17. Function App単位でスケールでき 2-5. クラウドPOSとは ✓サービスの中心となるPOSをクラウドでAPI化することで、既存のPOS,タブレットなど様々なデバイスにも共有できるロジックを作ることができます。 ✓POSサービスAPI(Web API)を介しPOSとして必要な商品追加や支払等の複雑な処理をクラウドPOSが引き受けることにより、 様々なシーンのPOSデバイスが必要なWeb APIを呼び出して決済完了~取引情報の生成を簡単に行うことができます。 Function App単 位でスケールで き Azure Cosmos DBAzure Functions HTTP Trigger クラウドPOS カート取引作成/情報取得 商品追加(PTU)/削除 取引確定/中止 POSサービスAPI(Web API)デバイス カートPOS ECサイト AIカメラ タブレットPC その他デバイス(BOX等) 取引確定/中止 取引確定/中止
  • 18. ✓ クラウドPOSは以下の3レイヤから構成され、Smart Store Platform では中間のPOS Service Layerを提供します。 ◼ Backoffice Layer :マスタ・在庫の管理等を行います ◼ POS Service Layer :取引などのPOSのサービスレイヤにて提供です ◼ UI/UX/Device Layer:店舗の形態により自由にカスタマイズ可能なレイヤーです ✓ 中間層であるPOS Service LayerがPOSの複雑な処理を一元管理するため、UI/UXの種類が変わってもカスタマイズ箇所が限定的になる 為、短いサイクルでサービスの提供が可能となります 2-6.クラウドPOSの構成レイヤ BOX管理 デバイス(BOX)管理 デバイス(カメラ)管理 ハード筐体 カメラ ECサイト タブレットPOS UI/UX Layer マスタ管理 在庫管理 ク ラ ウ ド P O S の 構 成 レ イ ヤ 決済管理 BI 商品 MD リアル在庫 受発注 商品 MD ETL PowerBI POS Service Layer Back Office Layer マスタ照会 カート管理 決済 取引管理 POSサービス
  • 19. 分析/可視化 (Power BI等) 2-7. Azure上に構成するクラウドPOSの利点 ✓ Azureを利用することにより、 Back Office Layerに以下のようなサービスを簡単に構築することが可能です。 ✓例えば、集計や月間売上などの分析を実施するために、Data Factory+Data WarehouseやFeed(Cosmos DB)+SQL Databaseを 用いて構築することが可能です。 集計サービス 分析サービス POSサービスAPI 取引ログ カート取引作成/情報取得 商品追加(PLU)/ 削除 小計 支払追加 取引確定/中止 Change
  • 21. 3-18. Smart Camera (AI防犯カメラ) 概要 ✓ ディープラーニングベースの画像認識エンジンにより、防犯カメラ映像を分析可能なエッジデバイスです。本リファレンスアーキテクチャでは、エッジ 用の高速推論チップを活用することで、高速・高精度な人物検出、人物トラッキング、顔検出、顔からの性別・年齢推定を実現しています。 ✓ エッジデバイスでの画像認識結果は、Cosmos DBに格納されます。当該格納されたデータは、ダッシュボード上にて人流分析や客層分析結 果として表示が可能です。 ✓ エッジデバイス上で動作する画像認識モジュールは、Azure IoT Hubを利用して、デプロイ・実行・停止の制御が可能です。例えば本アーキテ クチャの画像認識モジュールをリプレースすることで、商品認識等、別用途の分析も可能です。 Azure IoT Edge Runtime 人物検出 トラッキング 顔検出 性・年齢 推定 防犯カメラ 映像 Cosmos DB 画像認識結果を ダッシュボード表示 IoT Hub 画像認識モジュールの デプロイ・実行制御
  • 22. 3-19. Smart Camera (AI防犯カメラ) 全体構成図 Container registry コンテナ管理 ソフトウェアランタイム環境 Raspberry Pi 3B+ カメラ 高速推論チッ プ Azure IoT Edge Runtime ビデオ管理 モジュール 推論チップ管理モ ジュール Docker 画像認識モジュール ハードウェア Stream Analytics データ中継 Cosmos DB データ保存 Container instances サーバデプロイ IoT Hub モジュール管理
  • 23. ✓ エッジデバイスの全て市販のハードウェアで構成されています。このため、誰でも安価かつ簡単に購入・作成可能です ✓ 安価なRaspberry Pi 3B+ をベースにしています。 ✓ Raspberry Pi カメラモジュールV2にて、エッジデバイスに映像を入力可能です。 ✓ 市販のエッジ用高速推論チップ(Movidius NCS2)を利用した、高速なCNN(畳み込みニューラルネットワーク)ベースの人物検出 が可能です。 3-20. Smart Camera – ハードウェア機能と特長 エッジデバイス内容物
  • 24. ✓ エッジデバイスにDockerエンジン及びAzure IoT Edge Runtime搭載。これにより、Azure IoT Hubを利用した、パワフ ルかつ容易なモジュールの管理・制御を実現しています。 3-21. Smart Camera – ソフトウェア機能と特長 (1)
  • 25. ✓ 画像認識モジュール ✓ エッジ用の高速推論チップを利用した防犯カメラ映像分析を行います。本アーキテクチャではカメラ映像からの人物 検出、人物トラッキング、顔検出及び顔からの性別・年齢推定を実現しています。 ✓ モジュールのデプロイ・実行・停止・更新はAzure IoT Hubによって管理、制御されています。モジュールを差し替 えることで、例えば商品認識等の別用途の分析も可能になります。 3-22. Smart Camera – ソフトウェア機能と特長 (2)
  • 26. ✓ 推論チップ管理モジュール ✓ 市販の高速推論チップを利用するためのライブラリ及びそのチップに特化したプログラムを搭載しており、画像認識 タスクを高速に行います。(本アーキテクチャでは推論チップとしてIntel社のMovidius NCS2を使用しています) ✓ ビデオ管理モジュール ✓ エッジデバイス自身のカメラ、ビデオファイル、RTSP対応の防犯カメラと多彩な入力ソースに対応しています。 ✓ 入力映像をバッファリングし、推論チップの処理能力に応じた逐次処理を行います。例えば開店時間の録画映像を、 閉店時間後の時間を利用して処理を完了させる、といったことも可能です。 3-23. Smart Camera – ソフトウェア機能と特長 (3)
  • 27. ✓ エッジデバイス、集計サーバ及びコンテナの管理をAzureクラウド上で一元化し、管理コストを低減します。 ✓ Azure IoT Hubを通して、エッジデバイスの状態確認及びエッジデバイス上で走るモジュールの管理ができます。 ✓ 画像認識モジュールによる認識結果は、Azure Stream Analyticsを経由し、Azure Cosmos DBに保存されます。 ✓ Azure Container Instancesによって集計サーバを立ち上げ、保存された認識結果を集計し、各カメラの通過人数及 び年齢性別分布を図示するダッシュボード機能を提供します。 ✓ Azure Container Registryによって、エッジデバイスモジュール及び集計サーバの元となるコンテナを管理します。 3-24. Smart Camera – サーバサイド機能と特長 カメラ 日付選択 各カメラ通過人数 カメラ毎 年齢・性別分布
  • 28. 3-25. Smart Camera – 参考ドキュメント ✓ Azure IoT Hub / IoT Edge https://docs.microsoft.com/ja-jp/azure/iot-hub/ https://docs.microsoft.com/ja-jp/azure/iot-edge/ ✓ Azure Stream Analytics https://docs.microsoft.com/ja-jp/azure/stream-analytics/ ✓ Azure Cosmos DB https://docs.microsoft.com/ja-jp/azure/cosmos-db/ ✓ Azure Container Instances https://docs.microsoft.com/ja-jp/azure/container-instances/ ✓ Azure Container Registry https://docs.microsoft.com/ja-jp/azure/container-registry/
  • 30. 4-1. サンプル実装(業務シナリオ ): ユースケース ✓ オフィスなどで、店員がいなくても、商品販売が可能な販売方法をユースケースとしました。(オフィス内、コンサート会場物販、店舗省スペース) 1.Boxオープン Boxに表示されるQRコードをスマホで読み取ることにより、Boxのドアの鍵を開け、スマホからはお客様のチェックインができます。 2.商品登録 商品をBoxから取り出す状態を商品画像認識により、商品特定を行い、商品登録を行います。そしてその商品登録状態をスマホ に表示する。さらに、在庫の更新もリアルタイムに行い、店舗スタッフが補充等の対応にすばやく行えるように致します。 3.買物終了 Boxのドアを閉めることにより、買い物の終了として、決済を完了します。(今回決済自体はダミー実装になります)。 顧客 1.ボックスオープン 2.商品取り出し 3.ボックスクローズ Box
  • 31. 4-2. サンプル実装 (全体像): ユースケース Box状態管理 統合商品マスタ POS リアルタイム在庫管理 Push 通 知 サ ー ビ ス 顧客アプリ用BFF バックオフィス用BFF Smart BOX モニター Web ショッピングカート Azure IoT Device SDK Azure Functions Azure Functions Azure Functions Azure Functions Azure Functions Azure Functions App Center SQL DBCosmos DB Cosmos DBBlob 商品API 商品データ 商品イメージ 在庫トランAPI 在庫イベントソース 在庫データマート 在庫モニターAPI カートAPI IoT Hub Boxイベント通知 Azure Functions IoT Hub 店舗PF テナント別機能PF IoT-PF Azure Functions Cosmos DB 各種データ
  • 32. 4-3. サンプル実装(Microsoft Azure) : ユースケース POS 顧客用アプリ Android/iOS Box状態管理 1.ボックスオープン 2.商品取り出し 3.ボックスクローズ IoT Hub 統合商品マスタ Azure Functions Cosmos DB Blob 商品API 商品データ 商品イメージ リアルタイム在庫管理 Azure Functions Azure FunctionsSQL DB Cosmos DB 在庫トランAPI 在庫イベントソース 在庫データマート 在庫モニターAPI 顧客 バックオフィス Azure Functions バックオフィス用BFF Android/iOS Webモニター Azure Functions 顧客アプリ用BFF Box Azure Functions Push通知 ショッピングカートAPI 商品登録一覧 レシート 買物開始 Boxオープン状態 商品変動状態 Boxクローズ状態 カートAPI呼び出し プッシュ情報送信 モバイルデバイスへの通知 在庫情報参照 在庫情報取得 商品情報取得 商品情報取得 在庫トラン カートAPI呼び出し BFF呼び出し Azure Functions Cosmos DB 各種データ カートAPI
  • 33. 4-4. サンプル実装 (Device/Smart Box): ユースケース 1.ボックスオープン 2.商品取り出し 3.ボックスクローズ 顧客 商品登録一覧 レシート 買物開始 顧客用アプリ Android/iOS Box POS QRコードから Box IDを取得する Box ID とアプリ固有IDを通知し、取引開始を通知する カート更新要求を通知する 開錠し、画像解析を開始する 商品が取り出されたことを通知する PUSH カート情報を取得する 取引開始 カート更新 取引終了を通知する 扉が閉じたことを通知する PUSH レシート情報を取得する レシート表示
  • 34. Box状態管理 Smart BOX Azure Functions IoT Hub IoT Hub IoT-PF IoT Edge Dockerコンテナ AIによる画像認識 カメラからの画像スオリーミング IoT Device Azure IoT Device SDK BOXの各種デバイス (扉、鍵、LED、LED等)カメラからの画像ストリーミング D2Cによる、デバイス状態通知 C2Dによる、デバイス制御 デバイス制御 AI開始/終了 イベントトリガ BOX内在庫差分通知 4-5. サンプル実装 (Device/Smart Box): ユースケース Azure IoT Device SDK Azure IoT Device SDK Dockerコンテナ カメラ画像の プレフィルタ Azure IoT Device SDK AIによる画像認識 モジュール管理 カメラ画像プレフィ ルタモジュール管理 ドア状態等通知 及び 鍵、LED等デバイス制御
  • 36. 5-1. Smart Camera サンプル実装: ユースケース 本Smart Cameraシステムを店舗内に設置し、人流分析と客層分析を行う際の処理の流れについて説明します。 1.エッジデバイス設置 既存の防犯カメラと同じ要領でエッジデバイスを設置します。顔を真正面から捉えられる位置、例えばエントランスに 水平に近い角度で設置すると、顔の検出が容易になり、客層分析の精度が上がります。 2.システム起動 Azureクラウドを通してエッジデバイス上に画像認識用のアプリケーションをデプロイして実行します。これにより、 エッジデバイス側で画像認識が開始され、認識結果がクラウド上に伝送されます。また、Azureクラウド上に集計サーバを立ち上げます。 3.分析結果確認 集計サーバのURLにアクセスし、ダッシュボードにて人流・客層の分析結果を確認します。 エッジデバイス設置 システム起動 分析結果確認
  • 37. 5-2. Smart Camera サンプル実装: シーケンス図 IoT Hub Stream Analytics Cosmos DB カメラから撮った フレーム画像 ローカルクラウドエッジ
  • 38. クラウド側エッジ側 5-3. Smart Camera サンプル実装: データフロー Container registry Cosmos DB Stream Analytics ビデオ管理 モジュール ビデオデータ リクエスト ダッシュボード Container instances コンテナを提供 結果データ 結果データ Raspberry Pi カメラ 高速推論 チップ Azure IoT Edge Runtime Docker 画像認識 モジュール フレーム画 像 推論チップ管理モ ジュール フレーム画 像 検出・推定結 果 検出・推定結 果制御 認識結果 結果 データ 集計結果 IoT Hub コンテナを提供 デプロイ デプロイ
  • 40. サーバレス API 、 POS サービス ・・・ Azure Functions BOX 管理サービス ・・・ IoT Hub 、 IoT Edge ー商品画像認識 ・・・ Tensor Flow 在庫管理、商品マスター ・・・ Azure SQL Database 、 Azure Cosmos DB 使用されている主なサービス
  • 41. Azure IoT サービス 一般構成例 IoT Hub を中心に, 用途に応じた 多様なサービスを組み合わせ可能 Microsoft Azure社内 アラート配信 ダッシュボード(カスタム) AI モデル作成 BIダッシュボード ビッグデータ分析 時系列データ 可視化 予測AI
  • 42.
  • 43. IoT Hub の基本機能 IoT Hub1 IoT Hub1 IoT Hub1 Device Send Device-to-Cloud Receive Cloud-to-Device Receive Device-to-Cloud Send Cloud-to-Device Message, Receive Message Delivery Ack Device Identity Management IoT Hub Resource Provider Resource Provider Endpoint ①新規デバイスの登録 ②デバイスからクラウドへの データ送信 ③クラウドでのデバイスからの データ受信 ④クラウドからデバイスへの コマンド送信 ⑤デバイスでのクラウドからの コマンド受信 ⑥クラウドでのデバイスの コマンド受信確認Event Hubを内包
  • 44. IoT Hub 全体像 Devices RTOS,Linux,Windows,Android,iOS Field Gateway IoT Hub • 双方向通信 • 1千万台以上のデバイス • 遠隔測定入力 • コマンドと制御 • デバイス登録とアイデンティティ • デバイス管理 • HTTP/AMQP • プロトコルの拡張サポート / MQTT Cloud Protocol Gateway 組込み機器向けSDK • C# • C/C++ • Java • JavaScript
  • 45. デバイスを IoT Hub に接続する Azure デバイス IoT Hub 接続用ライブラリを オープンソースで公開 • OS • ミドルウェア • 言語 http://github.com/azure/azure-iot-sdks http://azure.microsoft.com/develop/iot/get-started
  • 46. 46 デバイス管理 ① Azure IoT Hub のアーキテクチャ データ送受信 ⚫ マルチ プラットフォーム / マルチ ランゲージのデバイス ライブラリを使用した、セキュアで簡単なデバイスの接続 ⚫ スケーラビリティと信頼性に優れた、デバイスとクラウド間の双方向メッセージング デバイス管理 ⚫ デバイスごとのセキュリティ資格情報とアクセス制御を使用した、通信のセキュリティ保護 ⚫ デバイス ツインによるプロパティ同期とダイレクト メソッドによるリモートからの処理要求 デバイス ID 管理 メッセージング(受信) メッセージング(送信) デバイス ツイン管理 ダイレクト メソッドの起動 ジョブ管理 モニタリング イベントの受信 ファイル受信 IoT Hub メッセージング (受信) メッセージング (送信) ファイル アップロードの開始 デバイス ツイン プロパティの同期 ダイレクト メソッド要求の受信 データ送受信
  • 47. 47 Pricing and scale tier 7 種類の価格レベル ⚫ Azure サブスクリプションに最大 10 個の IoT Hub と最大 1 個の Free ハブを作成可能 ⚫ 1 つの IoT Hub に接続できるデバイスの最大数:500,000 ⚫ この制限を引き上げる場合、Microsoft サポートにお問い合わせください Tier 価格レベル ユニットあたりの持続送信レート ユニット数 ユニットあたりの月額価格 (東日本) Free F1 8,000 メッセージ/日 (平均 5.6 メッセージ/分) 1 無料 Basic B1 40 万 メッセージ/日 (平均 278 メッセージ/分) 1~50 ¥1,120 B2 600 万メッセージ/日 (平均 4,167 メッセージ/分) 1~50 ¥5,600 B3 3 億件のメッセージ/日 (平均 208,333 メッセージ/分) 1~50 ¥56,000 Standard S1 40 万 メッセージ/日 (平均 278 メッセージ/分) 1~50 ¥2,800 S2 600 万メッセージ/日 (平均 4,167 メッセージ/分) 1~50 ¥28,000 S3 3 億件のメッセージ/日 (平均 208,333 メッセージ/分) 1~10 ¥280,000
  • 48. 48 Basic と Standard の相違点 Standard レベルではすべての機能が利用可能 ⚫ セキュリティ機能と認証機能は、どちらのレベルも同等 機能 Basic Standard device-to-cloud テレメトリ 〇 〇 デバイスごとの ID 登録 〇 〇 HTTP、AMQP、MQTT プロトコル 〇 〇 メッセージ ルーティング、Event Grid の統合 〇 〇 Azure IoT Hub Device Provisioning Service を使用したデバイスのプロビジョニング 〇 〇 監視と診断 〇 〇 cloud-to-device メッセージング 〇 デバイス ツイン、モジュール ツイン、およびデバイス管理 〇 Azure IoT Edge 〇
  • 49. 49 IoT Hub エンドポイントとアクセス許可 (1/2) メッセージの送受信で使用される IoT Hub エンドポイント アクセス許可 アクセス許可の種類 説明 ① デバイス接続 (DeviceConnect) ※ このアクセス許可はデバイスごとに設定する ⚫ デバイス向けの通信エンドポイントへのアクセスを許可する ⚫ D2C メッセージの送信と、C2D メッセージの受信のアクセス許可を付与する場合に使用 ⚫ ファイル アップロード実行のアクセス許可 ② サービス接続 (ServiceConnect) ⚫ クラウド サービス向けの通信エンドポイントと監視エンドポイントへのアクセスを許可する ⚫ D2C メッセージの受信、C2D メッセージの送信、対応する配信確認メッセージの取得のアクセス許可をバックエン ド クラウド サービスに付与する場合に使用 ⚫ ファイル アップロードの配信確認メッセージの取得 IoT Hub D2C メッセージ送信 C2D メッセージ受信 ① デバイス接続 ファイル アップロードの配信確認 C2D メッセージ送信 ACK 受信 D2C メッセージ受信 ② サービス接続 ファイル アップロードの開始 <IoT Hub ホスト名> .azure-devices.net
  • 50. 50 IoT Hub エンドポイントとアクセス許可 (2/2) デバイス管理で使用される IoT Hub エンドポイント 4 種類のアクセス許可 アクセス許可の種類 説明 ① デバイス接続 (DeviceConnect) ⚫ デバイス ツインの必要なプロパティ通知の受信のアクセス許可 ⚫ デバイス ツインの報告されるプロパティの更新のアクセス許可 ② サービス接続 (ServiceConnect) ⚫ タグおよび必要なプロパティを更新するためのデバイス ツインのアクセス許可 ⚫ 報告されるプロパティの取得のアクセス許可 ⚫ クエリ実行のアクセス許可 ③ レジストリ読み取り (RegistryRead) ⚫ デバイス ID レジストリへの読み取りアクセス権を許可する ④ レジストリ書き込み (RegistryReadWrite) ⚫ デバイス ID レジストリへの読み取りと書き込みのアクセスを許可する ① デバイス接続 デバイス ID 管理 ② サービス接続 デバイス ツイン管理 ダイレクト メソッドの起動 デバイス ツイン プロパティの同期 ダイレクト メソッド要求の受信 ③ レジストリ読み取り、④ レジストリ書き込み <IoT Hub ホスト名> .azure-devices.net IoT Hub
  • 51. 51 IoT Hub のホスト名 対象の IoT Hub の [概要] ブレードで [ホスト名] を確認する Azure IoT Hub ホスト の URL
  • 52. 52 対象の IoT Hub の [共有アクセスポリシー] ブレードを選択 ⚫ 5 種類のビルトインされたポリシー ⚫ 管理用アプリから IoT hub にデバイス登録する場合、デバイス ID 管理可能な 「iothubowner」 ポリシーの接続文字列を使用する ⚫ 管理用アプリから IoT hub に接続して、受信データを読み取る場合、「service」 ポリシーの接続文字列を使用する 共有アクセス ポリシー 接続文字列
  • 53. 53 Azure ポータルからのデバイス登録 対象の IoT Hub の [デバイス エクスプローラー] ブレードを選択し、[追加] をクリック ⚫ デバイスに割り当てるデバイス ID を入力して、保存する ⚫ 3 種類の認証:対称キー、X.509 自己証明書、 X.509 CA 証明書 キーの自動生成を指定 任意のデバイス ID を入力 認証の種類を選択 参照:https://docs.microsoft.com/ja-jp/azure/iot-hub/iot-hub-devguide-identity-registry
  • 54. 54 デバイスごとの接続情報 対象の IoT Hub の [デバイス エクスプローラー] ブレードを選択 ⚫ デバイスから IoT Hub に接続する場合、 接続情報に デバイス ID が必要なため、 デバイス エクスプローラーから対象デバイスの [接続文字列] を取得して、使用する デバイス ID を選択 デバイス ID を含む接続情報 接続を許可するデバイスは有効化しておく
  • 55. 55 IP アドレスによる IoT デバイスのフィルタリング IP フィルター ⚫ 1 つの IPv4 アドレスか、または CIDR 表記法で記述した IP アドレス ブロックを指定 ⚫ 拒否または、許可の設定が可能 ⚫ 指定された範囲の IP アドレスからのトラフィックのみを受信し、それ以外のトラフィックをすべて拒否する場合 ⚫ IoT Hub の管理者によって疑わしいと識別された IP アドレスからのトラフィックを拒否する場合 拒否と許可の設定が可能
  • 56. 56 [参考] Raspberry Pi Azure IoT Online Simulator node.js 版オンライン シミュレーター デバイスごとに割り当てられた接続文字列 https://docs.microsoft.com/ja-jp/azure/iot-hub/iot-hub-raspberry-pi-web-simulator-get-started
  • 58. 58 IoT Hub コンシューマー グループ バックエンドに対し、パブリッシュ/サブスクライブのメカニズムを提供 ⚫ イベント データを読み取るエンティティをイベント コンシューマーと呼ぶ コンシューマー グループに対するアクティブな受信者は 1 つだけにする ⚫ 必要に応じて追加する 既定のコンシューマー グループ ⚫ $Default Function App Stream Analytics IoT Hub function streamanalytics $Default カスタム アプリケーション コンシューマー グループ
  • 59. 59 ① Azure Function App によるストリーム データの格納、および通知 イベント駆動のサーバーレス アーキテクチャ ⚫ 100 万回/月の実行までは無料、以降は使用した分のみ課金 (分単位) ⚫ C#、F#、Node.js、Java、Python、PHP、Batch、Bash による関数の記述 ⚫ NuGet、NPM のサポートにより、使い慣れたモジュールが参照可能 Function App Event HubsIoT Hub 出力バインドトリガー バインド HTTP Generic Webhook Service Bus Queue Service Bus Topic BLOB Queue Timer Service Bus Queue Service Bus Topic BLOB Queue Event Hubs HTTP Table Mobile App Notification Hub Cosmos DB Send Grid 入力からのイベントをトリ ガーにデータ処理、通知処 理などを実行 Graph Events Graph Events
  • 60. 60 [関数] ⇒ [新しい機能] ⇒ [IoT Hub (Event Hub)] テンプレートを選択 ⚫ C#、F#、JavaScript から選択 ストリーム データを Blob に保存する IoT Hub トリガーの作成
  • 61. 61 ② Azure Stream Analytics によるリアルタイム分析 イベントのデータ ストリームを Stream Analytics ジョブで処理する ⚫ ジョブに入力、クエリ、出力を定義する ⚫ 入力: Azure データ ストリーム ソース (Event Hubs、IoT Hub、Blob Storage) からのデータ ストリーム ⚫ クエリ:入力データを変換、集計する SQL ライクなクエリ言語の記述が可能 データの時間的側面を処理するための言語構造を提供 (System.Timestamp) 静的な参照データを結合させることが可能 ⚫ 出力:ジョブの処理結果 Event Hubs IoT Hub Blob Event Hubs SQL Database Table Power BI Stream Analytics Blob Cosmos DB Function App Data Lake
  • 62. 62 Azure Stream Analytics クエリ言語 クエリの基本要素 APPLY CASE CREATE TABLE FROM GROUP BY ⚫ウィンドウ処理 ⚫Tumbling Window ⚫Hopping Window ⚫Sliding Window HAVING INTO JOIN SELECT UNION WHERE WITH レコード関数 GetRecordProperties GetRecordPropertyValue 時間と日付関数 DATEADD DATEDIFF DATENAME DATEPART DATETIMEFROMPARTS DAY MONTH YEAR 文字列関数 CHARINDEX CONCAT LEN LOWER PATINDEX REGEXMATCH SUBSTRING UPPER 数学関数 ABS CEILING EXP FLOOR POWER SIGN SQUARE SQRT 地理空間関数 CreateLineString CreatePoint CreatePolygon ST_DISTANCE ST_OVERLAPS ST_INTERSECTS ST_WITHIN 参照:https://msdn.microsoft.com/library/en-us/Dn834998.aspx 分析関数 ISFIRST LAG LAST 変換関数 CAST GetType TRY_CAST 配列関数 GetArrayLength GetArrayElement GetArrayElements メタデータ入力関数 GetMetadataPropertyValue 集計関数 AVG COUNT Collect CollectTOP MAX MIN Percentile_Cont Percentile_Disc STDEV STDEVP SUM TopOne VAR VARP
  • 63. 63 ストリーム分析機能の比較 Azure Stream Analytics と HDInsight Apache Storm 参考:https://azure.microsoft.com/ja-jp/documentation/articles/stream-analytics-comparison-storm/ Azure Stream Analytics HDInsight Apache Storm オープンソース NO YES 言語 SQL Java、C# カスタム コードによる拡張 NO YES 入力データソース Event Hubs、IoT Hub、Blob Event Hubs、サービス バス、Kafka 入力データ形式 Json、CSV、Avro いずれの形式もカスタム コードを使用して実装可能 出力 SQL Database、Blob、テーブル、Event Hubs、 Service Bus キュー、Service Bus トピック、 Cosmos DB、Power BI SQL Database、Blob、Event Hubs、Cosmos DB、Power BI、Hbase などの コネクターを提供 カスタム コネクターの記述が可能 Microsoft によるサポート YES YES 料金 処理するデータ ボリュームと必要なストリーミング ユニット 数によって請求される 購入単位はクラスター ベースで、デプロイされるジョブとは無関係に実行されるク ラスターの実行時間に基づいて請求される
  • 64. 64 Azure Time Series Insights 4 つの特徴 ⚫ クラウド ゲートウェイ (Azure IoT Hub、Azure Event Hubs) への接続 ⚫ Time Series Insights はこれらのイベント ソースに簡単に接続して、メッセージや、クリーンな行と列でデータを保持 する構造から、JSON を解析します。 メタデータとテレメトリを結合し、単票形式のストア内のデータにインデックスを 作成します。 ⚫ データ ストレージの管理 ⚫ メモリと SSD に最大 400 日間データを格納 ⚫ 必要に応じて、何十億ものイベントに対する対話形式の照会を数秒で行うことができます。 ⚫ TSI エクスプローラーによるデータの可視化 ⚫ TSI エクスプローラーと API の両方に対応するクエリ サービスの提供 ⚫ 簡単に統合できる API で時系列データをカスタム アプリケーションに埋め込むことができます。 デモ:https://docs.microsoft.com/ja-jp/azure/time-series-insights/tutorial-create-populate-tsi-environment https://github.com/Azure/azure-iot-pcs-remote-monitoring-dotnet/wiki/Developer-Reference-Guide#ssh-into-a-vm
  • 65. 65 [参考] Azure Time Series Insights 分析、ストレージ、および可視化サービスを完全に管理 ⚫ 何十億というイベントを同時に探索し、分析することを簡単に実現 ⚫ アクションにつながるインサイトを数秒で発見 ⚫ 秒単位で開始し、分単位で IoT スケールデータのグローバル ビューを作成 参考:https://azure.microsoft.com/ja-jp/services/time-series-insights/
  • 66. IoT Hub デバイス管理 Microsoft Azure Device Registry Service List 論理モデル プロビジョニング 蓄積データ 最新データ (状態) ←Endpoint、Token Device Info→
  • 67. 67 IoT デバイスのリモート管理を実現する 2 種類のエンドポイント ⚫ デバイス ツイン ⚫ デバイス固有のメタデータをクラウドに格納し、クラウドとデバイス間でプロパティを同期させることができる ⚫ Desired と Reported の 2 種類の同期プロパティとクラウドのみで保持される Tags 情報 ⚫ デバイスがオフラインであっても、属性情報をクエリ可能 ⚫ ダイレクト メソッド ⚫ 同期型のデバイス操作コマンド実行 IoT Hub ① IoT デバイス管理のためのエンドポイント デバイス ID 管理 メッセージング(受信) メッセージング(送信) デバイス ツイン管理 ダイレクト メソッドの起動 ジョブ管理 モニタリング イベントの受信 ファイル受信 メッセージング (受信) メッセージング (送信) ファイル アップロードの開始 デバイス ツイン プロパティの同期 ダイレクト メソッド要求の受信 デバイス管理 デバイスツイン ダイレクトメソッド デバイス管理
  • 68. 68 デバイス管理のためのエンドポイント通信 デバイス ツインとダイレクト メソッドの通信方向 IoT デバイス デバイス ツイン properties desired reported IoT Hub デバイス ツイン tags properties desired reported ダイレクト メソッド 参考:https://docs.microsoft.com/ja-jp/azure/iot-hub/iot-hub-devguide-device-twins メソッドの起動 書き込み・読み取り 書き込み・読み取り 読み取り バックエンド アプリ 応答 デバイス アプリ 書き込み・読み取 り・変更通知 書き込み・読み取り メソッドの実行 実行要求
  • 69. 69 ② デバイス ツイン デバイス ツインの情報を使用したクエリの実行 ⚫ 既定のデバイス ツイン json データ IoT Hub デバイス ツイン tags properties desired reported ダイレクト メソッド
  • 70. 70 ③ ダイレクト メソッド ダイレクト メソッドの呼び出し ⚫ バックエンド アプリからデバイスのメソッドを呼び出し、デバイスを再起動する例 public static async Task StartReboot() { client = ServiceClient.CreateFromConnectionString(connString); CloudToDeviceMethod method = new CloudToDeviceMethod("reboot"); method.ResponseTimeout = TimeSpan.FromSeconds(30); CloudToDeviceMethodResult result = await client.InvokeDeviceMethodAsync(targetDevice, method); } Client.SetMethodHandlerAsync("reboot", onReboot, null).Wait(); デバイスの再起動を呼び出す非同期メソッドの定義呼び出されたメソッドに delgate を登録し、待機状態にする デバイス アプリ メソッドの実行 IoT Hub ダイレクト メソッド 応答 メソッドの実行要求 バックエンド アプリ メソッドの起動
  • 71. 71 デバイス ツインを使用したデバイス管理 デバイスの再起動 ⚫ バックエンドアプリからデバイス再起動を要求 ⚫ デバイス ツイン情報に履歴を保存 構成管理 ⚫ 構成の初期化 ⚫ 構成の設定とデバイス ツイン情報の更新 ソフトウェアの更新 ⚫ デバイスへのソフトウェアのダウンロードと適用 ⚫ デバイス ツイン情報の更新 ファームウェアの更新 ⚫ デバイスへのファームウェアのダウンロードと適用 ⚫ デバイス ツイン情報に履歴を保存 IoT Hub デバイス ツイン tags properties desired reported ダイレクト メソッド
  • 72. 72 Device app Back end デバイス ツインを使用したファームウェアの更新フロー 長時間のメソッド実行時、デバイス ツインで、進捗状況を確認する ファームウェア更新の起動ファームウェア更新処理 2 ファームウェア イメージの ダウンロードとレポート イメージの適用と ステータスの記録 再起動と再接続 レポート情報の更新を確認4 レポート情報の更新を確認 3 5 6 IoT Hub デバイス ツイン properties 参考:https://docs.microsoft.com/ja-jp/azure/iot-hub/iot-hub-csharp-node-firmware-update バックエンド アプリIoT デバイス ダイレクト メソッド1 reported
  • 74. ユースケース Edge Computing Power Vibration Fluid Pressure Temperature 2.5MB / sec 150MB / min 9GB / hour 216 GB / Day 80KB / sec 4.8MB / min 288MB / hour 6.912GB / Day Extracted Data Data Analysis
  • 75. 優れたフィールド サービスを提供 「このソリューションのおかげで、製造プロセスを変革できました。お客様の現場から 営業のやり取りまで、あらゆる段階で工具、機械、プロセスを連携させることで、 かつてないレベルのフィールド サービスを提供できるようになりました。」 Klas Forsström 氏 Sandvik Coromant、社長 目的 Sandvik Coromant は、 切削工具の製造と金属切削 業界向けのサービスを展開。 1 つ上のサービスを提供する ことを目指している。 戦術 マイクロソフトの テクノロジを活用し、 温度、負荷、振動などの データを機械加工プロセス からリアルタイムで収集し、 そのデータをクラウドに 接続するソリューションを 開発する。 結果 • 顧客にフィードバックを瞬時に 提供して効率を向上 • 数百万ドルのコスト削減を実現
  • 76.
  • 77.
  • 78. 78 フィールド側に設置するインテリジェントなエッジ デバイスのためのプラットフォーム ① IoT Edge のロードマップ ● オープンソースのゲートウェイ SDK ● レガシー デバイスの接続を可能に ● 開発言語:Node.js、Java、C#、C ● パッケージ:NPM、Maven、NuGet ● モジュールによる機能分割 ● オープンソース:https://github.com/Azure/iot-edge ● 公開されているモジュール: • ble • hello_world • Identitymap • iothub • logger • simulated_device • azure_functions • OPC Publisher • OPC Proxy • Modbus • GZip Compression • Proficy Historian • SQLite • Batch/Shred • ZWave ● Azure IoT Hub との統合 • ランタイムによる接続 • IoT Hub からの管理が可能に • デバイス ツイン、モジュール ツイン ● Docker コンテナーによるモジュールの配置 ● Azure サービス互換モジュール • Stream Analytics • Machine Learning • Function App
  • 79. 79 Docker コンテナー ベースのモジュール拡張 ⚫ クラウドで行っていた分析とカスタム ビジネス ロジックをデバイス側で実行可能に ⚫ Linux と Windows のサポート ランタイム ⚫ デバイスにデプロイされたモジュールを管理する Edge Agent とモジュール間の通信を担う Edge Hub で構成される モジュール ⚫ Azure のサービス、サード パーティのサービス、またはカスタム コードを実行する Docker コンテナー Azure IoT Edge Runtime Edge Agent ② IoT Edge v2 とは? Azure IoT Hub IoT デバイス モジュール 1 モジュール 2 モジュール 3 Azure IoT Edge デバイス テレメトリ取得 インサイト アクション Edge Hub インサイトテレメトリ コンテナー コンテナー コンテナー $upstream JSON でルートを定義
  • 80. 80 IoT Edge ランタイム ・IoT Edge ハブ ・IoT Edge エージェント ③ IoT Edge モジュールによる拡張 Azure IoT Edge により、クラウド機能をエッジに拡張 ⚫ クラウドとエッジによるハイブリッドなモノのインターネット (IoT) ソリューションを実現 Azure IoT Hub ローカル ストレージ Stream Analytics ⚫ コンテナー ベース モジュール ⚫ Azure Stream Analytics ⚫ Azure Function App ⚫ Azure Machine Learning ⚫ Microsoft Cognitive Services ⚫ オフライン、および同期されたデバイス ツイン ⚫ ローカル ストレージ ⚫ クラウドからの管理と配置 ⚫ 高可用性と耐障害性 ⚫ リモートからの開発、テストのサポート デバイス ツイン デバイス ツイン Function Machine Learning Cognitive Services モジュール ツイン モジュール ツイン モジュール ツイン モジュール ツイン モジュール ツインモジュール ツインモジュール ツインモジュール ツインモジュール ツイン IoT デバイス コンテナー コンテナー コンテナー コンテナー カスタム コード モジュール ツイン コンテナー Azure IoT Edge ゲートウェイ ④ ⑤ ⑥
  • 81. 81 ④ IoT Edge v2 の構成手順 前提条件 ⚫ Windows 10 (Fall Creators Update:OS ビルド 16299 以降) ⚫ Windows Server (OS ビルド 16299 以降) ⚫ x64 ベース デバイス上の Windows IoT Core (OS ビルド 16299 以降) 1. Docker for Windows のインストール ⚫ https://docs.docker.com/docker-for-windows/install/#download-docker-for-windows より、 Get Docker for Windows (Stable) を選択して、Docker for Windows Installer.exe をダウンロードしてインストールする 2. Python 2.7 のインストール ⚫ https://www.python.org/downloads/ より、 2.7.X を選択し、python-2.7.X.msi をダウンロードしてインストールする 3. IoT Edge 制御スクリプトをダウンロード 参考:https://docs.microsoft.com/ja-jp/azure/iot-edge/quickstart pip install -U azure-iot-edge-runtime-ctl python.exe へのパスを設定
  • 82. ハイパースケールの エンタープライズ グレードの インフラストラクチャ 開発者用ツールおよび サービス データ サイエンスのための オープン プラットフォーム ハードウェア ストレージ管理 ソフトウェア ML および AI プラットフォーム AI アプリケーション (ファーストおよびサード パーティ) コグニティブ サービス Bot Framework Spark AI Batch Training DS VM SQL Server ACS BLOB Cosmos DB SQL DB/DW ADLS CPU FPGA GPU IoT Azure Machine Learning モデルのデプロイおよび管理 機械学習ツールキット 実験の管理、データの準備、 コラボレーション CNTK TensorFlow ML Server Scikit-Learn その他のライブラリ PROSE Docker クラウド - Spark、SQL、その他の エンジン ML Server - Spark、SQL、VM エッジ
  • 83. Transform Data into Intelligence Azure Machine Learning Azure Machine Learning Service Azure Machine Learning Visual Interface GUI でのドラッグ & ドロップコードファースト
  • 84. 機械学習と AI のポートフォリオ いつどれを使用するか? どのエンジンを使用するか? デプロイ対象 どちらの経験を優先するか? 独自に構築するか、事前トレーニング されたモデルを使用するか? Microsoft ML および AI 製品 独自に構築 Azure Machine Learning コードファースト (オンプレミス) ML サーバー オンプレミスの Hadoop SQL Server (クラウド) AML (プレビュー) SQL Server Spark Hadoop Azure Batch DSVM Azure Container Service ビジュアル ツール (クラウド) AML Studio 使用 コグニティブ サービス、ボット
  • 85. 8585 NEW ビデオインデクサー NEW ラボ NEW NEW NEW カスタム カスタム カスタムカスタム カスタム Cognitive Services : 29 種類の API を提供
  • 86. 8686 Challenge Solution Benefits • 時間帯別の来場 者の把握 • 顧客層の把握に よる適切なプロ モーション戦略 の確立 • 「Cognitive Services」と連 携した「アロバ ビューコーロ」 を使用し、来場 者のカウントお よび属性情報を 取得 • 人力による集計作業の コスト圧縮 • プロモーション実施時の 効果測定が実現 • Emotion APIによる感情 値の取得によって顧客満 足度の計測を実現 AI を使った効果測定
  • 87. サイネージ視聴率の各KPIを測定し、OOHの多層的な媒体効果が把握可能 Microsoft x 電通 人工知能型 DOOH 広告ソリューション KPI1 = エンゲージメント KPI2= リーチAKPI5= ポテンシャルリーチ KPI3= リーチB KPI4= リーチC
  • 88. © 2017 Ebiya Ltd. All rights reserved. Challenge • 在庫適正化困難ゆえの 高廃棄コスト • 利益を圧迫する人件費 • 提供までの時間が長い ことによる低い回転率 Solution • 男女比率&入店率&幸 せ度など属性情報含む 来客データ数値化、 機械学習で需要予測 • 需要予測的中率 90% 超、Power BI で視覚化 Benefits • 定量的判断に基づく対処 • 4 年間で売上 5 倍・利益率 12 倍・平均給与 20% Up • 人員配置適正化実現、配膳 スピード改善、回転率向上 来店予測 AI がサービス業における属人的感覚を数値化 データドリブン オペレーションによる個客おもてなしを実現 伊勢の老舗店「ゑびや」のAI活用事例
  • 90. 入店率15.78% 購買率26.9% 女性比率 56.8% (2017/9/1~9/30) 入店率9.63% 購買率22.6% 女性比率 53.6% (2017/10/1~11/22) A 画像解析AIや購入実績を元にA/Bテストを実施 (ゑびや様講演より抜粋) B 効果測定結果 「A」「B」を比較すると「A」のほうが 入店率も購買率も客単価も高かった A B
  • 92. Custom Vision on Kubernetes 92https://github.com/asashiho/ContainerDays1812
  • 96. Windows “Plug and Play” による解決 Capability Model Device Metadata デバイスは Capability Model を公開、それを遵守 Windowsはその Capability Model でデバイスとの対話方法を把握
  • 97.
  • 102. Azureのコンテナー エコシステム IaaSPaaS Azure services SQL Database Redis Cache CosmosDB And more! Partner services OpenShift Pivotal Cloud Foundry Docker Enterprise Edition Mesosphere DC/OS Azure Azure Container Registry (ACR) OSBA Azure Kubernetes Service (AKS) AKS Engine Batch Azure Container Instances (ACI) Virtual Machine Scale Sets (VMSS) Service Fabric Mesh Cluster Virtual kubelet Web Apps for Container ( App Service ) Azure Virtual Machine
  • 103. Decision tree for Azure compute services @ Azure Architecture Center https://docs.microsoft.com/en-us/azure/architecture/guide/technology-choices/compute-decision-tree 新規開発かどうかLift & Shift ? クラウド最適化? コンテナー化可能 Web/APIアプリ Azureコンテナー 関連サービスから選択 制御・自由度? ポータビリティ? HPCワークロード マイクロサービス アーキテクチャ イベント駆動 オーケストレーション が必要 .NET + ステートフル ワークロード Yes Yes No Yes Yes Yes No No No No No Yes Lift&Shift No No No Yes 新規開発既存資産の更新・移行 https://azure.microsoft.co m/overview/containers/ Yes Yes
  • 104. IDC Japan社 2018年 国内クラウドインフラストラクチャに関するユーザー動向調査結果 https://www.idcjapan.co.jp/Press/Current/20180614Apr.html 41% Docker & Kubernetes のモーメンタム Dockerの導入状況に関するユーザー調査結果(調査年別)
  • 106. Lift and shift to containers Microservices Machine learning IoT 既存コードを変更することなくコンテナ化 • コンテナ技術を使用した アプリケーションのモダナイズ • コンテナオーケストレーション による障害リスク低減 • 継続的インテグレーション 継続的デプロイメント Azure Container Registry Existing application Kubernetes cluster Cloud Database Modernized application Modernized application Modernized application CI/CD
  • 107. Lift and shift to containers Microservices Machine learning IoT マイクロサービス型のアプリケーション実行基盤 • マイクロサービスによる独立 したデプロイ • サービスごとのスケーラビリ ティとリソース使用率の向上 • チームでの並行分離開発 Monolithic APP APP APP Microservices Large, all-inclusive app Small, independent services
  • 108. Lift and shift to containers Microservices Machine learning IoT ディープラーニングでの活用 • アプリケーションデプロイの容易 さと高い可用性 • 低レイテンシのデータ処理 • テスト・学習・推論の統合管理 https://github.com/Azure/kubeflow-labs Compute Training data Algorithm GPU-enabled VMs AKS trained model AI model in production Developer <¥> Data Scientist Serve the model
  • 109. Lift and shift to containers Microservices Machine learning IoT IoTのエッジデバイスへのデプロイ • コードの可搬性の高さ • 柔軟な拡張性と管理 • アプリケーションデプロイの 容易さと高い可用性 AKS Database for MySQL Azure Cosmos DB SQL Database IoT Hub IoT Edge devices IoT Edge Connector
  • 110. Azure Container Registry Docker イメージのプライベートレジストリ
  • 111. Azure Container Registry Docker イメージのプライベートレジストリ Docker コマンドライ ンをそのまま使える geo-replicationAzure の全コンテナ サービスをサポート
  • 112. ACR: イメージストレージ https://docs.microsoft.com/ja-jp/azure/container-registry/container-registry-storage • 全てのイメージは保存時に暗号化される • 全てのプラン Basic/Standard/Premium で地理的冗長構成 • Docker, OCI (Open Container Initiative) のイメージフォーマットをサポート • 加えて、Helm チャート をサポート(プレビュー)
  • 113. 1. ある拠点の開発者が、コンテナー イメージを構築す るためにコードをコミットする 2. イメージは DNS に基づいて最も近い ACR リージョ ンにプッシュされる 3. その拠点へのデプロイがトリガーされる 4. ACR は設定されたリージョンへ地理的レプリケー ションを行う 5. もう一方の拠点へのデプロイがトリガーされる 6. 双方の AKS クラスターが contoso.azurecr.io からイ メージをプルする ACR: geo-replication https://docs.microsoft.com/ja-jp/azure/container-registry/container-registry-geo-replication Developer Container image contoso.azurecr.io East US West Europe contoso.azurecr.io contoso.azurecr.io/app:v1 AKS CD ACR contoso.azurecr.io/app:v1 AKSCDACR Geo-Replication ※ Premiumプランでのみサポート
  • 115. Azure Container Instances サーバレスコンテナ環境 GPU 対応のコンテナがサポート az container create ¥ -g aci_grp ¥ --name nginx ¥ --image library/nginx ¥ --ip-address public ¥ –cpu 2 --memory 5
  • 116. Azure Container Instance の料金 高速起動、秒単位課金の威力 • 100 instance • 300 sec = 5 min • Memory 1GB • vCPU x 1 ※ 2019年11月時点
  • 117. Azure App Service PaaS のアプリケーション基盤 ※本リファレンスアーキテクチャーには利用されていないが、有力な選択肢のひとつ
  • 123. 123123 レベル 100 (初級・入門) レベル 200(中級) レベル 300 (Smart Store用) Smart Store Azure 関連トレーニング コース はじめてシリーズ Azure Data and AI IoTで加速する デジタルトランスフォーメーション 営業 Azure Data and AI 商品認識の仕組み(その1) IoT 提供 予定 Azure Data and AI 商品認識の仕組み(その2) AI 提供 予定 ※この他 Azure システム運用、CI / CD 、 Mobile アプリ開発などのコースも計画中 Azure Data and AI オンプレミス SQL Server から Azure 上の SQL サービス利用へのポイントと使い分け! 技術 Azure Data and AI 技術者向けいまさら聞けない 機械学習/AI の基礎 技術 SmartStoreリファレンスアーキテクチャハンズオン(ハッカソン)(2日間) AI,IoT,App,DB Azure Data and AI Azure Cosmos DB の概要を あらためて理解する 技術 Azure Data and AI 商品マスタとトランザクション管理 DB 提供 予定 対面Azure Data and AI 進化を続けるAzure IoT 技術 今日から始める Azure Functions 2.0 技術 Azure App and Infra Azure App and Infra サーバレスアーキテクチャ App SmartStoreリファレンスアーキテクチャトレーニング(2日間) AI,IoT,App,DB はじめてシリーズ SmartStore概要解説 提供 予定 対面
  • 125. ◼ 本書に記載した情報は、本書各項目に関する発行日現在の Microsoft の見解を表明するものです。Microsoftは絶えず変化する市場に対応しなければならないため、ここに記載し た情報に対していかなる責務を負うものではなく、提示された情報の信憑性については保証できません。 ◼ 本書は情報提供のみを目的としています。 Microsoft は、明示的または暗示的を問わず、本書にいかなる保証も与えるものではありません。 ◼ すべての当該著作権法を遵守することはお客様の責務です。Microsoftの書面による明確な許可なく、本書の如何なる部分についても、転載や検索システムへの格納または挿入を 行うことは、どのような形式または手段(電子的、機械的、複写、レコーディング、その他)、および目的であっても禁じられています。 これらは著作権保護された権利を制限するものではありません。 ◼ Microsoftは、本書の内容を保護する特許、特許出願書、商標、著作権、またはその他の知的財産権を保有する場合があります。Microsoftから書面によるライセンス契約が明確 に供給される場合を除いて、本書の提供はこれらの特許、商標、著作権、またはその他の知的財産へのライセンスを与えるものではありません。 © 2016 Microsoft Corporation. All rights reserved. Microsoft, Windows, その他本文中に登場した各製品名は、Microsoft Corporation の米国およびその他の国における登録商標または商標です。 その他、記載されている会社名および製品名は、一般に各社の商標です。