WO2002021795A2 - Asynchronous full-duplex request/response protocol - Google Patents

Asynchronous full-duplex request/response protocol Download PDF

Info

Publication number
WO2002021795A2
WO2002021795A2 PCT/US2001/041921 US0141921W WO0221795A2 WO 2002021795 A2 WO2002021795 A2 WO 2002021795A2 US 0141921 W US0141921 W US 0141921W WO 0221795 A2 WO0221795 A2 WO 0221795A2
Authority
WO
WIPO (PCT)
Prior art keywords
server
client
transmitting
messages
operative
Prior art date
Application number
PCT/US2001/041921
Other languages
French (fr)
Other versions
WO2002021795A3 (en
Inventor
Dror Tirosh
Joshua Fox
Gur Kimchi
Original Assignee
Vocaltec Communications Ltd.
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 Vocaltec Communications Ltd. filed Critical Vocaltec Communications Ltd.
Priority to AU2001287214A priority Critical patent/AU2001287214A1/en
Publication of WO2002021795A2 publication Critical patent/WO2002021795A2/en
Publication of WO2002021795A3 publication Critical patent/WO2002021795A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • 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
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Definitions

  • the present invention relates to computer networks in general, and more particularly to asynchronous full-duplex communications between computers in a network environment.
  • the TCP/IP communications protocol is often employed for full- duplex asynchronous communications between computers in a network environment, such as the Internet.
  • firewalls often prevent communications using ordinary TCP/IP sockets via arbitrary ports.
  • communications that employ request/response protocols, such as HTTP communications via port 80 are generally allowed through firewalls.
  • request/response protocols such as HTTP communications via port 80
  • the present invention seeks to provide methods for employing network request/response protocols in support of asynchronous full-duplex communications between computers in a network environment.
  • the present invention provides a novel way to use a request/response protocol in combination with a channel identifier in order to provide transparent, asynchronous, full- duplex communications between computers on a computer network, and particularly to allow for such communications via firewalls where other forms of communication might not be allowed to pass through the firewall.
  • the present invention is additionally advantageous where the HTTP protocol is used in that the HTTP protocol provides built-in encryption in most browsers and servers, thus adding a layer of security to otherwise less secure asynchronous, full-duplex communications techniques.
  • a method for establishing an asynchronous, fiill-duplex communications channel between a client and a server including a) transmitting an information request from the client to the server, thereby forming a communications channel between the client and the server, the information request including an identifier identifying the channel b) asynchronously transmitting a plurality of server-to-client messages as responses to the information request, each of the responses including the identifier and c) asynchronously transmitting a plurality of client-to-server messages, each of the responses including the identifier.
  • the transmitting step a) includes transmitting using an HTTP protocol GET request.
  • the asynchronously transmitting step b) includes transmitting using an HTTP protocol GET response.
  • the asynchronously transmitting step c) includes transmitting using an HTTP protocol POST request.
  • the method further includes mamtaining the communications channel subsequent to asynchronously transmitting the first of the server-to-client messages.
  • any of the transmitting steps includes transmitting via a proxy server, and where the method further includes periodically transmitting a dummy message between the first-mentioned server and the client with sufficient frequency to prevent the proxy server from terminating the communications channel.
  • a method for establishing an asynchronous, full-duplex communications channel between a client and a server including a) transmitting an information request from the client to the server, thereby forming a communications channel between the client and the server b) generating an identifier at the server identifying the channel c) asynchronously transmitting in response to the information request a first server-to-client message indicating the identifier d) asynchronously transmitting a plurality of server-to-client messages as responses to the information request, each of the responses including the identifier and e) asynchronously transmitting a plurality of client-to-server messages, each of the responses including the identifier.
  • the transmitting step a) includes transmitting using an HTTP protocol GET request. Still further in accordance with a preferred embodiment of the present invention the asynchronously transmitting steps c) and d) includes transmitting using an HTTP protocol GET response.
  • the asynchronously transmitting step e) includes transmitting using an HTTP protocol POST request.
  • the method further includes maintaining the communications channel subsequent to asynchronously transmitting the first server-to-client message.
  • any of the transmitting steps includes transmitting via a proxy server, and where the method further includes periodically transmitting a dummy message between the first-mentioned server and the client with sufficient frequency to prevent the proxy server from terminating the communications channel.
  • an asynchronous, full-duplex communications system including a client and a server, where the client is operative to transmit an information request to the server, thereby forming a communications channel between the client and the server, the information request including an identifier identifying the channel, where the server is operative to asynchronously transmit a plurality of response messages to the client in response to the information request, each of the response messages including the identifier, and where the client is operative to asynchronously transmit a plurality of posting messages to the server, each of the posting messages including the identifier.
  • the client is operative to transmit the information request using an HTTP protocol GET request.
  • the server is operative to transmit the response messages using an HTTP protocol GET response.
  • the client is operative to transmit the posting messages using an HTTP protocol POST request.
  • the server is operative to maintain the communications channel subsequent to asynchronously transmitting the first of the response messages.
  • system further includes a proxy server, where the information request and the messages are transmitted via the proxy server, and where either of the first-mentioned server and the client is operative to periodically transmit a dummy message between the first-mentioned server and the client with sufficient frequency to prevent the proxy server from terminating the communications channel.
  • an asynchronous, full-duplex communications system including a client and a server, where the client is operative to transmit an information request to the server, thereby forming a communications channel between the client and the server, where the server is operative to generate an identifier identifying the channel, asynchronously transmit to the client in response to the information request a first response message indicating the identifier and thereafter a plurality of response messages to the client in response to the information request, each of the response messages including the identifier, and where the client is operative to asynchronously transmit a plurality of posting messages to the server, each of the posting messages including the identifier.
  • the client is operative to transmit the information request using an HTTP protocol GET request.
  • the server is operative to transmit the response messages using an HTTP protocol GET response.
  • the client is operative to transmit the posting messages using an HTTP protocol POST request.
  • the server is operative to maintain the communications channel subsequent to asynchronously transmitting the first of the response messages.
  • system further includes a proxy server, where the information request and the messages are transmitted via the proxy server, and where either of the first-mentioned server and the client is operative to periodically transmit a dummy message between the first-mentioned server and the client with sufficient frequency to prevent the proxy server from terminating the communications channel.
  • FIG. 1 is a simplified conceptual illustration of a computer network employing a request/response protocol in support of asynchronous full-duplex communications, constructed and operative in accordance with a preferred embodiment of the present invention
  • Fig. 2 is a simplified flowchart illustration of an exemplary method of operation of the system of Fig. 1, operative in accordance with a preferred embodiment of the present invention
  • Fig. 3 is a simplified flowchart illustration of an exemplary method of operation of the system of Fig. 1, operative in accordance with a preferred embodiment of the present invention
  • Fig. 4 is a simplified conceptual illustration of a computer network employing a request/response protocol in support of asynchronous full-duplex communications, constructed and operative in accordance with a preferred embodiment of the present invention
  • Fig. 5 is a simplified flowchart illustration of an exemplary method of operation of the system of Fig. 4, operative in accordance with a preferred embodiment of the present invention.
  • Fig. 1 is a simplified conceptual illustration of a computer network employing a request/response protocol in support of asynchronous full-duplex communications, constructed and operative in accordance with a preferred embodiment of the present invention.
  • a client computer 10 is configured to transmit an information request using a request/response protocol, such as by using the HTTP GET command, to a server 12 via a network 14, such as the Internet.
  • Server 12 is preferably configured to asynchronously transmit one or more messages to client 10 in the form of responses to the information request using the request/response protocol as described in greater detail hereinbelow.
  • Client 10 is likewise preferably configured to asynchronously transmit one or more messages to server 12 using a request/response protocol, such as by using the HTTP POST command.
  • the system of Fig. 1 may be used to communicate via a firewall 16.
  • server 12 does not terminate channel subsequent to sending its first message to client 10.
  • server 12 would normally send a content length header to client 10 indicating the length of the response to the HTTP GET request, with the connection being terminated once a message of the indicated length has been transmitted.
  • Server 12 may also terminate the request/response transaction using any one of several methods, such as by closing the HTTP connection (i.e., the underlying TCP/IP socket) or by sending a zero-length chunk where HTTP/1.1 chunked encoding is used.
  • server 12 does not provide a content length header, nor does server 12 explicitly terminate the request/response transaction after initially responding to the HTTP GET request.
  • client 10 and server 12 maintain the connection established between them, allowing server 12 to "respond" to client 10's HTTP GET request with as many messages as server 12 requires and whenever server 12 wishes, thus creating an asynchronous communications channel.
  • Fig. 2 is a simplified flowchart illustration of an exemplary method of operation of the system of Fig. 1 , operative in accordance with a preferred embodiment of the present invention.
  • client 10 generates an identifier that will be used to identify the communications channel between client 10 and server 12 (step 200).
  • Client 10 then appends the identifier to a request message, such as an HTTP GET message, and sends the request message to client 12 (step 210).
  • Server 12 upon receiving the request message and channel identifier from client 10, sends a response message to client 10, such as an HTTP GET response message, preferably likewise appending the channel identifier to the response message (step 220).
  • Server 12 maintains the communications by not sending a content length header to client 10 and by not terminating the connection by other means (step 230).
  • client 10 sending messages, such as HTTP POST messages, to server 12 including the channel identifier (step 240) and server 12 sending response messages, such as HTTP GET response messages, to client 10, also including the channel identifier (step 250).
  • Fig. 3 is a simplified flowchart illustration of an exemplary method of operation of the system of Fig. 1, operative in accordance with a preferred embodiment of the present invention.
  • the method of Fig. 3 is similar to the method of Fig. 2 with the notable exception that client 10 does not generate the channel identifier. Rather, server 12 generates a unique identifier which server 12 preferably communicates to client 10 as the channel identifier along with the first response message that server 12 sends to client 10. Client 10 is preferably configured to discern the channel identifier from this message. Thereafter, asynchronous, full-duplex communications between client 10 and server 12 proceed as described hereinabove.
  • Fig. 4 is a simplified conceptual illustration of a computer network employing a request/response protocol in support of asynchronous full-duplex communications, constructed and operative in accordance with a preferred embodiment of the present invention, and additionally to Fig. 5, which is a simplified flowchart illustration of an exemplary method of operation of the system of Fig. 4, operative in accordance with a preferred embodiment of the present invention.
  • the network of Fig. 4 is similar to the network of Fig. 1 with the notable exception that client 10 and server 12 communicate with each other via one or more proxy servers 18.
  • Proxy servers while generally configured to transparently relay messages between parties such as client 10 and server 12, are often configured to terminate links between communicating parties after no traffic is detected between the parties for a predetermined period of time.
  • server 12 periodically sends dummy response messages to client 10 (step 530) with a sufficient frequency such that any proxy servers encountered along the communications channel will not terminate the link between client 10 and server 12.
  • Server 12 may send these dummy messages at a configurable time interval any time after the communications channel is established, or only when the communications channel between server 12 and client 10 has been silent for a predetermined period of time.
  • Client 10 is preferably configured to identify and ignore dummy messages.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

A method for establishing an asynchronous, full-duplex communications channel between a client and a server, the method including a) transmitting an information request from the client to the server, thereby forming a communications channel between the client and the server, the information request including an identifier identifying the channel b) asynchronously transmitting a plurality of server-to-client messages as responses to the information request, each of the responses including the identifier and c) asynchronously transmitting a plurality of client-to-server messages, each of the responses including the identifier.

Description

ASYNCHRONOUS FULL-DUPLEX REQUEST/RESPONSE PROTOCOL
FIELD OF THE INVENTION The present invention relates to computer networks in general, and more particularly to asynchronous full-duplex communications between computers in a network environment.
BACKGROUND OF THE INVENTION The TCP/IP communications protocol is often employed for full- duplex asynchronous communications between computers in a network environment, such as the Internet. However, firewalls often prevent communications using ordinary TCP/IP sockets via arbitrary ports. In contrast, communications that employ request/response protocols, such as HTTP communications via port 80, are generally allowed through firewalls. However, in a client-server environment, such communications must always be initiated by the client, with communications from the server coming only in response to the client request. Thus, in a request/response system, a server-initiated asynchronous communication is not currently possible.
SUMMARY OF THE INVENTION
The present invention seeks to provide methods for employing network request/response protocols in support of asynchronous full-duplex communications between computers in a network environment. The present invention provides a novel way to use a request/response protocol in combination with a channel identifier in order to provide transparent, asynchronous, full- duplex communications between computers on a computer network, and particularly to allow for such communications via firewalls where other forms of communication might not be allowed to pass through the firewall. The present invention is additionally advantageous where the HTTP protocol is used in that the HTTP protocol provides built-in encryption in most browsers and servers, thus adding a layer of security to otherwise less secure asynchronous, full-duplex communications techniques.
There is thus provided in accordance with a preferred embodiment of the present invention a method for establishing an asynchronous, fiill-duplex communications channel between a client and a server, the method including a) transmitting an information request from the client to the server, thereby forming a communications channel between the client and the server, the information request including an identifier identifying the channel b) asynchronously transmitting a plurality of server-to-client messages as responses to the information request, each of the responses including the identifier and c) asynchronously transmitting a plurality of client-to-server messages, each of the responses including the identifier.
Further in accordance with a preferred embodiment of the present invention the transmitting step a) includes transmitting using an HTTP protocol GET request.
Still further in accordance with a preferred embodiment of the present invention the asynchronously transmitting step b) includes transmitting using an HTTP protocol GET response.
Additionally in accordance with a preferred embodiment of the present invention the asynchronously transmitting step c) includes transmitting using an HTTP protocol POST request.
Moreover in accordance with a preferred embodiment of the present invention the method further includes mamtaining the communications channel subsequent to asynchronously transmitting the first of the server-to-client messages.
Further in accordance with a preferred embodiment of the present invention any of the transmitting steps includes transmitting via a proxy server, and where the method further includes periodically transmitting a dummy message between the first-mentioned server and the client with sufficient frequency to prevent the proxy server from terminating the communications channel. There is also provided in accordance with a preferred embodiment of the present invention a method for establishing an asynchronous, full-duplex communications channel between a client and a server, the method including a) transmitting an information request from the client to the server, thereby forming a communications channel between the client and the server b) generating an identifier at the server identifying the channel c) asynchronously transmitting in response to the information request a first server-to-client message indicating the identifier d) asynchronously transmitting a plurality of server-to-client messages as responses to the information request, each of the responses including the identifier and e) asynchronously transmitting a plurality of client-to-server messages, each of the responses including the identifier.
Further in accordance with a preferred embodiment of the present invention the transmitting step a) includes transmitting using an HTTP protocol GET request. Still further in accordance with a preferred embodiment of the present invention the asynchronously transmitting steps c) and d) includes transmitting using an HTTP protocol GET response.
Additionally in accordance with a preferred embodiment of the present invention the asynchronously transmitting step e) includes transmitting using an HTTP protocol POST request.
Moreover in accordance with a preferred embodiment of the present invention the method further includes maintaining the communications channel subsequent to asynchronously transmitting the first server-to-client message.
Further in accordance with a preferred embodiment of the present invention any of the transmitting steps includes transmitting via a proxy server, and where the method further includes periodically transmitting a dummy message between the first-mentioned server and the client with sufficient frequency to prevent the proxy server from terminating the communications channel. There is additionally provided in accordance with a preferred embodiment of the present invention an asynchronous, full-duplex communications system including a client and a server, where the client is operative to transmit an information request to the server, thereby forming a communications channel between the client and the server, the information request including an identifier identifying the channel, where the server is operative to asynchronously transmit a plurality of response messages to the client in response to the information request, each of the response messages including the identifier, and where the client is operative to asynchronously transmit a plurality of posting messages to the server, each of the posting messages including the identifier. Further in accordance with a preferred embodiment of the present invention the client is operative to transmit the information request using an HTTP protocol GET request.
Still further in accordance with a preferred embodiment of the present invention the server is operative to transmit the response messages using an HTTP protocol GET response.
Additionally in accordance with a preferred embodiment of the present invention the client is operative to transmit the posting messages using an HTTP protocol POST request.
Moreover in accordance with a preferred embodiment of the present invention the server is operative to maintain the communications channel subsequent to asynchronously transmitting the first of the response messages.
Further in accordance with a preferred embodiment of the present invention the system further includes a proxy server, where the information request and the messages are transmitted via the proxy server, and where either of the first-mentioned server and the client is operative to periodically transmit a dummy message between the first-mentioned server and the client with sufficient frequency to prevent the proxy server from terminating the communications channel.
There is also provided in accordance with a preferred embodiment of the present invention an asynchronous, full-duplex communications system including a client and a server, where the client is operative to transmit an information request to the server, thereby forming a communications channel between the client and the server, where the server is operative to generate an identifier identifying the channel, asynchronously transmit to the client in response to the information request a first response message indicating the identifier and thereafter a plurality of response messages to the client in response to the information request, each of the response messages including the identifier, and where the client is operative to asynchronously transmit a plurality of posting messages to the server, each of the posting messages including the identifier.
Further in accordance with a preferred embodiment of the present invention the client is operative to transmit the information request using an HTTP protocol GET request.
Still further in accordance with a preferred embodiment of the present invention the server is operative to transmit the response messages using an HTTP protocol GET response. Additionally in accordance with a preferred embodiment of the present invention the client is operative to transmit the posting messages using an HTTP protocol POST request.
Moreover in accordance with a preferred embodiment of the present invention the server is operative to maintain the communications channel subsequent to asynchronously transmitting the first of the response messages.
Further in accordance with a preferred embodiment of the present invention the system further includes a proxy server, where the information request and the messages are transmitted via the proxy server, and where either of the first-mentioned server and the client is operative to periodically transmit a dummy message between the first-mentioned server and the client with sufficient frequency to prevent the proxy server from terminating the communications channel.
The disclosures of all patents, patent applications, and other publications mentioned in this specification and of the patents, patent applications, and other publications cited therein are hereby incorporated by reference. BRIEF DESCRIPTION OF THE DRAWINGS The present invention will be understood and appreciated more fully from the following detailed description taken in conjunction with the appended drawings in which:
Fig. 1 is a simplified conceptual illustration of a computer network employing a request/response protocol in support of asynchronous full-duplex communications, constructed and operative in accordance with a preferred embodiment of the present invention; Fig. 2 is a simplified flowchart illustration of an exemplary method of operation of the system of Fig. 1, operative in accordance with a preferred embodiment of the present invention;
Fig. 3 is a simplified flowchart illustration of an exemplary method of operation of the system of Fig. 1, operative in accordance with a preferred embodiment of the present invention;
Fig. 4 is a simplified conceptual illustration of a computer network employing a request/response protocol in support of asynchronous full-duplex communications, constructed and operative in accordance with a preferred embodiment of the present invention; and Fig. 5 is a simplified flowchart illustration of an exemplary method of operation of the system of Fig. 4, operative in accordance with a preferred embodiment of the present invention.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS Reference is now made to Fig. 1 which is a simplified conceptual illustration of a computer network employing a request/response protocol in support of asynchronous full-duplex communications, constructed and operative in accordance with a preferred embodiment of the present invention. In the system of Fig. 1 a client computer 10 is configured to transmit an information request using a request/response protocol, such as by using the HTTP GET command, to a server 12 via a network 14, such as the Internet. Server 12 is preferably configured to asynchronously transmit one or more messages to client 10 in the form of responses to the information request using the request/response protocol as described in greater detail hereinbelow. Client 10 is likewise preferably configured to asynchronously transmit one or more messages to server 12 using a request/response protocol, such as by using the HTTP POST command. The system of Fig. 1 may be used to communicate via a firewall 16.
It is a particular feature of the invention that once the channel created by client 10's information request is established between client 10 and server 12, server 12 does not terminate channel subsequent to sending its first message to client 10. For example, in the HTTP request/response protocol, server 12 would normally send a content length header to client 10 indicating the length of the response to the HTTP GET request, with the connection being terminated once a message of the indicated length has been transmitted. Server 12 may also terminate the request/response transaction using any one of several methods, such as by closing the HTTP connection (i.e., the underlying TCP/IP socket) or by sending a zero-length chunk where HTTP/1.1 chunked encoding is used. In the present embodiment, however, server 12 does not provide a content length header, nor does server 12 explicitly terminate the request/response transaction after initially responding to the HTTP GET request. Thus, both client 10 and server 12 maintain the connection established between them, allowing server 12 to "respond" to client 10's HTTP GET request with as many messages as server 12 requires and whenever server 12 wishes, thus creating an asynchronous communications channel.
Reference is now made to Fig. 2 which is a simplified flowchart illustration of an exemplary method of operation of the system of Fig. 1 , operative in accordance with a preferred embodiment of the present invention. In the method of Fig. 2 client 10 generates an identifier that will be used to identify the communications channel between client 10 and server 12 (step 200). Client 10 then appends the identifier to a request message, such as an HTTP GET message, and sends the request message to client 12 (step 210). Server 12, upon receiving the request message and channel identifier from client 10, sends a response message to client 10, such as an HTTP GET response message, preferably likewise appending the channel identifier to the response message (step 220). Server 12 maintains the communications by not sending a content length header to client 10 and by not terminating the connection by other means (step 230). Once the communications channel is established between client 10 and server 12, either may communicate with the other in an asynchronous, full-duplex fashion, with client 10 sending messages, such as HTTP POST messages, to server 12 including the channel identifier (step 240) and server 12 sending response messages, such as HTTP GET response messages, to client 10, also including the channel identifier (step 250).
Reference is now made to Fig. 3 which is a simplified flowchart illustration of an exemplary method of operation of the system of Fig. 1, operative in accordance with a preferred embodiment of the present invention. The method of Fig. 3 is similar to the method of Fig. 2 with the notable exception that client 10 does not generate the channel identifier. Rather, server 12 generates a unique identifier which server 12 preferably communicates to client 10 as the channel identifier along with the first response message that server 12 sends to client 10. Client 10 is preferably configured to discern the channel identifier from this message. Thereafter, asynchronous, full-duplex communications between client 10 and server 12 proceed as described hereinabove.
Reference is now made to Fig. 4 which is a simplified conceptual illustration of a computer network employing a request/response protocol in support of asynchronous full-duplex communications, constructed and operative in accordance with a preferred embodiment of the present invention, and additionally to Fig. 5, which is a simplified flowchart illustration of an exemplary method of operation of the system of Fig. 4, operative in accordance with a preferred embodiment of the present invention. The network of Fig. 4 is similar to the network of Fig. 1 with the notable exception that client 10 and server 12 communicate with each other via one or more proxy servers 18. Proxy servers, while generally configured to transparently relay messages between parties such as client 10 and server 12, are often configured to terminate links between communicating parties after no traffic is detected between the parties for a predetermined period of time. To overcome this problem and allow client 10 and server 12 to continue to maintain their communications channel for an indefinite period of time even in the absence of communications between them, in the method of Fig. 5 server 12 periodically sends dummy response messages to client 10 (step 530) with a sufficient frequency such that any proxy servers encountered along the communications channel will not terminate the link between client 10 and server 12. Server 12 may send these dummy messages at a configurable time interval any time after the communications channel is established, or only when the communications channel between server 12 and client 10 has been silent for a predetermined period of time. Client 10 is preferably configured to identify and ignore dummy messages.
It is appreciated that one or more of the steps of any of the methods described herein may be omitted or carried out in a different order than that shown, without departing from the true spirit and scope of the invention.
While the present invention as disclosed herein may or may not have been described with reference to specific hardware or software, the present invention has been described in a manner sufficient to enable persons of ordinary skill in the art to readily adapt commercially available hardware and software as may be needed to reduce any of the embodiments of the present invention to practice without undue experimentation and using conventional techniques.
While the present invention has been described with reference to one or more specific embodiments, the description is intended to be illustrative of the invention as a whole and is not to be construed as limiting the invention to the embodiments shown. It is appreciated that various modifications may occur to those skilled in the art that, while not specifically shown herein, are nevertheless within the true spirit and scope of the invention.

Claims

CLAIMS What is claimed is:
1. A method for establishing an asynchronous, full-duplex communications channel between a client and a server, the method comprising: a) transmitting an information request from said client to said server, thereby forming a communications channel between said client and said server, said information request comprising an identifier identifying said channel; b) asynchronously transmitting a plurality of server-to-client messages as responses to said information request, each of said responses comprising said identifier; and c) asynchronously transmitting a plurality of client-to-server messages, each of said responses comprising said identifier.
2. A method according to claim 1 wherein said transmitting step a) comprises transmitting using an HTTP protocol GET request.
3. A method according to claim 1 wherein said asynchronously transmitting step b) comprises transmitting using an HTTP protocol GET response.
4. A method according to claim 1 wherein said asynchronously transmitting step c) comprises transmitting using an HTTP protocol POST request.
5. A method according to claim 1 and further comprising maintaining said communications channel subsequent to asynchronously transmitting the first of said server-to-client messages.
6. A method according to claim 1 wherein any of said transmitting steps comprises transmitting via a proxy server, and wherein the method further comprises periodically transmitting a dummy message between said first- mentioned server and said client with sufficient frequency to prevent said proxy server from terminating said communications channel.
7. A method for establishing an asynchronous, full-duplex communications channel between a client and a server, the method comprising: a) transmitting an information request from said client to said server, thereby forming a communications channel between said client and said server; b) generating an identifier at said server identifying said channel; c) asynchronously transmitting in response to said information request a first server-to-client message indicating said identifier; d) asynchronously transmitting a plurality of server-to-client messages as responses to said information request, each of said responses comprising said identifier; and e) asynchronously transmitting a plurality of client-to-server messages, each of said responses comprising said identifier.
8. A method according to claim 7 wherein said transmitting step a) comprises transmitting using an HTTP protocol GET request.
9. A method according to claim 7 wherein said asynchronously transmitting steps c) and d) comprises transmitting using an HTTP protocol GET response.
10. A method according to claim 7 wherein said asynchronously transmitting step e) comprises transmitting using an HTTP protocol POST request.
11. A method according to claim 7 and further comprising maintaining said communications channel subsequent to asynchronously transmitting said first server-to-client message.
12. A method according to claim 7 wherein any of said transmitting steps comprises transmitting via a proxy server, and wherein the method further comprises periodically transmitting a dummy message between said first- mentioned server and said client with sufficient frequency to prevent said proxy server from terminating said communications channel.
13. An asynchronous, full-duplex communications system comprising: a client; and a server, wherein said client is operative to transmit an information request to said server, thereby forming a communications channel between said client and said server, said information request comprising an identifier identifying said channel, wherein said server is operative to asynchronously transmit a plurality of response messages to said client in response to said information request, each of said response messages comprising said identifier, and wherein said client is operative to asynchronously transmit a plurality of posting messages to said server, each of said posting messages comprising said identifier.
14. A system according to claim 13 wherein said client is operative to transmit said information request using an HTTP protocol GET request.
15. A system according to claim 13 wherein said server is operative to transmit said response messages using an HTTP protocol GET response.
16. A system according to claim 13 wherein said client is operative to transmit said posting messages using an HTTP protocol POST request.
17. A system according to claim 13 wherein said server is operative to maintain said communications channel subsequent to asynchronously transmitting the first of said response messages.
18. A system according to claim 13 and further comprising a proxy server, wherein said information request and said messages are transmitted via said proxy server, and wherein either of said first-mentioned server and said client is operative to periodically transmit a dummy message between said first- mentioned server and said client with sufficient frequency to prevent said proxy server from terminating said communications channel.
19. An asynchronous, full-duplex communications system comprising: a client; and a server, wherein said client is operative to transmit an information request to said server, thereby forming a communications channel between said client and said server, wherein said server is operative to generate an identifier identifying said channel, asynchronously transmit to said client in response to said information request a first response message indicating said identifier and thereafter a plurality of response messages to said client in response to said information request, each of said response messages comprising said identifier, and wherein said client is operative to asynchronously transmit a plurality of posting messages to said server, each of said posting messages comprising said identifier.
20. A system according to claim 19 wherein said client is operative to transmit said information request using an HTTP protocol GET request.
21. A system according to claim 19 wherein said server is operative to transmit said response messages using an HTTP protocol GET response.
22. A system according to claim 19 wherein said client is operative to transmit said posting messages using an HTTP protocol POST request.
23. A system according to claim 19 wherein said server is operative to maintain said communications channel subsequent to asynchronously transmitting the first of said response messages.
24. A system according to claim 19 and further comprising a proxy server, wherein said information request and said messages are transmitted via said proxy server, and wherein either of said first-mentioned server and said client is operative to periodically transmit a dummy message between said first- mentioned server and said client with sufficient frequency to prevent said proxy server from terminating said communications channel.
PCT/US2001/041921 2000-09-06 2001-08-28 Asynchronous full-duplex request/response protocol WO2002021795A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001287214A AU2001287214A1 (en) 2000-09-06 2001-08-28 Asynchronous full-duplex request/response protocol

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US65641200A 2000-09-06 2000-09-06
US09/656,412 2000-09-06

Publications (2)

Publication Number Publication Date
WO2002021795A2 true WO2002021795A2 (en) 2002-03-14
WO2002021795A3 WO2002021795A3 (en) 2003-01-30

Family

ID=24632926

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/041921 WO2002021795A2 (en) 2000-09-06 2001-08-28 Asynchronous full-duplex request/response protocol

Country Status (2)

Country Link
AU (1) AU2001287214A1 (en)
WO (1) WO2002021795A2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2420256A (en) * 2004-11-16 2006-05-17 Skinkers Ltd Obtaining data from a server using first and second identifiers
EP1768349A1 (en) * 2005-09-22 2007-03-28 Siemens Aktiengesellschaft Bidirectional asynchronous data communication
US7401353B2 (en) 2003-01-23 2008-07-15 Stonesoft Corporation Detecting and blocking malicious connections
US7863822B2 (en) 2004-02-02 2011-01-04 Volkswagen Aktienegesellschaft Operating element for a vehicle
EP1418732A3 (en) * 2002-09-19 2011-05-04 Ricoh Company, Ltd. Communication system implementing a plurality of communication apparatuses as communication client and communication server for exchanging operation requests and operation responses

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6012090A (en) * 1997-03-14 2000-01-04 At&T Corp. Client-side parallel requests for network services using group name association
US6052710A (en) * 1996-06-28 2000-04-18 Microsoft Corporation System and method for making function calls over a distributed network
EP1081918A2 (en) * 1999-09-04 2001-03-07 Hewlett-Packard Company Providing secure access through network firewalls

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6052710A (en) * 1996-06-28 2000-04-18 Microsoft Corporation System and method for making function calls over a distributed network
US6012090A (en) * 1997-03-14 2000-01-04 At&T Corp. Client-side parallel requests for network services using group name association
EP1081918A2 (en) * 1999-09-04 2001-03-07 Hewlett-Packard Company Providing secure access through network firewalls

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1418732A3 (en) * 2002-09-19 2011-05-04 Ricoh Company, Ltd. Communication system implementing a plurality of communication apparatuses as communication client and communication server for exchanging operation requests and operation responses
US7401353B2 (en) 2003-01-23 2008-07-15 Stonesoft Corporation Detecting and blocking malicious connections
US7863822B2 (en) 2004-02-02 2011-01-04 Volkswagen Aktienegesellschaft Operating element for a vehicle
GB2420256A (en) * 2004-11-16 2006-05-17 Skinkers Ltd Obtaining data from a server using first and second identifiers
GB2420256B (en) * 2004-11-16 2007-05-23 Skinkers Ltd Provision of personal data in a communications network
EP1768349A1 (en) * 2005-09-22 2007-03-28 Siemens Aktiengesellschaft Bidirectional asynchronous data communication
DE102005045346A1 (en) * 2005-09-22 2007-04-05 Siemens Ag Bidirectional asynchronous data communication
DE102005045346B4 (en) * 2005-09-22 2007-12-06 Siemens Ag Bidirectional asynchronous data communication

Also Published As

Publication number Publication date
WO2002021795A3 (en) 2003-01-30
AU2001287214A1 (en) 2002-03-22

Similar Documents

Publication Publication Date Title
US7734791B2 (en) Asynchronous hypertext messaging
US7769871B2 (en) Technique for sending bi-directional messages through uni-directional systems
US7814208B2 (en) System and method for projecting content beyond firewalls
EP1792468B1 (en) Connectivity over stateful firewalls
EP1892887B1 (en) Communication method between communication devices and communication apparatus
US7184445B2 (en) Architecture and API for of transport and upper layer protocol processing acceleration
US7206932B1 (en) Firewall-tolerant voice-over-internet-protocol (VoIP) emulating SSL or HTTP sessions embedding voice data in cookies
US20080141020A1 (en) Method and Apparatus for Providing Secure Streaming Data Transmission Facilities Using Unreliable Protocols
US20070283141A1 (en) Method and System for Establishing the Identity of an Originator of Computer Transactions
WO2001003398A2 (en) Dynamic connection to multiple origin servers in a transcoding proxy
WO2003036913A2 (en) Selecting a security format conversion for wired and wireless devices
EP1081918A3 (en) Providing secure access through network firewalls
CN103108037B (en) A kind of communication means, Web server and Web communication system
US20100251269A1 (en) Application-specific serial port redirector
EP1665725B1 (en) Remote ipsec security association management
CN108566379B (en) Hidden data transmission synchronization method based on protocol field redundancy in P2P network
EP1881668A1 (en) The method, system and apparatus for transferring syslog message
WO2002021795A2 (en) Asynchronous full-duplex request/response protocol
CN100428748C (en) Dual-status-based multi-party communication method
JP2005175865A (en) Repeating device, terminal equipment, network system, network access method, and program
EP1340355A1 (en) Data network-based system
KR20010056418A (en) Method keeping end-to-end security in application level for wireless application protocol
JP2000341326A (en) Message transmitter-receiver and message transmission/ reception method
US7257838B2 (en) Information processing system and information processing method capable of communicating with impermissible protocol
Hardy et al. Application protocols

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP