This invention relates to installing and using desktop and web applications on different types of electronic devices. Sometimes a task running within a program on an electronic device, such as a computer, a personal digital assistant (PDA), a cellular telephone, a television set, and so on, might take a while to complete. Examples of common such tasks include downloading a file, installing a program component, or transferring a file. A user-friendly program typically provides some indication to the user that the task is occurring, how long the task might take, and how much work has already been done. One way of indicating that work is being done, and to indicate the amount of progress, is to use an animated image known as a progress bar.
The progress bar can be formally described as a component in a graphical user interface, and is used to convey the progress of a task, such as a download or file transfer. Often the graphic is accompanied by a textual representation of the progress, typically in a percentage format, which can indicate how far along the installation or download has proceeded, such as “53% done”, or something similar.
When a user must wait a large period of time for a progress indicator to complete, she often would like to perform a different task or activity while she is waiting. For example, a user may go have lunch while they wait for a file to download from the web. Unfortunately, when the user is away from her computer, there is no notification mechanism to let her know when the download or installation is complete or when a particular point in the installation or download has been reached.
In general, in one aspect, the invention provides methods and apparatus, including computer program products, implementing and using techniques for providing a notification to a user about the progress of a task running on a digital processing device. A user input identifying a progress indicator for the task running on the digital processing device is received. A user input selecting a threshold value is received. The threshold value indicates a point on the progress indicator at which the user is to be notified about the progress of the task. A notification is provided to the user when the threshold value is reached.
The invention can be implemented to include one or more of the following advantages. A user can be notified about the progress of one or more tasks, such as, when a task is completed or when the task reaches one or more preset threshold values, even when the user is not present at the computer at which the task is occurring. This can free up significant amounts of time for the user to do other things while waiting for the task to complete and allow the user to multi-task. Furthermore, instead of (or in addition to) notifying a user, various system events, such as downloading or installing a different application, can be triggered when the task is completed or has reached the preset value defined by the user.
The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features and advantages of the invention will be apparent from the description and drawings, and from the claims.
Like reference symbols in the various drawings indicate like elements.
The various embodiments of this invention is prospective invention provides a generic user interface for the user to define an area of the screen as a progress indicator. A threshold is defined by the user. When this threshold is reached, a notification can be sent by SMS, email, instant message, and the like. For example, consider Alice who just started installing a middleware product on her computer. She realizes that the current progress indicator will take at least an hour to complete, so she decides to visit the company library. Before leaving, she defines an area of the computer screen that is the progress indicator for the software install. She also specifies that she should be notified by SMS when the progress indicator gets to 90%. Alice goes to the library. Seventy minutes later, she gets a text message on her phone that the install is 90% complete, so she heads back to her office.
The invention will be described below in further detail by way of example and with reference to a single task indicated by a single task bar. However, as the skilled person in the art realizes, any number of tasks can be simultaneously monitored in a similar manner, so the various embodiments of the invention is not limited to a single task.
As shown in
Next, a user input is received selecting a color of the progress bar and a color of the background (step 204). This is done to allow the process to distinguish the progress bar from the background, and thereby to distinguish completed progress from pending progress and to tell the system when a threshold is reached.
After selecting a color of the progress bar, the process receives a user input selecting a threshold for notification (step 206). As can be seen in
Next, the process receives a user input selecting a notification type (step 208). The user selects any of a number of notification methods that are known to those of ordinary skill in the art, such as SMS, email, page, phone call, and so on. In some implementations, the user's preferences can be saved so that the user does not have to select the notification type every time the process is run, whereas in other applications, the user is requested to enter the notification method and the corresponding email address, SMS address or telephone number for every desired notification.
Finally, the process tracks the progress bar and when the selected threshold is reached, the process notifies the user using the selected notification method (step 210), which ends the process.
As the skilled person realizes, the various embodiments of the invention can be implemented in a variety of ways. For example, the process can be implemented separately in each application that presents a progress bar. Alternatively, the process can also be implemented as a part of an operating system, so that the user can simply click the right button of his mouse on a progress bar and get the option of subscribing to a progress indicator threshold. In yet another alternative, the progress indicator subscription process can be implemented as part of a graphical user interface toolkit (e.g., a toolbar to be installed in a web browser). The various implementations of the invention described herein can be utilized essentially in every situation where there is a need for a user to be notified when a task has been completed.
In some embodiments, when multiple tasks (e.g., tasks A, B and C) are underway, the user can set notifications to occur, for example, when both task A and task B have reached 80% of being complete, or when task A and task Be are complete and task C has reached 90%, or any other possible combination of tasks and threshold values.
The invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD.
A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.
Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers.
Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.
A number of implementations of the invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. For example, the above example has focused on how to notify a single user, but it should be clear that any number of users could be notified using any variation of the above communication means. The progress bar has been described with reference to a particular color selected by a user, but it should be clear that any other type of indication could be used in alternative embodiments, such as a particular pattern selected by a user. The progress indicator does not have to be a rectangular progress bar, but can be any type of visual indicator capable of indicating proportional progress, such as a pie chart progress indicator, for example.
More then one threshold can also be set, so that the user receives a first notification, for example, when 50% of the task is done, and a second notification, for example, when 90% of the task is done. The various embodiments described above have been described in the context of a computer, but it should be clear that the same principles can be applied to any other type of digital processing device capable of running applications, such as a personal digital assistant (PDA), cellular telephone, television set, and so on.
The principles described above can be applied to any task that has an associated wait time, and for which the user wishes to be notified when a specific amount of time has passed or the task has reached a predefined state. In some implementations, other events can be triggered instead of, or in addition to, a user notification. For example, in some cases it may be desirable to start a second download after a first download has completed or almost completed, so the user may define other such tasks as a result of a task being completed. Accordingly, other embodiments are within the scope of the following claims.
| Number | Name | Date | Kind |
|---|---|---|---|
| 6100887 | Bormann et al. | Aug 2000 | A |
| 6104398 | Cox et al. | Aug 2000 | A |
| 6639687 | Neilsen | Oct 2003 | B1 |
| 6661434 | MacPhail | Dec 2003 | B1 |
| 6874130 | Baweja | Mar 2005 | B1 |
| 6934916 | Webb et al. | Aug 2005 | B1 |
| 7073135 | Harris | Jul 2006 | B2 |
| 7568151 | Bargeron et al. | Jul 2009 | B2 |
| 7697922 | McQuaide et al. | Apr 2010 | B2 |
| 8521891 | Shinde | Aug 2013 | B1 |
| 20020087643 | Parsons et al. | Jul 2002 | A1 |
| 20030005022 | Brown | Jan 2003 | A1 |
| 20030110190 | Achiwa et al. | Jun 2003 | A1 |
| 20030112269 | Lentz | Jun 2003 | A1 |
| 20030182409 | Seaman | Sep 2003 | A1 |
| 20030220973 | Zhu et al. | Nov 2003 | A1 |
| 20040078453 | Bhogal | Apr 2004 | A1 |
| 20040204823 | Hashimoto | Oct 2004 | A1 |
| 20050102631 | Andreas | May 2005 | A1 |
| 20050165854 | Burnett et al. | Jul 2005 | A1 |
| 20050172239 | Liu et al. | Aug 2005 | A1 |
| 20050183017 | Cain | Aug 2005 | A1 |
| 20050240881 | Rush et al. | Oct 2005 | A1 |
| 20060045470 | Poslinski et al. | Mar 2006 | A1 |
| 20060048184 | Poslinski et al. | Mar 2006 | A1 |
| 20060085790 | Hintermeister | Apr 2006 | A1 |
| 20060143483 | Liebenow | Jun 2006 | A1 |
| 20060240803 | Valeriano et al. | Oct 2006 | A1 |
| 20070033129 | Coates | Feb 2007 | A1 |
| 20070162844 | Woodall et al. | Jul 2007 | A1 |
| 20070168877 | Jain et al. | Jul 2007 | A1 |
| 20070266304 | Fletcher et al. | Nov 2007 | A1 |
| 20080065904 | Clark | Mar 2008 | A1 |
| 20080120565 | Stiso et al. | May 2008 | A1 |
| 20080244437 | Fischer | Oct 2008 | A1 |
| 20080256474 | Chakra | Oct 2008 | A1 |
| 20090037835 | Goldman | Feb 2009 | A1 |
| 20090106684 | Chakra | Apr 2009 | A1 |
| Number | Date | Country |
|---|---|---|
| WO 2006016007 | Feb 2006 | WO |
| Entry |
|---|
| Haynes, “Stopwatch Pointer: A Dynamic Progress Indicator,” IBM Technical Disclosure Bulletin, vol. 35, No. 1B, Jun. 1992, pp. 469-471. |
| Number | Date | Country | |
|---|---|---|---|
| 20090064143 A1 | Mar 2009 | US |