SHOEISHA iD

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

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

InterSystems IRISでシンプルに開発するIoTアプリケーション(AD)

データプラットフォーム「IRIS」からMQTTプロトコルを利用してみる

InterSystems IRISでシンプルに開発するIoTアプリケーション 第3回

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

 前回は「まずは動かしてみよう!」と題してInterSystems IRIS Data Platform(以下IRIS)を使ったIoTアプリケーションを紹介しました。まだ試していない方は、ぜひ前回の記事をご覧ください。以降の連載では、そのアプリケーションの開発手順を解説しながら、IRISのさまざまな機能を体験していただきたいと思います。今回は、IoTアプリケーションで使用されることの多いMQTTプロトコルを、IRISから利用する方法について解説します。

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

MQTTプロトコル

 MQTTはMessage Queuing Telemetry Transportの略で、TCPベースのプロトコルです。IoTシステムで利用される理由としては、

  • 軽量であり、比較的小さいサイズのデータを高頻度で送受信するのに適している
  • 電力消費量に制約のあるデバイスでも動作できる
  • Pub/Sub型の通信により、必要なデバイスやアプリケーションが、必要なデータだけを送受信することができる

などが挙げられます。

 ここで、MQTTで規定されているPub/Sub型の通信について簡単に説明します。

 Pub/Sub型の通信では、次の3つの役割を持つコンポーネントがあります。

  • Publisher:データを送信(Publish)するコンポーネント。送信するデータには、Topic属性をつける。Topicの値は、Subscriberが受信するデータを選択(フィルター)するために使用される。
  • Subscriber:データを受信するコンポーネント。受信したいTopicをあらかじめBrokerに登録(Subscribe)しておく。
  • Broker:Publisherから送信されたデータを、そのデータについているTopicをSubscribeしているSubscriberに送る機能を持つ。

 以上の概要を次の図に示します。

Pub/Sub型通信
Pub/Sub型通信

 図の左側、PublisherはTopicとともにデータをBrokerに送信します。図の右側のSubscriberは、BrokerにTopicを登録しておき、実際にそのTopicに合致するデータがPublishされたら、Brokerからそのデータを受信します。

 図に示されている通り、Topicは「/」で区切られた階層構造を持っています。Publisherは、DevA/Tempのように送信するデータのTopicを指定してPublishします。Subscriberは、受信したいTopicをDevA/Tempのように指定してSubscribeすることもできますし、DevB/#のように、ワイルドカード(#)を使用して、DevB以下すべてのTopic(図の例では、DevB/Temp、DevB/Speed)のデータをSubscribeすることもできます。

 MQTT Brokerは、オープンソースでいくつかのソフトウェアが公開されています。今回の連載では、Eclipse Mosquittoを利用します。Eclipse Mosquittoはdockerイメージでも提供されているので、今回の構成ではeclipse-mosquittoというイメージをpullして使用するように定義しています。定義は、docker-compose.ymlのmqttbrokerセクションに記述しているので確認してみてください。

次のページ
IRISの環境設定

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

  • このエントリーをはてなブックマークに追加
InterSystems IRISでシンプルに開発するIoTアプリケーション連載記事一覧

もっと読む

この記事の著者

堀田 稔(インターシステムズジャパン)(ホリタ ミノル)

SEマネージャー。1992年大阪大学基礎工学部情報工学科卒。同年日本ディジタルイクイップメント(株)入社。電気通信など様々な業界向けプロジェクトにシステムエンジニアとして携わる。1996年InterSystems Data Platform製品の日本語版開発プロジェクトに従事し、同製品の販売・サポー...

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

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

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/11836 2019/12/06 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング