KR101367265B1 - Push server, push service providing system and method of the same - Google Patents

Push server, push service providing system and method of the same 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
Korean (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 KR1020130065732A priority Critical patent/KR101367265B1/en
Application granted granted Critical
Publication of KR101367265B1 publication Critical patent/KR101367265B1/en

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

A push server according to one embodiment of the present invention comprises: a main proxy module receiving user datagram protocol (UDP) push data containing information of a receiving terminal from a transmitting terminal, transmitting the received UDP push data to a relay module, and performing the authentication of the transmitting terminal; the relay module receiving the UDP push data from the main proxy module and transmitting the information of the receiving terminal contained in the received UDP push data to a status proxy module; the status proxy module receiving the information of the receiving terminal and transmitting information of a server to which the receiving terminal is connected to a queue handler; and the queue handler receiving the information of the server to which the receiving terminal is connected and transmitting a UDP push notification message to the server to which the receiving terminal is connected. [Reference numerals] (110) Main proxy module; (122) Message relay module; (130) Status proxy module; (140) Queue handler; (210) User agent (Client); (300) Data storage; (400) Status information storage; (500) Main queue; (600) Server queue; (AA) Transmitting terminal; (BB) Receiving terminal; (CC) User agent (Client) (Receiving side); (DD,EE) Communication network; (FF) Push server (Receiving side); (GG) Main proxy module (Receiving side); (HH) Message relay module (Receiving side)

Description

푸시 서버, 푸시 서비스 제공시스템 및 그 방법{Push server, Push service providing system and Method of the same}Push server, Push service providing system and method of the same

본 발명은 푸시 서버, 푸시 서비스 제공 시스템 및 그 방법에 관한 발명이다. The present invention relates to a push server, a push service providing system, and a method thereof.

최근 발달하고 있는 무선 인터넷 시장에서 스마트폰 사용자 및 앱 사용자의 증가로 인하여 개발사 및 서비스 제공자의 푸시 알림을 위한 문제가 대두되고 있다. 푸시 서비스를 위해서는 서버에 연결되는 단말들이 상시 연결을 유지하기 위해서 킵 얼라이브(Keep-alive)메시지 또는 핑 리퀘스트(ping request)와 같은 신호를 전송한다. 국내에서 사용되는 인스턴트 메신저의 경우 10분에 한 번씩 킵 얼라이브 메시지를 전송하고 있으나 최근 천 만명 이상의 가입자가 확보된 상태에서 연결을 유지하기 위해서만 44TB의 데이터가 필요하다. 한편 애플리케이션 서버의 장애가 발생하여 단말의 연결이 끊어진 경우 서버가 재구동되면서 모든 단말이 동시에 재접속을 시도하게 되므로 무선망에 과부하가 발생한다. Due to the increase in smartphone users and app users in the recently developed wireless Internet market, problems for push notifications of developers and service providers are emerging. For the push service, terminals connected to the server transmit a signal such as a keep-alive message or a ping request to maintain a constant connection. The instant messenger used in Korea transmits keep-alive messages every 10 minutes, but 44TB of data is needed to maintain the connection with more than 10 million subscribers recently. On the other hand, if the terminal is disconnected due to a failure of the application server, the server is restarted and all terminals attempt to reconnect at the same time, causing an overload of the wireless network.

도1은 푸시 서비스를 제공하기 위한 일반적인 시스템도이다.1 is a general system diagram for providing a push service.

도1에 도시된 바와 같이 푸시 서버는 프록시 서버를 통해 각 단말들과 연결되며, 프록시 서버와 연결되는 단말의 수가 많아질수록 과부하가 발생하고 푸시 서버를 증설하는 등의 조치를 취해야 한다.As shown in FIG. 1, the push server is connected to each terminal through a proxy server, and as the number of terminals connected to the proxy server increases, overload occurs and an additional push server needs to be taken.

이와 같은 문제는 안드로이드 운영체제, iOS운영체제에서 공통적으로 나타나는 문제점이다. 특히 설치된 앱의 수가 증가할수록 연결유지를 위한 신호전송건수는 크게 증가하게 되어 애플리케이션 실행을 위한 서버와의 연결을 담보할 수 없는 문제가 발생한다.This problem is common to both Android and iOS operating systems. In particular, as the number of installed apps increases, the number of signal transmissions for maintaining the connection increases significantly, which causes a problem that the connection with the server for executing the application cannot be secured.

특히 푸시 서비스의 경우 제한된 망자원을 적절히 분배하기 위해서 메시지 데이터의 크기를 제안하고 있다. 안드로이드 운영체제의 GCM서비스의 경우 1024bytes, iOS운영체제의 APNs서비스의 경우 256bytes의 메시지 전송제약을 두고 있다.In particular, in the case of push services, the size of message data is proposed to properly distribute limited network resources. The GCM service of the Android operating system has 1024 bytes, and the APNs service of the iOS operating system has 256 bytes.

무선망의 과부하를 줄이기 위한 물리적인 대안으로 단말과 연결되는 서버를 증설하여 순간 접속자수가 증가하더라도 안정된 서비스를 제공하기 위한 방법이 있으나 기존 서버와의 연결관계를 조절해야 하며, 고가의 서버를 설치해야 하기 때문에 비용에 따른 부담이 수반된다.As a physical alternative to reduce the overload of the wireless network, there is a method to provide stable service even if the number of instantaneous users increases by adding a server connected to the terminal, but it is necessary to adjust the connection relationship with the existing server and install an expensive server. This is accompanied by the burden of cost.

더불어 단말과 서버간의 주고 받는 데이터의 프로토콜을 UDP(user diagram protocol)푸시 데이터를 사용하여 단말과 서버간의 상시 연결을 지양함으로서 서버의 부하를 줄이고자 하였으나 UDP 푸시 데이터의 경우 신뢰성을 담보할 수 없으며 최근 LTE(Long-term evolution)망에서는 UDP 푸시 데이터의 사용을 제한하고 있다.
In addition, we tried to reduce the load on the server by avoiding the constant connection between the terminal and the server by using UDP (user diagram protocol) push data for the protocol of the data sent between the terminal and the server. Long-term evolution (LTE) networks restrict the use of UDP push data.

본 발명은 상기와 같은 종래 문제점을 해결하기 위해 안출된 것으로 본 발명의 목적은 단말의 접속이 늘어나더라도 안정성이 있는 무선망을 제공하고, 필요한 서버의 증설을 용이하게 할 수 있고, 푸시 데이터의 전송 신뢰성을 확보하기 위한 푸시 서버, 푸시 서비스 제공 시스템 및 그 방법을 제공한다.
SUMMARY OF THE INVENTION The present invention has been made to solve the above-mentioned conventional problems, and an object of the present invention is to provide a stable wireless network even when the connection of the terminal is increased, to facilitate the expansion of necessary servers, and to transmit push data. Provided are a push server, a push service providing system, and a method for securing reliability.

본 발명의 일실시예에 따른 푸시 서버는 송신 단말로부터 수신 단말정보를 포함하는 UDP(User datagram protocol) 푸시 데이터를 수신하고, 수신된 UDP 푸시 데이터를 중계모듈로 전송하며, 송신 단말의 인증을 수행하는 메인 프록시 모듈, 메인 프록시 모듈로부터 UDP 푸시 데이터를 수신하고, 수신된 UDP 푸시 데이터에 포함된 수신 단말정보를 상태 프록시 모듈로 전송하는 중계모듈, 수신 단말정보를 수신하고, 수신 단말이 접속된 서버정보를 큐 핸들러(Queue handler)로 전송하는 상태 프록시 모듈 및 수신 단말이 접속된 서버정보를 전송받아 수신 단말이 접속된 서버에 UDP 푸시 알림메시지를 전송하는 큐 핸들러(Queue handler)를 포함한다. A push server according to an embodiment of the present invention receives UDP (User datagram protocol) push data including receiving terminal information from a transmitting terminal, transmits the received UDP push data to a relay module, and performs authentication of the transmitting terminal. A server for receiving the UDP push data from the main proxy module, the main proxy module, a relay module for transmitting the receiving terminal information included in the received UDP push data to the state proxy module, and receiving the receiving terminal information, and receiving the terminal information. It includes a state proxy module for transmitting information to a queue handler and a queue handler for receiving a server information connected to a receiving terminal and transmitting a UDP push notification message to a server to which the receiving terminal is connected.

실시예로서, 메인 프록시 모듈은 UDP 푸시 데이터 수신시에 송신 단말로 ack(acknowledge) 메시지를 전송할 수 있다. As an embodiment, the main proxy module may send an ack (acknowledge) message to the transmitting terminal upon receiving the UDP push data.

실시예로서, 중계모듈은 메시지 중계모듈, 영상정보 중계모듈, 단말위치정보 중계모듈을 포함할 수 있다. In an embodiment, the relay module may include a message relay module, an image information relay module, and a terminal location information relay module.

실시예로서, 중계모듈은 UDP 푸시 데이터를 저장하는 데이터 저장소와 연결되며, 상태 프록시 모듈은 단말의 접속 서버 위치정보를 저장하는 상태정보 저장소와 연결되고, 큐 핸들러는 UDP 푸시 알림메시지를 수신 단말이 연결된 서버에 전송하는 서버 큐(server Queue)와 연결될 수 있다.As an embodiment, the relay module may be connected to a data store for storing UDP push data, and the state proxy module may be connected to a state information store for storing access server location information of the terminal, and the queue handler may be configured to receive a UDP push notification message. Can be connected to the server queue (server queue) to send to the connected server.

실시예로서, 상태정보 저장소가 저장하는 정보는 단말의 식별번호, 서버의 IP(Internet Protocol)정보, 단말의 IP정보, 단말의 접속 포트(port) 정보를 포함할 수 있다. In an embodiment, the information stored by the state information store may include an identification number of the terminal, Internet Protocol (IP) information of the server, IP information of the terminal, and connection port information of the terminal.

본 발명의 일실시예에 따른 푸시 서비스 제공 시스템은 복수개의 푸시 서버를 포함하며, 각각의 푸시 서버는 리소스(resource) 분석기와 연결된다.Push service providing system according to an embodiment of the present invention includes a plurality of push servers, each push server is connected to a resource (resource) analyzer.

실시예로서, 리소스 분석기는 각 푸시 서버의 CPU정보, 메세지 큐상의 정체 메세지 수, 접속 단말의 수, 메모리 정보, 큐 핸들러 하트비트(HeartBeat) 정보, 메세지전달성공률을 실시간으로 분석할 수 있다.As an embodiment, the resource analyzer may analyze in real time the CPU information of each push server, the number of congestion messages on the message queue, the number of access terminals, memory information, queue handler heartbeat information, and message delivery success rate.

실시예로서, 푸시 서비스 제공 시스템은 복수개의 푸시 서버 중 단말이 접속할 푸시 서버를 결정하는 리다이렉트 서버를 포함할 수 있다. In an embodiment, the push service providing system may include a redirect server that determines a push server to which the terminal connects, from among a plurality of push servers.

본 발명의 일실시예에 따른 푸시 서버가 수행하는 푸시 서비스 제공 방법은 푸시 서버가 송신 단말을 인증하는 단계, 송신 단말로부터 수신 단말정보를 포함하는 UDP(User Datagram Protocol)푸시 데이터를 수신하는 단계, UDP 푸시 데이터를 데이터 저장소에 저장하고, 수신 단말정보를 이용하여 수신 단말과 접속된 서버 위치를 검색하는 단계, 검색된 서버에 UDP 푸시 알림메시지를 전송하는 단계 및 수신 단말과 접속된 서버는 데이터 저장소에 저장된 UDP 푸시 데이터를 받아 수신 단말로 전송하는 단계를 포함한다.A push service providing method performed by a push server according to an embodiment of the present invention includes the steps of authenticating a transmitting terminal by a push server, receiving UDP (User Datagram Protocol) data including receiving terminal information from a transmitting terminal, Storing UDP push data in a data store, retrieving a server location connected to a receiving terminal by using receiving terminal information, transmitting a UDP push notification message to the retrieved server, and a server connected to the receiving terminal And receiving the stored UDP push data and transmitting the received UDP push data.

실시예로서, 푸시 서버와 연결된 리소스 분석기가 복수 개의 푸시 서버 각각의 리소스(resource)를 분석하는 단계를 더 포함할 수 있다.
In an embodiment, the resource analyzer connected to the push server may further include analyzing a resource of each of the plurality of push servers.

본 발명의 효과는 다음과 같다.The effects of the present invention are as follows.

첫째, 단말과 서버간의 전송하고자 하는 데이터 용량크기의 제한이 없다.First, there is no limitation of the data capacity size to be transmitted between the terminal and the server.

둘째, 데이터 전송에 따른 신뢰성이 향상된다.Second, the reliability of data transmission is improved.

셋째, 데이터 전송의 속도가 향상되어 즉시성이 보장된다.Third, the speed of data transmission is improved to ensure instantaneousness.

넷째, 서버의 증설이 용이하여 시스템의 확장이 용이하다.
Fourth, it is easy to expand the server is easy to expand the server.

도1은 푸시 서비스를 제공하기 위한 종래 시스템도이다.
도2는 일반적인 서버의 하드웨어 구조 개략도이다.
도3은 본 발명의 실시예에 따른 푸시 서버의 블럭도이다.
도4는 본 발명의 실시예에 따른 메인 프록시 모듈과 단말의 에이전트, 큐의 연결관계 블럭도이다.
도5는 본 발명의 실시예에 따른 푸시 서버와 푸시 서비스 제공 시스템의 블럭도이다.
도6은 본 발명의 실시예에 따른 푸시 서버의 푸시 데이터 전송 예시도이다.
도7은 본원발명의 실시예에 따른 리소스 분석기를 포함하는 푸시 서비스 제공 시스템 블럭도이다.
도8은 본 발명의 실시예에 따른 리다이렉트 서버를 포함하는 푸시 서비스 제공 시스템 블럭도이다.
도9는 본 발명의 실시예에 따른 푸시 서비스 제공 방법의 순서도이다.
1 is a diagram of a conventional system for providing a push service.
2 is a schematic diagram of a hardware structure of a general server.
3 is a block diagram of a push server according to an embodiment of the present invention.
4 is a block diagram illustrating a connection relationship between a main proxy module, an agent of a terminal, and a queue according to an embodiment of the present invention.
5 is a block diagram of a push server and a push service providing system according to an exemplary embodiment of the present invention.
6 is an exemplary push data transmission of a push server according to an embodiment of the present invention.
7 is a block diagram of a push service providing system including a resource analyzer according to an embodiment of the present invention.
8 is a block diagram of a push service providing system including a redirect server according to an exemplary embodiment of the present invention.
9 is a flowchart illustrating a push service providing method according to an embodiment of the present invention.

본 명세서에서 사용되는 용어에 대해 설명하고, 본 발명에 대해 구체적으로 설명한다.Terms used in the present specification will be described, and the present invention will be described in detail.

본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다. While the present invention has been described in connection with what is presently considered to be the most practical and preferred embodiment, it is to be understood that the invention is not limited to the disclosed embodiments. Also, in certain cases, there may be a term selected arbitrarily by the applicant, in which case the meaning thereof will be described in detail in the description of the corresponding invention. Therefore, the terms used in the present invention should be defined based on the meanings of the terms and the contents throughout the present invention, rather than the names of the simple terms.

명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. When an element is referred to as "including" an element throughout the specification, it is to be understood that the element may include other elements, without departing from the spirit or scope of the present invention.

도2는 일반적인 서버의 하드웨어 구조 개략도이다.2 is a schematic diagram of a hardware structure of a general server.

도2에 도시되어 있는 서버는 외부장치와 데이터를 송수신하는 통신 인터페이스, 데이터를 저장하는 데이터베이스, 메모리 및 통신 인터페이스, 데이터베이스, 메모리와 시스템버스로 연결되어 이를 제어하는 프로세서로 구성된다. 이와 같은 서버의 하드웨어 구성에서 본 발명의 각 블럭들은 소프트웨어를 통해 프로세서가 수행하는 기능단위의 블럭임을 밝혀둔다.The server shown in FIG. 2 includes a communication interface for transmitting and receiving data to and from an external device, a database for storing data, a memory and communication interface, a processor connected to the database, a memory, and a system bus to control the same. In the hardware configuration of the server, each block of the present invention is a block of a functional unit that is executed by the processor through software.

도3은 본 발명의 실시예에 따른 푸시 서버의 블럭도이다.3 is a block diagram of a push server according to an embodiment of the present invention.

도3에 도시된 바와 같이 본 발명의 실시예에 따른 푸시 서버(100)는 메인 프록시 모듈(110), 중계모듈(120), 상태 프록시 모듈(130), 큐 핸들러(140)를 포함한다. As shown in FIG. 3, the push server 100 according to the embodiment of the present invention includes a main proxy module 110, a relay module 120, a state proxy module 130, and a queue handler 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 등), 일정알림, 광고(설문, 쿠폰, 지도 등), 애플리케이션 설치 서비스, 애플리케이션 업데이트 서비스, 애플리케이션 삭제 서비스 등이 있다.The main proxy module 110 receives User Datagram Protocol (UDP) push data including the receiving terminal information from the transmitting terminal, and transmits the received UDP push data to the relay module 120. In this case, the push service provided through push data is a service that transmits information to the terminal in asynchronous form when the content or information is changed without a request to the terminal. Push services include SMS, Wap Push, SIP Push, and IP Push. Use a variety of protocols. In particular, the use of SIP Push can provide Voice over Internet Protocol (VoIP), that is, voice services that have been made through a public switched telephone network (PSTN) network using the Internet Protocol (IP) technology. Such push services include news delivery, message notifications (text, HTML, etc.), calendar notifications, advertisements (questions, coupons, maps, etc.), application installation services, application update services, and application deletion services.

UDP(User Datagram Protocol)은 인터넷상에서 서로 정보를 주고 받을때 정보를 보낸다는 신호나 받는다는 신호절차를 거치지 않고, 보내는 쪽에서 일방적으로 데이터를 전달하는 통신 프로토콜이다. 인터넷 아이콘을 누르거나 단말의 앱 실행과 동시에 자동적으로 중앙컴퓨터 서버와 연결되어 정보를 보내는 쪽과 받는 쪽이 서로 소통할 수 있도록 설계된 TCP(Transmission Control Protocol)과는 상반되는 개념이다. 이러한 UDP는 수신측과 접속 절차를 거치지 않고 송신측에서 일방적으로 데이터를 보내는 방식으로 무관계서비스라고도 불린다.UDP (User Datagram Protocol) is a communication protocol that unilaterally delivers data on the sender's side without going through a signal to send or receive information. This concept is contrary to the Transmission Control Protocol (TCP), which is designed to allow the sending and receiving parties to communicate with each other by automatically connecting to the central computer server at the time of pressing the Internet icon or running the app on the terminal. Such UDP is also called a non-relational service because the sender unilaterally sends data without going through a connection procedure with the receiver.

본 발명인 푸시 서버(100)의 일부구성인 메인 프록시 모듈(110)은 단말에서 전송되는 데이터를 푸시 서버의 각 기능 블럭으로 전달하는 기능을 수행하며, 특히 본 발명의 경우 하기할 중계모듈(120)로 전송한다. 또한 메인 프록시 모듈(110)은 단말의 인증을 수행하여 익명의 사용자가 서버에 접근할 수 없도록 하는 기능을 수행한다. 단말의 인증절차에 대한 별도의 설명은 생략한다. 메인 프록시 모듈(110)은 별도의 메모리를 포함하고 있어 단말의 사용자 요청을 메모리(미도시)에 저장하고 동일한 요청이 들어오는 경우 데이터를 제공하는 기능을 수행한다. 이외에도 본 발명의 실시예에 따른 푸시 서버(100)의 일부 구성인 메인 프록시 모듈(110)은 UDP 푸시 데이터의 전송 모듈로서 신뢰성을 담보하기 위해 UDP 푸시 데이터 수신시에 송신 단말로 ack(acknowledge) 메시지를 전송한다. 이하 도4를 참조하여 메인 프록시 모듈(110)과 단말의 유저 에이전트(210)간의 신호 송수신 관계를 자세히 살펴본다. The main proxy module 110, which is a part of the push server 100 of the present invention, performs a function of transferring data transmitted from the terminal to each functional block of the push server, and in particular, the relay module 120 to be described below in the present invention. To send. In addition, the main proxy module 110 performs a function of authenticating the terminal so that anonymous users cannot access the server. A separate description of the authentication procedure of the terminal is omitted. The main proxy module 110 includes a separate memory to store a user request of the terminal in a memory (not shown) and to provide data when the same request is received. In addition, the main proxy module 110, which is a part of the push server 100 according to the embodiment of the present invention, is an ack (acknowledge) message to the transmitting terminal upon receiving the UDP push data to ensure reliability as a transmission module for the UDP push data. Send it. Hereinafter, the signal transmission / reception relationship between the main proxy module 110 and the user agent 210 of the terminal will be described in detail with reference to FIG. 4.

도4는 본 발명의 실시예에 따른 메인 프록시 모듈과 단말의 유저 에이전트, 큐의 연결관계 블럭도이다.4 is a block diagram illustrating a connection relationship between a main proxy module, a user agent of a terminal, and a queue according to an exemplary embodiment of the present invention.

먼저 사용자의 단말에서 데이터를 전송하는 경우 유저 에이전트(210)를 통해서 메인 프록시 모듈(110)로 데이터가 전송되고, 동시에 유저 에이전트(210)와 연결되어 있는 큐(Queue)(220)에 데이터를 저장한다. 유저 에이전트(210)로부터 데이터를 수신한 메인 프록시 모듈(110)은 수신한 데이터 정보를 담은 ack(acknowledge) 메시지를 유저 에이전트(210)로 전송하고 유저 에이전트(210)는 큐(Queue)(220)에 저장된 데이터를 삭제한다. 그러나 일정 시간이 지나도 유저 에이전트(210)가 ack 메시지를 받지 못하거나 전송한 데이터와 전혀 다른 정보를 갖고 있는 데이터 정보를 담은 ack메시지를 수신한 경우 큐(Queue)(220)에 저장되어 있는 기 전송 데이터(UDP 푸시 데이터)를 다시 전송한다. 이러한 메인 프록시 모듈(110)과 유저에이전트(210) 간의 ack 메시지 송수신관계를 통해 UDP 형식의 푸시 데이터임에 대한 데이터 전송의 신뢰성이 담보될 수 있다. First, when data is transmitted from a user terminal, the data is transmitted to the main proxy module 110 through the user agent 210, and at the same time, the data is stored in a queue 220 connected to the user agent 210. do. The main proxy module 110 receiving the data from the user agent 210 transmits an ack (acknowledge) message containing the received data information to the user agent 210, the user agent 210 is a queue (220) Delete the data stored in. However, if the user agent 210 does not receive an ack message even after a certain time or receives an ack message containing data information having completely different information from the transmitted data, the user agent 210 transmits the previously stored message in the queue 220. Send data (UDP push data) again. Through the ack message transmission / reception relation between the main proxy module 110 and the user agent 210, reliability of data transmission for push data in UDP format may be ensured.

본 발명의 실시예에 따른 중계모듈(120)은 메인 프록시 모듈(110)로부터 UDP 푸시 데이터를 수신하고, 수신된 UDP 푸시 데이터에 포함된 수신 단말 정보를 상태 프록시 모듈(130)로 전송한다. 중계모듈(120)은 메시지 중계모듈, 영상정보 중계모듈, 단말위치정보 중계모듈을 포함하며 본 발명의 실시예는 이에 제한되지 않으며 수신된 푸시 데이터의 종류에 따라 다양한 중계모듈을 포함할 수 있다. The relay module 120 according to the embodiment of the present invention receives the UDP push data from the main proxy module 110 and transmits the reception terminal information included in the received UDP push data to the state proxy module 130. The relay module 120 includes a message relay module, an image information relay module, and a terminal location information relay module. The embodiment of the present invention is not limited thereto and may include various relay modules according to the type of received push data.

상태 프록시 모듈(130)은 중계모듈(120)로부터 수신 단말정보를 수신하고, 수신 단말이 접속되어 있는 푸시 서버정보를 큐 핸들러(140)로 전송한다. 상태 프록시 모듈(130)은 상태정보 저장소와 연결되며 상태정보 저장소는 단말의 식별번호, 서버의 IP(Internet Protocol)정보, 단말의 IP정보, 단말의 접속포트 정보를 저장한다. 상태 프록시 모듈(130)은 앞서 중계모듈(120)에 의해서 전송받은 수신 단말정보와 상태정보 저장소에 저장되어 있는 단말의 식별번호, 단말의 IP정보 등을 비교하여 수신 단말이 연결되어 있는 푸시 서버정보를 큐 핸들러(140)에 전송한다.The state proxy module 130 receives the receiving terminal information from the relay module 120 and transmits the push server information to which the receiving terminal is connected to the queue handler 140. The state proxy module 130 is connected to the state information store, and the state information store stores the identification number of the terminal, the Internet Protocol (IP) information of the server, the IP information of the terminal, and the connection port information of the terminal. The state proxy module 130 compares the reception terminal information received by the relay module 120 with the identification number of the terminal stored in the state information store, the IP information of the terminal, and the like, and the push server information to which the reception terminal is connected. Is transmitted to the queue handler 140.

큐 핸들러(140)는 수신 단말이 접속된 푸시 서버정보를 전송받아 수신 단말이 접속된 푸시 서버에 푸시 알림 메시지를 전송한다. 큐 핸들러(140)가 전송하는 푸시 데이터 수신 알림 메시지는 수신 단말이 접속되어 있는 푸시 서버의 메시지 중계모듈로 전송된다. 큐 핸들러(140)는 메인큐(Main Queue) 및 서버큐(Server Queue)와 연결되어 있으며 메인큐는 상태 프록시 모듈에서 전송되는 수신 단말정보를 저장하고, 서버큐는 수신 단말이 접속된 서버에 전송되는 푸시 데이터 수신 알림 메시지를 저장한다. The queue handler 140 receives the push server information to which the receiving terminal is connected and transmits a push notification message to the push server to which the receiving terminal is connected. The push data reception notification message transmitted by the queue handler 140 is transmitted to the message relay module of the push server to which the receiving terminal is connected. The queue handler 140 is connected to the main queue and the server queue, and the main queue stores the receiving terminal information transmitted from the state proxy module, and the server queue is transmitted to the server to which the receiving terminal is connected. The received push data reception notification message.

이와 같은 푸시 서버의 구조로 인하여 서버 용량의 확장이 필요한 경우 별도의 프록시 서버에 연결할 필요가 없고, 비교적 간단하게 서버의 용량확장이 가능하다.Due to the structure of the push server, if the server capacity needs to be expanded, there is no need to connect to a separate proxy server, and the server capacity can be expanded relatively simply.

이하 본 발명의 실시예에 따른 푸시 서버의 푸시 데이터 전송 프로세스에 대해서 살펴본다.Hereinafter, a push data transmission process of a push server according to an embodiment of the present invention will be described.

도5는 본 발명의 실시예에 따른 푸시 서버와 푸시 서비스 제공 시스템의 블럭도이며, 도6은 본 발명의 실시예에 따른 푸시 서버의 푸시 데이터 전송 예시도이다.5 is a block diagram of a push server and a push service providing system according to an exemplary embodiment of the present invention, and FIG. 6 is a diagram illustrating push data transmission of a push server according to an exemplary embodiment of the present invention.

푸시 서버와 연결된 단말들은 UDP(User Datagram Protocol) 푸시 데이터를 전송하기 위해서 홀 펀칭 유도신호를 전송하고, UDP 홀 펀칭처리를 수행하여 UDP 홀을 형성한다. 즉 푸시 서버와 단말들은 UDP홀에 의해서 연결된다. 보다 상세하게는 도6에 도시된 바와 같이 단말들의 유저 에이전트(210)와 푸시 서버(100)의 메인 프록시 모듈(110)이 통신망을 통해서 연결된다. Terminals connected to the push server transmit a hole punching guidance signal to transmit UDP data (User Datagram Protocol), and performs a UDP hole punching process to form a UDP hole. That is, the push server and the terminals are connected by the UDP hole. More specifically, as shown in FIG. 6, the user agent 210 of the terminals and the main proxy module 110 of the push server 100 are connected through a communication network.

도5에 도시된 바와 같이 복수개의 푸시 서버(100) 각각은 복수의 단말(200)들과 연결되어 있으며 푸시 데이터를 송수신한다. 서버와 서버 사이는 직접 연결되어 있거나 데이터 저장소(300), 상태정보 저장소(400), 메인 큐(500), 서버큐(600)를 통해 연결된다. 푸시 서버 내부의 기능블럭인 메인 프록시 모듈(110)과 중계모듈(120), 상태 프록시 모듈(130), 큐 핸들러(140)도 서로 연결되어 있어 푸시데이터를 전달한다.As shown in FIG. 5, each of the plurality of push servers 100 is connected to a plurality of terminals 200 and transmits and receives push data. The server and the server are directly connected or connected through the data store 300, the state information store 400, the main queue 500, the server queue 600. The main proxy module 110, the relay module 120, the state proxy module 130, and the queue handler 140, which are functional blocks inside the push server, are also connected to each other to transmit push data.

데이터 저장소(300)는 송신 단말이 전송한 모든 UDP 푸시 데이터를 저장한다. 이후 수신 단말과 연결되어 있는 푸시 서버(수신측)는 데이터 저장소에 접근, 송신 단말이 전송한 UDP 푸시 데이터를 전송받아, 수신단말로 송신한다. The data store 300 stores all UDP push data transmitted by the transmitting terminal. After that, the push server (receiving side) connected to the receiving terminal accesses the data store, receives the UDP push data transmitted by the transmitting terminal, and transmits the received data to the receiving terminal.

상태정보 저장소(400)는 단말이 각각의 푸시 서버에 UDP홀을 통해서 연결된 경우 단말이 연결된 푸시 서버정보를 저장하고 송신 단말에서 전송한 수신 단말정보와 매칭시켜 큐 핸들러(140)가 수신 단말이 연결된 푸시 서버(수신측)로 푸시 알림 메시지를 전송한다. When the terminal is connected to each push server through the UDP hole, the state information store 400 stores the push server information connected to the terminal and matches the received terminal information transmitted from the transmitting terminal so that the queue handler 140 is connected to the receiving terminal. Send push notification message to push server (receive side).

도6을 참조하여 송신 단말에서 수신 단말로 메시지를 전송할 때 푸시 서버의 기능 및 전송 경로에 대해서 살펴본다. Referring to Figure 6 looks at the function and transmission path of the push server when transmitting a message from the transmitting terminal to the receiving terminal.

송신 단말에서 사용자는 텍스트 메시지를 포함한 UDP 푸시 데이터를 전송한다. 송신 단말이 전송한 UDP 푸시 데이터는 수신 단말정보를 포함한다. 수신 단말정보는 전화번호 같은 단말의 식별번호, 단말의 IP정보 등을 포함한다. 메인 프록시 모듈(110)은 푸시 데이터의 수신완료에 대한 ack 메시지를 유저 에이전트(210)로 전송한다. 메인 프록시 모듈(110)은 UDP 푸시 데이터가 텍스트 메시지를 포함하고 있으므로 메시지 중계모듈(122)로 전송한다. 메시지 중계모듈(122)은 데이터 저장소에 푸시 데이터를 저장하고, 수신 단말정보를 상태 프록시 모듈(130)로 전송한다. 상태 프록시 모듈(130)은 상태 정보 저장소(400)에 저장되어 있는 푸시 서버 정보와 수신 단말정보를 매칭시켜 수신 단말이 연결되어 있는 푸시 서버(수신측)를 특정한다. 큐 핸들러(140)는 서버큐(600)를 통해 특정된 푸시 서버(수신측)에 푸시 알림 메시지를 전송한다. 또한 큐 핸들러(140)는 서버큐(600)로 푸시 알림 메시지를 전송함과 동시에 메인 큐(500)에 저장한다.At the transmitting terminal, the user transmits UDP push data including a text message. The UDP push data transmitted by the transmitting terminal includes the receiving terminal information. Receiving terminal information includes an identification number of the terminal, such as a telephone number, IP information of the terminal, and the like. The main proxy module 110 transmits an ack message about completion of receiving push data to the user agent 210. The main proxy module 110 transmits the message to the message relay module 122 because the UDP push data includes a text message. The message relay module 122 stores the push data in the data store and transmits the reception terminal information to the state proxy module 130. The state proxy module 130 matches the push server information stored in the state information store 400 with the receiving terminal information to specify a push server (receiving side) to which the receiving terminal is connected. The queue handler 140 transmits a push notification message to the specified push server (receiving side) through the server queue 600. In addition, the queue handler 140 transmits the push notification message to the server queue 600 and simultaneously stores the push notification message in the main queue 500.

푸시 서버(수신측)에 포함되어 있는 메시지 중계모듈(수신측)은 푸시 알림 메시지를 수신하고 데이터 저장소(300)에 접근하여 송신 단말이 보낸 UDP 푸시 데이터를 전송받는다. 푸시 서버(수신측)의 메시지 중계 모듈(수신측)은 메인 프록시 모듈(수신측)로 전송하고 통신망을 통해 수신 단말의 유저 에이전트(수신측)로 송신한다. 수신 단말의 애플리케이션은 UDP 푸시 데이터의 수신으로 실행되고, 수신 단말의 사용자는 텍스트 메시지를 확인할 수 있다. The message relay module (receiving side) included in the push server (receiving side) receives the push notification message and accesses the data store 300 to receive UDP push data sent by the transmitting terminal. The message relay module (receiving side) of the push server (receiving side) transmits to the main proxy module (receiving side) and transmits to the user agent (receiving side) of the receiving terminal via the communication network. The application of the receiving terminal is executed by receiving the UDP push data, and the user of the receiving terminal can check the text message.

이상 본 발명의 실시예에 따른 푸시 서버에 의한 UDP 푸시 데이터의 송수신에 대해서 살펴보았다. UDP 푸시 데이터의 송수신과정은 단말의 위치추적을 위한 데이터 송수신 과정에서도 적용이 가능하다. 일반적으로 송신 단말은 안드로이드 운영체제를 갖는 폰의 경우에는 구글 서버를 통해, iOS 운영체제를 갖는 폰의 경우에는 애플 서버를 통해서 실시간으로 위치정보를 받는다. 송신 단말이 외부 서버(구글서버 또는 애플서버)로부터 전송 받은 위치정보를 앞서와 같은 방법으로 수신 단말에 전송이 가능하다. 즉 단말의 위치추적을 위해 적용되는 경우 단말들과 푸시 서버가 주고 받는 데이터는 텍스트 메시지를 포함하는 UDP 푸시 데이터가 아닌 단말의 위치정보를 포함하는 UDP 푸시 데이터가 된다. 본 발명의 실시예에 따른 푸시 서버에 의해서 단말의 위치추적을 위한 단말의 위치정보를 포함한 UDP 푸시 데이터를 전송받는 경우에는 서버와 단말간의 연결관계를 계속 유지할 필요없이 UDP 푸시 데이터 전송시에만 UDP홀을 통해 세션(session)을 유지시키고, 해제시킬 수 있어 단말의 밧데리 소모량이 크게 줄어들고, 서버의 부하가 현격히 감소한다.The transmission and reception of UDP push data by the push server according to the embodiment of the present invention has been described above. The UDP push data transmission / reception process may also be applied to a data transmission / reception process for location tracking of a terminal. In general, a transmitting terminal receives location information in real time through a Google server in the case of a phone having an Android operating system and an Apple server in the case of a phone having an iOS operating system. The transmitting terminal can transmit the location information received from an external server (Google server or Apple server) to the receiving terminal in the same manner as described above. That is, when the terminal is applied for location tracking, the data transmitted and received between the terminals and the push server becomes UDP push data including the location information of the terminal, not UDP push data including the text message. When the push server according to the embodiment of the present invention receives the UDP push data including the location information of the terminal for the location tracking of the terminal, the UDP hole only when transmitting the UDP push data without maintaining the connection relationship between the server and the terminal. Through the session (session) can be maintained and released, the battery consumption of the terminal is greatly reduced, the load on the server is significantly reduced.

이하 본 발명의 실시예에 따른 푸시 서버 및 리소스 분석기, 리다이렉트 서버를 포함하는 푸시 데이터를 전송하는 푸시 서비스 제공 시스템에 대해서 살펴본다.Hereinafter, a push service providing system for transmitting push data including a push server, a resource analyzer, and a redirect server according to an exemplary embodiment of the present invention will be described.

본 발명의 실시예와 중복되는 구성에 대한 설명은 생략한다.Description of the overlapping configuration with the embodiment of the present invention will be omitted.

도7은 본원발명의 실시예에 따른 리소스 분석기를 포함하는 푸시 서비스 제공 시스템 블럭도이다.7 is a block diagram of a push service providing system including a resource analyzer according to an embodiment of the present invention.

도7에 도시된 바와 같이 리소스 분석기(700)는 복수개의 푸시 서버(100)에 연결되며, 각 푸시 서버에 CPU정보, 전체 CPU 가동률, 푸시 프로세스 CPU 가동률, 메시지 큐 상의 정체 메시지 수, 정체발생 위험율, 접속 단말의 수, 메모리 정보, 전체 메모리 가동률, 푸시 할당 메모리 정보, 푸시 할당 메모리 가동률, 큐 핸들러 하트비트(Heartbeat)정보, 메시지 전달 성공률 등을 실시간으로 분석한다. 리소스 분석기에(700) 의해서 분석된 정보는 서버자원의 분배를 통한 서버 부하를 조절하기 위한 기초자료가 된다. 또한 리소스 분석기(700)에 의해 서버의 고장, 이상 유무를 판정할 수 있다.As shown in FIG. 7, the resource analyzer 700 is connected to a plurality of push servers 100, and CPU information, total CPU utilization rate, push process CPU utilization rate, number of congestion messages on the message queue, and risk of congestion are connected to each push server. The number of access terminals, memory information, total memory utilization rate, push allocation memory information, push allocation memory operation rate, queue handler heartbeat information, and message delivery success rate are analyzed in real time. The information analyzed by the resource analyzer 700 serves as basic data for adjusting server load through the distribution of server resources. In addition, the resource analyzer 700 can determine whether the server is broken or abnormal.

도8은 본 발명의 실시예에 따른 리다이렉트 서버를 포함하는 푸시 서비스 제공 시스템 블럭도이다. 8 is a block diagram of a push service providing system including a redirect server according to an exemplary embodiment of the present invention.

도8에 도시된 바와 같이 리다이렉트 서버(800)는 리소스 분석기(700)와 연결된다. 리다이렉트 서버(redirect server)(800)는 복수개의 푸시 서버(100) 중 단말이 접속할 푸시 서버(100)를 결정한다. 리다이렉트 서버(800)는 리소스 분석기(700)에 의해 분석된 리소스 정보를 활용하여 새로운 단말이 푸시 서버에 연결하려 하거나 연결되어 있는 단말이 다른 푸시 서버로 연결될 수 있도록 한다. 송신 단말은 현재 푸시 서버 1에 연결되어 있다. 그러나 리소스 분석기(700)에 의한 분석결과 푸시 서버 1에 과부하가 발생하거나 고장 등의 원인으로 이상이 발생한 경우 리다이렉트 서버(800)는 송신 단말에 UDP홀을 형성한다. 리다이렉트 서버(800)는 단말의 인증을 수행하고 송신 단말이 새로운 푸시 서버 2와 연결되도록 한다. 푸시 서버 2와 송신 단말의 연결은 앞서 설명한 바와 같다.As shown in FIG. 8, the redirect server 800 is connected to the resource analyzer 700. The redirect server 800 determines the push server 100 to which the terminal is connected from among the plurality of push servers 100. The redirect server 800 utilizes the resource information analyzed by the resource analyzer 700 to allow a new terminal to connect to the push server or to allow a connected terminal to connect to another push server. The transmitting terminal is currently connected to push server 1. However, as a result of analysis by the resource analyzer 700, when an abnormality occurs due to an overload or a failure of the push server 1, the redirect server 800 forms a UDP hole in the transmitting terminal. The redirect server 800 performs authentication of the terminal and allows the transmitting terminal to connect with the new push server 2. The connection between the push server 2 and the transmitting terminal is as described above.

본 발명의 실시예에 따른 푸시 서비스 제공 시스템은 리소스 분석기(700)와 리다이렉트 서버(800)를 포함함으로서 푸시 서버간의 자원분배를 원활히 할 수 있고, 푸시 서버의 고장이나 과부하로 인한 이상발생시에 단말과의 연결끊김을 최소화 할 수 있다.Push service providing system according to an embodiment of the present invention includes a resource analyzer 700 and the redirect server 800 to facilitate the distribution of resources between the push server, when the abnormality caused by the failure or overload of the push server and the terminal Minimize disconnection

이하 본 발명의 실시예에 따른 푸시 서비스 제공 방법에 대해서 살펴본다. Hereinafter, a push service providing method according to an exemplary embodiment of the present invention will be described.

도9는 본 발명의 실시예에 따른 푸시 서비스 제공 방법의 순서도이다.9 is a flowchart illustrating a push service providing method according to an embodiment of the present invention.

도9에 도시된 바와 같이 푸시 서비스 제공 방법은 단말에서 푸시 서버로 UDP홀 펀칭을 통해 UDP홀을 형성하는 단계(S100), 송신 단말을 인증하는 단계(S200), 송신 단말로부터 UDP푸시 데이터를 수신하는 단계(S300), 수신 단말과 접속된 서버 위치를 검색하는 단계(S400), 푸시 알림 메시지를 전송하는 단계(S500), 데이터 저장소에 저장된 푸시 데이터를 받아 수신 단말로 전송하는 단계(S600)를 포함한다. 또한 복수개의 푸시 서버 각각의 리소스를 분석하는 단계를 더 포함한다. As shown in FIG. 9, the method for providing a push service includes forming a UDP hole through a UDP hole punching from a terminal to a push server (S100), authenticating a transmitting terminal (S200), and receiving UDP push data from a transmitting terminal. Step (S300), searching for a server location connected to the receiving terminal (S400), transmitting a push notification message (S500), receiving push data stored in a data storage, and transmitting the step (S600) to the receiving terminal. Include. The method may further include analyzing a resource of each of the plurality of push servers.

UDP홀을 형성하는 단계(S100)와 송신 단말을 인증하는 단계(S200)에 대한 설명은 생략한다. 송신 단말로부터 UDP 푸시 데이터를 수신하는 단계(S300)는 푸시 서버의 메인 프록시 모듈이 수행한다. 메인 프록시 모듈은 UDP 푸시 데이터를 중계모듈로 전송하고 중계 모듈은 데이터 저장소에 UDP 푸시 데이터를 저장함과 동시에 상태 프록시 모듈로 수신 단말정보를 전송한다. 수신 단말과 접속된 서버위치를 검색하는 단계(S400)는 상태 프록시 모듈이 상태 프록시 모듈로 전송된 수신 단말정보와 상태 정보 저장소에 기 저장된 데이터를 매칭시켜 수행한다. 푸시 알림 메시지를 전송하는 단계(S500)는 큐핸들러에 의해서 수행되며, 서버큐를 경유해 수신 단말과 접속된 푸시 서버에 전송한다. 수신측의 푸시 서버는 데이터 저장소에 저장된 푸시 데이터를 받아 수신 단말로 전송한다.(S600) 또한 앞서 살펴본 바와 같이 복수개의 푸시 서버와 연결된 리소스 분석기는 각 서버의 리소스를 분석하여 단말이 특정 서버에만 집중적으로 연결되는 것을 방지하고, 푸시 서버의 고장이나 이상 유무를 판정할 수 있다.
A description of the step (S100) of forming a UDP hole and the step (S200) of authenticating a transmitting terminal will be omitted. Receiving the UDP push data from the transmitting terminal (S300) is performed by the main proxy module of the push server. The main proxy module transmits the UDP push data to the relay module, and the relay module transmits the receiving terminal information to the state proxy module while storing the UDP push data in the data storage. The searching of the server location connected to the receiving terminal (S400) is performed by the state proxy module matching the received terminal information transmitted to the state proxy module with data previously stored in the state information store. Transmitting the push notification message (S500) is performed by the queue handler, and transmits to the push server connected to the receiving terminal via the server queue. The push server of the receiving side receives the push data stored in the data store and transmits it to the receiving terminal (S600). As described above, the resource analyzer connected to the plurality of push servers analyzes resources of each server so that the terminal concentrates on a specific server. It can be prevented from connecting, and it is possible to determine the failure or abnormality of the push server.

100 푸시서버 110 메인 프록시 모듈
120 중계모듈 122 메시지 중계모듈
130 상태 프록시 모듈 140 큐핸들러
200 단말 210 유저 에이전트
300 데이터 저장소 400 상태 정보 저장소
500 메인큐 600 서버큐
700 리소스 분석기 800 리다이렉트 서버
100 pushserver 110 main proxy module
120 Relay module 122 Message relay module
130 Status Proxy Module 140 Queue Handler
200 Terminal 210 User Agent
300 Data Store 400 State Information Store
500 Main Queue 600 Server Queue
700 Resource Analyzer 800 Redirect Server

Claims (10)

송신 단말로부터 수신 단말정보를 포함하는 UDP(User datagram protocol) 푸시 데이터를 수신하고, 수신된 상기 UDP 푸시 데이터를 중계모듈로 전송하며, 상기 송신 단말의 인증을 수행하는 메인 프록시 모듈;
상기 메인 프록시 모듈로부터 상기 UDP 푸시 데이터를 수신하고, 수신된 UDP 푸시 데이터에 포함된 상기 수신 단말정보를 상태 프록시 모듈로 전송하는 중계모듈;
상기 수신 단말정보를 수신하고, 수신 단말이 접속된 서버정보를 큐 핸들러(Queue handler)로 전송하는 상태 프록시 모듈; 및
상기 수신 단말이 접속된 서버정보를 전송받아 상기 수신 단말이 접속된 서버에 UDP 푸시 알림 메시지를 전송하는 큐 핸들러(Queue handler)를 포함하는 것을 특징으로 하는 푸시 서버.
A main proxy module for receiving UDP (User datagram protocol) push data including receiving terminal information from a transmitting terminal, transmitting the received UDP push data to a relay module, and performing authentication of the transmitting terminal;
A relay module for receiving the UDP push data from the main proxy module and transmitting the receiving terminal information included in the received UDP push data to a state proxy module;
A state proxy module for receiving the receiving terminal information and transmitting server information to which a receiving terminal is connected to a queue handler; And
And a queue handler which receives the server information to which the receiving terminal is connected and transmits a UDP push notification message to the server to which the receiving terminal is connected.
제1항에 있어서,
상기 메인 프록시 모듈은 상기 UDP 푸시 데이터 수신시에 상기 송신 단말로 ack(acknowledge) 메시지를 전송하는 것을 특징으로 하는 푸시 서버.
The method of claim 1,
And the main proxy module transmits an ack (acknowledge) message to the transmitting terminal upon receiving the UDP push data.
제1항에 있어서,
상기 중계모듈은 메시지 중계모듈, 영상정보 중계모듈, 단말위치정보 중계모듈을 포함하는 것을 특징으로 하는 푸시 서버.
The method of claim 1,
The relay module includes a message relay module, a video information relay module, the terminal location information relay module push server.
제1항에 있어서,
상기 중계모듈은 수신된 상기 UDP 푸시 데이터를 저장하는 데이터 저장소와 연결되며, 상기 상태 프록시 모듈은 단말의 접속 서버 위치정보를 저장하는 상태정보 저장소와 연결되고, 상기 큐 핸들러는 상기 UDP 푸시 알림 메시지를 수신 단말이 연결된 서버에 전송하는 서버 큐(server Queue)와 연결되는 것을 특징으로 하는 푸시 서버.
The method of claim 1,
The relay module is connected with a data store for storing the received UDP push data, the state proxy module is connected with a state information store for storing access server location information of a terminal, and the queue handler sends the UDP push notification message. Push server, characterized in that connected to the server queue (server queue) for transmitting to the server connected to the receiving terminal.
제4항에 있어서,
상기 상태정보 저장소가 저장하는 정보는 단말의 식별번호, 서버의 IP(Internet Protocol)정보, 단말의 IP정보, 단말의 접속 포트(port) 정보를 포함하는 것을 특징으로 하는 푸시 서버.
5. The method of claim 4,
The information stored by the state information store includes a terminal identification number, IP (Internet Protocol) information of the server, IP information of the terminal, the push server, characterized in that the connection port (port) information of the terminal.
복수개의 제1항의 푸시 서버 및 리소스 분석기를 포함하되, 상기 리소스 분석기는 각각의 상기 푸시 서버와 연결되어 있는 것을 특징으로 하는 푸시 서비스 제공 시스템.
A push service and a resource analyzer of claim 1, wherein the resource analyzer is connected to each of the push server, the push service providing system.
제6항에 있어서,
상기 리소스 분석기는 각각의 상기 푸시 서버의 CPU정보, 메세지 큐상의 정체 메세지 수, 접속 단말의 수, 메모리 정보, 큐 핸들러 하트비트(HeartBeat) 정보, 메세지전달성공률을 실시간으로 분석하는 것을 특징으로 하는 푸시 서비스 제공 시스템.
The method according to claim 6,
The resource analyzer analyzes the CPU information of each push server, the number of congested messages on a message queue, the number of access terminals, memory information, queue handler heartbeat information, and message delivery success rate in real time. Service delivery system.
제7항에 있어서,
상기 시스템은 복수개의 상기 푸시 서버 중 단말이 접속할 푸시 서버를 결정하는 리다이렉트 서버를 포함하는 것을 특징으로 하는 푸시 서비스 제공 시스템.
The method of claim 7, wherein
The system is a push service providing system, characterized in that it comprises a redirect server of the plurality of the push server to determine the push server to be connected to the terminal.
제1항의 푸시 서버가 수행하는 푸시 서비스 제공 방법으로서,
상기 푸시 서버가 송신 단말을 인증하는 단계;
송신 단말로부터 수신 단말정보을 포함하는 UDP(User Datagram Protocol)푸시 데이터를 수신하는 단계;
상기 UDP 푸시 데이터를 데이터 저장소에 저장하고, 상기 수신 단말정보를 이용하여 수신 단말과 접속된 서버 위치를 검색하는 단계;
검색된 서버에 UDP 푸시 알림 메시지를 전송하는 단계; 및
상기 수신 단말과 접속된 서버는 데이터 저장소에 저장된 UDP 푸시 데이터를 받아 수신 단말로 전송하는 단계를 포함하는 푸시 서비스 제공 방법.
A push service providing method performed by the push server of claim 1,
Authenticating, by the push server, a transmitting terminal;
Receiving User Datagram Protocol (UDP) push data including receiving terminal information from a transmitting terminal;
Storing the UDP push data in a data store and retrieving a server location connected to a receiving terminal using the receiving terminal information;
Transmitting a UDP push notification message to the retrieved server; And
And a server connected to the receiving terminal receives the UDP push data stored in the data store and transmits the UDP push data to the receiving terminal.
제9항에 있어서,
상기 푸시 서버와 연결된 리소스 분석기가 복수 개의 푸시 서버 각각의 리소스(resource)를 분석하는 단계를 더 포함하는 것을 특징으로 하는 푸시 서비스 제공 방법.
10. The method of claim 9,
And analyzing a resource of each of the plurality of push servers by a resource analyzer connected to the push server.
KR1020130065732A 2013-06-10 2013-06-10 Push server, push service providing system and method of the same KR101367265B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130065732A KR101367265B1 (en) 2013-06-10 2013-06-10 Push server, push service providing system and method of the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130065732A KR101367265B1 (en) 2013-06-10 2013-06-10 Push server, push service providing system and method of the same

Publications (1)

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

Family

ID=50271943

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130065732A KR101367265B1 (en) 2013-06-10 2013-06-10 Push server, push service providing system and method of the same

Country Status (1)

Country Link
KR (1) KR101367265B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101606319B1 (en) 2015-01-26 2016-03-24 성균관대학교산학협력단 Method of push messages management using database
CN109889613A (en) * 2019-04-24 2019-06-14 广州吱呀网络科技有限公司 A kind of information push method, device and mobile terminal
CN114500630A (en) * 2020-10-27 2022-05-13 航天信息股份有限公司 Message pushing method, device, system, storage medium and electronic equipment
KR102610111B1 (en) * 2023-05-12 2023-12-06 쿠팡 주식회사 Method for providing push notification and electronic apparatus supporting thereof

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 (en) * 2011-05-16 2012-11-26 에스케이텔레콤 주식회사 System and method for providing push service
KR20130013272A (en) * 2011-07-27 2013-02-06 삼성전자주식회사 Apparatus and method for determining ping period of push service

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 (en) * 2011-05-16 2012-11-26 에스케이텔레콤 주식회사 System and method for providing push service
KR20130013272A (en) * 2011-07-27 2013-02-06 삼성전자주식회사 Apparatus and method for determining ping period of push service

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101606319B1 (en) 2015-01-26 2016-03-24 성균관대학교산학협력단 Method of push messages management using database
CN109889613A (en) * 2019-04-24 2019-06-14 广州吱呀网络科技有限公司 A kind of information push method, device and mobile terminal
CN114500630A (en) * 2020-10-27 2022-05-13 航天信息股份有限公司 Message pushing method, device, system, storage medium and electronic equipment
KR102610111B1 (en) * 2023-05-12 2023-12-06 쿠팡 주식회사 Method for providing push notification and electronic apparatus supporting thereof

Similar Documents

Publication Publication Date Title
US9794304B2 (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
US20040186918A1 (en) Method and apparatus for dispatching incoming data in a multi-application terminal
KR101533489B1 (en) Method and system for implementing integrated voice over internet protocol in a cloud-based network
US20120198268A1 (en) Re-establishing push notification channels via user identifiers
CN111479121A (en) Live broadcasting method and system based on streaming media server
US20090030917A1 (en) Multimedia messaging service-based database synchronization
US20080263213A1 (en) Communication device and client device
KR101367265B1 (en) Push server, push service providing system and method of the same
US20150127837A1 (en) Relay apparatus and data transfer method
CN108696523B (en) Response method and device for call service
US20150067066A1 (en) Provisioning Communication Services using Proxy Server in a Cloud
CN114363351B (en) Proxy connection suppression method, network architecture and proxy server
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 (en) Message pushing method and device
US11165688B2 (en) Reformatting message content upon detecting transmission failure
CN114143729B (en) Apparatus, method and computer readable storage medium for data transceiving with IoT devices
CN113347234B (en) Network information acquisition method, device, system, computer equipment and storage medium
CN105230074B (en) Video cache switching handling method, device and system
CN114928596B (en) Data transmission method and device in micro-service communication process
US20180288140A1 (en) Communication device and a communication network
CN111490997A (en) Task processing method, agent system, service system and electronic equipment

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