임베디드 프로그래밍 Lecture #10 2017. 12. 04.

Slides:



Advertisements
Similar presentations
1 08 시스템 구성도 고려사항 * 웹 서버 클러스터 구성  클러스터 구축은 ㈜ 클루닉스의 Encluster 로 구축 (KT 인증,IT 인증 획득, 실제 클러스터 구축 사이트 200 여곳 )  웹 서버 클러스터는 Dynamic, Static, Image.
Advertisements

2008 년 11 월 20 일 실습.  실험제목 ◦ 데이터베이스 커넥션 풀  목표 ◦ 데이터베이스 커넥션 풀의 사용.
.Net History. Visual Studio.Net 2002 /.Net Framework 1.0 제품의 버전 / 특징 2002 년 - Visual Studio.Net 2002 /.Net Framework 1.0 첫 통합 개발 환경 - C# 언어 등장 (C# 1.0)
컴퓨터와 인터넷.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
Oozie Web API 기능 테스트 이승엽.
GTK 프로그래밍 ( 1 ) SNSLAB 발표 : 문동규.
자바 언어의 이해 Understanding of Java Programming
RTP,RTSP의 개요 및 동작과정 장민환 조효철.
4강. Servlet 맛보기 Servlet 문서 작성 하기 web.xml에 서블릿 맵핑 어노테이션을 이용한 서블릿 맵핑
Network Lab. Young-Chul Hwang
24 장 TCP/IP 24.1 개요 24.2 네트워크층 24.3 주소 지정 24.4 서브넷팅틍
임베디드 프로그래밍 Lecture #
VoIP (Voice Over Internet Protocol)
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
31강 JAVA 네트워크 JAVA 네트워크 InetAdress, URLConnection 클래스 Socket의 이해
네트워킹 CHAPTER 13 Section 1 네트워킹의 개요와 java.net 패키지 Section 2 인터넷 주소와 URL
임베디드 프로그래밍 Lecture #
11 장 LAN 기본 개념과 Ethernet LAN
Visual Basic .NET 처음 사용하기.
Capstone-Design : IoTeam Introduction Abstract
Chapter 21 Network Layer: ARP, ICMP (IGMP).
Chapter 06. UDP 서버/클라이언트.
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
NJM Messenger 박상원 박연호.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
모바일 자바 프로그래밍 JDBC / WAP Ps lab 오민경.
01. DHCP의 개념 조직의 네트워크에 연결되어 있는 워크스테이션의 TCP/IP 설정을 자동화하기 위한 표준 프로토콜
ARP Project 조 충 호 교수님 김 세 진 조교님 조 진 형 변 익 수
고급 시스템 프로그래밍 및 실습 Term Project : Qt 프로그래밍을 이용한 오목 게임
17장 X.25 패킷 교환망 17.1 X.25 계층 17.2 X.25와 관련된 기타 프로토콜 17.3 요약.
Wireless Java Programming
Chapter 19 솔라리스 네트워크 관리 Solaris1 . TCP/IP 개요
2장. 인터넷의 개념과 주소.
22 장 전송층(Transport Layer)
RMI Messenger 지도 : 김정배 교수님 조봉진.
Smart Workplace 개발자 가이드
21 장 전송층(Transport Layer)
USN(Ubiquitous Sensor Network)
Internet 데이터 전송 목표: 인터넷의 개요 및 기본 내용을 살펴보고 VB에서의 데이터 전송 프로그래밍에 대하여 학습한다. 주요내용 인터넷의 개요 인터넷 데이터 전송 인터넷 프로그래밍 Winsock Client Server 프로그래밍.
Tiny OS와 NesC Tiny OS Part1. Won Mi Sun – 17 지능제어 연구실.
MAIL CLIENT 김창우 윤성훈 이경재.
모바일 자바 프로그래밍 J2ME 개발 살펴보기 Ps lab 오민경.
-네트워크 관리 개요 및 SNMP 프로토콜 동작과정
Packet sniffing 응용 레벨이 아닌 네트워크 디바이스 레벨에서의 데이타을 얻는 것 네트워크 상의 트래픽을 분석
2 네트워크 모델 학습 목표 모듈 개념을 알아보고 계층 구조의 필요성을 이해한다.
Self Introduction Template PowerPoint
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
프로젝트 제안서 -TCP/IP를 이용한 메신저 구현-
Distributed Multimedia System Lab.
01. DHCP의 개념 조직의 네트워크에 연결되어 있는 워크스테이션의 TCP/IP 설정을 자동화하기 위한 표준 프로토콜
01. 개요 네트워크에 있는 컴퓨터와 그룹에 대한 NetBIOS 이름에 대응되는 IP 주소를 찾아주는 서비스
홈 네트워크 시스템 Home Network System.
Introduction to JSP & Servlet
컴퓨터 소프트웨어 설계 및 실험 년 1학기 실험계획 -.
~27 윤형기 Python 프로그래밍 (보충) ~27 윤형기
모바일(폰)메일 서비스 정흠수 최동훈.
다자간 채팅프로그램 김형도 허영민
08. 소프트웨어 아키텍처 설계 전략 명지대학교 융합소프트웨어학부 김정호 교수.
프로그래밍 언어 학습을 위한 가상실습환경 창원대학교 이수현.
소리가 작으면 이어폰 사용 권장!.
Wake On Lan 발표자: 김 홍 기 김홍기 조성오
KSP 메신저 김광민 서정건 박윤옥.
Network Lab. Young-Chul Hwang
CHAP 15. 데이터 스토리지.
M.B.TEAM 중간 발표 (5.18) 이 제걸 백 인호.
Wireless Java Programming
JAVA 프로그래밍 16장 JNLP.
소리가 작으면 이어폰 사용 권장!.
홈 네트워크 시스템 Home Network System.
Presentation transcript:

임베디드 프로그래밍 Lecture #10 2017. 12. 04

목 차 MQTT Protocol 개요 MQTT Protocol 테스트 MQTT 기반 IoT Service 구현

MQTT Protocol (1) MQTT Protocol 개요 a lightweight Publish/Subscribe(Pub/Sub) protocol for IoT or M2M messaging IoT를 위해 낮은 전력, 낮은 대역폭 환경에서도 사용할 수 있도록 설계 Open spec, standard Lightweight : minimal overhead, efficient format, tiny client Reliable : QoS for reliability on unreliable networks Simple : 43-page spec, connect-publish-subscribe

MQTT Protocol (2) MQTT Protocol 개요 : 응용 저전력, 신뢰할 수 없는 네트워크, No TCP/IP 기반에서 운용 가능 소형 기기의 제어와 센서 정보 수집에 유리

MQTT Protocol (3) MQTT Protocol 개요 : 응용 센서(Sensor) 정보 수집 제어 가전기기, 빌딩, 도시, 산업, 개인 등 다양한 영역에서의 센서 정보를 수집 LAN(가정/소규모 오피스), PAN(개인 네트워크), BAN(빌딩 네트워크), MAN(도시 영 역 네트워크)등에서 사용 가능 제어 센서로부터 받은 데이터를 토대로 기기들을 제어 각 기기에 MQTT broker를 설치하거나 혹은 중앙에 있는 MQTT broker에 bind 할 수 있어야 한다 Message Push Server 모바일 애플리케이션을 위한 메시지 Push 서버로 사용 가능 MQTT의 특징을 살려서 낮은 전력에서 작동하는 Push 서비스를 만들 수 있다 페이스북의 경우 MQTT를 이용해서 메시지를 push 서비스 제공

MQTT Protocol (4) MQTT Message 전송 방식 bi-directional, async “push” communication Connect-publish-subscribe

MQTT Protocol (5) MQTT Message 전송 방식 : Pub-Sub 구조 pub/sub decouples senders from receivers

MQTT Protocol (6) MQTT Message 전송 방식 : Pub-Sub 구조 Publisher과 Subscriber은 Broker에 대한 클라이언트로 동작 토픽(topic)을 통해 메시지 전송 Publisher는 토픽을 발행 / Subscriber은 토픽을 구독 하나 이상의 Pub와 Sub가 브로커에 연결해서 토픽을 발행하거나 구독 다수의 Sub가 하나의 토픽을 구독 가능

MQTT Protocol (7) MQTT Message 전송 방식 : 통신 단계 Step 1. 연결 단계

MQTT Protocol (8) MQTT Message 전송 방식 : Topic Publisher과 Subscriber 사이의 메시지 전송 채널(Channel) 슬래시(/)를 이용하여 계층적으로 구성  대량의 센서 기기들을 효율적으로 관리 가능

MQTT Protocol (9) MQTT Message 전송 방식 : Topic wildcard subscriptions 허용

variable header를 포함한 전체 메시지의 크기를 계산 MQTT Protocol (10) MQTT Message 포맷 작은 헤드 크기 – publish 2 bytes, connect 14 bytes Fixed Header (2 bytes) variable header를 포함한 전체 메시지의 크기를 계산

MQTT Protocol (11) MQTT Message 포맷 Message type

MQTT Protocol (12) MQTT Message 포맷 Variable header 어떤 MQTT 명령들은 가변(variable) 헤더 요소를 포함 protocol name MQTT CONNECT메시지에서 사용 UTF-8 인코딩된 프로토콜 이름이 사용 Protocol version MQTT CONNECT메시지와 함께 사용 8-bit unsigned 값을 이용해서 프로토콜 버전을 설정 현재 프로토콜 버전은 3(0x03) Topic name MQTT PUBLISH 메시지에 포함 payload에 포함된 데이터를 published 할 때 사용하는 채널 이름 UTF-8 인코딩된 값을 사용, 32,767의 길이 제한

MQTT Protocol (13) MQTT QoS(Quality of Service) 신뢰성 있는 메시지 전송 지원

MQTT Protocol (14) MQTT QoS(Quality of Service) QoS 2 레벨의 제어 패킷 송수신

MQTT Protocol (15) MQTT Message Payload agnostic payload for flexible delivery

MQTT Protocol (16) MQTT Message Caching retained messages for last value caching

MQTT Protocol (17) MQTT Security

MQTT Protocol 테스트 (1) MQTT Protocol 라이브러리 Californium Java-based COAP protocol library 이클립스 재단 Californium-core, element-connector

MQTT Protocol 테스트 (1) MQTT Broker 프로그램 ActiveMQ, RabbitMQ 등

MQTT Protocol 테스트 (2) MQTT Broker: ActiveMQ 아파치 재단에서 JMS(Java Message Service) 구현체로 시작 JMS 호환 프로토콜인 OpenWire 외에 Stomp, AMQP, MQTT 등을 지원 EIP(Enterprise Integration Pattern)에 따라 여러 메시지 프로토콜을 기반 으로 시스템을 쉽게 통합할 수 있는 메시지 기반 미들웨어 MOM(Message-oriented Middleware) http://activemq.apache.org/

MQTT Protocol 테스트 (3) MQTT Broker: ActiveMQ ActiveMQ 실행 #> ${설치 디렉토리}/bin/activemq start ActiveMQ 종료 #> ${설치 디렉토리}/bin/activemq stop 실행 확인: #> sudo netstat –a | grep 1883

MQTT Protocol 테스트 (4) MQTT Protocol Java Library Paho 이클립스 재단에서 사물인터넷을 위한 프로젝트 중에 하나 http://www.eclipse.org/paho/ MQTT 프로토콜에 대한 클라이언트 라이브러리 제공 org.eclipse.paho.client.mqtt3 패키지

MQTT Protocol 테스트 (5) MQTT Protocol Java Library org.eclipse.paho.client.mqtt3 클래스 관계 테스트 프로그램 Simple MQTT Publisher Client Simple MQTT Subscriber Client

MQTT Protocol 테스트 (6) MQTT Protocol 개발 지원 프로그램 현재 상용 또는 오픈 소스 형태로 다양한 개발 지원 프로그램이 존재 Paho.mqtt-spy https://github.com/eclipse/paho.mqtt-spy/wiki/Downloads 실행: #> java –jar mqtt-spy-1.0.0.jar

MQTT Protocol 테스트 (7) Simple MQTT Publisher Program

MQTT Protocol 테스트 (8) Simple MQTT Subscriber Program