Multiple procedure calls in a single request

Electrical computers and digital processing systems: multicomput – Computer-to-computer data routing – Least weight routing

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C709S241000

Reexamination Certificate

active

06321274

ABSTRACT:

BACKGROUND OF THE INVENTION
The invention is directed to distributed computing Systems.
A distributed computing system may include a client computer that communicates with a server computer over a network. In such a system, a client program (i.e., a program running on the client computer) causes a server program (i.e., a program running on the server computer) to perform an operation by sending a request to the server program over the network. The server program responds by performing the operation and returning any resulting data to the client program over the network.
One way of invoking an operation at the server is to pack all of the parameters for the operation together and to transmit them to the server for processing. After performing the operation, the server returns the data to the client in the same way.
Exchanges of requests and responses between the client and the server may be made using the Remote Procedure Call (“RPC”) protocol. The RPC protocol permits the client program to communicate with the server program by making a procedure call to the server program. RPC software running on the client computer automatically transmits the procedure call to the server computer. RPC software running on the server computer receives the procedure call and initiates a response by the server program. The RPC software then returns the results to the client computer.
SUMMARY OF THE INVENTION
A computer-implemented technique combines multiple procedure calls into a single request in a client-server system, such as a system using the RPC protocol. Calls that do not require an immediate response are delayed until a call needing a response is generated. At that point, the calls are packaged together and transmitted to the server. Thus, for example, calls to open an object and to mark the object as read may be delayed and transmitted with a call to read data from the object.
The technique promises to substantially reduce the number of requests transmitted from the client to the server. This reduction provides increased throughput for the client by eliminating delays associated with transmission of calls for which no response (or no immediate response) is necessary.
The reduction in the number of requests also reduces the amount of information that needs to be transmitted between the client and the server. This results in reduced bandwidth requirements between the client and the server. Each request transmitted from the client to the server includes data embodying the request (e.g., an opcode and supporting information) and overhead data (e.g., information providing data integrity and security). Accordingly, bundling, for example, three calls into a single request eliminates the transmission overhead associated with two of the calls.
Combining calls into a single request will permit more efficient operation of the server when calls are related to each other. Related calls are directed to the same set of data. The server will operate more efficiently when it can operate on the same set of data in response to several consecutive calls because it will not need to reload the set of data into memory in response to each call. By contrast, when multiple calls to the same set of data are transmitted in different requests, the server will typically serve other clients and/or perform other operations between calls and, therefore, will need to reload the set of data into memory in response to each call.
In one aspect, the technique features processing calls to a server computer in a system that includes a client computer and a server computer connected to each other by a network. Information identifying first and second calls to the server computer is received at the client computer. The client computer then combines the information identifying the two calls to form a request. Finally, the client computer transmits the request to the server computer over the network.
According to the technique, the client is the entity that generates a request and the server is the entity that processes the request. Thus, for, example, when the technique is used for communication between two systems that provide server functions (i.e., server-to-server communication), the system making the request would be the client and the system processing the request would be the server.
Implementations of the technique may include one or more of the following features.
An identifier related to results of the first call may be included in the request, and may be returned prior to receiving the information identifying the second call. The identifier may also be included in the information identifying the second call. The identifier may be a pointer to a location in which the results of the first call will be stored.
At the server computer, the technique may include processing the first call and associating results of processing the first call with the identifier. When the identifier is included in the information identifying the second call, the server computer uses the identifier to obtain the results of processing the first call. Thereafter, the server computer processes the second call using the results of processing the first call.
The information identifying the first call may include an indicator as to whether transmission of the first call may be deferred. If such an indicator is present, then the information identifying the first and second calls is combined to form a request only when the first call may be deferred.
The first call may be produced by a first process while the second call is produced by a second process. Similarly, the first and second calls may be produced by different subprocesses of a process.
The information identifying the calls may be generated in compliance with the RPC protocol. The RPC protocol is discussed, for example, in “Microsoft RPC Programming Guide”, John Shirley and Ward Rosenberry, O'Reilly & Associates, Inc., Sebastopol, Calif., 1995, which is incorporated herein by reference.
The technique may be implemented in hardware or software, or a combination of both. Preferably, the technique is implemented in computer programs executing on programmable computers that each include a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device, and at least one output device. Program code is applied to data entered using the input device to perform the functions described above and to generate output information. The output information is applied to one or more output devices.
Each program is preferably implemented in a high level procedural or object oriented programming language to communicate with a computer system. However, the programs can be implemented in assembly or machine language, if desired. In any case, the language may be a compiled or interpreted language.
Each such computer program is preferably stored on a storage medium or device (e.g., ROM or magnetic diskette) that is readable by a general or special purpose programmable computer for configuring and operating the computer when the storage medium or device is read by the computer to perform the procedures described in this document. The system may also be considered to be implemented as a computer-readable storage medium, configured with a computer program, where the storage medium so configured causes a computer to operate in a specific and predefined manner.
Other features and advantages will become apparent from the following description, including the drawings, and from the claims.


REFERENCES:
patent: 4920484 (1990-04-01), Ranade
patent: 5046000 (1991-09-01), Hsu
patent: 5218695 (1993-06-01), Noveck et al.
patent: 5218699 (1993-06-01), Brandle et al.
patent: 5247676 (1993-09-01), Ozur et al.
patent: 5283856 (1994-02-01), Gross et al.
patent: 5434978 (1995-07-01), Docker et al.
patent: 5442791 (1995-08-01), Wrabetz et al.
patent: 5608870 (1997-03-01), Valiant
patent: 5613155 (1997-03-01), Baldiga et al.
patent: 5617570 (1997-04-01), Russell et al.
patent: 5768515 (1998-06-01), Choquier et al.
patent: 5781787 (1998-07-01), Sh

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Multiple procedure calls in a single request does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Multiple procedure calls in a single request, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Multiple procedure calls in a single request will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2604146

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.