7. Google V8 Engine02
7
구글의 JavaScript 엔진(http://code.google.com/p/v8)
JIT(Just In Time) 컴파일 방식 사용
: 실행 즉시 machine language로 컴파일
chrome과 android browser에 탑재
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가 적음
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 사용
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!