In situ processing of remote procedure calls
First Claim
1. In a computer system executing client and server procedures of a distributed computer program, wherein the server procedure is executed in response to a remote procedure call from the client procedure, the remote procedure call including at least one remote procedure call parameter, a method of communicating the at least one remote procedure call parameter from the client procedure to the server procedure, the method comprising:
- receiving a data stream containing the at least one remote procedure call parameter from the client procedure at a buffer accessible to the server procedure;
unmarshalling the at least one remote procedure call parameter in the buffer in place while the at least one remote procedure call parameter resides in the buffer; and
activating the server procedure with the at least one remote procedure call parameter residing in the buffer.
2 Assignments
0 Petitions
Accused Products
Abstract
A computer network includes a client and a server which are preferably independently operable computers that cooperate to perform different procedures of an application program. The server executes its procedure in response to a remote procedure call transmitted over the computer network from the client. The remote procedure call typically includes one or more data structures or parameters used as arguments for executing the remote procedure. The server receives the remote procedure call at an RPC buffer. In accordance with the present invention, the server interprets the parameters while the remote procedure call resides in the RPC buffer whenever the selected format of the parameters of the remote procedure call matches the data structure format processed by the server.
41 Citations
23 Claims
-
1. In a computer system executing client and server procedures of a distributed computer program, wherein the server procedure is executed in response to a remote procedure call from the client procedure, the remote procedure call including at least one remote procedure call parameter, a method of communicating the at least one remote procedure call parameter from the client procedure to the server procedure, the method comprising:
-
receiving a data stream containing the at least one remote procedure call parameter from the client procedure at a buffer accessible to the server procedure;
unmarshalling the at least one remote procedure call parameter in the buffer in place while the at least one remote procedure call parameter resides in the buffer; and
activating the server procedure with the at least one remote procedure call parameter residing in the buffer. - View Dependent Claims (2, 3, 4)
determining whether the at least one remote procedure call parameter is of the same byte order format as the byte order format processed by the server; and
responsive to determining the at least one remote procedure call parameter and the data structure format processed by the server are of different byte order formats, converting the byte order format of the at least one remote procedure call parameter to match the byte order format of the data structure format processed by the server in place, while the at least one remote procedure call parameter resides in the buffer.
-
-
4. The method of claim 1 wherein said unmarshalling unmarshals a parameter for which the server procedure accepts a reference by providing the server procedure with a reference to a portion of the buffer in which the parameter resides.
-
5. In a computer network having a client and a server that execute respective client and server procedures of a software program, the server executing the server procedure in response to a remote procedure call from the client transmitted over the computer network, the remote procedure call including plural remote procedure call parameters of selected formats, the server receiving the remote procedure call parameters at a buffer, a method of providing the remote procedure call parameters to the server procedure at the server, comprising:
-
determining at the server whether the selected format of a remote procedure call parameter in the buffer matches a data structure format processed by the server;
responsive to determining the selected format of the remote procedure call parameter in the buffer matches the data structure format processed by the server, unmarshalling the remote procedure call parameter in place, while it resides in the buffer; and
activating the server procedure with the parameter residing in the buffer. - View Dependent Claims (6, 7, 8, 9, 10, 11)
determining at the server whether the remote procedure call parameters are of the same byte order format as the data structure format processed by the server; and
responsive to determining the remote procedure call parameters and the data structure format processed by the server are of different byte order formats, converting the byte order format of the remote procedure call parameters to match the byte order format of the data structure format processed by the server in place, while the remote procedure call parameters reside in the buffer.
-
-
8. The method of claim 5 wherein the remote procedure call parameters are of a first byte order format and the data structure format processed by the server computer is of a second byte order format, the method further comprising converting the first byte order format of the remote procedure call parameters to the second byte order format in place, while the remote procedure call parameters reside in the buffer.
-
9. The method of claim 5 wherein the predetermined data structure format processed by the server includes a server memory format.
-
10. The method of claim 5 wherein the remote procedure call parameters include RPC data structures having selected formats, the method further comprising:
-
determining at the server whether the selected formats of the remote procedure call parameters and RPC data structures match a data structure format processed by the server; and
responsive to determining the selected format of a remote procedure call parameter or RPC data structure in the buffer matches the data structure format processed by the server, interpreting the remote procedure call parameter or RPC data structure in place, while it resides in the buffer.
-
-
11. The method of claim 5 wherein the data structure format processed by the server is a data structure format selected from the group consisting of the size of data structures, the size of types, the layout of individual fields within data structures, and the alignment of data structures relative to data structure boundaries.
-
12. In a computer network having a client and a server that execute respective client and server procedures of a software program, the server executing the server procedure in response to a remote procedure call transmitted over the computer network from the client, the server receiving the remote procedure call at an RPC buffer, the server having a byte order format for processing, the remote procedure call including an RPC parameter of a selected byte order format, a method of formatting the remote procedure call for interpretation by the server procedure, comprising:
-
determining at the server whether the RPC parameter is of a different byte order format than the byte order format processed by the server; and
responsive to determining the RPC parameter is of a different byte order format than the byte order format processed by the server, converting, in place, the byte order format of the RPC parameter to match the byte order format processed by the server, while the RPC parameter resides in the RPC buffer. - View Dependent Claims (13, 14)
responsive to determining the RPC data structure and the data structure format processed by the server are of different byte order formats, converting the byte order format of the RPC data structure in place to match the byte order format of the data structure format processed by the server while the RPC data structure resides in the RPC buffer.
-
-
14. A computer-readable storage medium having computer-executable instructions for performing the method recited in claim 12.
-
15. In a method of distributing execution of a program between a client computer and a server computer that are in communication, the client computer and the server computer executing respective client and server procedures of the program, the server computer executing the server procedure in response to a remote procedure call to the server procedure transmitted by the client computer to an RPC buffer of the server computer, the remote procedure call including an RPC parameter, the improvement comprising:
-
arranging the RPC parameter within the client computer in a format that matches a format of data structures processed by the server computer; and
after the remote procedure call is transmitted to the RPC buffer, interpreting the RPC parameter in place with the server procedure within the server computer while the RPC parameter resides in the RPC buffer. - View Dependent Claims (16, 17, 18, 19, 20, 21)
determining at the server computer whether the RPC parameter is of the same byte order format as the data structure format processed by the server computer; and
responsive to determining the RPC parameter and the data structure format processed by the server computer are of different byte order formats, converting the byte order format of the RPC parameter to match the byte order format of the data structure format processed by the server computer in place, while the RPC parameter resides in the RPC buffer.
-
-
18. The method of claim 15 wherein the RPC parameter is of a first byte order format and the data structure format processed by the server computer is of a second byte order format, the method further comprising converting the first byte order format of the RPC parameter to the second byte order format in place, while the RPC parameter resides in the RPC buffer on the server computer.
-
19. The method of claim 15 wherein the data structure format processed by the server computer includes a server memory format.
-
20. The method of claim 15 wherein the remote procedure call parameter includes RPC data structures having selected formats, the method further comprising:
-
arranging the RPC data structures within the client computer in a format that matches a format of data structures processed by the server computer; and
after the remote procedure call is transmitted to the RPC buffer, interpreting the RPC data structures with the server procedure in place within the server computer while the RPC parameter resides in the RPC buffer.
-
-
21. The method of claim 15 wherein a client stub procedure marshals the remote procedure call parameter for transmission over the computer network and interpreting the remote procedure call parameter while it resides in the RPC buffer includes unmarshalling the remote procedure call parameter with a server stub procedure.
-
22. In a server computer executing a server procedure of a software program in communication with a client procedure of a software program executing on a client computer, the server computer executing the server procedure in response to a remote procedure call from the client computer transmitted over a computer network, the remote procedure call including a remote procedure call parameter of a selected format, the remote procedure call parameter specifiable to the remote procedure with a reference pointing to the remote procedure call parameter, the server computer receiving the remote procedure call parameter at an RPC buffer, a method of delivering the remote procedure call parameter to the server procedure, comprising:
-
comparing at the server computer the selected format of the remote procedure call parameter in the RPC buffer with a data structure format processed by the server computer;
responsive to determining the results of said comparing indicate that the selected format of the remote procedure call parameter matches the data structure format processed by the server computer, unmarshalling the remote procedure call parameter in the RPC buffer in situ without allocating server memory for the remote procedure call parameter and without copying the remote procedure call parameter; and
activating the server procedure with a reference to the remote procedure call parameter in the RPC buffer. - View Dependent Claims (23)
responsive to determining said comparing indicates that the selected format of the remote procedure call parameter does not match a data structure format processed by the server, unmarshalling the remote procedure call parameter in the RPC buffer by copying the parameter from the RPC buffer into an allocated memory location.
-
Specification