KR101473660B1 - Web-based real time data pushing method and system thereof - Google Patents

Web-based real time data pushing method and system thereof Download PDF

Info

Publication number
KR101473660B1
KR101473660B1 KR20130121979A KR20130121979A KR101473660B1 KR 101473660 B1 KR101473660 B1 KR 101473660B1 KR 20130121979 A KR20130121979 A KR 20130121979A KR 20130121979 A KR20130121979 A KR 20130121979A KR 101473660 B1 KR101473660 B1 KR 101473660B1
Authority
KR
South Korea
Prior art keywords
client
push
http
data
web
Prior art date
Application number
KR20130121979A
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 KR20130121979A priority Critical patent/KR101473660B1/en
Priority to PCT/KR2013/010194 priority patent/WO2015056833A1/en
Application granted granted Critical
Publication of KR101473660B1 publication Critical patent/KR101473660B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • 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/141Setup of application sessions
    • 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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Provided are a method and a system, in which a web server can transmit push data to a client in real-time event when Hypertext Transfer Protocol (HTTP) session is not connected between the web server, which transmits the push data, and the client, which receives the push data. The web based method of pushing real time data includes the following steps: transmitting a push start request signal including information, which indicates a client, to a proxy server by a web server, in which an Hypertext Transfer Protocol (HTTP) is not connected to the client to receive the push data; transmitting the push start notification signal including information, which indicates the web server, to the client in response to the reception of the push start request signal, by the proxy server; requesting an HTTP session to be generated on the web server in response to the reception of the push start notification signal and transmitting the HTTP request including a data push request through the HTTP session, by the client; transmitting an HTTP response including the push data to the client in response to the HTTP request, by the web server; and completing the HTTP session after the transmission of the push data is completed.

Description

웹 기반 실시간 데이터 푸싱 방법 및 그 시스템{Web-based real time data pushing method and system thereof}[0001] The present invention relates to a web-based real-time data pushing method and system,

본 발명은 웹 기반 실시간 데이터 푸싱 방법 및 그 시스템에 관한 것이다. 보다 자세하게는, 푸시 데이터(push data)를 송신하는 웹 서버와 푸시 데이터를 수신하는 클라이언트 사이의 HTTP(HyperText Transfer Protocol) 세션이 연결되어 있지 않은 상태에서도 웹 서버가 푸시 데이터를 클라이언트에 실시간으로 송신할 수 있는 방법 및 시스템에 관한 것이다.The present invention relates to a web-based real-time data pushing method and system thereof. More specifically, a web server transmits push data to a client in real time even when a hypertext transfer protocol (HTTP) session between a web server that transmits push data and a client that receives push data is not connected And to a system and method that can be used.

웹 푸시 (Web Push) 기술이란 웹 서버가 능동적으로 시동을 걸어 서버에서 웹 클라이언트, 즉 웹 브라우저로 메시지를 보내는 기술을 말한다. 웹 푸시 기술은 인터넷이 발달함에 따라 전통적인 메신저/채팅 서비스, 비디오 전송부터 최근의 사물 인터넷(Internet of Things; IoT)까지 그 응용범위가 매우 다양한 필수기술이다. 기본적으로 웹 기술은 웹 클라이언트가 Get, Post, Put등의 HTTP 프로토콜을 사용하여 웹 서버에 있는 데이터를 요청하고 서버는 이에 응답하는 형식으로 수행된다. 그러므로 기본적으로 웹 기술은 서버에서 시작하여 클라이언트로 데이터를 보내는 푸시 (Push) 기능을 제공하지 않는다.Web push technology refers to a technology in which a web server actively starts up and sends messages from a server to a web client, that is, a web browser. Web push technology is an indispensable technology with various applications ranging from traditional messenger / chat service, video transmission to the Internet of Things (IoT) as the Internet develops. Basically, Web technologies are implemented in a way that a web client requests data from a web server using the HTTP protocol, such as Get, Post, Put, and the server responds to it. Therefore, basically, Web technology does not provide a push function that starts at the server and sends data to the client.

이러한 문제점을 해결하기 위해 서버에서 푸시 기능을 흉내 내는 Polling, Long-Polling, Streaming 등의 웹 푸시 기술이 개발되었다. Polling 방법은 클라이언트에서 서버에 주기적으로 요청하여 데이터를 가져오는 방식인데 클라이언트 숫자가 많을 경우 서버에 부담이 크며 또한 실시간 푸시 기능을 제공하지 않는다. Long-Polling 방법에서는 클라이언트의 요청에 대한 응답을 이벤트가 발생할 때까지 잡아두고 이벤트가 발생할 때 이벤트를 응답에 실어 보내고, 클라이언트는 응답을 받은 후 다시 요청 한다. Long-Polling 방법은 Polling 방법에 비해 데이터 트래픽은 덜 유발하지만 이 또한 클라이언트 숫자가 많을 경우 서버에 부담이 크며 또한 실시간 푸시 기능을 제공하지 않는다. 즉 클라이언트가 서버에 연결되어 있는 경우에만 푸시 기능이 가능하다. Streaming 방법도 기본적으로 Long-Polling 방법과 유사하나 여러 개의 이벤트를 서버에서 클라이언트로 한꺼번에 보낼 수 있다는 점이 다르다. 최근에 W3C에서는 Streaming 방식을 사용하는 Comet를 표준화하여 HTML5 SSE (Server-Sent Events)를 발표하였다.To solve these problems, web push technologies such as polling, long-polling, and streaming, which imitate push functions on the server, have been developed. Polling method is a method of requesting data periodically from the client to the server and fetching data. However, when the number of clients is large, the server is burdened with much and does not provide a real time push function. In the long-polling method, a response to a client's request is held until an event occurs. When an event occurs, an event is sent to a response, and the client requests a response after receiving the response. The long-polling method causes less data traffic than the polling method. However, when the number of clients is large, the load on the server is large and the real-time push function is not provided. That is, the push function is available only when the client is connected to the server. The streaming method is basically similar to the Long-Polling method except that multiple events can be sent from the server to the client at a time. Recently, W3C standardized Comet using streaming method and announced HTML5 Server-Sent Events (SSE).

위에서 언급된 Polling, Long-Polling 및 Streaming 기술은 클라이언트가 서버에 연결되어 있는 경우에만 서비스가 가능하기 때문에 확장성 (scalability)에 문제가 있다. 푸시 기능을 제공하기 위해 수많은 클라이언트의 웹 브라우저가 동시에 항상 웹 서버에 연결되어 있어야 하기 때문이다.Polling, long-polling, and streaming techniques mentioned above have scalability problems because they can be serviced only when the client is connected to the server. In order to provide push functionality, many clients' web browsers must be connected to the web server at the same time.

이는 서버에 과도한 처리 부담을 줄 수 있다. 더구나 웹 브라우저가 웹 서버에 연결되어 있지 않는 경우에는 푸시를 통해 서버가 클라이언트에 데이터를 전달하는 것이 불가능하기 때문에, 푸시 데이터가 발생한 즉시 클라이언트에 전달될 수 없다.This can put an excessive burden on the server. Furthermore, if the web browser is not connected to the web server, the push data can not be delivered to the client as soon as the push is made because the server is unable to deliver the data to the client.

한편, 사물 인터넷 (IoT: Internet of Things) 기술이 스마트 폰 뒤의 차세대 인터넷 기술로 부상하고 있다. 사물 인터넷이란 모든 사물에 인터넷 주소를 부여하여 사람과 사람간의 통신뿐만 아니라 사람과 사물, 사물과 사물간에 인터넷 서비스를 제공하는 차세대 인터넷 기술을 말한다. 사물 인터넷의 한가지 특징은 대량의 센서가 무선 인터넷으로 연결되어 자율적으로 특정 임무를 수행하는 것이다. 이러한 센서 중에는 특정 장소에 고정 설치되어 있는 것도 있겠지만, 이동하는 성질을 가진 것도 있을 것이다. 이동하는 성질을 가진 센서 노드는 모바일 인터넷 환경에 연결되어야 한다. 이러한 센서 노드는 그 위치가 이동함에 따라 핸드 오버(hand over)를 반복하게 되고, 핸드 오버가 발생됨에 따라 센서 노드의 IP 주소는 변경될 것이다. 따라서 웹 서버 입장에서는 이동클라이언트의 IP 주소를 확인하는 것이 쉽지 않기 때문에 서버에서 클라이언트로 푸시 하는 것이 더욱 어렵다.Meanwhile, Internet of Things (IoT) technology is emerging as the next generation Internet technology behind smartphones. The Internet refers to the next generation Internet technology that provides Internet services between people and objects, objects and objects as well as communication between people by giving Internet addresses to all objects. One characteristic of the Internet of things is that a large number of sensors are connected to the wireless Internet and autonomously perform certain tasks. Some of these sensors may be fixedly installed in a specific place, but some may have a moving property. A sensor node with a mobile nature should be connected to the mobile Internet environment. The sensor node repeats handover as its position moves, and the IP address of the sensor node will change as the handover occurs. Therefore, it is more difficult for a web server to push from a server to a client because it is not easy to check the IP address of a mobile client.

한국공개특허 2001-0047930호Korean Patent Laid-Open No. 2001-0047930

본 발명이 해결하고자 하는 기술적 과제는 푸시 데이터를 송신하는 웹 서버와 푸시 데이터를 수신하는 클라이언트 사이의 HTTP 세션이 연결되어 있지 않은 상태에서도 웹 서버가 푸시 데이터를 클라이언트에 실시간으로 송신할 수 있는 방법 및 시스템을 제공하는 것이다.SUMMARY OF THE INVENTION It is an object of the present invention to provide a method for a web server to transmit push data to a client in real time even when an HTTP session between a web server transmitting push data and a client receiving push data is not connected, System.

본 발명이 해결하고자 하는 또 다른 기술적 과제는 실시간 데이터 푸시 서비스의 제공 대상 클라이언트 수에 확장성(scalability)이 존재하는 웹 기반 실시간 데이터 푸싱 방법 및 시스템을 제공하는 것이다.Another object of the present invention is to provide a web-based real-time data pushing method and system in which scalability exists in the number of target clients of a real-time data push service.

본 발명이 해결하고자 하는 또 다른 기술적 과제는 웹 기반 실시간 데이터 푸시 서비스를 받는 클라이언트의 전력 소모를 최소화하는 형태의 웹 기반 실시간 데이터 푸싱 방법 및 시스템을 제공하는 것이다.Another object of the present invention is to provide a web-based real-time data pushing method and system for minimizing power consumption of a client receiving a web-based real-time data push service.

본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해 될 수 있을 것이다.The technical objects of the present invention are not limited to the above-mentioned technical problems, and other technical subjects not mentioned can be clearly understood by those skilled in the art from the following description.

상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 웹 기반 실시간 데이터 푸싱 방법은, 푸시 데이터를 수신할 클라이언트와의 HTTP(HyperText Transfer Protocol) 세션이 연결되어 있지 않은 웹 서버가, 상기 클라이언트를 가리키는 정보를 포함하는 푸시 개시 요청 신호를 프락시 서버에 송신하는 단계와, 상기 프락시 서버가, 상기 푸시 개시 요청 신호 수신에 응답하여 상기 웹 서버를 가리키는 정보를 포함하는 푸시 개시 통지 신호를 상기 클라이언트에 송신하는 단계와, 상기 클라이언트가, 상기 푸시 개시 통지 신호 수신에 응답하여 상기 웹 서버에 HTTP 세션 생성을 요청하고, 상기 HTTP 세션을 통해 데이터 푸시 요청을 포함하는 HTTP 리퀘스트를 송신하는 단계와, 상기 웹 서버가, 상기 HTTP 리퀘스트에 응답하여 상기 푸시 데이터를 포함하는 HTTP 리스폰스를 상기 클라이언트에 송신하는 단계와, 상기 푸시 데이터의 송신이 완료된 후 상기 HTTP 세션이 종료되는 단계를 포함한다.According to an aspect of the present invention, there is provided a method for pushing a web-based real-time data according to an embodiment of the present invention, wherein a web server having no HyperText Transfer Protocol (HTTP) Transmitting, to the proxy server, a push start request signal including information indicating the web server, in response to receiving the push start request signal, Requesting the client to generate an HTTP session to the web server in response to receiving the push start notification signal and transmitting an HTTP request including a data push request through the HTTP session; In response to the HTTP request, the HTTP data including the push data Transmitting the push data to the client, and ending the HTTP session after the transmission of the push data is completed.

본 실시예에 따르면, 상기 푸시 개시 요청 신호 및 상기 푸시 개시 통지 신호는 TCP(Transmission Control Protocol), UDP(User Datagram Protocol) 등 HTTP의 하위 레이어(layer)의 프로토콜로 송신될 수 있다.According to the present embodiment, the push start request signal and the push start notification signal can be transmitted in a protocol of a lower layer of HTTP such as Transmission Control Protocol (TCP) and User Datagram Protocol (UDP).

본 실시예에 따르면, 상기 웹 기반 실시간 데이터 푸싱 방법은 상기 클라이언트가 상기 프락시 서버와 TCP 퍼시스턴트 커넥션(Transmission Control Protocol persistent connection)을 유지하는 단계를 더 포함할 수 있다. 상기 TCP 퍼시스턴트 커넥션을 유지하는 단계는 TCP 소켓 서비스에서 제공되는 TCP 디스커넥트 이벤트 발생을 감지하는 단계와, 상기 감지에 응답하여 상기 프락시 서버와 TCP 세션 연결을 재시도하는 단계를 포함하되, 상기 클라이언트 전력 소모 절감을 위해 상기 TCP 세션 연결 재시도 사이의 시간 간격은 가변적인 것을 특징으로 할 수 있다. 또한, 상기 TCP 퍼시스턴트 커넥션을 유지하는 단계는 상기 웹 서버, 상기 프락시 서버 및 상기 클라이언트가 TCP 오버레이 네트워크(overlay network)를 구성하도록 상기 웹 서버가 상기 프락시 서버와 TCP 퍼시스턴트 커넥션을 유지하는 단계를 포함할 수도 있다.According to the present embodiment, the web-based real-time data pushing method may further include the step of the client maintaining a TCP persistent connection with the proxy server. Wherein maintaining the TCP persistent connection includes detecting a TCP disconnect event occurrence provided by a TCP socket service and retrying a TCP session connection with the proxy server in response to the detection, The time interval between the TCP session connection retries may be variable to reduce power consumption. The step of maintaining the TCP persistent connection may further include maintaining the TCP persistent connection with the proxy server so that the web server, the proxy server, and the client configure a TCP overlay network .

본 실시예에 따르면, 상기 웹 기반 실시간 데이터 푸싱 방법은 상기 클라이언트가, 클라이언트측 아이디를 포함하는 등록 요청 신호를 상기 프락시 서버에 송신하는 단계와, 상기 프락시 서버가, 상기 클라이언트측 아이디에 대응하는 등록 아이디를 발급하고, 상기 클라이언트측 아이디, 상기 발급된 등록 아이디 및 상기 클라이언트의 접속 주소 정보를 상기 클라이언트에 대한 레코드로써 기록하고, 상기 발급된 등록 아이디를 상기 클라이언트에 송신하는 단계와, 상기 프락시 서버가, 상기 클라이언트로부터의 TCP 세션 연결 요청이 수신되는 경우, 상기 클라이언트의 접속 주소 정보가 갱신되었다면 상기 레코드의 접속 주소 정보도 갱신하는 단계와, 상기 클라이언트가, 상기 클라이언트측 아이디 및 상기 등록 아이디 중 적어도 하나를 상기 웹 서버에 송신하는 단계를 더 포함할 수 있다. 이 때, 상기 푸시 개시 요청 신호를 프락시 서버에 송신하는 단계는, 상기 클라이언트로부터 수신된 클라이언트측 아이디 및 상기 등록 아이디 중 하나를 포함하는 상기 푸시 개시 요청 신호를 상기 프락시 서버에 송신하는 단계를 포함하고, 상기 푸시 개시 통지 신호를 상기 클라이언트에 송신하는 단계는, 상기 웹 서버로부터 수신된 상기 푸시 개시 요청 신호에 포함된 클라이언트측 아이디 또는 등록 아이디에 대한 레코드에서 상기 클라이언트의 접속 주소 정보를 조회하는 단계와 상기 조회된 접속 주소 정보를 이용하여 상기 푸시 개시 통지 신호를 송신하는 단계를 포함할 수 있다. 또한, 상기 푸시 개시 통지 신호 수신에 응답하여 상기 웹 서버에 HTTP 세션 생성을 요청하고, 상기 HTTP 세션을 통해 데이터 푸시 요청을 포함하는 HTTP 리퀘스트를 상기 웹 서버에 송신하는 단계는, 상기 클라이언트측 아이디에 대응하여 발급된 등록 아이디를 수신하여 저장하는 단계와, 상기 데이터 푸시 요청에 상기 저장된 등록 아이디를 포함시키는 단계를 포함할 수도 있다. 이 때, 상기 HTTP 리퀘스트에 응답하여 상기 푸시 데이터를 포함하는 HTTP 리스폰스를 상기 클라이언트에 송신하는 단계는 상기 데이터 푸시 요청에 포함된 상기 클라이언트의 등록 아이디를 이용하여 상기 클라이언트를 식별하고, 상기 클라이언트를 위한 푸시 데이터를 조회하는 단계를 포함할 수 있다.According to the present embodiment, the web-based real-time data pushing method includes the steps of the client transmitting a registration request signal including a client-side ID to the proxy server, and the proxy server registering a registration corresponding to the client- The client side ID, the issued registration ID, and the connection address information of the client, as a record for the client, and transmitting the issued registration ID to the client, and the proxy server Updating the connection address information of the record if the connection address information of the client is updated when the TCP session connection request from the client is received; and if the client has updated at least one of the client side ID and the registration ID To the web server To the mobile terminal. In this case, the step of transmitting the push start request signal to the proxy server may include transmitting the push start request signal including one of the client side ID and the registration ID received from the client to the proxy server The step of transmitting the push start notification signal to the client includes the steps of inquiring the client's connection address information in the record of the client side ID or the registration ID included in the push start request signal received from the web server, And transmitting the push start notification signal using the inquired contact address information. The step of requesting the web server to generate an HTTP session in response to the reception of the push start notification signal and transmitting an HTTP request including a data push request through the HTTP session to the web server may include: Receiving and storing a registration ID correspondingly issued, and storing the stored registration ID in the data push request. In this case, the step of transmitting an HTTP response including the push data to the client in response to the HTTP request includes identifying the client using the registration ID of the client included in the data push request, And querying the push data.

본 실시예에 따르면, 상기 웹 기반 실시간 데이터 푸싱 방법은 상기 웹 서버가 상기 프락시 서버와 TCP 퍼시스턴트 커넥션을 유지하는 단계를 더 포함할 수 있다.According to the present embodiment, the web-based real-time data pushing method may further include the step of the web server maintaining a TCP persistent connection with the proxy server.

본 실시예에 따르면, 상기 푸시 데이터를 포함하는 HTTP 리스폰스를 상기 클라이언트에 송신하는 단계는, 상기 푸시 데이터를 HTML5-SSE(Server Sent Events) 기술을 통해 복수개의 HTTP 리스폰스에 분할 수납하여 상기 클라이언트에 송신하는 단계를 포함할 수 있다.According to the present exemplary embodiment, the step of transmitting the HTTP response including the push data to the client includes the step of dividing the push data into a plurality of HTTP responses through HTML5-SSE (Server Sent Events) .

본 실시예에 따르면, 상기 클라이언트는 TCP/IP 주소가 부여된 센서 클라이언트일 수 있다.According to the present embodiment, the client may be a sensor client to which a TCP / IP address is assigned.

본 실시예에 따르면, 상기 클라이언트는 사물 인터넷(Internet of Things) 클라이언트일 수 있다.According to this embodiment, the client may be an Internet of Things client.

상기 기술적 과제를 달성하기 위한 본 발명의 다른 실시예에 따른 웹 기반 실시간 데이터 푸싱 서비스용 프락시 서버는 각 클라이언트의 아이디 및 접속 주소 정보를 포함하는 개체 레코드를 관리하는 개체 레코드 관리부와, 푸시 데이터를 수신할 클라이언트와의 HTTP 세션이 연결되어 있지 않은 웹 서버로부터 상기 클라이언트의 아이디를 포함하는 푸시 개시 요청 신호를 수신하는 푸시 개시 요청 수신부, 및 상기 클라이언트의 아이디에 대응하는 접속 주소 정보를 상기 개체 레코드에서 조회하여 상기 클라이언트의 주소 정보를 얻고, 상기 얻어진 주소 정보를 이용하여 상기 웹 서버를 가리키는 정보를 포함하는 푸시 개시 통지 신호를 상기 클라이언트에 송신하는 푸시 개시 통지부를 포함할 수 있다.According to another aspect of the present invention, there is provided a proxy server for a web-based real-time data pushing service, comprising: an object record management unit for managing object records including IDs and connection address information of each client; A push start request signal for receiving a push start request signal including an ID of the client from a web server to which an HTTP session with a client to be connected is not connected, and a push start request receiving unit for inquiring connection address information corresponding to the client's ID in the object record And a push start notification unit for obtaining the address information of the client and transmitting a push start notification signal including information indicating the web server to the client using the obtained address information.

본 실시예에 따르면, 상기 개체 레코드 관리부가 특정 클라이언트와 TCP 세션이 재연결 되는 경우, 상기 재연결 된 TCP 세션의 상대 클라이언트에 대한 개체 레코드 내 접속 주소 정보를 갱신할 수 있다.According to the present embodiment, when the entity record management unit reconnects a TCP session with a specific client, the entity record management unit can update the in-object connection address information for the relative client of the reconnected TCP session.

본 실시예에 따르면, 상기 푸시 개시 요청 수신부 및 상기 푸시 개시 통지부가 상기 클라이언트에 의하여 유지되는 TCP 퍼시스턴트 커넥션을 통해 상기 클라이언트와 통신할 수도 있다.According to the present embodiment, the push start request receiving unit and the push start notifying unit may communicate with the client via a TCP persistent connection maintained by the client.

본 실시예에 따르면, 상기 개체 레코드 관리부가 각 웹 서버의 아이디 및 접속 주소 정보를 더 포함하는 상기 개체 레코드를 관리하고, 상기 웹 서버의 아이디가 웹 서버측 아이디 및 그에 대응하여 상기 웹 서버에 발급된 등록 아이디를 포함하고, 상기 클라이언트의 아이디는 클라이언트측 아이디 및 그에 대응하여 상기 클라이언트에 발급된 등록 아이디를 포함할 수 있으며, 상기 푸시 개시 요청 수신부가 상기 웹 서버에 대하여 발급된 등록 아이디 및 상기 클라이언트에 대하여 발급된 클라이언트측 아이디를 포함하는 상기 푸시 개시 요청 신호를 수신하여 상기 등록 아이디들이 상기 개체 레코드에 포함되어 있는지 여부를 판정함으로써, 웹 서버 및 클라이언트에 대한 인증을 수행할 수 있다.According to the present embodiment, the entity record management unit manages the entity record further including the ID and connection address information of each web server, and the ID of the web server is issued to the web server in correspondence with the ID of the web server, The ID of the client may include a client ID and a registration ID issued to the client correspondingly to the client ID, and the push start request receiver may include a registration ID issued to the web server, The authentication server can perform the authentication for the web server and the client by receiving the push start request signal including the client side ID issued to the client and determining whether the registration IDs are included in the object record.

상기 기술적 과제를 달성하기 위한 본 발명의 또 다른 실시예에 따른 클라이언트는 프락시 서버와 TCP 퍼시스턴트 커넥션을 유지 하고, 상기 클라이언트와 HTTP 세션이 연결되어 있지 않은 웹 서버의 요청에 의하여 생성된 푸시 개시 통지 신호를 프락시 서버로부터 상기 TCP 퍼시스턴트 커넥션을 통하여 수신하는 푸시 개시 통지 수신부와, 상기 푸시 개시 통지 신호의 수신에 응답하여 상기 웹 서버에 HTTP 세션 생성을 요청하고, 상기 HTTP 세션을 통해 데이터 푸시 요청을 포함하는 HTTP 리퀘스트를 송신하는 데이터 푸시 요청부와, 상기 HTTP 세션을 통해 푸시 데이터를 포함하는 HTTP 리스폰스를 수신하는 푸시 데이터 수신부를 포함할 수 있다.According to another aspect of the present invention, there is provided a client according to the first aspect of the present invention, which maintains a TCP persistent connection with a proxy server and transmits a push start notification generated by a request of a web server, A push start notification reception unit for receiving a signal from the proxy server via the TCP persistent connection; and a control unit for requesting the web server to generate an HTTP session in response to receiving the push start notification signal, And a push data receiving unit for receiving an HTTP response including push data through the HTTP session.

본 실시예에 따르면, 상기 푸시 개시 통지 수신부가 TCP 소켓 서비스에서 제공되는 TCP 디스커넥트 이벤트 발생을 감지하여 상기 프락시 서버와 TCP 세션 연결을 재시도하되, 상기 재시도에도 불구하고 TCP 세션 연결이 실패하는 경우, TCP 세션 연결 재시도 사이의 시간 간격을 점점 증가시키는 방식으로 상기 TCP 퍼시스턴트 커넥션을 유지할 수 있다. 상기 푸시 개시 통지 수신부는 상기 프락시 서버와 TCP 세션 연결을 재시도하되, 상기 재시도에도 불구하고 TCP 세션 연결이 실패하는 경우, TCP 세션 연결 재시도 사이의 시간 간격을 기하급수적으로 증가시키는 방식으로 상기 TCP 퍼시스턴트 커넥션을 유지할 수 있다.According to the present embodiment, the push-start notification receiver detects the occurrence of the TCP disconnect event provided by the TCP socket service and retries the TCP session connection with the proxy server, but the TCP session connection fails even though the retry is attempted , The TCP persistent connection can be maintained in such a manner as to gradually increase the time interval between TCP session connection retries. Wherein the push-start notification receiver retries a TCP session connection with the proxy server, and when a TCP session connection fails despite the retry, a time interval between TCP session connection retries is exponentially increased, TCP persistent connections can be maintained.

본 실시예에 따르면, 상기 푸시 데이터 수신부가 HTML5-SSE(Server Sent Events) 기술을 통해 상기 HTTP 리퀘스트 송신에 대응하는 복수개의 HTTP 리스폰스를 수신할 수 있다. 이 때, 상기 복수개의 HTTP 리스폰스에는 상기 푸시 데이터가 분할되어 포함되어 있다.According to the present embodiment, the push data receiving unit can receive a plurality of HTTP responses corresponding to the HTTP request transmission through HTML5-SSE (Server Sent Events) technology. At this time, the push data is divided and included in the plurality of HTTP responses.

본 실시예에 따르면, 상기 데이터 푸시 요청부가 상기 HTTP 세션을 통해 스트리밍 방식 데이터 푸시 요청을 포함하는 HTTP 리퀘스트를 송신하고, 상기 푸시 데이터 수신부가 HTML5-SSE(Server Sent Events) 기술을 통해 상기 HTTP 리퀘스트 송신에 대응하는 복수개의 HTTP 리스폰스를 수신할 수도 있다. 상기 복수개의 HTTP 리스폰스에는 상기 푸시 데이터가 분할되어 포함되어 있다.According to the present exemplary embodiment, the data push request unit transmits an HTTP request including a streaming data push request through the HTTP session, and the push data receiver transmits the HTTP request through HTML5-SSE (Server Sent Events) Lt; RTI ID = 0.0 > HTTP < / RTI > The push data is divided and included in the plurality of HTTP responses.

본 실시예에 따르면, 상기 클라이언트는 웹 클라이언트, 즉 인터넷 브라우저를 구비한 것일 수 있다.According to the present embodiment, the client may be provided with a web client, that is, an Internet browser.

본 실시예에 따르면, 상기 클라이언트는 상기 푸시 데이터로 구성되는 제어 명령에 의하여 제어되는 적어도 하나의 센서를 더 포함할 수 있다.According to the present embodiment, the client may further include at least one sensor controlled by a control command composed of the push data.

상기 기술적 과제를 달성하기 위한 본 발명의 또 다른 실시예에 따른 실시간 데이터 푸싱 지원 웹 서버는, HTTP 세션으로 연결되지 않은 클라이언트에 송신할 푸시 데이터가 발생한 경우, 상기 클라이언트를 가리키는 정보를 포함하는 푸시 개시 요청을 상기 클라이언트와 TCP 퍼시스턴트 커넥션을 유지하는 프락시 서버에 송신하는 푸시 개시 요청부와, 상기 프락시 서버를 통하여 상기 푸시 개시 요청 신호를 전달받은 상기 클라이언트로부터 HTTP 세션 생성 요청이 있는 경우, 상기 클라이언트에 대한 HTTP 세션을 생성하는 세션 관리부와, 상기 HTTP 세션을 통해 데이터 푸시 요청을 포함하는 HTTP 리퀘스트를 수신하면 상기 푸시 데이터를 포함하는 HTTP 리스폰스를 상기 HTTP 세션을 통해 상기 클라이언트에 송신하는 데이터 푸시 처리부를 포함한다.According to another aspect of the present invention, there is provided a web server for real-time data pushing according to the present invention, comprising: A push start request unit for sending a request to the proxy server for maintaining a TCP persistent connection with the client, and a push start request unit for, if there is an HTTP session creation request from the client receiving the push start request signal via the proxy server, And a data push processing unit for transmitting an HTTP response including the push data to the client through the HTTP session upon receiving an HTTP request including a data push request through the HTTP session do.

본 실시예에 따르면, 상기 푸시 개시 요청부가 상기 푸시 데이터의 송신 방식을 결정하고, 결정된 푸시 데이터 송신 방식을 가리키는 정보를 상기 푸시 개시 요청에 더 포함시킬 수 있다. 이 때, 상기 푸시 개시 요청부는 HTTP 리퀘스트와 HTTP 리스폰스가 1:1 관계를 가지는 확정형 푸시(confirmed push)와 HTTP 리퀘스트와 HTTP 리스폰스가 1:N 관계를 가지는 스트림 푸시(stream push) 중 하나로 상기 푸시 데이터의 송신 방식을 결정할 수 있다. 이 때, 상기 푸시 개시 요청부는 상기 푸시 데이터의 QoS(Quality of Service) 레벨, 데이터 사이즈, 웹 서버의 연산 부하, 웹 서버에 연결된 네트워크의 대역폭 부하 중 적어도 하나를 참조하여 푸시 데이터의 송신 방식을 결정할 수 있다.According to the present embodiment, the push start request part may determine the transmission method of the push data, and may further include information indicating the determined push data transmission method in the push start request. In this case, the push-initiation request unit may include a confirmed push having a 1: 1 relationship between an HTTP request and an HTTP response, and a stream push having a 1: N relationship between an HTTP request and an HTTP response. The transmission method of the data can be determined. At this time, the push-initiation request unit determines at least one of a quality of service (QoS) level of the push data, a data size, an operation load of the web server, and a bandwidth load of a network connected to the web server, .

상기 기술적 과제를 달성하기 위한 본 발명의 또 다른 실시예에 따른 웹 기반 실시간 데이터 푸싱 시스템은 HTTP 세션으로 연결되지 않은 클라이언트에 송신할 푸시 데이터가 발생한 경우, 상기 클라이언트의 아이디를 포함하는 푸시 개시 요청을 프락시 서버에 송신하는 웹 서버와, 상기 클라이언트와 TCP 퍼시스턴트 커넥션으로 연결되고, 각각의 클라이언트의 아이디 및 그에 대응하는 접속 주소 정보를 포함하는 개체 레코드를 관리하며, 상기 개체 레코드를 이용하여 얻은 접속 주소 정보를 통해 상기 푸시 개시 요청을 상기 클라이언트에 전달하는 프락시 서버와, 상기 프락시 서버와 TCP 퍼시스턴트 커넥션을 유지하고, 상기 푸시 개시 통지 신호의 수신에 응답하여 상기 웹 서버에 HTTP 세션 생성을 요청하고, 상기 HTTP 세션을 통해 데이터 푸시 요청을 포함하는 HTTP 리퀘스트를 송신하고, 상기 HTTP 세션을 통해 푸시 데이터를 포함하는 HTTP 리스폰스를 수신하는 클라이언트를 포함한다.According to another aspect of the present invention, there is provided a web-based real-time data pushing system including a push-start request including an ID of a client when push data to be transmitted to a client not connected to an HTTP session occurs, A web server connected to the client via a TCP persistent connection and managing an object record including an ID of each client and corresponding connection address information, A proxy server for maintaining a TCP persistent connection with the proxy server and requesting the web server to generate an HTTP session in response to receiving the push start notification signal, The data push request is transmitted through the HTTP session Also it transmits the HTTP request to and includes the client receiving a HTTP response containing data push via the HTTP session.

상기와 같은 본 발명에 따르면, 푸시 데이터를 송신하는 웹 서버와 푸시 데이터를 수신하는 클라이언트 사이의 HTTP 세션이 연결되어 있지 않은 상태에서도 웹 서버가 푸시 데이터를 클라이언트에 실시간으로 송신할 수 있으므로, 데이터 푸시 서비스의 제공 대상 클라이언트 수에 확장성(scalability)을 제공할 수 있으며, 웹 서버에 푸시 데이터가 발생한 즉시 클라이언트에 송신할 수 있는 실시간성을 확보하는 효과가 있다.According to the present invention, since the web server can transmit the push data to the client in real time even when the HTTP session between the web server that transmits the push data and the client that receives the push data is not connected, Scalability can be provided to the number of clients to be provided with the service, and real-time property that can be transmitted to the client immediately after the push data is generated in the web server is secured.

도 1은 본 발명의 일 실시예에 따른 웹 기반 실시간 데이터 푸싱 시스템의 구성을 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따라 클라이언트와 웹 서버가 프락시 서버에 등록하는 것을 설명하기 위한 개념도이다.
도 3은 본 발명의 일 실시예에 따른 웹 기반 실시간 데이터 푸싱 방법에 따른 신호 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 웹 기반 실시간 데이터 푸싱 방법에 따른, 도 3과는 다른 신호 흐름도이다.
도 5는 본 발명의 일 실시예에 따라 클라이언트와 프락시 서버 사이의 TCP 퍼시스턴트 커넥션이 유지되는 것을 설명하기 위한 신호 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 클라이언트의 블록 구성도이다.
도 7은 본 발명의 일 실시예에 따른 프락시 서버의 블록 구성도이다.
도 8은 본 발명의 일 실시예에 따른 웹 서버의 블록 구성도이다.
1 is a block diagram of a web-based real-time data pushing system according to an embodiment of the present invention.
2 is a conceptual diagram for explaining how a client and a web server register with a proxy server according to an embodiment of the present invention.
3 is a signal flow diagram according to a web-based real-time data pushing method according to an embodiment of the present invention.
FIG. 4 is a signal flow diagram according to a web-based real-time data pushing method according to an embodiment of the present invention, which is different from FIG.
5 is a signal flow diagram illustrating the persistence of a TCP persistent connection between a client and a proxy server in accordance with an embodiment of the present invention.
6 is a block diagram of a client according to an embodiment of the present invention.
7 is a block diagram of a proxy server according to an embodiment of the present invention.
8 is a block diagram of a web server according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention and the manner of achieving them will become apparent with reference to the embodiments described in detail below with reference to the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Is provided to fully convey the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout the specification.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless defined otherwise, all terms (including technical and scientific terms) used herein may be used in a sense commonly understood by one of ordinary skill in the art to which this invention belongs. Also, commonly used predefined terms are not ideally or excessively interpreted unless explicitly defined otherwise.

먼저, 도 1을 참조하여 본 발명의 일 실시예에 따른 웹 기반 실시간 데이터 푸싱 시스템의 구성 및 동작을 설명하기로 한다.First, the configuration and operation of a web-based real-time data pushing system according to an embodiment of the present invention will be described with reference to FIG.

도 1에 도시된 바와 같이 본 실시예에 따른 웹 기반 실시간 데이터 푸싱 시스템(10)은 클라이언트(200), 웹 서버(100) 및 프락시 서버(300)를 포함할 수 있다.As shown in FIG. 1, the web-based real-time data pushing system 10 according to the present embodiment may include a client 200, a web server 100, and a proxy server 300.

클라이언트(200)는 인터넷 통신 인터페이스, 연산 수단 및 상기 인터넷 통신 인터페이스와 상기 연산 수단을 연결하는 회로 또는 버스를 구비한 클라이언트다. 예를 들어, TCP/IP 프로토콜 스택을 처리할 수 있는 유선 통신 인터페이스 및 무선 통신 인터페이스 중 적어도 하나를 구비한 클라이언트다. 클라이언트(200)는 예를 들어 노트북(note-book), PDA (Personal Digital Assistants), 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), e-북(e-book), PMP(portable multimedia player), 휴대용 게임기, 내비게이션(navigation) 장치, 블랙박스(black box), 디지털 카메라(digital camera), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), 환경 측정 센서 노드, 신체 정보 측정 센서 노드, 사물 인터넷 클라이언트 및 정보를 무선 환경에서 송수신할 수 있는 장치 등과 같은 이동이 가능한 클라이언트 장치 중 하나일 수 있다.The client 200 is a client having an internet communication interface, computing means, and a circuit or bus connecting the computing means and the Internet communication interface. For example, a client having at least one of a wired communication interface and a wireless communication interface capable of processing a TCP / IP protocol stack. The client 200 may be a mobile phone, a mobile phone, a smart phone, a personal digital assistant (PDA), a portable computer, a web tablet, a wireless phone, Such as a smart phone, an e-book, a portable multimedia player (PMP), a portable game machine, a navigation device, a black box, a digital camera, picture player, a digital video recorder, a digital video player, an environmental measurement sensor node, a body information measurement sensor node, an object Internet client, and a device capable of transmitting and receiving information in a wireless environment Lt; / RTI > client device.

클라이언트(200)는 HTTP 처리 모듈을 구비한 것이다. 일 실시예에 따르면 상기 HTTP 처리 모듈은 상기 인터넷 통신 인터페이스 및 연산 수단 중 적어도 하나를 이용하여 구성될 수 있다. 예를 들어 클라이언트(200)는 웹 브라우저(WEB BROWSER)를 구비한 것일 수 있다. 클라이언트(200)는 상기 HTTP 처리 모듈을 이용하여 웹 서버(100)에 HTTP 세션 연결 요청을 송신함으로써 웹 서버(100)와 HTTP 세션을 설립하고, 상기 HTTP 세션을 통하여 요청하는 정보가 무엇인지 가리키는 데이터를 포함하는 HTTP 리퀘스트(HTTP Request) 웹 서버(100)에 송신하고, 상기 HTTP 리퀘스트에 대한 응답인 HTTP 리스폰스(HTTP Response)를 웹 서버(100)로부터 수신한다.The client 200 is provided with an HTTP processing module. According to one embodiment, the HTTP processing module may be configured using at least one of the Internet communication interface and the computing means. For example, the client 200 may be provided with a web browser. The client 200 establishes an HTTP session with the web server 100 by transmitting an HTTP session connection request to the web server 100 using the HTTP processing module, and transmits data indicating the information requested through the HTTP session To the HTTP request web server 100, and receives an HTTP response (HTTP Response) from the web server 100, which is a response to the HTTP request.

웹 서버(100)는 클라이언트(200)의 HTTP 세션 연결 요청에 응답하여 클라이언트(200)와 HTTP 세션을 설립(세션 아이디 발급 포함)하고, 상기 HTTP 세션을 통하여 HTTP 리퀘스트를 수신하며, 상기 HTTP 리퀘스트에 대한 응답인 HTTP 리스폰스를 통하여 HTML 문서 등의 데이터를 송신한다.The web server 100 establishes an HTTP session with the client 200 (including issue of a session ID) in response to the HTTP session connection request of the client 200, receives the HTTP request through the HTTP session, And transmits data such as an HTML document through an HTTP response that is a response to the request.

웹 서버(100)는 인터넷 망과 유선 통신 수단을 통하여 연결된 것으로, 이동 클라이언트가 아닌 것이 일반적이다. 다만, 일 실시예에 따르면, 웹 서버(100)가 이동 클라이언트로 구성될 수도 있다. 웹 서버(100)가 이동 클라이언트로 구성되는 경우, 인터넷 망과 무선 통신 수단을 통하여 연결된다.The web server 100 is connected to the internet network through a wired communication means, and is generally not a mobile client. However, according to one embodiment, the web server 100 may be configured as a mobile client. When the Web server 100 is configured as a mobile client, it is connected to the Internet via a wireless communication unit.

프락시 서버(300)는 클라이언트(200) 및 웹 서버(100)와 HTTP의 하위 레이어의 프로토콜로 연결된다. 일 실시예에 따르면, 클라이언트(200) 및 웹 서버(100)의 동작에 의하여 프락시 서버(300)와 클라이언트(200) 및 웹 서버(100) 간의 트랜스포트 레이어(transport layer) 프로토콜 연결이 항시 유지될 수 있다. 예를 들어 프락시 서버(300)는 클라이언트(200) 및 웹 서버(100)와 TCP 퍼시스턴트 커넥션(TCP persistent connection)으로 연결될 수 있다.The proxy server 300 is connected to the client 200 and the web server 100 through a protocol of a lower layer of HTTP. The transport layer protocol connection between the proxy server 300 and the client 200 and the web server 100 is maintained at all times by the operation of the client 200 and the web server 100 . For example, the proxy server 300 may be connected to the client 200 and the web server 100 through a TCP persistent connection.

프락시 서버(300), 클라이언트(200) 및 웹 서버(100)는 상기 TCP 퍼시스턴트 커넥션으로 구성된 오버레이 네트워크(overlay network)를 구성함으로써 신속하게 데이터를 송수신 할 수 있다. 이 때, 프락시 서버(300)는 클라이언트(200)와 웹 서버(100) 간의 P2P 오버레이 네트워크가 구성되도록 하기 위한 오버레이 네트워크 라우팅 장비인 것으로 이해될 수 있을 것이다. 즉, 프락시 서버(300)는 웹 서버(100)로부터 수신된 푸시 개시 요청을 클라이언트로 신속하게 메시지 릴레이(relay) 할 수 있다.The proxy server 300, the client 200, and the web server 100 can quickly transmit and receive data by configuring an overlay network constituted by the TCP persistent connection. At this time, it can be understood that the proxy server 300 is an overlay network routing device for configuring a P2P overlay network between the client 200 and the web server 100. That is, the proxy server 300 can quickly relay the push start request received from the web server 100 to the client.

본 명세서에서 언급되는 상기 TCP 퍼시스턴트 커넥션은 TCP 연결이 계속 유지되는 것을 의미한다. 상기 TCP 퍼시스턴트 커넥션을 유지하는 방법은 널리 알려진 다양한 기술을 이용하여 구현될 수 있다. 예를 들어 KEEP ALIVE 관련 설정을 이용하여 TCP 세션이 타임 아웃 종료되는 것을 방지함으로써 구현될 수 있다.The TCP persistent connection referred to herein means that the TCP connection is maintained. The method of maintaining the TCP persistent connection may be implemented using various well known techniques. For example, by using a KEEP ALIVE-related setting to prevent a TCP session from timeout expiring.

예를 들어 클라이언트(200) 또는 웹 서버(100)의 이동(웹 서버가 이동 클라이언트로 구성 된 경우)에 따른 핸드 오버(hand over) 및 그에 수반되는 IP 주소의 변경에도 불구하고 TCP 연결이 계속 유지될 수 있다. 즉, 클라이언트(200) 또는 웹 서버(100)의 핸드 오버 및 그에 수반되는 IP주소의 변경이 있게 되어 프락시 서버(300)와의 TCP 세션이 끊기게 되더라도, 클라이언트(200) 또는 웹 서버(100)가 끊긴 TCP 세션을 자동으로 다시 설립함으로써 상기 TCP 퍼시스턴트 커넥션이 유지되도록 관리할 수 있다.The TCP connection is maintained even though the handover of the client 200 or the Web server 100 (when the Web server is configured as a mobile client) and the change of the IP address accompanying the handover . That is, even if the handover of the client 200 or the web server 100 and the subsequent change of the IP address cause the TCP session with the proxy server 300 to be disconnected, the client 200 or the web server 100 is disconnected And can manage the TCP persistent connection to be maintained by automatically reestablishing a TCP session.

이하, 본 실시예에 따른 웹 기반 실시간 데이터 푸싱 시스템(10)의 동작을 설명한다.Hereinafter, the operation of the web-based real-time data pushing system 10 according to the present embodiment will be described.

먼저, 프락시 서버(300)가 웹 서버(100) 및 클라이언트(200)를 각각의 등록 아이디로 식별하기 위하여, 웹 서버(100) 및 클라이언트(200) 각각은 푸시 서비스 이용을 위한 등록 절차를 수행한다. 상기 등록 절차를 도 2를 참조하여 설명한다.First, in order for the proxy server 300 to identify the Web server 100 and the client 200 as respective registration IDs, the Web server 100 and the client 200 respectively perform a registration procedure for using the push service . The registration procedure will be described with reference to FIG.

웹 서버(100)의 상기 등록 절차는 웹 서버(100)가 웹 서버(100)의 웹 서버측 아이디를 포함하는 등록 요청을 프락시 서버(300)에 송신하는 단계와, 프락시 서버(300)가 상기 등록 요청 수신에 응답하여 상기 웹 서버측 아이디에 대응하는 등록 아이디를 발급하는 단계와, 상기 발급된 등록 아이디, 웹 서버(100)의 접속 주소 정보, 웹 서버측 아이디를 포함하는 개체 레코드(30)를 저장하는 단계를 포함할 수 있다. 웹 서버(100)의 접속 주소 정보는 상기 등록 요청에 포함될 수도 있으나, 상기 등록 요청 신호의 헤더에서 추출될 수도 있다. 예를 들어, 웹 서버(100)의 접속 주소 정보가 URL(Uniform Resource Locator)인 경우, 상기 URL은 상기 등록 요청에 포함될 것이고, 웹 서버(100)의 접속 주소 정보가 IP 어드레스인 경우, 상기 IP 어드레스는 상기 등록 요청 신호의 헤더 부분에 포함되어 있을 것이다.The registration procedure of the web server 100 includes the steps of the web server 100 transmitting a registration request including the web server side ID of the web server 100 to the proxy server 300, Issuing a registration ID corresponding to the ID of the web server side in response to receiving the registration request; receiving an object record (30) including the issued registration ID, access address information of the web server (100) And the like. The connection address information of the Web server 100 may be included in the registration request, but may be extracted from the header of the registration request signal. For example, if the connection address information of the Web server 100 is a URL (Uniform Resource Locator), the URL will be included in the registration request. If the connection address information of the Web server 100 is an IP address, The address will be included in the header portion of the registration request signal.

클라이언트(200)의 상기 등록 절차는 클라이언트(200)가 클라이언트(200)의 접속 주소 정보(예를 들어 IP 어드레스) 및 클라이언트측 아이디를 포함하는 등록 요청을 프락시 서버(300)에 송신하는 단계와, 프락시 서버(300)가 상기 등록 요청 수신에 응답하여 상기 클라이언트측 아이디에 대응하는 등록 아이디를 발급하는 단계와, 상기 발급된 등록 아이디, 상기 등록 요청에 포함된 TCP/IP 접속 주소 정보, 클라이언트측 아이디를 포함하는 개체 레코드(30)를 저장하는 단계를 포함할 수 있다. 클라이언트(200)의 접속 주소 정보는 상기 등록 요청에 포함될 수도 있으나, 상기 등록 요청 신호의 헤더에서 추출될 수도 있다.The registration procedure of the client 200 includes the steps of the client 200 transmitting a registration request including the connection address information (for example, an IP address) of the client 200 and the client side ID to the proxy server 300, A step in which the proxy server 300 issues a registration ID corresponding to the client side ID in response to receiving the registration request, a step of receiving the registration ID, the TCP / IP connection address information included in the registration request, And storing the object record 30 including the object record 30. The connection address information of the client 200 may be included in the registration request, but may be extracted from the header of the registration request signal.

다시 도 1으로 돌아와서, 웹 기반 실시간 데이터 푸싱 시스템(10)의 동작을 설명한다. HTTP 세션으로 연결되지 않은 소정의 클라이언트(200)에 송신할 푸시 데이터가 발생한 경우, 웹 서버(100)는 푸시 개시 요청 신호를 프락시 서버(300)에 송신한다. 상기 푸시 데이터를 수신할 클라이언트(200)는, 푸시 데이터 발생 시점에는 웹 서버(100)와 HTTP 세션으로 연결되어 있지 않더라도 그 이전 시점에 적어도 한번 웹 서버(100)와 HTTP 세션으로 연결되어 데이터를 제공 받은 이력이 있는 장치이다.Referring back to FIG. 1, the operation of the web-based real-time data pushing system 10 will be described. When the push data to be transmitted to a predetermined client 200 not connected to the HTTP session occurs, the web server 100 transmits a push start request signal to the proxy server 300. The client 200 to receive the push data may be connected to the web server 100 through the HTTP session at least one time before the push data is not connected to the web server 100 through the HTTP session, It is a device with history.

상기 푸시 개시 요청 신호에는 클라이언트(200)를 가리키는 정보가 포함될 수 있다. 상기 클라이언트(200)를 가리키는 정보는 예를 들어 클라이언트(200)의 아이디일 수 있다. 상기 클라이언트(200)의 아이디는 프락시 서버(300)에서 관리하는 클라이언트(200)의 등록 아이디일 수 있다. 상기 푸시 개시 요청에는 웹 서버(100)를 가리키는 정보도 포함될 수 있다. 상기 웹 서버(100)를 가리키는 정보는 예를 들어 웹 서버(100)의 아이디일 수 있다. 상기 웹 서버(100)의 아이디는 프락시 서버(300)에서 관리하는 웹 서버(100)의 등록 아이디 일 수 있다.The push start request signal may include information indicating the client 200. The information indicating the client 200 may be an ID of the client 200, for example. The ID of the client 200 may be a registration ID of the client 200 managed by the proxy server 300. The push start request may also include information indicating the Web server 100. [ The information indicating the web server 100 may be an ID of the web server 100, for example. The ID of the web server 100 may be a registration ID of the web server 100 managed by the proxy server 300.

프락시 서버(300)는 상기 푸시 개시 요청 신호에 포함된 클라이언트(200)를 가리키는 정보에 대응하는 클라이언트(200)의 접속 주소 정보, 예를 들어 IP 어드레스를 기 저장된 상기 개체 레코드에서 조회한다. 프락시 서버(300)는 조회된 클라이언트(200)의 접속 주소 정보를 이용하여 상기 푸시 개시 요청 신호에 따른 푸시 개시 통지 신호를 클라이언트(200)에 송신한다.The proxy server 300 inquires the connection address information, for example, the IP address of the client 200 corresponding to the information indicating the client 200 included in the push start request signal, from the pre-stored entity record. The proxy server 300 transmits a push start notification signal according to the push start request signal to the client 200 using the contact address information of the inquired client 200. [

클라이언트(200)는 프락시 서버(300)와 TCP 퍼시스턴트 커넥션을 유지하고, 상기 푸시 개시 통지 신호의 수신에 응답하여 웹 서버(100)에 HTTP 세션 생성을 요청하고, 상기 HTTP 세션을 통해 데이터 푸시 요청을 포함하는 HTTP 리퀘스트를 송신하고, 상기 HTTP 세션을 통해 푸시 데이터를 포함하는 HTTP 리스폰스를 수신한다.The client 200 maintains a TCP persistent connection with the proxy server 300 and requests the Web server 100 to create an HTTP session in response to receiving the push start notification signal, , And receives an HTTP response including the push data through the HTTP session.

한편, 클라이언트(200)의 위치가 이동함에 다라 핸드오버가 발생하고, 상기 핸드오버에 의하여 클라이언트의 접속 주소 예를 들어 IP 어드레스가 변경될 수 있다. 이러한 경우 TCP 디스커넥트 이벤트가 발생한다. 클라이언트(200)는 상기 TCP 디스커넥트 이벤트 발생을 감지하여 프락시 서버(300)와 TCP 세션 연결을 자동으로 재시도 한다.Meanwhile, the handover occurs due to the movement of the location of the client 200, and the connection address, for example, the IP address of the client can be changed by the handover. In this case, a TCP disconnect event occurs. The client 200 detects the occurrence of the TCP disconnect event and automatically retries the TCP session connection with the proxy server 300.

프락시 서버(300)와 TCP 세션 연결이 이뤄지면, 프락시 서버(300)가 그 과정에서 클라이언트(200)의 갱신된 IP 어드레스를 파악할 수 있다. 프락시 서버(300)는 클라이언트(200)의 갱신된 IP 어드레스로 상기 개체 레코드의 클라이언트 접속 주소 정보를 갱신함으로써, 상기 개체 레코드의 접속 주소 정보가 항상 최신 상태로 유지되도록 관리할 수 있다. 따라서, 웹 서버(100)는 데이터 푸싱을 위해 클라이언트(200)의 최신 접속 주소 정보를 관리할 필요가 없고, 이러한 작업은 프락시 서버(300)가 대신 수행하게 된다.When the TCP session connection is established with the proxy server 300, the proxy server 300 can recognize the updated IP address of the client 200 in the process. The proxy server 300 can update the client connection address information of the entity record with the updated IP address of the client 200 so that the connection address information of the entity record is always kept up to date. Therefore, the web server 100 does not need to manage the latest access address information of the client 200 for data pushing, and the proxy server 300 performs this operation instead.

상기 설명한 바와 같이, 웹 서버(100)는 데이터 푸싱을 위해 클라이언트(200)와 HTTP 세션을 유지할 필요가 없다. 그 대신, 웹 서버(100)는 프락시 서버(300)와 TCP 퍼시스턴트 커넥션을 유지하기만 하면 된다.As described above, the web server 100 does not need to maintain an HTTP session with the client 200 for data pushing. Instead, the Web server 100 only needs to maintain a TCP persistent connection with the proxy server 300.

푸시 데이터가 발생하면, 웹 서버(100)는 프락시 서버(300)에 푸시 개시 요청을 송신하고, 상기 푸시 개시 요청 송신을 트리거 신호(trigger signal)로 하여, 클라이언트(200)의 웹 서버(100)에 대한 HTTP 세션 연결 요청 및 상기 HTTP 세션을 통한 푸시 데이터 송신 요청이 수행된다.When the push data is generated, the web server 100 transmits a push start request to the proxy server 300 and transmits the push start request as a trigger signal to the web server 100 of the client 200, An HTTP session connection request for the HTTP session and a push data transmission request through the HTTP session are performed.

예를 들어, 10000 대의 클라이언트(200)에 대하여 데이터 푸싱 서비스를 제공하는 경우, 종래 기술에 따르면 10000 개 혹은 그에 상응하는 숫자의 HTTP 세션 연결이 웹 서버(100)와 1000 대의 클라이언트(200) 사이에 항시 유지되어야 실시간 데이터 푸싱 서비스를 제공할 수 있을 것이다. 그러나 본 발명에 따르면, 실시간 데이터 푸싱 서비스를 제공 받는 클라이언트(200)의 개수에 관계 없이, 웹 서버(100)와 프락시 서버(300)간의 하나의 TCP 퍼시스턴트 커넥션이 유지되는 것 만으로 충분하다.For example, when a data push service is provided to 10,000 clients 200, according to the related art, 10000 or equivalent number of HTTP session connections are provided between the web server 100 and 1000 clients 200 It should be maintained at all times to provide a real-time data push service. However, according to the present invention, it is sufficient that one TCP persistent connection between the web server 100 and the proxy server 300 is maintained regardless of the number of the clients 200 receiving the real-time data pushing service.

웹 서버(100)가 실시간 푸싱 데이터 푸싱 서비스 대상 클라이언트 각각과 HTTP 세션을 유지하지 않는 대신, 프락시 서버(300)는 실시간 데이터 푸싱 서비스를 제공 받고자 하는 클라이언트 각각과 TCP 퍼시스턴트 커넥션을 유지할 필요가 있다. 그러나, 이러한 부담은 웹 서버(100)가 아닌 프락시 서버(300)에 가해지는 것이고, 어플리케이션 레이어(Application Layer)의 프로토콜인 HTTP보다 하위 레이어에 속한 프로토콜인 TCP의 세션을 유지하는 것이 연산 부하 및 네트워크 부하가 절감된다. 따라서, 본 발명에 따르면, 종래 기술에 비하여 더 적은 연산량 및 네트워크 부하를 이용하여 다수의 클라이언트에 대하여 웹 기반 실시간 데이터 푸싱 서비스를 제공할 수 있다.Instead of the Web server 100 maintaining an HTTP session with each of the real-time pushing data pushing service clients, the proxy server 300 needs to maintain a TCP persistent connection with each of the clients desiring to receive the real-time data pushing service. However, this burden is applied to the proxy server 300, not to the web server 100, and maintaining the TCP session, which is a protocol belonging to the lower layer than HTTP, which is an application layer protocol, The load is reduced. Therefore, according to the present invention, it is possible to provide a web-based real-time data pushing service to a plurality of clients using a smaller amount of computation and a network load compared with the prior art.

이하, 도 3 내지 5를 참조하여 본 발명의 다른 실시예에 따른 웹 기반 실시간 데이터 푸싱 방법을 설명한다.Hereinafter, a web-based real-time data pushing method according to another embodiment of the present invention will be described with reference to FIGS.

도 3은 본 실시예에 따른 웹 기반 실시간 데이터 푸싱 방법에 따른 신호 흐름도이다.3 is a signal flow diagram according to the web-based real-time data pushing method according to the present embodiment.

먼저, 클라이언트(200)가 웹 서버(100)에 접속하여 HTTP 세션 생성을 요청하고(S100), 상기 HTTP 세션을 통하여 데이터 요청(HTTP Req) 및 데이터 수신(HTTP Res)을 할 수 있다(S102). 상기 HTTP 세션을 통한 데이터 요청 및 데이터 수신의 결과, 웹 서버(100)는 클라이언트(200)에 대한 데이터 푸싱 관련 설정을 셋팅할 수 있다. 상기 데이터 수신이 끝난 후 클라이언트(200)와 웹 서버(100) 사이의 상기 HTTP 세션은 단절된다(S104). First, the client 200 accesses the web server 100 to request an HTTP session creation (S100), and can request data (HTTP Req) and data reception (HTTP Res) through the HTTP session (S102) . As a result of the data request and the data reception through the HTTP session, the web server 100 may set the data push related setting for the client 200. [ After the data reception is completed, the HTTP session between the client 200 and the web server 100 is disconnected (S104).

클라이언트(200)와 웹 서버(100) 사이의 HTTP 세션이 단절되는 것과는 반대로, 클라이언트(200) 및 웹 서버(100) 각각은 프락시 서버(300)와 TCP 퍼시스턴트 커넥션을 유지한다(S106, S108).Each of the client 200 and the web server 100 maintains a TCP persistent connection with the proxy server 300 in contrast to the HTTP session between the client 200 and the web server 100 being disconnected (S 106, S 108) .

상기 데이터 푸싱 관련 설정에 따라 클라이언트(200)에 대한 푸시 데이터가 발생한 경우(S110), 웹 서버(100)는 푸시 개시 요청 신호를 프락시 서버(300)에 송신한다. 상기 푸시 개시 요청 신호에는 푸시 데이터를 수신할 클라이언트를 가리키는 정보, 예를 들어 클라이언트의 등록 아이디가 포함될 수 있다. 상기 푸시 개시 요청 신호에는 웹 서버(100)의 등록 아이디도 포함될 수 있다. 프락시 서버(300)는 상기 푸시 개시 요청 신호에 포함된 상기 클라이언트의 등록 아이디를 기 저장된 개체 레코드에서 조회하여 클라이언트(200)의 IP 어드레스를 얻는다(S114). 프락시 서버(300)는 상기 푸시 개시 요청 신호에 대응하는 푸시 개시 통지 신호를 클라이언트(200)에 송신한다. 상기 푸시 개시 통지 신호에는 웹 서버에 대한 정보, 예를 들어 웹 서버의 IP 어드레스 또는 URL이 포함될 수 있다.If the push data for the client 200 is generated according to the data push related setting (S110), the web server 100 transmits a push start request signal to the proxy server 300. [ The push start request signal may include information indicating a client to receive the push data, for example, a registration ID of a client. The push start request signal may also include a registration ID of the web server 100. The proxy server 300 inquires the registration ID of the client included in the push start request signal from the pre-stored object record to obtain the IP address of the client 200 (S114). The proxy server (300) transmits a push start notification signal corresponding to the push start request signal to the client (200). The push start notification signal may include information about the web server, for example, an IP address or URL of the web server.

클라이언트(200)는 상기 푸시 개시 통지 신호를 수신하여, 상기 푸시 개시 통지 신호에 포함된 웹 서버의 IP 어드레스 또는 URL을 수신자 주소로 하여 HTTP 세션 생성 요청을 웹 서버(100)에 송신하고(S118), HTTP 세션이 생성되면(S120), 상기 HTTP 세션을 이용하여 데이터 푸시 요청을 포함하는 HTTP 리퀘스트를 웹 서버(100)에 송신한다(S122). 웹 서버(100)는 HTTP 리퀘스트에 응답하여 푸시 데이터를 포함한 HTTP 리스폰스를 클라이언트(200)에 송신한다(S126).The client 200 receives the push start notification signal and transmits an HTTP session creation request to the web server 100 using the IP address or the URL of the web server included in the push start notification signal as the receiver address in operation S118, When the HTTP session is created (S120), the HTTP request including the data push request is transmitted to the web server 100 using the HTTP session (S122). The web server 100 transmits an HTTP response including the push data to the client 200 in response to the HTTP request (S126).

HTTP 리스폰스는 HTTP 리퀘스트가 있을 때에 한하여 송신된다. 즉, HTTP 리스폰스와 HTTP 리퀘스트는 일대일 대응하는 것이 일반적이다. 따라서, 푸시 데이터의 사이즈가 하나의 HTTP 리스폰스에 포함되기 어려울 정도로 큰 경우, 클라이언트(200)는 푸시 응답 신호를 포함한 HTTP 리퀘스트를 웹 서버(100)에 송신한다(S126). 웹 서버(100)는 푸시 응답 신호를 포함한 HTTP 리퀘스트 수신에 응답하여 푸시 데이터를 포함한 HTTP 리스폰스를 클라이언트(200)에 송신한다(S128). 푸시 응답 신호를 포함한 HTTP 리퀘스트의 송신 및 푸시 데이터를 포함한 HTTP 리스폰스의 송신은, 클라이언트(200)가 푸시 종료 신호를 포함한 HTTP 리스폰스를 수신(S130)할 때까지 반복된다.The HTTP response is sent only when there is an HTTP request. That is, HTTP response and HTTP request are generally in a one-to-one correspondence. Therefore, if the push data size is too large to be included in one HTTP response, the client 200 transmits an HTTP request including the push response signal to the web server 100 (S126). In response to receiving the HTTP request including the push response signal, the web server 100 transmits an HTTP response including the push data to the client 200 (S128). The transmission of the HTTP request including the push response signal and the transmission of the HTTP response including the push data are repeated until the client 200 receives the HTTP response including the push end signal (S130).

본 발명의 일 실시예에 따르면, 웹 서버(100)가 상기 푸시 데이터를 복수개의 HTTP 리스폰스에 분할 수납하여 클라이언트(200)에 송신할 수도 있다. 이하, 설명의 편의를 위하여 도 3을 참조하여 설명되는 푸시 데이터 송신 방식을 확정형 푸시(confirmed push)로 지칭하고, 도 4를 참조하여 설명되는 푸시 데이터 송신 방식을 스트림 푸시(stream push)로 지칭한다.According to an embodiment of the present invention, the web server 100 may divide the push data into a plurality of HTTP responses and transmit the push data to the client 200. Hereinafter, for convenience of explanation, the push data transmission method described with reference to FIG. 3 will be referred to as a confirmed push, and the push data transmission method described with reference to FIG. 4 will be referred to as a stream push do.

스트림 푸시에 따르면, 클라이언트(200)가 데이터 푸시 요청을 포함하는 하나의 HTTP 리퀘스트를 송신하는 것만으로도 푸시 데이터가 포함된 HTTP 리스폰스를 연속적으로 수신할 수 있다.According to the stream push, the client 200 can continuously receive the HTTP response including the push data by only transmitting one HTTP request including the data push request.

스트림 푸시에는 예를 들어 HTML5-SSE(Server Sent Events) 기술이 활용될 수 있다. 보다 자세하게는, 분할된 푸시 데이터가 포함된 메시지를 순차적으로 송신하는 이벤트가 복수 회 발생되는 메쏘드(method)가 포함된 스크립트 파일과 상기 스크립트 파일의 메쏘드를 호출하는 HTML 파일이 웹 서버(100)에 저장될 수 있고, 클라이언트(200)는 상기 HTML 파일을 다운로드 하여 웹 브라우저를 통해 실행할 수 있다. 상기 스크립트 파일에는 ContentType에 "text/event-stream"이 세팅 되는 구문이 포함됨으로써, 상기 HTML-SSE 기술이 활용된다.For stream push, for example, HTML5-SSE (Server Sent Events) technology can be utilized. More specifically, a script file including a method in which an event for sequentially sending a message containing divided push data is generated a plurality of times, and an HTML file calling a method of the script file are stored in the Web server 100 And the client 200 can download the HTML file and execute it through a web browser. In the script file, the HTML-SSE technique is utilized by including a syntax in which "text / event-stream" is set in ContentType.

본 실시예에 대해 도 4를 참조하여 보다 자세히 설명한다.This embodiment will be described in more detail with reference to Fig.

도 4에 도시된 신호 흐름도에서, 푸시 데이터가 발생하는 단계(S110)까지는 도 3을 참조하여 설명된 것과 동일하다.In the signal flow diagram shown in Fig. 4, up to step S110 in which the push data is generated is the same as described with reference to Fig.

웹 서버(100)는 푸시 데이터를 어떠한 방식으로 클라이언트(200)에 송신할 지 결정할 수 있다. 예를 들어 웹 서버(100)는 푸시 데이터의 QoS 레벨, 데이터 사이즈, 웹 서버의 연산 부하, 웹 서버에 연결된 네트워크의 대역폭 부하 중 적어도 하나를 참조하여 푸시 데이터의 송신 방식을 결정할 수 있다. 일 예로, 높은 QoS 레벨을 가지거나 데이터 사이즈가 기 지정된 한계치 이상인 경우 스트림 푸시 방식, 그렇지 않은 경우 확정형 푸시 방식을 이용하여 푸시 데이터를 송신하는 것으로 결정할 수 있다.The web server 100 can determine how to transmit the push data to the client 200. [ For example, the web server 100 may determine the transmission method of the push data by referring to at least one of the QoS level of the push data, the data size, the operation load of the web server, and the bandwidth load of the network connected to the web server. For example, it can be determined that push data is transmitted using a stream push method if the data size is higher than a predetermined threshold, or a fixed push method if not.

일 실시예에 따르면, 송신 방식을 가리키는 데이터가 푸시 개시 요청 신호 및 푸시 개시 통지에 포함될 수 있다(S113, S117). 예를 들어 확정형 푸시의 경우 "Streaming Flag = OFF", 스트림 푸시의 경우 "Streaming Flag = ON"과 같이 세팅 되어 푸시 개시 요청 신호 및 푸시 개시 통지에 포함될 수 있다.According to one embodiment, data indicating the transmission scheme may be included in the push start request signal and the push start notification (S113, S117). For example, "Streaming Flag = OFF" in the case of the determined push and "Streaming Flag = ON" in the case of the stream push may be set and included in the push start request signal and the push start notification.

클라이언트(200)는 상기 푸시 개시 통지의 수신에 응답하여 웹 서버(100)와 HTTP 세션을 설립(S118, S120)한 후, 상기 푸시 개시 통지에 포함된 "Streaming Flag" 값을 확인하고, 푸시 데이터 송신 방식이 스트림 푸시로 지정되었다면 스트림 데이터 푸시 요청을 포함하는 HTTP 리퀘스트를 웹 서버(100)에 송신하고(S123), 푸시 데이터 송신 방식이 확정형 푸시로 지정되었다면 일반 데이터 푸시 요청을 포함하는 HTTP 리퀘스트를 웹 서버(100)에 송신할 수 있다(S122).The client 200 establishes an HTTP session with the web server 100 in response to the reception of the push start notification (S118, S120), checks the "Streaming Flag" value included in the push start notification, If the transmission method is specified as stream push, the HTTP request including the stream data push request is transmitted to the web server 100 (S123). If the push data transmission method is designated as the deterministic push, the HTTP request including the general data push request To the web server 100 (S122).

웹 서버(100)는 스트림 데이터 푸시 요청을 포함하는 HTTP 리퀘스트가 수신된 경우, 도 3을 참조하여 설명된 것과는 달리 상기 푸시 데이터를 복수개의 HTTP 리스폰스에 분할 수납하여 클라이언트(200)에 송신한다(S125, S131).When the HTTP request including the stream data push request is received, the web server 100 divides the push data into a plurality of HTTP responses and transmits the push data to the client 200 (S125 , S131).

도 5를 참조하여, 본 발명의 일 실시예에 따라 클라이언트(200)와 프락시 서버(300) 사이의 TCP 퍼시스턴트 커넥션이 유지되는 것을 설명한다.5, the TCP persistent connection between the client 200 and the proxy server 300 is maintained according to an embodiment of the present invention.

먼저, 클라이언트(200)와 프락시 서버(300)가 3-way Handshaking 방식 등을 이용하여 TCP 세션을 설립한다(S200). 프락시 서버(300)는 TCP 세션 설립 과정에서 클라이언트(200)의 갱신된 IP 어드레스를 파악하고, 갱신된 IP 어드레스로 기 저장된 개체 레코드의 클라이언트(200) 관련 접속 주소 정보를 갱신한다(S201). TCP 세션 설립 과정에서 KEEP ALIVE 관련 설정 등을 이용하여 클라이언트(200)와 프락시 서버(300) 간의 TCP 세션이 최대한 오랜 시간 동안 유지되도록 할 수 있다.First, the client 200 and the proxy server 300 establish a TCP session using a 3-way handshaking method or the like (S200). The proxy server 300 recognizes the updated IP address of the client 200 in the process of establishing the TCP session and updates the connection address information related to the client 200 of the previously stored object record with the updated IP address (S201). The TCP session between the client 200 and the proxy server 300 can be maintained for a long time as long as the KEEP ALIVE related setting is used during the establishment of the TCP session.

클라이언트(200)의 위치가 이동하는 경우 핸드 오버(S202)가 발생하게 되고, 이 경우 TCP 세션이 끊긴 것을 가리키는 TCP Disconnect Event가 발생된다(S204). 핸드 오버(S202)가 없더라도 클라이언트(200)와 프락시 서버(300)간의 데이터 송수신이 장기간 부재한 것으로 인한 타임아웃에 의하여 TCP Disconnect Event가 발생될 수 있다.When the location of the client 200 moves, a handover (S202) occurs. In this case, a TCP Disconnect Event indicating that the TCP session is disconnected is generated (S204). A TCP Disconnect Event may be generated due to a timeout due to the absence of data transmission / reception between the client 200 and the proxy server 300 for a long period of time even without handover (S202).

본 발명에 따른 클라이언트(200)는 상기 TCP Disconnect Event를 감지한 후, 자동으로 프락시 서버(300)와의 TCP 재접속을 시도한다. 네트워크 사정 등으로 인하여 클라이언트(200)와 프락시 서버(300) 간의 TCP 재접속이 여의치 않은 경우에는, 클라이언트(200)의 전력 소모 절감을 위하여 재접속 사이의 시간 간격을 가변적으로 설정할 수 있다. 예를 들어 재접속 회수가 증가할수록 상기 대기 시간이 증가하도록 설정할 수 있다. 예를 들어 재접속 회수가 증가할수록 상기 대기 시간이 증가하되, 기하급수적으로 증가하도록 설정할 수 있다. 도 5에는 재접속 회수가 증가할수록 대기 시간이 2배씩 증가하는 것이 도시되어 있다(S206 내지 S216).The client 200 according to the present invention automatically attempts TCP reconnection with the proxy server 300 after detecting the TCP Disconnect Event. When the TCP reconnection between the client 200 and the proxy server 300 is not possible due to network conditions or the like, the time interval between reconnection can be variably set in order to reduce the power consumption of the client 200. [ For example, the waiting time may be set to increase as the number of times of reconnection increases. For example, as the number of times of reconnection increases, the waiting time increases, but it can be set to increase exponentially. FIG. 5 shows that the waiting time increases by two times as the number of times of reconnection increases (S206 to S216).

TCP 재접속 시도에 따라 클라이언트(200)와 프락시 서버(300) 간의 TCP 세션이 재설립 된 경우(S218), 프락시 서버(300)는 TCP 세션 재설립 과정에서 클라이언트(200)의 갱신된 IP 어드레스를 파악하고, 갱신된 IP 어드레스로 기 저장된 개체 레코드의 클라이언트(200) 관련 접속 주소 정보를 갱신함으로써, 클라이언트(200)의 최신 IP 어드레스를 항시 파악할 수 있게 된다(S220).When the TCP session between the client 200 and the proxy server 300 is reestablished in the TCP reconnection attempt in step S218, the proxy server 300 determines the updated IP address of the client 200 in the TCP session reestablishment process And updates the connection address information related to the client 200 of the object record pre-stored with the updated IP address, the latest IP address of the client 200 can always be grasped (S220).

도 6을 참조하여, 본 발명의 일 실시예에 따른 클라이언트(200)의 구성 및 동작을 설명한다. 도 6에 도시된 바와 같이, 본 실시예에 따른 클라이언트(200)는 푸시 개시 통지 수신부(204), 데이터 푸시 요청부(262) 및 푸시 데이터 수신부(264)를 포함할 수 있다. 데이터 푸시 요청부(262) 및 푸시 데이터 수신부(264)는 HTTP에 따른 데이터 송수신을 담당하는 HTTP 핸들링 모듈(206)에 포함될 수 있다.The configuration and operation of the client 200 according to an embodiment of the present invention will be described with reference to FIG. 6, the client 200 according to the present embodiment may include a push start notification reception unit 204, a data push request unit 262, and a push data reception unit 264. [ The data push requesting unit 262 and the push data receiving unit 264 may be included in the HTTP handling module 206 responsible for data transmission / reception according to HTTP.

푸시 개시 통지 수신부(204)는, 프락시 서버(300)와 TCP 퍼시스턴트 커넥션을 유지 하고, 클라이언트(200)와 HTTP 세션이 연결되어 있지 않은 웹 서버(100)의 요청에 의하여 생성된 푸시 개시 통지 신호를 프락시 서버(300)로부터 상기 TCP 퍼시스턴트 커넥션을 통하여 수신한다.The push start notification reception unit 204 maintains a TCP persistent connection with the proxy server 300 and transmits a push start notification signal generated by a request of the web server 100, From the proxy server 300 via the TCP persistent connection.

일 실시예에 따르면, 푸시 개시 통지 수신부(204)는 TCP 소켓 서비스에서 제공되는 TCP 디스커넥트 이벤트 발생을 감지하여 상기 프락시 서버와 TCP 세션 연결을 재시도하되, 상기 재시도에도 불구하고 TCP 세션 연결이 실패하는 경우, TCP 세션 연결 재시도 사이의 시간 간격을 점점 증가시키는 방식으로 상기 TCP 퍼시스턴트 커넥션을 유지할 수 있다. 푸시 개시 통지 수신부(204)는 상기 프락시 서버와 TCP 세션 연결을 재시도하되, 상기 재시도에도 불구하고 TCP 세션 연결이 실패하는 경우, TCP 세션 연결 재시도 사이의 시간 간격을 기하급수적으로 증가시키는 방식으로 상기 TCP 퍼시스턴트 커넥션을 유지할 수 있다.According to one embodiment, the push-start notification receiver 204 detects a TCP disconnect event occurrence in the TCP socket service and retries the TCP session connection with the proxy server, In case of failure, the TCP persistent connection can be maintained in such a manner as to gradually increase the time interval between TCP session connection retries. The push-start notification receiver 204 retries the TCP session connection with the proxy server, and when the TCP session connection fails despite the retry, the time interval between the TCP session connection retries is exponentially increased Lt; RTI ID = 0.0 > TCP < / RTI >

데이터 푸시 요청부(262)는 상기 푸시 개시 통지 신호의 수신에 응답하여 웹 서버(100)에 HTTP 세션 생성을 요청하고, 상기 HTTP 세션을 통해 데이터 푸시 요청을 포함하는 HTTP 리퀘스트를 송신한다.The data push request unit 262 requests the Web server 100 to generate an HTTP session in response to the reception of the push start notification signal and transmits an HTTP request including the data push request through the HTTP session.

푸시 데이터 수신부(264)는 상기 HTTP 세션을 통해 푸시 데이터를 포함하는 HTTP 리스폰스를 수신한다.The push data receiving unit 264 receives the HTTP response including the push data through the HTTP session.

일 실시예에 따르면, 푸시 데이터 수신부(264)는 HTML5-SSE(Server Sent Events) 기술을 통해 상기 HTTP 리퀘스트 송신에 대응하는 복수개의 HTTP 리스폰스를 수신할 수 있다. 상기 복수개의 HTTP 리스폰스에는 상기 푸시 데이터가 분할되어 포함되어 있다.According to one embodiment, the push data receiver 264 may receive a plurality of HTTP responses corresponding to the HTTP request transmission through HTML5-SSE (Server Sent Events) technology. The push data is divided and included in the plurality of HTTP responses.

일 실시예에 따르면, 푸시 개시 통지 수신부(204)를 통해 수신된 푸시 개시 통지에 스트림 푸시를 지정하는 데이터가 포함된 경우, 그에 응답하여 데이터 푸시 요청부(262)가 상기 HTTP 세션을 통해 스트리밍 방식 데이터 푸시 요청을 포함하는 HTTP 리퀘스트를 송신하고, 상기 HTTP 리퀘스트에 응답하여, 데이터 푸시 데이터 수신부(264)가 HTML5-SSE 기술을 통해 상기 HTTP 리퀘스트 송신에 대응하는 복수개의 HTTP 리스폰스를 수신할 수도 있다.According to one embodiment, when the push start notification received through the push start notification reception unit 204 includes data designating a stream push, the data push request unit 262 responds to the stream push method through the HTTP session The data push data receiving unit 264 may receive a plurality of HTTP responses corresponding to the HTTP request transmission through HTML5-SSE technology in response to the HTTP request.

클라이언트(200)는 상기 수신된 푸시 데이터를 처리하는 웹 클라이언트(202)를 더 포함할 수 있다. 또한, 클라이언트(200)는 상기 푸시 데이터로 구성되는 제어 명령에 의하여 제어되는 적어도 하나의 센서(208)를 더 포함할 수 있다. 이 때, 클라이언트(200)는 센서 노드 이거나 사물 인터넷(Internet of Things) 단말일 수 있다.The client 200 may further include a web client 202 for processing the received push data. In addition, the client 200 may further include at least one sensor 208 controlled by a control command composed of the push data. At this time, the client 200 may be a sensor node or an Internet of Things terminal.

도 7을 참조하여, 본 발명의 일 실시예에 따른 프락시 서버(300)의 구성 및 동작을 설명한다. 도 7에 도시된 바와 같이, 본 실시예에 따른 프락시 서버(300)는 개체 레코드 관리부(302), 푸시 개시 요청 수신부(304) 및 푸시 개시 통지부(306)를 포함할 수 있다.The configuration and operation of the proxy server 300 according to an embodiment of the present invention will be described with reference to FIG. 7, the proxy server 300 according to the present embodiment may include an entity record management unit 302, a push start request receiving unit 304, and a push start notification unit 306. [

개체 레코드 관리부(302)는 각 클라이언트(200)의 아이디 및 접속 주소 정보를 포함하는 개체 레코드를 관리한다.The entity record management unit 302 manages an entity record including an ID of each client 200 and connection address information.

일 실시예에 따르면, 특정 클라이언트와 TCP 세션이 재연결 되는 경우, 개체 레코드 관리부(302)가 상기 재연결된 TCP 세션의 상대 클라이언트에 대한 개체 레코드 내 접속 주소 정보를 갱신함으로써, 클라이언트(200)의 접속 주소 정보를 항상 최신 정보로 유지할 수 있다.According to one embodiment, when the TCP session is reconnected with a specific client, the entity record management unit 302 updates the in-object connection address information for the relative client of the reconnected TCP session, Address information can always be kept up-to-date.

푸시 개시 요청 수신부(304)는 푸시 데이터를 수신할 클라이언트(200)와의 HTTP 세션이 연결되어 있지 않은 웹 서버로부터 상기 클라이언트의 아이디를 포함하는 푸시 개시 요청 신호를 수신한다.The push start request receiving unit 304 receives a push start request signal including the ID of the client from a web server that is not connected to an HTTP session with the client 200 to receive the push data.

푸시 개시 통지부(306)는 클라이언트(200)의 아이디에 대응하는 접속 주소 정보를 상기 개체 레코드에서 조회하여 상기 클라이언트의 주소 정보를 얻고, 상기 얻어진 주소 정보를 이용하여 상기 웹 서버를 가리키는 정보를 포함하는 푸시 개시 통지 신호를 클라이언트(200)에 송신한다.The push start notification unit 306 obtains the address information of the client by inquiring connection address information corresponding to the ID of the client 200 in the entity record and includes information indicating the web server using the obtained address information To the client (200).

일 실시예에 따르면, 푸시 개시 요청 수신부(304) 및 푸시 개시 통지부(306)는 클라이언트(200)에 의하여 유지되는 TCP 퍼시스턴트 커넥션을 통해 클라이언트(200)와 통신할 수 있다.According to one embodiment, the push start request receiver 304 and the push start notifier 306 may communicate with the client 200 via a TCP persistent connection maintained by the client 200.

일 실시예에 따르면, 개체 레코드 관리부(302)가, 각 웹 서버(100)의 아이디 및 접속 주소 정보를 더 포함하는 상기 개체 레코드를 관리하고, 상기 웹 서버의 아이디는 웹 서버측 아이디 및 그에 대응하여 웹 서버(100)에 발급된 등록 아이디를 포함하고, 상기 클라이언트의 아이디는 클라이언트측 아이디 및 그에 대응하여 상기 클라이언트에 발급된 등록 아이디를 포함하고, 푸시 개시 요청 수신부(304)가 웹 서버(100)에 대하여 발급된 등록 아이디 및 상기 클라이언트에 대하여 발급된 클라이언트측 아이디를 포함하는 상기 푸시 개시 요청 신호를 수신하여 상기 등록 아이디들이 상기 개체 레코드에 포함되어 있는지 여부를 판정함으로써, 웹 서버(100) 및 클라이언트(200)에 대한 인증을 수행할 수 있다.According to one embodiment, the entity record management unit 302 manages the entity record further including the ID and connection address information of each web server 100, and the ID of the web server is a web server ID and a corresponding The ID of the client includes a client ID and a registration ID issued to the client correspondingly to the ID of the client, and the push start request receiving unit 304 includes a registration ID issued to the web server 100 ) And the push-start request signal including the client-side ID issued to the client, and judges whether or not the registration IDs are included in the object record, It is possible to perform authentication for the client 200.

도 8을 참조하여, 본 발명의 일 실시예에 따른 웹 서버(100)의 구성 및 동작을 설명한다. 도 8에 도시된 바와 같이, 본 실시예에 따른 웹 서버(100)는 푸시 개시 요청부(104), 세션 관리부(162) 및 데이터 푸시 처리부(164)를 포함할 수 있다.The configuration and operation of the web server 100 according to an embodiment of the present invention will be described with reference to FIG. 8, the web server 100 according to the present embodiment may include a push start request unit 104, a session management unit 162, and a data push processing unit 164.

푸시 개시 요청부(104)는 HTTP 세션으로 연결되지 않은 클라이언트에 송신할 푸시 데이터가 발생한 경우, 클라이언트(200)를 가리키는 정보를 포함하는 푸시 개시 요청을 상기 클라이언트와 TCP 퍼시스턴트 커넥션을 유지하는 프락시 서버에 송신한다. 푸시 데이터의 발생은 웹 서버 엔진(102)에 의하여 판정될 수 있다.When push data to be transmitted to a client that is not connected to an HTTP session occurs, the push initiation requesting unit 104 transmits a push start request including information indicating the client 200 to a proxy server (not shown) that maintains a TCP persistent connection with the client . The generation of the push data can be determined by the web server engine 102.

세션 관리부(162)는 프락시 서버(300)를 통하여 상기 푸시 개시 요청 신호를 전달받은 클라이언트(200)로부터 HTTP 세션 생성 요청이 있는 경우, 클라이언트(200)에 대한 HTTP 세션을 생성한다.When there is an HTTP session creation request from the client 200 that has received the push start request signal through the proxy server 300, the session management unit 162 creates an HTTP session for the client 200. [

데이터 푸시 처리부(164)는 상기 HTTP 세션을 통해 데이터 푸시 요청을 포함하는 HTTP 리퀘스트를 수신하면 상기 푸시 데이터를 포함하는 HTTP 리스폰스를 상기 HTTP 세션을 통해 클라이언트(200)에 송신한다.Upon receiving the HTTP request including the data push request through the HTTP session, the data push processing unit 164 transmits the HTTP response including the push data to the client 200 through the HTTP session.

일 실시예에 따르면, 푸시 개시 요청부(104)는 상기 푸시 데이터의 송신 방식을 결정하고, 결정된 푸시 데이터 송신 방식을 가리키는 정보를 상기 푸시 개시 요청에 더 포함시킬 수 있다. 이 때, 푸시 개시 요청부(104)는 HTTP 리퀘스트와 HTTP 리스폰스가 1:1 관계를 가지는 확정형 푸시(confirmed push)와 HTTP 리퀘스트와 HTTP 리스폰스가 1:N 관계를 가지는 스트림 푸시(stream push) 중 하나로 상기 푸시 데이터의 송신 방식을 결정할 수 있다. 이 때, 푸시 개시 요청부(104)는, 상기 푸시 데이터의 QoS 레벨, 데이터 사이즈, 웹 서버의 연산 부하, 웹 서버에 연결된 네트워크의 대역폭 부하 중 적어도 하나를 참조하여 푸시 데이터의 송신 방식을 결정할 수 있다.According to one embodiment, the push initiation request unit 104 may determine the transmission method of the push data, and may further include information indicating the determined push data transmission method in the push start request. At this time, the push-start request unit 104 receives a confirmed push having a 1: 1 relationship between the HTTP request and the HTTP response, and a stream push having a 1: N relationship between the HTTP request and the HTTP response It is possible to determine the transmission method of the push data. At this time, the push initiation request unit 104 may determine the transmission method of the push data by referring to at least one of the QoS level of the push data, the data size, the operation load of the web server, and the bandwidth load of the network connected to the web server have.

본 발명의 개념은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터가 읽을 수 있는 매체는 컴퓨터가 읽을 수 있는 저장 매체 및 컴퓨터가 읽을 수 있는 전송 매체를 포함할 수 있다. 상기 컴퓨터가 읽을 수 있는 저장 매체는 데이터를 저장하고, 저장된 데이터는 추후 컴퓨터 시스템에 의하여 리드(read)되는 데이터 스토리지 장치일 수 있으며, 예를 들어, ROM, RAM, CD-ROM, 자기 테이브, 플로피 디스크, 기타 옵티컬 저장 장치일 수 있다. 상기 컴퓨터가 읽을 수 있는 저장 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 각 컴퓨터가 읽을 수 있는 코드가 저장되고 실행되는 것이 분산 처리 방식에 의하여 수행되도록 할 수 있다. 상기 컴퓨터가 읽을 수 있는 전송 매체는 유무선 인터넷 접속을 통하여 반송파 또는 반송 신호(carrier wave, carrier signal)를 송신하는 것일 수 있다.The concepts of the present invention may be embodied in computer readable code on a computer readable medium. The computer-readable medium may include a computer-readable storage medium and a computer-readable transmission medium. The computer-readable storage medium may store data and the stored data may be a data storage device that is later read by a computer system. Examples of the storage medium include ROM, RAM, CD-ROM, magnetic tape, Floppy disk, or other optical storage device. The computer-readable storage medium may be distributed over a network-connected computer system so that each computer-readable code is stored and executed by a distributed processing method. The computer-readable transmission medium may be a carrier wave or carrier signal transmitted over a wired or wireless Internet connection.

이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.While the present invention has been described in connection with what is presently considered to be practical exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, You will understand. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive.

웹 서버 100
클라이언트 200
프락시 서버 300
Web server 100
Client 200
Proxy Server 300

Claims (19)

푸시 데이터를 수신할 클라이언트와의 HTTP(HyperText Transfer Protocol) 세션이 연결되어 있지 않은 웹 서버가, 상기 클라이언트를 가리키는 정보를 포함하는 푸시 개시 요청 신호를 프락시 서버에 송신하는 단계;
상기 프락시 서버가, 상기 푸시 개시 요청 신호 수신에 응답하여 상기 웹 서버를 가리키는 정보를 포함하는 푸시 개시 통지 신호를 상기 클라이언트에 송신하는 단계;
상기 클라이언트가, 상기 푸시 개시 통지 신호 수신에 응답하여 상기 웹 서버에 HTTP 세션 생성을 요청하고, 상기 HTTP 세션을 통해 데이터 푸시 요청을 포함하는 HTTP 리퀘스트를 송신하는 단계;
상기 웹 서버가, 상기 HTTP 리퀘스트에 응답하여 상기 푸시 데이터를 포함하는 HTTP 리스폰스를 상기 클라이언트에 송신하는 단계; 및
상기 푸시 데이터의 송신이 완료된 후 상기 HTTP 세션이 종료되는 단계를 포함하는,
웹(web) 기반 실시간 데이터 푸싱 방법.
Transmitting, by the proxy server, a push start request signal including information indicating the client to the web server to which the HTTP (HyperText Transfer Protocol) session with the client to receive the push data is not connected;
The proxy server sending a push start notification signal to the client in response to receiving the push start request signal, the push start notification signal including information indicating the web server;
Requesting, by the client, an HTTP session creation to the web server in response to receiving the push start notification signal, and transmitting an HTTP request including a data push request through the HTTP session;
The web server sending an HTTP response including the push data to the client in response to the HTTP request; And
And terminating the HTTP session after transmission of the push data is completed.
A method for pushing web-based real-time data.
제1 항에 있어서,
상기 푸시 개시 요청 신호 및 상기 푸시 개시 통지 신호는 HTTP의 하위 레이어의 프로토콜로 송신되는 것을 특징으로 하는,
웹 기반 실시간 데이터 푸싱 방법.
The method according to claim 1,
Wherein the push start request signal and the push start notification signal are transmitted in a protocol of a lower layer of HTTP.
Web based real time data pushing method.
제1 항에 있어서,
상기 푸시 개시 요청 신호를 프락시 서버에 송신하는 단계 이전에,
상기 클라이언트가 상기 프락시 서버와 TCP 퍼시스턴트 커넥션(Transmission Control Protocol persistent connection)을 유지하는 단계를 더 포함하는,
웹 기반 실시간 데이터 푸싱 방법.
The method according to claim 1,
Before transmitting the push start request signal to the proxy server,
Further comprising maintaining the client with a Transmission Control Protocol persistent connection with the proxy server.
Web based real time data pushing method.
제3 항에 있어서,
상기 TCP 퍼시스턴트 커넥션을 유지하는 단계는,
TCP 소켓 서비스에서 제공되는 TCP 디스커넥트 이벤트 발생을 감지하는 단계; 및
상기 감지에 응답하여 상기 프락시 서버와 TCP 세션 연결을 재시도하는 단계를 포함하되,
상기 클라이언트 전력 소모 절감을 위해 상기 TCP 세션 연결 재시도 사이의 시간 간격은 가변적인 것을 특징으로 하는,
웹 기반 실시간 데이터 푸싱 방법.
The method of claim 3,
Wherein maintaining the TCP persistent connection comprises:
Detecting the occurrence of a TCP disconnect event provided by the TCP socket service; And
Retrying a TCP session connection with the proxy server in response to the detection,
Wherein the time interval between the TCP session connection retries is variable to reduce client power consumption.
Web based real time data pushing method.
제3 항에 있어서,
상기 TCP 퍼시스턴트 커넥션을 유지하는 단계는,
상기 웹 서버, 상기 프락시 서버 및 상기 클라이언트가 TCP 오버레이 네트워크(overlay network)를 구성하도록 상기 웹 서버가 상기 프락시 서버와 TCP 퍼시스턴트 커넥션을 유지하는 단계를 포함하는,
웹 기반 실시간 데이터 푸싱 방법.
The method of claim 3,
Wherein maintaining the TCP persistent connection comprises:
Wherein the web server maintains a TCP persistent connection with the proxy server so that the web server, the proxy server, and the client configure a TCP overlay network.
Web based real time data pushing method.
제3 항에 있어서,
상기 TCP 퍼시스턴트 커넥션을 유지하는 단계 이전에,
상기 클라이언트가, 클라이언트측 아이디를 포함하는 등록 요청 신호를 상기 프락시 서버에 송신하는 단계;
상기 프락시 서버가, 상기 클라이언트측 아이디에 대응하는 등록 아이디를 발급하고, 상기 클라이언트측 아이디, 상기 발급된 등록 아이디 및 상기 클라이언트의 접속 주소 정보를 상기 클라이언트에 대한 레코드로써 기록하고, 상기 발급된 등록 아이디를 상기 클라이언트에 송신하는 단계; 및
상기 클라이언트가, 상기 클라이언트측 아이디 및 상기 등록 아이디 중 적어도 하나를 상기 웹 서버에 송신하는 단계를 더 포함하고,
상기 TCP 퍼시스턴트 커넥션을 유지하는 단계는,
상기 프락시 서버가, 상기 클라이언트로부터의 TCP 세션 연결 요청이 수신되는 경우, 상기 클라이언트의 접속 주소 정보가 갱신되었다면 상기 레코드의 접속 주소 정보도 갱신하는 단계를 포함하는,
웹 기반 실시간 데이터 푸싱 방법.
The method of claim 3,
Prior to the step of maintaining the TCP persistent connection,
The client sending a registration request signal including a client side ID to the proxy server;
The proxy server issues a registration ID corresponding to the client side ID, records the client side ID, the issued registration ID, and connection address information of the client as a record for the client, To the client; And
Further comprising the client transmitting at least one of the client side ID and the registration ID to the web server,
Wherein maintaining the TCP persistent connection comprises:
And updating the connection address information of the record if the connection address information of the client is updated when the proxy server receives the TCP session connection request from the client.
Web based real time data pushing method.
제6 항에 있어서,
상기 푸시 개시 요청 신호를 프락시 서버에 송신하는 단계는,
상기 클라이언트로부터 수신된 클라이언트측 아이디 및 상기 등록 아이디 중 하나를 포함하는 상기 푸시 개시 요청 신호를 상기 프락시 서버에 송신하는 단계를 포함하고,
상기 푸시 개시 통지 신호를 상기 클라이언트에 송신하는 단계는,
상기 웹 서버로부터 수신된 상기 푸시 개시 요청 신호에 포함된 클라이언트측 아이디 또는 등록 아이디에 대한 레코드에서 상기 클라이언트의 접속 주소 정보를 조회하는 단계; 및
상기 조회된 접속 주소 정보를 이용하여 상기 푸시 개시 통지 신호를 송신하는 단계를 포함하는,
웹 기반 실시간 데이터 푸싱 방법.
The method according to claim 6,
Wherein the transmitting the push start request signal to the proxy server comprises:
And transmitting the push start request signal including one of the client side ID and the registration ID received from the client to the proxy server,
Wherein the step of transmitting the push start notification signal to the client comprises:
Inquiring the connection address information of the client in a record of a client side ID or a registration ID included in the push start request signal received from the web server; And
And transmitting the push start notification signal using the inquired contact address information.
Web based real time data pushing method.
제6 항에 있어서,
상기 푸시 개시 통지 신호 수신에 응답하여 상기 웹 서버에 HTTP 세션 생성을 요청하고, 상기 HTTP 세션을 통해 데이터 푸시 요청을 포함하는 HTTP 리퀘스트를 상기 웹 서버에 송신하는 단계는,
상기 클라이언트측 아이디에 대응하여 발급된 등록 아이디를 수신하여 저장하는 단계; 및
상기 데이터 푸시 요청에 상기 저장된 등록 아이디를 포함시키는 단계를 포함하는,
웹 기반 실시간 데이터 푸싱 방법.
The method according to claim 6,
Requesting the web server to generate an HTTP session in response to receiving the push start notification signal and transmitting an HTTP request including a data push request through the HTTP session to the web server,
Receiving and storing a registration ID issued in response to the client side ID; And
And including the stored registration ID in the data push request.
Web based real time data pushing method.
제8 항에 있어서,
상기 HTTP 리퀘스트에 응답하여 상기 푸시 데이터를 포함하는 HTTP 리스폰스를 상기 클라이언트에 송신하는 단계는,
상기 데이터 푸시 요청에 포함된 상기 클라이언트의 등록 아이디를 이용하여 상기 클라이언트를 식별하고, 상기 클라이언트를 위한 푸시 데이터를 조회하는 단계를 포함하는,
웹 기반 실시간 데이터 푸싱 방법.
9. The method of claim 8,
Wherein the step of transmitting an HTTP response including the push data to the client in response to the HTTP request comprises:
Identifying the client using the registration ID of the client included in the data push request, and querying the push data for the client.
Web based real time data pushing method.
제1 항에 있어서,
상기 푸시 개시 요청 신호를 상기 프락시 서버에 송신하는 단계 이전에,
상기 웹 서버가 상기 프락시 서버와 TCP 퍼시스턴트 커넥션을 유지하는 단계를 더 포함하는,
웹 기반 실시간 데이터 푸싱 방법.
The method according to claim 1,
Before transmitting the push start request signal to the proxy server,
Wherein the web server maintains a TCP persistent connection with the proxy server.
Web based real time data pushing method.
제1 항에 있어서,
상기 푸시 데이터를 포함하는 HTTP 리스폰스를 상기 클라이언트에 송신하는 단계는,
상기 푸시 데이터를 HTML5-SSE(Server Sent Events) 기술을 통해 복수개의 HTTP 리스폰스에 분할 수납하여 상기 클라이언트에 송신하는 단계를 포함하는,
웹 기반 실시간 데이터 푸싱 방법.
The method according to claim 1,
Wherein the transmitting the HTTP response including the push data to the client comprises:
And transmitting the push data to the client by dividing the push data into a plurality of HTTP responses through HTML5-SSE (Server Sent Events) technology.
Web based real time data pushing method.
제1 항에 있어서,
상기 클라이언트는 TCP/IP 주소가 부여된 센서 클라이언트인 것을 특징으로 하는,
웹 기반 실시간 데이터 푸싱 방법.
The method according to claim 1,
Wherein the client is a sensor client with a TCP / IP address.
Web based real time data pushing method.
제1 항에 있어서,
상기 클라이언트는 사물 인터넷(Internet of Things) 클라이언트인 것을 특징으로 하는,
웹 기반 실시간 데이터 푸싱 방법.
The method according to claim 1,
Characterized in that the client is an Internet of Things client.
Web based real time data pushing method.
각 클라이언트의 아이디 및 접속 주소 정보를 포함하는 개체 레코드를 관리하는 개체 레코드 관리부;
푸시 데이터를 수신할 클라이언트와의 HTTP 세션이 연결되어 있지 않은 웹 서버로부터 상기 클라이언트의 아이디를 포함하는 푸시 개시 요청 신호를 수신하는 푸시 개시 요청 수신부; 및
상기 클라이언트의 아이디에 대응하는 접속 주소 정보를 상기 개체 레코드에서 조회하여 상기 클라이언트의 주소 정보를 얻고, 상기 얻어진 주소 정보를 이용하여 상기 웹 서버를 가리키는 정보를 포함하는 푸시 개시 통지 신호를 상기 클라이언트에 송신하는 푸시 개시 통지부를 포함하는,
웹 기반 실시간 데이터 푸싱 서비스용 프락시 서버.
An object record management unit for managing object records including IDs and contact address information of each client;
A push start request receiver for receiving a push start request signal including an ID of the client from a web server to which an HTTP session with a client to receive push data is not connected; And
Acquiring address information of the client by inquiring connection address information corresponding to the ID of the client in the entity record and transmitting a push start notification signal including information indicating the web server to the client using the obtained address information And a push-start notification unit for,
Proxy server for web-based real-time data push service.
제14 항에 있어서,
상기 개체 레코드 관리부는,
특정 클라이언트와 TCP 세션이 재연결되는 경우, 상기 재연결된 TCP 세션의 상대 클라이언트에 대한 개체 레코드 내 접속 주소 정보를 갱신하는,
웹 기반 실시간 데이터 푸싱 서비스용 프락시 서버.
15. The method of claim 14,
Wherein the object record management unit comprises:
When the TCP session is reconnected with a specific client, updates the connection address information in the object record for the relative client of the reconnected TCP session,
Proxy server for web-based real-time data push service.
클라이언트에 있어서,
프락시 서버와 TCP 퍼시스턴트 커넥션을 유지 하고, 상기 클라이언트와 HTTP 세션이 연결되어 있지 않은 웹 서버의 요청에 의하여 생성된 푸시 개시 통지 신호를 프락시 서버로부터 상기 TCP 퍼시스턴트 커넥션을 통하여 수신하는 푸시 개시 통지 수신부;
상기 푸시 개시 통지 신호의 수신에 응답하여 상기 웹 서버에 HTTP 세션 생성을 요청하고, 상기 HTTP 세션을 통해 데이터 푸시 요청을 포함하는 HTTP 리퀘스트를 송신하는 데이터 푸시 요청부; 및
상기 HTTP 세션을 통해 푸시 데이터를 포함하는 HTTP 리스폰스를 수신하는 푸시 데이터 수신부를 포함하는,
웹 기반 푸시 데이터 실시간 수신 기능을 지원하는 클라이언트.
In the client,
A push start notification receiver for maintaining a TCP persistent connection with the proxy server and receiving a push start notification signal generated by a request from a web server not connected to the HTTP session with the client via the TCP persistent connection from the proxy server, ;
A data push request unit for requesting the web server to generate an HTTP session in response to receiving the push start notification signal and transmitting an HTTP request including a data push request through the HTTP session; And
And a push data receiving unit for receiving an HTTP response including push data through the HTTP session.
A client that supports real-time Web-based push data reception.
제16 항에 있어서,
상기 푸시 데이터로 구성되는 제어 명령에 의하여 제어되는 적어도 하나의 센서를 더 포함하는,
웹 기반 푸시 데이터 실시간 수신 기능을 지원하는 클라이언트.
17. The method of claim 16,
Further comprising at least one sensor controlled by a control command comprised of the push data,
A client that supports real-time Web-based push data reception.
HTTP 세션으로 연결되지 않은 클라이언트에 송신할 푸시 데이터가 발생한 경우, 상기 클라이언트를 가리키는 정보를 포함하는 푸시 개시 요청을 상기 클라이언트와 TCP 퍼시스턴트 커넥션을 유지하는 프락시 서버에 송신하는 푸시 개시 요청부;
상기 프락시 서버를 통하여 상기 푸시 개시 요청 신호를 전달받은 상기 클라이언트로부터 HTTP 세션 생성 요청이 있는 경우, 상기 클라이언트에 대한 HTTP 세션을 생성하는 세션 관리부; 및
상기 HTTP 세션을 통해 데이터 푸시 요청을 포함하는 HTTP 리퀘스트를 수신하면 상기 푸시 데이터를 포함하는 HTTP 리스폰스를 상기 HTTP 세션을 통해 상기 클라이언트에 송신하는 데이터 푸시 처리부를 포함하는,
실시간 데이터 푸싱 지원 웹 서버.
A push start request unit for sending a push start request including information indicating the client to a proxy server maintaining a TCP persistent connection with the client when push data to be transmitted to a client not connected to an HTTP session occurs;
A session management unit for generating an HTTP session for the client when an HTTP session creation request is received from the client which has received the push start request signal through the proxy server; And
And a data push processing unit for, when receiving an HTTP request including a data push request through the HTTP session, transmitting an HTTP response including the push data to the client via the HTTP session.
Supports real-time data pushing web server.
HTTP 세션으로 연결되지 않은 클라이언트에 송신할 푸시 데이터가 발생한 경우, 상기 클라이언트의 아이디를 포함하는 푸시 개시 요청을 프락시 서버에 송신하는 웹 서버;
상기 클라이언트와 TCP 퍼시스턴트 커넥션으로 연결되고, 각각의 클라이언트의 아이디 및 그에 대응하는 접속 주소 정보를 포함하는 개체 레코드를 관리하며, 상기 개체 레코드를 이용하여 얻은 접속 주소 정보를 통해 푸시 개시 통지 신호를 상기 클라이언트에 전달하는 프락시 서버;
상기 프락시 서버와 TCP 퍼시스턴트 커넥션을 유지하고, 상기 푸시 개시 통지 신호의 수신에 응답하여 상기 웹 서버에 HTTP 세션 생성을 요청하고, 상기 HTTP 세션을 통해 데이터 푸시 요청을 포함하는 HTTP 리퀘스트를 송신하고, 상기 HTTP 세션을 통해 푸시 데이터를 포함하는 HTTP 리스폰스를 수신하는 클라이언트를 포함하는,
웹 기반 실시간 데이터 푸싱 시스템.
A web server for transmitting a push start request including an ID of the client to a proxy server when push data to be transmitted to a client not connected to an HTTP session occurs;
Wherein the management server manages an entity record which is connected to the client by a TCP persistent connection and includes an ID of each client and connection address information corresponding to the ID of the client and transmits a push start notification signal through the connection address information obtained using the entity record A proxy server for delivering to clients;
The method comprising: maintaining a TCP persistent connection with the proxy server; requesting the web server to generate an HTTP session in response to receiving the push start notification signal; transmitting an HTTP request including a data push request through the HTTP session; And a client receiving an HTTP response including push data over the HTTP session.
Web based real time data pushing system.
KR20130121979A 2013-10-14 2013-10-14 Web-based real time data pushing method and system thereof KR101473660B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR20130121979A KR101473660B1 (en) 2013-10-14 2013-10-14 Web-based real time data pushing method and system thereof
PCT/KR2013/010194 WO2015056833A1 (en) 2013-10-14 2013-11-11 Web-based real time data pushing method and system thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20130121979A KR101473660B1 (en) 2013-10-14 2013-10-14 Web-based real time data pushing method and system thereof

Publications (1)

Publication Number Publication Date
KR101473660B1 true KR101473660B1 (en) 2014-12-18

Family

ID=52679145

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130121979A KR101473660B1 (en) 2013-10-14 2013-10-14 Web-based real time data pushing method and system thereof

Country Status (2)

Country Link
KR (1) KR101473660B1 (en)
WO (1) WO2015056833A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101801596B1 (en) * 2015-04-07 2017-11-28 한국전자통신연구원 System and method for push notification
WO2023185796A1 (en) * 2022-03-29 2023-10-05 北京沃东天骏信息技术有限公司 Information pushing method, server, client, and storage medium

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105721631B (en) * 2016-03-28 2019-04-30 中国科学院信息工程研究所 Large-scale ip address resource application method in a kind of directed information crawl scene
US10904069B2 (en) * 2016-11-29 2021-01-26 Brother Kogyo Kabushiki Kaisha Communication apparatus executing specific process related to security
CN106850750B (en) * 2016-12-26 2020-11-10 北京五八信息技术有限公司 Method and device for pushing information in real time
CN109088918B (en) * 2018-07-18 2021-09-21 创新先进技术有限公司 Interaction method, client device and server device
CN113037834A (en) * 2021-03-05 2021-06-25 中国工商银行股份有限公司 Web page state updating method and device based on distributed instant push
CN117411933B (en) * 2023-10-16 2024-05-24 国电南瑞科技股份有限公司 Service data pushing method and system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010141851A (en) 2008-12-15 2010-06-24 Nec Corp Communications device, method, program, and communication system
KR101229858B1 (en) 2011-07-12 2013-02-15 어니컴 주식회사 Web-based system and method for sharing testing devices

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100953258B1 (en) * 2007-12-18 2010-04-16 에스케이커뮤니케이션즈 주식회사 Method, Server and System for Providing Realtime Services Based on Push Transmission through Persistent Connection
KR20090076712A (en) * 2008-01-09 2009-07-13 주식회사 대우일렉트로닉스 Firmware upgrade system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010141851A (en) 2008-12-15 2010-06-24 Nec Corp Communications device, method, program, and communication system
KR101229858B1 (en) 2011-07-12 2013-02-15 어니컴 주식회사 Web-based system and method for sharing testing devices

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101801596B1 (en) * 2015-04-07 2017-11-28 한국전자통신연구원 System and method for push notification
WO2023185796A1 (en) * 2022-03-29 2023-10-05 北京沃东天骏信息技术有限公司 Information pushing method, server, client, and storage medium

Also Published As

Publication number Publication date
WO2015056833A1 (en) 2015-04-23

Similar Documents

Publication Publication Date Title
KR101473660B1 (en) Web-based real time data pushing method and system thereof
US10404601B2 (en) Load balancing in the internet of things
JP6518747B2 (en) Neighbor discovery to support sleepy nodes
US10708376B2 (en) Message bus service directory
JP6302050B2 (en) System and method for improved discovery
EP1542409B1 (en) Protocol for multi-hop ad-hoc networks
US10708885B2 (en) Methods and nodes for enabling context-awareness in CoAP
WO2018160693A1 (en) Network service continuity without session continuity
US9596190B2 (en) Method, apparatus and system for addressing resources
CN105101456A (en) Internet of Things device trigger method, device and system
US10958712B2 (en) Enhanced reliability for information services
US20200366718A1 (en) Security information exchange between a client and a server
EP3422674A1 (en) A method of resolving a domain name by a dns server to a plurality of ip addresses based on location information of the user equipment
US10581979B2 (en) Information transmission method and apparatus
JP5794057B2 (en) Image projection apparatus and image projection program
KR101473657B1 (en) METHOD OF PROVIDING MOBILITY SERVICE FOR CoAP SERVER AND SYSTEM THEREOF
US10931596B2 (en) Method, apparatus and system for addressing resources
JP2014146876A (en) Message distribution system and message distribution method
KR101845671B1 (en) Resource discovery method and system for sensor node in the constrained network
KR102071974B1 (en) METHOD FOR SENSOR MANAGEMENT USING CoAP-BASED IoT TECHNOLOGY AND SYSTEM USING THE SAME
KR101496763B1 (en) METHOD OF PROVIDING SERVICE FOR MOVING CoAP SERVER AND SYSTEM THEREOF
KR101869154B1 (en) BEACON SERVICE PROVIDING METHOD FOR SMART DEVICES BASED ON CoAP MESSAGE
KR20220055259A (en) Interworking support device for nf service and control method thereof
KR101341490B1 (en) System for Sending Push using Compounded Method and Method Therefor
KR20150136330A (en) Method and System for Providing Group Talk among Terminals received Push Message

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20171110

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181126

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20191204

Year of fee payment: 6