IBM MQTT Mobile Push Solution 소개서
Transcript of IBM MQTT Mobile Push Solution 소개서
모바일 메시징을 위한 프로토콜 필요
• 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