Transparent local RPC optimization
First Claim
1. A method for managing communication between a client process and a server process in a distributed computing environment, the client process residing on a host computer that is connected to a physical network having a transport layer and a network layer, comprising the steps of:
- (a) in response to a remote procedure call (RPC) made by the client process, detecting whether a server process identified by the RPC is located on the host computer, the RPC having a protocol sequence associated therewith defining a communication path through use of the transport and network layers;
(b) if the server process is located on the host computer, establishing an interprocess communication path between the client process and the server process;
(c) returning the RPC protocol sequence to the client process so that the client process obtains a protocol sequence it expects when making an RPC; and
(d) executing the remote procedure call over the interprocess communication path instead of using the RPC protocol sequence.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for managing communication between a client process and a server process in a distributed computing environment, the client process residing on a host computer that is connected to a physical network having a transport layer and a network layer. The method begins when the client process makes a remote procedure call by detecting whether a server process identified by the remote procedure call is located on the host computer. If so, a binding handle vector is returned to the client process. The protocol sequence in the binding handle is mapped to a second protocol sequence that establishes an interprocess communication path between the client and server processes instead of a path through the transport and network layers of the physical network. The remote procedure call is then executed, preferably by using a send and receive messaging facility of the host computer operating system.
223 Citations
13 Claims
-
1. A method for managing communication between a client process and a server process in a distributed computing environment, the client process residing on a host computer that is connected to a physical network having a transport layer and a network layer, comprising the steps of:
-
(a) in response to a remote procedure call (RPC) made by the client process, detecting whether a server process identified by the RPC is located on the host computer, the RPC having a protocol sequence associated therewith defining a communication path through use of the transport and network layers; (b) if the server process is located on the host computer, establishing an interprocess communication path between the client process and the server process; (c) returning the RPC protocol sequence to the client process so that the client process obtains a protocol sequence it expects when making an RPC; and (d) executing the remote procedure call over the interprocess communication path instead of using the RPC protocol sequence. - View Dependent Claims (2, 3, 4)
-
-
5. A method for managing communication between a client process and a server process in a distributed computing environment, the client process residing on a host computer that is connected to a physical network having a transport layer and a network layer, comprising the steps of:
-
(a) when a remote procedure call is made by the client process, detecting whether a server process identified by the remote procedure call is located on the host computer; (b) if the server process is located on the host computer, returning to the client process a first data structure including a protocol sequence defining a communication path through use of the transport and network layers so that the client process obtains a protocol sequence it expects when making the remote procedure call; (c) mapping the first data structure to a second data structure, the second data structure including a protocol sequence defining an interprocess communication path between the client process and the server process; and (d) executing the remote procedure call over the interprocess communication path defined by the protocol sequence in the second data structure instead of using the protocol sequence in the first data structure. - View Dependent Claims (6)
-
-
7. A method for managing communication between a client process and a server process in a distributed computing environment, the client process residing on a host computer that is connected to a physical network having a transport layer and a network layer, comprising the steps of:
-
(a) when a remote procedure call is made by the client process, detecting whether a server process identified by the remote procedure call is located on the host computer; (b) if the server process is located on the host computer, returning to the client process a first data structure including a connection-oriented protocol sequence defining a communication path through use of the transport and network layers; (c) mapping the first data structure to a second data structure, the second data structure including a protocol sequence defining an interprocess communication path between the client process and the server process; and (d) executing the remote procedure call over the interprocess communication path defined by the protocol sequence in the second data structure; wherein the protocol sequence of the second data structure includes a full pathname to a socket file. - View Dependent Claims (8)
-
-
9. A method for managing communication between a client process and a server process in a distributed computing environment when the client process makes a remote procedure call, the client process residing on a host computer that is connected to a physical network having a transport layer and a network layer, the host computer supporting a UNIX-based operating system, comprising the steps of:
-
(a) if the server process is located on the host computer, returning to the client process a binding handle having a protocol sequence normally associated with the remote procedure call; (b) mapping the protocol sequence normally associated with the remote procedure call into an alternate protocol sequence that establishes an interprocess communication path between the client process and the server process; and (c) executing the remote procedure call over the interprocess communication path using a send and receive messaging facility of the UNIX-based operating system; wherein the protocol sequence associated with the remote procedure call is a connection-oriented protocol "ncacn-- ip-- tcp" and the alternate protocol sequence is "ncacn-- unix-- stream," where "ncacn" is a connection-oriented RPC protocol, "unix" identifies a UNIX Network Address Family (AF-- UNIX) communication domain and "stream" identifies a UNIX domain socket.
-
-
10. A method for managing communication between a client process and a server process in a distributed computing environment when the client process makes a remote procedure call, the client process residing on a host computer that is connected to a physical network having a transport layer and a network layer, the host computer supporting a UNIX-based operating system comprising the steps of:
-
(a) if the server process is located on the host computer, returning to the client process a binding handle having a protocol sequence normally associated with the remote procedure call; (b) mapping the protocol sequence normally associated with the remote procedure call into an alternate protocol sequence that establishes an interprocess communication path between the client process and the server process; and (c) executing the remote procedure call over the interprocess communication path using a send and receive messaging facility of the UNIX-based operating system; wherein the protocol sequence associated with the remote procedure call is a connection-less protocol "ncacn-- ip-- udp" and the alternate protocol sequence is "ncadg-- unix-- dgram," where "ncadg" is a connection-less RPC protocol, "unix" identifies a UNIX Network Address Family (AF-- UNIX) communication domain and "dgram" identifies a UNIX domain socket.
-
-
11. In a local area network providing a distributed computing environment in which users can access distributed resources and process applications, the local area network including a host computer having an interprocess communication (IPC) mechanism, the improvement comprising:
-
means responsive to an remote procedure call (RPC) from a client process for detecting whether a server process identified by the RPC is located on the host computer; and means responsive to the detecting means for returning to the client process an expected protocol sequence and for using an alternate protocol sequence instead of the expected protocol sequence to facilitate the RPC, the alternate protocol sequence establishing a communication path through the IPC mechanism.
-
-
12. A computer system providing a distributed computing environment in which users can access distributed resources and process applications, the computer system including a host computer connected to a local area network having a transport layer and a network layer, comprising:
-
means responsive to an remote procedure call (RPC) from a client process for detecting whether a server process identified by the RPC is located on the host computer; and means responsive to the detecting means for returning to the client process an expected protocol sequence and for using an alternate protocol sequence instead of the expected protocol sequence to facilitate the RPC, wherein the use of the alternate protocol sequence is transparent to the client process.
-
-
13. A program storage device readable by a host processor and tangibly embodying a program of instructions executable by the host processor to perform a method for managing communications from a client process running on the host processor, the host processor connected to a local area network having a transport layer and a network layer, the method comprising the steps of:
-
(a) when a remote procedure call is made by the client process, detecting whether a server process identified by the remote procedure call is located on the host computer; (b) if the server process is located on the host computer, returning to the client process a first data structure including a protocol sequence defining a communication path through use of the transport and network layers so that the client process obtains a protocol sequence it expects when making the remote procedure call; (c) mapping the first data structure to a second data structure, the second data structure including a protocol sequence defining an interprocess communication path between the client process and the server process; and (d) executing the remote procedure call over the interprocess communication path defined by the protocol sequence in the second data structure instead of using the protocol sequence in the first data structure.
-
Specification