Like reference symbols in the various drawings indicate like elements.
The architecture 100 includes at least one application 108, such as an enterprise resource software application, that is generically shown residing in memory 110. As is conventional, the application 108 may be stored in a nonvolatile storage location, such as repository 107 or another repository, including a data store exterior to the server 101, and may be transferred to memory 110 for active use by the architecture 100. The application 108 includes several modules capable of prioritizing, transferring, and displaying event occurrences in the system. The modules include: a priority assignment module 112, a message generation module 114, a navigation module 116, and a display maintenance module 118.
The architecture 100 may use the priority assignment module 112 to classify and prioritize events as they occur. An event may be classified based on how important the event is, how important it is that a user be notified of the event, whether the user is required to respond in some way to the event, or a combination of the above. For example, the priority assignment module 112 may determine whether an event has low, medium or high priority, as well as determine if the event is simply informational. Any number of priority classifications are possible. The priority of the event may determine how the event information is displayed a user. For example, if a particular event has high priority, the user may wish to see a more prominent display indication such that immediate focus can be made to the high priority event. Conversely, if a particular event has low priority, the user may prefer notification of this event in a less prominent fashion.
Once the priority of a system event is determined, the message generation module 114 may create a system message from the event data. The message may be the only indication presented to the user that an event has occurred in the system. Examples of system messages may include: a low priority message, such as an information message; an extremely high priority message, such as an alert message; and messages having priority levels between the low priority and extremely high priority messages, such as a warning message or an error message. Error messages may generally have a higher priority than warning messages, and may be displayed in a separate message display area, or alternatively may be displayed in the same message display area in a more prominent fashion, such as at a more prominent location within the message display area. Messages may have identifying features that may enable users to distinguish between them. For example, a color or associated symbol (e.g., an icon) of a message can indicate its priority relative to another message. As another example, the order in which a message is presented in the system relative to other presented messages may indicate a hierarchy of priority levels.
The generated system messages may be presented in any of two or more message display areas on a display screen of the client devices (102 or 104), as will be explained more fully below. In one implementation, the system (e.g., the display maintenance module 118) may select an appropriate message display area based on the priority of the event associated with the message. The display maintenance module 118 may also determine whether or not to store received messages in the data repository 107, for example. In addition, the display maintenance module 118 may format system messages for display in one or more message areas in the client device 102 or 104. The display maintenance module 118 may also determine how messages are discarded from the system. For example, when a new message is received in the system, the display maintenance module 118 may store the old message and place the new message in a message list. The display maintenance module 118 may also increment or decrement a message counter as messages are received and expunged from the system. Messages may include hyperlinks that may direct the user to further information about the displayed system message, or about the event associated with the message. The navigation module 116 may determine the destination of the hyperlinks for each message.
Turning to the illustrated implementation, the architecture 100 includes or is communicably coupled with the server 101, the one or more client systems 102 and 104, and control devices 120, at least some of which can communicate across network 106. The server 101 generally hosts application software capable of generating and managing system messages in response to events that occur in the system. The server 101 comprises an electronic computing device operable to receive, transmit, process and store data associated with the architecture 100. Although
The server 101 may include local electronic storage capacity, such as data repository 107. The data repository 107 may include any memory or database module and may take the form of volatile or non-volatile memory including, without limitation, magnetic media, optical media, random access memory (RAM), read-only memory (ROM), removable media, or any other suitable local or remote memory component. The illustrated data repository 107 may store system data such as message data, virtual private network (VPN) applications or services, firewall policies, a security or access log, print or other reporting files, HTML files or templates, data classes or object interfaces, unillustrated software applications or sub-systems, and others.
The server 101 also includes control devices 120. The control devices 120 may include one or more processors to execute instructions and manipulate data for performing the operations of the server 101. The control devices 120 may include, for example, a central processing unit (CPU), a blade, an application specific integrated circuit (ASIC), or a field-programmable gate array (FPGA), or other suitable hardware or software control system. In the illustrated implementation, the control devices 120 execute instructions that comprise the application 108.
The network 106 facilitates wireless or wireline communication between the server 101 and any other local or remote computers, such as clients 102 and 104. The network 106 may be all or a portion of an enterprise or secured network. In another example, the network 106 may be a virtual private network (VPN) between the server 101 and the client 102 across a wireline or a wireless link. While illustrated as a single or continuous network, the network 106 may be logically divided into various sub-nets or virtual networks without departing from the scope of this disclosure, so long as at least a portion of the network 106 may facilitate communications between the server 101 and at least one client (e.g., client 102). In certain implementations, the network 106 may be a secure network associated with the enterprise and certain local or remote clients 102 or 104. The network 106 may be the Internet.
The client 102 may be any computing device operable to connect or communicate with the server 101 or the network 106 using any communication link. At a high level, each client 102 may include or execute at least one hosted application graphical user interface. There may be any number of clients 102 communicably coupled to the server 101. As used in this disclosure, the client 102 is intended to encompass a personal computer, touch screen terminal, workstation, network computer, kiosk, wireless data port, smart phone, personal data assistant (PDA), one or more processors within these or other devices, or any other suitable processing device. For example, the client 102 may be a PDA operable to wirelessly connect with an external or unsecured network.
Regardless of the particular hardware or software architecture used, the application 108 may be generally capable of analyzing system events and generating and presenting system messages to multiple users from one or more entities, for example. Users of the application 108 may include sales personnel, customer service personnel, field applications personnel, repair or installation personnel, or any other user of business information. The following exemplary descriptions of screen shots focus on the operation of the application 108, or one of its components or sub-modules, in performing one of the respective methods or processes. However, the architecture 100 contemplates using any appropriate combination and arrangement of logical elements implementing some or all of the described functionality.
For example, some messages, such as an extremely high priority message, may require immediate user attention and further may require user action. Examples of extremely high priority messages may include messages related to insufficient system resources, or to equipment damage in a production plant that generally require immediate attention and/or repair. Further, extremely high priority messages can notify users of an unexpected decline or increase in resources, such as a drastic decline in revenue within a predefined time period. Conversely, some messages may simply inform a user that a routine event has occurred as expected. In this case, the user may still desire to view the confirmation message at some point, but may devote little or no attention to the message at the moment, thereby avoiding distraction from more important issues.
As shown in
As such, the user interface 200 includes the strategically placed areas 203, 204 and 206 to display the different types of messages in an aesthetic and functional manner. In general, users may find it advantageous to have messages consistently presented in a particular message display area at a particular location on the user interface based on message priority. For example, the first message area 203 may display the highest priority messages (e.g., alert messages) and may therefore be presented near the top of the application where a user can clearly distinguish the highest priority messages from other content in the user interface 200. In one implementation, alert messages include an alert icon that may or may not be color coded. In other implementations, a modal dialog box is presented when an alert message is received in the system, as will be explained more fully below.
The user interface 200 includes a second message area 204 that is illustrated as a message container, which can display messages having more than one priority level. For example, the message container 204 may display both error (e.g., high priority) and warning (e.g., medium priority) messages. Error and warning messages may be displayed in the message container 204 and may permit the user to quickly find and fix or modify necessary information in the system. Messages presented in the message container 204 may or may not include a navigation link or other data related to the message. For example, the message container 204 shown in
Error messages and warning messages, like different types of system messages in general, may be provided with distinctive characteristics. For example, icons for the respective messages may be similar in shape, but different in color. In one implementation, error messages may include an error icon that is red and warning messages may include a warning icon that is yellow. Some implementations do not include icons with the system messages. Also, if icons are used, they may take any suitable shape. Both an error message and a warning message may indicate that a user should fix or modify a field in the application. For example, the error may generally indicate that user action is required before proceeding to another section of the application (e.g., before any data can be permanently saved), while the warning may not require user action before proceeding, but may indicate that an error may occur if no action is taken by the user.
The user interface 200 includes a third message area 206 for displaying low priority information messages about nonvolatile system events. As an example, when a contract or contact data is saved, an information message may be generated to indicate that the task has been completed successfully. User interaction may not be necessary for information messages as they are generally used to verify an action or task completion. As shown, the information message in message area 206 indicates that a contact person has been saved successfully. In one implementation, information messages may include a unique icon shape and a green color.
In an implementation, the display of messages in one message display area does not affect other message display areas. For example, when a new error message is received and displayed in the message container display area 204, the alert message area 203 and the information message area 206 may not be modified. Similarly, alert messages can be received and displayed without interfering with the message container 204 or the information message area 206. The following examples relate to the user interface 200 receiving and handling different messages from the application 108.
As shown in
Medium and high priority messages may be received and displayed, in succession or concurrently, in the same or in a different message display area. In
Low priority or informational messages can also be received in succession, or concurrently, with medium and high priority messages. As shown, the information message area 206 currently includes an information message indicating that the contact person has been saved successfully. As described above, the information message area 206 may be a relatively non-invasive information area that provides feedback to the user upon completion of system tasks. The following screen shot displays another example of how messages may be shown in the message container.
In one implementation, a higher priority message may indicate that the system requires some form of user action to proceed, while a lower priority message may indicate that user action is not required for continued processing. Referring again to
In some implementations, the user of the user interface 300 may customize the message container display 302 to view messages in another order or location in the interface. For example, the user may select controls (not shown) to sort the received messages in a particular order (e.g., by date, time, importance, required action, or software module affected, etc.). In addition, the user may choose to view more or fewer messages in the message container at one time. In some implementations, the message areas may not be shown prior to an occurrence of a first event for which a message is generated. In other implementations, the message areas may appear, but may display no information prior to an occurrence of a first event.
The message container 302 is exemplary and may generally show one to three rows of message data, but as mentioned above can be user configurable. In the default example, the message container may display one, two, or three rows of data depending on how many messages are available for viewing. For example, if one message is available to view, one row may be shown in the message container 302. Similarly, when two or three messages are available to view, two and three rows may be shown, respectively, in the message container 302. Here, the message container 302 may be dynamically resized as more messages become available for viewing. For example, referring to
The message container 302 may also increment or decrement the message counter 212 as another indicator of a change in message count. As shown in
The user interface 300 includes a new alert message, shown at 306, that indicates an insufficient amount of system resources, and further notes that immediate system administration is required. The alert message may have been generated in response to an event caused by the current user or any other user of the system modifying a system resource (e.g., memory, quantity of goods, or personnel staff, etc.) thereby exceeding a system limitation. In some implementations, the alert message need not be associated with what is presently displayed on the screen in a particular work area. For example, the alert message shown at 306 may be unrelated to anything displayed in the user interface 300. Alternatively, a user action within a presently displayed work area on the user interface 300 may trigger an alert message.
The user interface 300 also includes a new information message, shown at 308. The information message shows that more than one hundred entries have been found, and further instructs a user to limit the search criteria. The information message may have been generated in response to the user requesting a search task in an attempt to find system data, such as resources, customer information, status information, or any other system available data.
Thus, as seen in
The message container 302, or any of the message display areas generally, may have various states. For example, a first exemplary state can be shown before a first event occurs where no messages are displayed in the message container 302, and in some implementations, the message container 302 may not be displayed until a first event has occurred. A second exemplary state is shown by
Upon presentation of a modal dialog box, such as the dialog box 504, the user may select various options. In one implementation, the user may select a control on the control bar 512, such as an OK button 514, to acknowledge the modal dialog box 504 and possibly resolve the event conflict at a later time, or to take another action. Other control buttons may be included on the control bar 512, such as an ignore button, cancel button, snooze button, or a save button, to name a few examples. The user may also select the displayed link to immediately jump to a screen that may resolve the event conflict. In one implementation, following a selection of the navigation link, the system may present a screen that includes a field that may be modified in a way that resolves the event that caused the message. Additionally, the screen may be presented such that focus is established in the field, which may permit a user to immediately modify the field, as will be described in more detail below with respect to
Upon assigning a priority to the message, the operations 700 can comprise selecting one of a plurality of message display areas in a graphical user interface to display the message to the user, in step 708. For example, the display maintenance module 118 (
The operations 700 can comprise determining several display options for the message display areas. The display options can be selected successively or concurrently, and selecting one option may not affect the other configured display options. As such, each step between 710 and 724 is optional and may be omitted. In step 710, the operations can optionally comprise determining whether or not to reorder messages in a specific message area. For example, the display maintenance module 118 (
The operations 700 can also optionally comprise determining whether or not to resize a particular message area, in step 714. For example, the module 118 (
In some implementations, messages may invoke more than one display area. For example, when an extremely high priority message is received, the system may display a modal dialog box in addition to the message displayed in the message area. In step 718, the operations 700 may optionally comprise determining whether or not to provide an additional modal dialog box to the user of the system. If the operations 700 comprise determining to provide the modal dialog box, the modal dialog box is displayed, in step 720.
In some implementations, some messages may include a navigation link to provide further information about a system event. The navigation link may be included with the message, or optionally included in a modal dialog box associated with the message. If the operations 700 comprise determining to include a navigation link in the message display, the link may be included in step 724. Some, all, or none of the optional display configurations may be selected, and regardless of the subset selected, the operations 700 may display the system message in the selected display area, in step 726.
The memory 820 stores information within the system 800. In one implementation, the memory 820 is a computer-readable medium. In one implementation, the memory 820 is a volatile memory unit. In another implementation, the memory 820 is a non-volatile memory unit.
The storage device 830 is capable of providing mass storage for the system 800. In one implementation, the storage device 830 is a computer-readable medium. In various different implementations, the storage device 830 may be a floppy disk device, a hard disk device, an optical disk device, or a tape device.
The input/output device 840 provides input/output operations for the system 800. In one implementation, the input/output device 840 includes a keyboard and/or pointing device. In another implementation, the input/output device 840 includes a display unit for displaying graphical user interfaces.
The features described can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. The apparatus can be implemented in a computer program product tangibly embodied in an information carrier, e.g., in a machine-readable storage device or in a propagated signal, for execution by a programmable processor; and method steps can be performed by a programmable processor executing a program of instructions to perform functions of the described implementations by operating on input data and generating output. The described features can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. A computer program is a set of instructions that can be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result. A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
Suitable processors for the execution of a program of instructions include, by way of example, both general and special purpose microprocessors, and the sole processor or one of multiple processors of any kind of computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memories for storing instructions and data. Generally, a computer will also include, or be operatively coupled to communicate with, one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).
To provide for interaction with a user, the features can be implemented on a computer having a display device such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor for displaying information to the user and a keyboard and a pointing device such as a mouse or a trackball by which the user can provide input to the computer.
The features can be implemented in a computer system that includes a back-end component, such as a data server, or that includes a middleware component, such as an application server or an Internet server, or that includes a front-end component, such as a client computer having a graphical user interface or an Internet browser, or any combination of them. The components of the system can be connected by any form or medium of digital data communication such as a communication network. Examples of communication networks include, e.g., a LAN, a WAN, and the computers and networks forming the Internet.
The computer system can include clients and servers. A client and server are generally remote from each other and typically interact through a network, such as the described one. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
A number of embodiments 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. Accordingly, other embodiments are within the scope of the following claims.
This application claims priority from U.S. Provisional application No. 60/800,055, filed May 12, 2006, and entitled “UI Concept,” the entire contents of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
60800055 | May 2006 | US |