Method and system for network marshalling of interface pointers for remote procedure calls
First Claim
1. A method in a computer system for providing a client with access to a client implementation of an interface corresponding to a server implementation of the interface provided by a server, comprising:
- under control of the server, sending to the client an indication of unmarshalling code and information for use by the unmarshalling code to provide the client implementation of the interface that corresponds to the server implementation of the interface; and
under control of the client,receiving the indication of the unmarshalling code and the information; and
executing the indicated unmarshalling code to generate a pointer to the client implementation of the interface in accordance with the received informationwhereby the client uses the generated pointer to access the client implementation of the interface.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer method and system for passing a pointer to an interface from a server process to a client process. In a preferred embodiment, the server process instantiates an object that has multiple interfaces. The server process identifies an interface to pass to the client process and creates a stub object for receiving a request to invoke a function member of the interface and for invoking the requested function member upon receiving the request. The server process then sends an identifier of the stub to the client process. When the client process receives the identifier of the stub, it instantiates a proxy object for receiving requests to invoke a function member of the interface and for sending the request to the identified stub. The client process can then invoke the function members of the interface by invoking function members of the proxy object. The proxy object sends a request to the identified stub. The identified stub then invokes the corresponding function member of the interface.
232 Citations
37 Claims
-
1. A method in a computer system for providing a client with access to a client implementation of an interface corresponding to a server implementation of the interface provided by a server, comprising:
-
under control of the server, sending to the client an indication of unmarshalling code and information for use by the unmarshalling code to provide the client implementation of the interface that corresponds to the server implementation of the interface; and under control of the client, receiving the indication of the unmarshalling code and the information; and executing the indicated unmarshalling code to generate a pointer to the client implementation of the interface in accordance with the received information whereby the client uses the generated pointer to access the client implementation of the interface. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer system for providing a client with access to a client interface through which the client accesses a server, comprising:
-
server means for sending to the client an indication of unmarshalling code and information for use by the unmarshalling code to provide the client interface; and client means for receiving the indication of the unmarshalling code and the information, and executing the indicated unmarshalling code to generate a pointer to the client interface in accordance with the received information whereby the client uses the generated pointer to access the server through the client interface. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A method in a computer system for unmarshalling a pointer to a server interface sent from a server to a client, the server interface for providing a service to the client, comprising:
-
receiving an indication of unmarshalling code and information describing the server interface of the server; locating the unmarshalling code indicated by the received indication; executing the located unmarshalling code to generate a pointer to a client interface; and using the generated pointer to invoke a function member of the client interface wherein the invoked function member provides the service to the client using the information describing the server interface. - View Dependent Claims (17, 18)
-
-
19. A method in a computer system for custom marshalling of a pointer to an object from a server to a client, the object having data members and function members comprising:
-
instantiating the object; determining whether custom marshalling code is provided for the object; when it is determined that custom marshalling code is provided, executing custom marshalling code to provide an indication of custom unmarshalling code and information describing the object to the custom unmarshalling code; and when it is determined that custom marshalling code is not provided, executing standard marshalling code to provide an indication of standard unmarshalling code and information describing the object to the standard unmarshalling code; and sending the provided indication and information to the client so that the client can execute the indicated unmarshalling code to provide a custom or standard proxy object through which to request services of the instantiated object. - View Dependent Claims (20, 21, 22)
-
-
23. A method in a comptuer system for marshalling a pointer to an interface from a first server to a client, the pointer pointing to an interface of the first server that is marshalled from a second server, the interface having a function member providing a behavior, wherein the client, the first server, and the second server each have an implementation of the function member, wherein the implementation of the function member of the first server requests the implementation of the function member of the second server to perform the behavior of the function member, comprising:
-
under control of the first server, sending to the client an indication of unmarshalling code and information indicating the second server; and under control of the client, receiving the indication of the unmarshalling code and the information; and executing the indicated unmarshalling code to generate a pointer to an interface with a client implementation of the function member that when invoked requests the second server to provide the behavior whereby when the client implementation of the function member is invoked, then the client requests the second server to perform the behavior without requesting the first server to perform the behavior.
-
-
24. A computer-readable medium containing instructions for causing a computer system to provide a client with access to a client implementation of an interface corresponding to a server implementation of the interface provided by a server by:
-
under control of the server, sending to the client an indication of unmarshalling code and information for use by the unmarshalling code to provide the client implementation of the interface that corresponds to the server implementation of the interface; and under control of the client, receiving the indication of the unmarshalling code and the information; and executing the indicated unmarshalling code to generate a pointer to the client implementation of the interface in accordance with the received information. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33)
-
-
34. A computer-readable medium containing instructions for causing a computer system to marshal a pointer to an object from a server to a client, the object having data members and function members by:
-
instantiating the object; determining whether the custom marshalling code is provided for the object; when it is determined that custom marshalling code is provided, executing custom marshalling code to provide an indication of custom unmarshalling code and information describing the object to the custom unmarshalling code; and when it is determined that custom marshalling code is not provided, executing standard marshalling code to provide an indication of standard unmarshalling code and information describing the object to the standard unmarshalling code; and sending the provided indication and information to the client so that the client can execute the indicated unmarshalling code to provide a custom or standard proxy object through which to request services of the instantiated object. - View Dependent Claims (35, 36, 37)
-
Specification