US2005071857A1PendingUtilityA1

Accelerating a distributed component architecture over a network using a direct marshaling

Assignee: MICROSOFT CORPPriority: Dec 11, 1998Filed: Oct 14, 2004Published: Mar 31, 2005
Est. expiryDec 11, 2018(expired)· nominal 20-yr term from priority
G06F 9/465G06F 9/547
49
PatentIndex Score
0
Cited by
0
References
0
Claims

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-modified
1 . 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.