MQTT(MQ Telemetry Transport)とは HTTPに代わる軽量なオープンソースのメッセージプロトコル
MQTTは1999年からIBMにより推進され、現在はオープンソースとなっているプロトコルです。
MQTTはメッセージの配信に特化しており、特に多数のPublisher/Subscriberを持たなければいけない用途に使われています。また、軽量な点と同期通信な点を生かして、リアルタイム通信が必要な用途にも使われています。 具体的には
- センサーからのデータ収集 (IBMの北九州市の例)
- メッセージサービス (Facebook Messanger)
- 車とスマホの情報同期 (Connected Car from CES 2014)
などが挙げられます。 (http://tdoc.info/blog/2014/01/27/mqtt.html より) MQTTは元々は1999年からIBMとEurotech社が策定していました。IBMはIBM MessageSightという製品を持っています。 その後 2011年にEclipse FoundationにMQTTのコードが寄贈され、また、2013年にOASISという国際標準化団体にて標準化が行われるようになりました。 仕様はロイヤリティフリーで公開されています。現在の仕様は3.1が最新で、近々3.1.1が登場します。 (http://tdoc.info/blog/2014/01/27/mqtt.html より)
(http://codezine.jp/article/detail/8000 より)
MQTTはOSI参照モデルのアプリケーション層のプロトコルです。 MQTTの実装は、
MosquittoはCで書かれた古くからある実装で、ほぼすべての機能を実装しており、参照実装として扱われることが多いです。 RabbitMQはerlang製の定評あるMQサーバーです。AMQPなどにも対応していますが、MQTTにも対応しています。 Pahoは前述の通りIBMから寄贈された実装で、Java版やPython、JSなど、多彩な言語に対応しています。 ActiveMQ ApolloはMQTTTの他STOMPやAMQPなどもできます。 (http://tdoc.info/blog/2014/01/27/mqtt.html より)
IBMのサイトで、IBM MessageSight for Developersという、MQTTのサンプルキットが配布されています。 MQTT as a serviceとして、sangoというサービスもあります。