Azure IoT Hubの紹介
2016/4/25 NSStudy No.6
株式会社ネクストスケープ
上坂 貴志(@takashiuesaka)
自己紹介
• 会社
株式会社ネクストスケープ
• 名前
上坂貴志(うえさかたかし)Twitter:@takashiuesaka
• 年齢
44歳
• 好き・興味あり
Microsoft Azure(Microsoft MV for Microsoft Azure)
機械学習
ソフトウェアアーキテクチャ
DDD(Domain Driven Design)
Scrum( 認定スクラムマスター)
• 講演活動
FEST2015 登壇(Channel9で動画公開)
CloudDays2015東京・大阪 登壇
Developers Summit 2015 登壇
MSxNextscape合同 Azure Machine Learningセミナー開催
SANSAN DDD勉強会発表
アプレッソ 最新IT事例セミナー Azure Machine Learning セミナー登壇
• 執筆活動
• 人工知能アプリケーション総覧 寄稿(日経BP社、2015年9月30日発売)
• ITPro:クラウドで機械学習を手近に、Azure Machine Learningの概要
Azure IoT Hubとは
• Microsoft Azureの組み込みデバイスを対象としたデータの送受信用サービス。
• IoT Hub→デバイス、デバイス→IoT HubどちらもOK
• あくまで送受信するだけ。受信データの処理、送信データの作成は別途
• 送受信対象の組み込みデバイスはIoT Hubに登録が必要
• IoT Hub と組み込みデバイスとの接続はAMQP、MQTT、HTTP/1。
• AMQP, MQTTを使えば、IoT Hub ⇔組み込みデバイスがサポートされているので簡単
• HTTP/1もサポートしているけど、IoT Hub → 組み込みデバイスへデータ送信はでき
ない。デバイスからIoT Hubへのポーリングになる。
IoT Hub
組み込みデバイスMicrosoft Azure
AMQP, MQTT, HTTP/1
各種サービス
C, C#, Java, node, PythonのSDKあります。
SDKなくてもRESTAPIで同等の処理が可能です。
Azure IoT Hubの使い方
• 準備
• 組込みデバイスをIoT Hubに登録
• これによって、組み込みデバイスごとにエンドポイントが用意されます
• 組込みデバイスをIoT Hubに接続
• SDK色々あります。(C, C#, Java, Python, Node.js)
• RESTでも通信できます
• 組み込みデバイス → IoT Hub
• 組込み機器からIoT Hubにデータを送信
• IoT Hubにデータ受信登録したサービス側でデータを受信
• IoT HubはEventHub互換のエンドポイントがあるので、それを使用してデータを受信&加工します
• IoT Hub → 組み込みデバイス
• サービス側からIoT Hubを通じて組込み機器にデータを送信
• 組込み機器がIoT Hubを通じて、コマンドを受信
• 組込み機器がコマンドを受信したことを、サービス側でAckとして通知を受ける
• おまけ
• 登録された組込み機器情報の取得
管理ポータルでのGUIサポートがない!
• 登録されているデバイスの一覧とか画面で見たいですよね。(Microsoftらし
からぬ感じ)
• でも大丈夫、GitHub(https://github.com/Azure/azure-iot-sdks/)に公開されているIoT
Hub SDKにツールがあります
• デバイスエクスプローラ
• デバイスの登録・削除
• デバイスから送信されたメッセージのモニタリング
• デバイスへのメッセージ送信
• ※Windowsでしか動きません
• IoTエクスプローラ
• Windows以外の環境用のデバイスエクスプローラ
• GUIではなく、コマンドラインで操作
• Node.jsで作られています
• 組み込みデバイスないとテストできないの?
• いいえ、コンソールアプリでOKです
• Azure IoT Hubのチュートリアル「Get started with IoT Hub」に作り方が載っています(シミュ
レーション対象デバイス アプリの作成)
• https://azure.microsoft.com/ja-jp/documentation/articles/iot-hub-csharp-csharp-
getstarted/#-2
• C#, Java, Node.jsの作り方が載っています
Azure IoT Hub概要図
IDレジストリ
Queue
IoT Hub
Queue
Ethernet,WiFi
TCP/IPで接続可能
なデバイス
Private Area
Networkのこと。
(Bluetooth等)
TCP/IPで接続も
できないような貧
弱なデバイス
クラウドとデータ送受信するためのGateway。デバイスか
らのデータを保存したり、フィルタリングしたり。
メインの役割はプロトコルの変換。
Field Cloud
IDによるデバイス管理
データの受信は
EventHubs互換の
エンドポイントで
デバイスへデータ送信時、メッセージは
Queueへ格納されてから送信される
※デバイスがオフライン時のデータは送
信されない。TTL過ぎた未送信メッセー
ジは削除される
AMQP,HTTP,MQTT
が使える
IoT Hub デバイス SDK
Patitionがある
1IotHubユニットごとに500デバイスが接続可能。
最大2000ユニットまで拡張できる。
(100万デバイスが同時接続できる)
https://azure.microsoft.com/ja-jp/documentation/articles/iot-hub-what-is-iot-hub/
カスタムプロトコル
用の受け口を作れる
• Azure IoT Suiteは、Azure IoT Hubを中核に据えた複数のAzureサービ
スから構成済みのすぐ使えるIoTサービス。
Azure IoT Suiteっていうのもあるけど?
Azure IoT Suite
DocumentDB
Blob Storage
保管
StreamAnalytics
リアルタイム処理
Machine Learing
HDInsight
分析
IoT Hub
WebApps PowerBI
結果の表示
構成済みのソリューションは、現在のところ
• リモートモニタリング
• 予兆保全
しかありません。これをカスタマイズは可能ですが、結局IoT Hub を触ることに。
意外と簡単に始められます
Microsoft も IoT 頑張ってるよ!
ご清聴ありがとうございました

Ns study Azure IoTHub紹介

  • 1.
    Azure IoT Hubの紹介 2016/4/25NSStudy No.6 株式会社ネクストスケープ 上坂 貴志(@takashiuesaka)
  • 2.
    自己紹介 • 会社 株式会社ネクストスケープ • 名前 上坂貴志(うえさかたかし)Twitter:@takashiuesaka •年齢 44歳 • 好き・興味あり Microsoft Azure(Microsoft MV for Microsoft Azure) 機械学習 ソフトウェアアーキテクチャ DDD(Domain Driven Design) Scrum( 認定スクラムマスター) • 講演活動 FEST2015 登壇(Channel9で動画公開) CloudDays2015東京・大阪 登壇 Developers Summit 2015 登壇 MSxNextscape合同 Azure Machine Learningセミナー開催 SANSAN DDD勉強会発表 アプレッソ 最新IT事例セミナー Azure Machine Learning セミナー登壇 • 執筆活動 • 人工知能アプリケーション総覧 寄稿(日経BP社、2015年9月30日発売) • ITPro:クラウドで機械学習を手近に、Azure Machine Learningの概要
  • 3.
    Azure IoT Hubとは •Microsoft Azureの組み込みデバイスを対象としたデータの送受信用サービス。 • IoT Hub→デバイス、デバイス→IoT HubどちらもOK • あくまで送受信するだけ。受信データの処理、送信データの作成は別途 • 送受信対象の組み込みデバイスはIoT Hubに登録が必要 • IoT Hub と組み込みデバイスとの接続はAMQP、MQTT、HTTP/1。 • AMQP, MQTTを使えば、IoT Hub ⇔組み込みデバイスがサポートされているので簡単 • HTTP/1もサポートしているけど、IoT Hub → 組み込みデバイスへデータ送信はでき ない。デバイスからIoT Hubへのポーリングになる。 IoT Hub 組み込みデバイスMicrosoft Azure AMQP, MQTT, HTTP/1 各種サービス C, C#, Java, node, PythonのSDKあります。 SDKなくてもRESTAPIで同等の処理が可能です。
  • 4.
    Azure IoT Hubの使い方 •準備 • 組込みデバイスをIoT Hubに登録 • これによって、組み込みデバイスごとにエンドポイントが用意されます • 組込みデバイスをIoT Hubに接続 • SDK色々あります。(C, C#, Java, Python, Node.js) • RESTでも通信できます • 組み込みデバイス → IoT Hub • 組込み機器からIoT Hubにデータを送信 • IoT Hubにデータ受信登録したサービス側でデータを受信 • IoT HubはEventHub互換のエンドポイントがあるので、それを使用してデータを受信&加工します • IoT Hub → 組み込みデバイス • サービス側からIoT Hubを通じて組込み機器にデータを送信 • 組込み機器がIoT Hubを通じて、コマンドを受信 • 組込み機器がコマンドを受信したことを、サービス側でAckとして通知を受ける • おまけ • 登録された組込み機器情報の取得
  • 5.
    管理ポータルでのGUIサポートがない! • 登録されているデバイスの一覧とか画面で見たいですよね。(Microsoftらし からぬ感じ) • でも大丈夫、GitHub(https://github.com/Azure/azure-iot-sdks/)に公開されているIoT HubSDKにツールがあります • デバイスエクスプローラ • デバイスの登録・削除 • デバイスから送信されたメッセージのモニタリング • デバイスへのメッセージ送信 • ※Windowsでしか動きません • IoTエクスプローラ • Windows以外の環境用のデバイスエクスプローラ • GUIではなく、コマンドラインで操作 • Node.jsで作られています • 組み込みデバイスないとテストできないの? • いいえ、コンソールアプリでOKです • Azure IoT Hubのチュートリアル「Get started with IoT Hub」に作り方が載っています(シミュ レーション対象デバイス アプリの作成) • https://azure.microsoft.com/ja-jp/documentation/articles/iot-hub-csharp-csharp- getstarted/#-2 • C#, Java, Node.jsの作り方が載っています
  • 6.
    Azure IoT Hub概要図 IDレジストリ Queue IoTHub Queue Ethernet,WiFi TCP/IPで接続可能 なデバイス Private Area Networkのこと。 (Bluetooth等) TCP/IPで接続も できないような貧 弱なデバイス クラウドとデータ送受信するためのGateway。デバイスか らのデータを保存したり、フィルタリングしたり。 メインの役割はプロトコルの変換。 Field Cloud IDによるデバイス管理 データの受信は EventHubs互換の エンドポイントで デバイスへデータ送信時、メッセージは Queueへ格納されてから送信される ※デバイスがオフライン時のデータは送 信されない。TTL過ぎた未送信メッセー ジは削除される AMQP,HTTP,MQTT が使える IoT Hub デバイス SDK Patitionがある 1IotHubユニットごとに500デバイスが接続可能。 最大2000ユニットまで拡張できる。 (100万デバイスが同時接続できる) https://azure.microsoft.com/ja-jp/documentation/articles/iot-hub-what-is-iot-hub/ カスタムプロトコル 用の受け口を作れる
  • 7.
    • Azure IoTSuiteは、Azure IoT Hubを中核に据えた複数のAzureサービ スから構成済みのすぐ使えるIoTサービス。 Azure IoT Suiteっていうのもあるけど? Azure IoT Suite DocumentDB Blob Storage 保管 StreamAnalytics リアルタイム処理 Machine Learing HDInsight 分析 IoT Hub WebApps PowerBI 結果の表示 構成済みのソリューションは、現在のところ • リモートモニタリング • 予兆保全 しかありません。これをカスタマイズは可能ですが、結局IoT Hub を触ることに。
  • 8.
    意外と簡単に始められます Microsoft も IoT頑張ってるよ! ご清聴ありがとうございました

Editor's Notes

  • #4 組み込みデバイスの登録先はIoTHub内部にあるIDレジストリ、というところ。 自分で決めたDeviceIDを登録要求すると、DeviceKeyが返却される。
  • #7 デバイスの管理はIDレジストリ、というところで行う 1.デバイスとクラウドの接続はAMQP, MQTT, HTTP/1。  AMQPとMQTTは双方向通信プロトコルなのでデバイスへのプッシュは問題なし。HTTP/1の場合はポーリング。リアルタイム性はない。 2.IoTHubに格納されたメッセージは、EventHubs互換のエンドポイントから取り出す。