The present disclosure relates in general to the field of computers and other data processing systems, including hardware, software and processes. More particularly, the present disclosure pertains to tailoring the way interface resources are managed on a User Interface (UI).SUMMARY OF THE INVENTION
A computer-implementable method enables a user to customize the management and navigation of interface resources that are displayed on a computer User Interface (UI). A computer receives, from a user, an input of user-created metadata. This user-created metadata is associated with one or more User Interface (UI) resources that are depicted on a UI. In response to a user subsequently inputting specific metadata, the computer retrieves one or more UI resources that are associated with the specific metadata that has been input by the user. These retrieved one or more UI resources are then displayed on the UI. These user-created metadata provide for user-specified selection criteria, which may be persisted, for particular UI resources that are needed by the user.
The above, as well as additional purposes, features, and advantages of the present invention will become apparent in the following detailed written description.BRIEF DESCRIPTION OF THE DRAWINGS
The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further purposes and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, where:
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
Many User Interfaces (UIs), such as Web-based administration consoles, contain a variety of user interface resources. A User Interface (UI) resource is defined as a resource that is available to a user through a UI, and includes, but is not limited to, user-fillable forms and other types of data-input widgets, wizards (for guiding a user through a process such as software maintenance, hardware maintenance, etc.), property notebooks (e.g., tabbed widgets), portlets (e.g., a UI component that provides access to a portlet application, such as a type of website, e-mail, etc., and can be used across multiple different websites), portal pages (i.e., webpages that have been specially designed to provide access to a pre-defined set of webpages), and Web pages. Generally, the user interfaces include some form of navigation mechanism, such as a navigation tree, so that the user can find the UI resources needed to achieve certain goals.
As the quantity of UI resources, locating a UI resource becomes increasingly difficult, thus making it increasingly difficult for a user to perform specific tasks or to achieve specific goals. This is particularly difficult with regards to UI resources that a user utilizes infrequently. The problem becomes exacerbated if search tools, names of files/resources/tasks, and search metadata are not intuitive to a user. For example, a navigation tree may display files that are named and assigned metadata according to criteria established by the programmer that may not be sensible or memorable to a user.
Thus, presently presented are a method, system and computer-readable medium that are used to allow a user to define user-created metadata to be associated with particular UI resources, or alternatively to particular UI-based tasks, such that these UI resources and/or tasks are easily managed in a customized manner.
With reference now to the figures, and in particular to
UI 102 also includes a pane 106, which displays a metadata input widget 108a. As suggested by the instructions 110 depicted in pane 106, a user can enter user-created metadata (e.g., “Stop server wizard”, “Start server wizard”, “Weekly maintenance wizard”, “Web page for upgrades”) to be associated with the UI resource “Manage server” for “Server 1”. These entered user-created metadata describe, in a manner that is logical and memorable to the user who created the user-created metadata, different UI resources that are part of the main UI resource “Manage server.” That is, the user-created metadata describe some or all of the UI resources that are available to an end-user if an end-user were to click the field “Manage server” in navigation tree pane 104. As will be described later, clicking such a field from a navigation tree pane in a customized view display UI (e.g., UI 602 shown below in
Note that field 112a was auto-populated with the term “Manage Server” when a user clicked “Manage server” in the navigation tree pane 104, thus providing the user with an addition indicator for which UI resource is being customized with new user-created metadata.
As depicted and described in
As illustrated in
Similarly, as illustrated in
Referring now to
Note that UI resources, or alternatively tasks, may be consolidated into groups. If so, then such groups may also be assigned user-created group metadata 408, which is associated with specific UI resources found in UI resources 406. Alternatively, such user-created group metadata may be associated with user-defined metadata 402 and/or predefined metadata 404, such that the association between the user-created group metadata 408 and UI resources in UI resources 406 is indirect.
As shown in
With reference now to
First, UI resources, which make up the main UI resource that is presented, may have been renamed to comport with the user-created metadata. That is, the task “Stop Server wizard” may have been originally named “Deactivate computer wizard.” However, this task has been renamed to be more sensible to the user. Second, more UI resources than those described by the user (“Upgrade webpage”) may be shown in field 608. The user can still click these UI resources if she so desires. Third, each UI resource may be linked to a specific file, webpage or other resource. In the example shown, the UI resource “Weekly maintenance wizard” has been associated with a URL “http://maintenance webpage.net”, which is shown in pop-up window 610. Pop-up window 610 appears when a user hovers a cursor over the active area, in file 608, for “Weekly maintenance.” By clicking this hyperlink, the user is taken directly to a webpage that supports the process of weekly maintenance of Server 1. Alternatively, a link to an executable file may be popped-up by hovering a cursor over the subtask name “Weekly maintenance.” For example, assume that such a link/file is named “weekly_maint_wizard.exe”. By clicking this link, the file “weekly_maint_wizard.exe” is auto-run to perform a series of maintenance routines on Server 1. This UI resource, as well as other UI resources (including text instructions, links, portlets, etc.), which are logically depicted in
With reference now to
The user can subsequently use her user-created metadata to manage particular UI resources. Thus, as shown in
As described above, UI resources are defined above as resources that are available to a user through a UI, such as user-fillable forms and other types of data-input widgets, wizards, property notebooks, portlets, etc. However, the above described method for incorporating user-defined metadata to a UI resource can also be implemented to associate user-defined task metadata to particular tasks that are associated with UI resources. Furthermore, such UI resources and/or tasks can be consolidated into groups, such that each group is assigned its own user-created group metadata. Thus, with reference now to
As shown in
Referring now to
The process described for managing task groups is depicted in the high-level flow charts shown in
The task group can now be filtered, retrieved and otherwise managed using the user-created task group metadata. As shown in
Note that in one embodiment, in which UI resources are directly associated with specific tasks, UI resources that are associated with the specific tasks are automatically displayed on a UI whenever the user that created the user-created metadata logs onto her computer.
With reference now to
Client computer 1102 is able to communicate with a service provider server 1150 via a network 1128 using a network interface 1130, which is coupled to system bus 1106. Network 1128 may be an external network such as the Internet, or an internal network such as an Ethernet or a Virtual Private Network (VPN).
A hard drive interface 1132 is also coupled to system bus 1106. Hard drive interface 1132 interfaces with a hard drive 1134. In a preferred embodiment, hard drive 1134 populates a system memory 1136, which is also coupled to system bus 1106. System memory is defined as a lowest level of volatile memory in client computer 1102. This volatile memory may include additional higher levels of volatile memory (not shown), including but not limited to cache memory, registers, and buffers. Data that populates system memory 1136 includes client computer 1102's operating system (OS) 1138 and application programs 1144.
OS 1138 includes a shell 1140, for providing transparent user access to resources such as application programs 1144. Generally, shell 1140 is a program that provides an interpreter and an interface between the user and the operating system. More specifically, shell 1140 executes commands that are entered into a command line user interface or from a file. Thus, shell 1140 (as it is called in UNIX®), also called a command processor in Windows®, is generally the highest level of the operating system software hierarchy and serves as a command interpreter. The shell provides a system prompt, interprets commands entered by keyboard, mouse, or other user input media, and sends the interpreted command(s) to the appropriate lower levels of the operating system (e.g., a kernel 1142) for processing. Note that while shell 1140 is a text-based, line-oriented user interface, the present invention will equally well support other user interface modes, such as graphical, voice, gestural, etc.
As depicted, OS 1138 also includes kernel 1142, which includes lower levels of functionality for OS 1138, including providing essential services required by other parts of OS 1138 and application programs 1144, including memory management, process and task management, disk management, and mouse and keyboard management.
Application programs 1144 include a browser 1146. Browser 1146 includes program modules and instructions enabling a World Wide Web (WWW) client (i.e., client computer 1102) to send and receive network messages to the Internet using HyperText Transfer Protocol (HTTP) messaging, thus enabling communication with service provider server 1150.
Application programs 1144 in client computer 1102's system memory also include a User Interface Resource Management Program (UIRMP) 1148, which includes code for implementing the processes and User Interfaces (UIs) described in
In one embodiment, client computer 1102 is able to download UIRMP 1148 from service provider server 1150, preferably in an “on demand” basis.
Note that the hardware architecture for service provider server 1150 may be substantially similar to that shown for client computer 1102. Similarly, servers found in server farm 1152 may utilize a substantially similar architecture to that found in client computer 1102.
Server farm 1152 includes servers that may provide resources such as the UI resources described above. Alternatively, such UI resources and/or task descriptors may be maintained within disk drive 1134 and/or system memory 1136 of client computer 1102 or service provider server 1150.
The hardware elements depicted in client computer 1102 are not intended to be exhaustive, but rather are representative to highlight essential components required by the present invention. For instance, client computer 1102 may include alternate memory storage devices such as magnetic cassettes, Digital Versatile Disks (DVDs), Bernoulli cartridges, and the like. These and other variations are intended to be within the spirit and scope of the present invention.
Note further that, in a preferred embodiment of the present invention, service provider server 1150 performs all of the functions associated with the present invention (including execution of UIRMP 1148), thus freeing client computer 1102 from using its own resources.
It should be understood that at least some aspects of the present invention may alternatively be implemented in a computer-useable medium that contains a program product. Programs defining functions of the present invention can be delivered to a data storage system or a computer system via a variety of signal-bearing media, which include, without limitation, non-writable storage media (e.g., CD-ROM), writable storage media (e.g., hard disk drive, read/write CD ROM, optical media), and communication media, such as computer and telephone networks including Ethernet, the Internet, wireless networks, and like network systems. It should be understood, therefore, that such signal-bearing media when carrying or encoding computer readable instructions that direct method functions in the present invention, represent alternative embodiments of the present invention. Further, it is understood that the present invention may be implemented by a system having means in the form of hardware, software, or a combination of software and hardware as described herein or their equivalent.Software Deployment
As described above, in one embodiment, the processes described by the present invention, including the functions of UIRMP 1148, are performed by service provider server 1150. Alternatively, UIRMP 1148 can be deployed as software from service provider server 1150 to client computer 1102. This deployment may be performed in an “on demand” basis manner, in which UIRMP 1148 is only deployed when needed by client computer 1102. In another embodiment, process software for the method so described may be deployed to service provider server 1150 by another service provider server (not shown).
As described above in an exemplary embodiment, presently presented are a method and system that provides a user with the ability to organize User Interface (UI) elements in a manner that eases finding specific UI resources and/or tasks. This is achieved by providing User Interface (UI) capabilities to annotate UI elements with specific metadata that makes sense to the particular user. The metadata could be used either to make searches possible using terminology that is natural to the user, or to enable multiple ways of filtering navigation content (e.g., to show a user only the specific set of control elements he finds relevant for the his task at hand) or other control elements (such as a portlet, a Web page, or a form). Since the metadata is expressed in terms provided by a particular user, that user is freed from having to remember vendor-specific terms for performing searches. The herein described method and system also allows the user to group together sets of control elements that he uses together to perform a personal task, or that he uses on different days of the week, or whatever organization approach is most natural to him. Thus, the user can shape the navigation of a large-scale user interface to match his personal vocabulary and work style, without creating yet another object, such as a bookmark file, that has to be maintained. The presently disclosed method and system also allows the user to have multiple organizational levels, such that tasks that are not appropriate for a particular time of day or type of task may be filtered out during a search of tasks (or resources).
In one embodiment, a user defines or assigns metadata or keywords to pages, navigation elements (for example, nodes and leaves in a navigation tree), and other interface control elements while using an application or viewing information (for example, a Web page). Since created by the user, the user can later locate a UI resource using his own terminology rather than having to learn the application vendor's or content provider's vocabulary.
One embodiment of the present invention also includes a mechanism for the user to make personal notations (add, view, modify, delete notations individually and collectively) and a mechanism to filter, sort, or search on vendor-supplied, user-supplied, or both types of keywords. These user-specified annotations or metadata may be included in any search, sort, or filter action to locate matches.
As a further convenience, a mechanism to categorize the individual or group (node and leaves) annotated navigational entries, pages/panels, and content into user-created categories can be provided. It is further noted that the user-created task metadata and/or user-created group metadata is comprised of anything that the user finds helpful to locate a user interface resource, including but not limited to timeframe references, system data, user data, activity related data, or any other data that has particular meaning to the user.
Note that the method steps described herein may be implemented in a computer system, and may further be executed by instructions that are stored in a computer-readable medium.
In another embodiment, in which the methods described herein are performed by software that is stored on a computer-readable medium, the computer-readable medium is a component of a remote server, and the computer executable instructions are deployable to a client computer and/or a supervisory computer from the remote server. This deployment may be provided by a service provider to a customer computer (e.g., the client computer and/or the supervisory computer) on an on-demand basis.
Note that while the creation and use of user-created metadata is described for exemplary purposes as being used by the user who created the user-created metadata, such user-created metadata can be shared with other users for their use.
While the present invention has been particularly shown and described with reference to a preferred embodiment, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention. Furthermore, as used in the specification and the appended claims, the term “computer” or “system” or “computer system” or “computing device” includes any data processing system including, but not limited to, personal computers, servers, workstations, network computers, main frame computers, routers, switches, Personal Digital Assistants (PDA's), telephones, and any other system capable of processing, transmitting, receiving, capturing and/or storing data.