MQTT의 개요
사물인터넷(IoT) 프로토콜로 OASIS(Organization for the Advanced Structured
Information Standards)에서 제시한 표준 메시징 프로토콜
MQTT의
특징
(1) 디바이스 리소스를 적게 사용, 메시지 헤더의 최소화로
오버헤드 최소화
(2) 양방향 통신을 지원
(3) 수백만개 이상의 연결
지원(다수의 IoT장비를 위해 최적화)
(4) 신뢰성 지원옵션 : at most once, at
least once, exactly once 옵션을 통하여 메시지 전송의 신뢰성 보장
(5) 영구
세션을 지원하여 re-connection시 소요되는 connection 생성 시간을 줄여
안정적이지 않은 네트워크구간에서도 사용가능
(6) TLS를 활용하여 쉽게
메시지를 암호화하는 환경을 지원하고 OAuth와 같이 클라이언트 인증 프로토콜을
지원
REST API 개요
웹 브라우징 방식으로 데이터(또는 요청) 를 송신하고 그 결과를 수신하는 방식, HTTP(s) 프로토콜을 이용하여 서버를 호출하고 그 결과를 수신
REST API(Https 기반) 의 특징
(1) 클라이언트 서버 구조(서버 구조가 단순)
(2) 비 연결성(Connectionless) : request – response 구조
(3) 거의 모든 브라우저를 통해 사용이 가능 : 호환성이 좋음
(4) 클라이언트 서버 호출 방식, 클라이언트에 서버기능 개발/탑재를 통해 서버에서도 클라이언트 접근이 가능하나, 일반적으로 사용하는 방식은 아님
REST API 방식과의 기술적 차이점
API와 MQTT 와의 통신 구조 비교
통신형태 결정을 위한 적절성 및 결론
(1) 단순 데이터 저장의 경우 API의 구조가 단순하여 장점이 있음
(2) API 방식에서 제어가 필요한 경우 스마트폴은 지속적으로 제어명령이 있는지와 제어명령을 내린 제어UI에서는 제어명령 수행 결과에 대해 서버에 API를 통한 확인이 필요하므로 계속적인 통신 오버행 및 오버헤드 발생
(3) MQTT 방식은 이러한 제어 명령 등에 대해 별도의 폴링을 통한 확인 절차 없이 퍼블리싱과 구독을 통하여 상태 변화를 자동으로 처리 가능
결론
관제 및 제어 기능이 동시에 필요한 스마트폴 및 운영 시스템에는 MQTT 방식이 효율적임