Upload
na-yeon-park
View
65
Download
3
Embed Size (px)
Citation preview
경희대학교컴퓨터공학과
창의적종합설계
2016. 06. 13
2012104094 서민석
2013104074 박나연
2013104091 용찬호
개량된MQTT노드관리시스템을이용한학교알림서비스
Creative DesignPresentation
2/ 12
프로젝트소개
개량된MQTT Protocol
학교알림 서비스
수업 공지
식단 알림
온습도 알림
클라이언트APP
Android/IOS
개량된 MQTT 프로토콜을 이용한 학교 메시지 알림 서비스 각종 과목에 대한 수업 공지, 식단 알림, 온습도 알림 등을 받는다. 사용자는 안드로이드 및 IOS 애플리케이션에서 메시지를 받을 수 있다.
3/ 12
MQTT?
Publish-Subscribe 구조를 갖는 메시지 프로토콜 저전력, 저대역폭 등 모바일 및 IoT기기에 최적화
노드 수가 많아지면 일일이 관리 해주기 어렵다. Subscribe(구독)을 해야만 메시지를 받을 수 있다. 그룹 기반의 시스템에는 적합하지 않다. Connection 관리를 제공하지 않는다.
Subscriber
4/ 12
개량된MQTT 구조
기존 MQTT 구조
BrokerPublisher
연결을 맺은 뒤 필요한 Topic들을 일일이 구독
개량된 MQTT 구조
연결을 맺은 후 Monitor & DB에서 그룹화된 정보들을 전송
Subscriber GroupBrokerMonitor & DB
5/ 12
시스템구성도
DatabaseBroker MQTT Broker Module
Monitor Database Connector Connection Administrator
Holding Information User, Group Subscribe Log
Application (Client-1) Messaging Module Device Control Module
IoT Device (Client-1) Messaging Module Device Control Module
Publisher (Client-2) Publish Request Module
6/ 12
구조상세
Monitor
Database와 연결하여 각종 Topic에 대한 정보, User 정보, 사용자들의 구독정보 들을 주고 받음
Broker의 요청에 따라 정보를 전송 Keep-alive 등 Connection 관리
Broker
Publisher로부터 Publish 요청이 오면 Monitor에 데이터를 요청하여 Client에게 실제 메시지를 전송해주는 중간 서버
Publisher
특정 그룹에 대한 메시지 전송 요청을 Broker에게 전달 Web Publisher, 온습도 센서 등
Client
원하는 Topic을 구독 구독한 Topic의 메시지를 브로커에서 받음
7/ 12
그룹브로드캐스팅
DatabaseBroker Monitor
Publisher
①
① 그룹 브로드캐스팅 메시지 전송 요청② 해당 그룹 멤버 리스트를 Monitor에게 요청③ 그룹 리스트 요청④ 그룹에 해당되는 Client ID 리스트 반환⑤ Broker에게 Client ID 리스트 전송⑥ 해당 Client ID로 메시지 직접 전송
② ③
Subscriber Group
⑥
⑤ ④
※ Client는 구독 요청을 따로 하지 않아도 꼭 구독해야하는 것들은Publisher에 의해 구독하고 있는 상태이다.
8/ 12
그룹리스트와 Subscribe / Unsubscribe
그룹 리스트 확인에서Sub/Unsub 가능
창의적 종합설계 구독
창의적 종합설계
영상 처리
학생회관식단
연구실 온습도
자대 행정실
사용자는 클라이언트App에서 존재하는 그룹리스트를 확인할 수 있음
구독 시 해당 그룹의메시지가 publish 될 때
메시지를 수신
9/ 12
Connection 정보를통한Keep-Alive 조정
DatabaseBroker Monitor
①
① 연결 요청(Login)을 전송② Monitor에게 Login 요청을 위해 Client의 Username, 비밀번호 전송③ Database의 정보와 일치하는지 확인④ Database에서 일치한다는 Response 수신⑤ 연결 로그 정보를 Database에 저장⑥ 연결 로그 정보를 분석하여 Broker에게 특정 Client의 Keep-Alive 조정 요청 전송⑦ Client의 Keep-Alive 조정
②③
⑦ ⑥
④
Client
⑤
10/ 12
Client의멀티플랫폼을위한다양한언어 Porting
Web Publisher
Android IOS
다양한 언어로 MQTT Client를 래핑하여 구현 다양한 플랫폼에서 클라이언트 구동 가능 개발자의 환경에 따라 적절한 클라이언트 구현을 위한 Framework화
ClientLibrary
11/ 12
실행화면(Android)
로그인
화면
메인화면:
구독
그룹
표시
12/ 12
실행화면(Android)
그룹
리스트
및
구독
버튼
세부
메시지
정보
감사합니다.