KR20130010663A - 메시지 부하 분산을 위한 푸시 서비스 제공 시스템 및 그 방법 - Google Patents

메시지 부하 분산을 위한 푸시 서비스 제공 시스템 및 그 방법 Download PDF

Info

Publication number
KR20130010663A
KR20130010663A KR1020110071435A KR20110071435A KR20130010663A KR 20130010663 A KR20130010663 A KR 20130010663A KR 1020110071435 A KR1020110071435 A KR 1020110071435A KR 20110071435 A KR20110071435 A KR 20110071435A KR 20130010663 A KR20130010663 A KR 20130010663A
Authority
KR
South Korea
Prior art keywords
message
keep
alive
client
alive message
Prior art date
Application number
KR1020110071435A
Other languages
English (en)
Other versions
KR101298743B1 (ko
Inventor
김진국
Original Assignee
에스케이텔레콤 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이텔레콤 주식회사 filed Critical 에스케이텔레콤 주식회사
Priority to KR1020110071435A priority Critical patent/KR101298743B1/ko
Priority to CN201280034147.1A priority patent/CN103703453B/zh
Priority to PCT/KR2012/005155 priority patent/WO2013012184A2/ko
Publication of KR20130010663A publication Critical patent/KR20130010663A/ko
Application granted granted Critical
Publication of KR101298743B1 publication Critical patent/KR101298743B1/ko
Priority to US14/107,829 priority patent/US9258740B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • H04L67/145Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Telephonic Communication Services (AREA)

Abstract

본 발명은 서비스 제공자 및 클라이언트와 서로 연결되어 푸시 서비스를 제공하는 푸시 서비스 장치에 부하 분산 기능을 구현하여 서비스 제공자 및 클라이언트가 푸시 서비스 장치에 접속할 때 접속하는 단말을 적절하게 분산시킴으로써 푸시 서비스 장치의 부하를 줄이는 푸시 서비스 제공 시스템 및 방법을 제공한다.

Description

메시지 부하 분산을 위한 푸시 서비스 제공 시스템 및 그 방법{SYSTEM AND METHOD FOR PROVIDING PUSH SERVICE FOR MESSAGE LOAD BALANCING}
본 발명은 메시지 부하 분산을 위한 푸시 서비스 제공 시스템 및 그 방법에 관한 것으로서, 더욱 상세하게는 푸시 서비스 장치와 클라이언트와의 접속 유지를 위한 킵 얼라이브 메시지 수신 시점이 동기화되는 경우 이를 감지하여 킵 얼라이브 메시지의 수신 시점을 분산시키는 킵 얼라이브 설정 메시지를 클라이언트로 전송함으로써, 클라이언트가 전송하는 킵 얼라이브 메시지가 전송 주기 동안에 균일하게 분포되어 킵 얼라이브 메시지에 의한 버스트 트래픽을 감소시킬 수 있는, 메시지 부하 분산을 위한 푸시 서비스 제공 시스템 및 그 방법에 관한 것이다.
스마트 폰(smart phone)이 보급되고 스마트 폰 환경으로 인해 다양한 응용 프로그램(Application)이 등장함에 따라 무선 자원의 사용량이 크게 증가하고 있다. 특히, IM(Instant Messaging), 웹(Web), 위젯(Widget) 서비스와 같이 망으로부터 실시간 푸시 메시지 혹은 푸시 알림(Push Notification) 등을 받기 위해 항시 접속되어 있는 형태(Always-On 형태)의 응용 프로그램이 현재 급속도로 증가하고 있다. Always-On 형태의 응용 프로그램은 저마다 서비스 제공자와 연결을 유지하면서 푸시 서비스를 받도록 준비하고 있기 때문에 과다한 트래픽을 유발하고, 배터리 소모를 빠르게 하는 문제점이 있다.
이러한 문제점을 해결하기 위해, 종래의 푸시 서버는 서비스 제공자와 클라이언트가 직접적으로 연결되지 않고, 클라이언트(Client) 내에 구축된 데몬(Daemon)을 통해 푸시 서버와 연결을 유지하고 서비스 제공자(Service Provider)가 푸시 메시지 혹은 푸시 알림을 전송하면 중앙의 푸시 서버가 전달 받아 해당 클라이언트로 전송하는 방식을 채택하고 있다.
도 1은 푸시 서비스 시스템에서의 킵 얼라이브 메시지의 전송 과정에 대한 설명도이다.
Always-On 형태의 응용 프로그램은 클라이언트를 통해 저마다 서비스 제공자와 연결을 유지하고 있다. 이러한 연결 유지를 위해, 클라이언트(10)는 킵 얼라이브(Keep alive) 메시지를 통해 응용 프로그램의 프레즌스(Presence) 정보를 푸시 서버(20)로 전송하고, 푸시 서버(20)는 킵 얼라이브 메시지를 수신하여 응용 프로그램의 프레즌스 정보를 확인한다.
일반적으로, 킵 얼라이브 메시지는 단말에 설치된 클라이언트(10)로부터 푸시 서버(20)로 전송된다. 클라이언트(10)는 기 설정된 주기로 킵 얼라이브 메시지를 푸시 서버(20)로 전송한다. 킵 얼라이브 메시지는 응용 프로그램의 프레즌스 정보를 확인하기 위함이다. 이러한 이유로, 킵 얼라이브 메시지의 전송 주기는 가능한 짧게 설정되는 것이 보편적이다.
킵 얼라이브 메시지의 전송되는 경우를 도 1의 (a) 및 (b)를 참조하여 살펴보면 다음과 같다.
일례로, 킵 얼라이브 메시지의 전송을 위한 전송 타이머(Timer)는 단말 측의 클라이언트(10)에서 푸시 메시지 수신과 같은 이벤트가 발생하면 초기화된다. 클라이언트(10)가 초기화된 전송 타이머의 기한 만료 시 킵 얼라이브 메시지를 전송하는 경우가 도 1의 (b)에 도시되어 있다.
다른 예로, 클라이언트(10)는 푸시 메시지 수신과 같은 이벤트에 상관없이 킵 얼라이브 메시지를 수신한다. 이러한 푸시 메시지의 수신 과정에서 기 설정된 전송 타이머의 기한 만료 시간마다 킵 얼라이브 메시지를 전송하는 경우가 도 1의 (a)에 도시되어 있다.
도 2는 킵 얼라이브 메시지의 동기화 현상에 대한 일실시예 설명도이다.
다수의 클라이언트 #1, #2, #3(11, 12, 13)에서 푸시 서버(20)로 킵 얼라이브 메시지가 전송되는 경우를 도 2를 참조하여 살펴보면 다음과 같다.
전술된 바와 같이, 다수의 클라이언트 #1, #2, #3(11, 12, 13)의 타이머는 이벤트 발생시(예컨대, 푸시 메시지 수신 시, 킵 얼라이브 메시지 송수신시 등)에 초기화된다. 일반적인 경우에는 다수의 클라이언트 #1, #2, #3(11, 12, 13)는 전송 타이머 주기 T가 지난 후 서로 다른 시점에 킵 얼라이브 메시지 #1, #2, #3를 푸시 서버(20)로 전송한다. 일반적으로 동일 망에서 단말의 킵 얼라이브 주기는 동일하다.
하지만, 특정 이벤트 발생시 타이머가 초기화되는 현상으로 인해 푸시 메시지의 송수신이 최대로 많은 시간(예컨대, 퇴근 시간, 출근 시간 등)에 다수의 클라이언트 #1, #2, #3(11, 12, 13)는 유사한 시각에 푸시 메시지 #1, #2, #3를 집중적으로 수신한다. 푸시 메시지 수신으로 초기화되고 전송 타이머 주기 T가 경과된 후에 이를 기준으로 다수의 클라이언트 #1, #2, #3(11, 12, 13)는 킵 얼라이브 메시지를 푸시 서버(20)로 전송한다. 이러한 이유로 킵 얼라이브 메시지가 서로 동기화되는 동기화 현상(201)이 발생한다. 네트워크에서는 집중적인 킵 얼라이브 메시지로 인해 버스트 트래픽(Burst Traffic)이 발생된다. 이러한 킵 얼라이브 메시지에 의한 버스트 트래픽으로 인해 네트워크 과부하가 발생하는 문제점이 있다.
본 발명은 상기의 필요성에 의해 창안된 것으로서, 푸시 서비스 장치와 클라이언트와의 접속 유지를 위한 킵 얼라이브 메시지 수신 시점이 동기화되는 경우 이를 감지하여 킵 얼라이브 메시지의 수신 시점을 분산시키는 킵 얼라이브 설정 메시지를 클라이언트로 전송함으로써, 클라이언트가 전송하는 킵 얼라이브 메시지가 전송 주기 동안에 균일하게 분포되어 킵 얼라이브 메시지에 의한 버스트 트래픽을 감소시킬 수 있는, 메시지 부하 분산을 위한 푸시 서비스 제공 시스템 및 그 방법을 제공하는 데 그 목적이 있다.
이를 위하여 본 발명의 제1 측면에 따른 장치는, 서비스 제공 장치가 제공하는 푸시 메시지를 수신하여 해당 클라이언트들에게 전송하고, 상기 클라이언트들과의 접속 유지를 위한 킵 얼라이브 메시지의 수신 시점이 동기화되는 경우, 해당 클라이언트들의 킵얼라이브 메시지 송신 시점을 소정의 주기내에 분산시키도록 킵 얼라이브 설정 메시지를 상기 클라이언트들로 전송하는 메시지 부하 분산을 위한 푸시 서비스 장치인 것을 특징으로 한다.
한편, 본 발명의 제2 측면에 따른 장치는, 서비스 제공 장치와 접속하는 SP(Service Provider) 연동부; 상기 SP 연동부를 통해 수신한 푸시 메시지를 해당 클라이언트로 전송하도록 라우팅하는 제어부; 및 상기 제어부로부터 전달된 푸시 메시지를 해당 클라이언트로 전송하고, 상기 클라이언트로부터 킵 얼라이브 메시지를 수신하고 상기 수신된 킵 얼라이브 메시지의 수신 시점이 동기화되는 경우, 기 설정된 킵 얼라이브 메시지의 전송 주기 동안에 킵 얼라이브 메시지의 수신 시점을 분산시키는 킵 얼라이브 설정 메시지를 상기 클라이언트로 전송하는 Client 연동부를 포함하는 것을 특징으로 한다.
상기 Client 연동부는, 상기 기 설정된 킵 얼라이브 메시지의 전송 주기 동안 균일 분포(Uniform Distribution)에 따라 상기 킵 얼라이브 메시지의 수신 시점을 분산시키는 킵 얼라이브 설정 메시지를 상기 클라이언트로 전송하는 것을 특징으로 한다.
상기 Client 연동부는, 상기 기 설정된 킵 얼라이브 메시지의 전송 주기를 상기 동기화된 클라이언트 개수로 나눈 시간만큼 킵 얼라이브 설정 메시지를 순차적으로 지연시켜 상기 클라이언트로 전송하는 것을 특징으로 한다.
상기 Client 연동부는, 킵 얼라이브 메시지의 전송 주기를 초기화하는 시간 값을 포함시켜 킵 얼라이브 설정 메시지를 생성하는 것을 특징으로 한다.
상기 Client 연동부는, 상기 수신된 킵 얼라이브 메시지가 기 설정된 구간 동안에 임계치 개수를 초과하는지 여부에 따라 킵 얼라이브 메시지의 수신 시점이 동기화되는지를 확인하는 것을 특징으로 한다.
한편, 본 발명의 제3 측면에 따른 방법은, 서비스 제공 장치로부터 수신된 푸시 메시지를 해당 클라이언트로 전송하는 푸시 메시지 전송 단계; 상기 클라이언트로부터 킵 얼라이브 메시지를 수신하는 킵 얼라이브 메시지 수신 단계; 상기 수신된 킵 얼라이브 메시지의 수신 시점이 동기화되는지 여부를 확인하는 메시지 동기화 확인 단계; 및 상기 킵 얼라이브 메시지의 수신 시점이 동기화되는 경우, 기 설정된 킵 얼라이브 메시지의 전송 주기 동안에 킵 얼라이브 메시지의 수신 시점을 분산시키는 킵 얼라이브 설정 메시지를 상기 클라이언트로 전송하는 설정 메시지 전송 단계를 포함하는 것을 특징으로 한다.
상기 설정 메시지 전송 단계는, 상기 기 설정된 킵 얼라이브 메시지의 전송 주기 동안 균일 분포에 따라 상기 킵 얼라이브 메시지의 수신 시점을 분산시키는 킵 얼라이브 설정 메시지를 상기 클라이언트로 전송하는 것을 특징으로 한다.
상기 설정 메시지 전송 단계는, 상기 기 설정된 킵 얼라이브 메시지의 전송 주기를 상기 동기화된 클라이언트 개수로 나눈 시간만큼 킵 얼라이브 설정 메시지를 순차적으로 지연시켜 상기 클라이언트로 전송하는 것을 특징으로 한다.
상기 설정 메시지 전송 단계는, 킵 얼라이브 메시지의 전송 주기를 초기화하는 시간 값을 포함시켜 킵 얼라이브 설정 메시지를 생성하는 것을 특징으로 한다.
상기 메시지 동기화 확인 단계는, 상기 수신된 킵 얼라이브 메시지가 기 설정된 구간 동안에 임계치 개수를 초과하는지 여부에 따라 킵 얼라이브 메시지의 수신 시점이 동기화되는지를 확인하는 것을 특징으로 한다.
한편, 본 발명의 제4 측면에 따른 방법은, 킵 얼라이브 메시지의 전송 주기 타이머를 확인하여 상기 전송 주기 타이머의 기한이 만료된 경우, 푸시 서비스 장치로 킵 얼라이브 메시지를 전송하는 킵 얼라이브 메시지 전송 단계; 킵얼라이브 메시지 송신 시점을 소정의 주기내에 분산시키도록 상기 푸시 서비스 장치로부터 킵 얼라이브 설정 메시지를 수신하는 설정 메시지 수신 단계; 및 상기 킵 얼라이브 메시지의 전송 주기 타이머를 초기화하는 타이머 초기화 단계를 포함하고, 상기 킵 얼라이브 메시지 전송 단계는 상기 초기화된 전송 주기 타이머의 기한이 만료된 경우, 상기 푸시 서비스 장치로 킵 얼라이브 메시지를 전송하는 것을 특징으로 한다.
상기 설정 메시지 수신 단계는, 상기 킵얼라이브 메시지 송신 시점을 기 설정된 킵 얼라이브 메시지의 전송 주기 동안에 분산시키도록 킵 얼라이브 설정 메시지를 수신하는 것을 특징으로 한다.
본 발명에 따르면, 푸시 서비스 장치와 클라이언트와의 접속 유지를 위한 킵 얼라이브 메시지 수신 시점이 동기화되는 경우 이를 감지하여 킵 얼라이브 메시지의 수신 시점을 분산시키는 킵 얼라이브 설정 메시지를 클라이언트로 전송함으로써, 클라이언트가 전송하는 킵 얼라이브 메시지가 전송 주기 동안에 균일하게 분포되어 킵 얼라이브 메시지에 의한 버스트 트래픽을 감소시킬 수 있는 효과가 있다.
도 1은 푸시 서비스 시스템에서의 킵 얼라이브 메시지의 전송 과정에 대한 설명도,
도 2는 킵 얼라이브 메시지의 동기화 현상에 대한 설명도,
도 3은 본 발명에 따른 메시지 부하 분산을 위한 푸시 서비스 제공 시스템의 네트워크 구성도,
도 4는 본 발명에 따른 메시지 부하 분산을 위한 푸시 서비스 장치의 일실시예 상세 구성도,
도 5 는 본 발명에 따른 킵 얼라이브 메시지의 부하 분산 과정에 대한 일실시예 설명도,
도 6 은 본 발명에 따른 메시지 부하 분산을 위한 푸시 서비스 방법에 대한 일실시예 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 실시 예를 상세하게 설명한다. 본 발명의 구성 및 그에 따른 작용 효과는 이하의 상세한 설명을 통해 명확하게 이해될 것이다. 본 발명의 상세한 설명에 앞서, 동일한 구성요소에 대해서는 다른 도면 상에 표시되더라도 가능한 동일한 부호로 표시하며, 공지된 구성에 대해서는 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 구체적인 설명은 생략하기로 함에 유의한다.
도 3은 본 발명에 따른 메시지 부하 분산을 위한 푸시 서비스 제공 시스템의 네트워크 구성도이다.
도 3에 도시된 바와 같이, 본 발명에 따른 푸시 서비스 제공 시스템(100)은 다수의 서비스 제공 장치(100-1 내지 100-N: 100)와, 푸시 서비스 장치(300) 및 다수의 클라이언트(400-1 내지 400-K: 400)로 구성되어, 중앙의 푸시 서비스 장치(300)를 매개로 다수의 서비스 제공 장치(100)와 다수의 클라이언트(400)의 접속이 이루어지는 구조를 보여주고 있다.
다수의 클라이언트(400)는 통신망(200)에 접속 가능한 단말로서, 예컨대 PC, 노트북, 스마트 폰, PDA, 태블릿 PC, 네비게이션, PMP, 전자사전, MP3 등을 포함할 수 있다. 다수의 클라이언트(400)는 통신망(200)에 접속하여 소정의 데이터(특히 푸시 메시지, 푸시 알림 등)를 송수신하는 클라이언트 응용 프로그램(application)을 탑재한다.
다수의 서비스 제공 장치(100)는 다수의 클라이언트(400)로 푸시 메시지를 송신하여 서비스를 제공하는 서버 또는 단말을 의미한다.
푸시 서비스 장치(300)는 기본적으로 다수의 서비스 제공 장치(100)로부터 전송하는 푸시 메시지를 취합하여 해당 클라이언트(400)로 전달한다.
이때, 푸시 서비스 장치(300)는 다수의 서비스 제공 장치(100)와 다수의 클라이언트(400) 사이에서 서비스 제공 장치(100)와 클라이언트(400) 간의 상호 접속을 관리한다. 서비스 제공 장치(100)와 클라이언트(400) 간의 상호 접속은 클라이언트(400)가 푸시 서비스 장치(300)로 전송하는 킵 얼라이브 메시지에 의해 유지된다.
킵 얼라이브 메시지의 부하 분산을 위해, 푸시 서비스 장치(300)는 다수의 클라이언트(400)가 킵 얼라이브 메시지를 전송하는 전송 시점이 동기화되는지 여부를 감지한다. 감지 결과, 다수의 클라이언트(400)로부터 수신된 킵 얼라이브 메시지의 전송 시점이 동기화되는 경우 다수의 클라이언트(400)로 킵 얼라이브 설정 메시지를 킵 얼라이브 전송 주기 T 구간 동안에 다수의 클라이언트(400)를 대상으로 킵 얼라이브 전송 시점을 균일하게 분포시켜 전송한다. 여기서, 킵 얼라이브 메시지의 전송 주기는 기 설정되어 있다. 이는 다수의 클라이언트(400)의 킵 얼라이브 메시지의 전송 시점 동기화를 회피하기 위함이다.
즉, 푸시 서비스 장치(300)가 동기화 현상을 감지한 시점에서 다수의 클라이언트(400)로 킵 얼라이브 설정 메시지를 균일하게 분포시켜 전송하면, 킵 얼라이브 메시지는 동기화되지 않는다. 일례로, 킵 얼라이브 메시지의 전송 주기가 T이고 N개의 클라이언트가 푸시 서비스 장치(300)에 접속되어 있는 경우, ((n+1)/N)*T에 따라 킵 얼라이브 설정 메시지를 전송 주기 T 구간 동안 균일하게 분포시켜 N개의 클라이언트로 전송한다. 이러한 균일 분포에 대해서는 도 5를 참조하여 상세하게 설명하기로 한다.
다수의 클라이언트(400)는 푸시 서비스 장치(300)로부터 킵 얼라이브 설정 메시지를 수신하고, 수신된 시점에 킵 얼라이브 메시지의 전송 시점을 초기화한다. 이를 통해, 다수의 클라이언트(400)가 전송하는 킵 얼라이브 메시지의 전송 시점이 분산된다.
도 4는 본 발명에 따른 메시지 부하 분산을 위한 푸시 서비스 장치의 일실시예 상세 구성도이다.
본 발명에 따른 푸시 서비스 장치(300)는 SP 연동부(310), 제어부(320), Client 연동부(330) 및 부하 분산부(340)를 포함한다.
SP 연동부(310)는 다수의 서비스 제공 장치(100)와 접속하여 다수의 서비스 제공 장치(100)로부터 클라이언트(400)에 전송할 푸시 메시지를 수신한다. 여기서, 푸시 메시지는 신규 정보 또는 갱신 정보, 이벤트 정보 등 공지사항의 성격을 갖는 메시지를 포함한다.
Client 연동부(330)는 다수의 클라이언트(400)와 접속하여 SP 연동부(310)로부터 수신한 푸시 메시지를 다수의 클라이언트(400)로 전송한다. 또한, Client 연동부(330)는 다수의 클라이언트(400)와 접속하여 킵 얼라이브 메시지를 수신하고, 다수의 클라이언트(400)가 킵 얼라이브 메시지를 전송하는 전송 시점이 동기화되는지 여부를 감지한다. 동기화 감지에 대해서, Client 연동부(330)는 다수의 클라이언트(400)가 전송한 킵 얼라이브 메시지가 기 설정된 구간 동안에 기 설정된 메시지 개수를 초과하여 수신되는지 여부를 확인하여 킵 얼라이브 메시지의 수신 시점이 동기화되어 있다는 것을 감지한다.
그리고 Client 연동부(330)는 복수의 클라이언트의 전송 시점이 동기화되는 경우 다수의 클라이언트(400)로 킵 얼라이브 설정 메시지를 전송하여 전송 시점을 분산시킨다.
SP 연동부(310) 또는 Client 연동부(330)는 각 연동부(310, 330)에 접속하는 서비스 제공 장치(100) 또는 클라이언트(400)의 접속 수에 따라 복수 개로 구비할 수 있다. 일반적으로 각 연동부(310, 330)는 수용 가능한 단말의 수가 정해져 있어서 이를 기준으로 증설이 가능하다.
부하 분산부(340)는 각 SP 연동부(310) 또는 Client 연동부(330)로부터 자신의 상태 정보를 수신하여 각 연동부의 부하 정보를 산출하고, 산출한 부하 정보를 테이블화하여 저장한다.
제어부(320)는 다수의 SP 연동부(310) 및 Client 연동부(330)를 관리하며, SP 연동부(310)로부터 푸시 메시지를 수신하면 푸시 메시지에 포함되어 있는 클라이언트 정보를 가지고 해당 클라이언트가 접속 가능한 Client 연동부(330)를 추출하고, 추출한 Client 연동부(330)로 푸시 메시지를 전송한다. 여기서, 제어부(320)는 각 클라이언트 별로 접속 가능한 Client 연동부(330)에 대한 라우팅 정보를 관리한다. 각 클라이언트 별로 접속 가능한 Client 연동부(330)는 클라이언트가 접속 상태를 유지하고 있는 Client 연동부를 의미한다.
이하, 도 5를 참조하여 킵 얼라이브 메시지의 부하 분산 과정에 대해서 구체적으로 살펴보기로 한다.
도 5 는 본 발명에 따른 킵 얼라이브 메시지의 부하 분산 과정에 대한 일실시예 설명도이다.
도 5에 도시된 바와 같이, 다수의 클라이언트인 클라이언트 #1(410), 클라이언트 #2(420), 클라이언트 #3(430)은 푸시 메시지 #1, #2, #3를 각각 수신하고, 전송 타이머 주기 T가 경과한 이후에 킵 얼라이브 메시지를 푸시 서비스 장치(300)로 전송한다. 클라이언트 #1(410), 클라이언트 #2(420), 클라이언트 #3(430)이 푸시 메시지 #1, #2, #3를 수신한 시점이 특정 시간에 집중되어 있기 때문에, 푸시 서비스 장치(300)가 수신하는 킵 얼라이브 메시지의 수신 시점에 대해서 동기화 현상(501)이 발생한다.
이러한 동기화 현상을 해결하기 위해, 푸시 서비스 장치(300)의 Client 연동부(330)는 동기화 현상(501)이 발생하는지 여부를 감지한다. 동기화 현상(501)이 발생하는 경우, Client 연동부(330)는 킵 얼라이브 메시지의 전송 시작점을 변경하도록 클라이언트 #1(410), 클라이언트 #2(420), 클라이언트 #3(430)에 각각 클라이언트 설정 메시지를 전송한다.
일례로, Client 연동부(330)는 기 설정된 킵 얼라이브 메시지의 주기 T 동안에 균일 분포(Uniform Distribution)에 따라 임의의 값을 선택한다. 여기서, 균일 분포는 기 설정된 킵 얼라이브 메시지의 주기 T와 클라이언트와 연결된 세션 수에 따라 계산될 수 있다. 그리고 Client 연동부(330)는 선택된 시간 동안 킵 얼라이브 설정 메시지를 지연시켜 해당 클라이언트로 전송한다.
이를 구체적으로 살펴보면, 전송 타이머 주기가 T이고 3개의 클라이언트 #1(410), #2(420), #3(430)가 푸시 서비스 장치(300)와 접속된 경우, Client 연동부(330)는 기 설정된 전송 주기 T를 다수의 클라이언트 개수 '3'으로 나눈 시간 (1/3)T마다 지연시켜 클라이언트 #1(410), #2(420), #3(430)에 킵 얼라이브 설정 메시지를 순차적으로 전송한다. 즉, Client 연동부(330)는 (1/3)T만큼 지연시켜 클라이언트 #1(410)에 킵 얼라이브 설정 메시지를 전송하고, (2/3)T만큼 지연시켜 클라이언트 #2(420)에 킵 얼라이브 설정 메시지를 전송하고, (3/3)T만큼 지연시켜 클라이언트 #3(430)에 킵 얼라이브 설정 메시지를 전송한다. 킵 얼라이브 설정 메시지는 킵 얼라이브 메시지의 전송 타이머의 시작점을 변경하라는 메시지를 나타낸다. 클라이언트 #1(410), 클라이언트 #2(420), 클라이언트 #3(430)이 존(Zone) 단위로 이루어져 있는 경우, Client 연동부(330)는 존 단위로 킵 얼라이브 설정 메시지를 전송할 수 있다.
이후, 클라이언트 #1(410), 클라이언트 #2(420), 클라이언트 #3(430)는 킵 얼라이브 설정 메시지를 수신한 서로 다른 시점에서 킵 얼라이브 메시지의 전송 타이머를 각각 초기화한다. 그리고 각 클라이언트는 초기화된 킵 얼라이브 메시지의 전송 주기 T에 따라 전송 주기 T가 경과한 후에 서로 다른 시점에 킵 얼라이브 메시지를 푸시 서비스 장치(300)로 전송한다. 즉, 각 클라이언트는 킵 얼라이브 설정 메시지 수신 시, 전송 타이머를 초기화하고, 다음 전송 타이머 주기 T가 도래한 시점에 킵 얼라이브 메시지를 푸시 서비스 장치(300)로 전송한다. 이를 통해, "502"에 도시된 바와 같이, 동기화 현상이 해결된다.
상기와 같이, 균일 분포에 따라 킵 얼라이브 설정 메시지가 전송 주기 T 동안에 지연되기 때문에, 각 클라이언트가 킵 얼라이브 메시지를 전송하는 타이밍은 킵 얼라이브 메시지의 주기 T에 대해서 고르게 분포된다. 이는 킵 얼라이브 메시지에 의한 네트워크의 버스트 트래픽 발생을 억제하게 한다.
도 6 은 본 발명에 따른 메시지 부하 분산을 위한 푸시 서비스 방법에 대한 일실시예 흐름도이다.
다수의 클라이언트(400)는 접속 가능한 Client 연동부(330)로 접속을 시도한다(S602).
Client 연동부(330)가 클라이언트(400)로 승인 응답 메시지를 전달하면, Client 연동부(330)를 통해 다수의 클라이언트(400)와 푸시 서비스 장치(300)간 세션이 연결된다(S604).
제어부(320)는 서비스 제공 장치(100)로부터 SP 연동부(310)를 통해 수신된 푸시 메시지를 Client 연동부(330)로 전달한다(S606).
Client 연동부(330)는 다수의 클라이언트(400)로 푸시 메시지를 전송한다(S608).
전송 타이머 주기 T가 경과한 후, Client 연동부(330)는 다수의 클라이언트(400)로부터 킵 얼라이브 메시지를 수신한다(S610).
Client 연동부(330)는 수신된 킵 얼라이브 메시지의 수신 시점이 서로 동기화되어 있는지 여부를 확인한다(S612).
상기 확인 결과(S612), 킵 얼라이브 메시지의 수신 시점이 서로 동기화되어 있는 경우, Client 연동부(330)는 기 설정된 킵 얼라이브 메시지의 주기 T 동안에 균일 분포에 따라 임의의 값을 선택한다(S614). 여기서, 임의의 값은 킵 얼라이브 메시지의 주기 T 동안에 서로 중첩되지 않도록 균일하게 분포되는 값일 수 있다. 예를 들면, 선택된 값은 기 설정된 전송 주기 T를 다수의 클라이언트 개수로 나눈 시간 값일 수 있다.
반면, 킵 얼라이브 메시지의 수신 시점이 서로 동기화되지 않은 경우, Client 연동부(330)는 동기화 현상을 감지하는 "S612"과정을 지속적으로 수행한다.
Client 연동부(330)는 "S614" 과정에서 선택된 시간 값만큼 순차적으로 킵 얼라이브 설정 메시지를 지연시켜 해당 클라이언트로 전송한다(S616).
이상의 설명은 본 발명을 예시적으로 설명한 것에 불과하며, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 본 발명의 기술적 사상에서 벗어나지 않는 범위에서 다양한 변형이 가능할 것이다. 따라서 본 발명의 명세서에 개시된 실시 예들은 본 발명을 한정하는 것이 아니다. 본 발명의 범위는 아래의 특허청구범위에 의해 해석되어야 하며, 그와 균일한 범위 내에 있는 모든 기술도 본 발명의 범위에 포함되는 것으로 해석해야 할 것이다.
본 발명은 푸시 서비스 장치와 클라이언트와의 접속 유지를 위한 킵 얼라이브 메시지 수신 시점이 동기화되는 경우 이를 감지하여 킵 얼라이브 메시지의 수신 시점을 분산시키는 킵 얼라이브 설정 메시지를 클라이언트로 전송함으로써, 클라이언트가 전송하는 킵 얼라이브 메시지가 전송 주기 동안에 균일하게 분포되어 킵 얼라이브 메시지에 의한 버스트 트래픽을 감소시킬 수 있는 효과가 있다. 이러한 점에서 종래 기술의 한계를 뛰어 넘음에 따라 관련 기술에 대한 이용만이 아닌 적용되는 서버의 구축 및 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용 가능성이 있는 유용한 발명이다.
100-1 내지 100-N: 서비스 제공장치1 내지 서비스 제공장치N
400-1 내지 400-K: 클라이언트1 내지 클라이언트K
100: 서비스 제공 장치 200: 통신망
300: 푸시 서비스 장치 400: 클라이언트
310: SP 연동부 320: 제어부
330: client 연동부 340: 부하 분산부

Claims (13)

  1. 서비스 제공 장치로부터 푸시 메시지를 수신하여 해당 클라이언트들에게 전송하고, 상기 클라이언트들과의 접속 유지를 위한 킵 얼라이브 메시지의 수신 시점이 동기화되는 경우, 해당 클라이언트들의 킵얼라이브 메시지 송신 시점을 소정의 주기내에 분산시키도록 킵 얼라이브 설정 메시지를 상기 클라이언트들로 전송하는 메시지 부하 분산을 위한 푸시 서비스 장치.
  2. 서비스 제공 장치와 접속하는 SP(Service Provider) 연동부;
    상기 SP 연동부를 통해 수신한 푸시 메시지를 해당 클라이언트로 전송하도록 라우팅하는 제어부; 및
    상기 제어부로부터 전달된 푸시 메시지를 해당 클라이언트로 전송하고, 상기 클라이언트로부터 킵 얼라이브 메시지를 수신하고 상기 수신된 킵 얼라이브 메시지의 수신 시점이 동기화되는 경우, 기 설정된 킵 얼라이브 메시지의 전송 주기 동안에 킵 얼라이브 메시지의 수신 시점을 분산시키는 킵 얼라이브 설정 메시지를 상기 클라이언트로 전송하는 Client 연동부
    를 포함하는 메시지 부하 분산을 위한 푸시 서비스 장치.
  3. 제 2 항에 있어서,
    상기 Client 연동부는,
    상기 기 설정된 킵 얼라이브 메시지의 전송 주기 동안 균일 분포(Uniform Distribution)에 따라 상기 킵 얼라이브 메시지의 수신 시점을 분산시키는 킵 얼라이브 설정 메시지를 상기 클라이언트로 전송하는 것을 특징으로 하는 푸시 서비스 장치.
  4. 제 2 항에 있어서,
    상기 Client 연동부는,
    상기 기 설정된 킵 얼라이브 메시지의 전송 주기를 상기 동기화된 클라이언트 개수로 나눈 시간만큼 킵 얼라이브 설정 메시지를 순차적으로 지연시켜 상기 클라이언트로 전송하는 것을 특징으로 하는 푸시 서비스 장치.
  5. 제 2 항에 있어서,
    상기 Client 연동부는,
    킵 얼라이브 메시지의 전송 주기를 초기화하는 시간 값을 포함시켜 킵 얼라이브 설정 메시지를 생성하는 것을 특징으로 하는 푸시 서비스 장치.
  6. 제 2 항에 있어서,
    상기 Client 연동부는,
    상기 수신된 킵 얼라이브 메시지가 기 설정된 구간 동안에 임계치 개수를 초과하는지 여부에 따라 킵 얼라이브 메시지의 수신 시점이 동기화되는지를 확인하는 것을 특징으로 하는 푸시 서비스 장치.
  7. 서비스 제공 장치로부터 수신된 푸시 메시지를 해당 클라이언트로 전송하는 푸시 메시지 전송 단계;
    상기 클라이언트로부터 킵 얼라이브 메시지를 수신하는 킵 얼라이브 메시지 수신 단계;
    상기 수신된 킵 얼라이브 메시지의 수신 시점이 동기화되는지 여부를 확인하는 메시지 동기화 확인 단계; 및
    상기 킵 얼라이브 메시지의 수신 시점이 동기화되는 경우, 기 설정된 킵 얼라이브 메시지의 전송 주기 동안에 킵 얼라이브 메시지의 수신 시점을 분산시키는 킵 얼라이브 설정 메시지를 상기 클라이언트로 전송하는 설정 메시지 전송 단계
    를 포함하는 메시지 부하 분산을 위한 푸시 서비스 제공 방법.
  8. 제 7 항에 있어서,
    상기 설정 메시지 전송 단계는,
    상기 기 설정된 킵 얼라이브 메시지의 전송 주기 동안 균일 분포에 따라 상기 킵 얼라이브 메시지의 수신 시점을 분산시키는 킵 얼라이브 설정 메시지를 상기 클라이언트로 전송하는 것을 특징으로 하는 푸시 서비스 방법.
  9. 제 7 항에 있어서,
    상기 설정 메시지 전송 단계는,
    상기 기 설정된 킵 얼라이브 메시지의 전송 주기를 상기 동기화된 클라이언트 개수로 나눈 시간만큼 킵 얼라이브 설정 메시지를 순차적으로 지연시켜 상기 클라이언트로 전송하는 것을 특징으로 하는 푸시 서비스 제공 방법.
  10. 제 7 항에 있어서,
    상기 설정 메시지 전송 단계는,
    킵 얼라이브 메시지의 전송 주기를 초기화하는 시간 값을 포함시켜 킵 얼라이브 설정 메시지를 생성하는 것을 특징으로 하는 푸시 서비스 제공 방법.
  11. 제 7 항에 있어서,
    상기 메시지 동기화 확인 단계는,
    상기 수신된 킵 얼라이브 메시지가 기 설정된 구간 동안에 임계치 개수를 초과하는지 여부에 따라 킵 얼라이브 메시지의 수신 시점이 동기화되는지를 확인하는 것을 특징으로 하는 푸시 서비스 제공 방법.
  12. 킵 얼라이브 메시지의 전송 주기 타이머를 확인하여 상기 전송 주기 타이머의 기한이 만료된 경우, 푸시 서비스 장치로 킵 얼라이브 메시지를 전송하는 킵 얼라이브 메시지 전송 단계;
    킵얼라이브 메시지 송신 시점을 소정의 주기내에 분산시키도록 상기 푸시 서비스 장치로부터 킵 얼라이브 설정 메시지를 수신하는 설정 메시지 수신 단계; 및
    상기 킵 얼라이브 메시지의 전송 주기 타이머를 초기화하는 타이머 초기화 단계를 포함하고,
    상기 킵 얼라이브 메시지 전송 단계는 상기 초기화된 전송 주기 타이머의 기한이 만료된 경우, 상기 푸시 서비스 장치로 킵 얼라이브 메시지를 전송하는 것을 특징으로 하는 클라이언트에서의 메시지 부하 분산을 위한 푸시 서비스 제공 방법.
  13. 제 12 항에 있어서,
    상기 설정 메시지 수신 단계는,
    상기 킵얼라이브 메시지 송신 시점을 기 설정된 킵 얼라이브 메시지의 전송 주기 동안에 분산시키도록 킵 얼라이브 설정 메시지를 수신하는 것을 특징으로 하는 클라이언트에서의 푸시 서비스 제공 방법.
KR1020110071435A 2011-07-19 2011-07-19 메시지 부하 분산을 위한 푸시 서비스 제공 시스템 및 그 방법 KR101298743B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020110071435A KR101298743B1 (ko) 2011-07-19 2011-07-19 메시지 부하 분산을 위한 푸시 서비스 제공 시스템 및 그 방법
CN201280034147.1A CN103703453B (zh) 2011-07-19 2012-06-29 提供用于消息负载均衡的推送服务的系统及其方法
PCT/KR2012/005155 WO2013012184A2 (ko) 2011-07-19 2012-06-29 메시지 부하 분산을 위한 푸시 서비스 제공 시스템 및 그 방법
US14/107,829 US9258740B2 (en) 2011-07-19 2013-12-16 Push service providing system and method for balancing message loads

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110071435A KR101298743B1 (ko) 2011-07-19 2011-07-19 메시지 부하 분산을 위한 푸시 서비스 제공 시스템 및 그 방법

Publications (2)

Publication Number Publication Date
KR20130010663A true KR20130010663A (ko) 2013-01-29
KR101298743B1 KR101298743B1 (ko) 2013-08-26

Family

ID=47558565

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110071435A KR101298743B1 (ko) 2011-07-19 2011-07-19 메시지 부하 분산을 위한 푸시 서비스 제공 시스템 및 그 방법

Country Status (4)

Country Link
US (1) US9258740B2 (ko)
KR (1) KR101298743B1 (ko)
CN (1) CN103703453B (ko)
WO (1) WO2013012184A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014204088A1 (ko) * 2013-06-20 2014-12-24 Lee Hyun Ok 유무선 웹 기반의 채팅시스템 및 그 방법
KR101526481B1 (ko) * 2013-07-22 2015-06-05 에스케이텔레콤 주식회사 단말장치 및 클라이언트장치와, 그 장치의 동작 방법
KR20190074914A (ko) * 2017-12-20 2019-06-28 한국전자통신연구원 네트워크 라우팅 경로 설정 지원 장치 및 그 방법

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012060995A2 (en) * 2010-11-01 2012-05-10 Michael Luna Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
KR101448593B1 (ko) * 2013-01-15 2014-10-13 주식회사 네이블커뮤니케이션즈 웹 서비스 푸시 방법 및 이를 수행하는 웹서비스푸시서버 및 웹 서비스 제공 서버
CN103858389B (zh) * 2013-05-31 2016-11-02 华为技术有限公司 一种传输会话的方法、客户端及Push服务器
JP6584171B2 (ja) 2015-07-02 2019-10-02 キヤノン株式会社 通信装置、通信方法及びプログラム
JP7283103B2 (ja) * 2019-02-13 2023-05-30 日本電信電話株式会社 ゲートウェイ、通信システム及び通信方法
JP7271986B2 (ja) * 2019-02-13 2023-05-12 日本電信電話株式会社 ゲートウェイ、通信システム及び通信方法
CN110049532B (zh) * 2019-03-12 2021-04-30 上海感悟通信科技有限公司 一种用于无线自组网的心跳方法、受控节点和控制节点

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100333741B1 (ko) * 1999-06-30 2002-04-25 이계철 푸시시스템에서 멀티서버를 이용한 채널 연동 방법
JP2002091936A (ja) * 2000-09-11 2002-03-29 Hitachi Ltd 負荷分散装置及び負荷見積もり方法
KR100715674B1 (ko) * 2005-09-15 2007-05-09 한국전자통신연구원 부하 분산 방법 및 장치, 그리고 이를 이용한 소프트웨어스트리밍 시스템
KR100727993B1 (ko) * 2005-10-04 2007-06-14 삼성전자주식회사 데이터 풀 방식을 이용한 데이터 푸시 서비스 방법 및시스템
US7991416B2 (en) * 2006-02-27 2011-08-02 Qualcomm Incorporated Prepackaging call messages for each target interation in setting up a push-to-talk call
KR100953258B1 (ko) * 2007-12-18 2010-04-16 에스케이커뮤니케이션즈 주식회사 푸시 기반의 실시간 서비스 제공 방법, 네트워크 연결 유지방법, 실시간 서비스 서버 및 실시간 서비스 시스템
KR101537043B1 (ko) * 2008-06-18 2015-07-15 삼성전자주식회사 통신 시스템에서 단말과 서버와의 연결 유지 방법 및시스템
KR100983545B1 (ko) * 2008-06-25 2010-09-27 주식회사 케이티 모바일 푸시 서비스를 제공하기 위한 시스템 및 그 방법
US9313800B2 (en) * 2009-06-23 2016-04-12 Nokia Technologies Oy Method and apparatus for optimizing energy consumption for wireless connectivity
CN202050442U (zh) * 2010-12-31 2011-11-23 上海博泰悦臻电子设备制造有限公司 车辆全时在线系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014204088A1 (ko) * 2013-06-20 2014-12-24 Lee Hyun Ok 유무선 웹 기반의 채팅시스템 및 그 방법
KR20150000033A (ko) * 2013-06-20 2015-01-02 이현옥 유무선 웹 기반의 채팅시스템 및 그 방법
KR101526481B1 (ko) * 2013-07-22 2015-06-05 에스케이텔레콤 주식회사 단말장치 및 클라이언트장치와, 그 장치의 동작 방법
KR20190074914A (ko) * 2017-12-20 2019-06-28 한국전자통신연구원 네트워크 라우팅 경로 설정 지원 장치 및 그 방법

Also Published As

Publication number Publication date
WO2013012184A2 (ko) 2013-01-24
US9258740B2 (en) 2016-02-09
CN103703453B (zh) 2016-11-23
KR101298743B1 (ko) 2013-08-26
US20140106796A1 (en) 2014-04-17
CN103703453A (zh) 2014-04-02
WO2013012184A3 (ko) 2013-03-14

Similar Documents

Publication Publication Date Title
KR101298743B1 (ko) 메시지 부하 분산을 위한 푸시 서비스 제공 시스템 및 그 방법
CN107645529B (zh) 心跳包发送方法及装置
CN102118263B (zh) 配置信息的发布方法及系统
US9906935B2 (en) Bluetooth low energy beacon device and advertising method
WO2012158849A3 (en) Group communication sessions that are at least partially supported over personal area networks in a wireless communications system
CN105228238B (zh) 一种周期性保活传输方法、设备及系统
RU2013114348A (ru) Унифицированное повторное подключение к множественным удаленным серверам
CN103312528B (zh) 一种心跳消息发送方法及用户终端
TW201822013A (zh) 伺服器負載均衡的方法、裝置及伺服器設備
WO2015018338A1 (zh) 一种连接建立的方法及装置
GB201205092D0 (en) Technique for enabling multiple terminals to simutate traffic of a single virtual terminal
CN103607423A (zh) 一种基于WebSocket协议的分布式广播系统
JP2015207833A (ja) 通信装置、通信システム、及び通信方法
CN104506330B (zh) 一种消息同步方法和系统
Hou et al. Design and implementation of application programming interface for Internet of things cloud
CN111314416B (zh) 数据同步方法、装置、系统、设备和存储介质
KR101272077B1 (ko) 망 부하 감소를 위한 푸시 서비스 제공 시스템 및 방법
WO2013159492A1 (zh) 信息上报与下载的方法及系统
KR20190124749A (ko) 미션 크리티컬 데이터 통신 시스템에서의 데이터 송수신 방법 및 장치
KR101251630B1 (ko) 푸쉬 서비스 제공 시스템 및 방법
CN109983734B (zh) 具有中继设备的远程计算设备的子组
KR101407597B1 (ko) 망 부하 감소를 위한 푸시 서비스 제공 시스템 및 방법
JP6296605B2 (ja) プッシュ通知送信方法およびシステムならびにプッシュ通知装置および通信端末
CN104411011B (zh) 微型基站、时钟服务器授时、同步方法和系统
CN103607338B (zh) 一种基于虚拟化技术的目标对象广播方法、装置及系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160801

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170731

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180731

Year of fee payment: 6