Accelerating a distributed component architecture over a network using a direct marshaling
Abstract
A method for improving the performance of a distributed object model over a network is disclosed. A client computer contains a client object which can call an interface on a server object located on a server computer. Rather than copying all of the call parameters into an RPC buffer for transmission across the network, a network interface card with scatter-gather capability can be used. The RPC data can contain only a list of pointers into the client memory and a size of each parameter. The network interface card can then grab the parameters directly from the client memory using the list in the RPC buffer without the need to copy the data itself. At the server side, the network interface card can place the parameters into an RPC buffer, or if the size is known beforehand, directly into the server memory. The server can also access the parameters directly from the RPC buffer. On the return, the server can use a callback function to indicate when its network interface card has finished sending the response data so that the server does not clear its memory prematurely. At the client side, if the size of the response is not known, and the data is placed into the RPC buffers, it can be copied from the RPC buffer into the client memory.
Claims
exact text as granted — not AI-modified1 . A method of communication between a first object located on a first computer and a second object located on a second computer, the second computer having a memory storage location and a buffer, the first and second computers connected by a network, accessed by the second computer through a network interface card on the second computer, the method comprising:
receiving a call from the first object on an interface of the second object; receiving, by the network interface card, a parameter of the call from the first object; storing the parameter in a memory location; and accessing, by the second object, the parameter.
2 . The method of claim 1 wherein the memory location is the buffer.
3 . The method of claim 2 wherein the accessing the parameter is performed in the buffer.
4 . The method of claim 2 further comprising copying the parameter from the buffer into the memory storage location, wherein the accessing the parameter is performed in the memory storage location.
5 . The method of claim 1 wherein the memory location is the memory storage location, and wherein the accessing the parameter is performed in the memory storage location.
6 . The method of claim 1 wherein the receiving comprises: storing, on the second computer, a second data into a first receive buffer, wherein the first receive buffer is posted prior to sending a first data to the first computer.
7 . The method of claim 6 wherein the first data to the first computer is sent prior to receiving the second data from the first computer.
8 . The method of claim 6 wherein the receiving further comprises: cleaning up, on the second computer, a send buffer after sending the first data to the first computer and prior to receiving the second data from the first computer.
9 . The method of claim 8 wherein the send buffer is used to send the first data to the first computer.
10 . The method of claim 6 wherein the receiving further comprises: cleaning up, on the second computer, a second receive buffer after sending the first data to the first computer and prior to receiving the second data from the first computer.
11 . A computer-readable medium having computer-executable instructions for performing steps for communicating between a first object located on a first computer and a second object located on a second computer, the second computer having a memory storage location and a buffer, the first and second computers connected by a network, accessed by the second computer through a network interface card on the second computer, the steps comprising:
receiving a call from the first object on an interface of the second object; receiving, by the network interface card, a parameter of the call from the first object; storing the parameter in a memory location; and accessing, by the second object, the parameter.
12 . The computer-readable medium of claim 11 wherein the memory location is the buffer.
13 . The computer-readable medium of claim 12 wherein the accessing the parameter is performed in the buffer.
14 . The computer-readable medium of claim 12 having further computer-executable instructions for performing steps comprising: copying the parameter from the buffer into the memory storage location, wherein the accessing the parameter is performed in the memory storage location.
15 . The computer-readable medium of claim 11 wherein the memory location is the memory storage location, and wherein the accessing the parameter is performed in the memory storage location.
16 . The computer-readable medium of claim 11 wherein the receiving comprises: storing, on the second computer, a second data into a first receive buffer, wherein the first receive buffer was posted prior to sending a first data to the first computer.
17 . The computer-readable medium of claim 16 wherein the first data to the first computer is sent prior to receiving the second data from the first computer.
18 . The computer-readable medium of claim 16 wherein the receiving further comprises: cleaning up, on the second computer, a send buffer after sending the first data to the first computer and prior to receiving the second data from the first computer.
19 . The computer-readable medium of claim 18 wherein the send buffer is used to send the first data to the first computer.
20 . The computer-readable medium of claim 20 wherein the receiving further comprises: cleaning up, on the second computer, a second receive buffer after sending the first data to the first computer and prior to receiving the second data from the first computer.Join the waitlist — get patent alerts
Track US2005071857A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.