None.
None.
Embodiments of the present invention relate to a system and method for managing synchronization of devices and in particular to a system and method for providing a single aggregation point used to manage synchronization of multiple devices.
Computer users in today's environment may use a number of different computing devices. For example, a computer user may use a stationary computer terminal, a laptop computer, and a blackberry or other mobile device. Often, these computing devices are used to store similar or related information. For example, a calendar storing a user's appointment schedule may be present on a stationary computer terminal, a laptop computer, and a mobile device. As another example, a document may be stored on a stationary computer terminal and then copied to a laptop computer, where a user may edit the document.
After updating or altering information on one device, the user may wish to transfer the updated information to another device. In order to transfer information between devices, the user may choose to synchronize, or “sync,” two or more devices. One or more of the devices may contain a “sync manager,” which performs syncing operations. When two devices are synced, it is typically determined which device contains the most recent information. The device with the most recent information may, for example, transfer information to the other device.
Syncing is also useful in networking applications. For example, two or more users may have access to the same document, calendar, or other information in a networked computing environment. Syncing may be used in such an environment to ensure that the most recent copy of the information is used.
Conventionally, a user may connect a first device to a second device to begin a sync operation. For example, a user may rest a handheld device in a cradle which is connected to a computer terminal, may connect a laptop computer to a stationary computer terminal, or the like. The sync manager then begins to reconcile the different versions of files stored in the two devices. In some instances, the sync manager may reconcile versions of the files without user input, such as by determining which version of information has been most recently edited. In other instances, the sync manager requests input from the user in determining which version(s) of a file to keep.
While a sync operation is being performed, the user is typically presented with information detailing the status of the sync operation. For example, the user may be presented with a dialog box indicating that a sync operation is being performed, and containing a status bar indicating the progress of the sync operation.
In addition, the user interface presented to a user during a sync operation is typically prominent and may require input from the user during the sync operation. A user may not wish to be presented with a large, bulky display during a sync operation, for example, because the user may wish to perform other tasks.
Furthermore, a user wishing to perform multiple sync operations may be required, for example, to connect and sync each device in turn. Because the user may be required to sync each device in turn and provide input for each sync operation, syncing more than one device may prove to be a lengthy and cumbersome process. Furthermore, each device may provide its own display presenting the user with information regarding sync operations. A user may therefore be required to access multiple displays to obtain sync information. For example, a user wishing to determine whether all sync operations were completed successfully may be required to access a laptop sync display, a Palm Pilot sync display, and a BlackBerry sync display.
There is therefore a need in the art for a centralized display that allows a user to quickly and easily manage sync operations for multiple devices. There is a further need in the art for a lightweight sync display that allows a user to perform other tasks during a sync operation.
Embodiments of the present invention include a method for displaying and managing information related to at least one sync operation. The method may include displaying a first-layer graphical user interface presenting first information related to at least one sync operation, determining whether a user requests a second-layer graphical user interface, and, if the user requests a second-layer graphical user interface, displaying a second-layer graphical user interface presenting second information related to at least one sync operation.
In a further aspect of the invention, a system for displaying information related to at least one sync operation may include at least one sync handler being implemented in accordance with a sync application program interface. The system may further include a sync user interface configured to receive sync operation information from a plurality of sync handlers, to display a first-layer graphical user interface presenting first information related to at least one sync operation, and to display a second-layer graphical user interface presenting second information related to at least one sync operation.
In still further aspects of the invention, a sync user interface is configured to receive information from a plurality of sync handlers and to display a tray icon presenting first information related to at least one sync operation.
The foregoing systems and methods may provide a centralized display that allows a user to quickly and easily manage sync operations for multiple devices. The invention may also provide a layered sync display, in which each layer presents a user with successively more information. The layered sync display may ensure that a user is not presented with extraneous information, which simplifies management of sync operations and allows user to perform other tasks during sync operations.
In implementations of the present invention, sync operations may occur without user input, so that the user may continue working on other tasks while a sync operation is taking place. The user may elect to enter input, such as input used to resolve conflicts or other input requested by the sync operation, at a later time that is convenient for the user.
The present invention is described in detail below with reference to the attached drawings figures, wherein:
I. System Overview
A system and method are provided for implementing a sync manager. The sync manager may be used to sync two or more devices, folders, or other data sources.
The system may include a terminal 200, which includes a sync manager 201. The terminal 200 may be connected to one or more devices 202, 204 via couplings 206, 208, respectively. Each device 202, 204 may be or include, for example, a mobile communication device, a laptop computer, a gaming device, a camera, a computer terminal, or the like. A sync operation may begin, for example, when a user connects the device 202 to the terminal 200 via the coupling 206 and/or connects the device 204 to the terminal 200 via the coupling 208.
The sync manager 201 contains a Sync Application Program Interface (API) 218 that contains objects and methods used in a sync operation. The objects included in the Sync API may include, for example, one or more Sync Handlers 220, 222, 224, each of which specifies how a sync operation is to be performed, for example, by providing the logic necessary to link with a particular device, folder, or other data source. The objects included in the Sync API may also include, for example, one or more Sync Monitors 226, 228, 230, each of which monitors a device, folder, or other data source to determine when a sync operation should be performed.
The Sync API 218 may include a general Sync Handler 220, for example, which is the default sync handler used in performing a sync operation. The Sync API 218 may also be or include an extensible API that is extended, for example, to create specialized sync handlers for particular devices and/or applications. As a particular example, BlackBerry developers can write a sync handler specifying how sync operations including a Blackberry are to be performed. As shown in
The Sync API 218 may also include a general Sync Monitor 226, for example, which is the default sync monitor used to determine when a sync operation should take place. The Sync API 218 may also be or include an extensible API that is extended, for example, to create specialized sync monitors for particular devices and/or applications. As a particular example, BlackBerry developers can write a sync monitor specifying how when sync operations including a Blackberry are to be performed. As shown in
When one or more of the Sync Monitors 226, 228, 230 determines that a sync operation should occur, a Sync User Interface (UI) 232 may alert a user. The Sync UI 232 may be stored, for example, on the terminal 200, the device 202, and/or the device 204. The Sync UI 232 may alert the user, for example via a display 242, 246, and/or 250 included in or connected to the terminal 200, device 202, or device 204, respectively. The user may then choose to initiate the sync operation. Alternately or in addition, the Sync Monitors 226, 228, 230 may automatically initiate the sync operation.
Sync operations are performed by a Sync Server 234 using methods specified in one or more of the Sync Handlers 220, 222, 224. In performing sync operations, the Sync Server 234 may cache one or more of the Sync Handlers 220, 222, 224 to expedite sync operations.
As sync operations occur, the Sync UI 232 may present information to a user via one or more of the displays 242, 246, 250. In one implementation, the Sync UI 232 has a layered structure, and includes a plurality of UI components 252, 254, 256. For example, the Sync UI 232 may include a first-layer UI component 252, which may present a user with a first-layer GUI such as a tray icon. The Sync UI 232 may also include a second-layer UI component 254, which may present a user with a second-layer GUI, such as a “mini-mode” that includes more information than the first-layer GUI. The Sync UI 232 may further include a third-layer UI component 256, which may present a user with a third-layer GUI, such as a “full-mode” that includes still more information. The first-, second-, and third-layer GUIs will be discussed further hereinbelow with reference to
In displaying information to a user, the Sync UI 232 may cache one or more of the Sync Handlers 220, 222, 224 to expedite the display.
In implementations of the present invention, developers may extend the Sync UI 232, for example, by specifying additional information or user options to be presented by the second-layer UI component 254 and/or the third-layer UI component 256. This allows developers to utilize the Sync UI 232 to present data relevant to a particular device.
II. Exemplary Operating Environment
The invention is described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the invention may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
With reference to
Computer 110 typically includes a variety of computer readable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. The system memory 130 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 131 and random access memory (RAM) 132. A basic input/output system 133 (BIOS), containing the basic routines that help to transfer information between elements within computer 110, such as during start-up, is typically stored in ROM 131. RAM 132 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 120. By way of example, and not limitation,
The computer 110 may also include other removable/nonremovable, volatile/nonvolatile computer storage media. By way of example only,
The drives and their associated computer storage media discussed above and illustrated in
The computer 110 in the present invention will operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 180. The remote computer 180 may be a personal computer, and typically includes many or all of the elements described above relative to the computer 110, although only a memory storage device 181 has been illustrated in
When used in a LAN networking environment, the computer 110 is connected to the LAN 171 through a network interface or adapter 170. When used in a WAN networking environment, the computer 110 typically includes a modem 172 or other means for establishing communications over the WAN 173, such as the Internet. The modem 172, which may be internal or external, may be connected to the system bus 121 via the user input interface 160, or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 110, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation,
Although many other internal components of the computer 110 are not shown, those of ordinary skill in the art will appreciate that such components and the interconnection are well known. Accordingly, additional details concerning the internal construction of the computer 110 need not be disclosed in connection with the present invention.
III. Systems and Methods of the Invention
As set forth above,
The first-layer UI component 252 may present a user with a first-layer GUI, such as a tray icon 300, as shown in
Because the tray icon 300 may be out-of-the-way and non-intrusive, the user may be free to perform other tasks, for example, via the display 304.
A user may also use the tray icon 300 for example, to select common tasks 306 associated with sync operations. Common tasks 306, such as, for example, a “sync all” task that initiates a sync operation with all connected devices, may be presented to the user via the tray icon 300. A user may select a common task 306, for example, by right-clicking on the tray icon 300 and selecting the common task 306 from a drop-down menu 308, or by some other appropriate method.
The tray icon 300 is one example of a lightweight, out-of-the-way interface that may be presented to a user to indicate the status of a sync operation. If the user requires more information than that provided by the tray icon 300, the user may enter a “mini-mode,” for example, by double-clicking on the tray icon, by selecting “more info” from the drop-down menu 308, or by some other appropriate method.
As shown in
If the user desires more information than is available in the mini-mode, the user may access a “full view,” for example, by selecting an option 406 in the mini-mode 400 or by some other appropriate method. As shown in
In implementations of the full mode 500, a user may be able to separately view information for a particular device, for example, by clicking on a tab 508, 510, 512 or by some other appropriate method. A user may be able to view general sync information, for example, by clicking on a general tab 514 or by some other appropriate method. Each of the tabs 508, 510, 512, 514 may allow the user to select one or more full-view tasks 502, 504, 506.
In implementations of the present invention, developers may extend the Sync UI 232, for example, by specifying additional information or user options to be presented by the in the mini-mode 400 and/or the full mode 500. This allows developers to utilize the Sync UI 232 to present data relevant to a particular device.
In step 604, the user may request more information than the information provided by the tray icon or other first-layer GUI. If the user requests more information in step 604, a mini-mode or other second-layer GUI may be displayed in step 606. The mini-mode or other second-layer GUI may, for example, display more information than the tray icon or other first-layer GUI. In addition, the mini-mode or other second-layer GUI may present the user with the option to select additional tasks not presented in the tray icon or other first-layer GUI.
In step 608, the user may request more information than the information provided by the mini-mode or other second-layer GUI. If the user requests more information in step 608, a full mode or other third-layer GUI may be displayed in step 610. The full mode or other third-layer GUI may, for example, display more information than the mini-mode or other second-layer GUI. In addition, the full mode or other third-layer GUI may present the user with the option to select additional tasks not presented in the mini-mode or other second-layer GUI.
While sync operations are in progress, the tray icon or other first-layer GUI, the mini-mode or other second-layer GUI, and/or the full mode or other third-layer GUI may present the user with information regarding the progress or status of sync operations. For example, a tray icon may remain bright or continue spinning during sync operations, and may change its color if user input is required, such as in the case of a conflict. As another example, progress bars or status listings of various sync operations in the mini-mode or in the full-mode may change to reflect sync operations in progress. Other examples are possible.
In step 612, sync operations are completed, and in step 614, one or more displays are altered to alert the user to the completion of the sync operation. For example, a tray icon may reduce its brightness and stop spinning, or may change its color, for example, to green to indicate that sync operations were successfully completed or to red to indicate that sync operations were unsuccessful. As another example, the mini-mode or the full mode may be altered to indicate the completion of sync operations.
While particular embodiments of the invention have been illustrated and described in detail herein, it should be understood that various changes and modifications might be made to the invention without departing from the scope and intent of the invention. For example, while the invention has primarily been described in terms of mobile devices connecting to a stationary computer terminal, the invention is equally suited to other environments, such as a network of computer terminals or other appropriate environment. In addition, while the devices have been described as being connected via couplings, any method of communication, such as, for example, wireless communication, is suitable. The embodiments described herein are intended in all respects to be illustrative rather than restrictive. Alternate embodiments will become apparent to those skilled in the art to which the present invention pertains without departing from its scope.
From the foregoing it will be seen that this invention is one well adapted to attain all the ends and objects set forth above, together with other advantages, which are obvious and inherent to the system and method. It will be understood that certain features and sub-combinations are of utility and may be employed without reference to other features and sub-combinations. This is contemplated and within the scope of the appended claims.