IBM MQTT Mobile Push Solution 소개서

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

Transcript of IBM MQTT Mobile Push Solution 소개서

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

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

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

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

HTTP IS NOT ENOUGH

MQTT: Smarter Planet 프로토콜

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

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

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

MQTT: Smarter Planet 프로토콜

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

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

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

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

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

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

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

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

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 배열 메시지로 송수신하며 별도 애플리케이션 헤더를 필요로 하지 않음

MQTT: 주요 특징 2

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

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

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

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

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

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

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

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

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 서비스의 제약 없이 양방향 메시지 전송을 위한 풍부한 기능을 구현하도록 돕습니다 .

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클라이언트

기업 내기간 업무

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 채널을 할당

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 접근에 대한 보안성을 제공

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 메시징 스타일

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

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

정보

고객 별 정보

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 사용률을 확인할 수 있습니다

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