Method and system for layering an infinite request/reply data stream on finite, unidirectional, time-limited transports
First Claim
1. In a computer network having a client and a server, a method comprising:
- establishing an IN channel for client-to-server traffic, the IN channel having a lifetime that expires and wherein the IN channel complies with a hypertext transfer protocol;
establishing an OUT channel for server-to-client traffic, the OUT channel having a lifetime that expires and wherein the OUT channel complies with the hypertext transfer protocol;
communicating data from the client to the server via the IN channel;
communicating data from the server to the client on the OUT channel;
prior to the expiration of the IN channel, establishing a new IN channel, wherein the new IN channel complies with the hypertext transfer protocol, wherein the expiration of the IN channel is determined by counting a size of request data sent from the client to the server with respect to the lifetime of the IN channel; and
prior to the expiration of the OUT channel, establishing a new OUT channel, wherein the new OUT channel complies with the hypertext transfer protocol, wherein the expiration of the OUT channel is determined by counting a size of data sent from the server to the client with respect to the lifetime of the OUT channel, and wherein the establishing of the new IN channel and the new OUT channel recycle the established IN channel and OUT channel to provide a virtual connection between the client and the server having a lifetime that does not expire.
2 Assignments
0 Petitions
Accused Products
Abstract
An improved method and system for layering RPC communications on top of an HTTP transport. An RPC data stream of individual request/reply packets is mapped to HTTP primitives, and RPC requests are mapped to one large, HTTP, POST-like request (IN channel). Corresponding replies are mapped to another large, HTTP, GET-like request (OUT channel). The client establishes the IN channel and OUT channel as simultaneously open connections with a large content-length for each. Before the content-length is exhausted, the client and server open a new IN or OUT channel while the corresponding channel is still alive, so that there is always at least one opened IN or OUT channel available. If traffic is too infrequent, the client keeps the connection alive so that it will not be closed for being idle. This provides a bi-directional virtual connection that remains open for an unlimited time for tunneling unlimited amounts of RPC traffic.
-
Citations
22 Claims
-
1. In a computer network having a client and a server, a method comprising:
-
establishing an IN channel for client-to-server traffic, the IN channel having a lifetime that expires and wherein the IN channel complies with a hypertext transfer protocol; establishing an OUT channel for server-to-client traffic, the OUT channel having a lifetime that expires and wherein the OUT channel complies with the hypertext transfer protocol; communicating data from the client to the server via the IN channel; communicating data from the server to the client on the OUT channel; prior to the expiration of the IN channel, establishing a new IN channel, wherein the new IN channel complies with the hypertext transfer protocol, wherein the expiration of the IN channel is determined by counting a size of request data sent from the client to the server with respect to the lifetime of the IN channel; and prior to the expiration of the OUT channel, establishing a new OUT channel, wherein the new OUT channel complies with the hypertext transfer protocol, wherein the expiration of the OUT channel is determined by counting a size of data sent from the server to the client with respect to the lifetime of the OUT channel, and wherein the establishing of the new IN channel and the new OUT channel recycle the established IN channel and OUT channel to provide a virtual connection between the client and the server having a lifetime that does not expire. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. In a computer network having a client and a server, a method comprising:
-
receiving, at a first proxy, a request from a client to establish an OUT channel for server-to-client traffic, and in response, establishing a connection with the server as the OUT channel, wherein the OUT channel complies with a hypertext transfer protocol; receiving, at a second proxy, a request from a client to establish an IN channel for client-to-server traffic, and in response, establishing a connection with the server as the IN channel, wherein the IN channel complies with the hypertext transfer protocol; at the second proxy via the IN channel, receiving data from the client directed to the server and forwarding it to the server; at the first proxy via the OUT channel, receiving data from the server directed to the client and forwarding it to the client; receiving at the first proxy a request from the server to recycle the OUT channel to a new OUT channel corresponding to a third proxy, and in response, transitioning server-to-client traffic to the new OUT channel, wherein the new OUT channel complies with the hypertext transfer protocol, and wherein the request from the server to recycle the OUT channel is generated before expiration of the OUT channel, wherein the expiration is determined by counting a size of request data sent from the server to the client; and receiving at the second proxy a request from the client to recycle the IN channel to a new IN channel corresponding to a fourth proxy, and in response, transitioning client-to-server traffic to the new IN channel, wherein the new IN channel complies with the hypertext transfer protocol, and wherein the request from the client to recycle the IN channel is generated before expiration of the IN channel, wherein the expiration is determined by counting a size of data sent from the client to the server. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
-
21. A method of creating a bi-directional virtual channel for transporting RPC information between a client and a server comprising:
-
establishing a first HTTP IN channel having a predetermined lifetime, wherein the first HTTP IN channel automatically expires upon reaching the predetermined lifetime and wherein the first HTTP IN channel transports a first portion of RPC information from the client to the server; and prior to expiration of the first HTTP IN channel, recycling the IN channel by establishing a second HTTP IN channel, the second HTTP IN channel transports a second portion of RPC information from the client to the server following expiration of the first HTTP IN channel, wherein the expiration of the first HTTP IN channel is determined by counting the size of the request data sent to the server with respect to the predetermined lifetime of the first HTTP IN channel. - View Dependent Claims (22)
-
Specification