SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Bluemixではじめてみよう! 「IoT→クラウド」データ活用アプリケーション開発(AD)

やっぱりモノをつなげて体験しよう! Arduino YUNとBluemixではじめるIoT入門

Bluemixではじめてみよう! 「IoT→クラウド」データ活用アプリケーション開発 【第1回】

  • このエントリーをはてなブックマークに追加

MQTTとは

IoT活用におけるセンサデバイスやゲートウェイからインターネットへの通信は、小さいサイズのデータを大量に送信することが想定されます。このような通信形態に合うプロトコルの一つに「MQTT」(MQ Telemetry Transport)があります。

MQTTは、IoTやM2M[1]の実現に適したシンプルで軽量なプロトコルで、Facebook Messengerでも使用されています。

[1]: Machine to Machineの略。機械間でネットワークを介して互いにデータをやりとりすること。

MQTTでは、送信元を「Publisher」、受信先を「Subscriber」と呼びます。また、MQTTの通信は、PublisherとSubscriberの間に「MQTTブローカ」と呼ばれるサーバを置き、それを経由しておこないます。

PubSubモデル
PubSubモデル

Publisherが送信するデータのことを「メッセージ」と呼びます。Publisherは、トピックという文字列を指定してMQTTブローカへメッセージを送信します(①)。

MQTTブローカには、あらかじめどのトピックをどのSubscriberが受信するかを定義しておきます。

メッセージを受信したMQTTブローカは、受信メッセージのトピックを受信登録しているすべてのSubscriberに向けてメッセージを送信します(②)。

受信対象を指定する際には、トピックに指定した文字列に完全一致するものだけでなく、一部が合致するものも指定することができます。

トピックによる振り分け
トピックによる振り分け

なお、MQTTブローカは、受信したメッセージを永続的に保持する責任を持ちません。このためメッセージを保管したい場合は、Subscriber以降でデータストアへ格納する処理を実行しなくてはなりません。

MQTTには、次のような特徴があります。

通信量が少ない

基本的にTCP/IP上で動作を前提としており、インターネットとの親和性も高く、HTTP通信と比較すると通信量が少なくなります。通信量が10分の1になると仮定すると、同じ電力でMQTTはHTMLの10倍の通信量を送信可能ということとなります。

IoT活用では、センサデバイスの配置場所により給電が難しい場合もあるため、電力消費の節約は優先度の高い問題になります。

QoSが選択可能

QoSとは、Quality of Serviceの略で、通信品質のことを指します。MQTTでは送信時にQoSを0から2の3段階から指定することができます。

QoS 説明
0 At most once: 送信は1回だけ実行されるが、到着する保証はされない
1 At least once: 到着は保証されるが、同一メッセージを複数受信する可能性がある
2 Exactly once: 1件のみの受信が保証される

Publisherの生死を判断できる

PublisherはMQTTブローカと接続したときに「Will(遺言)」情報を追加することができます。意図しない理由でPublisherが接続できなくなった場合、MQTTブローカはWillに定義されたメッセージをSubscriberへ送信します。Subscriberはこのメッセージを受信することで、Publisherが停止していることがわかります。

認証機能を持つ

MQTTブローカに接続する際に認証確認をおこなうことができます。認証方法はMQTTブローカ側の実装によって異なります。

IoT活用において、個人のライフログを取り扱う場合などは、セキュリティ要件の優先度が高くなることが考えられます。

主なMQTTブローカ

主なMQTTブローカとして、次のようなものがあります。SaaS形式で提供されているものが多いのは、ベンダ側もおそらくIoT活用ケースとしてデバイスをインターネットに直接接続することが多いと想定しているからだとおもいます。

名称 説明
Mosquitto BSDライセンス準拠のオープンソース。主要なLinuxディストリビューションやWindows上で動作する。執筆時点で入手した Intel Edisonには購入した状態でMosquittoがインストールされていた
Akane 時雨堂社の有償ソフトウェア、クラスタ構成を取ることができる。Ubuntu/CentOSで動作する
Sango AkaneのSaaS版。無料のライトプランもあり
CloudMQTT Mosquittoを使ったSaaS。動作環境としてAmazon Web Service(AWS)を使用しており、無料版含む4種類のプランを提供している
AWS IoT Amazon社がAWSの新たなサービスとして提供。2015年12月18日正式リリース
ニフティクラウド MQTT(β) ニフティクラウドのサービスの1つとして2015年5月11日にリリース。執筆時点では無料プランのみ
IBM MessageSight M2Mとモバイル環境向けに特別に設計されたIBM社のメッセージングアライアンス。ハードウェアだけでなく仮想アプライアンス版も提供されている
IBM Watson IoT Platform IoT活用を前提としたIBM社提供のSaaS型MQTTブローカ。無料版を含む4種類のプランを提供

今回は、これらの中から、アプリケーション開発環境との親和性も高く、無料で使うことができる「IBM Watson IoT Platform」を試してみることにします。

IoTを始めたい方も・本格導入を検討中の方も:おすすめソリューションのご紹介

ビジネスのパフォーマンスを高めようとさまざまな業種・企業で、IoT活用を前提とするプロジェクトが動き始めています。ただし、検討を始めて最初に出てくるのは、こんな要望ではないでしょうか。

「最初は実験的にスタートしたいから、小さく簡単に素早く始めたい」
「実運用に移ったときには10万・100万単位のセンサ/デバイスに対応できるスケーラビリティも確保したい」

これにお応えできるサービス・製品がIBMにあります。ぜひ、下記の資料をご覧ください。(編集部)

次のページ
IBM Watson IoT Platform

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Bluemixではじめてみよう! 「IoT→クラウド」データ活用アプリケーション開発連載記事一覧

もっと読む

この記事の著者

堀 扶(ホリ タスク)

株式会社エクサ所属、シニアITアーキテクト。おもに製造業、金融業向けのビジネスシステムの提案、設計、開発、テスト、保守に従事。その後、技術部門へ異動し、技術支援、全社標準化、先進技術調査を担当。IBM Bluemix Challenge 2015にてBluemix賞を受賞。情報処理学会、プロジェクト...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9233 2016/03/16 20:38

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング