KR101473660B1 - Web-based real time data pushing method and system thereof - Google Patents
Web-based real time data pushing method and system thereof Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L67/145—Termination 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
Description
본 발명은 웹 기반 실시간 데이터 푸싱 방법 및 그 시스템에 관한 것이다. 보다 자세하게는, 푸시 데이터(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.
본 발명이 해결하고자 하는 기술적 과제는 푸시 데이터를 송신하는 웹 서버와 푸시 데이터를 수신하는 클라이언트 사이의 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
클라이언트(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
클라이언트(200)는 HTTP 처리 모듈을 구비한 것이다. 일 실시예에 따르면 상기 HTTP 처리 모듈은 상기 인터넷 통신 인터페이스 및 연산 수단 중 적어도 하나를 이용하여 구성될 수 있다. 예를 들어 클라이언트(200)는 웹 브라우저(WEB BROWSER)를 구비한 것일 수 있다. 클라이언트(200)는 상기 HTTP 처리 모듈을 이용하여 웹 서버(100)에 HTTP 세션 연결 요청을 송신함으로써 웹 서버(100)와 HTTP 세션을 설립하고, 상기 HTTP 세션을 통하여 요청하는 정보가 무엇인지 가리키는 데이터를 포함하는 HTTP 리퀘스트(HTTP Request) 웹 서버(100)에 송신하고, 상기 HTTP 리퀘스트에 대한 응답인 HTTP 리스폰스(HTTP Response)를 웹 서버(100)로부터 수신한다.The
웹 서버(100)는 클라이언트(200)의 HTTP 세션 연결 요청에 응답하여 클라이언트(200)와 HTTP 세션을 설립(세션 아이디 발급 포함)하고, 상기 HTTP 세션을 통하여 HTTP 리퀘스트를 수신하며, 상기 HTTP 리퀘스트에 대한 응답인 HTTP 리스폰스를 통하여 HTML 문서 등의 데이터를 송신한다.The
웹 서버(100)는 인터넷 망과 유선 통신 수단을 통하여 연결된 것으로, 이동 클라이언트가 아닌 것이 일반적이다. 다만, 일 실시예에 따르면, 웹 서버(100)가 이동 클라이언트로 구성될 수도 있다. 웹 서버(100)가 이동 클라이언트로 구성되는 경우, 인터넷 망과 무선 통신 수단을 통하여 연결된다.The
프락시 서버(300)는 클라이언트(200) 및 웹 서버(100)와 HTTP의 하위 레이어의 프로토콜로 연결된다. 일 실시예에 따르면, 클라이언트(200) 및 웹 서버(100)의 동작에 의하여 프락시 서버(300)와 클라이언트(200) 및 웹 서버(100) 간의 트랜스포트 레이어(transport layer) 프로토콜 연결이 항시 유지될 수 있다. 예를 들어 프락시 서버(300)는 클라이언트(200) 및 웹 서버(100)와 TCP 퍼시스턴트 커넥션(TCP persistent connection)으로 연결될 수 있다.The
프락시 서버(300), 클라이언트(200) 및 웹 서버(100)는 상기 TCP 퍼시스턴트 커넥션으로 구성된 오버레이 네트워크(overlay network)를 구성함으로써 신속하게 데이터를 송수신 할 수 있다. 이 때, 프락시 서버(300)는 클라이언트(200)와 웹 서버(100) 간의 P2P 오버레이 네트워크가 구성되도록 하기 위한 오버레이 네트워크 라우팅 장비인 것으로 이해될 수 있을 것이다. 즉, 프락시 서버(300)는 웹 서버(100)로부터 수신된 푸시 개시 요청을 클라이언트로 신속하게 메시지 릴레이(relay) 할 수 있다.The
본 명세서에서 언급되는 상기 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
이하, 본 실시예에 따른 웹 기반 실시간 데이터 푸싱 시스템(10)의 동작을 설명한다.Hereinafter, the operation of the web-based real-time
먼저, 프락시 서버(300)가 웹 서버(100) 및 클라이언트(200)를 각각의 등록 아이디로 식별하기 위하여, 웹 서버(100) 및 클라이언트(200) 각각은 푸시 서비스 이용을 위한 등록 절차를 수행한다. 상기 등록 절차를 도 2를 참조하여 설명한다.First, in order for the
웹 서버(100)의 상기 등록 절차는 웹 서버(100)가 웹 서버(100)의 웹 서버측 아이디를 포함하는 등록 요청을 프락시 서버(300)에 송신하는 단계와, 프락시 서버(300)가 상기 등록 요청 수신에 응답하여 상기 웹 서버측 아이디에 대응하는 등록 아이디를 발급하는 단계와, 상기 발급된 등록 아이디, 웹 서버(100)의 접속 주소 정보, 웹 서버측 아이디를 포함하는 개체 레코드(30)를 저장하는 단계를 포함할 수 있다. 웹 서버(100)의 접속 주소 정보는 상기 등록 요청에 포함될 수도 있으나, 상기 등록 요청 신호의 헤더에서 추출될 수도 있다. 예를 들어, 웹 서버(100)의 접속 주소 정보가 URL(Uniform Resource Locator)인 경우, 상기 URL은 상기 등록 요청에 포함될 것이고, 웹 서버(100)의 접속 주소 정보가 IP 어드레스인 경우, 상기 IP 어드레스는 상기 등록 요청 신호의 헤더 부분에 포함되어 있을 것이다.The registration procedure of the
클라이언트(200)의 상기 등록 절차는 클라이언트(200)가 클라이언트(200)의 접속 주소 정보(예를 들어 IP 어드레스) 및 클라이언트측 아이디를 포함하는 등록 요청을 프락시 서버(300)에 송신하는 단계와, 프락시 서버(300)가 상기 등록 요청 수신에 응답하여 상기 클라이언트측 아이디에 대응하는 등록 아이디를 발급하는 단계와, 상기 발급된 등록 아이디, 상기 등록 요청에 포함된 TCP/IP 접속 주소 정보, 클라이언트측 아이디를 포함하는 개체 레코드(30)를 저장하는 단계를 포함할 수 있다. 클라이언트(200)의 접속 주소 정보는 상기 등록 요청에 포함될 수도 있으나, 상기 등록 요청 신호의 헤더에서 추출될 수도 있다.The registration procedure of the
다시 도 1으로 돌아와서, 웹 기반 실시간 데이터 푸싱 시스템(10)의 동작을 설명한다. HTTP 세션으로 연결되지 않은 소정의 클라이언트(200)에 송신할 푸시 데이터가 발생한 경우, 웹 서버(100)는 푸시 개시 요청 신호를 프락시 서버(300)에 송신한다. 상기 푸시 데이터를 수신할 클라이언트(200)는, 푸시 데이터 발생 시점에는 웹 서버(100)와 HTTP 세션으로 연결되어 있지 않더라도 그 이전 시점에 적어도 한번 웹 서버(100)와 HTTP 세션으로 연결되어 데이터를 제공 받은 이력이 있는 장치이다.Referring back to FIG. 1, the operation of the web-based real-time
상기 푸시 개시 요청 신호에는 클라이언트(200)를 가리키는 정보가 포함될 수 있다. 상기 클라이언트(200)를 가리키는 정보는 예를 들어 클라이언트(200)의 아이디일 수 있다. 상기 클라이언트(200)의 아이디는 프락시 서버(300)에서 관리하는 클라이언트(200)의 등록 아이디일 수 있다. 상기 푸시 개시 요청에는 웹 서버(100)를 가리키는 정보도 포함될 수 있다. 상기 웹 서버(100)를 가리키는 정보는 예를 들어 웹 서버(100)의 아이디일 수 있다. 상기 웹 서버(100)의 아이디는 프락시 서버(300)에서 관리하는 웹 서버(100)의 등록 아이디 일 수 있다.The push start request signal may include information indicating the
프락시 서버(300)는 상기 푸시 개시 요청 신호에 포함된 클라이언트(200)를 가리키는 정보에 대응하는 클라이언트(200)의 접속 주소 정보, 예를 들어 IP 어드레스를 기 저장된 상기 개체 레코드에서 조회한다. 프락시 서버(300)는 조회된 클라이언트(200)의 접속 주소 정보를 이용하여 상기 푸시 개시 요청 신호에 따른 푸시 개시 통지 신호를 클라이언트(200)에 송신한다.The
클라이언트(200)는 프락시 서버(300)와 TCP 퍼시스턴트 커넥션을 유지하고, 상기 푸시 개시 통지 신호의 수신에 응답하여 웹 서버(100)에 HTTP 세션 생성을 요청하고, 상기 HTTP 세션을 통해 데이터 푸시 요청을 포함하는 HTTP 리퀘스트를 송신하고, 상기 HTTP 세션을 통해 푸시 데이터를 포함하는 HTTP 리스폰스를 수신한다.The
한편, 클라이언트(200)의 위치가 이동함에 다라 핸드오버가 발생하고, 상기 핸드오버에 의하여 클라이언트의 접속 주소 예를 들어 IP 어드레스가 변경될 수 있다. 이러한 경우 TCP 디스커넥트 이벤트가 발생한다. 클라이언트(200)는 상기 TCP 디스커넥트 이벤트 발생을 감지하여 프락시 서버(300)와 TCP 세션 연결을 자동으로 재시도 한다.Meanwhile, the handover occurs due to the movement of the location of the
프락시 서버(300)와 TCP 세션 연결이 이뤄지면, 프락시 서버(300)가 그 과정에서 클라이언트(200)의 갱신된 IP 어드레스를 파악할 수 있다. 프락시 서버(300)는 클라이언트(200)의 갱신된 IP 어드레스로 상기 개체 레코드의 클라이언트 접속 주소 정보를 갱신함으로써, 상기 개체 레코드의 접속 주소 정보가 항상 최신 상태로 유지되도록 관리할 수 있다. 따라서, 웹 서버(100)는 데이터 푸싱을 위해 클라이언트(200)의 최신 접속 주소 정보를 관리할 필요가 없고, 이러한 작업은 프락시 서버(300)가 대신 수행하게 된다.When the TCP session connection is established with the
상기 설명한 바와 같이, 웹 서버(100)는 데이터 푸싱을 위해 클라이언트(200)와 HTTP 세션을 유지할 필요가 없다. 그 대신, 웹 서버(100)는 프락시 서버(300)와 TCP 퍼시스턴트 커넥션을 유지하기만 하면 된다.As described above, the
푸시 데이터가 발생하면, 웹 서버(100)는 프락시 서버(300)에 푸시 개시 요청을 송신하고, 상기 푸시 개시 요청 송신을 트리거 신호(trigger signal)로 하여, 클라이언트(200)의 웹 서버(100)에 대한 HTTP 세션 연결 요청 및 상기 HTTP 세션을 통한 푸시 데이터 송신 요청이 수행된다.When the push data is generated, the
예를 들어, 10000 대의 클라이언트(200)에 대하여 데이터 푸싱 서비스를 제공하는 경우, 종래 기술에 따르면 10000 개 혹은 그에 상응하는 숫자의 HTTP 세션 연결이 웹 서버(100)와 1000 대의 클라이언트(200) 사이에 항시 유지되어야 실시간 데이터 푸싱 서비스를 제공할 수 있을 것이다. 그러나 본 발명에 따르면, 실시간 데이터 푸싱 서비스를 제공 받는 클라이언트(200)의 개수에 관계 없이, 웹 서버(100)와 프락시 서버(300)간의 하나의 TCP 퍼시스턴트 커넥션이 유지되는 것 만으로 충분하다.For example, when a data push service is provided to 10,000
웹 서버(100)가 실시간 푸싱 데이터 푸싱 서비스 대상 클라이언트 각각과 HTTP 세션을 유지하지 않는 대신, 프락시 서버(300)는 실시간 데이터 푸싱 서비스를 제공 받고자 하는 클라이언트 각각과 TCP 퍼시스턴트 커넥션을 유지할 필요가 있다. 그러나, 이러한 부담은 웹 서버(100)가 아닌 프락시 서버(300)에 가해지는 것이고, 어플리케이션 레이어(Application Layer)의 프로토콜인 HTTP보다 하위 레이어에 속한 프로토콜인 TCP의 세션을 유지하는 것이 연산 부하 및 네트워크 부하가 절감된다. 따라서, 본 발명에 따르면, 종래 기술에 비하여 더 적은 연산량 및 네트워크 부하를 이용하여 다수의 클라이언트에 대하여 웹 기반 실시간 데이터 푸싱 서비스를 제공할 수 있다.Instead of the
이하, 도 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
클라이언트(200)와 웹 서버(100) 사이의 HTTP 세션이 단절되는 것과는 반대로, 클라이언트(200) 및 웹 서버(100) 각각은 프락시 서버(300)와 TCP 퍼시스턴트 커넥션을 유지한다(S106, S108).Each of the
상기 데이터 푸싱 관련 설정에 따라 클라이언트(200)에 대한 푸시 데이터가 발생한 경우(S110), 웹 서버(100)는 푸시 개시 요청 신호를 프락시 서버(300)에 송신한다. 상기 푸시 개시 요청 신호에는 푸시 데이터를 수신할 클라이언트를 가리키는 정보, 예를 들어 클라이언트의 등록 아이디가 포함될 수 있다. 상기 푸시 개시 요청 신호에는 웹 서버(100)의 등록 아이디도 포함될 수 있다. 프락시 서버(300)는 상기 푸시 개시 요청 신호에 포함된 상기 클라이언트의 등록 아이디를 기 저장된 개체 레코드에서 조회하여 클라이언트(200)의 IP 어드레스를 얻는다(S114). 프락시 서버(300)는 상기 푸시 개시 요청 신호에 대응하는 푸시 개시 통지 신호를 클라이언트(200)에 송신한다. 상기 푸시 개시 통지 신호에는 웹 서버에 대한 정보, 예를 들어 웹 서버의 IP 어드레스 또는 URL이 포함될 수 있다.If the push data for the
클라이언트(200)는 상기 푸시 개시 통지 신호를 수신하여, 상기 푸시 개시 통지 신호에 포함된 웹 서버의 IP 어드레스 또는 URL을 수신자 주소로 하여 HTTP 세션 생성 요청을 웹 서버(100)에 송신하고(S118), HTTP 세션이 생성되면(S120), 상기 HTTP 세션을 이용하여 데이터 푸시 요청을 포함하는 HTTP 리퀘스트를 웹 서버(100)에 송신한다(S122). 웹 서버(100)는 HTTP 리퀘스트에 응답하여 푸시 데이터를 포함한 HTTP 리스폰스를 클라이언트(200)에 송신한다(S126).The
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
본 발명의 일 실시예에 따르면, 웹 서버(100)가 상기 푸시 데이터를 복수개의 HTTP 리스폰스에 분할 수납하여 클라이언트(200)에 송신할 수도 있다. 이하, 설명의 편의를 위하여 도 3을 참조하여 설명되는 푸시 데이터 송신 방식을 확정형 푸시(confirmed push)로 지칭하고, 도 4를 참조하여 설명되는 푸시 데이터 송신 방식을 스트림 푸시(stream push)로 지칭한다.According to an embodiment of the present invention, the
스트림 푸시에 따르면, 클라이언트(200)가 데이터 푸시 요청을 포함하는 하나의 HTTP 리퀘스트를 송신하는 것만으로도 푸시 데이터가 포함된 HTTP 리스폰스를 연속적으로 수신할 수 있다.According to the stream push, the
스트림 푸시에는 예를 들어 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
본 실시예에 대해 도 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
일 실시예에 따르면, 송신 방식을 가리키는 데이터가 푸시 개시 요청 신호 및 푸시 개시 통지에 포함될 수 있다(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
웹 서버(100)는 스트림 데이터 푸시 요청을 포함하는 HTTP 리퀘스트가 수신된 경우, 도 3을 참조하여 설명된 것과는 달리 상기 푸시 데이터를 복수개의 HTTP 리스폰스에 분할 수납하여 클라이언트(200)에 송신한다(S125, S131).When the HTTP request including the stream data push request is received, the
도 5를 참조하여, 본 발명의 일 실시예에 따라 클라이언트(200)와 프락시 서버(300) 사이의 TCP 퍼시스턴트 커넥션이 유지되는 것을 설명한다.5, the TCP persistent connection between the
먼저, 클라이언트(200)와 프락시 서버(300)가 3-way Handshaking 방식 등을 이용하여 TCP 세션을 설립한다(S200). 프락시 서버(300)는 TCP 세션 설립 과정에서 클라이언트(200)의 갱신된 IP 어드레스를 파악하고, 갱신된 IP 어드레스로 기 저장된 개체 레코드의 클라이언트(200) 관련 접속 주소 정보를 갱신한다(S201). TCP 세션 설립 과정에서 KEEP ALIVE 관련 설정 등을 이용하여 클라이언트(200)와 프락시 서버(300) 간의 TCP 세션이 최대한 오랜 시간 동안 유지되도록 할 수 있다.First, the
클라이언트(200)의 위치가 이동하는 경우 핸드 오버(S202)가 발생하게 되고, 이 경우 TCP 세션이 끊긴 것을 가리키는 TCP Disconnect Event가 발생된다(S204). 핸드 오버(S202)가 없더라도 클라이언트(200)와 프락시 서버(300)간의 데이터 송수신이 장기간 부재한 것으로 인한 타임아웃에 의하여 TCP Disconnect Event가 발생될 수 있다.When the location of the
본 발명에 따른 클라이언트(200)는 상기 TCP Disconnect Event를 감지한 후, 자동으로 프락시 서버(300)와의 TCP 재접속을 시도한다. 네트워크 사정 등으로 인하여 클라이언트(200)와 프락시 서버(300) 간의 TCP 재접속이 여의치 않은 경우에는, 클라이언트(200)의 전력 소모 절감을 위하여 재접속 사이의 시간 간격을 가변적으로 설정할 수 있다. 예를 들어 재접속 회수가 증가할수록 상기 대기 시간이 증가하도록 설정할 수 있다. 예를 들어 재접속 회수가 증가할수록 상기 대기 시간이 증가하되, 기하급수적으로 증가하도록 설정할 수 있다. 도 5에는 재접속 회수가 증가할수록 대기 시간이 2배씩 증가하는 것이 도시되어 있다(S206 내지 S216).The
TCP 재접속 시도에 따라 클라이언트(200)와 프락시 서버(300) 간의 TCP 세션이 재설립 된 경우(S218), 프락시 서버(300)는 TCP 세션 재설립 과정에서 클라이언트(200)의 갱신된 IP 어드레스를 파악하고, 갱신된 IP 어드레스로 기 저장된 개체 레코드의 클라이언트(200) 관련 접속 주소 정보를 갱신함으로써, 클라이언트(200)의 최신 IP 어드레스를 항시 파악할 수 있게 된다(S220).When the TCP session between the
도 6을 참조하여, 본 발명의 일 실시예에 따른 클라이언트(200)의 구성 및 동작을 설명한다. 도 6에 도시된 바와 같이, 본 실시예에 따른 클라이언트(200)는 푸시 개시 통지 수신부(204), 데이터 푸시 요청부(262) 및 푸시 데이터 수신부(264)를 포함할 수 있다. 데이터 푸시 요청부(262) 및 푸시 데이터 수신부(264)는 HTTP에 따른 데이터 송수신을 담당하는 HTTP 핸들링 모듈(206)에 포함될 수 있다.The configuration and operation of the
푸시 개시 통지 수신부(204)는, 프락시 서버(300)와 TCP 퍼시스턴트 커넥션을 유지 하고, 클라이언트(200)와 HTTP 세션이 연결되어 있지 않은 웹 서버(100)의 요청에 의하여 생성된 푸시 개시 통지 신호를 프락시 서버(300)로부터 상기 TCP 퍼시스턴트 커넥션을 통하여 수신한다.The push start
일 실시예에 따르면, 푸시 개시 통지 수신부(204)는 TCP 소켓 서비스에서 제공되는 TCP 디스커넥트 이벤트 발생을 감지하여 상기 프락시 서버와 TCP 세션 연결을 재시도하되, 상기 재시도에도 불구하고 TCP 세션 연결이 실패하는 경우, TCP 세션 연결 재시도 사이의 시간 간격을 점점 증가시키는 방식으로 상기 TCP 퍼시스턴트 커넥션을 유지할 수 있다. 푸시 개시 통지 수신부(204)는 상기 프락시 서버와 TCP 세션 연결을 재시도하되, 상기 재시도에도 불구하고 TCP 세션 연결이 실패하는 경우, TCP 세션 연결 재시도 사이의 시간 간격을 기하급수적으로 증가시키는 방식으로 상기 TCP 퍼시스턴트 커넥션을 유지할 수 있다.According to one embodiment, the push-
데이터 푸시 요청부(262)는 상기 푸시 개시 통지 신호의 수신에 응답하여 웹 서버(100)에 HTTP 세션 생성을 요청하고, 상기 HTTP 세션을 통해 데이터 푸시 요청을 포함하는 HTTP 리퀘스트를 송신한다.The data push
푸시 데이터 수신부(264)는 상기 HTTP 세션을 통해 푸시 데이터를 포함하는 HTTP 리스폰스를 수신한다.The push
일 실시예에 따르면, 푸시 데이터 수신부(264)는 HTML5-SSE(Server Sent Events) 기술을 통해 상기 HTTP 리퀘스트 송신에 대응하는 복수개의 HTTP 리스폰스를 수신할 수 있다. 상기 복수개의 HTTP 리스폰스에는 상기 푸시 데이터가 분할되어 포함되어 있다.According to one embodiment, the
일 실시예에 따르면, 푸시 개시 통지 수신부(204)를 통해 수신된 푸시 개시 통지에 스트림 푸시를 지정하는 데이터가 포함된 경우, 그에 응답하여 데이터 푸시 요청부(262)가 상기 HTTP 세션을 통해 스트리밍 방식 데이터 푸시 요청을 포함하는 HTTP 리퀘스트를 송신하고, 상기 HTTP 리퀘스트에 응답하여, 데이터 푸시 데이터 수신부(264)가 HTML5-SSE 기술을 통해 상기 HTTP 리퀘스트 송신에 대응하는 복수개의 HTTP 리스폰스를 수신할 수도 있다.According to one embodiment, when the push start notification received through the push start
클라이언트(200)는 상기 수신된 푸시 데이터를 처리하는 웹 클라이언트(202)를 더 포함할 수 있다. 또한, 클라이언트(200)는 상기 푸시 데이터로 구성되는 제어 명령에 의하여 제어되는 적어도 하나의 센서(208)를 더 포함할 수 있다. 이 때, 클라이언트(200)는 센서 노드 이거나 사물 인터넷(Internet of Things) 단말일 수 있다.The
도 7을 참조하여, 본 발명의 일 실시예에 따른 프락시 서버(300)의 구성 및 동작을 설명한다. 도 7에 도시된 바와 같이, 본 실시예에 따른 프락시 서버(300)는 개체 레코드 관리부(302), 푸시 개시 요청 수신부(304) 및 푸시 개시 통지부(306)를 포함할 수 있다.The configuration and operation of the
개체 레코드 관리부(302)는 각 클라이언트(200)의 아이디 및 접속 주소 정보를 포함하는 개체 레코드를 관리한다.The entity
일 실시예에 따르면, 특정 클라이언트와 TCP 세션이 재연결 되는 경우, 개체 레코드 관리부(302)가 상기 재연결된 TCP 세션의 상대 클라이언트에 대한 개체 레코드 내 접속 주소 정보를 갱신함으로써, 클라이언트(200)의 접속 주소 정보를 항상 최신 정보로 유지할 수 있다.According to one embodiment, when the TCP session is reconnected with a specific client, the entity
푸시 개시 요청 수신부(304)는 푸시 데이터를 수신할 클라이언트(200)와의 HTTP 세션이 연결되어 있지 않은 웹 서버로부터 상기 클라이언트의 아이디를 포함하는 푸시 개시 요청 신호를 수신한다.The push start
푸시 개시 통지부(306)는 클라이언트(200)의 아이디에 대응하는 접속 주소 정보를 상기 개체 레코드에서 조회하여 상기 클라이언트의 주소 정보를 얻고, 상기 얻어진 주소 정보를 이용하여 상기 웹 서버를 가리키는 정보를 포함하는 푸시 개시 통지 신호를 클라이언트(200)에 송신한다.The push
일 실시예에 따르면, 푸시 개시 요청 수신부(304) 및 푸시 개시 통지부(306)는 클라이언트(200)에 의하여 유지되는 TCP 퍼시스턴트 커넥션을 통해 클라이언트(200)와 통신할 수 있다.According to one embodiment, the push
일 실시예에 따르면, 개체 레코드 관리부(302)가, 각 웹 서버(100)의 아이디 및 접속 주소 정보를 더 포함하는 상기 개체 레코드를 관리하고, 상기 웹 서버의 아이디는 웹 서버측 아이디 및 그에 대응하여 웹 서버(100)에 발급된 등록 아이디를 포함하고, 상기 클라이언트의 아이디는 클라이언트측 아이디 및 그에 대응하여 상기 클라이언트에 발급된 등록 아이디를 포함하고, 푸시 개시 요청 수신부(304)가 웹 서버(100)에 대하여 발급된 등록 아이디 및 상기 클라이언트에 대하여 발급된 클라이언트측 아이디를 포함하는 상기 푸시 개시 요청 신호를 수신하여 상기 등록 아이디들이 상기 개체 레코드에 포함되어 있는지 여부를 판정함으로써, 웹 서버(100) 및 클라이언트(200)에 대한 인증을 수행할 수 있다.According to one embodiment, the entity
도 8을 참조하여, 본 발명의 일 실시예에 따른 웹 서버(100)의 구성 및 동작을 설명한다. 도 8에 도시된 바와 같이, 본 실시예에 따른 웹 서버(100)는 푸시 개시 요청부(104), 세션 관리부(162) 및 데이터 푸시 처리부(164)를 포함할 수 있다.The configuration and operation of the
푸시 개시 요청부(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
세션 관리부(162)는 프락시 서버(300)를 통하여 상기 푸시 개시 요청 신호를 전달받은 클라이언트(200)로부터 HTTP 세션 생성 요청이 있는 경우, 클라이언트(200)에 대한 HTTP 세션을 생성한다.When there is an HTTP session creation request from the
데이터 푸시 처리부(164)는 상기 HTTP 세션을 통해 데이터 푸시 요청을 포함하는 HTTP 리퀘스트를 수신하면 상기 푸시 데이터를 포함하는 HTTP 리스폰스를 상기 HTTP 세션을 통해 클라이언트(200)에 송신한다.Upon receiving the HTTP request including the data push request through the HTTP session, the data
일 실시예에 따르면, 푸시 개시 요청부(104)는 상기 푸시 데이터의 송신 방식을 결정하고, 결정된 푸시 데이터 송신 방식을 가리키는 정보를 상기 푸시 개시 요청에 더 포함시킬 수 있다. 이 때, 푸시 개시 요청부(104)는 HTTP 리퀘스트와 HTTP 리스폰스가 1:1 관계를 가지는 확정형 푸시(confirmed push)와 HTTP 리퀘스트와 HTTP 리스폰스가 1:N 관계를 가지는 스트림 푸시(stream push) 중 하나로 상기 푸시 데이터의 송신 방식을 결정할 수 있다. 이 때, 푸시 개시 요청부(104)는, 상기 푸시 데이터의 QoS 레벨, 데이터 사이즈, 웹 서버의 연산 부하, 웹 서버에 연결된 네트워크의 대역폭 부하 중 적어도 하나를 참조하여 푸시 데이터의 송신 방식을 결정할 수 있다.According to one embodiment, the push
본 발명의 개념은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터가 읽을 수 있는 매체는 컴퓨터가 읽을 수 있는 저장 매체 및 컴퓨터가 읽을 수 있는 전송 매체를 포함할 수 있다. 상기 컴퓨터가 읽을 수 있는 저장 매체는 데이터를 저장하고, 저장된 데이터는 추후 컴퓨터 시스템에 의하여 리드(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
Claims (19)
상기 프락시 서버가, 상기 푸시 개시 요청 신호 수신에 응답하여 상기 웹 서버를 가리키는 정보를 포함하는 푸시 개시 통지 신호를 상기 클라이언트에 송신하는 단계;
상기 클라이언트가, 상기 푸시 개시 통지 신호 수신에 응답하여 상기 웹 서버에 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.
상기 푸시 개시 요청 신호 및 상기 푸시 개시 통지 신호는 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.
상기 푸시 개시 요청 신호를 프락시 서버에 송신하는 단계 이전에,
상기 클라이언트가 상기 프락시 서버와 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.
상기 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.
상기 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.
상기 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.
상기 푸시 개시 요청 신호를 프락시 서버에 송신하는 단계는,
상기 클라이언트로부터 수신된 클라이언트측 아이디 및 상기 등록 아이디 중 하나를 포함하는 상기 푸시 개시 요청 신호를 상기 프락시 서버에 송신하는 단계를 포함하고,
상기 푸시 개시 통지 신호를 상기 클라이언트에 송신하는 단계는,
상기 웹 서버로부터 수신된 상기 푸시 개시 요청 신호에 포함된 클라이언트측 아이디 또는 등록 아이디에 대한 레코드에서 상기 클라이언트의 접속 주소 정보를 조회하는 단계; 및
상기 조회된 접속 주소 정보를 이용하여 상기 푸시 개시 통지 신호를 송신하는 단계를 포함하는,
웹 기반 실시간 데이터 푸싱 방법.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.
상기 푸시 개시 통지 신호 수신에 응답하여 상기 웹 서버에 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.
상기 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.
상기 푸시 개시 요청 신호를 상기 프락시 서버에 송신하는 단계 이전에,
상기 웹 서버가 상기 프락시 서버와 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.
상기 푸시 데이터를 포함하는 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.
상기 클라이언트는 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.
상기 클라이언트는 사물 인터넷(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.
상기 개체 레코드 관리부는,
특정 클라이언트와 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.
상기 푸시 데이터로 구성되는 제어 명령에 의하여 제어되는 적어도 하나의 센서를 더 포함하는,
웹 기반 푸시 데이터 실시간 수신 기능을 지원하는 클라이언트.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 세션 생성 요청이 있는 경우, 상기 클라이언트에 대한 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.
상기 클라이언트와 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.
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)
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)
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)
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)
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 |
-
2013
- 2013-10-14 KR KR20130121979A patent/KR101473660B1/en active IP Right Grant
- 2013-11-11 WO PCT/KR2013/010194 patent/WO2015056833A1/en active Application Filing
Patent Citations (2)
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)
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 |