Mqtt 소개

  • View
    1.392

  • Download
    0

  • Category

    Internet

Preview:

Citation preview

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

목차• IoT 소개• MQTT 소개

IoT 소개

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

네트워크 (Internet) 에 연결된

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

인간의 명시적 개입 없이

상호 정보를 주고받으며

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

IoT 현황

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

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

IoT Enablers

머신( 센서 등 )

모듈( 임베디드 )

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

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

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

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

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

머신( 센서 등 )

모듈( 임베디드 )

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

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

IoT 의 요소 기술

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

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

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

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

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

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

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)

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)

머신( 센서 등 )

모듈( 임베디드 )

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

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

IoT 의 데이터 흐름

참고 아키텍처

목차• IoT 소개• MQTT 소개

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

전송 방식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

구현 예시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();

}

데모

Mosquitto MQTT broker 활용

Thing#1

Thing#2

Thing#3

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

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: #

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

QoS

MQTT Quality of Service for reliable messaging

MQTTBroker

Payload 형태MQTT agnostic payload for flexible delivery

MQTTBroker

Caching

MQTT retained messages for last value caching

MQTTBroker

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

Brokers

MQTT

Resources

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

Recommended