Hardware and software manufacturers are conscious of the experience a user has when using their products. A software manufacturer, for example, may be concerned with the experience a user has in installing software on one or more computing systems, and in using the software after it is installed. When installing a software application, an installation function or program provides a user interface (sometimes referred to as a Graphical User Interface (GUI)) to guide the user through the installation process. The user typically proceeds through multiple screens or windows of the user interface to acknowledge software license terms, to select particular properties, to configure network settings, and to enter information such as a product key, a time and time zone setting, etc. After installation, the software application provides a user interface that allows the user to perform one or more functions provided by the software application.
One problem with present user interfaces provided by software and hardware is that the nomenclature and other aspects of the user interfaces are programmed to be generalized based on what is common or proper in the technology. For instance, a user of a product is aptly referred to as a “user” (or “user1”, “user 2”, etc) by a user interface. A computer on a network is typically referred to as a “client” or a “computer” by a user interface. The user interface is technology centric and general so that it may be used in a home environment, a business environment, or another type of environment, without being tailored to one of those types of environments. For instance, if a user interface referred to a user as an “employee”, then that nomenclature would be appropriate for some types of businesses but would not be appropriate for most home uses. Thus, more generalized nomenclature and other interface aspects are used.
When software or hardware is shipped from the manufacturer, the user interface is presently the same regardless of whether the software or hardware will be used in home environment, a business environment, or another type of environment. When the end user receives the software or hardware, the end user may personalize the otherwise general user interface to a certain extent, such as by selecting font styles and sizes, changing properties, etc. However, these changes are made by the end user and the changes depend on the individual taste of the end user. The generalized user interfaces provided by present software or hardware manufacturers do not foster any type of emotional or meaningful connection with the user, which may diminish the overall user experience.
Embodiments of the invention solve the above and other problems by personalizing a user interface provided by a computing system based on the consumer-usage environment (e.g., home or business) of the computing system. The user interface can be personalized based on the consumer-usage environment in a variety of ways. For instance, the nomenclature of a user interface may change based on whether the computing system is being used in a home or in a business. In a home environment, the user interface may use nomenclature such as “family member”, “father”, “daughter”, etc. In a business environment, the user interface may use nomenclature such as “employee”, “manager”, etc. By changing the user interface based on the consumer-usage environment of the computing system, the experience of a user may be enhanced by having a more emotional or meaningful connection with the software or hardware.
One embodiment includes a personalized user interface that is provided through a computing system. In accordance with this embodiment, user interface content is defined and stored for a plurality of consumer-usage environments. As an example, there may be user interface content stored for a home environment operable to provide a user interface (e.g., a GUI) when the computing system is used in a home environment. Similarly, there may be user interface content stored for a business environment that is operable to provide a user interface when the computing system is used in a business environment. In accordance with this embodiment, a consumer-usage environment in which the computing system is being or will be used is identified based on some information or input. As an example, the computing system may query a user as to whether the computing system will be used in a home environment or a business environment. Further, a user interface provided by the computing system may be personalized based on the environment in which the computing system is being or will be used. To personalize the user interface, the computing system identifies the proper user interface content defined for the consumer-usage environment of the computing system, and provides the user interface based on the proper user interface content.
Personalizing the user interface may take on many desired forms. In one example, personalizing the user interface may include displaying a window, menu, dialog box, or other display item using nomenclature that is defined for a home environment or a business environment. In another example, personalizing the user interface may include displaying colors that are defined for a home environment or a business environment. In another example, personalizing the user interface may include playing audio that is defined for a home environment or a business environment. Personalizing the user interface in these and other ways based on the consumer-usage environment of the computing system may create a more emotional or meaningful connection with the user which can make the user's experience more enjoyable.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Also, the claimed subject matter is not limited to implementations that solve any or all of the disadvantages described in the above Background.
The same reference number represents the same element or same type of element on all drawings.
In this embodiment, memory 104 stores software 110 and a plurality of resource files 114-117. Software 110 comprises any instructions or code adapted to provide a function when executed by processing system 102. Software 110 may comprise system software, such as an operating system, or may comprise an application or applications, such as word processing applications, spreadsheets, etc. Resource files 114-117 comprise files that include resource data and a resource map. Resource data comprises any data structures, templates, definition procedures, management routines, icon maps, etc, associated with a particular resource of a user interface, such as a menu, window, dialog box, etc. Although the term resource file is used, other types of files or user interface content may be used to create a personalized user interface as discussed herein.
As stated in the Background, some computing systems provide a generalized user interface that may be used in a variety of environments. For instance, the same generalized user interface may be used in a home environment as well as a business environment. The nomenclature and other aspects of the user interface are general in such a way that the user interface can be used in different environments. According to embodiments provided herein, the user interface provided by computing system 100 is personalized based on the environment in which the computing system 100 is used or will be used. This environment is also referred to herein as the consumer-usage environment.
In step 202 of method 200, computing system 100 stores user interface content defined for a plurality of consumer-usage environments. The consumer-usage environment refers to whether the computing system is being used in a home environment or a business environment. A business environment may comprise a small business environment, a mid-market business environment, an enterprise environment, a non-profit environment, a governmental environment, or another other type of non-home environment. Computing system 100 may also be used in other environments that are not particularly spelled out herein.
The user interface content comprises the data or files used by computing system 100 to provide an interface to a user. The user interface content may take on many desired forms, one of which is resource files 114-117 shown in
In step 204, computing system 100 identifies its consumer-usage environment. Computing system 100 may identify its environment in various ways, one example of which is shown in
In an alternative embodiment, computing system 100 may automatically determine its usage environment. For instance, computing system 100 may identify the usage environment based on information on a network to which computing system 100 is connected. Assume for example that computing system 100 is connected to a network that is serving a numberXof client machines. Computing system 100 may determine that the usage environment is a home environment if the number X is less than a threshold number of machines, such as less than five machines. Computing system 100 may determine that the usage environment is a small business environment if the number X is within a range, such as between five machines and fifty machines. Computing system 100 may further determine that the usage environment is a mid-market business environment if the number X is within another range, such as between fifty machines and five hundred machines. Computing system 100 may alternatively determine its usage environment based on other aspects of the network, such as one or more network addresses (or IP addresses) used in the network, one or more MAC addresses used in the network, etc. Computing system 100 may determine its usage environment in other ways.
Responsive to identifying the consumer-usage environment of computing system 100 in step 204 of
In one example of computing system 100 providing a personalized user interface, computing system 100 may display a window, a menu, a dialog box, or some other display item using nomenclature that is defined for the consumer-usage environment of computing system 100. For instance, in a home environment, computing system 100 may display a window using the terms “father” and “daughter”, which are applicable to the home environment. In a business environment, computing system 100 may display a window using the terms “manager” and “employee”, which are applicable to the business environment. There may be a different nomenclature used in different environments, so computing system 100 is able to change the nomenclature used in a user interface based on the consumer-usage environment.
In another example of computing system 100 providing a personalized user interface, computing system 100 may display a color or colors that are defined for the consumer-usage environment of computing system 100. In another example, computing system 100 may play audio that is defined for the consumer-usage environment of computing system 100. There are many other examples of how computing system 100 may provide a personalized user interface for a particular environment.
Computing system 100 may operate in the following manner to personalize the user interface based on the consumer-usage environment of computing system 100 as described in step 206 above.
In step 504 of method 500, processing system 102 identifies one or more resource files 114-117 to invoke for the user interface object based on the consumer-usage environment of computing system 100. Processing system 102 then utilizes the resource file or resource files in the user interface object to provide an interface to user 120 (through user interface system 106) that is defined for the consumer-usage environment of computing system 100 in step 506. This functionality is an improvement over other computing systems. In some computing systems, a user interface object invokes or references a particular resource file and that resource file is utilized to provide the user interface. For example, if the user interface object invokes an English language resource file, then the English language resource file is located and is utilized to provide the user interface.
According to method 500, processing system 102 identifies which resource file to invoke for a user interface object based on the usage environment of computing system 100. Consequently, if a user interface object invokes an English language resource file, then processing system 102 identifies which English language resource file to invoke based on whether computing system 100 is being used in a home environment, a business environment, etc. Instead of having one English language resource file generalized for multiple usage environments, there may be multiple English language resource files tailored to different usage environments, such as an English language resource file for a home environment, and an English language resource file for a business environment. After identifying the proper resource file, processing system 102 utilizes the resource file to provide the interface to user 120 that is defined for the present environment of computing system 100.
In method 500, processing system 102 provides an interface to user 120 that is defined for the consumer-usage environment of computing system 100 through resource files 114-117 or other user interface content that are defined by the manufacturer of computing system 100, by the developer of software 110, or by another development entity. When computing system 100 is operating in its intended environment, computing system 100 may also dynamically update one or more of resource files 114-117 or other user interface content based on input from a user. For example, if computing system 100 is operating in a particular environment, such as a home environment, then user 120 may input data into computing system 100 that represents a particular nomenclature used in this environment or a nomenclature desired by user 120. For instance, user 120 may define his/her role or name on the home network as “father” rather than “user1” or “admin”. Similarly, user 120 may define that another user on the home network is termed “daughter” rather than user2. Responsive to receiving the user input indicating nomenclature used in the consumer-usage environment of computing system 100, computing system 100 updates the resource file 114-117 or other user interface content based on the user input. The user interface provided by computing system 100 can thus be further personalized for the consumer-usage environment by dynamically updating resource files 114-117 or other user interface content.
Memory 604 includes a home environment library 614 and a business environment library 616. Home environment library 614 stores resource files and other files defined for a home environment. In this embodiment, home environment library 614 stores a HELP menu file 615 defined for a home environment, and may store other files not shown in
When in operation, processing system 602 identifies whether its usage is in a home environment or a business environment. As described in previous embodiments, processing system 602 may query user 620 to determine whether its usage is in a home environment or a business environment, or may automatically determine its environment based on other information, such as the network to which computing system 600 is connected. Processing system 602 may query user 620 when software 610 is being installed on computing system 600. For instance, software 610 may include an installation function that automatically queries user 620 as to whether software 610 will be used in a home or a business. In further operation, processing system 602 executes software 610 responsive to a request from user 620 to run software 610.
Assume that during operation of software 610, user 620 selects a HELP menu provided by software 610. As part of providing the HELP menu, software 610 includes a user interface object 630 that invokes a HELP menu file. Processing system 602 first identifies the proper HELP menu file to invoke. To identify the proper HELP menu file, processing system 602 determines which library 614 or 616 to access based on the consumer-usage environment of computing system 600. If computing system 600 is used in a home environment, then processing system 602 accesses home environment library 614, and more particularly, accesses HELP menu file 615 in home environment library 614. If computing system 600 is used in a business environment, then processing system 602 accesses business environment library 616, and more particularly, accesses HELP menu file 617 in business environment library 616. When the proper HELP menu file 615 or 617 is identified, user interface object 630 utilizes the HELP menu file to display a HELP menu to user 620 through user interface system 606.
Assume for one example that the consumer-usage environment of computing system 600 is a home environment. In such an example, user interface object 630 utilizes HELP menu file 615 from home environment library 614.
Assume for another example that the consumer-usage environment of computing system 600 is a business environment. In such an example, user interface object 630 utilizes HELP menu file 617 from business environment library 616.
Although the subject matter has been described in a language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.