MQTT
1. 개요
MQTT(Message Queuing Telemetry transport)는 저대역폭 환경에서 M2M (machine to machine) 원격 측정을 위해 설계된 경량 발행-구독 메시징 프로토콜이다. 1999년 초기 버전이 IBM에서 만들어졌고, 2010년 8월에 무료로 오픈되었다. 2011년 11월, IBM과 EUROTECH가 이클립스 프로젝트 PAHO에 MQTT를 기증했고, 2013년, MQTT v3.1을 민간 표준화 기구인 OASIS에 제출하여 2014년 9월에 표준화되었다. 홈 오토메이션(몇년전 뭉뚱그려서 "유비쿼터스"라고 불리던 그것.) 분야의 성장이 예상보다 매우 더디어서 아직까지는 매우 마이너한 기술이다.
2. 특징
무선으로 네트워크에 연결된 비교적 단순한 기기들간의 간단한 소통을 목적으로 만들어진 만큼 리소스를 매우 적게 요구하기 때문에 사물인터넷에 최적화된 프로토콜이다. 헤더가 작게는 단 2바이트일 정도로, HTTP와는 비교도 안되게 작다.
통신은 '브로커'라고 불리는 서버에 의해 중계되며, 클라이언트들은 임의의 '토픽'을 '구독(subscribe)'하거나 토픽에 메시지를 '게시(publish)'하는 식으로 상호간에 통신한다. 어느 한 클라이언트가 메세지(payload)를 퍼블리싱 하면 브로커(서버)는 해당 토픽을 구독중인 클라이언트들에게 메시지를 보낸다. 이는 마치 인터넷 게시판이나 RSS피드의 작동 방식과 비슷한데, 이러한 구조와 단순하고 가벼운 프로토콜 덕분에 IoT 개념을 탑재한 수많은 기기들 간의 유연한 통신이 가능할 것으로 기대된다.