WO2015056833A1 - 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
WO2015056833A1
WO2015056833A1 PCT/KR2013/010194 KR2013010194W WO2015056833A1 WO 2015056833 A1 WO2015056833 A1 WO 2015056833A1 KR 2013010194 W KR2013010194 W KR 2013010194W WO 2015056833 A1 WO2015056833 A1 WO 2015056833A1
Authority
WO
WIPO (PCT)
Prior art keywords
client
push
http
data
web
Prior art date
Application number
PCT/KR2013/010194
Other languages
French (fr)
Inventor
Jong Tae Park
Original Assignee
Kyungpook National University Industry-Academic Cooperation Foundation
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 Kyungpook National University Industry-Academic Cooperation Foundation filed Critical Kyungpook National University Industry-Academic Cooperation Foundation
Publication of WO2015056833A1 publication Critical patent/WO2015056833A1/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

Definitions

  • the present invention relates to a web-based real time data pushing method and a system thereof. More particularly, the present invention relates to a method in which a web server transmits push data to a client in real time even when a hypertext transfer protocol session between a web server which transmits the push data and a client which receives the push data is not connected and a system thereof.
  • a web push technology refers to technology in that a web server actively starts to send a message to a web client, that is, a web browser.
  • the web push technology is an essential technology in which applicable ranges from a typical messenger/chatting service and video transmission to the Internet of things (IoT) in recent years have become various as the Internet is developed.
  • the web technology is performed such that a web client uses a HTTP protocol such as Get, Post, or Put to request data in the web server and the server responses thereto. Therefore, basically, the web technology does not provide a push function which sends data from the server to the client.
  • a web push technology such as polling, long-polling, or streaming, which imitates the push function, in the server is developed.
  • the client periodically requests the server in order to get data and if the number of clients is large, a large load is applied to the server and no real time push function is provided.
  • the long polling method a response to a request of a client is held until an event occurs and when the event occurs, the event is carried on the response and the client issues a request again after receiving the response.
  • less data traffic is caused as compared with a polling method.
  • the streaming method is basically similar to the long-polling method but is different from the long-polling method in that a plurality of events may be sent from the server to the client at once.
  • W3C standardized a comet, which uses the streaming method, to announce an HTML5 SSE (server-sent events).
  • the service is available only when the client is connected to the server so that there is a problem in scalability. This is because in order to provide the push function, web browsers of large number of clients need to be connected to a web server all the time.
  • the server cannot transmit data to the client through the push so that the push data cannot be transmitted to the client as soon as the push data is generated.
  • the Internet of things refers to a next generation Internet technology which assigns the Internet address to all objects to provide not only communication between people, but also Internet service between people and an object and between objects.
  • One of characteristics of the Internet of things is that a large amount of sensors are connected through a wireless Internet to autonomously perform a specific task. Some of the sensors are fixed to a specific location but others may have a movable property.
  • a sensor node which has a movable property needs to be connected to a mobile Internet environment. Such a sensor node repeats handover as a location thereof is changed and an IP address of the sensor node may be changed as the hand over is generated. Therefore, the web server cannot easily check the IP address of the mobile client so that it is hard to perform a push to the client from the server.
  • the present invention has been made in an effort to provide a method in which a web server transmits push data to a client in real time even when a hypertext transfer protocol session between a web server which transmits the push data and a client which receives the push data is not connected and a system thereof.
  • the present invention has been made in an effort to further provide a web-based real time data pushing method in which the number of clients to which a real time data push service is provided has scalability and a system thereof.
  • the present invention has been made in an effort to further provide a web-based real time data pushing method which minimizes power consumption of a client which receives a web-based real time data push service and a system thereof.
  • a web-based real time data pushing method comprises, transmitting, by a web server to which a HTTP (hypertext transfer protocol) session with a client which receives push data is not connected, a push starting request signal including information indicating the client to a proxy server, transmitting, by the proxy server, a push starting notification signal including information indicating the web server to the client in response to reception of the push starting request signal, requesting, by the client, the web server to generate a HTTP session in response to reception of the push starting notification signal and transmitting a HTTP request including a data push request through the HTTP session, transmitting, by the web server, a HTTP response including the push data to the client in response to the HTTP request; and closing the HTTP session after completely transmitting the push data.
  • HTTP hypertext transfer protocol
  • a proxy server for a web-based real time data pushing service comprises, an entity record management unit which manages an entity record including an ID and connection address information of each client, a push starting request receiving unit which receives a push starting request signal including the ID of the client from a web server in which a HTTP session with a client which receives push data is not connected, and a push starting notifying unit which inquires the connection address information corresponding to the ID of the client from the entity record to obtain address information of the client and transmits a push starting notification signal, which includes information indicating the web server, to the client using the obtained address information.
  • a client which supports a web-based push data real time receiving function.
  • the client comprises, a push starting notification receiving unit which maintains TCP persistent connection with a proxy server and receives a push starting notification signal, which is generated by a request of a web server in which the HTTP session is not connected to the client, from the proxy server through the TCP persistent connection, a data push requesting unit which requests the web server to generate a HTTP session in response to reception of the push starting notification signal and transmits a HTTP request including a data push request through the HTTP session, and a push data receiving unit which receives a HTTP response including the push data through the HTTP session.
  • a real time data pushing supporting web server comprises, a push starting requesting unit which, when push data to be transmitted to a client which is not connected by a HTTP session, is generated, transmits a push starting request including information indicating the client to a proxy server which maintains TCP persistent connection with the client, a session management unit which, if there is a request to generate a HTTP session from the client which receives the push starting request signal through the proxy server, generates a HTTP session for the client, and a data push processing unit which, if a HTTP request including a data push request is received through the HTTP session, transmits a HTTP response including the push data to the client through the HTTP session.
  • a web-based real time data pushing system comprises, a web server which, when push data to be transmitted to a client which is not connected by a HTTP session is generated, transmits a push starting request including an ID of the client to a proxy server, a proxy server which is connected with the client by TCP persistent connection, manages an entity record including an ID of each client and connection address information corresponding to the ID, and transmits the push starting request to the client through the connection address information obtained using the entity record, and a client which maintains TCP persistent connection with the proxy server, requests the web server to generate a HTTP session in response to reception of the push starting notification signal, transmits a HTTP request including a data push request through the HTTP session, and receives a HTTP response including push data through the HTTP session.
  • the web server may transmit the push data to the client in real time so that the number of clients to which the data push service is provided may have scalability and a real time property which may transmit the push data to the client as soon as the push data is generated in the web server may be achieved.
  • FIG. 1 is a diagram illustrating a configuration of a web-based real time data pushing system according to an embodiment of the present invention.
  • FIG. 2 is a conceptual view illustrating when a client and a web server are registered to a proxy server according to an embodiment of the present invention.
  • FIG. 3 is a signal flowchart of a web-based real time data pushing method according to an embodiment of the present invention.
  • FIG. 4 is a signal flowchart of a web-based real time data pushing method according to an embodiment of the present invention, which is different from FIG. 3.
  • FIG. 5 is a signal flowchart illustrating that a TCP persistent connection is maintained between the client and the proxy server according to an embodiment of the present invention.
  • FIG. 6 is a block diagram of a client according to an embodiment of the present invention.
  • FIG. 7 is a block diagram of a proxy server according to an embodiment of the present invention.
  • FIG. 8 is a block diagram of a web server according to an embodiment of the present invention.
  • a web-based real time data pushing system 10 may include a client 200, a web server 100, and a proxy server 300.
  • the client 200 includes the Internet communication interface, an arithmetic unit, and a circuit or a bus which connects the Internet communication interface and the arithmetic unit.
  • the client includes at least one of a wired communication interface and a wireless communication interface which may process a TCP/IP protocol stack.
  • the client 200 may be one of mobile client devices such as a notebook computer, a personal digital assistant (PDA), a portable computer, a web tablet, a wireless phone, a mobile phone, a smart phone, an e-book, a portable multimedia player (PMP), a portable game player, a navigation device, a black box, a digital camera, a digital picture player, a digital video recorder, a digital video player, an environment measuring sensor node, a biometric sensor node, the Internet of things client, and a device which may transmit and receive information in a wireless environment.
  • PDA personal digital assistant
  • PMP portable multimedia player
  • PMP portable game player
  • navigation device a black box
  • a digital camera a digital picture player
  • a digital video recorder a digital video player
  • an environment measuring sensor node a biometric sensor node
  • the Internet of things client and a device which may transmit and receive information in a wireless environment.
  • the client 200 includes a HTTP processing module.
  • the HTTP processing module may be configured by at least one of the Internet communication interface and the arithmetic unit.
  • the client 200 may include a web browser.
  • the client 200 transmits a request of HTTP session connection to the web server 100 using the HTTP processing module to establish a HTTP session with the web server 100, transmits a HTTP request, which includes data indicating information which is requested through the HTTP session, to the web server 100 and receives a HTTP response, which is a response to the HTTP request, from the web server 100.
  • the web server 100 establishes the HTTP session with the client 200 (including issuance of a session ID) in response to the request of the HTTP session connection of the client 200, receives the HTTP request through the HTTP session and transmits data such as an HTML document through the HTTP response which is the response to the HTTP request.
  • the web server 100 is connected with the Internet network through a wired communication unit but is not generally a mobile client. However, according to an embodiment, the web server 100 may be configured by a mobile client. When the web server 100 is configured by the mobile client, the web server 100 is connected to the Internet network through a wireless communication unit.
  • the proxy server 300 is connected to the client 200 and the web server 100 by a lower layer protocol of the HTTP.
  • a transport layer protocol connection between the proxy server 300 and the client 200 and the web server 100 may be continuously maintained by the operation of the client 200 and the web server 100.
  • the proxy server 300 may be connected to the client 200 and the web server 100 by TCP persistent connection.
  • the proxy server 300, the client 200, and the web server 100 configure an overlay network, which is configured by the TCP persistent connection, so as to promptly transmit and receive the data.
  • the proxy server 300 may be understood as overlay network routing equipment which configures a P2P overlay network between the client 200 and the web server 100. That is, the proxy server 300 may promptly perform message relay of a push starting request, which is received from the web server 100, to the client.
  • the TCP persistent connection which is mentioned in the description indicates that the TCP connection is continuously maintained.
  • the TCP persistent connection may be maintained by various well-known technologies.
  • the TCP persistent connection may be maintained by preventing the TCP session from being completed due to time-out using a KEEP ALIVE related setting.
  • the TCP connection may be continuously maintained in spite of hand over due to movement of the client 200 or the web server 100 (when the web server is configured by a mobile client) and a change of an IP address accompanied with the hand over.
  • the client 200 or the web server 100 automatically establishes the disconnected TCP session again so that the TCP persistent connection may be managed to be maintained.
  • the web server 100 and the client 200 individually perform a registration procedure for using a push service so that the proxy server 300 identifies the web server 100 and the client 200 through registration IDs.
  • the registration procedure will be described with reference to FIG. 2.
  • the registration procedure of the web server 100 may include a step of transmitting, by the web server 100, a registration request including a web server side ID of the web server 100 to the proxy server 300, a step of issuing, by the proxy server 300, a registration ID corresponding to the web server side ID in response to the reception of the registration request, and a step of storing an entity record 30 including the issued registration ID, connection address information of the web server 100, and the web server side ID.
  • the connection address information of the web server 100 may be included in the registration request or extracted from a header of the registration request signal.
  • connection address information of the web server 100 is a uniform resource locator (URL)
  • the URL may be included in the registration request and if the connection address information of the web server 100 is an IP address, the IP address may be included in a header part of the registration request signal.
  • URL uniform resource locator
  • the registration procedure of the client 200 may include a step of transmitting, by the client 200, a registration request including the connection address information (for example, an IP address) of the client 200 and a client side ID to the proxy server 300, a step of issuing, by the proxy server 300, a registration ID corresponding to the client side ID in response to the reception of the registration request, and a step of storing an entity record 30 including the issued registration ID and the TCP/IP connection address information and the client side ID which are included in the registration request.
  • the connection address information of the client 200 may be included in the registration request or extracted from a header of the registration request signal.
  • the web server 100 transmits a push starting request signal to the proxy server 300.
  • the client 200 which will receive the push data is a device which is not connected to the web server 100 through the HTTP session at the time when the push data is generated, but has been previously connected to the web server 100 at least one time through the HTTP session so as to receive the data.
  • the push starting 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 which is managed by the proxy server 300.
  • the push starting 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 which is managed by the proxy server 300.
  • the proxy server 300 inquires connection address information of the client 200 corresponding to information indicating the client 200 which is included in the push starting request signal, for example, an IP address, from the entity record which is already stored.
  • the proxy server 300 transmits a push starting notification signal in accordance with the push starting request signal to the client 200, using the inquired connection address information of the client 200.
  • the client 200 maintains the TCP persistent connection with the proxy server 300, requests a HTTP session generation to the web server 100 in response to the reception of the push starting notification signal, transmits a HTTP request including the data push request through the HTTP session, and receives a HTTP response including the push data through the HTTP session.
  • TCP disconnect event occurs.
  • the client 200 detects the occurrence of the TCP disconnect event to automatically retry to connect the TCP session with the proxy server 300.
  • the proxy server 300 may grasp an updated IP address of the client 200 in the course of the connection.
  • the proxy server 300 updates the client connection address information of the entity record using the updated IP address of the client 200 so that the connection address information of the entity record is managed to be maintained in the latest state all the time. Accordingly, the web server 100 does not need to manage the latest connection address information of the client 200 for data pushing and such a task is performed by the proxy server 300 instead of the web server 100.
  • the web server 100 does not need to maintain the HTTP session with the client 200 for data pushing. Instead, the web server 100 needs to maintain only the TCP persistent connection with the proxy server 300.
  • the web server 100 transmits the push starting request to the proxy server 300 and the HTTP session connecting request of the client 200 to the web server 100 and the push data transmitting request through the HTTP session are performed using the push starting request transmission as a trigger signal.
  • the real time data pushing service may be provided.
  • one TCP persistent connection is only maintained between the web server 100 and the proxy server 300.
  • the web server 100 does not maintain the HTTP session with each of the clients which are a target of the real time data pushing service but the proxy server 300 needs to maintain the TCP persistent connection with each of the clients which desires to receive the real time data pushing service. However, such a load is applied not to the web server 100, but to the proxy server 300. If the TCP session, which is a protocol included in the lower layer than the HTTP which is a protocol of an application layer, is maintained, an operation load and a network load are reduced. Therefore, according to the present invention, it is possible to provide the web-based real time data pushing data to a plurality of clients using a reduced computational amount and a reduced network load as compared with the related art.
  • FIG. 3 is a signal flowchart of a web-based real time data pushing method according to the embodiment.
  • a client 200 may be connected to a web server 100 to request to create a HTTP session in step S100 and request data (HTTP Req) and receive data (HTTP Res) through the HTTP session in step S102.
  • the web server 100 may set a data pushing related setting for the client 200.
  • the HTTP session is disconnected between the client 200 and the web server 100 in step S104.
  • the client 200 and the web server 100 individually maintain the TCP persistent connection with a proxy server 300 in steps S106 and S108.
  • the web server 100 transmits a push starting request signal to the proxy server 300.
  • the push starting request signal may include information indicating a client which will receive the push data, for example, a registration ID of the client.
  • the push starting request signal may also include a registration ID of the web server 100.
  • the proxy server 100 inquires the registration ID of the client, which is included in the push starting request signal, from the entity record, which is already stored, to obtain the IP address of the client 200 in step S114.
  • the proxy server 300 transmits a push starting notification signal corresponding to the push starting request signal to the client 200.
  • the push starting notification signal may include information regarding the web server, for example, an IP address or an URL of the web server.
  • the client 200 receives the push starting notification signal to transmit a HTTP session generating request to the web server 100 using the IP address or the URL of the web server, which is included in the push starting notification signal, as a receiver’s address in step S118, and if the HTTP session is generated in step S120, transmits a HTTP request including the data push request using the HTTP session to the web server 100 in step S122.
  • the web server 100 transmits a HTTP response including the push data to the client 200 in response to the HTTP request in step S126.
  • the HTTP response is transmitted only when there is the HTTP request. That is, generally, the HTTP response and the HTTP request correspond to each other one to one. Accordingly, if a size of the push data is too large to be included in one HTTP response, the client 200 transmits the HTTP request including the push response signal to the web server 100 in step S126.
  • the web server 100 transmits the HTTP response including the push data to the client 200 in response to the reception of the HTTP request including the push response signal in step 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 a push closing signal in step S130.
  • the web server 100 may store the push data in a plurality of HTTP responses to be divided to transmit the push data to the client 200.
  • a push data transmitting method which will be described with reference to FIG. 3 is called as confirmed push and a push data transmitting method which will be described with reference to FIG. 4 is called as stream push.
  • the client 200 may continuously receive the HTTP response including the push data only by transmitting one HTTP request including the data push request.
  • an HTML5-SSE (server sent events) technology may be used for the stream push.
  • a script file which includes a method in which an event which sequentially transmits a message including the divided push data is generated plural times
  • an HTML file which calls a method of the script file
  • the script file includes a syntax in which “text/event-stream" is set in ContentType so that the HTML-SSE technology is used.
  • step S110 in which the push data is generated are the same as the description with reference to FIG. 3.
  • the web server 100 may determine how to transmit the push data to the client 200. For example, the web server 100 may determine a transmitting method of the push data with reference to at least one of a QoS level of the push data, a data size, an operating load of the web server, and a bandwidth load of a network which is connected to the web server. For example, when the QoS level is high or the data size is equal to or larger than a predetermined threshold value, the web server 100 may determine to transmit the push data by the stream push method and otherwise, to transmit the push data by the confirmed push method.
  • data indicating the transmitting method may be included in the push starting request signal and the push starting notification in steps S113 and S117.
  • “Streaming Flag” is set to be “OFF” and in the case of the stream push, “Streaming Flag” is set to be “ON”, so that the data may be included in the push starting request signal and the push starting notification.
  • the client 200 establishes the HTTP session with the web server 100 in steps S118 and S120 in response to the reception of the push starting notification and then confirms a value of “Streaming Flag” which is included in the push starting notification. If the push data transmitting method is designated as the stream push, the client 200 may transmit the HTTP request, which includes the stream data push request, to the web server 100 in step S123 and if the push data transmitting method is designated as the confirmed push, transmit the HTTP request, which includes a general data push request, to the web server 100 in step S122.
  • the web server 100 stores the push data in a plurality of HTTP responses to be divided to transmit the push data to the client 200 in steps S125 and S131, unlike the description with reference to FIG. 3.
  • TCP persistent connection between a client 200 and a proxy server 300 is maintained.
  • the client 200 and the proxy server 300 establish a TCP session using a three-way handshaking method in step S200.
  • the proxy server 300 grasps an updated IP address of the client 200 in the course of the TCP session establishment and updates client 200 related connection address information of an entity record, which is already stored, with the updated IP address in step S201.
  • the TCP session between the client 200 and the proxy server 300 may be maintained using a KEEP ALIVE related setting as long as possible.
  • step S202 When a location of the client 200 is moved, hand over occurs in step S202 and in this case, a TCP disconnect event indicating the disconnection of the TCP session occurs in step S204. Even when the hand over does not occur in step S202, the TCP disconnect event may occur due to time out caused when the data is not transmitted or received between the client 200 and the proxy server 300 for a long time.
  • the client 200 detects the TCP disconnect event and then automatically tries the TCP reconnection with the proxy server 300.
  • a time interval between the reconnections may be variably set in order to reduce power consumption of the client 200. For example, as the number of reconnections is increased, a waiting time may be set to be increased. For example, as the number of reconnections is increased, the waiting time may be set to be exponentially increased. FIG. 5 illustrates that the waiting time increases by twice as long as the number of reconnections is increased (steps S206 to S216).
  • the proxy server 300 grasps the updated IP address of the client 200 during the TCP session re-establishment and updates the client 200 related connection address information of the entity record, which is already stored, with the updated IP address so that the latest IP address of the client 200 may be grasped at all times in step S220.
  • the client 200 may include a push starting notification receiving unit 204, a data push requesting unit 262, and a push data receiving unit 264.
  • the data push requesting unit 262 and the push data receiving unit 264 may be included in a HTTP handling module 206 which transmits and receives data in accordance with a HTTP.
  • the push starting notification receiving unit 204 maintains the TCP persistent connection with the proxy server 300 and receives a push starting notification signal, which is generated by a request of the web server 100 in which the HTTP session is not connected with the client 200, through the TCP persistent connection from the proxy server 300.
  • the push starting notification receiving unit 204 detects occurrence of a TCP disconnect event, which is provided by a TCP socket service, to retry the TCP session connection with the proxy server.
  • a TCP disconnect event which is provided by a TCP socket service
  • the TCP persistent connection may be maintained by gradually increasing a time interval between the retries of the TCP session connection. If the push starting notification receiving unit 204 retries the TCP session connection with the proxy server but the TCP session connection fails despite of the retrial, the TCP persistent connection may be maintained by exponentially increasing the time interval between the retries of the TCP session connection.
  • the data push requesting unit 262 requests the web server 100 to generate a HTTP session in response to the reception of the push starting notification signal and transmits a HTTP request including the data push request through the HTTP session.
  • the push data receiving unit 264 receives a HTTP response including push data through the HTTP session.
  • the push data receiving unit 264 may receive a plurality of HTTP responses corresponding to the HTTP request transmission through the HTML5-SSE (server sent events) technology.
  • the push data is divided to be included in the plurality of HTTP responses.
  • the data push requesting unit 262 transmits a HTTP request including the streaming type data push request through the HTTP session in response thereto and the data push data receiving unit 264 may receive the plurality of HTTP responses corresponding to the HTTP request transmission through the HTML5-SSE technology in response to the HTTP request.
  • the client 200 may further include a web client 202 which processes the received push data. Further, the client 200 may further include at least one sensor 208 which is controlled by a control command which is configured by the push data. In this case, the client 200 may be a sensor node or the Internet of things terminal.
  • the proxy server 300 may include an entity record management unit 302, a push starting request receiving unit 304, and a push starting notifying unit 306.
  • the entity record management unit 302 manages an entity record including an ID and connection address information of each of the clients 200.
  • the entity record management unit 302 updates connection address information in the entity record for the other party client of the reconnected TCP session so that the connection address information of the client 200 may be maintained to be the latest information at all times.
  • the push starting request receiving unit 304 receives a push starting request signal including an ID of the client from a web server to which the HTTP session with the client 200 which will receive the push data is not connected.
  • the push starting notifying unit 306 inquires the connection address information corresponding to the ID of the client 200 from the entity record to obtain the address information of the client and transmits a push starting notifying signal, which includes information indicating the web server, to the client 200 using the obtained address information.
  • the push starting request receiving unit 304 and the push starting notifying unit 306 may communicate with the client 200 through the TCP persistent connection which is maintained by the client 200.
  • the entity record management unit 302 manages the entity record which further includes an ID and connection address information of each of the web servers 100.
  • the ID of the web server includes a web server side ID and a registration ID which is issued to the web server 100 in accordance with the web server side ID and the ID of the client includes a client side ID and a registration ID which is issued to the client in accordance with the client side ID.
  • the push starting request receiving unit 304 receives the push starting request signal, which includes the registration ID which is issued to the web server 100 and the client side ID which is issued to the client, to determine whether the registration IDs are included in the entity record, thereby authenticating the web server 100 and the client 200.
  • the web server 100 may include a push starting requesting unit 104, a session management unit 162, and a data push processing unit 164.
  • the push starting requesting unit 104 transmits a push starting request including information indicating the client 200 to a proxy server which maintains the TCP persistent connection with the client.
  • the occurrence of the push data may be determined by a web server engine 102.
  • the session management unit 162 When there is a request to generate a HTTP session from the client 200 which receives the push starting request signal through the proxy server 300, the session management unit 162 generates the HTTP session for the client 200.
  • the data push processing unit 164 transmits a HTTP response including the push data to the client 200 through the HTTP session.
  • the push starting requesting unit 104 determines a transmitting method of the push data and information indicating the determined push data transmitting method may be further included in the push starting request.
  • the push starting requesting unit 104 may determine the transmitting method of the push data as one of confirmed push in which the HTTP request and the HTTP response have a one to one relationship and stream push in which the HTTP request and the HTTP response have a one to N relationship.
  • the push starting requesting unit 104 may determine a transmitting method of the push data with reference to at least one of a QoS level of the push data, a data size, an operating load of the web server, and a bandwidth load of a network which is connected to the web server.
  • a concept of the present invention may be implemented by a computer readable code on a computer readable media.
  • the computer readable medium may include a computer readable storage media and a computer readable transmission media.
  • the computer readable storage media may be a data storage device in which data is stored and the stored data is read by a computer system later and for example, may be an ROM, an RAM, a CD-ROM, a magnetic tape, a floppy disk, and other optical storage device.
  • the computer readable storage media is distributed in computer systems which are connected through a network and the computer readable code may be stored therein and executed by a distributed processing method.
  • the computer readable transmission media may transmit a carrier wave or a carrier signal through wired or wireless Internet connection.

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

This invention provides a method in which a web server transmits push data to a client in real time even when a hypertext transfer protocol session between a web server which transmits the push data and a client which receives the push data is not connected and a system thereof. A web-based real time data pushing method according to an implementation of this invention comprises, transmitting, by a web server to which a HTTP (hypertext transfer protocol) session with a client which receives push data is not connected, a push starting request signal including information indicating the client to a proxy server, transmitting, by the proxy server, a push starting notification signal including information indicating the web server to the client in response to reception of the push starting request signal, requesting, by the client, the web server to generate a HTTP session in response to reception of the push starting notification signal and transmit a HTTP request including a data push request through the HTTP session, transmitting, by the web server, a HTTP response including the push data to the client in response to the HTTP request, and closing the HTTP session after completely transmitting the push data.

Description

WEB-BASED REAL TIME DATA PUSHING METHOD AND SYSTEM THEREOF
The present invention relates to a web-based real time data pushing method and a system thereof. More particularly, the present invention relates to a method in which a web server transmits push data to a client in real time even when a hypertext transfer protocol session between a web server which transmits the push data and a client which receives the push data is not connected and a system thereof.
A web push technology refers to technology in that a web server actively starts to send a message to a web client, that is, a web browser. The web push technology is an essential technology in which applicable ranges from a typical messenger/chatting service and video transmission to the Internet of things (IoT) in recent years have become various as the Internet is developed. Basically, the web technology is performed such that a web client uses a HTTP protocol such as Get, Post, or Put to request data in the web server and the server responses thereto. Therefore, basically, the web technology does not provide a push function which sends data from the server to the client.
In order to solve the above-mentioned problem, a web push technology, such as polling, long-polling, or streaming, which imitates the push function, in the server is developed. According to the polling method, the client periodically requests the server in order to get data and if the number of clients is large, a large load is applied to the server and no real time push function is provided. According to the long polling method, a response to a request of a client is held until an event occurs and when the event occurs, the event is carried on the response and the client issues a request again after receiving the response. According to the long polling method, less data traffic is caused as compared with a polling method. However, if the number of clients is large, a large load is applied to the server and no real time push function is provided. That is, only when the client is connected to the server, the push function is available. The streaming method is basically similar to the long-polling method but is different from the long-polling method in that a plurality of events may be sent from the server to the client at once. Recently, W3C standardized a comet, which uses the streaming method, to announce an HTML5 SSE (server-sent events).
According to the above-mentioned polling, long-polling, and streaming technologies, the service is available only when the client is connected to the server so that there is a problem in scalability. This is because in order to provide the push function, web browsers of large number of clients need to be connected to a web server all the time.
This may cause excessive processing loads to the server. Further, when the web browser is not connected to the web server, the server cannot transmit data to the client through the push so that the push data cannot be transmitted to the client as soon as the push data is generated.
In the meantime, an IoT (Internet of things) technology is becoming a next generation Internet technology following the smart phone. The Internet of things refers to a next generation Internet technology which assigns the Internet address to all objects to provide not only communication between people, but also Internet service between people and an object and between objects. One of characteristics of the Internet of things is that a large amount of sensors are connected through a wireless Internet to autonomously perform a specific task. Some of the sensors are fixed to a specific location but others may have a movable property. A sensor node which has a movable property needs to be connected to a mobile Internet environment. Such a sensor node repeats handover as a location thereof is changed and an IP address of the sensor node may be changed as the hand over is generated. Therefore, the web server cannot easily check the IP address of the mobile client so that it is hard to perform a push to the client from the server.
The present invention has been made in an effort to provide a method in which a web server transmits push data to a client in real time even when a hypertext transfer protocol session between a web server which transmits the push data and a client which receives the push data is not connected and a system thereof.
The present invention has been made in an effort to further provide a web-based real time data pushing method in which the number of clients to which a real time data push service is provided has scalability and a system thereof.
The present invention has been made in an effort to further provide a web-based real time data pushing method which minimizes power consumption of a client which receives a web-based real time data push service and a system thereof.
Technical objects of the present invention are not limited to the aforementioned technical objects and other technical objects which are not mentioned will be apparently appreciated by those skilled in the art from the following description.
According to an implementation of the present invention, a web-based real time data pushing method is provided. The method comprises, transmitting, by a web server to which a HTTP (hypertext transfer protocol) session with a client which receives push data is not connected, a push starting request signal including information indicating the client to a proxy server, transmitting, by the proxy server, a push starting notification signal including information indicating the web server to the client in response to reception of the push starting request signal, requesting, by the client, the web server to generate a HTTP session in response to reception of the push starting notification signal and transmitting a HTTP request including a data push request through the HTTP session, transmitting, by the web server, a HTTP response including the push data to the client in response to the HTTP request; and closing the HTTP session after completely transmitting the push data.
According to another implementation of the present invention, a proxy server for a web-based real time data pushing service is provided. The proxy server comprises, an entity record management unit which manages an entity record including an ID and connection address information of each client, a push starting request receiving unit which receives a push starting request signal including the ID of the client from a web server in which a HTTP session with a client which receives push data is not connected, and a push starting notifying unit which inquires the connection address information corresponding to the ID of the client from the entity record to obtain address information of the client and transmits a push starting notification signal, which includes information indicating the web server, to the client using the obtained address information.
According to still another implementation of the present invention, a client which supports a web-based push data real time receiving function is provided. The client comprises, a push starting notification receiving unit which maintains TCP persistent connection with a proxy server and receives a push starting notification signal, which is generated by a request of a web server in which the HTTP session is not connected to the client, from the proxy server through the TCP persistent connection, a data push requesting unit which requests the web server to generate a HTTP session in response to reception of the push starting notification signal and transmits a HTTP request including a data push request through the HTTP session, and a push data receiving unit which receives a HTTP response including the push data through the HTTP session.
According to still another implementation of the present invention, a real time data pushing supporting web server, is provided. The web server comprises, a push starting requesting unit which, when push data to be transmitted to a client which is not connected by a HTTP session, is generated, transmits a push starting request including information indicating the client to a proxy server which maintains TCP persistent connection with the client, a session management unit which, if there is a request to generate a HTTP session from the client which receives the push starting request signal through the proxy server, generates a HTTP session for the client, and a data push processing unit which, if a HTTP request including a data push request is received through the HTTP session, transmits a HTTP response including the push data to the client through the HTTP session.
According to still another implementation of the present invention, a web-based real time data pushing system, is provided. The system comprises, a web server which, when push data to be transmitted to a client which is not connected by a HTTP session is generated, transmits a push starting request including an ID of the client to a proxy server, a proxy server which is connected with the client by TCP persistent connection, manages an entity record including an ID of each client and connection address information corresponding to the ID, and transmits the push starting request to the client through the connection address information obtained using the entity record, and a client which maintains TCP persistent connection with the proxy server, requests the web server to generate a HTTP session in response to reception of the push starting notification signal, transmits a HTTP request including a data push request through the HTTP session, and receives a HTTP response including push data through the HTTP session.
According to the present invention, even when a HTTP session between a web server which transmits push data and a client which receives the push data is not connected, the web server may transmit the push data to the client in real time so that the number of clients to which the data push service is provided may have scalability and a real time property which may transmit the push data to the client as soon as the push data is generated in the web server may be achieved.
FIG. 1 is a diagram illustrating a configuration of a web-based real time data pushing system according to an embodiment of the present invention.
FIG. 2 is a conceptual view illustrating when a client and a web server are registered to a proxy server according to an embodiment of the present invention.
FIG. 3 is a signal flowchart of a web-based real time data pushing method according to an embodiment of the present invention.
FIG. 4 is a signal flowchart of a web-based real time data pushing method according to an embodiment of the present invention, which is different from FIG. 3.
FIG. 5 is a signal flowchart illustrating that a TCP persistent connection is maintained between the client and the proxy server according to an embodiment of the present invention.
FIG. 6 is a block diagram of a client according to an embodiment of the present invention.
FIG. 7 is a block diagram of a proxy server according to an embodiment of the present invention.
FIG. 8 is a block diagram of a web server according to an embodiment of the present invention.
The present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which preferred embodiments of the invention are shown. This invention may, however, be embodied in 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 filly convey the scope of the invention to those skilled in the art. The same reference numbers indicate the same components throughout the specification.
Unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. It is noted that the use of any and all examples, or exemplary terms provided herein is intended merely to better illuminate the invention and is not a limitation on the scope of the invention unless otherwise specified. Further, unless defined otherwise, all terms defined in generally used dictionaries may not be overly interpreted.
First, a configuration and an 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.
As illustrated in FIG. 1, a web-based real time data pushing system 10 according to the embodiment may include a client 200, a web server 100, and a proxy server 300. The client 200 includes the Internet communication interface, an arithmetic unit, and a circuit or a bus which connects the Internet communication interface and the arithmetic unit. For example, the client includes at least one of a wired communication interface and a wireless communication interface which may process a TCP/IP protocol stack. The client 200 may be one of mobile client devices such as a notebook computer, a personal digital assistant (PDA), a portable computer, a web tablet, a wireless phone, a mobile phone, a smart phone, an e-book, a portable multimedia player (PMP), a portable game player, a navigation device, a black box, a digital camera, a digital picture player, a digital video recorder, a digital video player, an environment measuring sensor node, a biometric sensor node, the Internet of things client, and a device which may transmit and receive information in a wireless environment.
The client 200 includes a HTTP processing module. According to an embodiment, the HTTP processing module may be configured by at least one of the Internet communication interface and the arithmetic unit. For example, the client 200 may include a web browser. The client 200 transmits a request of HTTP session connection to the web server 100 using the HTTP processing module to establish a HTTP session with the web server 100, transmits a HTTP request, which includes data indicating information which is requested through the HTTP session, to the web server 100 and receives a HTTP response, which is a response to the HTTP request, from the web server 100.
The web server 100 establishes the HTTP session with the client 200 (including issuance of a session ID) in response to the request of the HTTP session connection of the client 200, receives the HTTP request through the HTTP session and transmits data such as an HTML document through the HTTP response which is the response to the HTTP request.
The web server 100 is connected with the Internet network through a wired communication unit but is not generally a mobile client. However, according to an embodiment, the web server 100 may be configured by a mobile client. When the web server 100 is configured by the mobile client, the web server 100 is connected to the Internet network through a wireless communication unit.
The proxy server 300 is connected to the client 200 and the web server 100 by a lower layer protocol of the HTTP. According to an embodiment, a transport layer protocol connection between the proxy server 300 and the client 200 and the web server 100 may be continuously maintained 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 by TCP persistent connection.
The proxy server 300, the client 200, and the web server 100 configure an overlay network, which is configured by the TCP persistent connection, so as to promptly transmit and receive the data. In this case, the proxy server 300 may be understood as overlay network routing equipment which configures a P2P overlay network between the client 200 and the web server 100. That is, the proxy server 300 may promptly perform message relay of a push starting request, which is received from the web server 100, to the client.
The TCP persistent connection which is mentioned in the description indicates that the TCP connection is continuously maintained. The TCP persistent connection may be maintained by various well-known technologies. For example, the TCP persistent connection may be maintained by preventing the TCP session from being completed due to time-out using a KEEP ALIVE related setting.
For example, the TCP connection may be continuously maintained in spite of hand over due to movement of the client 200 or the web server 100 (when the web server is configured by a mobile client) and a change of an IP address accompanied with the hand over. In other words, even though the TCP session is disconnected from the proxy server 300 due to the hand over of the client 200 or the web server 100 and the change of the IP address accompanied with the hand over, the client 200 or the web server 100 automatically establishes the disconnected TCP session again so that the TCP persistent connection may be managed to be maintained.
Hereinafter, an operation of the web-based real time data pushing system 10 according to the embodiment will be described.
First, the web server 100 and the client 200 individually perform a registration procedure for using a push service so that the proxy server 300 identifies the web server 100 and the client 200 through registration IDs. The registration procedure will be described with reference to FIG. 2.
The registration procedure of the web server 100 may include a step of transmitting, by the web server 100, a registration request including a web server side ID of the web server 100 to the proxy server 300, a step of issuing, by the proxy server 300, a registration ID corresponding to the web server side ID in response to the reception of the registration request, and a step of storing an entity record 30 including the issued registration ID, connection address information of the web server 100, and the web server side ID. The connection address information of the web server 100 may be included in the registration request or extracted from a header of the registration request signal. For example, when the connection address information of the web server 100 is a uniform resource locator (URL), the URL may be included in the registration request and if the connection address information of the web server 100 is an IP address, the IP address may be included in a header part of the registration request signal.
The registration procedure of the client 200 may include a step of transmitting, by the client 200, a registration request including the connection address information (for example, an IP address) of the client 200 and a client side ID to the proxy server 300, a step of issuing, by the proxy server 300, a registration ID corresponding to the client side ID in response to the reception of the registration request, and a step of storing an entity record 30 including the issued registration ID and the TCP/IP connection address information and the client side ID which are included in the registration request. The connection address information of the client 200 may be included in the registration request or extracted from a header of the registration request signal.
Referring back to FIG. 1, the operation of the web-based real time data pushing system 10 will be described. When push data, which will be transmitted to a predetermined client 200 which is not connected through the HTTP session, is generated, the web server 100 transmits a push starting request signal to the proxy server 300. The client 200 which will receive the push data is a device which is not connected to the web server 100 through the HTTP session at the time when the push data is generated, but has been previously connected to the web server 100 at least one time through the HTTP session so as to receive the data.
The push starting 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 which is managed by the proxy server 300. The push starting 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 which is managed by the proxy server 300.
The proxy server 300 inquires connection address information of the client 200 corresponding to information indicating the client 200 which is included in the push starting request signal, for example, an IP address, from the entity record which is already stored. The proxy server 300 transmits a push starting notification signal in accordance with the push starting request signal to the client 200, using the inquired connection address information of the client 200.
The client 200 maintains the TCP persistent connection with the proxy server 300, requests a HTTP session generation to the web server 100 in response to the reception of the push starting notification signal, transmits a HTTP request including the data push request through the HTTP session, and receives a HTTP response including the push data through the HTTP session.
In the meantime, as the location of the client 200 moves, the hand over occurs and a connection address of the client, for example, the IP address may be changed due to the hand over. In this case, TCP disconnect event occurs. The client 200 detects the occurrence of the TCP disconnect event to automatically retry to connect the TCP session with the proxy server 300.
When the TCP session is connected with the proxy server 300, the proxy server 300 may grasp an updated IP address of the client 200 in the course of the connection. The proxy server 300 updates the client connection address information of the entity record using the updated IP address of the client 200 so that the connection address information of the entity record is managed to be maintained in the latest state all the time. Accordingly, the web server 100 does not need to manage the latest connection address information of the client 200 for data pushing and such a task is performed by the proxy server 300 instead of the web server 100.
As described above, the web server 100 does not need to maintain the HTTP session with the client 200 for data pushing. Instead, the web server 100 needs to maintain only the TCP persistent connection with the proxy server 300.
When the push data is generated, the web server 100 transmits the push starting request to the proxy server 300 and the HTTP session connecting request of the client 200 to the web server 100 and the push data transmitting request through the HTTP session are performed using the push starting request transmission as a trigger signal.
For example, according to the related art, if a data pushing service is provided to 10,000 clients 200, only when 10,000 or the corresponding number of HTTP session connections are continuously maintained between the web server 100 and 1,000 clients 200, the real time data pushing service may be provided. However, according to the present invention, regardless of the number of clients 200 which receives the real time data pushing service, one TCP persistent connection is only maintained between the web server 100 and the proxy server 300.
The web server 100 does not maintain the HTTP session with each of the clients which are a target of the real time data pushing service but the proxy server 300 needs to maintain the TCP persistent connection with each of the clients which desires to receive the real time data pushing service. However, such a load is applied not to the web server 100, but to the proxy server 300. If the TCP session, which is a protocol included in the lower layer than the HTTP which is a protocol of an application layer, is maintained, an operation load and a network load are reduced. Therefore, according to the present invention, it is possible to provide the web-based real time data pushing data to a plurality of clients using a reduced computational amount and a reduced network load as compared with the related art.
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 to 5.
FIG. 3 is a signal flowchart of a web-based real time data pushing method according to the embodiment.
First, a client 200 may be connected to a web server 100 to request to create a HTTP session in step S100 and request data (HTTP Req) and receive data (HTTP Res) through the HTTP session in step S102. As a result of the data request and data reception through the HTTP session, the web server 100 may set a data pushing related setting for the client 200. After completing the data reception, the HTTP session is disconnected between the client 200 and the web server 100 in step S104.
Contrary to the disconnection of the HTTP session between the client 200 and the web server 100, the client 200 and the web server 100 individually maintain the TCP persistent connection with a proxy server 300 in steps S106 and S108.
When push data for the client 200 is generated in accordance with the data pushing related setting in step S110, the web server 100 transmits a push starting request signal to the proxy server 300. The push starting request signal may include information indicating a client which will receive the push data, for example, a registration ID of the client. The push starting request signal may also include a registration ID of the web server 100. In step S114, the proxy server 100 inquires the registration ID of the client, which is included in the push starting request signal, from the entity record, which is already stored, to obtain the IP address of the client 200 in step S114. The proxy server 300 transmits a push starting notification signal corresponding to the push starting request signal to the client 200. The push starting notification signal may include information regarding the web server, for example, an IP address or an URL of the web server.
The client 200 receives the push starting notification signal to transmit a HTTP session generating request to the web server 100 using the IP address or the URL of the web server, which is included in the push starting notification signal, as a receiver’s address in step S118, and if the HTTP session is generated in step S120, transmits a HTTP request including the data push request using the HTTP session to the web server 100 in step S122. The web server 100 transmits a HTTP response including the push data to the client 200 in response to the HTTP request in step S126.
The HTTP response is transmitted only when there is the HTTP request. That is, generally, the HTTP response and the HTTP request correspond to each other one to one. Accordingly, if a size of the push data is too large to be included in one HTTP response, the client 200 transmits the HTTP request including the push response signal to the web server 100 in step S126. The web server 100 transmits the HTTP response including the push data to the client 200 in response to the reception of the HTTP request including the push response signal in step 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 a push closing signal in step S130.
According to the embodiment of the present invention, the web server 100 may store the push data in a plurality of HTTP responses to be divided to transmit the push data to the client 200. Hereinafter, for the convenience of description, a push data transmitting method which will be described with reference to FIG. 3 is called as confirmed push and a push data transmitting method which will be described with reference to FIG. 4 is called as stream push.
According to the stream push, the client 200 may continuously receive the HTTP response including the push data only by transmitting one HTTP request including the data push request.
For example, an HTML5-SSE (server sent events) technology may be used for the stream push. More specifically, a script file, which includes a method in which an event which sequentially transmits a message including the divided push data is generated plural times, and an HTML file, which calls a method of the script file, may be stored in the web server 100 and the client 200 may download the HTML file and execute the HTML file through the web browser. The script file includes a syntax in which “text/event-stream" is set in ContentType so that the HTML-SSE technology is used.
The embodiment will be described in detail with reference to FIG. 4.
In a signal flowchart illustrated in FIG. 4, steps to step S110 in which the push data is generated are the same as the description with reference to FIG. 3.
The web server 100 may determine how to transmit the push data to the client 200. For example, the web server 100 may determine a transmitting method of the push data with reference to at least one of a QoS level of the push data, a data size, an operating load of the web server, and a bandwidth load of a network which is connected to the web server. For example, when the QoS level is high or the data size is equal to or larger than a predetermined threshold value, the web server 100 may determine to transmit the push data by the stream push method and otherwise, to transmit the push data by the confirmed push method.
According to an embodiment, data indicating the transmitting method may be included in the push starting request signal and the push starting notification in steps S113 and S117. For example, in the case of the confirmed push, “Streaming Flag” is set to be “OFF” and in the case of the stream push, “Streaming Flag” is set to be “ON”, so that the data may be included in the push starting request signal and the push starting notification.
The client 200 establishes the HTTP session with the web server 100 in steps S118 and S120 in response to the reception of the push starting notification and then confirms a value of “Streaming Flag” which is included in the push starting notification. If the push data transmitting method is designated as the stream push, the client 200 may transmit the HTTP request, which includes the stream data push request, to the web server 100 in step S123 and if the push data transmitting method is designated as the confirmed push, transmit the HTTP request, which includes a general data push request, to the web server 100 in step S122.
When the HTTP request which includes the stream data push request is received, the web server 100 stores the push data in a plurality of HTTP responses to be divided to transmit the push data to the client 200 in steps S125 and S131, unlike the description with reference to FIG. 3.
Referring to FIG. 5, it will be described that TCP persistent connection between a client 200 and a proxy server 300 according to an embodiment of the present invention is maintained.
First, the client 200 and the proxy server 300 establish a TCP session using a three-way handshaking method in step S200. The proxy server 300 grasps an updated IP address of the client 200 in the course of the TCP session establishment and updates client 200 related connection address information of an entity record, which is already stored, with the updated IP address in step S201. During the TCP session establishment, the TCP session between the client 200 and the proxy server 300 may be maintained using a KEEP ALIVE related setting as long as possible.
When a location of the client 200 is moved, hand over occurs in step S202 and in this case, a TCP disconnect event indicating the disconnection of the TCP session occurs in step S204. Even when the hand over does not occur in step S202, the TCP disconnect event may occur due to time out caused when the data is not transmitted or received between the client 200 and the proxy server 300 for a long time.
The client 200 according to the present invention detects the TCP disconnect event and then automatically tries the TCP reconnection with the proxy server 300. When the TCP reconnection between the client 200 and the proxy server 300 are not available due to a network circumstance, a time interval between the reconnections may be variably set in order to reduce power consumption of the client 200. For example, as the number of reconnections is increased, a waiting time may be set to be increased. For example, as the number of reconnections is increased, the waiting time may be set to be exponentially increased. FIG. 5 illustrates that the waiting time increases by twice as long as the number of reconnections is increased (steps S206 to S216).
When the TCP session between the client 200 and the proxy server 300 is re-established by the trial of the TCP reconnection in step S218, the proxy server 300 grasps the updated IP address of the client 200 during the TCP session re-establishment and updates the client 200 related connection address information of the entity record, which is already stored, with the updated IP address so that the latest IP address of the client 200 may be grasped at all times in step S220.
A configuration and an operation of the client 200 according to an embodiment of the present invention will be described with reference to FIG. 6. As illustrated in FIG. 6, the client 200 according to the embodiment may include a push starting notification receiving unit 204, a data push requesting unit 262, and a push data receiving unit 264. The data push requesting unit 262 and the push data receiving unit 264 may be included in a HTTP handling module 206 which transmits and receives data in accordance with a HTTP.
The push starting notification receiving unit 204 maintains the TCP persistent connection with the proxy server 300 and receives a push starting notification signal, which is generated by a request of the web server 100 in which the HTTP session is not connected with the client 200, through the TCP persistent connection from the proxy server 300.
According to an embodiment, the push starting notification receiving unit 204 detects occurrence of a TCP disconnect event, which is provided by a TCP socket service, to retry the TCP session connection with the proxy server. However, when the TCP session connection fails despite of the retry, the TCP persistent connection may be maintained by gradually increasing a time interval between the retries of the TCP session connection. If the push starting notification receiving unit 204 retries the TCP session connection with the proxy server but the TCP session connection fails despite of the retrial, the TCP persistent connection may be maintained by exponentially increasing the time interval between the retries of the TCP session connection.
The data push requesting unit 262 requests the web server 100 to generate a HTTP session in response to the reception of the push starting notification signal and transmits a HTTP request including the data push request through the HTTP session.
The push data receiving unit 264 receives a HTTP response including push data through the HTTP session.
According to an embodiment, the push data receiving unit 264 may receive a plurality of HTTP responses corresponding to the HTTP request transmission through the HTML5-SSE (server sent events) technology. The push data is divided to be included in the plurality of HTTP responses.
According to an embodiment, when data indicating the stream push is included in the push starting notification which is received through the push starting notification receiving unit 204, the data push requesting unit 262 transmits a HTTP request including the streaming type data push request through the HTTP session in response thereto and the data push data receiving unit 264 may receive the plurality of HTTP responses corresponding to the HTTP request transmission through the HTML5-SSE technology in response to the HTTP request.
The client 200 may further include a web client 202 which processes the received push data. Further, the client 200 may further include at least one sensor 208 which is controlled by a control command which is configured by the push data. In this case, the client 200 may be a sensor node or the Internet of things terminal.
A configuration and an operation of the proxy server 300 according to an embodiment of the present invention will be described with reference to FIG. 7. As illustrated in FIG. 7, the proxy server 300 according to the embodiment may include an entity record management unit 302, a push starting request receiving unit 304, and a push starting notifying unit 306.
The entity record management unit 302 manages an entity record including an ID and connection address information of each of the clients 200.
According to an embodiment, when a TCP session are reconnected with a specific client, the entity record management unit 302 updates connection address information in the entity record for the other party client of the reconnected TCP session so that the connection address information of the client 200 may be maintained to be the latest information at all times.
The push starting request receiving unit 304 receives a push starting request signal including an ID of the client from a web server to which the HTTP session with the client 200 which will receive the push data is not connected.
The push starting notifying unit 306 inquires the connection address information corresponding to the ID of the client 200 from the entity record to obtain the address information of the client and transmits a push starting notifying signal, which includes information indicating the web server, to the client 200 using the obtained address information.
According to an embodiment, the push starting request receiving unit 304 and the push starting notifying unit 306 may communicate with the client 200 through the TCP persistent connection which is maintained by the client 200.
According to an embodiment, the entity record management unit 302 manages the entity record which further includes an ID and connection address information of each of the web servers 100. The ID of the web server includes a web server side ID and a registration ID which is issued to the web server 100 in accordance with the web server side ID and the ID of the client includes a client side ID and a registration ID which is issued to the client in accordance with the client side ID. The push starting request receiving unit 304 receives the push starting request signal, which includes the registration ID which is issued to the web server 100 and the client side ID which is issued to the client, to determine whether the registration IDs are included in the entity record, thereby authenticating the web server 100 and the client 200.
A configuration and an operation of a web server 100 according to an embodiment of the present invention will be described with reference to FIG. 8. As illustrated in FIG. 8, the web server 100 according to the embodiment may include a push starting requesting unit 104, a session management unit 162, and a data push processing unit 164.
When push data which will be transmitted to a client which is not connected by the HTTP session is generated, the push starting requesting unit 104 transmits a push starting request including information indicating the client 200 to a proxy server which maintains the TCP persistent connection with the client. The occurrence of the push data may be determined by a web server engine 102.
When there is a request to generate a HTTP session from the client 200 which receives the push starting request signal through the proxy server 300, the session management unit 162 generates the HTTP session for the client 200.
When the HTTP request including the data push request is received through the HTTP session, the data push processing unit 164 transmits a HTTP response including the push data to the client 200 through the HTTP session.
According to an embodiment, the push starting requesting unit 104 determines a transmitting method of the push data and information indicating the determined push data transmitting method may be further included in the push starting request. In this case, the push starting requesting unit 104 may determine the transmitting method of the push data as one of confirmed push in which the HTTP request and the HTTP response have a one to one relationship and stream push in which the HTTP request and the HTTP response have a one to N relationship. In this case, the push starting requesting unit 104 may determine a transmitting method of the push data with reference to at least one of a QoS level of the push data, a data size, an operating load of the web server, and a bandwidth load of a network which is connected to the web server.
A concept of the present invention may be implemented by a computer readable code on a computer readable media. The computer readable medium may include a computer readable storage media and a computer readable transmission media. The computer readable storage media may be a data storage device in which data is stored and the stored data is read by a computer system later and for example, may be an ROM, an RAM, a CD-ROM, a magnetic tape, a floppy disk, and other optical storage device. The computer readable storage media is distributed in computer systems which are connected through a network and the computer readable code may be stored therein and executed by a distributed processing method. The computer readable transmission media may transmit a carrier wave or a carrier signal through wired or wireless Internet connection.
While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the present invention as defined by the following claims. The exemplary embodiments should be considered in a descriptive sense only and not for purposes of limitation.

Claims (19)

  1. A web-based real time data pushing method, comprising:
    transmitting, by a web server to which a HTTP (hypertext transfer protocol) session with a client which receives push data is not connected, a push starting request signal including information indicating the client to a proxy server;
    transmitting, by the proxy server, a push starting notification signal including information indicating the web server to the client in response to reception of the push starting request signal;
    requesting, by the client, the web server to generate a HTTP session in response to reception of the push starting notification signal and transmitting a HTTP request including a data push request through the HTTP session;
    transmitting, by the web server, a HTTP response including the push data to the client in response to the HTTP request; and
    closing the HTTP session after completely transmitting the push data.
  2. The web-based real time data pushing method of claim 1, wherein the push starting request signal and the push starting notification signal are transmitted by a lower layer protocol of the HTTP.
  3. The web-based real time data pushing method of claim 1, further comprising:
    maintaining, by the client, a TCP (transmission control protocol) persistent connection with the proxy server.
  4. The web-based real time data pushing method of claim 3, wherein the maintaining of a TCP persistent connection includes:
    detecting occurrence of a TCP disconnect event which is provided by a TCP socket service; and
    retrying the TCP session connection with the proxy server in response to the detection, but a time interval between retries of the TCP session connection is variable in order to reduce power consumption of the client.
  5. The web-based real time data pushing method of claim 3, wherein the maintaining of a TCP persistent connection includes:
    maintaining, by the web server, the TCP persistent connection with the proxy server in order to establish a TCP overlay network by the web server, the proxy server, and the client.
  6. The web-based real time data pushing method of claim 3, further comprising:
    transmitting, by the client, a registration request signal including a client side ID to the proxy server;
    issuing, by the proxy server, a registration ID corresponding to the client side ID, record the client side ID, the issued registration ID, and connection address information of the client as a record for the client, and transmit the issued registration ID to the client;
    updating, by the proxy server, the connection address information of the record if the TCP session connection request is received from the client and the connection address information of the client is updated; and
    transmitting, by the client, at least one of the client side ID and the registration ID to the web server.
  7. The web-based real time data pushing method of claim 6, wherein the transmitting of the push starting request signal to the proxy server includes:
    transmitting the push starting request signal including one of the client side ID and the registration ID, which are received from the client, to the proxy server, and
    the transmitting of the push starting notification signal to the client includes:
    inquiring the connection address information of the client from a record for the client side ID or the registration ID which is included in the push starting request signal received from the web server; and
    transmitting the push starting notification signal using the inquired connection address information.
  8. The web-based real time data pushing method of claim 6, wherein the requesting of the web server to generate a HTTP session in response to reception of the push starting notification signal and the transmitting of a HTTP request including a data push request to the web server through the HTTP session includes:
    receiving a registration ID which is issued in accordance with the client side ID to store the registration ID; and
    including the stored registration ID in the data push request.
  9. The web-based real time data pushing method of claim 8, wherein the transmitting of a HTTP response including the push data to the client in response to the HTTP request includes:
    identifying the client using a registration ID of the client which is included in the data push request and inquiring push data for the client.
  10. The web-based real time data pushing method of claim 1, further comprising:
    maintaining, by the web server, TCP persistent connection with the proxy server.
  11. The web-based real time data pushing method of claim 1, wherein the transmitting of a HTTP response including the push data to the client includes:
    dividing the push data to be stored in a plurality of HTTP responses through an HTML5-SSE (server sent events) technology to transmit the push data to the client.
  12. The web-based real time data pushing method of claim 1, wherein the client is a sensor client to which a TCP/IP address is assigned.
  13. The web-based real time data pushing method of claim 1, wherein the client is the Internet of things client.
  14. A proxy server for a web-based real time data pushing service, comprising:
    an entity record management unit which manages an entity record including an ID and connection address information of each client;
    a push starting request receiving unit which receives a push starting request signal including the ID of the client from a web server in which a HTTP session with a client which receives push data is not connected; and
    a push starting notifying unit which inquires the connection address information corresponding to the ID of the client from the entity record to obtain address information of the client and transmits a push starting notification signal, which includes information indicating the web server, to the client using the obtained address information.
  15. The proxy server for a web-based real time data pushing service of claim 14, wherein when the TCP session is reconnected to a specific client, the entity record management unit updates connection address information in the entity record for the other party client of the reconnected TCP session.
  16. A client which supports a web-based push data real time receiving function comprising:
    a push starting notification receiving unit which maintains TCP persistent connection with a proxy server and receives a push starting notification signal, which is generated by a request of a web server in which the HTTP session is not connected to the client, from the proxy server through the TCP persistent connection;
    a data push requesting unit which requests the web server to generate a HTTP session in response to reception of the push starting notification signal and transmits a HTTP request including a data push request through the HTTP session; and
    a push data receiving unit which receives a HTTP response including the push data through the HTTP session.
  17. The client of claim 16, further comprising:
    at least one sensor which is controlled by a control command which is configured by the push data.
  18. A real time data pushing supporting web server, comprising:
    a push starting requesting unit which, when push data to be transmitted to a client which is not connected by a HTTP session, is generated, transmits a push starting request including information indicating the client to a proxy server which maintains TCP persistent connection with the client;
    a session management unit which, if there is a request to generate a HTTP session from the client which receives the push starting request signal through the proxy server, generates a HTTP session for the client; and
    a data push processing unit which, if a HTTP request including a data push request is received through the HTTP session, transmits a HTTP response including the push data to the client through the HTTP session.
  19. A web-based real time data pushing system, comprising:
    a web server which, when push data to be transmitted to a client which is not connected by a HTTP session is generated, transmits a push starting request including an ID of the client to a proxy server;
    a proxy server which is connected with the client by TCP persistent connection, manages an entity record including an ID of each client and connection address information corresponding to the ID, and transmits the push starting request to the client through the connection address information obtained using the entity record; and
    a client which maintains TCP persistent connection with the proxy server, requests the web server to generate a HTTP session in response to reception of the push starting notification signal, transmits a HTTP request including a data push request through the HTTP session, and receives a HTTP response including push data through the HTTP session.
PCT/KR2013/010194 2013-10-14 2013-11-11 Web-based real time data pushing method and system thereof WO2015056833A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2013-0121979 2013-10-14
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
WO2015056833A1 true WO2015056833A1 (en) 2015-04-23

Family

ID=52679145

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2013/010194 WO2015056833A1 (en) 2013-10-14 2013-11-11 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 (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105721631A (en) * 2016-03-28 2016-06-29 中国科学院信息工程研究所 Large-scale internet protocol (IP) address resources use method in orientation information grasping scenario
CN106850750A (en) * 2016-12-26 2017-06-13 北京五八信息技术有限公司 A kind of method and apparatus of real time propelling movement information
EP3328033A1 (en) * 2016-11-29 2018-05-30 Brother Kogyo Kabushiki Kaisha Communication apparatus
CN109088918A (en) * 2018-07-18 2018-12-25 阿里巴巴集团控股有限公司 A kind of exchange 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
CN117411933A (en) * 2023-10-16 2024-01-16 国电南瑞科技股份有限公司 Service data pushing method and system
CN117411933B (en) * 2023-10-16 2024-05-24 国电南瑞科技股份有限公司 Service data pushing method and system

Families Citing this family (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
CN114900510A (en) * 2022-03-29 2022-08-12 北京沃东天骏信息技术有限公司 Information pushing method, server, client and storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090065691A (en) * 2007-12-18 2009-06-23 에스케이커뮤니케이션즈 주식회사 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
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090065691A (en) * 2007-12-18 2009-06-23 에스케이커뮤니케이션즈 주식회사 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
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 (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105721631A (en) * 2016-03-28 2016-06-29 中国科学院信息工程研究所 Large-scale internet protocol (IP) address resources use method in orientation information grasping scenario
CN105721631B (en) * 2016-03-28 2019-04-30 中国科学院信息工程研究所 Large-scale ip address resource application method in a kind of directed information crawl scene
EP3328033A1 (en) * 2016-11-29 2018-05-30 Brother Kogyo Kabushiki Kaisha Communication apparatus
US10904069B2 (en) 2016-11-29 2021-01-26 Brother Kogyo Kabushiki Kaisha Communication apparatus executing specific process related to security
CN106850750A (en) * 2016-12-26 2017-06-13 北京五八信息技术有限公司 A kind of method and apparatus of real time propelling movement information
CN109088918A (en) * 2018-07-18 2018-12-25 阿里巴巴集团控股有限公司 A kind of exchange method, client device and server device
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
CN117411933A (en) * 2023-10-16 2024-01-16 国电南瑞科技股份有限公司 Service data pushing method and system
CN117411933B (en) * 2023-10-16 2024-05-24 国电南瑞科技股份有限公司 Service data pushing method and system

Also Published As

Publication number Publication date
KR101473660B1 (en) 2014-12-18

Similar Documents

Publication Publication Date Title
WO2015056833A1 (en) Web-based real time data pushing method and system thereof
WO2012173444A2 (en) Apparatus and method for exchanging data between upnp based devices
WO2012115385A2 (en) Apparatus and method for providing universal plug and play service based on wi-fi direct connection in portable terminal
WO2012157940A2 (en) System and method for providing push service using feedback message
WO2016064030A1 (en) Global server load balancer apparatus and method for controlling time-to-live of dynamic cache therein
WO2018066907A1 (en) Method for transferring signaling messages of terminal between network functions
WO2010062048A4 (en) Method and apparatus for managing state information of remote user interface
JP2005020327A (en) Multicast distributing method, apparatus, and system thereof
WO2012050293A1 (en) Method and apparatus for sharing contents using information of group change in content oriented network environment
WO2016013718A1 (en) System and method for providing web-based advertisement by using wi-fi network
WO2011099690A2 (en) Method and apparatus for using service of home network device based on remote access
WO2011159096A2 (en) Apparatus and method for registering personal network
WO2013008994A1 (en) Method for device discovery and method for downloading content
WO2017074034A1 (en) Method and apparatus for interworking between heterogeneous systems
WO2017051941A1 (en) Method for reducing traffic of cloud service by using p2p connection and apparatus therefor
WO2011159040A2 (en) Apparatus and method for configuring personal network using pn routing table
US20170295052A1 (en) Cache method, cache edge server, cache core server, and cache system
WO2014163254A1 (en) P2p connection system and terminal, and p2p connection method using same in mobile environment
WO2011136526A2 (en) Method for providing message and device therefor
WO2015126219A1 (en) P2p-based file transmission control method and p2p communication control device therefor
WO2014148865A1 (en) Integrated sns gateway
JP2015091019A (en) Relay device and data transfer method
WO2017078462A1 (en) Method and device for providing data in multimedia system
WO2022154372A1 (en) Communication method and device in wireless communication system supporting edge computing
WO2013100484A1 (en) User terminal and method for sharing data between applications thereof

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13895552

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13895552

Country of ref document: EP

Kind code of ref document: A1