SlideShare uma empresa Scribd logo
1 de 25
Node.js & MQTT
발표자 : 박나연
발표 날짜 : 2016. 1. 5. TUE
소속 : Kocom
지도교수 : 허의남 교수님
Contents
Kocom 과제
Node.js
MQTT
결론
01
02
03
04
2
01 Kocom 과제
3
개발 기술 개념도01
4
스마트 클라우드 통합 서비스 플랫폼을 이용한
복합 센서 시스템
Node.js
MQTT
02 Node.js
5
Node.js 란?02
Google의 JavaScript
V8 엔진 기반
Server Side
Web Application
제작 환경 제공
실시간 통신
6
Single Thread 기반 Non-blocking I/O
Google V8 Engine02
7
 구글의 JavaScript 엔진(http://code.google.com/p/v8)
 JIT(Just In Time) 컴파일 방식 사용
: 실행 즉시 machine language로 컴파일
 chrome과 android browser에 탑재
Multi-Thread02
8
 Multi-Thread : client의 요청마다 thread를 발생
→ memory 자원 소모 多
 복잡한 동기화와 lock
Synchronous VS Asynchronous02
9
 Synchronous
- 하나의 요청이 처리되는
동안 다른 요청 처리 불가
→ Blocking I/O
 Asynchronous
- 요청 처리가 완료되기 전에
다음 요청으로 제어권을 넘김
→ Non-Blocking I/O
Single Thread & Non-blocking I/O02
10
 Event Loop : 내부적으로 약간의 thread와 process를 사용
 Non-blocking I/O : 비동기 처리를 통해 요청을 처리하는 중에 다른 요청 수신 가능
 Single-Thread : overhead가 적음
Usage02
11
CPU 처리량이
많은 작업
대용량 파일 처리가
많은 작업BAD
GOOD
I/O 작업 少
Messaging
Application
03 MQTT
12
MQTT(Message Queuing Telemetry Transfer)란?03
13
경량의 Publish/Subscribe
Messaging 프로토콜
M2M(Machine to Machine)
& IoT(Internet of Things) 저전력 & 저대역폭 환경
최적화
Message를 Topic으로
분류 가능
Publish / Subscribe03
14
 Publisher : broker에게 topic을 발행
 Subscriber : broker에서 topic을 구독
 한 client가 pub와 sub의 역할 모두 가능
 다수의 client가 하나의 topic 구독 가능
Topic03
15
 slash(/)를 이용한 계층적 구조
 원하는 topic 선택하여 subscribe
 대량의 센서 기기 효율적으로 관리 가능
 MQTT : Message Bus 시스템
 bus에 붙은 application들이
message를 읽음
 메시지 구분을 위해 Topic 사용
Example03
16
▲ MQTT pub/sub example
Topic
“temperature”에
대한 data
MQTT
Broker
Topic – Wildcard03
17
Single-level
 단일 topic level을 구성하는 wildcard
 1개의 level만 선택
Topic – Wildcard03
18
Multi-level
 다중 topic level을 구성하는 wildcard
 topic내의 임의 수의 level를 선택(0개 이상)
 topic의 마지막에만 사용 가능
QoS(Quality of Service)03
19
원격 네트워크
No TCP/IP와 TCP/IP가 섞인
로컬 네트워크
 Type 0 : 메시지는 최대 한번 전달되며, 전달여부를 확인하지 않는다. Fire and Forget 타입이다.
 Type 1 : 메시지는 반드시 한번 이상 전달된다. 하지만 메시지의 handshaking 과정을 엄밀하게
추적하지 않기 때문에, 중복 전송될 수도 있다.
 Type 2 : 메시지는 한번만 전달된다. 메시지의 handshaking 과정을 추적한다.
높은 품질을 보장하지만 성능의 희생이 따른다.
Pros and Cons03
20
 각 Node는 Broker의 주소만 알면 됨
 가벼운 Message → Battery 소모량 & Packet 전송량 少
 너무 많은 Node로 인한 Broker의 Bottleneck 현상
 하나의 Topic을 공유하는 경우 Message의 순차적 처리 보장 X
21
04 결론
문제점
22
04
 Wildcard의 잘못된 사용 시 구독하면 안되는 topic을 전달하는 등
보안 관련 문제 발생 가능성 존재
thin G/W
smart
cloud
thin G/W
Request subscribing
ex) topic “#”
(get all topic)
Sensors
Attacker
Can subscribe all topic
“#”
문제점
23
04
 HiveMQ : MQTT broker open source
 subscriber가 ‘#’ 요청 시 block
 제한된 connection(최대 25개)
 Topic subscribe 보안에 관한 open source 수가 적음
 제한된 connection 등 제약 존재
 최소한의 보안만 적용
향후 계획
24
04
 Subscribe 시 broker에서 client를 판단한 후
subscribe가 가능한 topic을 전송할 수 있도록 개발
thin G/W
smart
cloud
thin G/W
Request subscribing
ex) topic “#”
(get all topic)
Sensors
Attacker
“#”
Error!
Thank You!!
QnA
25

Mais conteúdo relacionado

Mais procurados

Mqtt 소개
Mqtt 소개Mqtt 소개
Mqtt 소개Junho Lee
 
150416 OpenStack Networking with Neutron Jieun, Kim
150416 OpenStack Networking with Neutron Jieun, Kim150416 OpenStack Networking with Neutron Jieun, Kim
150416 OpenStack Networking with Neutron Jieun, Kimjieun kim
 
Node-express 채팅 서버 개발기
Node-express 채팅 서버 개발기Node-express 채팅 서버 개발기
Node-express 채팅 서버 개발기정웅 박
 
[2D7]레기온즈로 살펴보는 확장 가능한 게임서버의 구현
[2D7]레기온즈로 살펴보는 확장 가능한 게임서버의 구현[2D7]레기온즈로 살펴보는 확장 가능한 게임서버의 구현
[2D7]레기온즈로 살펴보는 확장 가능한 게임서버의 구현NAVER D2
 
Twitter의 snowflake 소개 및 활용
Twitter의 snowflake 소개 및 활용Twitter의 snowflake 소개 및 활용
Twitter의 snowflake 소개 및 활용흥배 최
 
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?내훈 정
 
(2013 DEVIEW) 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
(2013 DEVIEW) 멀티쓰레드 프로그래밍이  왜이리 힘드나요? (2013 DEVIEW) 멀티쓰레드 프로그래밍이  왜이리 힘드나요?
(2013 DEVIEW) 멀티쓰레드 프로그래밍이 왜이리 힘드나요? 내훈 정
 
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이 왜 이리 힘드나요? (Lock-free에서 Transactional Memory까지)
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이  왜 이리 힘드나요?  (Lock-free에서 Transactional Memory까지)Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이  왜 이리 힘드나요?  (Lock-free에서 Transactional Memory까지)
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이 왜 이리 힘드나요? (Lock-free에서 Transactional Memory까지)내훈 정
 
[160402_데브루키_박민근] UniRx 소개
[160402_데브루키_박민근] UniRx 소개[160402_데브루키_박민근] UniRx 소개
[160402_데브루키_박민근] UniRx 소개MinGeun Park
 
Python socket programming
Python socket programmingPython socket programming
Python socket programmingTae Young Lee
 
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화sung ki choi
 
Mongo db in use(naver)
Mongo db in use(naver)Mongo db in use(naver)
Mongo db in use(naver)InBum Kim
 
[2B7]시즌2 멀티쓰레드프로그래밍이 왜 이리 힘드나요
[2B7]시즌2 멀티쓰레드프로그래밍이 왜 이리 힘드나요[2B7]시즌2 멀티쓰레드프로그래밍이 왜 이리 힘드나요
[2B7]시즌2 멀티쓰레드프로그래밍이 왜 이리 힘드나요NAVER D2
 
[20160620]CCTV 구현 자료
[20160620]CCTV 구현 자료[20160620]CCTV 구현 자료
[20160620]CCTV 구현 자료Kyunghee Univ
 
Get started with netty
Get started with nettyGet started with netty
Get started with netty창규 김
 
Network Project
Network ProjectNetwork Project
Network ProjectMinho Yoo
 
Rabbitmq install한글
Rabbitmq install한글Rabbitmq install한글
Rabbitmq install한글Sukjin Yun
 

Mais procurados (20)

Mqtt 소개
Mqtt 소개Mqtt 소개
Mqtt 소개
 
150416 OpenStack Networking with Neutron Jieun, Kim
150416 OpenStack Networking with Neutron Jieun, Kim150416 OpenStack Networking with Neutron Jieun, Kim
150416 OpenStack Networking with Neutron Jieun, Kim
 
Node-express 채팅 서버 개발기
Node-express 채팅 서버 개발기Node-express 채팅 서버 개발기
Node-express 채팅 서버 개발기
 
[2D7]레기온즈로 살펴보는 확장 가능한 게임서버의 구현
[2D7]레기온즈로 살펴보는 확장 가능한 게임서버의 구현[2D7]레기온즈로 살펴보는 확장 가능한 게임서버의 구현
[2D7]레기온즈로 살펴보는 확장 가능한 게임서버의 구현
 
Twitter의 snowflake 소개 및 활용
Twitter의 snowflake 소개 및 활용Twitter의 snowflake 소개 및 활용
Twitter의 snowflake 소개 및 활용
 
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
 
(2013 DEVIEW) 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
(2013 DEVIEW) 멀티쓰레드 프로그래밍이  왜이리 힘드나요? (2013 DEVIEW) 멀티쓰레드 프로그래밍이  왜이리 힘드나요?
(2013 DEVIEW) 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
 
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이 왜 이리 힘드나요? (Lock-free에서 Transactional Memory까지)
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이  왜 이리 힘드나요?  (Lock-free에서 Transactional Memory까지)Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이  왜 이리 힘드나요?  (Lock-free에서 Transactional Memory까지)
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이 왜 이리 힘드나요? (Lock-free에서 Transactional Memory까지)
 
[160402_데브루키_박민근] UniRx 소개
[160402_데브루키_박민근] UniRx 소개[160402_데브루키_박민근] UniRx 소개
[160402_데브루키_박민근] UniRx 소개
 
Python socket programming
Python socket programmingPython socket programming
Python socket programming
 
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
 
Mongo db in use(naver)
Mongo db in use(naver)Mongo db in use(naver)
Mongo db in use(naver)
 
[2B7]시즌2 멀티쓰레드프로그래밍이 왜 이리 힘드나요
[2B7]시즌2 멀티쓰레드프로그래밍이 왜 이리 힘드나요[2B7]시즌2 멀티쓰레드프로그래밍이 왜 이리 힘드나요
[2B7]시즌2 멀티쓰레드프로그래밍이 왜 이리 힘드나요
 
Batman project
Batman projectBatman project
Batman project
 
Lock free queue
Lock free queueLock free queue
Lock free queue
 
[20160620]CCTV 구현 자료
[20160620]CCTV 구현 자료[20160620]CCTV 구현 자료
[20160620]CCTV 구현 자료
 
Get started with netty
Get started with nettyGet started with netty
Get started with netty
 
Network Project
Network ProjectNetwork Project
Network Project
 
네트워크 기본
네트워크 기본네트워크 기본
네트워크 기본
 
Rabbitmq install한글
Rabbitmq install한글Rabbitmq install한글
Rabbitmq install한글
 

Destaque

Building the Internet of Things with Raspberry Pi
Building the Internet of Things with Raspberry PiBuilding the Internet of Things with Raspberry Pi
Building the Internet of Things with Raspberry PiNeil Broers
 
모바일 메신저 아키텍쳐 소개
모바일 메신저 아키텍쳐 소개모바일 메신저 아키텍쳐 소개
모바일 메신저 아키텍쳐 소개Hyogi Jung
 
MQTT - A practical protocol for the Internet of Things
MQTT - A practical protocol for the Internet of ThingsMQTT - A practical protocol for the Internet of Things
MQTT - A practical protocol for the Internet of ThingsBryan Boyd
 
Rasberry nodejs install_final
Rasberry nodejs install_finalRasberry nodejs install_final
Rasberry nodejs install_finalKwan Yeong Kim
 
How close are we to the 3D printed house?
How close are we to the 3D printed house?How close are we to the 3D printed house?
How close are we to the 3D printed house?Alex Whitcroft
 
MQTT on Raspberry Pi with node.js
MQTT on Raspberry Pi with node.jsMQTT on Raspberry Pi with node.js
MQTT on Raspberry Pi with node.jsPaul Tanner
 
Leveraging Android for the Internet of Things with Eclipse M2M
Leveraging Android for the Internet of Things with Eclipse M2MLeveraging Android for the Internet of Things with Eclipse M2M
Leveraging Android for the Internet of Things with Eclipse M2MBenjamin Cabé
 
Node.js
Node.jsNode.js
Node.jsymtech
 
Beacons, Raspberry Pi & Node.js
Beacons, Raspberry Pi & Node.jsBeacons, Raspberry Pi & Node.js
Beacons, Raspberry Pi & Node.jsJeff Prestes
 
Create connected home devices using a Raspberry Pi, Siri and ESPNow for makers.
Create connected home devices using a Raspberry Pi, Siri and ESPNow for makers.Create connected home devices using a Raspberry Pi, Siri and ESPNow for makers.
Create connected home devices using a Raspberry Pi, Siri and ESPNow for makers.Nat Weerawan
 
Internet das coisas (IoT) com Raspberry, Python e Node.js
Internet das coisas (IoT) com Raspberry, Python e Node.jsInternet das coisas (IoT) com Raspberry, Python e Node.js
Internet das coisas (IoT) com Raspberry, Python e Node.jsOtávio Calaça Xavier
 
An introduction to workflow-based programming with Node-RED
An introduction to workflow-based programming with Node-REDAn introduction to workflow-based programming with Node-RED
An introduction to workflow-based programming with Node-REDBoris Adryan
 
[IoT] MAKE with Open H/W + Node.JS - 1st
[IoT] MAKE with Open H/W + Node.JS - 1st[IoT] MAKE with Open H/W + Node.JS - 1st
[IoT] MAKE with Open H/W + Node.JS - 1stPark Jonggun
 
Elasticsearch 설치 및 기본 활용
Elasticsearch 설치 및 기본 활용Elasticsearch 설치 및 기본 활용
Elasticsearch 설치 및 기본 활용종민 김
 
Node.js의 도입과 활용
Node.js의 도입과 활용Node.js의 도입과 활용
Node.js의 도입과 활용Jin wook
 
NodeJs로 디바이스 통신하기
NodeJs로 디바이스 통신하기NodeJs로 디바이스 통신하기
NodeJs로 디바이스 통신하기TaeYoung Kim
 
대단한 기술없이 반응형웹 UI 만들기
대단한 기술없이 반응형웹 UI 만들기대단한 기술없이 반응형웹 UI 만들기
대단한 기술없이 반응형웹 UI 만들기지수 윤
 
[1A5]효율적인안드로이드앱개발
[1A5]효율적인안드로이드앱개발[1A5]효율적인안드로이드앱개발
[1A5]효율적인안드로이드앱개발NAVER D2
 
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arcNAVER D2
 

Destaque (20)

Building the Internet of Things with Raspberry Pi
Building the Internet of Things with Raspberry PiBuilding the Internet of Things with Raspberry Pi
Building the Internet of Things with Raspberry Pi
 
모바일 메신저 아키텍쳐 소개
모바일 메신저 아키텍쳐 소개모바일 메신저 아키텍쳐 소개
모바일 메신저 아키텍쳐 소개
 
MQTT - A practical protocol for the Internet of Things
MQTT - A practical protocol for the Internet of ThingsMQTT - A practical protocol for the Internet of Things
MQTT - A practical protocol for the Internet of Things
 
Rasberry nodejs install_final
Rasberry nodejs install_finalRasberry nodejs install_final
Rasberry nodejs install_final
 
How close are we to the 3D printed house?
How close are we to the 3D printed house?How close are we to the 3D printed house?
How close are we to the 3D printed house?
 
MQTT on Raspberry Pi with node.js
MQTT on Raspberry Pi with node.jsMQTT on Raspberry Pi with node.js
MQTT on Raspberry Pi with node.js
 
Leveraging Android for the Internet of Things with Eclipse M2M
Leveraging Android for the Internet of Things with Eclipse M2MLeveraging Android for the Internet of Things with Eclipse M2M
Leveraging Android for the Internet of Things with Eclipse M2M
 
Node.js
Node.jsNode.js
Node.js
 
Beacons, Raspberry Pi & Node.js
Beacons, Raspberry Pi & Node.jsBeacons, Raspberry Pi & Node.js
Beacons, Raspberry Pi & Node.js
 
Create connected home devices using a Raspberry Pi, Siri and ESPNow for makers.
Create connected home devices using a Raspberry Pi, Siri and ESPNow for makers.Create connected home devices using a Raspberry Pi, Siri and ESPNow for makers.
Create connected home devices using a Raspberry Pi, Siri and ESPNow for makers.
 
Raspbeery PI IoT
Raspbeery PI IoTRaspbeery PI IoT
Raspbeery PI IoT
 
Internet das coisas (IoT) com Raspberry, Python e Node.js
Internet das coisas (IoT) com Raspberry, Python e Node.jsInternet das coisas (IoT) com Raspberry, Python e Node.js
Internet das coisas (IoT) com Raspberry, Python e Node.js
 
An introduction to workflow-based programming with Node-RED
An introduction to workflow-based programming with Node-REDAn introduction to workflow-based programming with Node-RED
An introduction to workflow-based programming with Node-RED
 
[IoT] MAKE with Open H/W + Node.JS - 1st
[IoT] MAKE with Open H/W + Node.JS - 1st[IoT] MAKE with Open H/W + Node.JS - 1st
[IoT] MAKE with Open H/W + Node.JS - 1st
 
Elasticsearch 설치 및 기본 활용
Elasticsearch 설치 및 기본 활용Elasticsearch 설치 및 기본 활용
Elasticsearch 설치 및 기본 활용
 
Node.js의 도입과 활용
Node.js의 도입과 활용Node.js의 도입과 활용
Node.js의 도입과 활용
 
NodeJs로 디바이스 통신하기
NodeJs로 디바이스 통신하기NodeJs로 디바이스 통신하기
NodeJs로 디바이스 통신하기
 
대단한 기술없이 반응형웹 UI 만들기
대단한 기술없이 반응형웹 UI 만들기대단한 기술없이 반응형웹 UI 만들기
대단한 기술없이 반응형웹 UI 만들기
 
[1A5]효율적인안드로이드앱개발
[1A5]효율적인안드로이드앱개발[1A5]효율적인안드로이드앱개발
[1A5]효율적인안드로이드앱개발
 
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
 

Semelhante a [16.01.05] node.js & mqtt

[242]open stack neutron dataplane 구현
[242]open stack neutron   dataplane 구현[242]open stack neutron   dataplane 구현
[242]open stack neutron dataplane 구현NAVER D2
 
Rhea mmo node_for_share
Rhea mmo node_for_shareRhea mmo node_for_share
Rhea mmo node_for_shareRhea Strike
 
Block chain architecture and hyperledger fabric overview
Block chain architecture and hyperledger fabric overviewBlock chain architecture and hyperledger fabric overview
Block chain architecture and hyperledger fabric overview병준 김
 
Icmp Attak Against Tcp
Icmp Attak Against TcpIcmp Attak Against Tcp
Icmp Attak Against Tcpxyzlee
 
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Larva - Cloud-Barista 인큐베이터(Cloud-Barista Incu...
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Larva - Cloud-Barista 인큐베이터(Cloud-Barista Incu...Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Larva - Cloud-Barista 인큐베이터(Cloud-Barista Incu...
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Larva - Cloud-Barista 인큐베이터(Cloud-Barista Incu...Cloud-Barista Community
 
[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험NHN FORWARD
 
Tcp ip & io model
Tcp ip & io modelTcp ip & io model
Tcp ip & io modelNam Hyeonuk
 
Nodejs발표자료 - 팀 세미나용
Nodejs발표자료 - 팀 세미나용 Nodejs발표자료 - 팀 세미나용
Nodejs발표자료 - 팀 세미나용 SuHyun Jeon
 
3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)
3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)
3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)KH Park (박경훈)
 
multi-thread 어플리케이션에 대해 모든 개발자가 알아 두지 않으면 안 되는 것
multi-thread 어플리케이션에 대해 모든 개발자가 알아 두지 않으면 안 되는 것multi-thread 어플리케이션에 대해 모든 개발자가 알아 두지 않으면 안 되는 것
multi-thread 어플리케이션에 대해 모든 개발자가 알아 두지 않으면 안 되는 것흥배 최
 
Quic을 이용한 네트워크 성능 개선
 Quic을 이용한 네트워크 성능 개선 Quic을 이용한 네트워크 성능 개선
Quic을 이용한 네트워크 성능 개선NAVER D2
 
소켓프로그래밍 기초요약
소켓프로그래밍 기초요약소켓프로그래밍 기초요약
소켓프로그래밍 기초요약세빈 정
 
네트워크 프로그래밍 입출력 다중화 & 논블록소켓
네트워크 프로그래밍 입출력 다중화 & 논블록소켓네트워크 프로그래밍 입출력 다중화 & 논블록소켓
네트워크 프로그래밍 입출력 다중화 & 논블록소켓Eutark Park
 
Mongo db 2.x to 3.x
Mongo db 2.x to 3.xMongo db 2.x to 3.x
Mongo db 2.x to 3.xInBum Kim
 
오픈스택 멀티노드 설치 후기
오픈스택 멀티노드 설치 후기오픈스택 멀티노드 설치 후기
오픈스택 멀티노드 설치 후기영우 김
 
Block chain bidding_System
Block chain bidding_SystemBlock chain bidding_System
Block chain bidding_System환석 주
 
중급 소켓프로그래밍
중급 소켓프로그래밍중급 소켓프로그래밍
중급 소켓프로그래밍quxn6
 

Semelhante a [16.01.05] node.js & mqtt (19)

[242]open stack neutron dataplane 구현
[242]open stack neutron   dataplane 구현[242]open stack neutron   dataplane 구현
[242]open stack neutron dataplane 구현
 
Rhea mmo node_for_share
Rhea mmo node_for_shareRhea mmo node_for_share
Rhea mmo node_for_share
 
Block chain architecture and hyperledger fabric overview
Block chain architecture and hyperledger fabric overviewBlock chain architecture and hyperledger fabric overview
Block chain architecture and hyperledger fabric overview
 
Wisepush
WisepushWisepush
Wisepush
 
Icmp Attak Against Tcp
Icmp Attak Against TcpIcmp Attak Against Tcp
Icmp Attak Against Tcp
 
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Larva - Cloud-Barista 인큐베이터(Cloud-Barista Incu...
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Larva - Cloud-Barista 인큐베이터(Cloud-Barista Incu...Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Larva - Cloud-Barista 인큐베이터(Cloud-Barista Incu...
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Larva - Cloud-Barista 인큐베이터(Cloud-Barista Incu...
 
[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험
 
Tcp ip & io model
Tcp ip & io modelTcp ip & io model
Tcp ip & io model
 
Nodejs발표자료 - 팀 세미나용
Nodejs발표자료 - 팀 세미나용 Nodejs발표자료 - 팀 세미나용
Nodejs발표자료 - 팀 세미나용
 
3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)
3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)
3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)
 
multi-thread 어플리케이션에 대해 모든 개발자가 알아 두지 않으면 안 되는 것
multi-thread 어플리케이션에 대해 모든 개발자가 알아 두지 않으면 안 되는 것multi-thread 어플리케이션에 대해 모든 개발자가 알아 두지 않으면 안 되는 것
multi-thread 어플리케이션에 대해 모든 개발자가 알아 두지 않으면 안 되는 것
 
Quic을 이용한 네트워크 성능 개선
 Quic을 이용한 네트워크 성능 개선 Quic을 이용한 네트워크 성능 개선
Quic을 이용한 네트워크 성능 개선
 
소켓프로그래밍 기초요약
소켓프로그래밍 기초요약소켓프로그래밍 기초요약
소켓프로그래밍 기초요약
 
네트워크 프로그래밍 입출력 다중화 & 논블록소켓
네트워크 프로그래밍 입출력 다중화 & 논블록소켓네트워크 프로그래밍 입출력 다중화 & 논블록소켓
네트워크 프로그래밍 입출력 다중화 & 논블록소켓
 
Mongo db 2.x to 3.x
Mongo db 2.x to 3.xMongo db 2.x to 3.x
Mongo db 2.x to 3.x
 
오픈스택 멀티노드 설치 후기
오픈스택 멀티노드 설치 후기오픈스택 멀티노드 설치 후기
오픈스택 멀티노드 설치 후기
 
Block chain bidding_System
Block chain bidding_SystemBlock chain bidding_System
Block chain bidding_System
 
중급 소켓프로그래밍
중급 소켓프로그래밍중급 소켓프로그래밍
중급 소켓프로그래밍
 
리로그인 Relogin: 코드스테이츠 데모데이
리로그인 Relogin: 코드스테이츠 데모데이리로그인 Relogin: 코드스테이츠 데모데이
리로그인 Relogin: 코드스테이츠 데모데이
 

[16.01.05] node.js & mqtt

  • 1. Node.js & MQTT 발표자 : 박나연 발표 날짜 : 2016. 1. 5. TUE 소속 : Kocom 지도교수 : 허의남 교수님
  • 4. 개발 기술 개념도01 4 스마트 클라우드 통합 서비스 플랫폼을 이용한 복합 센서 시스템 Node.js MQTT
  • 6. Node.js 란?02 Google의 JavaScript V8 엔진 기반 Server Side Web Application 제작 환경 제공 실시간 통신 6 Single Thread 기반 Non-blocking I/O
  • 7. Google V8 Engine02 7  구글의 JavaScript 엔진(http://code.google.com/p/v8)  JIT(Just In Time) 컴파일 방식 사용 : 실행 즉시 machine language로 컴파일  chrome과 android browser에 탑재
  • 8. Multi-Thread02 8  Multi-Thread : client의 요청마다 thread를 발생 → memory 자원 소모 多  복잡한 동기화와 lock
  • 9. Synchronous VS Asynchronous02 9  Synchronous - 하나의 요청이 처리되는 동안 다른 요청 처리 불가 → Blocking I/O  Asynchronous - 요청 처리가 완료되기 전에 다음 요청으로 제어권을 넘김 → Non-Blocking I/O
  • 10. Single Thread & Non-blocking I/O02 10  Event Loop : 내부적으로 약간의 thread와 process를 사용  Non-blocking I/O : 비동기 처리를 통해 요청을 처리하는 중에 다른 요청 수신 가능  Single-Thread : overhead가 적음
  • 11. Usage02 11 CPU 처리량이 많은 작업 대용량 파일 처리가 많은 작업BAD GOOD I/O 작업 少 Messaging Application
  • 13. MQTT(Message Queuing Telemetry Transfer)란?03 13 경량의 Publish/Subscribe Messaging 프로토콜 M2M(Machine to Machine) & IoT(Internet of Things) 저전력 & 저대역폭 환경 최적화 Message를 Topic으로 분류 가능
  • 14. Publish / Subscribe03 14  Publisher : broker에게 topic을 발행  Subscriber : broker에서 topic을 구독  한 client가 pub와 sub의 역할 모두 가능  다수의 client가 하나의 topic 구독 가능
  • 15. Topic03 15  slash(/)를 이용한 계층적 구조  원하는 topic 선택하여 subscribe  대량의 센서 기기 효율적으로 관리 가능  MQTT : Message Bus 시스템  bus에 붙은 application들이 message를 읽음  메시지 구분을 위해 Topic 사용
  • 16. Example03 16 ▲ MQTT pub/sub example Topic “temperature”에 대한 data MQTT Broker
  • 17. Topic – Wildcard03 17 Single-level  단일 topic level을 구성하는 wildcard  1개의 level만 선택
  • 18. Topic – Wildcard03 18 Multi-level  다중 topic level을 구성하는 wildcard  topic내의 임의 수의 level를 선택(0개 이상)  topic의 마지막에만 사용 가능
  • 19. QoS(Quality of Service)03 19 원격 네트워크 No TCP/IP와 TCP/IP가 섞인 로컬 네트워크  Type 0 : 메시지는 최대 한번 전달되며, 전달여부를 확인하지 않는다. Fire and Forget 타입이다.  Type 1 : 메시지는 반드시 한번 이상 전달된다. 하지만 메시지의 handshaking 과정을 엄밀하게 추적하지 않기 때문에, 중복 전송될 수도 있다.  Type 2 : 메시지는 한번만 전달된다. 메시지의 handshaking 과정을 추적한다. 높은 품질을 보장하지만 성능의 희생이 따른다.
  • 20. Pros and Cons03 20  각 Node는 Broker의 주소만 알면 됨  가벼운 Message → Battery 소모량 & Packet 전송량 少  너무 많은 Node로 인한 Broker의 Bottleneck 현상  하나의 Topic을 공유하는 경우 Message의 순차적 처리 보장 X
  • 22. 문제점 22 04  Wildcard의 잘못된 사용 시 구독하면 안되는 topic을 전달하는 등 보안 관련 문제 발생 가능성 존재 thin G/W smart cloud thin G/W Request subscribing ex) topic “#” (get all topic) Sensors Attacker Can subscribe all topic “#”
  • 23. 문제점 23 04  HiveMQ : MQTT broker open source  subscriber가 ‘#’ 요청 시 block  제한된 connection(최대 25개)  Topic subscribe 보안에 관한 open source 수가 적음  제한된 connection 등 제약 존재  최소한의 보안만 적용
  • 24. 향후 계획 24 04  Subscribe 시 broker에서 client를 판단한 후 subscribe가 가능한 topic을 전송할 수 있도록 개발 thin G/W smart cloud thin G/W Request subscribing ex) topic “#” (get all topic) Sensors Attacker “#” Error!