22
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MQTTバージョン5の概要 第1回 標準化の狙い

Last updated at Posted at 2017-02-25

2017/3/18 連載終了!

最近IoTへの応用で注目されている通信プロトコルであるMQTTですが、最新バージョン3.1.1の次のバージョンとして、バージョン5の標準化が進んでおり、2017年末には標準化完了する見込みです。

バージョン番号がかなり上がることにふさわしい、大きな変更になっているようです。しかし、これに関して日本語のドキュメントが皆無に等しい状況です。よって、拙いですが、情報発信してみます。

なお、筆者は、標準化には素人なので、間違いがありましたら、ご容赦とともに、あたたかいご指摘をお願いします。

連載目次

[第1回 標準化の狙い] (http://qiita.com/items/bd21ce2995f313521c56) (2017/2/25)
[第2回 旧バージョンからの主な変更点 1〜3.2] (http://qiita.com/items/71f1e4f4e40d0033822d) (2017/3/9)
[第3回 旧バージョンからの主な変更点 3.3〜3.15]
(http://qiita.com/items/563f2c67639318c5c3d6) (2017/3/12)
[第4回 旧バージョンからの主な変更点 4〜] (http://qiita.com/items/8cf99f01a4dc1530a137) (2017/3/18)
[第5回 考察 MQTTはIoTにおいてHTTP/RESTを完全に駆逐する] (http://qiita.com/items/00cb2050ae68b45bb931) (2017/3/18)

参考文献
[OASIS MQTT TC] (https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=mqtt) - 本記事はこちらの各種ドキュメントをもとに記載しました。
[Mosquitto MQTT v5 draft features] (https://mosquitto.org/2016/08/mqtt-v5-draft-features/) - 概要がまとまっていますが執筆時点が古く、重要な新機能が漏れています。

#1. 標準化完了は2017年末の見込み

#1.1. 標準化スケジュールと進捗

[MQTT_v5_TC_Timeline_30062016 2016/6/30] (https://www.oasis-open.org/committees/download.php/58438/MQTT_v5_TC_Timeline_30062016.pdf) にスケジュールが記載されています。

タスク 期限
WD(final) = CSD1 2016/9/8
CSD2 2016/12/1
CS 2017/1/8
COS 2017/1/15
OS 2017/4/17

WD: Working Draft (TC内の標準化作業メンバー間の合意形成)
CSD: Committee Specification Draft
CS: Committee Specification (OASIS MQTT TCでの投票による最終合意)
COS: Candidate OASIS Standard
OS: OASIS Standard (パブリックレビューを経たOASIS標準)

これによると、2017年4月には、バージョン5の標準化が完了する予定になっています。しかし、現時点でWD11(2017/2/23)まで議論が進んでいますが、いまだにWD(final)には至っていません。

#1.2. 標準化完了時期の予測

本稿では、大胆に、MQTTバージョン5標準化の時期を予測します。

まず、2/9の議事録を参照すると、WD12がCSDとなる期待があるようです。WDのリリース間隔から想定すると4月にはWD12=WDfinal=CSDが出てくると思われます。以降のスケジュールは投票期間等であるため、計画時と相対期間は変わらないと仮定すると、+7か月あまり、すなわち2017年11月〜12月に標準化完了すると思われます。

なお、OASIS標準は、いわゆる「コミュニティー標準」であり、国際標準ではありません。前の版のMQTT3.1.1は、OASIS標準化から約1年半経過して、国際標準であるISO/IEC標準になりました。

CSDが出てくると、オープンソースの対応も進み、夏〜秋には一部のオープンソースの先行評価版において、MQTTバージョン5ドラフト対応のものが出てくると予想します。そのあたりになると、日本語の解説も揃ってくることでしょう。

#2. 標準化の狙い

[MQTT Recharter.docx #6 2016/4/12] (https://www.oasis-open.org/committees/download.php/57921/MQTT%20Recharter.docx) に標準化開始時の目的が記載されています。

Charterとは、OASIS標準化におけるプロジェクト計画書のことを示します。後続バージョンのプロジェクト計画書は、Recharterと呼びます。

これによると、MQTTバージョン5は、MQTTバージョン3.1.1をベースに以下の拡張を行うとあります。

  • 拡張性強化と大規模システムへの対応
    • 通信機能、オプション機能、リソース使用量制御など
  • エラーレポートの改善
    • MQTTクライアントとサーバの双方に対する拡張リターンコードの定義
  • Observedパターンへの対応
    • 検索、要求応答、関連付けなど
  • 拡張機構
    • パケットにアプリで活用可能なデータ領域の追加を可能に
  • 性能改善とリソース制限が厳しい端末への対応強化

なお、この文章の中には、同じOASISで標準化をしているAMQPとの位置付けについて、次のような記載があります。OASISの公式見解として、興味深いです。

  • AMQPは、企業ミドルウェア・アプリケーション同士の相互接続向け
  • MQTTは、センサー、制御システム、組み込みシステム、モバイルデバイス向け
  • 双方をブリッジすることで、テレメトリーを企業アプリと接続することができる

#3. 標準化イシューリスト

[JiraListInputForAprilFaceToFace.odt #4 2016/4/13] (https://www.oasis-open.org/committees/download.php/57952/JiraListInputForAprilFaceToFace.odt) にイシューリストが記載されています。

JIRAとは、OASIS標準化におけるイシューリストのことを示します。

標準化プロジェクト開始当初、以下の20個(項13は欠番)のJIRAがリストアップされています。それぞれの詳細内容や検討進捗状況は、https://issues.oasis-open.org/browse/(JIRA番号)という形のURLに記載されています。本稿執筆時点(2017/2/25)における進捗状況を確認し、ステータスおよび結果の欄に記載しました。

JIRA番号 表題 ステータス 結果
1 MQTT-276 大規模システム向け拡張 open unresolved
2 MQTT-236 ACK結合、否定応答 closed fixed
3 MQTT-256 一般的なメッセージフォーマット表示、メッセージメタデータ applied fixed
3続き MQTT-282 既存のパケット領域をメタデータ向けに再構成 closed unresolved
4 MQTT-270 MQTT-SN向けサーバー契機の切断 applied fixed
5 MQTT-197 要求応答(Observedパターン) applied fixed
6 MQTT-235 非局所的サブスクリプション applied fixed
7 MQTT-249 有効期限機能の追加 applied fixed
8 MQTT-203 MQTT URIスキーマ open unresolved
9 MQTT-234 共有サブスクリプション applied fixed
10 MQTT-257 フロー制御 applied fixed
11 MQTT-255 新たな認証機構 applied fixed
12 MQTT-278 MQTT-SN向けサーバー契機のping applied fixed
14 MQTT-269 MQTT-SN向けトピック登録 applied fixed
15 MQTT-217 サブスクリプションの重複に関する実装ガイドライン applied fixed
16 MQTT-251 サーバーにて付与したクライアントIDをクライアントに返信 applied fixed
17 MQTT-260 CONNACKにリダイレクトを追加 applied fixed
18 MQTT-263 ステート管理の簡略化 closed fixed
19 MQTT-259 MQTTの拡張性のためのDNS SRVレコードの利用 new unresolved
20 MQTT-271 低性能デバイスの制限「Arduino問題」 closed unresolved
21 MQTT-252 大きなサイズのメッセージの転送 closed unresolved

進捗状況を見ると、初期のJIRAのうち、openもしくはnew/unresolvedは、残り3つになっており、WD完成が近づいていることがわかります。

これらを踏まえつつ、次回は、最新のMQTTバージョン5 WD11が、バージョン3.1.1からどのように変更されたかを、見てみましょう。

22
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?