Top Banner
Smart Push 를 를를 MQ Telemetry 를를 Middleware, IBM
14

IBM MQTT Mobile Push Solution 소개서

Apr 14, 2017

Download

Mobile

Shaun Lee
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: IBM MQTT Mobile Push Solution 소개서

Smart Push 를 위한 MQ Telemetry 소개 Middleware, IBM

Page 2: IBM MQTT Mobile Push Solution 소개서

모바일 메시징을 위한 프로토콜 필요

• HTTP 는 인터넷 확산의 핵심 동력 , 그러나 – 단순한 request/response 메시징 모델– 무선을 위해 고려되지 않았음 . QoS 지원 없음– 모바일 네트워크에서 속도 및 신뢰도 저하– Polling 의 사용으로 인한 배터리 및 성능 문제

• 모바일 메시징의 도전과제– 경량성 : 디바이스 및 모바일 앱 등의 제한된 연산 환경에서 실행– 보편성 : 센서 , 장치 , 스마트 기기 , 일반 컴퓨터에서도 동작– 안정성 : 무선 네트워크의 낮은 전송 품질을 극복– 신뢰성 : 유실이나 중복이 허용되지 않는 업무 영역에도 가능– 유연성 : 사물 / 앱 – 컴퓨터간 양방향 통신을 지원– 신속성 : 오버헤드나 지연없이 빠르게 통신

HTTP IS NOT ENOUGH

Page 3: IBM MQTT Mobile Push Solution 소개서

MQTT: Smarter Planet 프로토콜

많은 것들을 연결하는 Publish & Subscribe 통신

컴퓨터가 아닌 작고 가벼운 것들에서 동작

예측할 수 없는 네트워크를 극복하는 신뢰성

Page 4: IBM MQTT Mobile Push Solution 소개서

MQTT: Smarter Planet 프로토콜

MQTT(MQ Telemetry Transport) 는 다음의 취지에 기반하여 설계 :• 양방향 N:N 통신을 지원하는 Publish/Subscribe 방식의 메시징 패러다임

• 실제 적용에 있어 모든 측면의 자원 사용을 최소화

• 취약한 네트워크 상의 예측할 수 없는 문제들을 극복• 잦은 단절 , 낮은 대역폭 , 높은 지체시간 (Latency), 디바이스의 계속적인 이동

• 클라이언트 앱이 매우 제한된 자원을 가질 것을 고려하여 설계• 컴퓨터가 아닌 장치 환경 : 센서 , 구동기 , RFID 리더 , 모바일 디바이스 , 스마트폰

• 신뢰성 있는 메시징을 위한 수준별 QoS(Quality of Service) 제공

• 소프트웨어나 디바이스 제조사가 프로토콜을 쉽게 응용할 수 있도록 공개

MQTT 프로토콜 : SCADA 와 같은 장치 통합 프로토콜에서 유래하여 제약이 많은 네트워크 환경에서 요구되는 기능과 안정성을 최소의 자원을 달성하도록 설계

근래에 와서는 기업의 핵심 역량으로 부상 중인 모바일 영역에 적합한 통신 기술

Page 5: IBM MQTT Mobile Push Solution 소개서

MQTT: 주요 특징 1

• 발표 후 10 년 이상 유지 / 발전 : 검증된 센서 / 장치 + 모바일 기기 프로토콜

• MQTT 프로토콜 스펙은 오픈 소스로 공개

• www.mqtt.org• 2012 년 Eclipse 오픈소스 M2M Working Group 내 M2M 프로젝트 (Paho) 에 MQTT

클라이언트 라이브러리 제공

• 단순하고 미니멀한 Pub/Sub 메시징 체제

• 기업 경계 밖의 Edge 네트워크 장치와 기업 내의 백엔드 애플리케이션 간 메시지 교환에 적합

• 간편한 메시징을 위한 직관적 verb set(connect/disconnect publish/subscribe) 제공

• 오버헤드를 최소화한 메시지 포맷

• 프로토콜 관련 부분은 비트 단위의 가변 길이 필드로 이루어진 헤더로 표현됨

• 가장 작은 메시지 헤더 사이즈는 2 byte• 단순 byte 배열 메시지로 송수신하며 별도 애플리케이션 헤더를 필요로 하지 않음

Page 6: IBM MQTT Mobile Push Solution 소개서

MQTT: 주요 특징 2

• Pub/Sub 에 있어서 세 가지 메시징 신뢰성을 위한 QoS 레벨 제공 :• 반드시 전달되어야 하는 중요 메시지에 대한 전달 보장

• 0 – 메시지가 최대 1 번 전달 , 유실 가능성 있음

• 1 – 메시지가 최소 1 번 전달 , 중복 전달 가능성 있음

• 2 – 메시지가 단 한 번 , 중복 없이 정합성 있게 전달

• 클라이언트와 서버 간의 연결을 잃었을 때 이를 보정하기 위한 자체 기능 :• Last will and testament: 클라이언트가 예고 없이 연결을 잃을 경우 이벤트가 서버에서 발생 ,

서버 측에서 연결의 유실 여부를 인지

• Durable subscription: 서버에 클라이언트의 구독 (subscription) 정보 저장됨 ,세션 종료 후 재접속 시에도 재작업 없이 Pub/Sub 유지

• Clean session 기능 : 연결 해제 후 다시 연결되었을 때의 이전 세션 유지 / 삭제 선택

Page 7: IBM MQTT Mobile Push Solution 소개서

MQTT: Public Push 의 제약 해결

Google GCM Apple APNS MQ Telemetry

양방향 통신 불가 :Push 만 가능

불가 :Push 만 가능

지원 :양방향 (Push/Push)

컨텐츠 텍스트 : 최대 4KB 텍스트 : 최대 4KB 모든 데이터 유형 지원 : 최대 256MB

서비스 수준 준수(SLA) QoS 전송시간(Latency)

미지원 : 전송 보장 / 확인 메커니즘 미제공 일관적이지 않은 전송 시간

미지원 : 가장 최근 메시지 한 건만 저장 일관적이지 않은 전송 시간

지원 : 전송 보장 / 확인 메커니즘에 대한 전적인 조절 / 제어권 확보

보안 네트워크 구간에 대해서는 제공 Google 서버에서 평문화됨 이용자가 제어할 수 없음

네트워크 구간에 대해서는 제공 APNS 서버에서 평문화됨 이용자가 제어할 수 없음

서드파티 개입이 없으므로 고도의 보안성 확보 : 양방향 ( 서버 /클라이언트 ) 인증 , 구간 암호화

Pub/Sub 메시징 지원

미지원 : Push 수신자들에 대해 개별적으로 송신해야 함 , 최대 1K 수신자에 대한 동시 송신

미지원 : Push 수신자들에 대해 개별적으로 송신해야 함 , 최대 연결 당 2K 동시 송신

지원 : 매우 많은 수 ( 수십만 , 수백만 )의 동시 사용자에 대한 메시지 발행

지원 플랫폼 Android iOS, Mac OS X Android, iOS 등의 모바일 플랫폼과 대부분의 서버 플랫폼 및 개발 환경 지원

MQTT 기반의 Smart Push 는 제한된 모바일 환경에서 최소의 자원만으로 기존 퍼블릭 Push 서비스의 제약 없이 양방향 메시지 전송을 위한 풍부한 기능을 구현하도록 돕습니다 .

Page 8: IBM MQTT Mobile Push Solution 소개서

MQ Telemetry: 대규모 연결을 위한 MQTT 서버업계 표준의 검증된 메시징 솔루션 MQ 에 기반한 MQ Telemetry 서버는 대규모 기업 환경에서의 Push Service 를 위한 성능과 신뢰성을 제공합니다 .

사실 상 업계 표준인 입증된 메시징 인프라

어떤 상황에서도 데이터 전달을 보증하는 고수준의 안정성

대규모 기업 환경을 지원하는 높은 메시징 성능

엔터프라이즈 수준의 보안성 제공

IBM MQMQ Telemetry

WebSphere MQ 의 안정성 / 성능에 기반

인스턴스 당 수십 만 이상의 동시 연결 유지

초 당 수천 건 이상의 메시징 성능

용이한 백엔드 연계 및 확장

MQTT클라이언트

1MQTT

클라이언트 2

MQTT클라이언트

n

MQTT 서버

WebSphere MQv7.1 큐 관리자

WebSphere MQ큐 관리자

MQTeleme-

try(MQXR)

MQPub/Sub

InfraMQTT채널

MQTT클라이언트

MQTT클라이언트

MQTT클라이언트

기업 내기간 업무

Page 9: IBM MQTT Mobile Push Solution 소개서

WebSphere MQ Telemetry 와 서버 / 클라이언트 앱 연계

모바일 애플리케이션

MQTT 클라이언트라이브러리

애플리케이션UI/ 로직

서버 애플리케이션

MQTT클라이언트라이브러리

애플리케이션UI/ 로직

MQ/JMS라이브러리

MQTT 서버

WebSphere MQv7.1 큐 관리자

WebSphere MQ큐 관리자

MQTeleme-

try(MQXR)

MQPub/Sub

InfraMQTT채널

MQ/JMSAPI

통신을 위해 MQTT 클라이언트 라이브러리 또는 기존의 MQ/JMS 라이브러리를 통해 MQTT 서버에 메시지 송신(Publish)

단말 앱이 MQTT 서버와 통신하기 위해 통신 부분은 MQTT 클라이언트로 개발 WebSphere MQ 큐관리자

구성 및 MQ Telemetry 서비스 설정 후 , MQTT 채널을 할당

Page 10: IBM MQTT Mobile Push Solution 소개서

MQ Telemetry - 보안

MQTT 서버

WebSphere MQ

v7.1 큐 관리자WebSphere MQ

큐 관리자

MQTelemet

ry(MQXR)

MQPub/Sub

InfraMQTT채널

외부 MQTT

클라이언트

외부 MQTT

클라이언트

외부 MQTT

클라이언트

내부 업무MQ 앱

내부 MQTT

클라이언트

SSL데이터 기밀성참여자 인증부인 방지

데이터 정합성

JAAS패스워드 기반참여자 인증

WMQWMQ 기반의

보안 서브시스템

OAM*Topic, Queue 별사용자 / 그룹 별

접근 제어

OAM*대단위 사용자에 대한 일괄 보안

프로필 적용

SSL

*WebSphere MQ 에 포함된 권한부여 체제로 Object Authority Manager 의 약자임

IBM 에서 구현한 엔터프라이즈용 MQTT 서버 기능이 WebSphere MQ 에 포함되어 있으며 기업 내부로 유통되는 MQTT 접근에 대한 보안성을 제공

Page 11: IBM MQTT Mobile Push Solution 소개서

MQ Telemetry > 다수 고객 대상 메시지 PushMQTT 는 불특정 다수의 수신자들을 대상으로 한 브로드캐스팅을 위해 Publish/Subscribe( 발행 / 구독 ) 유형의 메시징 기술을 내장하고 있습니다 . 이 기능을 통해 대상을 구체적으로 명시하지 않고도 다수 고객에게 광고 ( 마케팅 ) 형태의 Push 메시지를 손쉽게 전달할 수 있습니다

모바일기기 3

모바일기기 2

MQTelemetry

MQTTChannel

모바일 기기 1

모바일 앱 ( 구독자 )

WMQ

Server-sidePublisher

MQPub/Sub

인프라( 브로커 )

MQTT서버

브로드캐스트유형 Push

이벤트

2. 발행 :‘ 고객사 /마케팅’

0. MQTelemetry 에 연결

1. ‘ 고객사 / 마케팅’에 구독 (Subscribe)

3. ‘ 고객사 / 마케팅’ 메시지 전달

Pub/Sub 정보

• 메시지 발행자 (Publisher) 들은 자신이 발행하는 메시지가 가는 다수의 목적지를 알 필요가 없이 단순히 토픽 (e.g. /HLI/Promotion) 만 설정하고

• 메시지 구독자 (Subscriber) 들은 자신이 구독할 메시지의 토픽에 대해 Broker 에 대해 구독 신청만 하여 발행자가 어디 있는지 알 필요가 없으며

• Pub/Sub Broker 가 Pub/Sub 정보를 토대로 메시지를 중재 역할을 수행하는

• 고도의 Loosely Coupled 메시징 스타일

‘ 고객사 / 마케팅’에 구독

Page 12: IBM MQTT Mobile Push Solution 소개서

MQ Telemetry > 특정 고객 대상 메시지 PushMQTT 는 Pub/Sub 을 통해 특정 사용자에게 메시지를 송수신하도록 합니다 . 특정 사용자가 구독하는 토픽 등은 MQTelemetrydml Pub/Sub 인프라를 통해 내부적으로 관리되며 관리자 관점에서는 특정 사용자가 어느 네트워크에 위치하고 있는지의 저수준의 정보는 필요 없이 단지 사용자가 구독한 토픽에 대해 메시지를 생성 /송신하면 됩니다 .

• Subscriber 는 자신의 고유한 값 ( 서비스번호 또는 MQTT Client ID) 을 토대로 메시지 구독

• Publisher 는 클라이언트의 고유한 값을 토픽으로 하는 메시지를 발행

• 결과적으로 특정 디바이스만 자신의 고유한 값을 토픽으로 하는 메시지를 전달받음

• 이때 Publisher 는 특정 Subscriber 의 물리적인 위치나 상태를 신경 쓰지 않음

• 대신 연결이 가용한 경우 Broker 서비스가 특정 디바이스에게 해당 메시지 전달

모바일기기 3

모바일기기 2

MQTelemetry

MQTTChannel

모바일 기기 1

모바일 앱 (Subscriber

)

고객 #001

WMQ

Server-sidePublisher

MQPub/Sub인프라

( 브로커 )

MQTT서버

특정 사용자이벤트

2. 송신 :‘ 고객 #001/ 이벤트’

0. MQTT Channel 로 연결

1. ‘ 고객 #001/#’ 에 구독 (Subscribe)

3. ‘ 고객 #001/ 이벤트’ 메시지 전달Pub/Sub

정보

고객 별 정보

Page 13: IBM MQTT Mobile Push Solution 소개서

MQ Telemetry Performance Report

• QoS=0 상황에서 100,000 개의 동시 연결에 대해 초당 약 6,500 건의 메시지 전송 , CPU 24% 정도 사용

• QoS=1 상황에서 100,000 개의 동시 연결에 대해 초당 약 4,000 건의 메시지 전송 , CPU 17% 정도 사용

• QoS=2 상황에서 100,000 개의 동시 연결에 대해 초당 약 4,000 건의 메시지 전송 , CPU 28% 정도 사용

테스트 시스템 사양 :IBM xSeries 3850 4 x 4-core 2.93GHz Intel Xeon32 GB of RAMRedhat 5.4 (kernel 2.6.18)10Gbit Ethernet AdapterMQ Telemetry V7.5

MQTelemetry 의 성능에 대해 IBM 에서 공식적인 성능 측정 자료를 제공하고 있습니다 . 성능 리포트 자료를 통해 256 bytes 메시지 , 테스트 시스템을 기준으로 단일 서버 인스턴스에서 각 메시징 QoS 별 MQTT 클라이언트 연결과 , 초당 송신 메시지 수 , 시스템 CPU 사용률을 확인할 수 있습니다

Page 14: IBM MQTT Mobile Push Solution 소개서

MQ/MQ Telemetry 주요 사례

IBM MQ Telemetry 는 부산은행 , 롯데카드 , KT 파워텔 등의 국내 고객사에 모바일 푸쉬 서버로 적용되어 안정성 및 신뢰성을 인정받고 있으며 , 그 기반이 되는 IBM MQ 솔루션은 대한항공 , 농협 , 한화증권 , KT, 우리카드 , 등의 대규모 고객사에서 이미 그 성능 및 우수성을 인정받은 업계 최고의 메시징 솔루션입니다 .

다양한 WW MQTT 사례SMS 대체로 60% 비용 절감

개인화 마케팅 메시지 전송

실시간 경기 정보 전송

Connected Car 플랫폼

SMS 기반 상황판의 성능 및 확장성 이슈

7,000 개 역을 대상으로 일 200,000 전송

40,000 이상 사용자 대상으로 푸시 메시지 전송

개인화 상품 안내 및 트랜잭션 메시지

동시 30,000 이상 사용자 대상 서비스

로딩시간 60% 이상 단축 , 1초 미만 응답시간 달성

운전자 경험 수집 및 개인화 서비스 제공 , 모바일 장치 기반 차량 제어

클라우드와 연계된 스마트폰 , 태블릿 등을 통하여 개인화된 맞춤 서비스 제공

MQTelemetry 국내 사례

단지 Push 방향만 아니라 양방향 통신이 동일한 채널에서 가능하게 되어 Push 메시지 이후 사용자 / 고객에 대한 유연성 및 사용자 참여도를 비약적으로 높일 수 있음 • 이를 위한 별도의 메시징 인프라가 아닌 공통의 메시징 솔루션을 통해 구성하게 되어 관리 효율성 증대 및 표준화에 용이

EuropeanBank