Solution

The 1th BNB COMPANY Solution Chatting

Defining Message Platform

분산 처리를 위한 노드 클러스터 기술 적용

TCP/IP, TLS, SSL, WebSocket 등 다양한 프로토콜 지원

클라이언트 개발을 위한 웹, 모바일, PC 데스크탑 SDK 지원

TCP/IP 타입의 메시지 서버와 동시에 플랫폼 형태를 취하는 메시지 플랫폼이다.
따라서 단독적으로 서비스에 사용되는 것이 아닌 모듈로 동작하게 되며,
다른 모듈과 함께 서비스 되기 위해 API 등의 지원으로 유기적인 형태를 갖는다.
또한, 성능과 분산 처리를 위해 다중 마스터 클러스터를 지원한다.

The 1th BNB COMPANY Solution Chatting

메시지 플랫폼 구성

메시지 TCP/IP 서버

분산 처리 및 고성능 TCP / IP 를 위해 Erlang 기반으로 트래픽 분산 및 무정지 서버 (Fault - Tolerant Server) Architecture 설계 및 개발을 한다.

또한 서비스와의 인터페이스를 위해 메시지 처리 및 스레드 현황과 같은 RESTful API를 지원한다.

PUSH AGENT 서버

APNS, GCM 으로 발송되는 푸시 메시지 발송 역할의 서버로 오프라인 메시지의 전송을 담당하며 대량의 메시지를 지원하기 위해 MQ 를 활용하여 개발한다.

Agent 는 서비스에 대해 유연하게 대처하고 서비스별 Worker / Queue 를 관리할 수 있으며, 대량의 메시지 요청 시 발생할 수 있는 네트워크 상의 버틀렉을 피할 수 있는 방법으로 QoS 및 Worker 확장이 쉬운 구성을 설계하고 개발한다.

iOS / ANDROID MOBILE SDK

클라이언트에서 메시지의 TCP / IP Socket 처리와 메시지 파서 및 UI 통지를 위한 Delegate 역할을 하며, 자체적으로 Local Data base 를 갖고 이전 메시지에 대한 저장 및 조회에 활용할 수 있도록 지원한다.

SDK 는 서비스 어플리케이션 UI 에 성능적 영향을 주지 않기 위한 Background Thread 또는 서비스로 구성한다.

The 1th BNB COMPANY Solution Chatting

메시지 서비스 - TCP 서버

TCP/IzP Socket Server

세션 관리(Client 연결 유지, 연결 상태 관리) 스레드 관리(CRUD)

메시지 송/수신, Delivery

Y API

클러스터링

The 1th BNB COMPANY Solution Chatting

TCP 서버 구조

The 1th BNB COMPANY Solution Chatting

클러스터 구조

동시 접속등의 성능을 높이고 Scale-Out 및 안정성을 확보하기 위해 메시지 서버를 Cluster 를 구성하며 Group 에는 Node 생성/삭제 가 자유로울 수 있는 구조로 구성

The 1th BNB COMPANY Solution Chatting

CLIENT SDK 구성도

Connect Manager

서버의 연결, 해제, 그리고 연결 유지 관리의 기능을 담당하며 연결이 비정상적으로 끊어진 경우 지정된 시간으로 연결에 재시도를 반복 수행한다.

DATABASE

참여중인 스레드의 정보와 스레드 안에서 발생되는 송/수신 메시지를 기록 하고 기록된 데이터를 관리 하는 기능을 담당 한다.

Manager Handler

메시지 발송, 수신의 기능을 담당 하며 서버로 전달되는 프로토콜로 구성된 데이터의 Serialize / Deserialize 처리 및 Queue 를 이용하여 순차적으로 처리 할 수 있도록 한다.

The 1th BNB COMPANY Solution Chatting

CLIENT 메시지 플로우

송신 플로우

PC 이미지

수신 플로우

PC 이미지