Azure IoT Hub、IoTデベロッパーセンター始まりした

昨年来、AzureにIoTサービスを加えますよ!とアナウンスしておりましたが、ついに2015年9月30日にAzure IoT Suite、及び、IoT Hubのプレビューが公開されました。加えて、IoTデベロッパーセンターというページも出来上がっています。
この投稿では、これらの概要を紹介します。

まず皆さん、ブラウザで、https://azure.microsoft.com  を開いてみてください。そして、ドキュメントタブをクリックしてみてください。

はい、”モノのインターネット”、という項目が追加されてます!ここからIoT関連はたどっていってくださいね。先ずは、一番下の”IoT Hub”を選択してみましょうか。
https://azure.microsoft.com/ja-jp/documentation/services/iot-hub/

というページが開きます。このページの”チュートリアルの開始”という緑色のボタンを押すと、Windows 7以上のPC、Visual Studio 2013以上で、直ぐにこのIoT Hubを試すプログラミング方法が解説されています。ちょっとね、まだプレビューなんで書かれている通りに動かなかったりする部分もあるのですが、まずは、お試しください。

IoT Hubの中では、既に正式版が公開されている、メッセージを高速に送受信可能なブローカーサービスである、Event Hubが使われています。Event Hubは、IoTと似たような細かいデータがばらばらと高速に飛んでくるようなシステムで利用可能で、Event Hubへの接続数、データ転送量、スループットなどで、性能や金額が管理されるのに対して、IoT Hubは接続する組込み機器を単位として、性能や課金が決められています。IoT Hubの機能紹介を兼ねて、ざっと一般的な利用シナリオを紹介すると、

  • 組込み機器をIoT Hubに登録
  • 組込み機器をIoT Hubに接続
  • 組込み機器からIoT Hubにデータを送信
  • IoT Hubにサブスクライブしたサービス側でデータを受信
  • サービス側からIoT Hubを通じて組込み機器にデータを送信
  • 組込み機器がIoT Hubを通じて、コマンドを受信
  • 組込み機器がコマンドを受信したことを、サービス側でAckとして通知を受ける
  • 登録された組込み機器情報の取得

ざっと、こんな感じです。Event Hubと同様、Stream Analyticsにも簡単につなげられるので、例えば、組込み機器に装備されたセンサーデータをIoT Hubで受信してStream Analyticsに連結することが簡単にできて、そのままPowerBIにつないでダッシュボード表示をしたり、定義済みのルールに従ってデータを変換したり、通知を上げたり、バックエンドのWebJobを起動したりといった構成が簡単に組めます。

接続の管理は、Event Hubと同じように、ロールベースのトークンです。あらかじめ管理用、デバイス用、サーバーバックエンド用、デバイス管理用といったロールが定義されていて、それぞれにセキュリティトークンが提供されています。

使えるプロトコルは、HTTPSとAMQPです。最近、MQTTの問い合わせが多いですが、MQTTは今後何らかの形でExtensionとして提供される見込みです。(※あくまでも著者見解ですがMQTTのセキュリティレベルだと、IoT HubやEvent Hubが想定しているセキュリティレベルを満たせないので、IoT HubそのものにMQTTが使えるようになるのはちょっと難しいのかなと感じます)
今後、もっと微に入り細に入り、IoT Hubは解説していきますが、まずは、 https://azure.microsoft.com/ja-jp/documentation/articles/iot-hub-what-is-iot-hub/ や、https://azure.microsoft.com/ja-jp/documentation/articles/iot-hub-devguide/ をご覧くださいね。

IoT Hubに接続する組込み機器向けに、GitHubで、SDKが提供されています。現在提供されているのは、

  • C# - .NET Framework系
  • C# - WinRT系
  • C言語 - 色々な組込み系OS向け
  • Java - ま、組込みでもJava使っている人いますよね?
  • JavaScript

の五種類です。SDKは、

https://github.com/Azure/azure-iot-sdks/

から公開されています。
先ほど紹介したURLには、IoT Hubのつなぎ方に関する情報も書かれているので、この五種類以外の場合にも、それを参考にしてトライしてみてください。うまくいったら、このブログで紹介しますので、是非ご一報を。

私が今、作成&公開中のIoTハンズオンコンテンツ https://aka.ms/iotkitholv2on も、もう少ししたら、IoT Hubを取り入れますので、こうご期待。

さて、次はIoTデベロッパーセンターです。組込み機器のハードウェアやOS、ミドルウェアは千差万別です。様々な組込み機器の接続を支援する、ページとしてIoTデベロッパーセンターができました。
Azureのポータルサイトの”ドキュメント”→”モノのインターネット”→”IoTデベロッパーセンター”を選択して、表示されたページの”デバイスを接続する”という緑色のボタンをまずはクリックしてみてください。ボード、プラットフォーム、言語別に、サンプルコードが表示できるようになっています。お手持ちのハードウェアがあれば、是非、試してみてください。それから、モノを作っている皆さんは、Azure Certified IoTというプログラムも始まっているので、是非、こちらも検討していただければと。
https://azure.microsoft.com/ja-jp/marketplace/certified-iot-program/

現在、続々と新しいコンテンツが追加中です。

https://azure.microsoft.com/ja-jp/documentation/articles/?service=iot-hub

を是非定期的に見てくださいね。