Object framework and services for periodically recurring operations
First Claim
1. An object-oriented framework for scheduling an operation to be performed by an agent object on a periodically recurring basis in a computer, comprising:
- a scheduler object;
a scheduler object integration interface supported on the scheduler object for use by a client application program to set programmatically a schedule item associated with the agent object, said schedule item indicating the periodically recurring basis on which to cause the agent object to perform the operation, whereby the client application program programmatically controls the performance of the operation on the scheduled basis;
the scheduler object operating responsive to the client application program programmatically setting the schedule item with the scheduler object integration interface to cause the agent object to be persistently stored in the computer, and to cause the agent object to be restored and initiate the operation by the agent object on the periodically recurring basis.
2 Assignments
0 Petitions
Accused Products
Abstract
A computer system includes an object oriented framework that provides a set of application integration interfaces that support programmatic updating operations for maintaining locally stored copies of resources such as hypertext document pages from remote servers on a computer network. The updating operations continually check for updates to the data at the remote server and download updated versions of the resources to maintain concurrency of the locally stored copy. The updating operations are performed while a connection to the remote network is left idle, to maximize usage of on-line connection time. The updating operations also can be programmatically scheduled by a client program of the updating operations. The updating operations include updating the contents of a folder or directory in a local file system as specified in a file at a remote server on the network, and providing automatically updating and populating groups of sites or document pages organized by category.
217 Citations
35 Claims
-
1. An object-oriented framework for scheduling an operation to be performed by an agent object on a periodically recurring basis in a computer, comprising:
-
a scheduler object;
a scheduler object integration interface supported on the scheduler object for use by a client application program to set programmatically a schedule item associated with the agent object, said schedule item indicating the periodically recurring basis on which to cause the agent object to perform the operation, whereby the client application program programmatically controls the performance of the operation on the scheduled basis;
the scheduler object operating responsive to the client application program programmatically setting the schedule item with the scheduler object integration interface to cause the agent object to be persistently stored in the computer, and to cause the agent object to be restored and initiate the operation by the agent object on the periodically recurring basis. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
an agent object integration interface defined on the agent object for use by the client application program to set parameters controlling the operation performed by the agent object.
-
-
3. The object-oriented framework of claim 1 further comprising:
-
a call back object integration interface defined on a call back object of the client application program for receiving notifications of a status of the operation;
an agent object integration interface defined on the agent object for use by the client application to set a call back parameter of the agent object so as to provide the notifications to the client application program through the call back object integration interface.
-
-
4. The object-oriented framework of claim 3 further comprising:
-
a persist object integration interface defined on the call back object to cause the call back object to be persistently stored on the computer; and
the agent object operating to cause the call back object to be persistently stored using the persist object integration interface when the client application program sets the call back parameter of the agent object and to cause the call back object to be restored when the operation is initiated on the periodically recurring basis.
-
-
5. The object-oriented framework of claim 1 further comprising:
-
an advisement sink object integration interface defined on a monitoring client application program for receiving advisements of a status of the operation;
an events object integration interface supported on the scheduler object for receiving the advisements from the agent object; and
a connection object integration interface supported on the scheduler object for use by the monitoring client application program to set a connection to the scheduler object so that the scheduler object passes the advisements received from the agent object to the monitoring client application program through the advisement sink object integration interface.
-
-
6. The object-oriented framework of claim 1 comprising:
an abort function in the scheduler object integration interface for use by the client application program to cause the scheduler to abort the operation by the agent object.
-
7. The object-oriented framework of claim 1 wherein the periodically recurring basis includes at network idle times, and the scheduler object operates to detect a network idle time by checking for activity on a network connection and to cause the agent object to initiate the operation at the detected network idle time.
-
8. The object-oriented framework of claim 1 wherein the periodically recurring basis includes at scheduled times, and the scheduler object operates to determine when the scheduled times occur and to cause the agent object to initiate the operation at the scheduled times.
-
9. The object-oriented framework of claim 1, comprising:
the agent object having code operative when the operation is performed to check for a change to be made to locally stored data, to download remotely stored data if the change has occurred, and to update said locally stored data with the downloaded data if the change has occurred.
-
10. The object-oriented framework of claim 1, comprising:
the agent object having code operative when the operation is performed to check whether an item located at a remote server on a network has changed, and if so to download the item from the remote server to the computer so as to update a copy of the item stored locally on the computer, wherein the agent object is located on the computer.
-
11. An object oriented framework in a computer system for programmatically maintaining an updated, locally stored copy of remote data for off-line use, comprising:
-
an update operation object providing an interface callable from a client application to set properties relating to an update operation for maintaining a local copy of the remote data, whereby the client application programmatically configures properties relating to the update operation;
a scheduler object providing an interface callable from the client application to set times on a periodic basis at which to perform the update operation of the update operation object, whereby the client application programmatically controls the performance of the operation on the scheduled basis;
a downloader object residing locally and operating responsive to the update operation object and the scheduler object to check the remote data for changes at the times and download the remote data so as to update the local copy when the remote data is determined to have changed, whereby the client application programmatically maintains an updated local copy of the remote data. - View Dependent Claims (12, 13, 14)
the scheduler object is operative responsive to calls from the client application to set the times as on a detected idle time basis; and
the downloader object operating responsive to the scheduler object to detect times during a user'"'"'s on-line session when a network connection is idle by checking for activity on the network connection, and to perform the checking and downloading the remote data at the detected idle times.
-
-
13. The object oriented framework of claim 11 wherein the remote data is a file containing information for specifying remote resources to be stored in a local folder associated with the file, and the downloader object operates responsive to the update operation object to download and store the remote resources in the local folder.
-
14. The object oriented framework of claim 11 wherein the remote data is a file for specifying pointers to remote resources, and the downloader object operates responsive. to the update operation object to store shortcut files containing the pointers.
-
15. A method of downloading data to a computer unattended from a remote server on a network, comprising:
-
specifying the data to download from the remote server prior to a user'"'"'s on-line session, wherein the data comprises a plurality of items;
during the user'"'"'s on-line session wherein the computer is connected to the network for the user to interactively download other data from the network, detecting a time when the connection to the network is otherwise idle by checking for activity on the connection, wherein the detecting is based on a duration of time that the connection has been idle, and wherein the duration of time for detecting that the connection is idle varies for each of the plurality of items in relation to the size of the item;
downloading the specified data from the remote server at the detected idle time; and
locally storing the data at the computer whereby the data is available at the computer for off-line use after the connection is terminated. - View Dependent Claims (16, 17, 18)
determining that the connection to the network is idle based on a length of the time elapsed since a last activity occurred on the connection.
-
-
17. The method of claim 15 further comprising:
downloading the items when idle time is detected in order of increasing size.
-
18. The method of claim 15 further comprising:
-
determining to download a first of the items having a first size when the connection has been idle for a first duration related to the first size; and
determining to download a second of the items having a second size larger than the first size if the connection continues to remain idle for a second duration longer than the first duration.
-
-
19. A method in a computer of maintaining an updated local copy of data from a remote server on a network, comprising:
-
specifying the data residing at the remote server of which a local copy is to be kept updated, wherein the data comprises a plurality of items;
during a user'"'"'s on-line session wherein the computer is connected to the network for the user to interactively download other data from the network, detecting a time when the connection to the network is otherwise idle by checking for activity on the connection, wherein the detecting is based on a duration of time that the connection has been idle, and wherein the duration of time for detecting that the connection is idle varies for each of the plurality of items in relation to the size of the item;
downloading the specified data from the remote server at the detected idle time; and
updating the local copy to the downloaded data whereby the data is available at the computer for off-line use after the connection is terminated. - View Dependent Claims (20)
determining that the connection to the network is idle based on a length of the time elapsed since a last activity occurred on the connection.
-
-
21. A method of downloading data to a computer from a remote server on a network, comprising:
-
specifying the data to download from the remote server, wherein the data comprises a plurality of items;
establishing an active browsing network connection to the network;
during a user'"'"'s on-line session wherein the computer is connected to the network for the user to interactively download other data from the network through the active browsing network connection, detecting a time when the active browsing network connection is idle by checking for activity on the active browsing network connection as a whole, wherein the detecting is based on a duration of time that the active browsing network connection has been idle, and wherein the duration of time for detecting that the active browsing network connection is idle varies for each of the plurality of items in relation to the size of the item; and
downloading the specified data from the remote server at the detected idle time through an idle time network connection that is different from the active browsing network connection. - View Dependent Claims (22)
determining that the active browsing network connection is idle based on a length of the time elapsed since a last activity occurred on the active browsing network connection.
-
-
23. A method in a client computer of automatically updating locally stored data from a remote server on a network, the method comprising:
-
associating a set of one or more folders in a file system of the client computer with a folder specification file residing at the remote server, wherein the folder specification file specifies one or more items of data, and wherein the folder specification file further specifies for at least one item of the one or more items of data a location for storage in the set of one or more folders in the file system of the client computer;
downloading the folder specification file to the client computer from the remote server; and
for each item out of the one or more items specified in the folder specification file, downloading the item from the network; and
storing the data of the downloaded item in the set of one or more folders, wherein if the folder specification file specifies for the item a location for storage in the set of one or more folders, the item is stored at the specified location. - View Dependent Claims (24, 25)
downloading the folder specification file to the client computer from the remote server;
based upon the folder specification file, deciding by the client computer how to update the set of one or more folders associated with the folder specification file; and
updating the set of one or more folders associated with the folder specification file.
-
-
25. The method of claim 23 wherein the data of at least one of the items comprises a pointer to a remote resource located on a second remote server.
-
26. A method of downloading data to a computer unattended from a remote server on a network, comprising:
-
specifying the data to download from the remote server prior to a user'"'"'s on-line session;
establishing a network connection to the network through a network programming interface, wherein the network programming interface exposes a time-check function for monitoring activity on the network connection;
during the user'"'"'s on-line session wherein the computer is connected to the network through the network connection for the user to interactively download other data from the network, calling the time-check function exposed by the network programming interface, wherein the time-check function returns a time value based upon the last activity on the network connection;
comparing the time value to a threshold idleness interval;
if the comparison indicates idleness on the network connection, downloading the specified data from the remote server; and
locally storing the data at the computer, whereby the data is available at the computer for off-line use after the connection is terminated. - View Dependent Claims (27, 28, 29, 30, 31, 32)
downloading the items in order of increasing size.
-
-
32. The method of claim 26 wherein the network programming interface is a network socket programming interface for use in a windowed operating system environment.
-
33. A method of downloading data to a computer unattended from a remote server on a network, comprising:
-
specifying the data to download from the remote server prior to a user'"'"'s on-line session, wherein the data comprises a plurality of items;
during the user'"'"'s on-line session wherein the computer is connected to the network for the user to interactively download other data from the network, detecting that the connection to the network is idle based on a comparison of the duration of time that the connection has been idle to an idleness threshold, where the idleness threshold varies for each item in relation to the size of the item;
downloading the specified data from the remote server at the detected idle time. - View Dependent Claims (34, 35)
determining to download a first of the items having a first size when the connection has been idle for a first duration related to the first size; and
determining to download a second of the items having a second size larger than the first size if the connection continues to remain idle for a second duration longer than the first duration.
-
Specification