Remote procedure interface with support for multiple versions
First Claim
1. A computer system comprising a client computer process for requesting a remote procedure to be executed by a server computer process external to the client computer process, the client computer process supporting a first version of the remote procedure and the server computer process supporting a second version of the remote procedure, the client computer process comprising:
- (a) a mapper that maps the first version of the remote procedure to the second version of the remote procedure if the server computer process does not support the first version of the remote procedure;
(b) a requester, coupled to the mapper, that requests the server computer process to execute the second version of the remote procedure; and
(c) a version map that maps the first version of the remote procedure to the second version of the remote procedure, wherein the version map comprises a keyword indexed by a version number, wherein the keyword is selected from the group consisting of a direct keyword, a byname keyword, a nomap keyword, and a user-defined procedure keyword, wherein the mapper determines the keyword in the version map corresponding to the second version of the remote procedure, and wherein;
(1) if the keyword is a direct keyword, the mapper directly maps the first version of the remote procedure to the second version;
(2) if the keyword is a byname keyword, the mapper maps parameters of the remote procedure by name from the first version to the second version;
(3) if the keyword is a nomap keyword, the mapper returns a failed request indication; and
(4) if the keyword is a user-defined procedure keyword, the mapper calls the user-defined procedure.
1 Assignment
0 Petitions
Accused Products
Abstract
A distributed computer system incorporating multiple computer processes enables a client computer process to request execution of a remote procedure on a server computer process even when the server computer process does not support a current version of the client computer process. A version map is utilized by the client computer process while requesting a remote procedure to format the request to a version supported by the server computer process, thus permitting client and server computer processes coresident in a distributed computer system to be upgraded independently while ensuring backward-compatibility with earlier versions.
-
Citations
14 Claims
-
1. A computer system comprising a client computer process for requesting a remote procedure to be executed by a server computer process external to the client computer process, the client computer process supporting a first version of the remote procedure and the server computer process supporting a second version of the remote procedure, the client computer process comprising:
-
(a) a mapper that maps the first version of the remote procedure to the second version of the remote procedure if the server computer process does not support the first version of the remote procedure; (b) a requester, coupled to the mapper, that requests the server computer process to execute the second version of the remote procedure; and (c) a version map that maps the first version of the remote procedure to the second version of the remote procedure, wherein the version map comprises a keyword indexed by a version number, wherein the keyword is selected from the group consisting of a direct keyword, a byname keyword, a nomap keyword, and a user-defined procedure keyword, wherein the mapper determines the keyword in the version map corresponding to the second version of the remote procedure, and wherein; (1) if the keyword is a direct keyword, the mapper directly maps the first version of the remote procedure to the second version; (2) if the keyword is a byname keyword, the mapper maps parameters of the remote procedure by name from the first version to the second version; (3) if the keyword is a nomap keyword, the mapper returns a failed request indication; and (4) if the keyword is a user-defined procedure keyword, the mapper calls the user-defined procedure. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A distributed computer system, comprising:
-
(a) first and second computer systems coupled through a network; (b) a remote procedure interface residing in the first computer system, the remote procedure interface defining a first version of a remote procedure and a version map that maps the first version of the remote procedure to a second version of the remote procedure; and (c) a request handler, residing in the first computer system and having access to the remote procedure interface, that requests execution of the remote procedure on a computer process on the second computer system, wherein the request handler utilizes the version map in the remote procedure interface to request execution of the second version of the remote procedure if the computer process on the second computer system does not support the first version of the remote procedure; wherein the request handler determines the version of the computer process on the second computer system and maps the first version of the remote procedure to the second version of the remote procedure if the computer process on the second computer system does not support the first version of the remote procedure; wherein the remote procedure interface is defined in an interface definition language, wherein the version map comprises a keyword indexed by a version number, wherein the keyword is selected from the group consisting of a direct keyword, a byname keyword, a nomap keyword, and a user-defined procedure keyword, wherein the request handler accesses the version map to determine the keyword in the version map corresponding to the second version of the remote procedure; and
wherein;(a) if the keyword is a direct keyword, the request handler directly maps the first version of the remote procedure to the second version; (b) if the keyword is a byname keyword, the request handler maps parameters of the remote procedure by name from the first version to the second version; (c) if the keyword is a nomap keyword, the request handler returns a failed request indication; and (d) if the keyword is a user-defined procedure keyword, the request handler calls the user-defined procedure. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A computer implemented method of requesting in a first computer process a remote procedure to be executed by a second computer process, the method comprising the steps of:
-
(a) determining in the first computer process whether the second computer process supports a first version of the remote procedure which is compatible with the first computer process; and (b) if the second computer process does not support the first version of the remote procedure; (i) mapping the first version of the remote procedure to a second version of the remote procedure which is compatible with the second computer process; and (ii) requesting the second computer process to execute the second version of the remote procedure; wherein the mapping step includes the step of accessing a version map which maps the first version of the remote procedure to the second version of the remote procedure; wherein the version map comprises a keyword indexed by a version number, wherein the keyword is selected from the group consisting of a direct keyword, a byname keyword, a nomap keyword, and a user-defined procedure keyword, wherein the mapping step further includes the steps of; (a) determining the keyword in the version map corresponding to the second version of the remote procedure; (b) if the keyword is a direct keyword, directly mapping the first version of the remote procedure to the second version; (c) if the keyword is a byname keyword, mapping parameters of the remote procedure by name from the first version to the second version; (d) if the keyword is a nomap keyword, returning a failed request indication; and (e) if the keyword is a user-defined procedure keyword, calling the user-defined procedure. - View Dependent Claims (12, 13, 14)
-
Specification