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.
Un método para mejorar el funcionamiento de un modelo distribuido del objeto sobre una red se divulga. Una computadora del cliente contiene un objeto del cliente que pueda llamar un interfaz en un objeto del servidor situado en una computadora de servidor. Más bien que copiando todos los parámetros de la llamada en un almacenador intermediario del RPC para la transmisión a través de la red, una tarjeta de interfaz de la red con dispersar-recolecta capacidad puede ser utilizada. Los datos del RPC pueden contener solamente una lista de indicadores en la memoria del cliente y un tamaño de cada parámetro. La tarjeta de interfaz de la red puede entonces asir los parámetros directamente de la memoria del cliente usando la lista en el almacenador intermediario del RPC sin la necesidad de copiar los datos sí mismo. En el lado del servidor, la tarjeta de interfaz de la red puede poner los parámetros en un almacenador intermediario del RPC, o si el tamaño se sabe de antemano, directamente en la memoria del servidor. El servidor puede también tener acceso a los parámetros directamente del almacenador intermediario del RPC. En la vuelta, el servidor puede utilizar una función del servicio repetido para indicar cuando su tarjeta de interfaz de la red ha acabado el enviar de los datos de la respuesta de modo que lo haga el servidor no claro su memoria prematuramente. En el lado del cliente, si el tamaño de la respuesta no se sabe, y los datos se coloca en los almacenadores intermediarios del RPC, él puede ser copiado del almacenador intermediario del RPC en la memoria del cliente.