Method and apparatus for the suspension and continuation of remote processes
First Claim
1. A method performed on a server system having resources which is operatively coupled to a client system over a network and enables a remote method to suspend processing and relinquish corresponding resources to the server system, the method comprising the steps of:
- receiving a request from a client system with a remote method call transmitted using a remote procedure call (RPC) system which further includes the substeps of;
indicating to the client system that the server system has received the request to invoke a remote method;
allocating resources to the remote method;
invoking the remote method;
determining if the remote method depends on any resources which are not available or an event which has not occurred yet;
suspending the remote method from further processing and relinquishing resources from the remote method when the remote method depends on a resource that is not available or an event that has not occurred yet, which further includes the substeps of, relinquishing resources previously allocated to the remote method system for use by other processes and methods on the server system;
providing an execution state associated with the remote method and a remote procedure call (RPC) state associated with the remote method call to continue processing the remote method at a subsequent time period; and
blocking the remote method from further processing until the resource which was not available is released and made available to the remote method or the event that caused the suspension of the remote method.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus is provided for enabling blocked remote methods to relinquish threads and other resources to other methods on a server system. In a distributed computing environment, remote methods are allocated numerous network resources but are blocked while they wait for operations, such as a write operation from another process, to complete. When enough remote methods are blocked, threads and other network resources may run out. Client systems requesting server services may experience slower response times. This method and system provides a technique for remote methods to relinquish network resources, such as threads, for other methods to use while the methods are blocked. Once the conditions causing the remote methods to block is resolved, the remote methods continue execution. This technique enables high volume client-server transaction systems to utilize threads and other resources in a distributed computing environment more efficiently.
-
Citations
39 Claims
-
1. A method performed on a server system having resources which is operatively coupled to a client system over a network and enables a remote method to suspend processing and relinquish corresponding resources to the server system, the method comprising the steps of:
-
receiving a request from a client system with a remote method call transmitted using a remote procedure call (RPC) system which further includes the substeps of;
indicating to the client system that the server system has received the request to invoke a remote method;
allocating resources to the remote method;
invoking the remote method;
determining if the remote method depends on any resources which are not available or an event which has not occurred yet;
suspending the remote method from further processing and relinquishing resources from the remote method when the remote method depends on a resource that is not available or an event that has not occurred yet, which further includes the substeps of, relinquishing resources previously allocated to the remote method system for use by other processes and methods on the server system;
providing an execution state associated with the remote method and a remote procedure call (RPC) state associated with the remote method call to continue processing the remote method at a subsequent time period; and
blocking the remote method from further processing until the resource which was not available is released and made available to the remote method or the event that caused the suspension of the remote method.
-
-
2. A method performed on a server system having a plurality of resources which is operatively coupled to a client system over a network, for enabling a previously suspended remote method to continue processing on the server system, wherein the server system stores an execution state and a remote procedure call (RPC) state associated with the remote method call to continue processing the remote method at a subsequent time period, the method comprising the steps of:
-
receiving an indication that a continuation event associated with a suspended remote method has occurred wherein the continuation event is generated when a required resource for the remote method becomes available or an event occurs that previously caused the suspension of the remote method;
allocating resources to the remote method in preparation to continue processing, which further comprises the substeps of;
indicating to a remote method resource manager that the remote method can continue processing, and distributing resources controlled by a remote method resource manager to the remote method;
continuing execution of the remote method utilizing the allocated resources, including the substep of;
initializing the remote method with an execution state and a remote procedure call (RPC) system with a RPC state wherein the execution state includes information associated with the remote method before it was suspended and the RPC state includes information associated with the remote method call;
generating results from the remote method; and
transmitting the results from the server system to the client application on the client system.
-
-
3. A method performed on a server system for enabling a remote method to suspend processing and relinquish resources to the server system which is operatively coupled to a client system over a network, the method comprising the steps of:
-
receiving a request from a remote method call on a client system;
allocating system resources to the remote method associated with the server system;
invoking the remote method associated with the server system;
determining an availability of general resources required for processing the remote method; and
suspending the remote method from further processing when the remote method depends on a general resource which is not available, including the substeps of;
relinquishing system resources and general resources to the server system, blocking the remote method from further processing until the resource which was not available is released and made available to the remote method, and providing an execution state and a remote procedure call (RPC) state associated with the remote method call to continue processing the remote method at a subsequent time period. - View Dependent Claims (4, 5, 6, 7, 8, 9)
relinquishing system resources and general resources to the server system; - and
blocking the remote method from further processing until the resource which was not available is released and made available to the remote method.
-
-
9. The method of claim 8 wherein the suspending step further includes the substeps of providing an execution state associated with the remote method and a remote procedure call (RPC) state associated with the remote method call to continue processing the remote method at a subsequent time period.
-
10. A method performed on a server system for enabling a previously suspended remote method to continue processing on the server system and generate a result for a client application on a client system which is operatively coupled to the server system over a network, wherein the server system stores an execution state and a remote procedure call (RPC) state associated with the remote method call to continue processing the remote method at a subsequent time period, the method comprising the steps of:
-
receiving indication that a continuation event associated with a suspended remote method has occurred;
allocating system resources and general resources to the remote method in preparation to continue processing;
continuing execution of the remote method utilizing the allocated resources;
generating results from the remote method; and
transmitting the results from the server system to the client application on the client system. - View Dependent Claims (11, 12, 13, 14, 15)
initializing the remote method with an execution state and a remote procedure call (RPC) system with a RPC state wherein the execution state includes information associated with the remote method before it was suspended and the RPC state includes information associated with the remote method call; and
generating results from the remote method.
-
-
15. The method of claim 10 wherein the transmitting step uses a remote method invocation (RMI) system.
-
16. A computer-readable medium containing instructions which enables a remote method executed on a computer server system to suspend processing and relinquish resources to the computer server system by:
-
receiving a request from a remote method call on a client system;
allocating system resources to the remote method associated with the server system;
invoking the remote method associated with the server system;
determining an availability of general resources required for processing the remote method; and
suspending the remote method from further processing when the remote method depends on a general resource which is not available, including the substeps of;
relinquishing system resources and general resources to the server system, blocking the remote method from further processing until the resource which was not available is released and made available to the remote method, and providing an execution state and a remote procedure call (RPC) state associated with the remote method call to continue processing the remote method at a subsequent time period. - View Dependent Claims (17, 18, 19, 20)
relinquishing module configured to relinquish system resources and general resources to the server system; - and
a blocking module configured to block the remote method from further processing until the resource which was not available is released and made available to the remote method.
-
-
21. A computer-readable medium containing instructions which enables a previously suspended remote method to continue processing on a server system and generate a result for a client application on a client system, wherein the server system stores an execution state and a remote procedure call (RPC) state associated with the remote method call to continue processing the remote method at a subsequent time period, by:
-
receiving indication that a continuation event associated with a suspended remote method has occurred;
allocating system resources and general resources to the remote method in preparation to continue processing;
continuing execution of the remote method utilizing the allocated resources;
generating results from the remote method; and
transmitting the results from the server system to the client application on the client system. - View Dependent Claims (22, 23, 24)
-
-
25. An apparatus for enabling a remote method to suspend processing and relinquish resources to a server system which is operatively coupled to a client system over a network, comprising:
-
a receiver module configured to receive a request from a remote method call on a client system;
an allocating module configured to allocate system resources to the remote method associated with the server system;
an invoking module configured to invoke the remote method associated with the server system;
a determining module configured to determine if any general resources required for processing the remote method are not available; and
a suspending module configured to suspend the remote method from further processing when the remote method depends on a general resource which is not available, including;
a relinquishing module configured to relinquish system resources and general resources to the server system, a blocking module configured to block the remote method from further processing until the resource which was not available is released and made available to the remote method, and a providing module configured to provide an execution state and a remote procedure call (RPC) state associated with the remote method call to continue processing the remote method at a subsequent time period. - View Dependent Claims (26, 27, 28, 29, 30)
a relinquishing module configured to relinquish system resources and general resources to the server system; - and
a blocking module configured to block the remote method from further processing until the resource which was not available is released and made available to the remote method.
-
-
31. An apparatus for enabling a previously suspended remote method to continue processing on a server system and generate a result for a client application on a client system which is operatively coupled to the server system over a network, wherein the server system stores an execution state and a remote procedure call (RPC) state associated with the remote method call to continue processing the remote method at a subsequent time period, the apparatus comprising:
-
a receiver module to receive an indication that a continuation event associated with a suspended remote method has occurred;
an allocating module configured to allocate system resources and general resources to the remote method in preparation to continue processing;
a continuing module configured to continue execution of the remote method utilizing the allocated resources;
a generating module configured to generate results from the remote method; and
a transmitting module configured to transmit the results from the server system to the client application on the client system. - View Dependent Claims (32, 33, 34, 35)
-
-
36. An apparatus coupled to a server system for enabling a remote method to suspend processing and relinquish resources to the server system which is operatively coupled to a client system over a network, the apparatus comprising:
-
a means for receiving a request from a remote method call on a client system;
a means for allocating system resources to the remote method associated with the server system;
a means for invoking the remote method associated with the server system;
a means for determining an availability of general resources required for processing the remote method; and
a means for suspending the remote method from further processing when the remote method depends on a general resource which is not available, including;
a means for relinquishing system resources and general resources to the server system, a means for blocking the remote method from further processing until the resource which was not available is released and made available to the remote method, and a means for providing an execution state and a remote procedure call (RPC) state associated with the remote method call to continue processing the remote method at a subsequent time period. - View Dependent Claims (37)
-
-
38. An apparatus coupled to a server system for enabling a previously suspended remote method to continue processing on the server system and generate a result for a client application on a client system which is operatively coupled to the server system over a network, wherein the server system stores an execution state and a remote procedure call (RPC) state associated with the remote method call to continue processing the remote method at a subsequent time period, the apparatus comprising the steps of:
-
a means for receiving indication that a continuation event associated with a suspended remote method has occurred;
a means for allocating system resources and general resources to the remote method in preparation to continue processing;
a means for continuing execution of the remote method utilizing the allocated resources;
a means for generating results from the remote method; and
a means for transmitting the results from the server system to the client application on the client system. - View Dependent Claims (39)
-
Specification