The invention generally relates to user interacting with the many different user interfaces found on devices. More particularly, the invention relates to methods, systems, and media for interacting between a client device having a common interface and server devices having varied interfaces.
User interfaces (“UIs”) are the junction between a user and a computer program, and constitute one of the most important parts of any program because UIs determine how easily a user may utilize the program. For instance, a powerful program with a poorly designed UI has little value because users may not understand how to maximally utilize the program. As such, a primary focus of UI design rests in what is termed “user-friendliness.” That is, a focus on how easily a user may fully use the program.
Typically, UIs are a set of commands or menus through which a user communicates with a program. Keeping with user-friendliness, UIs, today, generally incorporate graphics, and are collectively referred to as graphical user interfaces (“GUIs”). For example, GUIs use windows, icons, pop-up menus, pointers, and the like to free the user from learning complex command language in order to communicate, i.e., operate, the underlying program.
Despite advances in user-friendliness, a problem remains: users still must learn and understand the many different types of UIs that exist in order to properly communicate with a program, such as a program controlling a vending machine or an automated teller machine (“ATM”). That is, not all vending machines have the same UIs, and vending machines have UIs that differ from UIs for ATMs. Although UIs for vending machines and ATMs are generally very simplistic, and, therefore, mastering these different types of UIs seems trivial, the first time user must still take the time to learn and understand these UIs. Even if the learning curve is generally very low for UIs associated with vending machines and ATMs, even these UIs are problematic for a user when, for example, introducing a language barrier to the UI. Stated another way, that is, by example, an American user of a UI for an ATM in China would likely be difficult if the American does not know the Chinese language. Thus, it is apparent how even some of the simplest UIs among the many different types of UIs may be problematic for users.
The core of the problem at issue is that no one standard user interface exists for all devices in the universe. Thus, users must now take the time to learn the many different UIs in order to use the underlying programs because no movement will likely germinate to foment a standard user interface: not all businesses want to market their goods and services in the same manner, and viewing UIs as a marketing tool, then different UIs will always exist. As a result, if let unsolved, then the problem of users having to master the many types of different interfaces should only increase as society continues towards a more pervasive computing environment.
A need, therefore, exists, for methods, systems, and media for users to interact with the many different types of interfaces without the user having to learn the specific operability requirements for each of the many different types of interfaces.
Embodiments of the invention generally provide methods, systems, and media for interacting between a client device having a common interface and a server device having an interface. In one embodiment, the method generally includes receiving, by the client device, of user interface descriptions from the server device, wherein the user interface descriptions comprise commands and options. Further, the method includes mapping of the commands and options to inputs on the common interface, thereby producing mapped inputs. Further still, the method includes transmitting a selected one of the mapped inputs from the client device to the server device for execution by the server device. In a further embodiment, the method includes executing the selected one of the mapped inputs received by the server device.
In another embodiment, the invention provides a system for interaction between a client device having a common interface and a server device having an interface. The system includes a receiver on the client device for receiving user interface descriptions from the server device, wherein the user interface descriptions comprise commands and options. Further, the system further includes a mapping module associated with the client device for mapping of the commands and the options to inputs on the common interface, thereby producing mapped inputs. Further still, the system includes a client transmitter for transmitting a selected one of the mapped inputs from the client device to the server device. In a further embodiment, the system includes an executor module for executing the selected one of the mapped inputs received by the server device.
In yet another embodiment, the invention provides a machine-accessible medium containing instructions, which when executed by a machine, cause the machine to perform operations for interacting between a client device having a common interface and a server device having an interface. The instructions generally include operations for receiving, by the client device, of user interface descriptions from the server device, wherein the user interface descriptions comprise commands and options. Further, the instructions include operations for mapping of the commands to inputs on the common interface, thereby producing mapped inputs. Further still, the instructions include operations for transmitting a selected one of the mapped inputs from the client device to the server device for execution by the server device. In a further embodiment, the instructions include operations for executing the selected one of the mapped inputs received by the server device.
So that the manner in which the above recited features, advantages and objects of the present invention are attained and can be understood in detail, a more particular description of the invention, briefly summarized above, may be had by reference to the embodiments thereof which are illustrated in the appended drawings.
It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments.
The following is a detailed description of example embodiments of the invention depicted in the accompanying drawings. The embodiments are examples and are in such detail as to clearly communicate the invention. However, the amount of detail offered is not intended to limit the anticipated variations of embodiments; on the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the present invention as defined by the appended claims. The detailed descriptions below are designed to make such embodiments obvious to a person of ordinary skill in the art.
Generally speaking, systems, methods, and media for interacting between a client device having a common interface and a server having an interface are contemplated. Embodiments include a user having configured a common interface in a manner of user choice. That is, configuration of the common interface may include, for example, a user configuring, through logic associated with the client device, of one or more pages displayed on a screen of a client device, such as a personal digital assistant (“PDA”) or a cell phone. The one or more pages are for configured inputs that form the common interface that the user uses for interacting with server devices, such as vending machines, ATMs, computers, phones, and televisions, all of which have their own and different interface. The inputs, themselves, on the configured, common interface may take the form, for example, of simple commands buttons, such as “buy,” “dispense,” “translate,” and “send,” and/or the form of list boxes, radio buttons, check boxes, and text entry boxes for user-selectable options. Further, based on logic associated with the client device, a user may select such inputs, for example, through use of a stylus, keypad, arrow keys or by the user touching the screen of the client device.
After a general configuration of the common interface to form the common interface on the client device, the user is ready to interact in an already known manner with a server device quite possibly having an interface unknown to the user. To interact, the server device and the client device communicate through any of a variety of communication means available between the server device and the client device. That is, depending on enabling logic and equipment associated with both the client device and the server device, communication may occur, for example, through a wireless network, through a wired network, through Bluetooth™, or through infrared data association (“IRDA”). In short, proximity between the client device and the server device is critical only if the chosen communication means requires proximity for receiving and transmitting signal transference.
With communication existing between the client device and the server device, the client device receives user interface descriptions from the server device. The user interface descriptions contain commands capable of execution by a user interacting with the server device's interface. That is, if the user were to walk up and use the interface of the server device, then depressing a button, for example, on the interface would result in execution of the command, such as “dispensing” a chosen candy bar from a vending machine, associated with the depressed button. The user interface descriptions also contain options, such as the types of food available for selection in a vending machine.
With the client device having received the user interface descriptions, logic, enabled by software and or hardware, maps the commands and options from the user interface descriptions to the common interface of the client device. The mapping results in assigning the commands and options of the server device to inputs of the client device, wherein the inputs are user-configured. As a result, rather than using the interface located on the server device, the user now may use the common interface of the client's device to select one or more of the mapped inputs, which are transmitted back to the server device for execution. In short, to use the candy bar purchase analogy again, the user selects one or more inputs on the client device, to select the type, i.e., option, and command, i.e., purchase, of a desired candy bar in the vending machine, the server device.
Turning now to the drawings,
To initiate interaction, the system 100 depicts the communication means between the client device 105 and the server device 115 being through a wireless network 125. However, other communication means are possible without departing from the scope of the invention. For example, the communication means may occur through Bluetooth™, IRDA, and a wired computer network provided the client device and server device are properly enabled with the necessary equipment and logic known to one of ordinary skill in the art. Initiation of the communication between the client device 105 and the server device 115 may occur by various means, such as user selecting one of the user-configured inputs 130 for establishing communication. Other means, however, are possible for communication connectivity, and include, for example, the user depressing a designated button on the client device 105 for requesting and establishing communication connectivity between the client device 105 and the server device 115, or the server device 115 sensing close proximity of a client device 105 and prompting the client device 105 whether the user of the client device 105 desires connectivity to the server device 115.
After establishing connectivity, the client device 105 receives user interface descriptions 122 from the server device 115 through the network 125 depicted in
Returning to the user interface descriptions 122 received by the client device 105, the user interface descriptions 122 contain commands 140 and options 150 associated with the interface 120 of the server device 115. The user interface descriptions 122 that the client device 105 receives are in xml files. The xml files consist of a schema file and a file containing the commands 140 and options 150, whereby the client device uses the schema to interpret the xml file containing the commands 140 and options 150. By example, the commands 140 for interacting with a server device 115 such as a vending machine may be “buy” and “dispense” or a command 140 for a server device 115 such as phone may be “dial.” Options 150, for example, for the server device 115 for the vending machine may be, for example, “type” or “quantity” of food, or, for the phone, may be “number,” as in a phone number. The possible commands 140 and options 150 are essentially limitless because the inputs 130 on the client device 110 are only limited by the imagination of the user configuring the client device 105, and the configuration may be newly configured over and over again or “on the fly” while a user is interacting with a particular server device 115 having an interface 120.
After receiving the user interface descriptions 122, the client device 105, through logic enabled by software and/or hardware associated with the client device 105, maps the commands 140 and options 150 from the xml files to inputs 130 on the common interface 110. For commands 140 and options 150 unable to be mapped to pre-configured inputs 130 on the common interface 110, the client device, through enabling software and/or hardware logic, prompts the user for configuring of additional inputs 130 to permit mapping of the unmapped commands 140 and options 150 to produce newly configured inputs 130. That is, the prompting permits configuration of additional inputs 130 to ensure that all commands 140 and options 150 received from the server device 115 for its interface 120 are mapped to at least one of the inputs 130 on the common interface 110. As a result of the mapping, the inputs 130 are now termed mapped inputs 130.
The system 100 further includes transmission of a user-selected, mapped input 135 over the wireless network 125 to the server device 115. The transmitted and received mapped input 135 selected by the user is an xml file that contains the commands 140 and options 150 of the server device 115 that underlies the selected, mapped input 130. As a result, the server device 115 reads the xml file associated with the selected, mapped input 130, and performs the underlying command 140 and option 150. For example, suppose the selected, mapped input 130 is the user's selected input 130 for “purchasing” of a Hershey™ candy bar from a vending machine. Because the xml file for the commands 140 and options 150 already mapped the server device's 115 command of “purchase” and option of “Hershey™ candy bar” to, for example, the user's configured inputs 130 of a “buy” button and “item type” scrollable box, respectively, then when the user selects “buy” and “Hershey™ candy bar,” the server device 115 reads the xml file transmitted with these user-selected inputs 130, and performs the underlying command of “buy” and option of “Hershey™ candy bar” in order to execute, that is, dispense, the Hershey™ candy bar from the vending machine.
Turning now to
In the above-discussion of the system 100 depicted by
The system 200 further includes a client transmitter 255, enabled by logic in software and/or hardware associated with the client device 205, for transmitting a user-selected, mapped input from the client device 205 to a server receiver 260 on the server device 215. As previously discussed, the communication means for effectuating the transmitting and receiving may occur, for example, through a wireless network, a wired network, Bluetooth™, or IRDA. The server receiver 260, enabled by logic in software and/or hardware associated with the server device 215, receives the transmitted, user-selected, mapped input in an xml format. The system 200 further includes an executor module 270, enabled by logic in software and/or hardware associated with the server device 215, containing a reader module 275 for reading the xml file associated with received, user-selected, mapped input. That is, the reader module 275 reads the xml file to identify the particular command or option mapped to the user-selected input, and a performer module 280, performs the mapped command or option.
The functionality for the invention on the server device 215 side of the system 200 may be integral to the server device 215, that is integrally interwoven into the computer system controlling the server-side device, such as a vending machine, for example. Another optional embodiment is for reduction of the functionality of the invention disclosed herein to an add-on device that removably connects, through, for example, a USB adapter, to the server-side device, such as a vending machine. In such an optional embodiment, the client device 205 having the common interface 210 communicates directly with the add-on device that is in communication with the particular server-side device to which the add-on device has been connected. As a result, the add-on device is fully enabled, as above-discussed, to operate as the server device 215 for purposes of the invention disclosed herein. In addition, the add-on device should be construed as controlling and performing all of the functionality disclosed herein wherever discussion in terms of the system 200 for server device 215 occurs.
Turning now to
Flowchart 300 begins by configuring 310 inputs of a common interface displayed on a screen of a client device, such as PDA or mobile phone, wherein the common interface is the interface for the user to interact with the world of differing interfaces, and, thereby, remove the time and difficulty of having to master these differing interfaces for use of the underlying computer program associated with these differing interfaces. Through logic associated with the client device, the user configures 310 what are termed inputs on the common interface. The inputs may take the form of drop-down boxes, check boxes, radio buttons, text entry boxes, scroll-through boxes, or may simple be buttons, all of which may appear on a screen on the client device 105. For example, the user may configure inputs for “buying” or “dispensing” as buttons, that might be used for buying or dispensing of a candy bar from a vending machine, or may configure a scrollable box for adjusting of an input of “quantity” for use in adjusting the volume on a DVD device or the number of candy bars to dispense from a vending machine. Further, logic associated with the client device determines how selection of the inputs occurs. That is, the logic may permit touch-screen selection of an input, or stylus selection of an input, or even keystroke selection of an input. After general configuring 310 of the common interface, the user may interact with the world of varied interfaces through the common interface having configured inputs.
Moving down the flowchart 300, the flowchart 300 continues by establishing 320 communication connectivity between the client device and a particular server device having an interface with which the client device's common interface will interact. Establishing 320 communication may be occur, for example, by the user depressing a configured input on the common interface, that is, sending of a request by the user to establish communication availability with a particular server device. As further examples, establishing 320 communication may occur by the user depressing a dedicated button on the client device for establishing communication or by either the client device or a particular server device prompting the other for establishing a connection when the devices are within a pre-defined proximity of each other. Regardless of how communication is established, the communication may occur through various communication means, such as, for example, a wireless network, a wired network, Bluetooth™, or IRDA. The communication means is a decision likely made by the manufacturer of components, but from an enablement perspective, all that is required is enabling logic and equipment on both the client device and the server device, already known to those of ordinary skill in the art, to permit a particular communication means for connectivity and communication to occur between the client device's common interface and the server device.
The flowchart 300 continues by the client device receiving 330 user interface descriptions from the server device, such as a vending machine, ATM, phone, VCR, or television. The user interface descriptions are xml files that contain a schema and the commands and options associated with the interface of the server device. After receiving 330 the user description files, that is, the xml files, from the server device, the flowchart 300 further continues by mapping 340 of the user interface descriptions to inputs on the common interface. For mapping 340 of the user interface descriptions, logic associated with the client device reads the xml schema file and associates the commands and options of the server device's interface with inputs of the common interface. Continuing further down the flowchart 300, a decision block 345 depicts whether all of the commands and options of the server device's interface have been mapped to configured inputs on the common interface. If not, the client device contains further logic for prompting 350 the client device for configuring additional inputs for the mapping 340 of commands and options in the received user interface descriptions that were unmappable to the existing configured inputs of the common interface on the client device. This prompting 350 ensures that all of the commands and options available at the interface are also available for selection, and ultimate execution, through user of the common interface on the client device. As a result of the mapping 340, the configured inputs are now transformed into mapped inputs for the server device with which the common interface of the client device is currently interacting.
Moving further down the flowchart 300, the flowchart 300 continues by transmitting 360 a user-selected, mapped input from the common interface of the client device to the server device through use of the same communication means used for receiving 330 the user interface descriptions. As with the configuring 310, selection of the mapped input is made possible by logic associated with the client device for enabling selection. That is, the logic may permit the touching of a stylus or a finger to select the particular mapped input, or the logic may permit a keystroke to select the particular mapped input. Regardless of how the mapped input is user-selected, transmitting 360 of the user-selected, mapped input to the server device is via an xml file that is received by the server device. The flowchart 300 then culminates in executing 370 the user-selected, mapped input by reading the xml file associated with received, user-selected, mapped input and a performing the underlying command or option associated with the user-selected mapped input.
Another embodiment of the invention is implemented as a program product for use with a computer system such as, for example, the system 100 and system 200 shown in
In general, the routines executed to implement the embodiments of the invention, may be part of an operating system or a specific application, component, program, module, object, or sequence of instructions. The computer program of the present invention typically is comprised of a multitude of instructions that will be translated by the native computer into a machine-readable format and hence executable instructions. Also, programs are comprised of variables and data structures that either reside locally to the program or are found in memory or on storage devices. In addition, various programs described hereinafter may be identified based upon the application for which they are implemented in a specific embodiment of the invention. However, it should be appreciated that any particular program nomenclature that follows is used merely for convenience, and thus the invention should not be limited to use solely in any specific application identified and/or implied by such nomenclature.
While the foregoing is directed to example embodiments of the disclosed invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.