Method and apparatus for asynchronously calling and implementing objects
First Claim
1. A method for asynchronously performing an operation on an object, the operation being requested by a client application to a server application, the method comprising the steps of:
- maintaining a non-threaded execution environment accessible to the client application and the server application, the environment associated with asynchronously performing the operation;
obtaining an object reference to the object in the client application;
requesting the operation with a stub function in the client application, the stub function being passed the object reference, an input parameter of the operation, and a computer memory address of a completion routine in the client application;
storing the completion routine memory address;
transmitting the input parameter to a method in the server via the non-threaded execution environment;
asynchronously implementing the operation on the object server application, the implementation including a response to the client application;
transmitting the response to the client application via the non-threaded execution environment; and
calling the completion routine in the client application, the routine being passed the response.
20 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for asynchronously calling and implementing objects is disclosed. Object calls to perform an operation are performed asynchronously by calling the appropriate stub function from the client application and passing in the object reference, input parameters, and a pointer to a completion routine. The object reference, input parameters, and completion routine address are provided to a client-side execution environment. The client-side execution environment stores the completion routine address and transmits the input parameters to a server-side execution environment. The server-side execution environment calls a method in the server application that implements the requested operation. The server application performs the requested operation. Once the call has been responded to, the client-side execution environment calls the completion routine and passes it the output parameters to the requested operation. The client application can continue performing other asynchronous operations before the completion routine is called. To asynchronously implement an object that has been called, the appropriate method function in the server application is called which, in turn, calls an asynchronous operation. Once the asynchronous operation returns, the application responds to the client application.
103 Citations
12 Claims
-
1. A method for asynchronously performing an operation on an object, the operation being requested by a client application to a server application, the method comprising the steps of:
-
maintaining a non-threaded execution environment accessible to the client application and the server application, the environment associated with asynchronously performing the operation;
obtaining an object reference to the object in the client application;
requesting the operation with a stub function in the client application, the stub function being passed the object reference, an input parameter of the operation, and a computer memory address of a completion routine in the client application;
storing the completion routine memory address;
transmitting the input parameter to a method in the server via the non-threaded execution environment;
asynchronously implementing the operation on the object server application, the implementation including a response to the client application;
transmitting the response to the client application via the non-threaded execution environment; and
calling the completion routine in the client application, the routine being passed the response. - View Dependent Claims (2, 3, 4, 5, 8, 9, 10)
calling an asynchronous function from within the server application method, the asynchronous function being passed a call identifier and a memory address containing a response function in the server application;
calling the response function from the asynchronous function, passing the call identifier to the response function; and
responding to the object call based upon the identifier.
-
-
8. The method for performing an operation on an object, as recited in claim 5, wherein the object reference is obtained from an initialization routine in the client application.
-
9. The method for performing an operation on an object, as recited in claim 5, wherein the object reference is obtained from a disk file.
-
10. The method for performing an operation on an object, as recited in claim 5, wherein the object reference is obtained from a previous object call.
-
6. A method for asynchronously performing an operation on an object via a request by a client computer application to a server computer application, the method comprising the steps of:
-
maintaining a non-threaded execution environment accessible to the client application and the server application, the environment associated with asynchronously performing the operation;
obtaining an object reference to represent the object;
calling the object with a stub function in the client application, the stub function being passed the object reference, an input parameter of the operation, and a client computer memory address of a completion routine in the client application;
transmitting the input parameter and object reference to a method in the server application via the non-threaded execution environment;
calling an asynchronous function from within the method, passing a call identifier and a server computer response function memory address to the asynchronous function;
calling the response function from the asynchronous function, passing the call identifier to the response function;
responding to the object call based upon the identifier;
transmitting the response to the caller via the non-threaded execution environment; and
calling the completion routine, the completion routine being passed the response.
-
-
7. A method for asynchronously performing an operation on an object via a request by a client computer application to a server computer application, the method comprising the steps of:
-
maintaining a non-threaded execution environment accessible to the client application and the server application, the environment associated with asynchronously performing the operation;
obtaining an object reference to represent the object;
creating a proxy handle to represent the object reference;
calling the object with a stub function in the client application, the stub function being passed the proxy handle, an input parameter of the operation, and a client computer memory address to a completion routine in the client application;
transmitting the input parameter to the server application via the non-threaded execution environment based upon the proxy handle;
asynchronously implementing the operation on the object server application, the asynchronous implementation including a response to the client application;
transmitting the response to the client application via the non-threaded execution environment; and
calling the completion routine in the client application, the completion routine being passed the response.
-
-
11. A computer program product, comprising:
-
a computer useable medium having computer readable code means embodied therein for performing an operation on an object via a request from a client computer application to a server computer application, the computer readable program code means comprising;
software means for maintaining a non-threaded execution environment accessible to the client application and the server application, the environment associated with performing the operation;
software means for obtaining an object reference to represent the object;
software means for calling the object with a stub function in the client application, the stub function being passed the object reference, an input parameter of the operation, and a client computer memory address to a completion routine in the client application;
software means for transmitting the object reference, input parameter, and completion routine address to the non-threaded execution environment;
software means for transmitting the input parameter to a method in the server application via the non-threaded execution environment based upon the object reference;
software means for asynchronously implementing the operation on the object in the server application, the implementation including a response to the client application;
software means for transmitting the response to the client application via the execution environment; and
software means for calling the completion routine in the client application, the completion routine being passed the response. - View Dependent Claims (12)
software means for calling an asynchronous function from within the server application method, passing a call identifier and a response function address to the asynchronous function;
software means for calling the response function from the asynchronous function, passing the call identifier to the response function; and
software means for responding to the object call based upon the identifier.
-
Specification