IP Library Granted Patent US 6,986,147
Granted Patent B2
US 6,986,147 · App. 09/819,782 · Granted Jan 10, 2006

Method for transparent, location-independent, remote procedure calls in a heterogeneous network environment

Assignee: International Business Machines Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 6,986,147
App. No.
09/819,782
Granted
Jan 10, 2006
Kind
B2
Abstract

A method for executing location independent procedure calls in a network system, wherein the method may be embodied upon a computer readable medium and executed transparently to the user at a local node. The method includes determining a remote node to execute a function, if the function cannot be run on a local node and executing a route function. Further, the method includes transmitting the function and related data to the remote node, executing the function on the remote node, and transmitting the results of the function to the local node.

Claims (68)

1. A method for executing location independent procedure calls in a network system, comprising:

determining whether to execute a function on a local node;

if the function cannot be executed on the local node:

selecting, from at least two possible remote nodes, a remote node to execute the function;

executing a route process, wherein the route process comprises:

generating a descriptive data structure for parametric function-related data;

generating a pure value buffer derived from the parametric function-related data; and

flattening the parametric function-related data and the pure value buffer into a bundle;

transmitting the flattened data and descriptive data to the selected remote node;

executing the function on the selected remote node; and

transmitting a result for the function to the local node.

2. The method of claim 1 , wherein generating a descriptive data structure comprises generating a DTSTRUCT.

3. The method of claim 1 , wherein the pure value buffer comprises a data-only buffer.

4. The method of claim 1 , further comprising:

determining if the bundle is cacheable;

determining if the bundle is available in cache memory if it is determined to be cacheable; and

retrieving a cached reply from the cache memory if the bundle is determined to be cacheable and available in cache memory.

5. The method of claim 1 , wherein determining a remote node to execute a function further comprises reading a parameter associated with the function, wherein the parameter associated with the function indicates where the function may be executed.

6. The method of claim 1 , wherein flattening comprises assembling each variable argument indicated in the route function into a buffer.

7. The method of claim 1 , wherein executing the function on the remote node further comprises:

receiving the bundle on the remote node;

unpackaging the bundle on the remote node;

computing the function on the remote node; and

packaging a function reply.

8. The method of claim 7 , wherein packaging a function reply further comprises flattening the function reply.

9. The method of claim 7 , wherein unpackaging the bundle further comprises unflattening the bundle.

10. The method of claim 8 , further comprising:

receiving the transmitted results of the function on the local node;

determining if the transmitted results are cacheable; and

storing the transmitted results in a cache memory if the transmitted results are determined to be cacheable.

11. The method of claim 1 , further comprising:

queuing at least one of pre-flattened commands and flattened commands prior to transmission to a remote node; and

cooperatively executing the queued commands in a single network transaction.

12. A computer-readable medium storing a software program that, when executed by a processor, causes the processor to perform a method comprising:

determining whether to execute a function on a local node;

if the function cannot be executed on the local node:

selecting, from at least two possible remote nodes, a remote node to execute the function;

executing a route process, wherein the route process comprises:

generating a descriptive data structure for parametric function-related data;

generating a pure value buffer derived from the parametric function-related data; and

flattening the parametric function-related data and the pure value buffer related data into a bundle;

transmitting the flattened data and descriptive data to the selected remote node;

executing the function on the selected remote node; and

transmitting a result for the function to the local node.

13. The computer readable medium of claim 12 , wherein executing a route process further comprises:

generating a parameter representative of the parametric function-related data; and

packaging the parametric function-related data and the generated parameter for transmission to the remote node.

14. The computer readable medium of claim 13 , wherein the parameter representative of the parametric function-related data further comprises a text string, wherein each character in the text string corresponds to a particular data type.

15. The computer readable medium of claim 13 , further comprising:

determining if the packaged function-related data is cacheable;

determining if the packaged function-related data is available in cache memory if it is determined to be cacheable; and

retrieving a cached reply from the cache memory of the packaged function-related data is determined to be cacheable and available in cache memory.

16. The computer readable medium of claim 12 , wherein determining a remote node to execute a function further comprises reading a parameter associated with the function, wherein the parameter associated with the function indicates where the function may be executed.

17. The computer readable medium of claim 13 , wherein packaging the function related data and the generated parameter further comprises flattening each variable argument indicated in the route function into the pure value buffer.

18. The computer readable medium of claim 12 , wherein executing the function on the remote node further comprises:

receiving the parametric function and related data on the remote node;

unpackaging the parametric function-related data on the remote node;

computing the function on the remote node; and

packaging a function reply.

19. The computer readable medium of claim 18 , wherein packaging a function reply further comprises flattening the reply.

20. The computer readable medium of claim 18 , wherein unpackaging the parametric function-related data further comprises unflattening the function related data.

21. The computer readable medium of claim 12 , further comprising:

receiving the transmitted results of the function on the local node;

determining if the transmitted results are cacheable; and

storing the transmitted results in a cache memory if the transmitted results are determined to be cacheable.

22. The computer readable medium of claim 12 , further comprising:

queuing at least one of pre-flattened commands and flattened commands prior to transmission to a remote node; and

cooperatively executing the queued commands in a single network transaction.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2001
From: GOODING, THOMAS MICHAEL
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 011686/0140 →
Continuity (1)
Related Publication 20020144020A1 · Oct 3, 2002