WO2006017027A2 - Procedes et systemes de generation de modeles d'environnements d'application pour des applications et des parties d'applications, interfaces utilisateur destinees a etre utilisees avec ces derniers - Google Patents

Procedes et systemes de generation de modeles d'environnements d'application pour des applications et des parties d'applications, interfaces utilisateur destinees a etre utilisees avec ces derniers Download PDF

Info

Publication number
WO2006017027A2
WO2006017027A2 PCT/US2005/023173 US2005023173W WO2006017027A2 WO 2006017027 A2 WO2006017027 A2 WO 2006017027A2 US 2005023173 W US2005023173 W US 2005023173W WO 2006017027 A2 WO2006017027 A2 WO 2006017027A2
Authority
WO
WIPO (PCT)
Prior art keywords
application
displaying
distributed computing
computing environment
components
Prior art date
Application number
PCT/US2005/023173
Other languages
English (en)
Other versions
WO2006017027A8 (fr
Inventor
Thomas Patrick Bishop
Robert A. Fabbio
Chris K. Immel
Michael A. Martin
Jaisimha Muthegere
David J. Wilson
Jonathon D. Wilson
Original Assignee
Cesura, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/889,569 external-priority patent/US20060036726A1/en
Priority claimed from US10/889,570 external-priority patent/US20060009954A1/en
Application filed by Cesura, Inc. filed Critical Cesura, Inc.
Publication of WO2006017027A2 publication Critical patent/WO2006017027A2/fr
Publication of WO2006017027A8 publication Critical patent/WO2006017027A8/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3447Performance evaluation by modeling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/87Monitoring of transactions

Definitions

  • the invention relates in general to methods and systems for generating models and user interfaces for generating displays, and more particularly to methods and systems for generating models of application environments for applications and portions thereof, and user interfaces for generating displays representing an instrument cluster for managing and controlling applications and portions thereof and methods of using the user interfaces.
  • an unmanaged distributed computing environment 110 may include a network tier 115, a systems tier 120, a software infrastructure tier 140, and an applications tier 160. Each of those tiers may include sub-tiers within them.
  • the systems tier 120 may include a hardware sub-tier having components such as hard disk(s), CPU(s), etc. and a software sub-tier that may include different components of system software.
  • specific management tools monitor or control only a part of the distributed computing environment, and usually the monitoring or control performed by each specific management tool is limited to a single tier and even sub-tiers.
  • specific management tools may be used to monitor components within the systems tier 120, but have no knowledge of or not be able to manage the applications tier 160.
  • Other management tools may be used to monitor applications within the applications tier 160; however, those products may have no knowledge of or not be able to manage the components within the systems tier 120. Therefore, the dashed lines in FIG. 1 represent invisible barriers that typically are not crossed in the prior art for control and monitoring purposes.
  • a bank may be having a problem with one or more of its automatic teller machines ("ATMs") where money is not being dispensed after users request money from the ATM.
  • ATMs automatic teller machines
  • the bank may examine numerous different systems that are used. Even a simple request for money from an ATM may involve over 20 different systems. Analysis of each tier, sub-tier, or each component within each tier (e.g., database, ATM terminal, etc.) individually may not find the cause(s) of the problem. Because the cause(s) of the problem is not found, nothing is done.
  • Another approach to address the problem is to try to manage the entire distributed computing environment 110 at the organization level (i.e., effectively trying to manage and control the entire distributed computing environment as a single unit). Due to the number of tiers, sub-tiers, and components and their different types, including hardware (memories, databases, computers, routers, etc.), software (system software, applications, etc.), and firmware, managing the entire distributed computing environment 110 as a single unit is nearly impossible. Therefore, optimization of the entire distributed computing environment 110 as a single unit cannot be achieved because the entire environment 110 cannot be effectively managed or controlled in a coherent or cohesive manner.
  • Instruments can be used to display information about physical components and logical components within a distributed computing environment.
  • the physical components may include hardware, firmware, or software components, and the logical components can be constructs used by firmware or software, such as a buffer.
  • a user may determine which instruments control physical or logical components, and which instruments monitor the physical or logical components.
  • an instrument corresponds to one physical or logical component.
  • the user or a programmer may configure software for a display, such as an instrument cluster.
  • the display is static in that the instruments displayed do not change unless a human intervenes.
  • Such human intervention can include writing a script file that is executed to instruct a computer to change the instrument cluster configuration.
  • a web services tier may include 137 servers at a first time. A little later, specific servers are added and removed, so at a second time, the tier may include 150 servers.
  • An application can run within a distributed computing environment.
  • a managed application environment, or a portion of it, that supports one or more transaction types, within the distributed computing environment can be thought of as a container having set of instruments with mathematical descriptions of relationships between the instruments, wherein the instruments can include controls and gauges.
  • the managed distributed computing environment can include an application management and control appliance, hardware and software components within tiers or sub-tiers outside the appliance (e.g., servers, routers, storage network, etc.), and a network that connects the appliance and hardware and software tiers, sub-tiers, and components together.
  • the instruments may be at different locations within the managed distributed computing environment, such as within the appliance or within specific tiers, sub-tiers, or components in the managed distributed computing environment.
  • models of the applications and managed application environments can be generated, in accordance with one embodiment.
  • the models can identify which (1) specific controls are determined to significantly affect the application as it runs and (2) specific gauges are determined to be significantly affected by the application and the managed application environment as it runs.
  • the models of the managed application environment can include mathematical descriptions of the relationships between instruments within tiers, sub-tiers, and components, between tiers, sub-tiers, and components, and between services and tiers, sub-tiers, and components, all of which are tied to service levels for the application.
  • the models can extend across any number of tiers, sub-tiers, and components of a managed application environment.
  • the model which can also be called the application container, includes the instruments and their mathematical descriptions of the relationships.
  • portions of the managed application environment across tiers, sub-tiers, and components can be managed and controlled in a more coherent and predictable manner to better achieve the business objectives of a managed distributed computing environment.
  • the methods and systems can also help to identify and correct potential problems that may not be seen when examining individual tiers, sub-tiers, or components within the managed application environment or the distributed computing environment as a whole.
  • a method can be used to generate a model of a managed application environment for an application.
  • the method can include determining which instruments significantly affect or are significantly affected by the application.
  • the method can also include determining a mathematical description of a relationship between each significant instrument and other parts of the managed application environment.
  • a user interface can present a unified view as a dynamic object-oriented metaphor for displaying information pertaining to any one or more applications and portions thereof (e.g., transaction types) and logical and physical components within a distributed computing environment, mapping between applications or portions thereof and information pertaining to those logical and physical components used by the applications or portions thereof, the health of the applications or portions thereof and logical and physical components, and the ability to control any or all of the applications or portions thereof and logical and physical components.
  • applications and portions thereof e.g., transaction types
  • logical and physical components within a distributed computing environment, mapping between applications or portions thereof and information pertaining to those logical and physical components used by the applications or portions thereof, the health of the applications or portions thereof and logical and physical components, and the ability to control any or all of the applications or portions thereof and logical and physical components.
  • the user interface can generate displays, wherein each display effectively presents an overview of a portion of a distributed computing environment, such as a specific application or portion thereof (e.g., a transaction type), a specific logical or physical component, a specific network service, or the like.
  • the display may include performance indicators for that portion of the distributed computer environment (e.g., application, tier, component, service, etc.) being examined by coalescing readings from physical and logical instruments to provide a simple, understandable display.
  • the display may include an optional navigation section to allow user to more quickly locate the part of the distributed computing environment that the user wants to see. Other information displayed may depend on the particular portion of the distributed computing environment being examined.
  • the other information may include (1) representations of a set of components within the distributed computing environment, wherein the first set of components significantly affect any one or more of the performance indicators, (2) one or more controls that significantly affect one or more of the performance indicators, (3) a representation of a component that lies within or uses the portion of the distributed computing environment being examined, (4) one or more applications that use the portion of the distributed computing environment being examined, or (5) any combination of (1) to (4).
  • the displays generated by the user interface can provide information that changes dynamically and in real time or near real time to reflect changes in the distributed computing environment as the distributed computing environment adapts to applications running within it.
  • users can easily see relevant information regarding a specific application or portion thereof, a specific logical or physical component, or a specific network service in real time or near real time.
  • a user may able to examine or even explore the capabilities of the physical or logical components within the distributed computing environment and to give the user the ability to drill down to whatever level of detail that the user desires.
  • the single display can effectively provide an easily understood picture of the dynamic infrastructure used to support an application or a portion thereof (e.g. a transaction type) that is dynamically updated.
  • the user interface does not require any configuration on the part of the user.
  • the user interface can allow users to customize the displays to create their own personal views. Therefore, the user interface has the flexibility to provide a default display or a personally customized display.
  • the performance indicators for any or all parts of the distributed computing environment may be static, or alternatively, may be changed by a user at nearly any time.
  • a method of using a user interface for a distributed computing environment can including accessing a performance indicator for at least a portion of the distributed computing environment. The method can also include determining which components within the distributed computing environment significantly affect the performance indicator by using a set of data collected from instruments within the distributed computing environment to form a set of components. The method can further include displaying a representation of the set of components.
  • a method of using a user interface for a distributed computing environment can include, at a first time, displaying a performance indicator for at least a portion of the distributed computing environment, and displaying one or any combination of (1) a representation of a set of components within the distributed computing environment, wherein the set of components significantly affect the performance indicator, (2) a control that significantly affects the performance indicator, (3) a representation of a component that lies within or uses the at least a portion of the distributed computing environment, or (4) an application that uses the at least a portion of the distributed computing environment.
  • a data processing system readable medium can comprise code that can include instructions for carrying out any one or more of the methods described herein and may be used within a distributed computing environment.
  • an apparatus can be configured to carry out any part or all of any of the methods described herein, the apparatus can include any part or all of any of the data processing system readable media described herein, an apparatus can include any part or all of any of the systems described herein, an apparatus can be a part of any of the systems described herein, or any combination thereof.
  • FIG. 1 includes an illustration of a hierarchy for a distributed computing environment, wherein the hierarchy is divided into tiers (prior art).
  • FIG. 2 includes an illustration of application environments for applications, where the application environment can include portions of tiers within a hierarchy.
  • FIG. 3 includes an illustration of the application environments in FIG. 2 having instruments, relationships between the instruments, and relationships between the application environments.
  • FIG. 4 includes an illustration of a hardware configuration of a distributed computing environment and an appliance for managing and controlling the distributed computing environment.
  • FIG. 5 includes an illustration of a hardware configuration of the appliance in FIG. 4.
  • FIG. 6 includes an illustration of a process flow diagram for generating a model of an application environment for an application that uses the system.
  • FIG. 7 includes an illustration of a display for a distributed computing environment.
  • FIG. 8 includes an illustration of a display for an application running within distributed computing environment.
  • FIG. 9 includes a flow diagram illustrating a method of using the user interface to display components that significantly affect the run-time behavior of an application running within a distributed computing environment.
  • FIGs. 10 to 12 include illustrations of displays for other parts of a distributed computing environment.
  • FIGs. 13 to 17 include illustrations of displays related to creating, editing, and using personal views.
  • a method can be used with an application, or a portion thereof, that runs within a distributed computing environment.
  • a revolutionary way of managing and controlling a distributed computing environment is described herein and represents a paradigm shift compared to conventional distributed computing environment and network management techniques that only monitor portions of the distributed computing environment (e.g., within a tier or sub-tier of a hierarchy for the distributed computing environment).
  • a managed application environment or a portion of it, that supports one or more transaction types, within the distributed computing environment can be thought of as an "application container" having set of instruments with mathematical descriptions of relationships between the instruments, wherein the instruments can include controls and gauges.
  • the managed distributed computing environment can include an appliance, physical and logical components within tiers or sub-tiers outside the appliance (e.g., servers, routers, storage network, etc.), and a network that connects the appliance and physical and logical components together.
  • the instruments may be at different locations within the managed distributed computing environment, such as within the appliance or within specific tiers, sub-tiers, or components in the managed distributed computing environment.
  • the application runs in the managed distributed computing environment
  • data from the instruments is collected and analyzed.
  • models of the applications and managed application environments can be generated.
  • the models identify which (1) specific controls are dete ⁇ nined to significantly affect the application as it runs (i.e., the application's behavior) and (2) specific gauges are determined to be significantly affected by the application and the managed application environment as it runs.
  • the models of the managed application environment can include mathematical descriptions of the relationships between instruments (1) within tiers, sub-tiers, and components and (2) between tiers, sub-tiers, components, and services, all of which are tied to service levels for the application.
  • the models can extend across any number of tiers, sub-tiers, and components of a managed application environment.
  • the model which can also be called the application container, includes the instruments and their mathematical descriptions of the relationships between the instruments.
  • portions of the managed application environment across tiers, sub-tiers, and components can be managed and controlled in a more coherent and predictable manner to better achieve the business objectives of a managed distributed computing environment.
  • the methods and systems can also help to identify and correct potential problems that may not be seen when examining individual tiers, sub-tiers, or components within the managed application environment or the distributed computing environment as a whole.
  • models of application environments 202 and 204 correspond to different applications and can extend across one or more tiers of a hierarchy 210 for a distributed computing environment.
  • the models 202 and 204 can extend vertically across all tiers of the hierarchy 210 for the distributed computing environment.
  • the models 202 and 204 may include instruments 262 and 264, respectively, at the applications tier 160, instruments 242 and 244, respectively, at the software infrastructure tier 140, instruments 222 and 224, respectively, at the systems tier 120, and instruments 212 and 214, respectively, at the network tier 115.
  • FIG. 3 includes an illustration of instruments (represented by circles) and relationships (illustrated by double headed arrows) between the instruments. Instruments between the models of applications environments 202 and 204 may be used to monitor and control a distributed computing environment, including controlling priorities between different applications running within the distributed computing environment. FIG. 3 is described in more detail later in this specification.
  • portions of the application environment across tiers within a distributed computing environment can be controlled in a more coherent manner to better achieve the business objectives of an organization.
  • the methods can also help to identify and correct potential problems that may not be seen when examining a single tier or a single sub-tier (e.g., components) in isolation.
  • the models do not stop at the tier boundaries but extend across them.
  • a method of using a user interface for a distributed computing environment is described.
  • the user interface can present a unified view as a dynamic object-oriented metaphor for displaying information pertaining to any one or more applications and portions thereof (e.g., transaction types) and logical and physical components within a distributed computing environment, mapping between applications or portions thereof and information pertaining to those logical and physical components used by the applications or portions thereof, the health of the applications or portions thereof and logical and physical components, and the ability to control any or all of the applications or portions thereof and logical and physical components.
  • applications and portions thereof e.g., transaction types
  • logical and physical components within a distributed computing environment
  • mapping between applications or portions thereof and information pertaining to those logical and physical components used by the applications or portions thereof, the health of the applications or portions thereof and logical and physical components, and the ability to control any or all of the applications or portions thereof and logical and physical components e.g., transaction types
  • the user interface can generate displays, wherein each display effectively presents an overview of a portion of a distributed computing environment, such as a specific application or portion thereof (e.g., a transaction type), a specific logical or physical component, a specific network service, or the like.
  • the display can include performance indicators for that portion of the distributed computer environment (e.g., application, tier, component, service, etc.) being examined by coalescing readings from physical and logical instruments to provide a simple, understandable display.
  • the display can include an optional navigation section to allow the user to more quickly locate the part of the distributed computing environment that the user wants to see. Other information displayed may depend on the particular portion of the distributed computing environment being examined.
  • the displays generated by the user interface can provide information that changes dynamically and in real time or near real time to reflect changes in the distributed computing environment as the distributed computing environment adapts to applications running within it. Therefore, with a single display, users can easily see relevant information regarding a specific application or portion thereof, a specific logical or physical component, or a specific network service in real time or near real time. A user is able to examine or even explore the capabilities of the physical or logical components within the distributed computing environment and to give the user the ability to drill down to whatever level of detail the user desires.
  • the single display can effectively provide an easily understood picture of the dynamic infrastructure used to support an application or a portion thereof (e.g. a transaction type) that is dynamically updated.
  • application is intended to mean a collection of transaction types that serve a particular purpose.
  • a web site store front can be an application
  • human resources can be an application
  • order fulfillment can be an application, etc.
  • application environment is intended to mean an application and the application infrastructure used by that application.
  • the term "application infrastructure” is intended to mean any and all hardware, software, and firmware determined to be used by an application.
  • the hardware can include servers and other computers, data storage and other memories, networks, switches and routers, and the like.
  • the software used may include operating systems and other middleware components (e.g., database software, JAVATM engines, etc.).
  • component is intended to mean a part within a distributed computing environment.
  • Components may be hardware, software, firmware, or virtual components. Many levels of abstraction are possible.
  • a server may be a component of a system
  • a CPU may be a component of the server
  • a register may be a component of the CPU, etc.
  • Each of the components may be a part of an application infrastructure, a management infrastructure, or both.
  • component and resource can be used interchangeably.
  • de-provisioning is intended to mean that a physical component is no longer active within an application infrastructure. De-provisioning includes placing a component in an idling, a maintenance, a standby, or a shutdown state or removing the physical component from the application infrastructure.
  • distributed computing environment is intended to mean a collection of components comprising at least one application, wherein different types of components reside on different network devices connected to the same network.
  • instrument is intended to mean a gauge or control that can monitor or control at least part of an application infrastructure.
  • logical component is intended to mean a collection of the same type of components.
  • a logical component may be a web server farm, and the physical components within that web server farm can be individual web servers.
  • logical instrument is intended to mean an instrument that provides a reading reflective of readings from a plurality of other instruments. In many, but not all instances, a logical instrument reflects readings from physical instruments. However, a logical instrument may reflect readings from other logical instruments, or any combination of physical and logical instruments.
  • a logical instrument may be an average memory access time for a storage network. The average memory access time may be the average of all physical instruments that monitor memory access times for each memory device (e.g., a memory disk) within the storage network.
  • physical component is intended to mean a component that can serve a function even if removed from the distributed computing environment.
  • Examples of physical components include hardware, software, and firmware that can be obtained from any one of a variety of commercial sources.
  • the term "physical instrument” is intended to mean an instrument for monitoring a physical component.
  • provisioning is intended to mean that a physical component is in an active state within an application infrastructure. Provisioning includes placing a component in an active state or adding the physical component to the application infrastructure.
  • real time is intended to mean no significant time lapse between two events as perceived by the portion of the distributed computing environment experiencing the two events.
  • near real time is intended to mean occurring at a time slightly after a prior event or state. Real time and near real time may in part depend on the computing environment and the CPU rate. Although not meant to be limiting, near real time is typically no more than minute and can be no less than a second.
  • tier is intended to mean a layer of a distributed computing environment hierarchy.
  • tiers can include a system tier for low-level components, such as hard disks, memories, CPU, and the like; a software infrastructure tier, which can include mid-level components, such as web servers, database server, applications servers and software used to run those servers, and an applications tier, which includes high-level components, such as applications that perform specialize services that run on the mid-level components (e.g., store front application for a web site, human resources application, inventory management application, and the like).
  • transaction type is intended to mean a type of task or transaction that an application may perform.
  • information (browse) request and order placement are transactions having different transaction types for a store front application.
  • the terms “comprises,” “comprising,” “includes,” “including,” “has,” “having” and any variations thereof, are intended to cover a nonexclusive inclusion.
  • a method, process, article, or apparatus that comprises a list of elements is not necessarily limited to only those elements but may include other elements not expressly listed or inherent to such method, process, article, or apparatus.
  • "or” refers to an inclusive or and not to an exclusive or. For example, a condition A or B is satisfied by any one of the following: A is true (or present) and B is false (or not present), A is false (or not present) and B is true (or present), and both A and B are true (or present).
  • components may be bi-directionally or uni-directionally coupled to each other. Coupling should be construed to include direct electrical connections and any one or more of intervening switches, resistors, capacitors, inductors, and the like between any two or more components.
  • a method can be used with at least a portion of a first application running within a distributed computing environment.
  • the method can include generating a first model of a first application environment for the at least a portion of the first application.
  • Generating the first model can include determining which instruments significantly affect or are significantly affected by the at least a portion of the first application's behavior.
  • the method can further include determining a mathematical description of a relationship between the instruments determined to significantly affect or be significantly affected by the at least a portion of the first application's behavior.
  • only instruments within the application infrastructure that are determined to significantly affect or be significantly affected by the at least a portion of the first application's behavior are part of the first model.
  • all the instruments within the first model are directly or indirectly related to one another.
  • the instruments are from at least two different tiers within a distributed computing environment.
  • the method further includes displaying a particular instrument of the instruments at least in part on determining which instruments significantly affect or are significantly affected by the at least a portion of the first application's behavior.
  • the method further includes using the first model to determine the at least a portion of the first application's behavior in response to a change in a control, wherein the instruments include the control.
  • the instruments further include a gauge.
  • the instruments further include a gauge, and the mathematical description of the relationship describes how a change in the control affects a measurement on the gauge or how the control should be changed based on a measurement from the gauge.
  • the at least a portion of the first application is the first application.
  • the at least a portion of the first application is a transaction type within the first application.
  • the method further includes generating a second model of a second application environment for at least a portion of a second application running within the distributed computing environment.
  • Generating the second model includes determining which instruments significantly affect or are significantly affected by the at least a portion of the second application's behavior, and for each instrument determined to significantly affect or be significantly affected by the at least a portion of the second application's behavior, determining a mathematical description of a relationship between the instruments.
  • the at least a portion of the first application is assigned a different business objective priority compared to the at least a portion of the second application.
  • at least one instrument lies between the first and second application environments, wherein the at least one instrument is capable of monitoring, prioritizing, or otherwise controlling the first and second application environments relative to each other.
  • the method further includes changing the first model in real time or near real time in response to a changed condition within the distributed computing environment.
  • any of the methods described with respect to the first aspect can further include displaying a representation of a component, a first instrument, or both based at least in part on determining which instruments significantly affect or are significantly affected by the at least a portion of the first application's behavior, wherein the instruments include the first instrument.
  • a method of using a user interface for a distributed computing environment can include accessing a first performance indicator for at least a portion of the distributed computing environment. The method can also include determining which components within the distributed computing environment significantly affect the first performance indicator by using a first set of data collected from instruments within the distributed computing environment to form a first set of components, and displaying a representation of the first set of components.
  • the method further includes accessing a second performance indicator for the at least a portion of the distributed computing environment.
  • the method further includes determining which components within the distributed computing environment significantly affect the second performance indicator using the first set of data collected from instruments within the distributed computing environment to form a second set of components. Displaying includes displaying a union of representations of the first and second sets of components.
  • the method further includes determining which components within the distributed computing environment significantly affect the first performance indicator by using a second set of data collected from instruments within the distributed computing environment to form a second set of components.
  • the second set of data is collected during a different time period compared to the first set of data, and the second set of components is different from the first set of components.
  • the method can further include displaying a representation of a second set of components, wherein any component that belongs to the first set of components but not the second set of components is not displayed during displaying a representation of the second set of components.
  • determining and displaying are performed automatically to reflect changes within the distributed computing environment.
  • the method further includes collecting the first set of data while the distributed computing environment is in its normal operating mode.
  • the method further includes collecting the first set of data while the distributed computing environment is in a learning mode.
  • the method further includes displaying the first performance indicator.
  • the method further includes displaying a navigation bar.
  • a method of using a user interface for a distributed computing environment can include, at a first time, displaying a first performance indicator for at least a portion of the distributed computing environment, and displaying one or any combination of a representation of (1) a first set of components within the distributed computing environment, wherein the first set of components significantly affect the first performance indicator, (2) a first control that significantly affects the first performance indicator, (3) a representation of a component that lies within or uses the at least a portion of the distributed computing environment, or (4) an application that uses the at least a portion of the distributed computing environment.
  • the method further includes, at the first time, displaying one or any combination includes displaying the representation of the first set of components within the distributed computing environment.
  • the method further includes, at a second time, displaying the first performance indicator, and displaying a representation of a second set of components within the distributed computing environment, wherein the second set of components significantly affect the first performance indicator.
  • the method further includes, at the first and second times, displaying a navigation bar.
  • the at least a portion of a distributed computing environment is an application.
  • Displaying the first performance indicator includes displaying performance indicators for the application, wherein the performance indicators include the first performance indicator.
  • Displaying one or any combination includes displaying representations of transaction types of the application, and displaying one or any combination includes displaying a representation of the first set of components within the distributed computing environment.
  • the at least a portion of a distributed computing environment is a tier of components. Displaying the first performance indicator includes displaying performance indicators for the tier of components, wherein the performance indicators include the first performance indicator. Displaying one or any combination includes displaying a representation of provisioned components within the tier, and displaying a representation of an application using the tier.
  • the at least a portion of a distributed computing environment is a physical component. Displaying the first performance indicator includes displaying performance indicators for the physical component, wherein the performance indicators include the first performance indicator.
  • Displaying one or any combination includes displaying specification information regarding the physical component, displaying a representation of a software service on or using the physical component, and displaying a representation of an application using the physical component.
  • the at least a portion of a distributed computing environment is a network service.
  • Displaying the first performance indicator includes displaying performance indicators for the network service, wherein the performance indicators include the first performance indicator.
  • Displaying the one or any combination includes displaying controls that significantly affect the performance indicators, wherein the control include the first control.
  • a data processing system readable medium can have code embodied within the data processing system readable medium, wherein the code can include instructions corresponding to actions as recited within any of the methods as described herein.
  • an apparatus can be configured to carry out any of the methods as described herein.
  • a data processing system readable medium can have code for generating a first model of a first application environment for at least a portion of a first application running within a distributed computing environment, and a second model of a second application environment for at least a portion of the of a second application running within the distributed computing environment, wherein the code is embodied within the data processing system readable medium.
  • the code can include an instruction for determining which instruments significantly affect or are significantly affected by the at least a portion of the first application's behavior, and an instruction for determining a mathematical description of a relationship between the instrument and another part of the first application environment, wherein the instruction for determining a mathematical description is repeated for each instrument determined to significantly affect or be significantly affected by the at least a portion of the first application's behavior.
  • the code can further include an instruction for determining which instruments significantly affect or are significantly affected by the at least a portion of the second application's behavior, and an instruction for determining a mathematical description of a relationship between the instrument and another part of the second application environment, wherein the instruction for determining a mathematical description is repeated for each instrument determined to significantly affect or be significantly affected by the at least a portion of the second application's behavior.
  • the code can still further include an instruction for using at least one instrument to monitor, prioritize, or otherwise control the first and second application environments relative to each other, wherein the at least one instrument lies between the first and second application environments.
  • a data processing system readable medium can have code for a user interface for a distributed computing environment, wherein the code is embodied within the data processing system readable medium.
  • the code can include an instruction for accessing a first performance indicator for at least a portion of the distributed computing environment, an instruction for determining which components within the distributed computing environment significantly affect the first performance indicator by using a first set of data collected from instruments within the distributed computing environment to form a first set of components, and an instruction for displaying a representation of the first set of components.
  • the code can also include an instruction for repeating the instructions for determining and displaying such that the instruction for determining uses a second set of data collected from instruments within the distributed computing environment to form a second set of components.
  • the second set of data is collected during a different time period compared to the first set of data, and the second set of components is different from the first set of components.
  • the instruction for displaying includes an instruction for displaying a representation of a second set of components, wherein any component that belongs to the first set of components but not the second set of components is not displayed during displaying the representation of the second set of components.
  • a data processing system readable medium can have code for a user interface for a distributed computing environment, wherein the code is embodied within the data processing system readable medium.
  • the code can include an instruction for displaying a first performance indicator for at least a portion of the distributed computing environment.
  • the code can also include an instruction for displaying one or any combination of ( 1 ) a representation of a first set of components within the distributed computing environment, wherein the first set of components significantly affect the first performance indicator, (2) a first control that significantly affects the first performance indicator, (3) a representation of a component that lies within or uses the at least a portion of the distributed computing environment, or (4) an application that uses the at least a portion of the distributed computing environment.
  • the code further includes an instruction for displaying a navigation bar.
  • the at least a portion of a distributed computing environment is an application, and the instruction for displaying the first performance indicator includes an instruction for displaying performance indicators for the application, wherein the performance indicators include the first performance indicator.
  • the instruction for displaying one or any combination includes an instruction for displaying representations of transaction types of the application, and an instruction for displaying one or any combination includes displaying the representation of the first set of components within the distributed computing environment.
  • the at least a portion of a distributed computing environment is a tier of components.
  • the instruction for displaying the first performance indicator includes an instruction for displaying performance indicators for the tier of components, wherein the performance indicators include the first performance indicator.
  • the instruction for displaying one or any combination includes an instruction for displaying a representation of provisioned components within the tier, and an instruction for displaying a representation of an application using the tier.
  • the at least a portion of a distributed computing environment is a physical component.
  • the instruction for displaying the first performance indicator includes an instruction for displaying performance indicators for the physical component, wherein the performance indicators include the first performance indicator.
  • the instruction for displaying one or any combination includes an instruction for displaying specification information regarding the physical component, an instruction for displaying a representation of a software service on or using the physical component, and an instruction for displaying a representation of an application using the physical component.
  • the at least a portion of a distributed computing environment is a network service.
  • the instruction for displaying the first performance indicator includes an instruction for displaying performance indicators for the network service, wherein the performance indicators include the first performance indicator.
  • the instruction for displaying the one or any combination includes an instruction for displaying controls that significantly affect the performance indicators, wherein the controls include the first control.
  • an apparatus can include a data processing system readable medium as described herein.
  • FIG. 4 includes a hardware diagram of a distributed computing environment 400.
  • the distributed computing environment 400 includes an application infrastructure.
  • the application infrastructure includes management blade(s) (not shown in FIG. 4) within an appliance 450 and those components above and to the right of the dashed line 410 in FIG. 4. More specifically, the application infrastructure includes a router/firewall/load balancer 432, which is coupled to the Internet 431 or other network connection.
  • the application infrastructure further includes web servers 433, application servers 434, and database servers 435. Other servers may be part of the application infrastructure but are not illustrated in FIG. 4.
  • Each of the servers may correspond to a separate computer or may correspond to a virtual engine running on one or more computers. Note that a computer may include one or more server engines.
  • the application infrastructure also includes a network 412, a storage network 436, and router/firewalls 437.
  • the management blades within the appliance 450 may be used to route communications (e.g., packets) that are used by applications, and therefore, the management blades are part of the application infrastructure.
  • communications e.g., packets
  • other additional components may be used in place of or in addition to those components previously described.
  • Each of the components 432 to 437 is bi-directionally coupled in parallel to the appliance 450 via network 412.
  • the inputs and outputs from such the router/firewalls 437 are connected to the appliance 450.
  • Substantially all the traffic for each of the components 432 to 437 in the application infrastructure is routed through the appliance 450.
  • Software agents may or may not be present on each of the components 432 to 437. The software agents can allow the appliance 450 to monitor and control at least a part of any one or more of the components 432 to 437. Note that in other embodiments, software agents on components may not be required in order for the appliance 450 to monitor and control the components.
  • a console 580 and a disk 590 are bi-directionally coupled to a control blade 510 within the appliance 450.
  • the console 580 can allow an operator to communicate with the appliance 450.
  • Disk 590 may include logic and data collected from or used by the control blade 510.
  • the control blade 510 is bi-directionally coupled to a hub 520.
  • the hub 520 is bi- directionally coupled to each management blade 530 within the appliance 450.
  • Each management blade 530 is bi-directionally coupled to the network 412 and fabric blades 540. Two or more of the fabric blades 540 may be bi-directionally coupled to one another.
  • the management infrastructure can include the appliance 450, network 412, and software agents on the components 432 to 437. Note that some of the components within the management infrastructure (e.g., the management blades 530, network 412, and software agents on the components 432 to 437) may be part of both the application and management infrastructures. In one embodiment, the control blade 510 is part of the management infrastructure but not part of the application infrastructure.
  • management blades 530 may be present.
  • the appliance 450 may include one or four management blades 530 in other embodiments. When two or more management blades 530 are present, they may be connected to different parts of the application infrastructure. Similarly, any number of fabric blades 540 may be present.
  • the control blade 510 and hub 520 may be located outside the appliance 450, and in yet another embodiment, nearly any number of appliances 450 may be bi-directionally coupled to the hub 520 and under the control of the control blade 510.
  • the control blade 510, the management blades 530, or both may include a central processing unit ("CPU") or controller. Therefore, the appliance 450 is an example of a data processing system.
  • other connections and memories may reside in or be coupled to any of the control blade 510, the management blade(s) 530, or any combination thereof.
  • Such memories can include content addressable memory, static random access memory, cache, f ⁇ rst-in-first-out (“FIFO”), other memories, or any combination thereof.
  • the memories, including disk 590, can include media that can be read by a controller, CPU, or both. Therefore, each of those types of memories includes a data processing system readable medium.
  • Portions of the methods described herein may be implemented in suitable software code that includes instructions for carrying out the methods.
  • the instructions may be lines of assembly code or compiled C + *, Java, or other language code.
  • Part or all of the code may be executed by one or more processors or controllers within the appliance 450 (e.g., on the control blade 510, one or more of the management blades 430, or any combination thereof) or on one or more software agent(s) (not shown) within components 432 to 437, or any combination of the appliance 450 or software agents.
  • the code may be contained on a data storage device, such as a hard disk (e.g., disk 590), magnetic tape, floppy diskette, CD ROM, optical storage device, storage network (e.g., storage network 436), storage device(s), or other appropriate data processing system readable medium or storage device.
  • a data storage device such as a hard disk (e.g., disk 590), magnetic tape, floppy diskette, CD ROM, optical storage device, storage network (e.g., storage network 436), storage device(s), or other appropriate data processing system readable medium or storage device.
  • the functions of the appliance 450 may be performed at least in part by another apparatus substantially identical to appliance 450 or by a computer (e.g., console 580), such as any one or more illustrated in FIG. 4.
  • a computer e.g., console 580
  • a computer program or its software components with such code may be embodied in more than one data processing system readable medium in more than one computer.
  • the appliance 450 is not required, and its functions can be incorporated into different parts of the distributed computing environment 400 as illustrated in FIGs. 4 and 5.
  • the method can include running an application with the distributed computing environment 400 (block 602).
  • the method can also include determining which instruments significantly affect or are significantly affected by the application's behavior (block 622).
  • the method can further include determining mathematical descriptions for the relationships between the instruments (block 642).
  • the method can be iterated for any number of applications that use the distributed computing environment 400.
  • the method may include the ability to monitor, prioritize, or otherwise control components within the distributed computing environment 400 consistent with the business objectives of the organization. Part or all of the method can be performed by the appliance 450 (e.g. control blade 510, one or more management blades 530), software agents on the components 432 to 437, or any combination thereof. Data used for performing the method may be accessed from the components 432 to 437, disk 590, or any combination thereof.
  • models of application environments can include a set of instruments and mathematical descriptions of relationships between the instruments.
  • the instruments may include some or all controls and gauges within the distributed computing environment 400.
  • the mathematical descriptions of the relationships can describe how change(s) to specific control(s) affect gauge(s), how specific control(s) should be changed based on measurement(s) from gauge(s), or combinations of the relationships (how a specific control should be changed based on a measurement from a specific gauge and how that change for the specific control affects other measurement(s) on other gauge(s)).
  • each of the N instruments may have mathematical descriptions of relationships with the other N-I instruments.
  • the models of the application environments or portions thereof can be changed automatically (i.e., without human intervention), dynamically and in real time or near real time to reflect current operating conditions within the distributed computing environment.
  • conditions change in the distributed computing environment e.g., a web server 433 provisioned, a database server 435 deprovisioned, etc.
  • instruments can be added or removed from a model of an application environment, mathematical descriptions of the relationships between the instruments may be updated or otherwise changed.
  • any or all of the components 432 to 437 within the application infrastructure can include instruments (i.e., controls and gauges) that are used to control, monitor, or both the components 432 to 437. Some of the instruments may reside within the appliance 450. Note that the components 432 to 437 include hardware, software, firmware, or any combination thereof. The instruments on components may be referred to as physical instruments because they correspond to individual identifiable components.
  • logical instruments may be used.
  • a logical instrument can be a representation corresponding a collection of physical components or physical instruments.
  • web servers 433 may be part of a web server farm.
  • the web server farm is an example of a logical component. Whether the web server farm includes one, four, eight or any other number of servers may not be of interest from the perspective of an application.
  • the average CPU utilization or processing rate (how many millions of instructions/second are being executed) for the web server farm may affect the application's behavior. Therefore, the logical instruments are typically at a higher level of abstraction (compared to physical instruments) and may correspond to a set of components rather than just one.
  • the logical instrument may be a representation of information from more than one type of physical or logical instruments.
  • one physical instrument may include a hard disk input/output ("I/O") rate
  • another physical instrument may include a CPU processing rate.
  • a logical instrument may measure the time lag between when a change in the CPU processing rate is followed by a change in the hard disk I/O rate.
  • the time-lag logical instrument is merely to illustrate and not intended to limit the present invention.
  • the number and types of instruments may vary widely depending on what instruments are available in components (when they were obtained) and what instruments the user of the system wishes to generate and use. After reading this specification, skilled artisans are capable of determining which and what types of instruments, whether physical or logical, to use.
  • the method can include running an application, such as the first application, on the distributed computing environment 400 (block 602). While the first application is running within the distributed computing environment 400, the first application may affect a set of instruments used with the distributed computing environment 400.
  • data can be received from instruments that control or monitor the components 432 to 437 via the management blades 530, and the data can be forwarded from* the management blades 530 to the control blade 510, where such data can be processed or stored on the disk 590.
  • control information can be sent from the control blade 510 to the components and to the disk 590. In other words, information regarding controls may or may not originate from the components.
  • the method can also include determining which instruments significantly affect or are significantly affected by the first application's behavior (block 622).
  • a deterministic, statistical, or manual technique or any combination thereof may be used to determine which instruments significantly affect or are significantly affected by the first application's behavior within the distributed computing environment 400 and the relationships between those instruments.
  • code may be inserted into the first application or onto each of the components to flag which instruments significantly affect or are significantly affected by the first application's behavior and capturing state information for such instruments.
  • the deterministic technique has an advantage in that the data collected reflects (1) actual instruments that significantly affect or are significantly affected by the first application's behavior and (2) state information from those instruments.
  • the deterministic method may be intrusive because extra instructions and data capture occur and slow down components used by the first application and other applications running within the distributed computing environment 400.
  • a deterministic approach may not reflect a realistic operation of the first application's behavior within the distributed computing environment 400. Still, the deterministic approach may be used without departing from the scope of the present invention.
  • a statistical technique can be used to determine which instruments significantly affected or are significantly affected by the first application's behavior. State information from instruments on the components 432 to 437 within the application infrastructure may be captured and stored on the disk 590 (via management blades 530 and control blade 510). Statistical predictions using regression, neural networks, or the like can be used to determine which instruments are probably affected when the first application is running within the distributed computing environment 400. A confidence level may be adjusted, which in turn, can affect the determination of which instruments are significant.
  • a person can examine the source code for the first application to determine which instruments are likely to significantly affect or be significantly affected by the first application as it runs on the distributed computing environment 400.
  • the human predictions may be based on using a person's experience. While this technique may be used within the scope of the present invention, such a technique may be prone to error. The ability to make the determination depends on the skill level of the person and the information used for making the determination. The person making the determination may be familiar with software programs but may not know the details of hardware components within the application infrastructure. Including instrument(s) that should not be included in a model of the first application environment, excluding instrument(s) that should be included in the model of the first application environment, or a combination thereof is more likely with human predictions compared to the deterministic or statistical predictions.
  • the method can further include, for each instrument identified as being significant, determining mathematical descriptions for the relationships between such instruments (block 642). Statistical or other analysis can be performed to generate mathematical descriptions of the relationships between the instruments.
  • N instruments may be determined to significantly affect or be significantly affected by the first application's behavior.
  • Each of the N instruments may have up to N-I mathematical descriptions of relationships with the other instruments.
  • the statistical predictions and analysis for determining the mathematical descriptions of the relationships can be performed on the control blade 510 or on another computer (not shown) so as to not significantly disturb the operation of any application running within the distributed computing environment 400.
  • the mathematical descriptions can include a quantification of how changes in the control(s) affect measurement(s) on the gauge(s), how control(s) should be changed based on measurement(s) from the gauge(s), and the like.
  • a model of the first application environment for the first application has been generated.
  • the model includes instruments determined to significantly affect or be significantly affected by the first application's behavior and mathematical descriptions of the relationships between the instruments.
  • the method can be repeated for other applications, such as a second application that is different from the first application.
  • the model of an application may only include the instruments significantly affected by that application and the mathematical descriptions of the relationships between the instruments when using that application.
  • the embodiment illustrated in FIG. 3 includes representations of a model 202 of a first application environment for the first application and a model 204 of a second application environment for the second application.
  • instruments at the applications tier 160 can include availability 2622, load 2624, response time 2626, and transaction rate 2628.
  • Instruments at the software infrastructure tier 140 include the number of provisioned web servers 133 within a web server farm 2422, the number of provisioned database servers 135 within a database server farm 2424, the number of provisioned application servers 134 within an application server farm 2426;
  • instruments at the systems tier 120 include a disk I/O rate 2222, available bandwidth 2223, memory utilization 2224, disk utilization 2225, user connections 2226, and CPU utilization 2227;
  • instruments at the network tier 115 include port availability 2122, ingress I/O rate 2124, and total I/O rate 2126.
  • instruments at the applications tier 160 can include availability 2642, load 2644, response time 2646, and transaction rate 2648; instruments at the software infrastructure tier 140 include the number of provisioned web servers 133 within a web server farm 2442, the number of provisioned database servers 135 within a database server farm 2444, the number of provisioned application servers 134 within an application server farm 2446; instruments at the systems tier 120 include a disk I/O rate 2242, available bandwidth 2243, memory utilization 2244, disk utilization 2245, system latency 2246, and CPU utilization 2247; and instruments at the network tier 115 include port availability 2142, egress I/O rate 2144, and total I/O rate 2146.
  • the number and type of instruments within the first and second models 202 and 204 may be the same or different.
  • the instruments 2422 and 2442 may be the same instrument and correspond to the number of provisioned web server computers 133 within the web server farm that is shared by the first and second application environments for the first and second applications.
  • the model 202 includes user connections 2226, but this is does not appear in the model 204, and the model 204 includes system latency 2246, but this is does not appear in the model 202.
  • Double-headed arrows illustrate relationships between the instruments in FIG. 3.
  • Each of the instruments within the models 202 and 204 of the first and second application environments, respectively may be directly or indirectly related to at least one other instrument within the model.
  • availability 2622 may be directly related to disk I/O rate 2222 and indirectly related to available bandwidth 2223 (via disk I/O rate 2222) and CPU utilization 2227 (via disk I/O rate 2222 and available bandwidth 2223).
  • the first and second models 202 and 204 may or may not include one or more instruments between the first and second application environments. In the embodiment illustrated in FIG.
  • an instrument 2630 lies between models 202 and 204 at the applications tier 160
  • an instrument 2430 lies between models 202 and 204 at the software infrastructure tier 140
  • an instrument 2130 lies between models 202 and 204 at the network tier 115.
  • a similar instrument could lie between models at the systems tier 120 but is not shown.
  • additional instruments between the first and second application environments at the different tiers may be used.
  • more or fewer tiers may be present within the distributed computing environment 400.
  • the instruments between the first and second application environments can be used to monitor activity between the applications or to control priorities or other activities between or relative to each other.
  • nearly any other number of applications may be running within the distributed computing environment 400.
  • the method is described with respect to two applications to illustrate how the first and second models 202 and 204 can be used when the first and second applications are running within the distributed computing environment 400. After reading this specification, skilled artisans will understand how to implement the method when many more applications are simultaneously running within the distributed computing environment 400.
  • the first application may be a store front application for an organization's web site
  • the second application may be an inventory management application used by the organization.
  • the inventory management application may be accessed by the store front application during order placement.
  • the inventory management application may also be accessed by client computers (not shown) within the organization to generate internal reports or to perform other internally-focused functions within the organization.
  • the models of the application environments can be used to better achieve the business objectives of the organization when running the different applications within the distributed computing environment 400.
  • the business objectives e.g., policies
  • the business objectives can be articulated into code as rules (e.g., assigning services levels to different applications or portions of applications) corresponding to the business objectives that may reside on the disk 590 and may be implemented by the control blade 510, one or more of the management blades 530, one or more software agents on components 432 to 437.
  • the organization may determine that the store front application has a higher priority than the inventory management application.
  • the store front application will be assigned a higher level of priority.
  • the inventory management application
  • the inventory management application may operate using rules that allow requests from the store front application to be assigned a higher service level compared to requests for information from client computers within the organization.
  • the concepts can also be extended to different levels of abstraction.
  • the concepts may be extended to any portion of an application, such as a transaction type within the application.
  • the models of the transaction types may also include information regarding (1) instruments that significantly affect or are significantly affected by the transaction type and (2) the mathematical descriptions of the relationships between the instruments.
  • portions of applications other than just transaction types or the whole application may be modeled.
  • the first transaction type of the store front application may be used to generate and send a page in response to an information request (information request transaction type), and the second transaction type of the store front application may be used to place an order at a web site (order placement transaction type).
  • the organization may determine that the order placement transaction type is assigned a higher service level compared to the information request transaction type. If an operator on a client computer (not shown) on the Internet 431 is placing an order and another operator on a different client computer (not shown) on the Internet 431 is requesting a web page, the order placement will be performed at a higher level of priority. More specifically, a page generator may receive information requests for pages from client computers (not shown) and requests for pages during order placement. The page generator may operate using rules that allow requests from the order placement transactions to be processed faster and at a higher priority than information requests from client computers.
  • the instruments and their relationships based on transaction types may be incorporated within the model of the store front application or may be separate standalone models of different transactions types. Again, many levels of abstraction can be used and are not limited only to applications and transaction types.
  • the models can be used for other types of applications that run within a distributed computing environment and are not limited to Internet commerce between retailers and consumers.
  • a bank may have a first application (represented by model 202) for depositing funds with the nearest Federal Reserve Bank and a second application (represented by model 204) that calculates interest on the bank's interest bearing accounts for its customers.
  • the funds In order for the bank to get interest on loans made by the Federal Reserve Bank to other banks or institutions, the funds must be received by the Federal Reserve Bank by 4 P.M. each business day.
  • the first application may operate at a relatively low priority, and may be lower than the second application. However, between 3 P.M. and 4 P.M.
  • the priority of the first application may be higher than any other business-related applications, such as the second application. Therefore, appropriate logic (using the rules) can be implemented by the control blade 510 to ensure that the first application is given the proper priority, which will be higher than the second application between 3 P.M. and 4 P.M. each day.
  • the business objectives can vary between organizations.
  • the articulation of the business objectives in code as rules is relatively straightforward.
  • An operator at the console 580 may input the rules that are stored onto the disk 590.
  • the control blade 510 of the appliance 450 uses the rules and models of the application environments to optimize operation of the distributed computing environment 400 to best meet the business objectives of the organization.
  • the action can be affected by changing the values for the controls for the instruments for the application environment.
  • the changes may be made in response to the application running, to gauges for the application infrastructure, or both.
  • the controls may send corresponding communication(s) to the components or to software agents on the components 432 to 437 to affect the changes.
  • the systems and methods described herein can be used to manage and control applications or portions thereof using an application infrastructure in a more coherent manner.
  • Applications or portions thereof can be represented by models of application environments that extend across any or all tiers within the distributed computing environment 400.
  • the collection of instruments and the relationships between them for each application can be thought of as an "application container" (represented by model 202 or 204) that corresponds to the application as it runs within the distributed computing environment 400.
  • each of the applications can be managed and controlled as a set of instruments instead of focusing on one or more components within a single tier of or trying to manage and control the entire distributed computing environment 400 as a single unit.
  • the methods and systems can also be used to detect problems that extend across tiers that may otherwise go unsolved.
  • the problem with the ATMs not dispensing cash may be discovered and resolved even if each component in isolation has no problem.
  • the resolution may occur because the appliance 450 knows the interrelationships between the instruments that are used when the application (dispensing cash in response to a request at the ATM terminal) is running within the distributed computing environment 400, and therefore, the appliance 450 changes the controls in response to the readings on the gauges.
  • the methods for determining which instruments are significant can at least form part of a basis of information that can be presented by a user interface. Attention is now directed to methods of creating and using the user interface.
  • a challenge for designing the user interface is to provide a simple, easily understood overview of a distributed computing environment or any portion of it.
  • the overview can be an object-oriented metaphor that can include instruments, such as logical or physical gauges and controls, and other information that is similar to a dashboard of an automobile.
  • the user interface can also allow for input corresponding to the desires of any specific user to generate any one or more customized displays, which are referred to in this specification as personal views.
  • a user can start from a default display and modify from it or create a personal view from scratch.
  • the user interface is a browser-based graphical user interface ("GUI") to allow for ease of use without having to provide extensive training to users on the operation of the user interface.
  • GUI graphical user interface
  • Most users are familiar with browser-based GUIs, and their use (e.g., use of pull-down menus, clicking on icons, etc.) is reasonably intuitive and requires little, if any, training.
  • other types of user interfaces can be implemented.
  • the user interface can be used to generate displays on the console 580 or other computer.
  • the code for the user interface may reside within the disk 590, the appliance 450 (e.g., on the control blade 510), the console 580, or another computer (not shown).
  • Data used to generate the displays may come from the disk 590 (e.g., templates for default or personal views, preferences, display configuration information, etc.), the appliance 450 (e.g., readings from physical or logical instruments on the management blades 550), software agents on managed components 432 to 437 (e.g., readings from physical or logical instruments on physical or logical components connected to network 412), or any combination thereof.
  • the appliance 450 e.g., readings from physical or logical instruments on the management blades 550
  • software agents on managed components 432 to 437 e.g., readings from physical or logical instruments on physical or logical components connected to network 412
  • user interface design considerations and use of the user interface are described with respect to screen shots for displays in FIGs. 7, 8, and 10 to 17.
  • Various aspects of the user interface will be described with respect to the first display having each of the aspects.
  • many items, such as applications, resources, and services are illustrated as representations.
  • Each of the representations can include text, an icon, other metaphor, or any combination thereof.
  • the screen shots include specific information, after reading this specification, skilled artisans will understand that many different embodiments are possible. Therefore, the screen shots are to be construed as illustrative and do not limit the present invention.
  • FIG. 7 includes a display 700 for a distributed computing environment, such as a data center.
  • the display 700 includes a navigation section 722, a main section 740, and a right-hand section 762.
  • the navigation section 722 allows a user to quickly navigate through portions of the data center to obtain information that the user desires.
  • items with in the data center include applications, physical resources, software resources, network services, and personal views.
  • a user can expand any of the entries and drill down to the level of information the user desires.
  • the navigation section 722 can always be displayed. In another embodiment, the navigation section 722 is optional, and a user can close the navigation section 722 if the user desires.
  • the main section 740 includes information similar to the navigation section 722. Portions within the main section 740 include applications 742, physical resources 744, and services used by the data center 746. "Applications” 742 include “Default application for Data Center,” “OFBiz e-Commerce,” “OFBiz eCatalog,” and “VIEO Management.” Note that this same information could also be obtained by expanding "Applications" within the navigation section 722.
  • the physical resources 744 can include "Active Resources,” such as “Database,” “dev2043,” and “vl20srv3.” Although none are illustrated in FIG. 7, idle resources may also be displayed within the physical resources 744.
  • the services used by the data center 746 can include presentation services, business logic services, and database services. As illustrated in the display 700, presentation services can include “Apache Overview on Web Server,” business logic services can include “admin on vl20srv3,” “WebLogic Overview on WebLogic FO,” and database services can include “ofbiz on e220srv2.”
  • the left-hand section 762 includes icons for a user to cancel learning and to display learning properties.
  • the left-hand section 762 also includes information regarding a learning sequence that is currently in progress. Information can include when the learning sequence began, predicted completion time, and percentage of completion done (illustrated using a graphical indicator). Other information within the left-hand section 762 can include learning accuracy as displayed using charts and other statistics related to accuracy.
  • the left-hand section 762 can also include the number of data points collected and the number of expected data points.
  • the left-hand section 762 can include a learning status that may be updated and include statistics and a graphical indicator related to number of steps used for updating.
  • FIG. 8 illustrates a display 800 that includes information from one of the applications running within the distributed computing environment.
  • the display 800 includes information regarding "OFBiz eCatalog" within the main section 840.
  • Perfo ⁇ nance indicators of the application appear in the left-hand portion 842 of the main section 840.
  • Performance indicators will be shown for nearly any part of the data center, including physical resources, software resources, network services, and the like. The actual performance indicators typically depend on the part of the distributed computing environment being examined.
  • performance indicators for an application include average response time, request failure rate, request load, and response throughput.
  • performance indicators may be coded into the user interface (i.e., user cannot change selection of the performance indicators) or may allow input from the user to change the performance indicators for any or all applications displayed using the user interface.
  • the actual performance indictor selected to be displayed should be the more important logical or physical gauges for the application and the number should not be so high as to make observations of the performance indicators difficult or too time consuming to understand.
  • a user can examine all instruments on "OFBiz eCatalog" by selecting the tab near the top of the left- hand portion 842. Such information allows a user to investigate specific instruments (e.g., controls, gauges, or both at a physical or logical level) to allow the user to drill down to whatever level of information that the user desires. In one embodiment, the user can drill down to a specific physical instrument for a specific physical component.
  • specific instruments e.g., controls, gauges, or both at a physical or logical level
  • the right-hand portion 844 within the main section 840 includes transaction types and physical and logical components (e.g., physical resources, software resources, network services, etc.) used by "OFBiz eCatalog.”
  • Some exemplary transaction types can include "Catalog EditCategory,” "Catalog
  • Some exemplary physical resources used by "OFBiz eCatalog” can include “Database,” “Web Server,” and “WebLogic BO.”
  • Some exemplary software resources used by “OFBiz eCatalog” can include “Apache Overview on Web Server” and “ofbiz on e220srv2.”
  • a network service used by "OFBiz eCatalog” can include “Apache -> WL BO.” Note that these examples are merely to illustrate and are not meant to limit the present invention. After reading this specification skilled artisans will understand what information that the organization or individuals within the organization desire to see when displaying information regarding any one or more applications.
  • FIG. 9 includes a process flow diagram that illustrates one exemplary method that can be used in generating the display 800.
  • the method will be described more generically than its use for generating the display 800 because portions may be applicable to displays of other portions of the distributed computing environment.
  • the method can include accessing performance indicators for a portion of the distributed computing environment (block 902 in FIG. 5). The selection of performance indicators has been previously described. In one embodiment, the list of performance indicators may be within a memory within the appliance 450, console 580, the disk 590, or other storage location.
  • the user interface will display the physical or logical gauges that correspond to performance indicators for the application being displayed. For other applications running within the distributed computing environment or other portions of the distributed computing environment (e.g., physical resources, software resources, network services, etc.), the methodology is substantially identical.
  • the method can also include determining which components significantly affect the performance indicators (block 922).
  • the determining may be made using one or more of the techniques as previously described.
  • a conventional correlation engine can use regression or other similar method to make the determination.
  • Each of the components can be segregated into which type of component it is, such as a physical resource, software resource, network service, or the like.
  • the data that may be used by the correlation engine may be generated using the distributed computing environment 400 during its normal mode (running applications) or during a learning mode.
  • Each of the performance indicators may be associated with any number and different components. For example, referring only to physical resources, "Average Response Time on OFBiz eCatalog” may be significantly affected by “Database,” “Web Server,” and “WebLogic FO;” and “Request Fault Rate on OFBiz eCatalog may be significantly affected by “Webserver” and “WebLogic FO,” and not “Database.” Only a union of the components may be displayed. Therefore, the union for this specific example includes
  • the method can include displaying a representation of the components (block 942).
  • the representations of the components are illustrated as icons and text within the physical resources, software resources, and network services within the left-hand section 842 of the display 800.
  • the method can be implemented so that the user interface provides information to the user via the display 800 in real time or near real time as the distributed computing environment dynamically changes.
  • a first set of data can be collected from instruments within the distributed computing environment.
  • a first set of components may be determined to significantly affect the performance indicators for the application at the first time.
  • a second set of data can be collected from instruments within the distributed computing environment.
  • a second set of components may be determined to significantly affect the performance indicators for the application at the second time.
  • the second set may have the same, more, fewer, or different components compared to the first set because the distributed computing environment is dynamic and can change at a relatively high frequency.
  • the user interface can be used to automatically reflect the changes in the distributed computing environment.
  • servers may be provisioned or deprovisioned as the application runs within the distributed computing environment.
  • the display 800 can be updated in real time or near real time to reflect current conditions within the distributed computing environment. For example, if the database server 435 is deprovisioned and an application server 434 is provisioned and used by the application, the database server 435 (as shown in the display 800) will be removed from the physical resources, and the application server (representation not shown in the display 800) will be added to the physical resources. Similar actions would be seen for software resources and network services within the left-hand section 842 of the display 800.
  • Transaction types are similar to applications with respect to performance indicators and components.
  • a display for a transaction type may be substantially the same as the one used for applications (e.g., display 800) except that transaction types (as seen in the left-hand section) would not be displayed.
  • FIG. 10 illustrates a display 1000 that includes a view of information regarding one of the physical resources.
  • the main section 1040 includes portions 1042, 1044, and 1046.
  • Portion 1042 includes performance indicators for "WebLogic FO,” such as availability, load, computing utilization, disk input/output rate ("I/O"), memory utilization, and network I/O. Similar to the display 800, a user can select to see all instruments that are on
  • Portion 1042 includes “Hosts on WebLogic FO Tier.” In this specific embodiment, the hosts include “lx50srv2" and “vl20srvl.” Portion 1046 includes “Applications Using WebLogic FO Tier,” which in the display 1000 includes “OFB iz eCommerce.”
  • FIG. 11 illustrates a display 1100 that includes information regarding one of the servers within the WebLogic FO tier.
  • "WebLogic FO” has been expanded and "lx50srv2" (a server within WebLogic FO) has been selected.
  • Information regarding "lx50srv2" is displayed within the main section 1140.
  • the main section 1140 includes portions 1142, 1144, 1146, and 1148.
  • Portion 1142 includes performance indicators for "lx50srv2.” The performance indicators include availability, load, computing utilization, disk I/O, memory utilization, and network I/O.
  • Portion 1144 includes specification information, such as network identification, CPU, physical memory, total hard disk size, and operating system information.
  • Portion 1146 includes “Software Services on lx50srv2," and portion 1148 includes “Applications Using lx50srv2.”
  • the display 1100 includes an icon that allows the user to reboot lx50srv2 from the display panel (e.g., at console 580).
  • FIG. 12 illustrates display 1200 that includes information regarding one of the network services.
  • the main section 1242 includes controls and gauges.
  • the controls include network stream connection throttle, network stream packet throttle, network stream priority, and network stream latency.
  • the controls are illustrated with graphic indicators and bar-shaped icons.
  • the bar-shaped icons within the controls are used to adjust the settings on the controls by allowing a user to click-and-drag the bar-shaped icons.
  • Minimum, maximum, and current settings are displayed with each of the controls.
  • Gauges within main section 1240 include network stream connection rate, network stream connections discarded, network stream packet discard rate, network stream packet classification rate, network stream priority classification rate, and network stream latency classification rate.
  • the user interface has great flexibility and can create one or more personal views to allow the user to see what the user desires. Nearly any collection of information described with respect to the displays 800 and 1000 to 1200 may be assembled into a personal view.
  • FIGs. 13 to 17 illustrate processes for editing personal views.
  • FIG. 13 includes a display 1300 that illustrates how an instrument can be added to a personal view.
  • the display 1300 is similar to the display 800 previously described.
  • "Average Response Time on OFB iz eCatalog” 1342 is to be added to a personal view. A user right-clicks over the gauge, at which point, pull-down menu 1344 appears. "Add to Personal View” and "Default Personal View” are selected. "Average Response Time on OFBiz eCatalog” 1342 is now one of the instruments that will be displayed within the default personal view.
  • FIG. 14 includes a display 1400 that illustrates the default personal view.
  • the default personal view can be selected by expanding "Personal Views" and selecting "Default Personal View” within the navigation section 722.
  • the main section 1440 of the display includes a left-hand portion 1442, which is the same as the left-hand portion 842 of the display 800, and a right-hand portion 1444, which is the same as the left-hand portion 1042 of the display 1000.
  • "Average Response Time on OFBiz eCatalog" 1342 which was added from the display 1300, can be seen in the left-hand portion 1442 of the main section 1440 in the display 1400.
  • FIGs. 15 to 17 include displays 1500, 1600, and 1700 that illustrates that a personal view can be manipulated, as a user desires.
  • the display 1500 includes a main section 1540 that includes a left-hand portion 1542 where "Average Response Time on OFBiz eCatalog" 1342 has been enlarged.
  • the other gauges illustrated within the left-hand portion 1442 of display 1400 still exist but are not currently part of the display 1500. Referring to FIG.
  • the user interface as described herein has many benefits.
  • the user interface can generate a "dashboard" of displays, wherein each display effectively presents an overview of a portion of a distributed computing environment.
  • the displays generated by the user interface can provide information that changes dynamically and in real time or near real time to reflect changes in the distributed computing environment as the distributed computing environment adapts to applications running within it.
  • a user is able to examine or even explore the capabilities of the physical or logical components within the distributed computing environment and to give the user the ability to drill down to whatever level of detail the user desires.
  • the single display can effectively provide an easily understood picture of the dynamic infrastructure used to support an application or a portion thereof (e.g. a transaction type) that is dynamically updated.
  • FIGs. 7, 8, and 10 to 17 include many details and examples of items that may or may not appear within each of the displays or portions thereof. Therefore, the details and examples within each of the displays are to be construed as illustrating some embodiments and not to limit the present invention. After reading this specification, skilled artisans will appreciate that many other embodiments are possible; to list every conceivable embodiment would be nearly impossible.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Biology (AREA)
  • Quality & Reliability (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Human Computer Interaction (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Une application ou une partie d'application peut être considérée comme un contenant renfermant un ensemble d'instruments comportant des descriptions mathématiques des relations existant entre les instruments et d'autres parties de l'infrastructure de l'application. L'ensemble d'instruments peut comprendre uniquement les instruments déterminés comme affectant significativement une application ou une partie d'application ou bien comme étant significativement affectés par une application ou une partie de cette dernière qui est à l'oeuvre dans un environnement informatique distribué. Des modèles peuvent être générés pour comprendre les instruments qui affectent significativement l'application ou une partie de cette dernière ou qui sont significativement affectés par une application ou une partie de cette dernière, ainsi que les descriptions mathématiques des relations existant entre ces mêmes instruments. Dans une forme de réalisation, une interface utilisateur peut afficher des informations appartenant à une ou plusieurs applications et parties d'application (par exemple des types de transaction). Dans une forme de réalisation particulière, l'affichage peut être en partie déterminé sur la base de la détermination des constituants qui sont significatifs relativement à un indicateur d'efficacité.
PCT/US2005/023173 2004-07-12 2005-06-29 Procedes et systemes de generation de modeles d'environnements d'application pour des applications et des parties d'applications, interfaces utilisateur destinees a etre utilisees avec ces derniers WO2006017027A2 (fr)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US10/889,569 US20060036726A1 (en) 2004-07-12 2004-07-12 User interface for a distributed computing environment and method of using the same
US10/889,570 2004-07-12
US10/889,570 US20060009954A1 (en) 2004-07-12 2004-07-12 Methods and systems for generating models of application environments for applications and portions thereof
US10/889,569 2004-07-12

Publications (2)

Publication Number Publication Date
WO2006017027A2 true WO2006017027A2 (fr) 2006-02-16
WO2006017027A8 WO2006017027A8 (fr) 2006-04-20

Family

ID=35709064

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2005/023173 WO2006017027A2 (fr) 2004-07-12 2005-06-29 Procedes et systemes de generation de modeles d'environnements d'application pour des applications et des parties d'applications, interfaces utilisateur destinees a etre utilisees avec ces derniers

Country Status (1)

Country Link
WO (1) WO2006017027A2 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008098631A2 (fr) * 2007-02-13 2008-08-21 International Business Machines Corporation Systeme et procede de diagnostic

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
No Search *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008098631A2 (fr) * 2007-02-13 2008-08-21 International Business Machines Corporation Systeme et procede de diagnostic
WO2008098631A3 (fr) * 2007-02-13 2008-10-09 Ibm Systeme et procede de diagnostic
US8655623B2 (en) 2007-02-13 2014-02-18 International Business Machines Corporation Diagnostic system and method

Also Published As

Publication number Publication date
WO2006017027A8 (fr) 2006-04-20

Similar Documents

Publication Publication Date Title
US6263382B1 (en) Sizer for interactive computer system configuration
US8751415B2 (en) Visualization for resource capacity management
US6192470B1 (en) Configuration sizer for selecting system of computer components based on price/performance normalization
US10373094B2 (en) Automated model based root cause analysis
US9246773B2 (en) System, method, and graphical user interface for application topology mapping in hosted computing environments
US7526542B2 (en) Methods and apparatus for information processing and display for network management
US7415671B2 (en) Interactive hierarchical status display
US9898534B2 (en) Automatically adapting a user interface
US7996820B2 (en) Determining proportionate use of system resources by applications executing in a shared hosting environment
US20060036726A1 (en) User interface for a distributed computing environment and method of using the same
US20080263401A1 (en) Computer application performance optimization system
US7873729B2 (en) Server scanning system and method
US20050066027A1 (en) Method of displaying events
US10680926B2 (en) Displaying adaptive content in heterogeneous performance monitoring and troubleshooting environments
US20070220203A1 (en) Management method for virtualized storage view
WO2015016989A1 (fr) Contrôle de performance d'applications transactionnelles dans des environnements informatiques hébergés
WO2008115760A1 (fr) Système et procédés d'authentification de dispositif gérée par un client
BRPI0620640A2 (pt) método e aparelho para coleta de dados para caracterização de cargas de trabalho de sessão de http
US8341464B2 (en) Diagnostic dashboard for web pages
CN107924337A (zh) 分布式存储系统中的性能监测
US11615363B2 (en) Digital chat conversation and virtual agent analytics
US20130019253A1 (en) Automatic Discovery of Application Infrastructure
US7478107B1 (en) Methods and apparatus facilitating management of a SAN
WO2006017027A2 (fr) Procedes et systemes de generation de modeles d'environnements d'application pour des applications et des parties d'applications, interfaces utilisateur destinees a etre utilisees avec ces derniers
CN113132134A (zh) 拓扑展示方法及装置

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

D17 Declaration under article 17(2)a
121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase in:

Ref country code: DE

WWW Wipo information: withdrawn in national office

Country of ref document: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 69(1) EPC. EPO FORM 1205A DATED 29.03.2007.

122 Ep: pct application non-entry in european phase

Ref document number: 05768758

Country of ref document: EP

Kind code of ref document: A2