Remote procedure call method
First Claim
1. In a computer network having a client and a server that execute respective client and server procedures of an application 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 an RPC buffer and executing a server stub procedure, a method of providing the remote procedure call parameters to the server procedure at the server, comprising:
- determining with the server stub procedure at the server whether the selected format of a remote procedure call parameter in the RPC buffer matches a data structure format processed by the server;
whenever the selected format of the remote procedure call parameter in the RPC buffer matches the data structure format processed by the server, unmarshalling the remote procedure call parameter in place with the server stub procedure, while the remote procedure call parameter resides in the RPC buffer;
whenever the selected format of the remote procedure call parameter in the RPC buffer does not match the data structure format processed by the server, unmarshalling the remote procedure call parameter with the server stub procedure while the remote procedure call parameter resides in the server; and
activating the server procedure with the server stub procedure.
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.
-
Citations
14 Claims
-
1. In a computer network having a client and a server that execute respective client and server procedures of an application 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 an RPC buffer and executing a server stub procedure, a method of providing the remote procedure call parameters to the server procedure at the server, comprising:
-
determining with the server stub procedure at the server whether the selected format of a remote procedure call parameter in the RPC buffer matches a data structure format processed by the server;
whenever the selected format of the remote procedure call parameter in the RPC buffer matches the data structure format processed by the server, unmarshalling the remote procedure call parameter in place with the server stub procedure, while the remote procedure call parameter resides in the RPC buffer;
whenever the selected format of the remote procedure call parameter in the RPC buffer does not match the data structure format processed by the server, unmarshalling the remote procedure call parameter with the server stub procedure while the remote procedure call parameter resides in the server; and
activating the server procedure with the server stub procedure. - View Dependent Claims (2, 3, 4, 5, 6, 7, 10)
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
whenever 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 RPC buffer.
-
-
3. The method of claim 1 in which 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 RPC buffer.
-
4. The method of claim 1 in which at least one of the remote procedure call parameters is interpreted without copying it from the RPC buffer whenever the selected format of the remote procedure call parameter in the RPC buffer matches the data structure format processed by the server.
-
5. The method of claim 1 in which the data structure format processed by the server includes a server memory format.
-
6. The method of claim 1 in which 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
whenever the selected format of a remote procedure call parameter or RPC data structure in the RPC 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 RPC buffer.
-
-
7. A computer-readable storage medium having computer-executable instructions for performing the steps recited in claim 1.
-
10. The method of claim 1 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.
-
8. In a server computer executing a server procedure of an application program in communication with a client procedure of an application program executing on a client computer, the server executing the server procedure in response to a remote procedure call from the client 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 pointer pointing to the remote procedure call parameter, the server receiving the remote procedure call parameter at an RPC buffer and executing a server stub procedure, a method of delivering the remote procedure call parameter to the server procedure, comprising:
-
with the server stub procedure, comparing at the server the selected format of the remote procedure call parameter in the RPC buffer with a data structure format processed by the server;
with the server stub procedure, unmarshalling the remote procedure call parameter in the RPC buffer in situ by providing the server procedure with a pointer to the remote procedure call parameter without allocating server memory for the remote procedure call parameter and without copying the remote procedure call parameter whenever the comparing step indicates that the selected format of the remote procedure call parameter matches the data structure format processed by the server;
with the server stub procedure, unmarshalling the remote procedure call parameter while the remote procedure call parameter resides in the server whenever the comparing step indicates that the selected format of the remote procedure call parameter does not match the data structure format processed by the server; and
activating the server procedure with the server stub procedure. - View Dependent Claims (9)
unmarshalling the remote procedure call parameter in the RPC buffer further comprises copying the parameter from the RPC buffer into an allocated memory location whenever the comparing step indicates that the selected format of the remote procedure call parameter does not match a data structure format processed by the server.
-
-
11. In a computer network having a client computer and a server computer that execute respective client and server procedures of an application 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 comprising a remote procedure call parameter of a selected format, the server receiving the remote procedure call parameter at an RPC buffer, a method of delivering the remote procedure call parameter in the RPC buffer to the server procedure, comprising:
-
upon receipt of the remote procedure call at the server, executing a server stub procedure in the server operative for delivering the remote procedure call parameter to the server procedure;
determining in the server stub procedure whether the selected format of the remote procedure call parameter in the RPC buffer matches a data structure format processed by the server;
whenever the selected format of the remote procedure call parameter in the RPC buffer matches the data structure format processed by the server, unmarshalling the remote procedure call parameter with the server stub procedure while the remote procedure call parameter resides in the RPC buffer without allocating server memory for the remote procedure call parameter;
whenever the selected format of the remote procedure call parameter in the RPC buffer does not match the data structure format processed by the server, unmarshalling the remote procedure call parameter with the server stub procedure while the remote procedure call parameter resides in the server; and
activating the server procedure with the server stub procedure. - View Dependent Claims (12, 13, 14)
the data structure format processed by the server includes a server memory format; the remote procedure call parameter is a first remote procedure call parameter;
the first remote procedure call parameter is a pointer to a second remote procedure call parameter in the RPC buffer having a memory format; and
the memory format of the second remote procedure call parameter does not match the server memory format.
-
-
14. The method of claim 11 wherein
the remote procedure call parameter is a first remote procedure call parameter; - and
the first remote procedure call parameter is one of a plurality of data structures pointed to by a second remote procedure call parameter in the RPC buffer.
- and
Specification