Method and apparatus for switching long duration tasks from synchronous to asynchronous execution and for reporting task results
First Claim
1. In a computer implemented server process, a method of executing tasks in response to a request by a client process, comprising:
- a) starting a timer;
b) beginning a task; and
c) if the task does not complete before the timer reaches a predetermined value, initiating freeing of one or more resources which are not essential to completion of the task.
4 Assignments
0 Petitions
Accused Products
Abstract
A client process in a computer system opens a communication channel to a server process in the computer system and instructs the server process to execute a task. The server process starts a timer when it begins execution of the task, to determine whether the task is of short or long duration. If the task completes before the timer reaches a predetermined value, the server process reports task completion to the client process on the open communication channel. If the task does not complete before the timer reaches the predetermined value, the server process closes the communication channel to preserve system resources and continues executing the task asynchronously. When the task is complete, the server process reopens a communication channel and reports task completion to the client process. Results are transmitted directly to the client process only if they are smaller than a predetermined size, otherwise, they are stored in a cache to preserve system resources. The client can then request the results when it is ready to receive them.
64 Citations
19 Claims
-
1. In a computer implemented server process, a method of executing tasks in response to a request by a client process, comprising:
-
a) starting a timer; b) beginning a task; and c) if the task does not complete before the timer reaches a predetermined value, initiating freeing of one or more resources which are not essential to completion of the task. - View Dependent Claims (2, 3, 4, 5)
-
-
6. In a computer environment comprising a client process and a server process, a method of executing tasks, comprising:
-
a) the client process initiating opening of a first communication channel to the server process; b) the client process instructing the server process, via the first communication channel, to execute a task; c) the server process starting a timer and beginning the task; and d) if the task does not complete before the timer reaches a predetermined value, initiating freeing of one or more resources which are not essential to completion of the task. - View Dependent Claims (7, 8)
-
-
9. In a computer implemented server process, a method of reporting task results to a client process, comprising:
-
a) storing task results in a cache; b) determining whether the task results exceed a predetermined size; c) if the task results do not exceed the predetermined size, transmitting the task results to a client process; and d) if the task results exceed the predetermined size, transmitting a notification to a client process that the task results are available.
-
-
10. A server process which executes tasks on behalf of one or more client processes, comprising:
-
a) one or more computer readable storage mediums; and b) computer readable program code stored in the one or more computer readable storage mediums, the computer readable program code comprising; i) code for initiating execution of one or more tasks on behalf of one or more client processes; ii) code for starting one or more timers corresponding to the one or more tasks; and iii) code for initiating freeing of one or more resources which are not essential to completion of a task if the task does not complete before its corresponding timer reaches a predetermined value. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A server process which executes tasks on behalf of one or more client processes, comprising:
-
a) one or more computer readable storage mediums; and b) computer readable program code stored in the one or more computer readable storage mediums, the computer readable program code comprising; i) code for initiating execution of a task requested via a first communication channel; ii) code for starting a timer corresponding to the task; iii) code for initiating freeing of one or more resources which are not essential to completion of the task if the task does not complete before its corresponding timer reaches a predetermined value; iv) code for reporting task completion via the first communication channel if the task is completed before the timer reaches a predetermined value; and v) code for initiating opening of a second communication channel and reporting task completion via the second communication channel if the task is not completed before the timer reaches the predetermined value. - View Dependent Claims (16)
-
-
17. A server process which reports task results to a client process, comprising:
-
a) one or more computer readable storage mediums; and b) computer readable program code stored in the one or more computer readable storage mediums, the computer readable program code comprising; a) code for storing task results in a cache; b) code for determining whether the task results exceed a predetermined size; c) code for transmitting the task results to a client process if the task results do not exceed the predetermined size; and d) code for transmitting a notification to a client process that the task results are available if the task results exceed the predetermined size. - View Dependent Claims (18, 19)
-
Specification