Top Banner
Cisco Confidential © 2010 Cisco and/or its affiliates. All rights reserved. 1 MQTT 소소 6 October 2014 소소소 소소소
27

Mqtt 소개

Jan 21, 2017

Download

Internet

Junho Lee
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Mqtt 소개

MQTT 소개6 October 2014시스코 이준호

Page 2: Mqtt 소개

목차• IoT 소개• MQTT 소개

Page 3: Mqtt 소개

IoT 소개

Page 4: Mqtt 소개

사물인터넷 (Internet of Things) 이란 ?

네트워크 (Internet) 에 연결된

고유하게 식별 가능한 사물들 (Things) 이

인간의 명시적 개입 없이

상호 정보를 주고받으며

인간 중심적인 서비스를 제공할 수 있는 기반 인프라 기술사물인터넷 (Internet of Things) 시대의 공개 SW, 정명훈 , 2014

Page 5: Mqtt 소개

IoT 현황

인터넷에 연결된 사물들의 수가 전세계 인구 초과 IoT 시작 2020 년 , 인구 수는 향후 70 억까지 증가 예상 vs 연결된 사물의 수 500 억 개 예상 실제로 보면 가정 당 1 PC 개인 당 1 스마트폰 태블릿 , 스마트 TV, 개임 콘솔 , 프린터 , 셋탑박스 각종 가전 제품

사물인터넷 (Internet of Things) 시대의 공개 SW, 정명훈 , 2014

Page 6: Mqtt 소개

IoT Enablers

머신( 센서 등 )

모듈( 임베디드 )

네트워크 데이터처리 서비스응용

데이터 수집 데이터 전송 통신 데이터 분석 활용

센서 기술 근거리 통신 저전력화 소형 / 경량화 단가 하락

임베디드 장치 소형 / 경량화 Smart Autonomous

네트워크의 발전 빅데이터 데이터 분석 기술 클라우드 컴퓨팅

Page 7: Mqtt 소개

머신( 센서 등 )

모듈( 임베디드 )

네트워크 데이터처리 서비스응용

데이터 수집 데이터 전송 통신 데이터 분석 활용

IoT 의 요소 기술

센서 실제 데이터를 수집하는 최 접점

임베디드 단말 수집된 정보를 취합 및 전송

네트워크 근거리 : 주로 센서와 임베디드 단말 통신 원거리 : 단말과 서버 사이의 통신 보안 데이터 유출 , 외부 침입 , 사생활 침해 등 방지 클라우드 컴퓨팅

효율적인 End-to-End IoT 플랫폼 구축

미들웨어 Event Processing: 대량 데이터에 대한 1차 패턴 분석 Messaging: 데이터의 전송 보장

데이터 처리 및 분석 빅데이터 : 센서에서 수집된 비정형 , 대량 데이터 처리 DW/BI: 데이터로부터 유의미한 정보 추출

Page 8: Mqtt 소개

IoT 의 요소 기술 ( 계속 ) 센서 및 임베디드 단말 (HW)

데이터 소스로부터 직접 데이터를 수집하는 센서 , 수집된 데이터를 모아 1 차 가공 역할을 하는 임베디드 단말 부분을 담당할 하드웨어 ( 예 : NFC 센서 , 모바일폰 ) 전력 , 네트워크 , CPU 등의 리소스가 충분하지 않은 제한된 환경에서 동작해야 하기 때문에 가볍고 (lilght) 단순 (simple) 해야 하며 환경에 맞게 쉽게 Customization 이 가능해야 하기 때문에 기술이 오픈된 Open

Hardware( 공개 SW 하드웨어 ) 형식이 적합 오픈소스 기술 : Open Source Hardware (Raspberry PI, Arduino)

네트워크 (Communications) 근거리 통신 : 수 많은 센서와 거기에서 나오는 임베디드 단말 사이에 원활한 데이터 송수신을 가능케 하는 프로 토콜 . 대체로 경량이어야 하고 특히 전력 소비가 적어야 함 . Bluetooth, Zigbee, Beacon 등의 기술 원거리 통신 : 센서에서 수집된 데이터를 임베디드 단말에서 바로 처리하는 경우도 있지만 대부분의 경우는 백 엔드에 있는 분석 및 응용 시스템으로 보내야 하며 이 때 사용되는 통신 . 근거리 만큼은 아니어도 역시 저전력 , 경량 프로토콜이 필요하며 데이터에 대한 전송 보장 (QoS) 도 필요 . 기본적인 통신은 TCP/UDP 레이어를 사용하 고 그 위에 프로토콜로는 HTTP 와 함께 최근 MQTT 관심 큼 오픈소스 기술 : USB, Bluetooth(btstack, SmallTooth), Zigbee(Open ZB), MQTT(RabbitMQ, mosquitto)

Event Processing 미들웨어 센서에서 나오는 엄청난 양의 데이터를 모두 서버로 보내기에는 과도한 네트워크 트래픽과 CPU 자원 , 스토리 지 등의 자원을 소모하기 때문에 사전에 정해진 이벤트 패턴을 감지하여 1 차 가공하여 요약된 결과를 보내는 목적 . 필요에 따라 임베디드 단말에서 동작할 수도 있고 데이터 처리 서버에서 동작할 수도 있음 특정 데이터 ( 이벤트 ) 패턴을 감지하는데 효과적인 CEP(Complex Event Processing) 기술 적용 오픈소스 기술 : Complex Event Processing(Esper), Stream Processing(Storm, S4)

Page 9: Mqtt 소개

IoT 의 요소 기술 ( 계속 ) Messaging 미들웨어

직접 센서에서 나온 혹은 Event Processing 미들웨어에 의해 1 차 가공된 데이터를 적절한 데이터 처리 서버로 보내거나 (Routing), 기존 정보과 결합 (Enrichment. 예 : 회원 정보 ) 하는 등의 메시지 가공 과정이 필요함 메시지 라우팅 , 가공 (Enrichment, Transformation) 등의 종합적인 기능을 수행할 수 있는 ESB 솔루션과 라우팅 기능에 초점을 맞춘 Queue 솔루션으로 구분이 됨 오픈소스 기술 : ESB(Jboss ESB, WSO2 ESB, Open ESB, Mule), Queue(ActiveMQ, RabbitMQ)

데이터 처리 (Processing) 및 분석 (Analytics) 수집된 데이터에서 비즈니스적으로 의미 있는 결과 정보를 뽑아내고 , 그것을 시각화하여 비 IT 전문가들이 쉽 게 활용할 수 있도록 하는 과정 대량 데이터를 저장하고 다룰 수 있는 BigData 솔루션과 데이터에서 패턴을 찾아내는 Data Mining, 가공하는 ETL(Extract Transformation and Load), 시각화하는 BI(Business Intelligence) 등의 분야를 모두 포함하는 BI/DW 솔루션이 있음 오픈소스 기술 : BigData(Hadoop, Hive, HDFS), DW/BI(Pentaho, QlikView, SpangoBI)

보안 (Security) 센서와 임베디드 단말 , 그리고 백엔드 서버간 송수신 되는 데이터를 암호화하는 Encryption 기술 각 주체 ( 센서 , 임베디드 단말 , 백엔드 서버 ) 간에 서로 상대방을 식별하는 Authentication, 각 주체가 자신을 식 별할 수 있는 증명 정보 ( 예 : ID) 를 관리하는 Identity Management, 각 주체들에게 허용되는 권한을 관리하는 Access Control 등의 기술이 있음 오픈소스 기술 : Encryption( 오픈소스 다수 ), Authentication, Access Control(Open IDM/AM, OpenIAM)

Page 10: Mqtt 소개

머신( 센서 등 )

모듈( 임베디드 )

네트워크 데이터처리 서비스응용

데이터 수집 데이터 전송 통신 데이터 분석 활용

IoT 의 데이터 흐름

Page 11: Mqtt 소개

참고 아키텍처

Page 12: Mqtt 소개

목차• IoT 소개• MQTT 소개

Page 13: Mqtt 소개

MQTT 소개

Page 14: Mqtt 소개

MQTT 란 ?

MQTT a lightweight protocol for IoT messaging

– Open open spec, standard

– Simple

– Lightweight

– Reliable

minimal overhead

QoS for reliability on unreliable networks

43-page spec

40+ client implementation

efficient format tiny client

connect-publish-subscribe

MQTT, Bryan Boyd(IBM), 2014

Page 15: Mqtt 소개

전송 방식MQTT bi-directional, async “push” communication

thing #1

thing #2

thing #3

MQTTBroker

CONNECT to MQTT broker

pub

CONNECT to MQTT brokerTCP/IP

recvWebSocket

recv

SUBSCRIBE to thing3/data

PUBLISH to thing3/data

MQTT, Bryan Boyd(IBM), 2014

Page 16: Mqtt 소개

구현 예시MQTT simple to implement

Connect

Publish

Subscribe

Unsubscribe

Disconnect

client = new Messaging.Client(hostname, port, clientId);client.onMessageArrived = messageArrived;client.onConnectionLost = connectionLost;client.connect({ onSuccess: connectionSuccess });

function connectionSuccess() {client.subscribe(“planets/earth");var msg =new Messaging.Message("Hello world!");msg.destinationName = "planets/earth";client.publish(msg);

}

function messageArrived(msg) {console.log(msg.payloadString);client.unsubscribe("planets/earth");client.disconnect();

}

Page 17: Mqtt 소개

데모

Mosquitto MQTT broker 활용

Thing#1

Thing#2

Thing#3

Page 18: Mqtt 소개

Pub-Sub 구조MQTT pub/sub decouples senders from receivers

MQTTBroker

publish subscribe

car telemetry

tennis scores

group chat

sensor data

Analytics

Mobile App

Database

HTML5 App

Logger

Page 19: Mqtt 소개

Subscription 방식MQTT allows wildcard subscriptions

scores/football/big12/Texasscores/football/big12/TexasTechscores/football/big12/Oklahomascores/football/big12/IowaStatescores/football/SEC/TexasA&Mscores/football/SEC/LSUscores/football/SEC/Alabamascores/football/big12/TCUscores/football/big12/OkStatescores/football/big12/Kansas

MQTTBroker

Texas Fan

Big 12 Fan

ESPN

scores/football/big12/Texas

scores/football/big12/+

scores/#

single level wildcard: + multi-level wildcard: #

Page 20: Mqtt 소개

Subscription 방식MQTT designed for minimal network traffic

and constrained devices

small header size

PUBLISH 2-4 bytes

CONNECT 14 bytes

HTTP 0.1-1 KB

MQTT has configurable keep alive(2 byte PINGREQ / PINGRES)

small clients: 30 KB (C), 100 KB (Java)

minimal protocol exchanges

Page 21: Mqtt 소개

QoS

MQTT Quality of Service for reliable messaging

MQTTBroker

Page 22: Mqtt 소개

Payload 형태MQTT agnostic payload for flexible delivery

MQTTBroker

Page 23: Mqtt 소개

Caching

MQTT retained messages for last value caching

MQTTBroker

Page 24: Mqtt 소개

Security

MQTTBroker

MQTT

• MQTT spec doesn’t define security model aside from username/password authorization on connection

• Brokers *can* implement support for SSL/TLS and policies for connection and messag-ing

Page 25: Mqtt 소개

Brokers

MQTT

Page 26: Mqtt 소개

Resources

• MQTT home: http://mqtt.org• Eclipse Paho MQTT clients: http://eclipse.org/paho• Mosquitto broker: http://mosquitto.org• 한글개요 : mqtt 소개

Page 27: Mqtt 소개