KR101367265B1 - 푸시 서버, 푸시 서비스 제공시스템 및 그 방법 - Google Patents

푸시 서버, 푸시 서비스 제공시스템 및 그 방법 Download PDF

Info

Publication number
KR101367265B1
KR101367265B1 KR1020130065732A KR20130065732A KR101367265B1 KR 101367265 B1 KR101367265 B1 KR 101367265B1 KR 1020130065732 A KR1020130065732 A KR 1020130065732A KR 20130065732 A KR20130065732 A KR 20130065732A KR 101367265 B1 KR101367265 B1 KR 101367265B1
Authority
KR
South Korea
Prior art keywords
push
server
terminal
information
udp
Prior art date
Application number
KR1020130065732A
Other languages
English (en)
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 KR1020130065732A priority Critical patent/KR101367265B1/ko
Application granted granted Critical
Publication of KR101367265B1 publication Critical patent/KR101367265B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/18Service support devices; Network management devices
    • H04W88/184Messaging devices, e.g. message centre
    • 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)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명의 실시예에 따른 푸시 서버는 송신 단말로부터 수신 단말정보를 포함하는 UDP(User datagram protocol) 푸시 데이터를 수신하고, 수신된 UDP 푸시 데이터를 중계모듈로 전송하며, 송신 단말의 인증을 수행하는 메인 프록시 모듈, 메인 프록시 모듈로부터 UDP 푸시 데이터를 수신하고, 수신된 UDP 푸시 데이터에 포함된 수신 단말정보를 상태 프록시 모듈로 전송하는 중계모듈, 수신 단말정보를 수신하고, 수신 단말이 접속된 서버정보를 큐 핸들러(Queue handler)로 전송하는 상태 프록시 모듈 및 수신 단말이 접속된 서버정보를 전송받아 수신 단말이 접속된 서버에 UDP 푸시 알림 메시지를 전송하는 큐 핸들러(Queue handler)를 포함한다.

Description

푸시 서버, 푸시 서비스 제공시스템 및 그 방법{Push server, Push service providing system and Method of the same}
본 발명은 푸시 서버, 푸시 서비스 제공 시스템 및 그 방법에 관한 발명이다.
최근 발달하고 있는 무선 인터넷 시장에서 스마트폰 사용자 및 앱 사용자의 증가로 인하여 개발사 및 서비스 제공자의 푸시 알림을 위한 문제가 대두되고 있다. 푸시 서비스를 위해서는 서버에 연결되는 단말들이 상시 연결을 유지하기 위해서 킵 얼라이브(Keep-alive)메시지 또는 핑 리퀘스트(ping request)와 같은 신호를 전송한다. 국내에서 사용되는 인스턴트 메신저의 경우 10분에 한 번씩 킵 얼라이브 메시지를 전송하고 있으나 최근 천 만명 이상의 가입자가 확보된 상태에서 연결을 유지하기 위해서만 44TB의 데이터가 필요하다. 한편 애플리케이션 서버의 장애가 발생하여 단말의 연결이 끊어진 경우 서버가 재구동되면서 모든 단말이 동시에 재접속을 시도하게 되므로 무선망에 과부하가 발생한다.
도1은 푸시 서비스를 제공하기 위한 일반적인 시스템도이다.
도1에 도시된 바와 같이 푸시 서버는 프록시 서버를 통해 각 단말들과 연결되며, 프록시 서버와 연결되는 단말의 수가 많아질수록 과부하가 발생하고 푸시 서버를 증설하는 등의 조치를 취해야 한다.
이와 같은 문제는 안드로이드 운영체제, iOS운영체제에서 공통적으로 나타나는 문제점이다. 특히 설치된 앱의 수가 증가할수록 연결유지를 위한 신호전송건수는 크게 증가하게 되어 애플리케이션 실행을 위한 서버와의 연결을 담보할 수 없는 문제가 발생한다.
특히 푸시 서비스의 경우 제한된 망자원을 적절히 분배하기 위해서 메시지 데이터의 크기를 제안하고 있다. 안드로이드 운영체제의 GCM서비스의 경우 1024bytes, iOS운영체제의 APNs서비스의 경우 256bytes의 메시지 전송제약을 두고 있다.
무선망의 과부하를 줄이기 위한 물리적인 대안으로 단말과 연결되는 서버를 증설하여 순간 접속자수가 증가하더라도 안정된 서비스를 제공하기 위한 방법이 있으나 기존 서버와의 연결관계를 조절해야 하며, 고가의 서버를 설치해야 하기 때문에 비용에 따른 부담이 수반된다.
더불어 단말과 서버간의 주고 받는 데이터의 프로토콜을 UDP(user diagram protocol)푸시 데이터를 사용하여 단말과 서버간의 상시 연결을 지양함으로서 서버의 부하를 줄이고자 하였으나 UDP 푸시 데이터의 경우 신뢰성을 담보할 수 없으며 최근 LTE(Long-term evolution)망에서는 UDP 푸시 데이터의 사용을 제한하고 있다.
본 발명은 상기와 같은 종래 문제점을 해결하기 위해 안출된 것으로 본 발명의 목적은 단말의 접속이 늘어나더라도 안정성이 있는 무선망을 제공하고, 필요한 서버의 증설을 용이하게 할 수 있고, 푸시 데이터의 전송 신뢰성을 확보하기 위한 푸시 서버, 푸시 서비스 제공 시스템 및 그 방법을 제공한다.
본 발명의 일실시예에 따른 푸시 서버는 송신 단말로부터 수신 단말정보를 포함하는 UDP(User datagram protocol) 푸시 데이터를 수신하고, 수신된 UDP 푸시 데이터를 중계모듈로 전송하며, 송신 단말의 인증을 수행하는 메인 프록시 모듈, 메인 프록시 모듈로부터 UDP 푸시 데이터를 수신하고, 수신된 UDP 푸시 데이터에 포함된 수신 단말정보를 상태 프록시 모듈로 전송하는 중계모듈, 수신 단말정보를 수신하고, 수신 단말이 접속된 서버정보를 큐 핸들러(Queue handler)로 전송하는 상태 프록시 모듈 및 수신 단말이 접속된 서버정보를 전송받아 수신 단말이 접속된 서버에 UDP 푸시 알림메시지를 전송하는 큐 핸들러(Queue handler)를 포함한다.
실시예로서, 메인 프록시 모듈은 UDP 푸시 데이터 수신시에 송신 단말로 ack(acknowledge) 메시지를 전송할 수 있다.
실시예로서, 중계모듈은 메시지 중계모듈, 영상정보 중계모듈, 단말위치정보 중계모듈을 포함할 수 있다.
실시예로서, 중계모듈은 UDP 푸시 데이터를 저장하는 데이터 저장소와 연결되며, 상태 프록시 모듈은 단말의 접속 서버 위치정보를 저장하는 상태정보 저장소와 연결되고, 큐 핸들러는 UDP 푸시 알림메시지를 수신 단말이 연결된 서버에 전송하는 서버 큐(server Queue)와 연결될 수 있다.
실시예로서, 상태정보 저장소가 저장하는 정보는 단말의 식별번호, 서버의 IP(Internet Protocol)정보, 단말의 IP정보, 단말의 접속 포트(port) 정보를 포함할 수 있다.
본 발명의 일실시예에 따른 푸시 서비스 제공 시스템은 복수개의 푸시 서버를 포함하며, 각각의 푸시 서버는 리소스(resource) 분석기와 연결된다.
실시예로서, 리소스 분석기는 각 푸시 서버의 CPU정보, 메세지 큐상의 정체 메세지 수, 접속 단말의 수, 메모리 정보, 큐 핸들러 하트비트(HeartBeat) 정보, 메세지전달성공률을 실시간으로 분석할 수 있다.
실시예로서, 푸시 서비스 제공 시스템은 복수개의 푸시 서버 중 단말이 접속할 푸시 서버를 결정하는 리다이렉트 서버를 포함할 수 있다.
본 발명의 일실시예에 따른 푸시 서버가 수행하는 푸시 서비스 제공 방법은 푸시 서버가 송신 단말을 인증하는 단계, 송신 단말로부터 수신 단말정보를 포함하는 UDP(User Datagram Protocol)푸시 데이터를 수신하는 단계, UDP 푸시 데이터를 데이터 저장소에 저장하고, 수신 단말정보를 이용하여 수신 단말과 접속된 서버 위치를 검색하는 단계, 검색된 서버에 UDP 푸시 알림메시지를 전송하는 단계 및 수신 단말과 접속된 서버는 데이터 저장소에 저장된 UDP 푸시 데이터를 받아 수신 단말로 전송하는 단계를 포함한다.
실시예로서, 푸시 서버와 연결된 리소스 분석기가 복수 개의 푸시 서버 각각의 리소스(resource)를 분석하는 단계를 더 포함할 수 있다.
본 발명의 효과는 다음과 같다.
첫째, 단말과 서버간의 전송하고자 하는 데이터 용량크기의 제한이 없다.
둘째, 데이터 전송에 따른 신뢰성이 향상된다.
셋째, 데이터 전송의 속도가 향상되어 즉시성이 보장된다.
넷째, 서버의 증설이 용이하여 시스템의 확장이 용이하다.
도1은 푸시 서비스를 제공하기 위한 종래 시스템도이다.
도2는 일반적인 서버의 하드웨어 구조 개략도이다.
도3은 본 발명의 실시예에 따른 푸시 서버의 블럭도이다.
도4는 본 발명의 실시예에 따른 메인 프록시 모듈과 단말의 에이전트, 큐의 연결관계 블럭도이다.
도5는 본 발명의 실시예에 따른 푸시 서버와 푸시 서비스 제공 시스템의 블럭도이다.
도6은 본 발명의 실시예에 따른 푸시 서버의 푸시 데이터 전송 예시도이다.
도7은 본원발명의 실시예에 따른 리소스 분석기를 포함하는 푸시 서비스 제공 시스템 블럭도이다.
도8은 본 발명의 실시예에 따른 리다이렉트 서버를 포함하는 푸시 서비스 제공 시스템 블럭도이다.
도9는 본 발명의 실시예에 따른 푸시 서비스 제공 방법의 순서도이다.
본 명세서에서 사용되는 용어에 대해 설명하고, 본 발명에 대해 구체적으로 설명한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다.
도2는 일반적인 서버의 하드웨어 구조 개략도이다.
도2에 도시되어 있는 서버는 외부장치와 데이터를 송수신하는 통신 인터페이스, 데이터를 저장하는 데이터베이스, 메모리 및 통신 인터페이스, 데이터베이스, 메모리와 시스템버스로 연결되어 이를 제어하는 프로세서로 구성된다. 이와 같은 서버의 하드웨어 구성에서 본 발명의 각 블럭들은 소프트웨어를 통해 프로세서가 수행하는 기능단위의 블럭임을 밝혀둔다.
도3은 본 발명의 실시예에 따른 푸시 서버의 블럭도이다.
도3에 도시된 바와 같이 본 발명의 실시예에 따른 푸시 서버(100)는 메인 프록시 모듈(110), 중계모듈(120), 상태 프록시 모듈(130), 큐 핸들러(140)를 포함한다.
메인 프록시 모듈(110)은 송신 단말로부터 수신 단말정보를 포함하는 UDP(User Datagram Protocol)푸시 데이터를 수신하고, 수신된 UDP 푸시 데이터를 중계모듈(120)로 전송한다. 여기서 푸시 데이터를 통해서 제공되는 푸시 서비스는 컨텐츠나 정보가 변경되었을 경우 단말에 요청이 없어도 비동기 형태로 단말에 정보를 전송하는 서비스로서 푸시 서비스를 하는 방식으로는 SMS, Wap Push, SIP Push, IP Push 등 다양한 프로토콜을 사용한다. 특히 SIP Push를 사용함으로서 VoIP(Voice over Internet Protocol) 즉 지금까지 일반 전화 교환망(PSTN)네트워크를 통해 이루어졌던 음성 서비스를 인터넷 프로토콜(IP)기술을 사용하여 제공할 수 있다. 이러한 푸시 서비스의 종류로는 뉴스전달이나 메시지 알림(텍스트, HTML 등), 일정알림, 광고(설문, 쿠폰, 지도 등), 애플리케이션 설치 서비스, 애플리케이션 업데이트 서비스, 애플리케이션 삭제 서비스 등이 있다.
UDP(User Datagram Protocol)은 인터넷상에서 서로 정보를 주고 받을때 정보를 보낸다는 신호나 받는다는 신호절차를 거치지 않고, 보내는 쪽에서 일방적으로 데이터를 전달하는 통신 프로토콜이다. 인터넷 아이콘을 누르거나 단말의 앱 실행과 동시에 자동적으로 중앙컴퓨터 서버와 연결되어 정보를 보내는 쪽과 받는 쪽이 서로 소통할 수 있도록 설계된 TCP(Transmission Control Protocol)과는 상반되는 개념이다. 이러한 UDP는 수신측과 접속 절차를 거치지 않고 송신측에서 일방적으로 데이터를 보내는 방식으로 무관계서비스라고도 불린다.
본 발명인 푸시 서버(100)의 일부구성인 메인 프록시 모듈(110)은 단말에서 전송되는 데이터를 푸시 서버의 각 기능 블럭으로 전달하는 기능을 수행하며, 특히 본 발명의 경우 하기할 중계모듈(120)로 전송한다. 또한 메인 프록시 모듈(110)은 단말의 인증을 수행하여 익명의 사용자가 서버에 접근할 수 없도록 하는 기능을 수행한다. 단말의 인증절차에 대한 별도의 설명은 생략한다. 메인 프록시 모듈(110)은 별도의 메모리를 포함하고 있어 단말의 사용자 요청을 메모리(미도시)에 저장하고 동일한 요청이 들어오는 경우 데이터를 제공하는 기능을 수행한다. 이외에도 본 발명의 실시예에 따른 푸시 서버(100)의 일부 구성인 메인 프록시 모듈(110)은 UDP 푸시 데이터의 전송 모듈로서 신뢰성을 담보하기 위해 UDP 푸시 데이터 수신시에 송신 단말로 ack(acknowledge) 메시지를 전송한다. 이하 도4를 참조하여 메인 프록시 모듈(110)과 단말의 유저 에이전트(210)간의 신호 송수신 관계를 자세히 살펴본다.
도4는 본 발명의 실시예에 따른 메인 프록시 모듈과 단말의 유저 에이전트, 큐의 연결관계 블럭도이다.
먼저 사용자의 단말에서 데이터를 전송하는 경우 유저 에이전트(210)를 통해서 메인 프록시 모듈(110)로 데이터가 전송되고, 동시에 유저 에이전트(210)와 연결되어 있는 큐(Queue)(220)에 데이터를 저장한다. 유저 에이전트(210)로부터 데이터를 수신한 메인 프록시 모듈(110)은 수신한 데이터 정보를 담은 ack(acknowledge) 메시지를 유저 에이전트(210)로 전송하고 유저 에이전트(210)는 큐(Queue)(220)에 저장된 데이터를 삭제한다. 그러나 일정 시간이 지나도 유저 에이전트(210)가 ack 메시지를 받지 못하거나 전송한 데이터와 전혀 다른 정보를 갖고 있는 데이터 정보를 담은 ack메시지를 수신한 경우 큐(Queue)(220)에 저장되어 있는 기 전송 데이터(UDP 푸시 데이터)를 다시 전송한다. 이러한 메인 프록시 모듈(110)과 유저에이전트(210) 간의 ack 메시지 송수신관계를 통해 UDP 형식의 푸시 데이터임에 대한 데이터 전송의 신뢰성이 담보될 수 있다.
본 발명의 실시예에 따른 중계모듈(120)은 메인 프록시 모듈(110)로부터 UDP 푸시 데이터를 수신하고, 수신된 UDP 푸시 데이터에 포함된 수신 단말 정보를 상태 프록시 모듈(130)로 전송한다. 중계모듈(120)은 메시지 중계모듈, 영상정보 중계모듈, 단말위치정보 중계모듈을 포함하며 본 발명의 실시예는 이에 제한되지 않으며 수신된 푸시 데이터의 종류에 따라 다양한 중계모듈을 포함할 수 있다.
상태 프록시 모듈(130)은 중계모듈(120)로부터 수신 단말정보를 수신하고, 수신 단말이 접속되어 있는 푸시 서버정보를 큐 핸들러(140)로 전송한다. 상태 프록시 모듈(130)은 상태정보 저장소와 연결되며 상태정보 저장소는 단말의 식별번호, 서버의 IP(Internet Protocol)정보, 단말의 IP정보, 단말의 접속포트 정보를 저장한다. 상태 프록시 모듈(130)은 앞서 중계모듈(120)에 의해서 전송받은 수신 단말정보와 상태정보 저장소에 저장되어 있는 단말의 식별번호, 단말의 IP정보 등을 비교하여 수신 단말이 연결되어 있는 푸시 서버정보를 큐 핸들러(140)에 전송한다.
큐 핸들러(140)는 수신 단말이 접속된 푸시 서버정보를 전송받아 수신 단말이 접속된 푸시 서버에 푸시 알림 메시지를 전송한다. 큐 핸들러(140)가 전송하는 푸시 데이터 수신 알림 메시지는 수신 단말이 접속되어 있는 푸시 서버의 메시지 중계모듈로 전송된다. 큐 핸들러(140)는 메인큐(Main Queue) 및 서버큐(Server Queue)와 연결되어 있으며 메인큐는 상태 프록시 모듈에서 전송되는 수신 단말정보를 저장하고, 서버큐는 수신 단말이 접속된 서버에 전송되는 푸시 데이터 수신 알림 메시지를 저장한다.
이와 같은 푸시 서버의 구조로 인하여 서버 용량의 확장이 필요한 경우 별도의 프록시 서버에 연결할 필요가 없고, 비교적 간단하게 서버의 용량확장이 가능하다.
이하 본 발명의 실시예에 따른 푸시 서버의 푸시 데이터 전송 프로세스에 대해서 살펴본다.
도5는 본 발명의 실시예에 따른 푸시 서버와 푸시 서비스 제공 시스템의 블럭도이며, 도6은 본 발명의 실시예에 따른 푸시 서버의 푸시 데이터 전송 예시도이다.
푸시 서버와 연결된 단말들은 UDP(User Datagram Protocol) 푸시 데이터를 전송하기 위해서 홀 펀칭 유도신호를 전송하고, UDP 홀 펀칭처리를 수행하여 UDP 홀을 형성한다. 즉 푸시 서버와 단말들은 UDP홀에 의해서 연결된다. 보다 상세하게는 도6에 도시된 바와 같이 단말들의 유저 에이전트(210)와 푸시 서버(100)의 메인 프록시 모듈(110)이 통신망을 통해서 연결된다.
도5에 도시된 바와 같이 복수개의 푸시 서버(100) 각각은 복수의 단말(200)들과 연결되어 있으며 푸시 데이터를 송수신한다. 서버와 서버 사이는 직접 연결되어 있거나 데이터 저장소(300), 상태정보 저장소(400), 메인 큐(500), 서버큐(600)를 통해 연결된다. 푸시 서버 내부의 기능블럭인 메인 프록시 모듈(110)과 중계모듈(120), 상태 프록시 모듈(130), 큐 핸들러(140)도 서로 연결되어 있어 푸시데이터를 전달한다.
데이터 저장소(300)는 송신 단말이 전송한 모든 UDP 푸시 데이터를 저장한다. 이후 수신 단말과 연결되어 있는 푸시 서버(수신측)는 데이터 저장소에 접근, 송신 단말이 전송한 UDP 푸시 데이터를 전송받아, 수신단말로 송신한다.
상태정보 저장소(400)는 단말이 각각의 푸시 서버에 UDP홀을 통해서 연결된 경우 단말이 연결된 푸시 서버정보를 저장하고 송신 단말에서 전송한 수신 단말정보와 매칭시켜 큐 핸들러(140)가 수신 단말이 연결된 푸시 서버(수신측)로 푸시 알림 메시지를 전송한다.
도6을 참조하여 송신 단말에서 수신 단말로 메시지를 전송할 때 푸시 서버의 기능 및 전송 경로에 대해서 살펴본다.
송신 단말에서 사용자는 텍스트 메시지를 포함한 UDP 푸시 데이터를 전송한다. 송신 단말이 전송한 UDP 푸시 데이터는 수신 단말정보를 포함한다. 수신 단말정보는 전화번호 같은 단말의 식별번호, 단말의 IP정보 등을 포함한다. 메인 프록시 모듈(110)은 푸시 데이터의 수신완료에 대한 ack 메시지를 유저 에이전트(210)로 전송한다. 메인 프록시 모듈(110)은 UDP 푸시 데이터가 텍스트 메시지를 포함하고 있으므로 메시지 중계모듈(122)로 전송한다. 메시지 중계모듈(122)은 데이터 저장소에 푸시 데이터를 저장하고, 수신 단말정보를 상태 프록시 모듈(130)로 전송한다. 상태 프록시 모듈(130)은 상태 정보 저장소(400)에 저장되어 있는 푸시 서버 정보와 수신 단말정보를 매칭시켜 수신 단말이 연결되어 있는 푸시 서버(수신측)를 특정한다. 큐 핸들러(140)는 서버큐(600)를 통해 특정된 푸시 서버(수신측)에 푸시 알림 메시지를 전송한다. 또한 큐 핸들러(140)는 서버큐(600)로 푸시 알림 메시지를 전송함과 동시에 메인 큐(500)에 저장한다.
푸시 서버(수신측)에 포함되어 있는 메시지 중계모듈(수신측)은 푸시 알림 메시지를 수신하고 데이터 저장소(300)에 접근하여 송신 단말이 보낸 UDP 푸시 데이터를 전송받는다. 푸시 서버(수신측)의 메시지 중계 모듈(수신측)은 메인 프록시 모듈(수신측)로 전송하고 통신망을 통해 수신 단말의 유저 에이전트(수신측)로 송신한다. 수신 단말의 애플리케이션은 UDP 푸시 데이터의 수신으로 실행되고, 수신 단말의 사용자는 텍스트 메시지를 확인할 수 있다.
이상 본 발명의 실시예에 따른 푸시 서버에 의한 UDP 푸시 데이터의 송수신에 대해서 살펴보았다. UDP 푸시 데이터의 송수신과정은 단말의 위치추적을 위한 데이터 송수신 과정에서도 적용이 가능하다. 일반적으로 송신 단말은 안드로이드 운영체제를 갖는 폰의 경우에는 구글 서버를 통해, iOS 운영체제를 갖는 폰의 경우에는 애플 서버를 통해서 실시간으로 위치정보를 받는다. 송신 단말이 외부 서버(구글서버 또는 애플서버)로부터 전송 받은 위치정보를 앞서와 같은 방법으로 수신 단말에 전송이 가능하다. 즉 단말의 위치추적을 위해 적용되는 경우 단말들과 푸시 서버가 주고 받는 데이터는 텍스트 메시지를 포함하는 UDP 푸시 데이터가 아닌 단말의 위치정보를 포함하는 UDP 푸시 데이터가 된다. 본 발명의 실시예에 따른 푸시 서버에 의해서 단말의 위치추적을 위한 단말의 위치정보를 포함한 UDP 푸시 데이터를 전송받는 경우에는 서버와 단말간의 연결관계를 계속 유지할 필요없이 UDP 푸시 데이터 전송시에만 UDP홀을 통해 세션(session)을 유지시키고, 해제시킬 수 있어 단말의 밧데리 소모량이 크게 줄어들고, 서버의 부하가 현격히 감소한다.
이하 본 발명의 실시예에 따른 푸시 서버 및 리소스 분석기, 리다이렉트 서버를 포함하는 푸시 데이터를 전송하는 푸시 서비스 제공 시스템에 대해서 살펴본다.
본 발명의 실시예와 중복되는 구성에 대한 설명은 생략한다.
도7은 본원발명의 실시예에 따른 리소스 분석기를 포함하는 푸시 서비스 제공 시스템 블럭도이다.
도7에 도시된 바와 같이 리소스 분석기(700)는 복수개의 푸시 서버(100)에 연결되며, 각 푸시 서버에 CPU정보, 전체 CPU 가동률, 푸시 프로세스 CPU 가동률, 메시지 큐 상의 정체 메시지 수, 정체발생 위험율, 접속 단말의 수, 메모리 정보, 전체 메모리 가동률, 푸시 할당 메모리 정보, 푸시 할당 메모리 가동률, 큐 핸들러 하트비트(Heartbeat)정보, 메시지 전달 성공률 등을 실시간으로 분석한다. 리소스 분석기에(700) 의해서 분석된 정보는 서버자원의 분배를 통한 서버 부하를 조절하기 위한 기초자료가 된다. 또한 리소스 분석기(700)에 의해 서버의 고장, 이상 유무를 판정할 수 있다.
도8은 본 발명의 실시예에 따른 리다이렉트 서버를 포함하는 푸시 서비스 제공 시스템 블럭도이다.
도8에 도시된 바와 같이 리다이렉트 서버(800)는 리소스 분석기(700)와 연결된다. 리다이렉트 서버(redirect server)(800)는 복수개의 푸시 서버(100) 중 단말이 접속할 푸시 서버(100)를 결정한다. 리다이렉트 서버(800)는 리소스 분석기(700)에 의해 분석된 리소스 정보를 활용하여 새로운 단말이 푸시 서버에 연결하려 하거나 연결되어 있는 단말이 다른 푸시 서버로 연결될 수 있도록 한다. 송신 단말은 현재 푸시 서버 1에 연결되어 있다. 그러나 리소스 분석기(700)에 의한 분석결과 푸시 서버 1에 과부하가 발생하거나 고장 등의 원인으로 이상이 발생한 경우 리다이렉트 서버(800)는 송신 단말에 UDP홀을 형성한다. 리다이렉트 서버(800)는 단말의 인증을 수행하고 송신 단말이 새로운 푸시 서버 2와 연결되도록 한다. 푸시 서버 2와 송신 단말의 연결은 앞서 설명한 바와 같다.
본 발명의 실시예에 따른 푸시 서비스 제공 시스템은 리소스 분석기(700)와 리다이렉트 서버(800)를 포함함으로서 푸시 서버간의 자원분배를 원활히 할 수 있고, 푸시 서버의 고장이나 과부하로 인한 이상발생시에 단말과의 연결끊김을 최소화 할 수 있다.
이하 본 발명의 실시예에 따른 푸시 서비스 제공 방법에 대해서 살펴본다.
도9는 본 발명의 실시예에 따른 푸시 서비스 제공 방법의 순서도이다.
도9에 도시된 바와 같이 푸시 서비스 제공 방법은 단말에서 푸시 서버로 UDP홀 펀칭을 통해 UDP홀을 형성하는 단계(S100), 송신 단말을 인증하는 단계(S200), 송신 단말로부터 UDP푸시 데이터를 수신하는 단계(S300), 수신 단말과 접속된 서버 위치를 검색하는 단계(S400), 푸시 알림 메시지를 전송하는 단계(S500), 데이터 저장소에 저장된 푸시 데이터를 받아 수신 단말로 전송하는 단계(S600)를 포함한다. 또한 복수개의 푸시 서버 각각의 리소스를 분석하는 단계를 더 포함한다.
UDP홀을 형성하는 단계(S100)와 송신 단말을 인증하는 단계(S200)에 대한 설명은 생략한다. 송신 단말로부터 UDP 푸시 데이터를 수신하는 단계(S300)는 푸시 서버의 메인 프록시 모듈이 수행한다. 메인 프록시 모듈은 UDP 푸시 데이터를 중계모듈로 전송하고 중계 모듈은 데이터 저장소에 UDP 푸시 데이터를 저장함과 동시에 상태 프록시 모듈로 수신 단말정보를 전송한다. 수신 단말과 접속된 서버위치를 검색하는 단계(S400)는 상태 프록시 모듈이 상태 프록시 모듈로 전송된 수신 단말정보와 상태 정보 저장소에 기 저장된 데이터를 매칭시켜 수행한다. 푸시 알림 메시지를 전송하는 단계(S500)는 큐핸들러에 의해서 수행되며, 서버큐를 경유해 수신 단말과 접속된 푸시 서버에 전송한다. 수신측의 푸시 서버는 데이터 저장소에 저장된 푸시 데이터를 받아 수신 단말로 전송한다.(S600) 또한 앞서 살펴본 바와 같이 복수개의 푸시 서버와 연결된 리소스 분석기는 각 서버의 리소스를 분석하여 단말이 특정 서버에만 집중적으로 연결되는 것을 방지하고, 푸시 서버의 고장이나 이상 유무를 판정할 수 있다.
100 푸시서버 110 메인 프록시 모듈
120 중계모듈 122 메시지 중계모듈
130 상태 프록시 모듈 140 큐핸들러
200 단말 210 유저 에이전트
300 데이터 저장소 400 상태 정보 저장소
500 메인큐 600 서버큐
700 리소스 분석기 800 리다이렉트 서버

Claims (10)

  1. 송신 단말로부터 수신 단말정보를 포함하는 UDP(User datagram protocol) 푸시 데이터를 수신하고, 수신된 상기 UDP 푸시 데이터를 중계모듈로 전송하며, 상기 송신 단말의 인증을 수행하는 메인 프록시 모듈;
    상기 메인 프록시 모듈로부터 상기 UDP 푸시 데이터를 수신하고, 수신된 UDP 푸시 데이터에 포함된 상기 수신 단말정보를 상태 프록시 모듈로 전송하는 중계모듈;
    상기 수신 단말정보를 수신하고, 수신 단말이 접속된 서버정보를 큐 핸들러(Queue handler)로 전송하는 상태 프록시 모듈; 및
    상기 수신 단말이 접속된 서버정보를 전송받아 상기 수신 단말이 접속된 서버에 UDP 푸시 알림 메시지를 전송하는 큐 핸들러(Queue handler)를 포함하는 것을 특징으로 하는 푸시 서버.
  2. 제1항에 있어서,
    상기 메인 프록시 모듈은 상기 UDP 푸시 데이터 수신시에 상기 송신 단말로 ack(acknowledge) 메시지를 전송하는 것을 특징으로 하는 푸시 서버.
  3. 제1항에 있어서,
    상기 중계모듈은 메시지 중계모듈, 영상정보 중계모듈, 단말위치정보 중계모듈을 포함하는 것을 특징으로 하는 푸시 서버.
  4. 제1항에 있어서,
    상기 중계모듈은 수신된 상기 UDP 푸시 데이터를 저장하는 데이터 저장소와 연결되며, 상기 상태 프록시 모듈은 단말의 접속 서버 위치정보를 저장하는 상태정보 저장소와 연결되고, 상기 큐 핸들러는 상기 UDP 푸시 알림 메시지를 수신 단말이 연결된 서버에 전송하는 서버 큐(server Queue)와 연결되는 것을 특징으로 하는 푸시 서버.
  5. 제4항에 있어서,
    상기 상태정보 저장소가 저장하는 정보는 단말의 식별번호, 서버의 IP(Internet Protocol)정보, 단말의 IP정보, 단말의 접속 포트(port) 정보를 포함하는 것을 특징으로 하는 푸시 서버.
  6. 복수개의 제1항의 푸시 서버 및 리소스 분석기를 포함하되, 상기 리소스 분석기는 각각의 상기 푸시 서버와 연결되어 있는 것을 특징으로 하는 푸시 서비스 제공 시스템.
  7. 제6항에 있어서,
    상기 리소스 분석기는 각각의 상기 푸시 서버의 CPU정보, 메세지 큐상의 정체 메세지 수, 접속 단말의 수, 메모리 정보, 큐 핸들러 하트비트(HeartBeat) 정보, 메세지전달성공률을 실시간으로 분석하는 것을 특징으로 하는 푸시 서비스 제공 시스템.
  8. 제7항에 있어서,
    상기 시스템은 복수개의 상기 푸시 서버 중 단말이 접속할 푸시 서버를 결정하는 리다이렉트 서버를 포함하는 것을 특징으로 하는 푸시 서비스 제공 시스템.
  9. 제1항의 푸시 서버가 수행하는 푸시 서비스 제공 방법으로서,
    상기 푸시 서버가 송신 단말을 인증하는 단계;
    송신 단말로부터 수신 단말정보을 포함하는 UDP(User Datagram Protocol)푸시 데이터를 수신하는 단계;
    상기 UDP 푸시 데이터를 데이터 저장소에 저장하고, 상기 수신 단말정보를 이용하여 수신 단말과 접속된 서버 위치를 검색하는 단계;
    검색된 서버에 UDP 푸시 알림 메시지를 전송하는 단계; 및
    상기 수신 단말과 접속된 서버는 데이터 저장소에 저장된 UDP 푸시 데이터를 받아 수신 단말로 전송하는 단계를 포함하는 푸시 서비스 제공 방법.
  10. 제9항에 있어서,
    상기 푸시 서버와 연결된 리소스 분석기가 복수 개의 푸시 서버 각각의 리소스(resource)를 분석하는 단계를 더 포함하는 것을 특징으로 하는 푸시 서비스 제공 방법.
KR1020130065732A 2013-06-10 2013-06-10 푸시 서버, 푸시 서비스 제공시스템 및 그 방법 KR101367265B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130065732A KR101367265B1 (ko) 2013-06-10 2013-06-10 푸시 서버, 푸시 서비스 제공시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130065732A KR101367265B1 (ko) 2013-06-10 2013-06-10 푸시 서버, 푸시 서비스 제공시스템 및 그 방법

Publications (1)

Publication Number Publication Date
KR101367265B1 true KR101367265B1 (ko) 2014-02-28

Family

ID=50271943

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130065732A KR101367265B1 (ko) 2013-06-10 2013-06-10 푸시 서버, 푸시 서비스 제공시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR101367265B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101606319B1 (ko) 2015-01-26 2016-03-24 성균관대학교산학협력단 데이터베이스를 이용한 푸시메시지 관리 방법
CN109889613A (zh) * 2019-04-24 2019-06-14 广州吱呀网络科技有限公司 一种消息推送方法、装置和移动终端
CN114500630A (zh) * 2020-10-27 2022-05-13 航天信息股份有限公司 消息推送的方法、装置、系统、存储介质和电子设备
KR102610111B1 (ko) * 2023-05-12 2023-12-06 쿠팡 주식회사 푸시 알림을 제공하는 방법 및 이를 지원하는 전자 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110208869A1 (en) 2008-10-14 2011-08-25 Mamoun Abu-Samaha Http push to simulate server-initiated sessions
KR20120128013A (ko) * 2011-05-16 2012-11-26 에스케이텔레콤 주식회사 망 부하 감소를 위한 푸시 서비스 제공 시스템 및 방법
KR20130013272A (ko) * 2011-07-27 2013-02-06 삼성전자주식회사 푸시 서비스의 핑 주기를 결정하는 장치 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110208869A1 (en) 2008-10-14 2011-08-25 Mamoun Abu-Samaha Http push to simulate server-initiated sessions
KR20120128013A (ko) * 2011-05-16 2012-11-26 에스케이텔레콤 주식회사 망 부하 감소를 위한 푸시 서비스 제공 시스템 및 방법
KR20130013272A (ko) * 2011-07-27 2013-02-06 삼성전자주식회사 푸시 서비스의 핑 주기를 결정하는 장치 및 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101606319B1 (ko) 2015-01-26 2016-03-24 성균관대학교산학협력단 데이터베이스를 이용한 푸시메시지 관리 방법
CN109889613A (zh) * 2019-04-24 2019-06-14 广州吱呀网络科技有限公司 一种消息推送方法、装置和移动终端
CN114500630A (zh) * 2020-10-27 2022-05-13 航天信息股份有限公司 消息推送的方法、装置、系统、存储介质和电子设备
KR102610111B1 (ko) * 2023-05-12 2023-12-06 쿠팡 주식회사 푸시 알림을 제공하는 방법 및 이를 지원하는 전자 장치

Similar Documents

Publication Publication Date Title
US20170054766A1 (en) Enterprise client-server system and methods of providing web application support through distributed emulation of websocket communications
US9215283B2 (en) System and method for mobility and multi-homing content retrieval applications
US10110538B2 (en) Method and apparatus for message transmission
KR101533489B1 (ko) 클라우드 기반 네트워크에서 통합 VoIP를 구현하기 위한 방법 및 시스템
US20120198268A1 (en) Re-establishing push notification channels via user identifiers
CN111479121A (zh) 一种基于流媒体服务器的直播方法及系统
US20090030917A1 (en) Multimedia messaging service-based database synchronization
US20080263213A1 (en) Communication device and client device
KR101367265B1 (ko) 푸시 서버, 푸시 서비스 제공시스템 및 그 방법
CN108696523B (zh) 一种通话服务的响应方法及设备
US20150127837A1 (en) Relay apparatus and data transfer method
US20150067066A1 (en) Provisioning Communication Services using Proxy Server in a Cloud
CN114363351B (zh) 一种代理连接抑制方法、网络架构及代理服务器
US7349664B2 (en) Communication system and method thereof
US7086051B2 (en) Method and apparatus for just-in-time provisioning application-related information at a communication device
US20130188559A1 (en) Method for Establishing a Communication Connection over the Internet Between Mobile Terminals, Computer Program, and Storage Medium
CN113542324B (zh) 一种消息推送方法和装置
US11165688B2 (en) Reformatting message content upon detecting transmission failure
CN114143729B (zh) 用于与IoT设备进行数据收发的装置、方法及计算机可读存储介质
CN113347234B (zh) 网络信息获取方法、装置、系统、计算机设备和存储介质
EP3107352A1 (en) Information transfer method and apparatus
US11310310B2 (en) Communication device for peer-to-peer communication and a communication network using the same
CN105230074B (zh) 视频缓存切换处理方法、装置和系统
CN114928596B (zh) 微服务通信过程中数据传输方法及装置
CN111490997A (zh) 任务处理方法、代理系统、服务系统和电子设备

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
N231 Notification of change of applicant
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee