TECHNICAL FIELDThe present invention relates generally to the field of graphical user interfaces and, more particularly, to graphical user interfaces for managing hierarchical systems.
BACKGROUNDSystem administrators are responsible for the upkeep, configuration, and reliable operation of computer systems. In general, system administrator seeks to ensure that the uptime, performance, resources, and security of the computers that they manage meet the needs of users. There are many types of system administrators. Types of system administrators include database administrators, network administrators, security administrators, and storage administrators.
Some system administrators manage computer systems using graphical user interfaces. A graphical user interface (GUI) is a type of interface that allows users to interact with electronic devices through graphical icons and visual indicators as opposed to text-based interfaces, typed command labels, or text navigation. In general, direct manipulation of the graphical elements of a GUI can enable a system administrator to view information concerning various aspects of the computer system being managed or perform various actions on the computer system. For example, a GUI can include one or more widgets that allow for interactions that are appropriate to the kinds of data and/or component(s) that are associated with the widgets. Large widgets, such as windows, usually provide a frame or container for “primary” content being displayed on a GUI (e.g., a frame or container for a graphical representation of a computer system, an electronic message, a graph, or an image). In general smaller widgets, such as buttons or menus, are tools for user inputs.
SUMMARYAccording to one embodiment of the present invention, a method for managing a hierarchical system via a graphical user interface is provided. The method includes: presenting, by one or more computer processors, a graphical user interface that includes a navigation bar, the navigation bar including a domain element and a plurality of object elements, wherein each object element is associated with a different object type in a hierarchical system and wherein the plurality of object elements is arranged in an order based, at least in part, on the hierarchical system; presenting, by one or more computer processors, a first menu in response to detecting an interaction with a first object element of the plurality of object elements, wherein the first object element is associated with a first object type in the hierarchical system and wherein the first menu includes a list of objects of the first object type; filtering, by one or more computer processors, information presented on a second object element of the plurality of object elements in response to receiving a selection of a specific object via the first menu, wherein the second object element is associated with a second object type, and wherein information pertaining to one or more objects that are related to the specific object and of the second object type is presented on the second object element as a result of the filtering; and presenting, by one or more computer processors, a second menu in response to detecting an interaction with the domain element while continuing to filter information presented on the second object element, wherein the second menu includes a list all objects that are associated with the plurality of object elements.
According to another embodiment of the present invention, a computer program product for managing a hierarchical system via a graphical user interface is provided. The computer program product comprises a computer readable storage medium and program instructions stored on the computer readable storage medium. The program instructions include: program instructions to present a graphical user interface that includes a navigation bar, the navigation bar including a domain element and a plurality of object elements, wherein each object element is associated with a different object type in a hierarchical system and wherein the plurality of object elements is arranged in an order based, at least in part, on the hierarchical system; program instructions to present a first menu in response to detecting an interaction with a first object element of the plurality of object elements, wherein the first object element is associated with a first object type in the hierarchical system and wherein the first menu includes a list of objects of the first object type; program instructions to filter information presented on a second object element of the plurality of object elements in response to receiving a selection of a specific object via the first menu, wherein the second object element is associated with a second object type, and wherein information pertaining to one or more objects that are related to the specific object and of the second object type is presented on the second object element as a result of the filtering; and program instructions to present a second menu in response to detecting an interaction with the domain element while continuing to filter information presented on the second object element, wherein the second menu includes a list all objects that are associated with the plurality of object elements.
According to another embodiment of the present invention, a computer system for managing a hierarchical system via a graphical user interface is provided. The computer system includes one or more computer processors, one or more computer readable storage media, and program instructions stored on the computer readable storage media for execution by at least one of the one or more processors. The program instructions include: program instructions to present a graphical user interface that includes a navigation bar, the navigation bar including a domain element and a plurality of object elements, wherein each object element is associated with a different object type in a hierarchical system and wherein the plurality of object elements is arranged in an order based, at least in part, on the hierarchical system; program instructions to present a first menu in response to detecting an interaction with a first object element of the plurality of object elements, wherein the first object element is associated with a first object type in the hierarchical system and wherein the first menu includes a list of objects of the first object type; program instructions to filter information presented on a second object element of the plurality of object elements in response to receiving a selection of a specific object via the first menu, wherein the second object element is associated with a second object type, and wherein information pertaining to one or more objects that are related to the specific object and of the second object type is presented on the second object element as a result of the filtering; and program instructions to present a second menu in response to detecting an interaction with the domain element while continuing to filter information presented on the second object element, wherein the second menu includes a list all objects that are associated with the plurality of object elements.
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 is a functional block diagram illustrating a computing environment, in accordance with an embodiment of the present disclosure.
FIG. 2 is a block diagram of components of a computing device, generally designated100, in accordance with an embodiment of the present invention.
FIG. 3 is a block diagram depicting a graphical user interface that represents a hierarchical system as a horizontal bar, in accordance with an embodiment of the present disclosure.
FIG. 4 is a block diagram depicting a graphical user interface that represents a hierarchical system as a horizontal bar that includes trends indicators, in accordance with an embodiment of the present disclosure.
FIG. 5 is a block diagram depicting a graphical user interface that represents a hierarchical system as a horizontal bar and includes detailed information relating to the hierarchical system a whole, in accordance with an embodiment of the present disclosure.
FIG. 6 is a block diagram depicting a graphical user interface that includes a button that enables a user to monitor and manage the system as a whole, in accordance with an embodiment of the present disclosure.
FIG. 7 is a block diagram depicting a graphical user interface that includes menus for managing various types of objects in a hierarchical system, in accordance with an embodiment of the present disclosure.
FIG. 8 is a block diagram depicting a graphical user interface that includes menus for managing specific objects in a hierarchical system, in accordance with an embodiment of the present disclosure.
FIG. 9 is a block diagram depicting changes in object health indicators and trend indicators of a graphical user interface in response to managing a hierarchical system, in accordance with an embodiment of the present disclosure.
FIG. 10 is a block diagram depicting a graphical user interface that presents information relating to a hierarchical system as a whole, in accordance with an embodiment of the present disclosure.
FIG. 11 is a flowchart depicting operations for presenting a graphical user interface, on a computing device within the computing environment ofFIG. 1, in accordance with an embodiment of the present invention.
DETAILED DESCRIPTIONSystem administrators monitor multiple aspects of hierarchical systems at various levels of granularity. For example, a system administrator may monitor a system at a coarse level of granularity (e.g., monitoring the system as a whole) to detect a problem in the system and then monitor the system at increasingly fine levels of granularity (e.g., monitoring one or more types of objects of the system) to diagnose the problem. Graphical user interfaces are one type of tool that permit a system administrator to monitor the system at various levels of granularity. Embodiments of the present disclosure recognize that is advantageous for a graphical user interface to provide a means for monitoring a hierarchical system at various levels of granularity. Embodiments of the present disclosure also recognize that it is advantageous for the graphical user interface to summarize the health of the hierarchical system at various levels of granularity and eliminate superfluous information where possible. In addition, embodiments of the present disclosure recognize that is advantageous for a graphical user interface to summarize the health of the hierarchical system such that the graphical user interface can present a view that includes the summary and detailed information pertaining to various aspects of the system.
Embodiments of the present disclosure provide a graphical user interface that indicates the health of a hierarchical system at various levels of granularity while being capable of simultaneously displaying information pertaining to a specific object or type of object in the hierarchical system. In addition, the graphical user interface provides a means for a user to quickly navigate to various levels of granularity and select from among objects of the same type. In response to a user selecting a specific object, embodiments of the graphical user interface apply one or more filters such that the graphical user interface indicates the health of only those objects that are subordinate or superordinate (i.e., related) to the selected object.
Embodiments of the present invention will now be described in detail with reference to the Figures.FIG. 1 is a functional block diagram illustrating a computing environment, in accordance with an embodiment of the present invention. For example,FIG. 1 is a functional block diagram illustratingcomputing environment10.Computing environment10 includessystem administrator console20 andhierarchical system30 connected overnetwork40.System administrator console20 includes graphical user interface22.Hierarchical system30 includesdiagnostic software32, which includesGUI logic34.
In various embodiments,hierarchical system30 is a computing device that can be a standalone device or a system of one or more types of computing devices, such as one or more servers, mainframes, laptop computers, tablet computers, netbook computers, personal computers (PCs), or desktop computers. In some embodiments,hierarchical system30 represents a computing system utilizing clustered computers and components to act as a single pool of seamless resources. In general,hierarchical system30 can be any computing device or a combination of devices with access to graphical user interface22 onsystem administrator console20, and with access to and/or capable of executingdiagnostic software32 andGUI logic34 such thatGUI logic34 can describehierarchical system30 as a combination of one or more types of objects (e.g., processes and/or physical, virtual, or logical components) at various levels of granularity. For example,hierarchical system30 can be a system for analyzing data streams, as described with respect toFIGS. 3-10, or a hierarchical computer data storage system with various physical locations, arrays, logical volumes, and computer data storage devices.Hierarchical system30 can include one or more computing devices having internal and external hardware components, as depicted and described in further detail with respect toFIG. 2.
In the embodiment depicted inFIG. 1,diagnostic software32 andGUI logic34 are stored onhierarchical system30. In other embodiments, one or both ofdiagnostic software32 andGUI logic34 can reside on another computing device, provided that each can access and is accessible by each other, and provided that each can accesssystem administrator console20 andhierarchical system30. For example,GUI logic34 can reside onsystem administrator console20 and communicate withdiagnostic software32 overnetwork40. In yet other embodiments, one or both ofdiagnostic software32 andGUI logic34 can be stored externally and accessed through a communication network, such asnetwork40.Network40 can be, for example, a system bus, a local area network (LAN), a wide area network (WAN) such as the Internet, or a combination of the aforementioned communication systems, and can include wired, wireless, fiber optic or any other connection known in the art. In general,network40 can be any combination of connections and protocols that will support communications betweensystem administrator console20 andhierarchical system30, in accordance with an embodiment of the present invention.
Diagnostic software32 operates to collect information pertaining to the objects of hierarchical system30 (e.g., processes and/or physical, virtual, and/or logical components). In some embodiments, for example, diagnostic software determines a count of processes that successfully completed within a specific time period, a count of processes that completed outside of the specific timer period, and a count or processes that did not complete. Alternatively or in addition to the aforementioned determination, diagnostic software can determine a count of components that are functioning above a performance threshold, a count of components that are functioning below the performance threshold, and a count of components that are nonfunctional. In general,diagnostic software32 quantifies the performance of the objects ofhierarchical system30.
GUI logic34 operates in cooperation with graphical user interface22 to present information pertaining to the relationships and dependencies between, and/or the heath of, the various objects ofhierarchical system30. In various embodiments,GUI logic34 and graphical user interface22 represent a model-view-controller architecture, a model-view-presenter architecture, a model-view-adapter architecture, or another architecture for implementing graphical user interfaces. In some embodiments,GUI logic34 includes (i) a model that defines the data to present, as a view, in graphical user interface22 and (ii) logic for executing operations on a controller or presenter that modifies the model and the view in response to events in graphical user interface22 and/or changes in the state ofhierarchical system30. In such embodiments, graphical user interface22 is a passive interface that communicates user input events (e.g., a hover, a click, or a scroll) toGUI logic34 and presents the view onsystem administrator console20 based, at least in part, on instructions fromGUI logic34. In other embodiments, the logic for executing operations on the controller or presenter resides, at least in part, in graphical user interface22, wherein graphical user interface22 communicates, toGUI logic34, instructions that describe how to modify the model in response to user input events in graphical user interface22. In yet other embodiments,GUI logic34 includes logic for executing operations that modify the model in response to changes in the state ofhierarchical system30 and graphical user interface22 includes logic for executing operations that modify the model in response to user input events in graphical user interface22.
In various embodiments,system administrator console20 is an electronic device or collection of electronic devices that presents graphical user interface22 on a screen and provides a means for a user ofsystem administrator console20 to interact with graphical user interface22. In some embodiments,system administrator console20 is a standalone device, a server, a laptop computer, a tablet computer, a netbook computer, a personal computer (PC), a desktop computer, a personal digital assistant (PDA), a smart phone, or any programmable electronic device capable of presenting graphical user interface22, receiving user inputs, and communicating withhierarchical system30 vianetwork40. In other embodiments,system administrator console20 is physically integrated with a computing device ofhierarchical system30 over a bus (i.e.,communications fabric108 inFIG. 2) and represents one or more displays and one or more input devices, such as a mouse and keyboard, of hierarchical system30 (i.e.,display118 and external device(s)116 inFIG. 2). In such embodiments,GUI logic34 includes the functionality attributed to graphical user interface22. In general,system administrator console20 can be any computing device or a combination of devices that has access todiagnostic software32 andGUI logic34 and that is capable of presenting graphical user interface22 and facilitating user interaction with graphical user interface22.
FIG. 2 is a block diagram of components of a computing device, generally designated100, in accordance with an embodiment of the present invention. In various embodiments,computing system100 is representative of a computing device ofhierarchical system30 withincomputing environment10, in whichcase computing device100 includesdiagnostic software32 andGUI logic34.
It should be appreciated thatFIG. 2 provides only an illustration of one implementation and does not imply any limitations with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made. In other embodiments, for example,computing system100 is representative ofsystem administrator console20. In such embodiments,system administrator console20 is a computing device that executesGUI logic34 locally based, at least in part, on communications with hierarchical system30 (e.g., information collected by diagnostic software32) and/or user input events.
Computing system100 includes processor(s)102,cache106,memory104,persistent storage110, input/output (I/O) interface(s)112,communications unit114, andcommunications fabric108.Communications fabric108 provides communications betweencache106,memory104,persistent storage110,communications unit114, and input/output (I/O) interface(s)112.Communications fabric108 can be implemented with any architecture designed for passing data and/or control information between processors (such as microprocessors, communications and network processors, etc.), system memory, peripheral devices, and any other hardware components within a system. For example,communications fabric108 can be implemented with one or more buses or a crossbar switch.
Memory104 andpersistent storage110 are computer readable storage media. In this embodiment,memory104 includes random access memory (RAM). In general,memory104 can include any suitable volatile or non-volatile computer readable storage media.Cache106 is a fast memory that enhances the performance of processor(s)102 by holding recently accessed data, and data near recently accessed data, frommemory104.
Program instructions and data (e.g., program instructions and data representingGUI logic34 and/or graphical user interface22) used to practice embodiments of the present disclosure may be stored inpersistent storage110 and inmemory104 for execution by one or more of the respective processor(s)102 viacache106. In an embodiment,persistent storage110 includes a magnetic hard disk drive. Alternatively, or in addition to a magnetic hard disk drive,persistent storage110 can include a solid state hard drive, a semiconductor storage device, read-only memory (ROM), erasable programmable read-only memory (EPROM), flash memory, or any other computer readable storage media that is capable of storing program instructions or digital information.
The media used bypersistent storage110 may also be removable. For example, a removable hard drive may be used forpersistent storage110. Other examples include optical and magnetic disks, thumb drives, and smart cards that are inserted into a drive for transfer onto another computer readable storage medium that is also part ofpersistent storage110.
Communications unit114, in these examples, provides for communications with other data processing systems or devices. In these examples,communications unit114 includes one or more network interface cards.Communications unit114 may provide communications through the use of either or both physical and wireless communications links. Program instructions and data used to practice embodiments of the present invention may be downloaded topersistent storage110 throughcommunications unit114.
I/O interface(s)112 allows for input and output of data with other devices that may be connected tocomputer system100. For example, I/O interface(s)112 may provide a connection to external device(s)116 such as a keyboard, keypad, a touch screen, and/or some other suitable input device. External device(s)116 can also include portable computer readable storage media such as, for example, thumb drives, portable optical or magnetic disks, and memory cards. Software and data used to practice embodiments of the present invention can be stored on such portable computer readable storage media and can be loaded ontopersistent storage110 via I/O interface(s)112. I/O interface(s)112 also connect to display118.
Display118 provides a mechanism to display or present data to a user and may be, for example, a computer monitor.
FIGS. 3-10 depict various aspects of graphical user interface22, whereinhierarchical system30 is a system for analyzing streaming data, in accordance with various embodiments of the present disclosure. This system for analyzing streaming data includes a plurality of physical computing “resources.” InFIGS. 3-10, for example, a “resource” represents one or more physical computing devices (e.g., a personal computer) or one or more host machines running a plurality of virtual machines. Each resource executes one or more “instances.” An “instance” represents an application that is deployed on a “resource” of the hierarchical system to provide a user with information based, at least in part, on one or more streams of data. In the embodiments depicted inFIGS. 3-10, each “instance” includes one or more “jobs.” A “job” represents a plurality of processes that an “instance” executes in order to analyze the streaming data in accordance with a specific purpose. A user and/or system administrator ofhierarchical system30 can start and stop jobs as desired. A “job” is executed on one or more “processing elements” (PEs). A “processing element” is a virtualized processing resource. Based, for example, on the relative importance of various “jobs,” a user and/or system administrator can provision the computing resources of the “resource” that executes the “jobs” by allocating different counts of processing elements to the various “jobs.” Each “job” utilizes one or more “operators” to analyze the streaming data. An “operator” represents one or more processes of the “instance” that a processing element is executing. Each operator analyzes one or more “streams” of data thathierarchical system30 accepts as an input. It should be appreciated that the hierarchical system represented inFIGS. 3-10 provides only an illustration of one implementation of the graphical user interface depicted inFIGS. 3-10 and does not imply any limitations with regard to the types of hierarchical systems for which various embodiments can be implemented.
WhileFIGS. 3-10 describe various features of graphical user interface22 andGUI logic34 with respect to specific object buttons (i.e., an object button that represents the “instances” of hierarchical system30), graphical user interface22 andGUI logic34 provides object buttons that are not specifically referenced with similar functionality. Such functionality can be modified based, at least in part, on the objects that the non-referenced buttons represent.
FIG. 3 is a block diagram depicting a graphical user interface that represents a hierarchical system as a horizontal bar, in accordance with an embodiment of the present disclosure. In the embodiment depicted inFIG. 3,navigation bar200 representshierarchical system30 as a horizontal series of buttons.Navigation bar200 includesdomain button202 and a plurality ofobject buttons204. Each ofobject buttons204 is associated with a type of object inhierarchical system30. In this embodiment, objectbuttons204 are arranged hierarchically from left to right in accordance with the organization ofhierarchical system30. As described herein, the hierarchical system depicted described inFIG. 3-10 can be represented as a collection of resources at a coarse level of granularity and a collection of individual streams of data at a fine level of granularity. Accordingly: an object button that is associated with the “streams” is subordinate to an object button that is associated with the “operators;” the object button that is associated with the “operators” is subordinate to an object button that is associated with the “processing elements” (PEs); the object button that is associated with the “processing elements” is subordinate to an object button that is associated with the “jobs;” the object button that is associated with the “jobs” is subordinate to an object button that is associated with the “instances;” and the object button that is associated with the “instances ” is subordinate to an object button that is associated with the “resources” of the hierarchical system. In other words, each ofobject buttons204 is associated with a level in a hierarchy that describedhierarchical system30, and a user of graphical user interface22 can navigate the levels of the hierarchy usingobject buttons204. As discussed in greater detail with respect toFIGS. 5 and 9,domain button202 is associated withhierarchical system30 as a whole and can be used to navigate to any level ofhierarchical system30 while maintaining any filter that is applied to objectbuttons204.
In the embodiment depicted inFIG. 3, objectbuttons204 also present information relating to the health of the objects that are associated with the respective buttons. InFIG. 3, for example, objectbuttons204 includeobject health indicators206 that utilize circles, triangles, and squares to indicate the health of various objects. In this embodiment, a circle indicates that one or more objects are functioning “normally,” a triangle indicates that one or more objects are functioning “subnormally,” and a square indicates that one or more object are non-functional. An object button can include one, two, or three object health indicators based, at least in part, on the statuses of the associated objects. As discussed with respect toFIG. 1,diagnostic software32 can determine whether or not an object is functioning “normally” or “subnormally” by comparing a measured parameter to a performance threshold for the respective parameter and communicate this information toGUI logic34 for display on graphical user interface22. In some embodiments, different shapes are used to differentiate categories of healthiness. Alternatively or in addition to shapes, colors can be used to differentiate categories of healthiness. For example, green, yellow, and redobject health indicators206 can be used to respectively indicate object(s) that are functioning “normally,” object(s) that functioning “subnormally,” and object(s) that are non-functional. In the embodiment depicted inFIG. 3, object counts208 are associated with each objecthealth indicator206. Each of object counts208 presents a count of objects that are associated with a respective object health indicator.
FIG. 4 is a block diagram depicting a graphical user interface that represents a hierarchical system as a horizontal bar that includes trends indicators, in accordance with an embodiment of the present disclosure. In the embodiment depicted inFIG. 4, objectbuttons204 includetrend indicators210.Navigation bar200 includes one or more trend indicators based, at least in part, on information collected bydiagnostic software32.Trend indicators210 represent changes in object counts208. In some embodiments, one or more ofobject buttons204 will includetrend indicators210 and associate the trend indicator withobject health indicators206 if a respective object count changes during a predetermined period of time. In other embodiments,trend indicators210 reflect changes in respective object counts in real-time.
In the embodiment depicted inFIG. 4,trend indicators210 are arrows that point either up or down based on the direction of a trend. For example, the health status indicators of the “processing element” button are respectively associated with a downward-pointing arrow to indicate that the count of normally-functioning “processing elements” (PEs) has decreased and an upward-pointing arrow to indicate that the count of subnormally-functioning “processing elements” has increased. The health-status indicators of the “operators” button and the “streams” button are similarly associated withtrend indicators210. In the embodiment depicted inFIG. 4,trend indicators210 are not displayed if a trend does not exist. In some embodiments,GUI logic34 determines that no trend exists if the change in anobject count208 is zero over a period of time. In other embodiments,GUI logic34 determines that no trend exists if the change in anobject count208 is below a threshold count over a period of time. InFIG. 3, the “resources” button, the “instances” button, and the “jobs” button do not include trend indicators because respective trends do not exist. In other embodiments, objectbuttons204 can include atrend indicator210 that indicates that no trend exists (e.g., a horizontal line).
FIG. 5 is a block diagram depicting a graphical user interface that represents a hierarchical system as a horizontal bar and includes detailed information relating to the hierarchical system a whole, in accordance with an embodiment of the present disclosure. In the embodiment depicted inFIG. 5, graphical user interface22presents navigation bar200 andwindow214 onscreen212.Window214 is a window that displays detailed information that can include information relating tohierarchical system30 as a whole, a specific type of object within hierarchical system30 (e.g., information relating to all “instances” of hierarchical system30), or a specific object within hierarchical system30 (e.g., information relating to a specific “instance”). In some embodiments,window214 includes a plurality of panes and/or widgets for displaying different types of information (e.g., alerts, lists of relevant objects, and or graphs) based, at least in part, on user input events. In the embodiment depicted inFIG. 5,window214 displays information relating tohierarchical system30 as a whole (i.e., “domain information”) based, at least in part, on a user input event that selecteddomain button202. In the embodiments depicted inFIGS. 5-10, a heavy stoke around the border of a button (i.e.domain button202 or one of object buttons204) indicates that the button is selected.
FIG. 6 is a block diagram depicting a graphical user interface that includes a button that enables a user to monitor and manage the system as a whole, in accordance with an embodiment of the present disclosure. In the embodiment depicted inFIG. 6, graphical user interface22presents domain menu216 in response to a hover overdomain button202.Domain menu216 enables a user of graphical user interface22 to monitor and/or managehierarchical system30 by selecting from among a plurality of actions that are available through domain menu216 (e.g., adding a resource, making an instance, or submitting a job).Domain menu216 also includestree217.Tree217 is an expandable, indented outline ofhierarchical system30.Tree217 allows a user of graphical user interface22 to navigate to any object ofhierarchical system30 regardless of any filters applied throughnavigation bar200, as discussed with respect toFIG. 9. The user can expand the various levels oftree217 to show labels that are associated with one or more specific object. The user can select a specific object fromtree217 in order to monitor and/or mange the specific object throughwindow214.
FIG. 7 is a block diagram depicting a graphical user interface that includes menus for managing various types of objects in a hierarchical system, in accordance with an embodiment of the present disclosure. In the embodiment depicted inFIG. 7, graphical user interface22 presents “instances”menu218 in response to a hover over theobject button204 that represents the “instances” ofhierarchical system30. “Instances”menu218 enables a user of graphical user interface22 to monitor and/or manage various “instances” ofhierarchical system30 by selecting from among a plurality of actions that are available through “instances” menu218 (e.g., monitor an “instance,” stopping an “instance,” or managing an “instance”). “Instances”menu218 includeslist219.List219 lists specific “instances” inhierarchical system30. In addition to the names of various “instances,”list219 associates each “instance” with the “resource” that it is subordinate (i.e., related) to and anobject health indicator206 that indicates the heath of the “instance.” In some embodiments,list219 organizes the various “instances” that appear inlist219 usingobject health indicators206 such that “instances” that are non-functional appear first and “instances” that are functioning subnormally appear before “instances” that are functioning normally.FIG. 7 shows that a user of graphical user interface22 has selected “Instance 1” inlist219 and the “monitor instance” option from “instances”menu218. Graphical user interface22 presents similar menus in response to hovers over theobject buttons204 that represents the resources, jobs, processing elements, operators, and streams ofhierarchical system30. Accordingly, objectbuttons204 provide a summary of the status ofhierarchical system30 at all levels and provide a means for quickly navigating to any object ofhierarchical system30.
FIG. 7 depicts graphical user interface22 prior toGUI logic34 executing an instruction to monitor the selected “instance” (i.e., “Instance1”). Accordingly, graphical user interface22 presents “domain information” inwindow214 based, at least in part, on the selection ofdomain button202.
FIG. 8 is a block diagram depicting a graphical user interface that includes menus for managing specific objects in a hierarchical system, in accordance with an embodiment of the present disclosure. In the embodiment depicted inFIG. 8, one or more filters are applied to the information presented innavigation bar200 in order to reflect the selection of a specific object ofhierarchical system30. In response to the selection of a specific object,GUI logic34 identifies the objects ofhierarchical system30 that are subordinate to (i.e., descendants of) the selected object and provides graphical user interface22 with instructions that describe how to presentnavigational bar200 such that information relating to objects that are not subordinate (i.e., unrelated) to the selected object is not presented onobject buttons204. InFIG. 8, for example, the object button that represents the “instances” ofhierarchical system30 is relabeled to indicate that “Instance1” ofhierarchical system30 is selected. In addition, object counts208 are lower inFIG. 8 compared toFIG. 7 because the information presented onobject buttons204 is associated with only those objects that are subordinate to “Instance1.” In other words, a filter is applied to objectbuttons204 that are subordinate to (i.e., “downstream” from) the object button that identifies the selected object. The filter is similarly applied to objecthealth indicators206 andtrend indicators210. When a user of graphical user interface22 hovers over a subordinate object button, graphical user interface22 presents a menu that includes a list of specific objects and related controls (e.g, a menu that is analogous to “instances” menu”218) that is filtered to show only those objects of a respective type that are subordinate to the selected objected (e.g., “Instance1”).
In some embodiments, a filter is also applied to objectbuttons204 that are superordinate to (i.e., “upstream” from) the object button that identifies the selected object. InFIG. 8, for example, a filter is applied to the object button that represents the “resources” ofhierarchical system30, and in response, the object button is relabeled to identify the specific “resource” that “Instance1” is subordinate to. In other words, the embodiment depicted inFIG. 8 shows that “Resource1” is a direct ancestor to “Instance 1.” In some embodiments, objectbuttons204 are not relabeled if there is more than one direct ancestor to a selected object. In such embodiments, the list of respective objects (i.e., the list of objects that appears in response to a hover over an object button) is filtered to show only those objects that the selected object is subordinate to.Navigational bar200 advantageously depicts the relationship between superordinate objects and a selected object (i.e., the ancestry of the selected object) while a user of graphical user interface22 monitors and/or manages the selected object. In other embodiments, however, no filters are applied to superordinate, “upstream” object buttons and such buttons present information relating to all objects of respective types inhierarchical system30.
In the embodiment depicted inFIG. 8, graphical user interface22 also presentsobject menu220 in response to a hover over an object button that identifies a specific, selected object.Object menu220 enables a user of graphical user interface22 to manage the selected object by selecting from among a plurality of actions that are available through object menu220 (e.g., stopping an the selected object and restarting the selected object).FIG. 8 shows that a user of graphical user interface22 has selected the “Restart Instance” action fromobject menu220. A user of graphical user interface22 can select the “Select Another Instance” action fromobject menu220 to cause graphical user interface22 to present “Instances”menu218, from which the user can select a different instance (i.e., a menu from which the user can select a different object).
FIG. 9 is a block diagram depicting changes in object health indicators and trend indicators of a graphical user interface in response to managing a hierarchical system, in accordance with an embodiment of the present disclosure. In the embodiment depicted inFIG. 9, objectbuttons204 reflect the statuses of various objects ofhierarchical system30 following a restart of “Instance1.” For example, objecthealth indicators206 indicate that all objects that are subordinate or superordinate to “Instance1” are functioning “normally” following the restart of “Instance1.” Similarly, object counts208 andtrend indicators210 indicate that a greater number of various objects are functioning “normally” compared to the state ofhierarchical system30 as shown inFIG. 8.
In the embodiment depicted inFIG. 9,navigation bar200 indicates that “Instance1” is selected. As discussed with respect toFIG. 8, one or more filters are applied tonavigation bar200 in response to the selection of a specific object, such as “Instance1.” In addition,window214 presents detailed information relating to “Instance1” in response to the selection of the specific object. Various embodiments of the present disclosure advantageously enable a user of graphical interface22 to actively filternavigation bar200 and view detailed information pertaining to a specific object or type of object while navigating to any object, including unrelated objects, withinhierarchical system30.Domain button202 provides this functionality. While actively filteringnavigational bar200 and viewing information inwindow214, a user of graphical user interface22 can hover overdomain button202 and cause graphical user interface22 to presentdomain menu216 onscreen212. As discussed with respect toFIG. 6,tree217 enables the user of graphical user interface22 to navigate to any object ofhierarchical system30 without removing any filters that are being applied to the information presented onobject buttons204.
InFIG. 9, the user of graphical user interface22 had selected the “Monitor Domain” action fromdomain menu216.
FIG. 10 is a block diagram depicting a graphical user interface that presents information relating to a hierarchical system as a whole, in accordance with an embodiment of the present disclosure. In the embodiment depicted inFIG. 10, objectbuttons204 summarize the status ofhierarchical system30 as whole in response to the selection of the “Monitor Domain action, as depicted inFIG. 9. For example, objecthealth indicators206, object counts208, andtrend indicators210 now describehierarchical system30 as a whole instead of only the objects that are subordinate or superordinate to a selected object, as depicted inFIGS. 8 and 9. Similarly,window214 presents information pertaining to hierarch system30 a whole (i.e., “domain information”) instead of information pertaining “Instance1.”
FIG. 11 is a flowchart depicting operations for presenting a graphical user interface, on a computing device within the computing environment ofFIG. 1, in accordance with an embodiment of the present invention. For example,FIG. 11 is aflowchart depicting operations300 ofGUI logic34 onhierarchical system30 withincomputing environment10.
Inoperation302,GUI logic34 receives user input from a user of graphical user interface22.GUI logic34 performs various action based, at least in part, on the nature of the user input. If, for example,GUI logic34 determines that the user input is an instruction to display a menu (e.g., a hover overdomain button202 or one ofobject buttons204;decision204, YES branch),GUI logic34 instructs graphical user interface22 to present an associated menu on screen212 (operation306). IfGUI logic34 determines that the user input is not an instruction to display a menu (decision204, NO branch),GUI logic34 makes one or more additional attempts to characterize the user input.
Indecision308,GUI logic34 determines whether or not the user input is a selection of a specific object (e.g., selecting “Instance1,” as described with respect toFIG. 7). IfGUI logic34 determines that the user has selected a specific object (decision308, YES branch),GUI logic34 instructs graphical user interface22 to update the presentation of the associated button innavigation bar200. For example,GUI logic34 can instruct graphical user interface22 to label the associated button so that it identifies the selected object and removetrend indicators210 from the associated button. IfGUI logic34 determines that the user input is neither an instruction to display a menu nor a selection of a specific object (e.g., the user input is an instruction to restart an “instance;”decision308, NO branch),GUI logic34 executes the instruction onhierarchical system30 and/or graphical user interface22 (operation316). IfGUI logic34 determines that the view presented on graphical user interface22 can be updated in response to executing the instruction (decision318, YES branch),GUI logic34 instructs graphical user interface22 to update the view (e.g., updatenavigational bar200 and/orwindow214 based, at least in part, on changes in the status ofhierarchical system30 resulting from the executed instruction; operation320). IfGUI logic34 determines that the view presented on graphical user interface22 cannot be updated (decision318, NO branch),GUI logic34 waits to receive user input (operation302).
Indecision312,GUI logic34 determines whether or not one or more filters can be appliedobject buttons204 in response to a selection of a specific object. Accordingly,GUI logic34 can identify objects that are subordinate and/or superordinate (i.e., related) to a selected object, as discussed with respect toFIG. 8. IfGUI logic34 determines that one or more filters can be applied to object buttons204 (decision312, YES branch),GUI logic34 applies the filter(s) and instructs graphical user interface22 to update the presentation ofobject buttons204 in accordance with the applied filter(s), as discussed with respect to Figure (operation314). IfGUI logic34 determines that one or more filters cannot be applied to object buttons204 (decision312, NO branch),GUI logic34 waits to receive user input (operation302).
In some embodiments, the functionality ofGUI logic34 is provided by a plurality of logical units. For example, a “controller” and logical units associated with each ofobject buttons204 could provide, at least in part, the functionality ofGUI logic34. In embodiments where the “controller” is aware of the structure of navigation bar200 (i.e., the dependencies and relationships between object buttons204), the controller filters information that is passed to objectbuttons204 based, at least in part, on a selected button (i.e., a select object or type of object). In such embodiments, logical units associated with respective object buttons publish events when they are selected by a user of graphical user interface22. Non-selected object buttons listen for events and update the information presented the respective object buttons based, at least in part, on a filter that is applied in response to the selection of the relevant object button (i.e., based on a selection of a specific object). In addition, a logic unit associated with window14 updates the information presented in window14 based, at least in part, on the selected object button.
The present invention may be a system, a method, and/or a computer program product at any possible technical detail level of integration. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.
The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, configuration data for integrated circuitry, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++, or the like, and procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.
Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.
These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the Figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.
The term(s) “Smalltalk” and the like may be subject to trademark rights in various jurisdictions throughout the world and are used here only in reference to the products or services properly denominated by the marks to the extent that such trademark rights may exist.
As used herein, a list of alternatives such as “at least one of A, B, and C” should be interpreted to mean “at least one A, at least one B, at least one C, or any combination of A, B, and C.”
The descriptions of the various embodiments of the present invention have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The terminology used herein was chosen to best explain the principles of the embodiment, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.