ELECTRICAL EQUIPMENT INFRASTRUCTURE SELECTION SYSTEM

Techniques are described for a computing device to receive from a user, a selection of EEI drawn from a list of EEI. A method includes (a) receiving a relative selection criterion from the user, the relative selection criterion including a target value for a first feature of the EEI and a direction of comparison; (b) filtering out, from the list, EEI having values for the first feature that are outside the direction of comparison from the target value; (c) sorting remaining EEI from the list based on closeness of the first feature to the target value, yielding a sorted order; (d) displaying the remaining EEI in the sorted order on a display screen; and (e) receiving a selection of EEI from the displayed EEI from the user via a user interface device. A system, apparatus, and computer program product for performing this method and similar methods are also described.

BACKGROUND

Web applications configured to display new electrical equipment infrastructure (EEI) to web application users (hereinafter “users”) may allow those users to select particular EEI items for purchase. For example, the web application may display various servers, power supply units, and other EEI, and a user may select a particular server as well as a particular power supply unit for that server.

SUMMARY

However, automatically determining which EEI to display to the user, and in what order to display those items, such that the display is most helpful to the user may present a technical obstacle. For example, a user may not know that a particular item of EEI is not compatible with another previously selected EEI item. As another example, although a user may be able to enter a filtering or sorting criterion to make the list of available EEI items more readable, existing systems may not be able to provide the ability to enter enough filtering and sorting criteria to be used in conjunction in order to be helpful.

For example, suppose that a user desires to configure a new enterprise server system including a rack, a server, and a power supply. If the user selects the server device first, he may be unaware that some of the available racks are not compatible with that server because they are the wrong width. As another possibility, the user may not be aware that certain power supplies are not compatible with the selected server because their power output capacities are too small. Even if the user does know the maximum power usage of the server, the user may not be able to easily select power supplies that have an optimal power delivery capacity. Thus, for example, although a server may have a maximum power usage of 1000 Watts (W), operating a power supply that is rated at 3000 W to power a server with a maximum power draw of only 1000 W is not efficient. Rather, that server should be paired with a power supply having a capacity of at least 1000 W while also staying as close to 1000 W as possible.

Thus, it would be desirable for a web application to include a configuration tool that allows a user to configure EEI in a flexible manner using a flexible set of sorting and filtering tools. In some embodiments, a configuration tool includes a relative selection criterion that allows a user to enter a target value for a feature, which allows the tool to filter out EEI items that do not meet the target criterion and to also sort the remaining items of EEI based on closeness to the target value for the feature. For example, if the user enters a target value of at least 1000 W, then the tool would filter out power supplies whose maximum supply capacity is less than 1000 W but also display power supplies whose capacity is exactly 1000 W first, followed by those slightly above (e.g., 1100 W), followed by those whose supply capacities are even higher (e.g., 2000 W). In some embodiments, the tool may automatically filter out items of EEI that are not compatible with previous selections based on a database of compatibility criteria. In some embodiments, the tool may provide the option to the user to enter several different criteria of different types.

In one embodiment, a computer program product is described. The computer program product includes a non-transitory computer-readable storage medium storing a set of instructions, which, when executed by a computing device, cause the computing device to receive, from a user, a selection of Electrical Equipment Infrastructure (EEI) drawn from a list of EEI, by: (1) receiving a relative selection criterion from the user, the relative selection criterion including a target value for a first feature of the EEI and a direction of comparison; (2) filtering out, from the list, EEI having values for the first feature that are outside the direction of comparison from the target value; (3) sorting remaining EEI from the list based on closeness of the first feature to the target value, yielding a sorted order; (4) displaying the remaining EEI in the sorted order on a display screen; and (5) receiving a selection of EEI from the displayed EEI from the user via a user interface device.

In one embodiment, a computer program product is described in which the set of instructions, when executed by the computing device, further cause the computing device to receive a soft selection criterion from the user, the soft selection criterion indicating a second feature that the user would prefer the EEI to have; and sorting the remaining EEI from the list includes multiplying a relative weight for each of the remaining EEI from the list by a soft weight for that EEI, the relative weight being based on the closeness of the value of the first feature for that EEI to the target value and the soft weight being based on whether that EEI includes the second feature. In one embodiment, a computer program product is described in which the soft weight is configured to have one of a fixed number of at least two discrete values: (a) a first value for EEI that includes the second feature, and (b) one or more second values for EEI that does not include the second feature, the first value being larger than each of the one or more second values.

In one embodiment, a computer program product is described in which sorting the remaining EEI from the list includes calculating a relative weight for each remaining EEI from the list, the relative weight being based on the closeness of the value of the first feature for that EEI to the target value. In one embodiment, a computer program product is described in which calculating the relative weight for each remaining EEI from the list includes dividing 1 by the sum of 1 and the absolute difference between the value of the first feature for that EEI and the target value (1/(1+|first feature value−target value|)). In one embodiment, a computer program product is described in which sorting the remaining EEI from the list further includes, for EEI having equal relative weights, sorting those EEI with equal relative weights using another sorting criterion. In one embodiment, a computer program product is described in which sorting those EEI using the other sorting criterion includes sorting based on at least one of price or popularity of those EEI among other users.

In one embodiment, a computer program product is described in which the set of instructions, when executed by the computing device, further cause the computing device to: receive a hard selection criterion from the user, the hard selection criterion including a cutoff value for a second feature of the EEI and a second direction of comparison; and prior to sorting, further filter out, from the list, EEI having values for the second feature that are outside the second direction of comparison from the cutoff value.

In one embodiment, a computer program product is described in which the set of instructions, when executed by the computing device, further cause the computing device to present a plurality of criterion selection options to the user in a predetermined order, the plurality of criterion selection options at least including a first option to choose the relative selection criterion. In one embodiment, a computer program product is described in which presenting the plurality of criterion selection options to the user in the predetermined order includes: presenting the user with a second option to choose a hard selection criterion as an initial criterion selection option presented to the user prior to all others of the plurality of criterion selection options, the hard selection criterion including a cutoff value for a second feature of the EEI and a second direction of comparison; and presenting the user with the first option to choose the relative selection criterion as a last criterion selection option presented to the user after all others of the plurality of criterion selection options. In one embodiment, a computer program product is described in which presenting the plurality of criterion selection options to the user in the predetermined order further includes presenting the user with a third option to choose a soft selection criterion as an intermediate criterion selection option presented to the user after the initial criterion selection option and before the last criterion selection option, the soft selection criterion indicating a third feature that the user would prefer the EEI to have.

In one embodiment, a method is described for a computing device to receive, from a user, a selection of EEI drawn from a list of EEL. The method includes (1) receiving a relative selection criterion from the user, the relative selection criterion including a target value for a first feature of the EEI and a direction of comparison; (2) filtering out, from the list, EEI having values for the first feature that are outside the direction of comparison from the target value; (3) sorting remaining EEI from the list based on closeness of the first feature to the target value, yielding a sorted order; (4) displaying the remaining EEI in the sorted order on a display screen; and (5) receiving a selection of EEI from the displayed EEI from the user via a user interface device.

In one embodiment, a method is described in which the method further comprises receiving a soft selection criterion from the user, the soft selection criterion indicating a second feature that the user would prefer the EEI to have; and sorting the remaining EEI from the list includes multiplying a relative weight for each of the remaining EEI from the list by a soft weight for that EEI, the relative weight being based on the closeness of the value of the first feature for that EEI to the target value and the soft weight being based on whether that EEI includes the second feature. In one embodiment, a method is described in which the soft weight is configured to have one of a fixed number of at least two discrete values: (a) a first value for EEI that includes the second feature, and (b) one or more second values for EEI that does not include the second feature, the first value being larger than each of the one or more second values.

In one embodiment, a method is described in which sorting the remaining EEI from the list includes calculating a relative weight for each remaining EEI from the list, the relative weight being based on the closeness of the value of the first feature for that EEI to the target value. In one embodiment, a method is described in which calculating the relative weight for each remaining EEI from the list includes dividing 1 by the sum of 1 and the absolute difference between the value of the first feature for that EEI and the target value (1/(1+|first feature value−target value|)).

In one embodiment, a computing system is described. The computing system includes (I) a display screen; (II) a user interface (UI) device; and (III) computing circuitry coupled to memory that is configured to: (1) receive a relative selection criterion from the user via the UI device, the relative selection criterion including a target value for a first feature of Electrical Equipment Infrastructure (EEI) drawn from a list of EEI and a direction of comparison; (2) filter out, from the list, EEI having values for the first feature that are outside the direction of comparison from the target value; (3) sort remaining EEI from the list based on closeness of the first feature to the target value, yielding a sorted order; (4) display the remaining EEI in the sorted order on the display screen; and (5) receive a selection of EEI from the displayed EEI from the user via the UI device.

In one embodiment, a computing system is described in which the computing circuitry coupled to the memory is further configured to receive a soft selection criterion from the user, the soft selection criterion indicating a second feature that the user would prefer the EEI to have; and sorting the remaining EEI from the list includes multiplying a relative weight for each of the remaining EEI from the list by a soft weight for that EEI, the relative weight being based on the closeness of the value of the first feature for that EEI to the target value and the soft weight being based on whether that EEI includes the second feature. In one embodiment, a computing system is described in which the soft weight is configured to have one of a fixed number of at least two discrete values: (a) a first value for EEI that includes the second feature, and (b) one or more second values for EEI that does not include the second feature, the first value being larger than each of the one or more second values.

In one embodiment, a computing system is described in which sorting the remaining EEI from the list includes calculating a relative weight for each remaining EEI from the list, the relative weight being based on the closeness of the value of the first feature for that EEI to the target value.

DETAILED DESCRIPTION

FIG.1depicts an example system30for use in connection with various embodiments. System30includes a client computing device34operated by a user32. Client computing device32connects to a server computing device36via network38. In some embodiments, instead of the user32interacting with client computing device34that is separate from the server computing device36, user32may instead interact with a computing device that combines the functions of the client computing device34the server computing device36without the intervening network38.

Both client computing device34and server computing device36may be any kind of computing device, such as, for example, a personal computer, laptop, workstation, server, enterprise server, tablet, smartphone, etc. Both client computing device34and server computing device36include processing circuitry40and memory50. In embodiments in which network38is used, client computing device34and server computing device36can also both include network interface circuitry42. In addition, client computing device34also includes user interface (UI) circuitry44for connecting to a UI input device46and a display device48. Client computing device34and server computing device36may also include various additional features as is well-known in the art, such as, for example, interconnection buses, etc.

Processing circuitry40may include any kind of processor or set of processors configured to perform operations, such as, for example, a microprocessor, a multi-core microprocessor, a digital signal processor, a system on a chip (SoC), a collection of electronic circuits, a similar kind of controller, or any combination of the above.

Network interface circuitry34may include one or more Ethernet cards, cellular modems, Fibre Channel (FC) adapters, InfiniBand adapters, wireless networking adapters (e.g., Wi-Fi), and/or other devices for connecting to a network38, such as, for example, a LAN, WAN, SAN, the Internet, a wireless communication network, a virtual network, a fabric of interconnected switches, etc.

Memory50may include any kind of digital system memory, such as, for example, random access memory (RAM). Memory50stores an operating system (OS, not depicted, e.g., a Linux, UNIX, Windows, MacOS, or similar operating system) and various drivers and other applications and software modules configured to execute on processing circuitry40.

UI circuitry44may include any circuitry needed to communicate with and connect to one or more user input devices46and display screens48. UI circuitry44may include, for example, a keyboard controller, a mouse controller, a touch controller, a serial bus port and controller, a universal serial bus (USB) port and controller, a wireless controller and antenna (e.g., Bluetooth), a graphics adapter and port, etc.

Display screen48may be any kind of display, including, for example, a CRT screen, LCD screen, LED screen, etc. Input device46may include a keyboard, keypad, mouse, trackpad, trackball, pointing stick, joystick, touchscreen (e.g., embedded within display screen48), microphone/voice controller, etc. In some embodiments, instead of being external to client computing device34, the input device46and/or display screen48may be embedded within the client computing device34(e.g., a cell phone or tablet with an embedded touchscreen).

Memory50of client computing device34stores a client interface module52, which is configured to execute on processing circuitry40of client computing device34to interface between the user32operating UI devices46,48and the server computing device36.

Memory50of server computing device36stores a selection module60, which is configured to execute on processing circuitry40of server computing device36to interface with user32via client interface module52to allow the user32to select an item54of electrical equipment infrastructure (EEI) from a set of available EEI items54(a),54(b)54(c),54(d), . . . .

In operation, selection module60causes client interface module52to display a relative selection criterion entry form76on display48. User32may then enter information into relative selection criterion entry form76to be sent to selection module60as relative selection criterion66. In an embodiment, relative selection criterion66includes a target value67and a direction68for a particular feature associated with the available EEI items54. For example, if the available EEI items54are power supplies and the particular feature is a power supply capacity, then the target value67may be a target power supply capacity (e.g., 1000 W) entered by the user32via input device46, and the direction68is larger, indicating that only power supplies with a power supply capacity greater than or equal to the target value67should be included within a list of EEI items54displayed to the user32, while power supplies with a power supply capacity less than the target value67should not be included.

Selection module60may store an EEI item identifier (ID)62,64for respective EEI items54. Initially, all EEI items54might be represented by non-removed EEI item IDs62(depicted as non-removed EEI item IDs62(1),62(2), . . . ,62(N)). Upon applying relative selection criterion66, IDs corresponding to EEI items54that are filtered out (e.g., power supplies that can only supply less than 1000 W) are removed, thereby become removed EEI item IDs64(depicted as removed EEI item IDs64(1),64(2), . . . ,64(M)), correspondingly reducing the number, N, of non-removed EEI item IDs62. Client interface module52is configured to display EEI descriptors86of the EEI items54identified by the non-removed EEI item IDs62. An EEI descriptor86includes information about a particular EEI item54, such as, for example, its name, specifications, and price.

Selection module60may also store an ordering98that determines in what order the EEI descriptors86of the EEI items54identified by the non-removed EEI item IDs62are depicted on the display48. Ordering98may be defined, at least in part, based on the relative selection criterion66, with non-removed EEI item IDs62having features closer to the target value67having a higher priority within ordering62than non-removed EEI item IDs62having features that are farther from the target value67. In some embodiments, selection module60may determine the ordering98by calculating a relative weight90for each non-removed EEI item ID62, the relative weight90being based on the closeness of the value of the feature for the corresponding EEI item54to the target value67. For example, if the feature is the power supply capacity and the target value is 1000 W, as in the example above, then the relative weight90for each non-removed EEI item ID62may be calculated based on closeness of the power supply capacity of the EEI item54identified by that non-removed EEI item ID62. In one embodiment, the calculation may include dividing 1 by the sum of 1 and the absolute difference between the value of the feature for that EEI item54and the target value67(i.e., 1/(1+|feature value−target value|)).

It should be understood that the list of removed EEI item IDs64may also include IDs of EEI items54that are of a completely different type than items under consideration. For example, EEI items54may include, for example, power supplies, racks, and servers. While the user32is looking at servers, IDs of EEI items54that are not servers (e.g., power supplies and racks) may be listed as removed EEI item IDs64.

In further operation, in some embodiments, selection module60causes client interface module52to display a hard selection criterion entry form84on display48. User32may then enter information into the hard selection criterion entry form80to be sent to selection module60as hard selection criterion70. In an embodiment, hard selection criterion70includes a cutoff value71and a direction72for a particular feature associated with the available EEI items54. In another embodiment, hard selection criterion70instead includes one or more exact match values73. For example, if the available EEI items54are servers and the particular feature is an amount of RAM, then the cutoff value71may be an amount of RAM (e.g., 4 GB) entered by the user32via input device46, and the direction72is larger, indicating that only servers with more than the cutoff value71of 4 GB of RAM should be included within a list of EEI items54displayed to the user32, while servers with less than the cutoff value71of 4 GB of RAM should not be included. As another example, if the available EEI items54are power supplies and the particular feature is a voltage, then the exact match value73may be a particular power supply voltage (e.g., 110 V) entered by the user32via input device46, indicating that only power supplies with a power supply voltage equal to the exact match value73of 110 V should be included within a list of EEI items54displayed to the user32, while power supplies with a power supply voltage other than (greater than or less than) the exact match value73of 110 V should not be included. Upon applying hard selection criterion70, IDs corresponding to EEI items54that are filtered out (e.g., servers having less than 4 GB of RAM) are removed, thereby becoming removed EEI item IDs64, correspondingly reducing the number, N, of non-removed EEI item IDs62.

In further operation, in some embodiments, selection module60causes client interface module52to display a soft selection criterion entry form80on display48. User32may then enter information into soft selection criterion entry form80to be sent to selection module60as soft selection criterion74. In an embodiment, soft selection criterion74includes a feature value75for a particular feature associated with the available EEI items54. For example, if the available EEI items54are power supplies and the particular feature is whether or not the power supply includes an uninterruptable power supply (UPS) feature, then the feature value75may be an affirmative value entered by the user32via the input device46, indicating that power supplies with a UPS feature should be prioritized within a list of EEI items54displayed to the user32, while power supplies without a UPS feature should be deprioritized. This prioritization may be accomplished by calculating a soft weight92for each non-removed EEI item ID62and multiplying that soft weight92by a relative weight90already calculated for that non-removed EEI item ID62based on the relative selection criterion66to yield an overall weight96. Calculating the soft weight92may include selectively assigning one of a fixed number of at least two discrete values: (a) a first (high) weight value94for EEI items54that affirmatively include the particular feature, and (b) one or more second values (e.g., a low weight value93) for EEI items54that do not include the particular feature, the first weight value94being larger than each of the one or more second values. Returning to the example of the UPS feature, power supplies that have the UPS feature may be assigned the first (high) weight value94(e.g., a value of 10), while power supplies that do not have the UPS feature may be assigned a second (low) weight value93(e.g., a value of 1). In a related example, power supplies that do not have the full UPS feature but do have a very short battery backup may instead be assigned an intermediate weight value (e.g., a value of 5). Ordering98may then be updated based on the overall weight96for each non-removed EEI item ID62, so that the highest priority EEI descriptor86(1) represents an EEI item54that has a first feature (e.g., power supply capacity) very close to the target value67and a second feature that matches the feature value75(e.g., affirmatively having a UPS feature), while the lowest priority EEI descriptors86represent EEI items54that has a first feature (e.g., power supply capacity) not close to the target value67and a second feature that does not match the feature value75(e.g., not having a UPS feature).

Memory50may also store various other data structures used by the OS, modules52,60and various other applications and drivers. In some embodiments, memory50may also include a persistent storage portion. Persistent storage portion of memory50may be made up of one or more persistent storage devices, such as, for example, magnetic disks, flash drives, solid-state storage drives, or other types of storage drives. Persistent storage portion of memory50is configured to store programs and data even while the computing device34,36is powered off. The OS, modules52,60and various other applications and drivers are typically stored in this persistent storage portion of memory50so that they may be loaded into a system portion of memory50upon a system restart or as needed. The OS, modules52,60and various other applications and drivers, when stored in non-transitory form either in the volatile or persistent portion of memory50, each form a computer program product. The processing circuitry40running one or more applications thus forms a specialized circuit constructed and arranged to carry out the various processes described herein.

FIG.2illustrates an example method100performed by a system30for receiving from a user32, a selection of EEI drawn from a list of EEI items54. It should be understood that any time a piece of software (e.g., OS, modules52,60, etc.) is described as performing a method, process, step, or function, what is meant is that a computing device (e.g., client computing device34or server computing device36) on which that piece of software is running performs the method, process, step, or function when executing that piece of software on its processing circuitry40. It should be understood that one or more of the steps or sub-steps of method100may be omitted in some embodiments. Similarly, in some embodiments, one or more steps or sub-steps may be combined together or performed in a different order. Dashed lines indicate that a step or sub-step is either optional or representative of alternate embodiments or use cases.

In optional step110, client interface module52receives a hard selection criterion70from a user32via a user input device46(e.g., in response to displaying a hard selection criterion entry form84on display48). At some point, client interface module52forwards the received hard selection criterion70to selection module60operating on server computing device36. In some embodiments, step110includes sub-step115, while in other embodiments, step110includes sub-step117. In sub-step115, receiving the hard selection criterion70includes receiving a cutoff value71(e.g., 4 GB) and a direction72of comparison (e.g., larger) for a particular feature (e.g., amount of RAM for a server). In sub-step117, receiving the hard selection criterion70includes receiving an exact match value73(e.g., 110 V) for a particular feature (e.g., power supply voltage for a power supply).

In optional step120, client interface module52receives a soft selection criterion74from a user32via a user input device46(e.g., in response to displaying a soft selection criterion entry form80on display48), the soft selection criterion74indicating a preferred feature that the user would prefer the EEI to have. At some point, client interface module52forwards the received soft selection criterion74to selection module60operating on server computing device36.

In step130, client interface module52receives a relative selection criterion66from a user32via a user input device46(e.g., in response to displaying a relative selection criterion entry form76on display48). The relative selection criterion66includes a target value67(e.g., 1000 W) for a feature (e.g., power supply capacity) of the EEI (e.g., a power supply) and a direction68of comparison (e.g., larger). Client interface module52also forwards the received relative selection criterion66to selection module60operating on server computing device36.

Then, in step140, selection module60performs filtering to determine the removed EEI item IDs64and the non-removed EEI item IDs62. Step140may include sub-step142. In sub-step142, selection module60evaluates the EEI items54against the relative selection criterion66. EEI items54having a feature (e.g., a power supply capacity) subject to the relative selection criterion66that exceeds (if the direction68is lower) or is less than (if the direction68is greater) the target value67(e.g., 1000 W) are removed, so the identifiers of those EEI items54are removed from the list of non-removed EEI item IDs62and added to the list of removed EEI item IDs64.

In some embodiments (i.e., when step110was performed), step140includes sub-step145(i.e., when sub-step115was performed) or sub-step147(i.e., when sub-step117was performed). In sub-steps145,147, selection module60evaluates the EEI items54against the hard selection criterion70. It should be understood that there may be more than one hard selection criterion70, in which case multiple filtering steps are performed. In sub-step145, EEI items54having a feature (e.g., an amount of RAM) subject to the hard selection criterion70that exceeds (if the direction72is lower) or is less than (if the direction72is greater) the cutoff value71(e.g., 4 GB) are removed, so the identifiers of those EEI items54are removed from the list of non-removed EEI item IDs62and added to the list of removed EEI item IDs64. In sub-step147, EEI items54having a feature (e.g., a power supply voltage) subject to the hard selection criterion70that do not equal the exact match value73(e.g., 110 V) are removed, so the identifiers of those EEI items54are removed from the list of non-removed EEI item IDs62and added to the list of removed EEI item IDs64.

Then, in step150, selection module60sorts the non-removed EEI item IDs62at least based on feature closeness to the target67of the relative selection criterion66. In some embodiments, step150may include one or more of sub-steps152,154,156.

In sub-step152(performed only if step120was performed), selection module60assigns a soft weight92to each of the non-removed EEI item IDs62based on the preferred feature (selected in step120). For example, in one embodiment, selection module60assigns by assigning, as the soft weight92, (a) a first value (e.g., high weight value94) for EEI items54that include the preferred feature, and (b) one or more second values (e.g., low weight value93) for EEI items54that do not include the preferred feature, the first value94being larger than each of the one or more second values93.

In sub-step154, selection module60assigns a relative weight90to each of the non-removed EEI item IDs62, the relative weight90being based on the closeness of the value of the feature from the relative selection criterion66(selected in step130) for the EEI item54corresponding to that non-removed EEI item ID62to the target value67. In one embodiment, this assignment may include calculating (1/(1+|feature value−target value|)). In other embodiments, other formulas may be used instead.

Then, in sub-step156(performed only if step120was performed), selection module60calculates the overall weight96for each of the non-removed EEI item IDs62by multiplying the relative weight90(calculated in sub-step154) by the soft weight92(calculated in sub-step152) for that non-removed EEI item ID62. In embodiments in which step152is omitted, the relative weight90may be used as the overall weight96. Once the overall weights96have been calculated, they may be sorted from high to low in order to yield the ordering98.

Then, in step160, client interface module52displays descriptions of the non-removed EEI item IDs62in the sorted order98on display screen48, in the form of EEI descriptors86. It should be understood that it is possible that all of the EEI descriptors86may not be visible on the display48at once, since the user32may operate input device46to scroll through the list of EEI descriptors86. In some embodiments, client interface module52may operate as a web page within a web browser operating on client computing device34in communication with selection module60operating as a web server on server computing device36.

Finally, in step170, selection module60receives a selection of an EEI item54from the user32via the user making a selection of one of the EEI descriptors86using the input device46, the selection being transmitted from client computing device34to server computing device36.

FIG.3illustrates an example method200performed by a system30for receiving from a user32, a selection of EEI drawn from a list of EEI items54. It should be understood that one or more of the steps or sub-steps of method200may be omitted in some embodiments. Similarly, in some embodiments, one or more steps or sub-steps may be combined together or performed in a different order. Dashed lines indicate that a step or sub-step is either optional or representative of alternate embodiments or use cases. It should be understood that method200is not intended to be inconsistent with method100. Rather, each of methods100,200covers several possible embodiments, some of which may be the same or at least overlap.

In optional step210, client interface module52displays a list of EEI descriptors86to the user32on display48. In some embodiments, the EEI descriptors86may initially represent all of the available EEI items54, even if they are of different types. For example, the initially displayed list of EEI descriptors86may represent EEI items54, some of which are servers, some of which are racks, and some of which are power supplies. In other embodiments, only EEI descriptors86representing the same class of EEI items54(e.g., only servers, only racks, or only power supplies) may be displayed together.

In optional step220, which may be performed in parallel with step210, selection module60may pre-filter (and possibly also pre-sort) the list of EEI descriptors86. This may be accomplished by performing a preliminary filtering operation to exclude certain EEI items54by assigning their identifiers as removed EEI item IDs64based on criteria obtained from a rules database as well as a previous selection of other EEI items54. For example, if a user32has already selected a particular server, then, as part of step220, selection module60may mark the identifiers of all other EEI items54that are also servers as removed EEI item IDs64. In addition, selection module60may also consult a compatibility database to exclude any other types of EEI items54that are incompatible with the selected particular server. For example, if the selected particular server has a width of 19 inches, selection module60may classify racks and power supplies with other widths (e.g., 10 inches, 23 inches, etc.) with removed EEI item IDs64. As another example, if the selected particular server has a power usage of 1500 W, selection module60may classify power supplies with power supply capacities below 1500 W with removed EEI item IDs64. In addition, in some embodiments, as part of step220, selection module60may pre-sort the non-removed EEI item IDs62based on an initial set of sorting criteria, such as, for example, price or popularity. In some embodiments, selection module60may pre-sort the non-removed EEI item IDs62based on a priority criterion. For example, EEI items54that are approaching their end of life may be given a higher priority. As another example, EEI items54for which there is surplus supply may also be given a higher priority.

Then, in step230, client interface module52presents a plurality of criterion selection options to the user32in a predetermined order, at least including a relative option (e.g., relative selection criterion entry form76) to select a relative selection criterion66. Step230at least includes sub-steps260and262. Step230also at least includes either sub-steps240,242,246,248) and/or sub-steps250,252,256,258.

In some embodiments, in sub-step240, client interface module52presents the user32with a hard option to choose a hard selection criterion70, such as by displaying hard selection criterion entry form84(e.g., received from selection module60operating as a web server) on display48. For example, client interface module52may prompt the user32to select a particular feature type (e.g., power supply voltage, power supply capacity, amount of RAM, server/rack/power supply width, etc.) and whether the hard selection criterion70should include a cutoff value71(having a direction72of comparison) or an exact match value73, also prompting the user32to enter the appropriate value(s)71,72,73. Then, in sub-step242, client interface module52receives input from the user32via the input device(s)46, which it sends to the selection module60. Then, in sub-step246, selection module60applies a filter based on the received hard selection criterion70to add additional removed EEI item IDs64(and correspondingly remove those from the list of non-removed EEI item IDs62); see, e.g., sub-steps145,147from method100. Then, in sub-step248, the client interface module52presents an updated list of EEI descriptors86based on the newly updated list of non-removed EEI item IDs62from the selection module60. In some embodiments, after sub-step248, operation may loop back to sub-step240to allow the user32to enter another hard selection criterion70, while in other embodiments, operation may instead advance to either sub-step250or sub-step260.

In some embodiments, in sub-step250, client interface module52presents the user32with a soft option to choose a soft selection criterion74, such as by displaying soft selection criterion entry form80(e.g., received from selection module60operating as a web server) on display48. For example, client interface module52may prompt the user32to select a particular feature type (e.g., whether a power supply has a UPS feature, whether a power supply has a particular number of outlets, whether an EEI item54is pre-integrated, etc.) and a preferred feature value75for that feature type (e.g., yes or no; a set of non-binary values with an order of preference, etc.). In some embodiments, client interface module52may also prompt the user32to input a low weight value93and a high weight value94(and one or more intermediate weight values in the case of non-binary values), although in other embodiments, these weight values93,94may be pre-assigned. Then, in sub-step252, client interface module52receives input from the user32via the input device(s)46, which it sends to the selection module60. Then, in sub-step256, selection module60performs sorting based on the received soft selection criterion74to the list of non-removed EEI item IDs62; see, e.g., sub-step152from method100. Then, in sub-step258, client interface module52presents an updated list of EEI descriptors86based on the newly updated ordering98from the selection module60. In some embodiments, after sub-step258, operation may loop back to sub-step250to allow the user32to enter another soft selection criterion74, while in other embodiments, operation may instead advance to sub-step260. It should be understood that if a plurality of soft selection criterion74are used (e.g., due to repetition of sub-steps250-258), multiple soft weights92may be generated for each of the non-removed EEI item IDs62.

In sub-step260, client interface module52presents the user32with a relative option to choose a relative selection criterion66, such as by displaying relative selection criterion entry form76(e.g., received from selection module60operating as a web server) on display48. For example, client interface module52may prompt the user32to select a particular feature type (e.g., power supply voltage, power supply capacity, amount of RAM, server/rack/power supply width, etc.), a target value67, and a direction68of comparison. Then, in sub-step262, client interface module52receives input from the user32via the input device(s)46, which it sends to the selection module60.

Then, in step270, selection module60applies a filter based on the received relative selection criterion66to add additional removed EEI item IDs64(and correspondingly remove those from the list of non-removed EEI item IDs62); see, e.g., sub-step142from method100.

Then, in step280, selection module60performs sorting based at least on the received relative selection criterion66to the list of non-removed EEI item IDs62to yield an ordering98. In some embodiments, step280may include sub-steps282,284,286.

In sub-step282, selection module60generates relative weights90for the list of non-removed EEI item IDs62(see, e.g., sub-step154from method100). Then, in sub-step284(performed only if sub-steps250-258were performed), selection module60calculates the overall weight96for each of the non-removed EEI item IDs62by multiplying the relative weight90(calculated in sub-step282) by the soft weight(s)92(calculated in sub-step256) for that non-removed EEI item ID62. In embodiments in which sub-steps250-258are omitted, the relative weight90may be used as the overall weight96. Once the overall weights96have been calculated, they may be sorted from high to low in order to yield the ordering98. In some embodiments, in sub-step286, if two non-removed EEI item IDs62have equal overall weight96, then another sorting criterion may be used to break the tie, such as, for example, sorting by price or popularity.

Then, in step290, client interface module52displays descriptions of the non-removed EEI item IDs62in the sorted order98on display screen48, in the form of EEI descriptors86. It should be understood that it is possible that some of the EEI descriptors86may not be visible on the display48at once, since the user32may operate input device46to scroll through the list of EEI descriptors86. In some embodiments, client interface module52may operate as a web page within a web browser operating on client computing device34in communication with selection module60operating as a web server on server computing device36.

Finally, in step295, selection module60receives a selection of an EEI item54from the user32via the user making a selection of one of the EEI descriptors86using the input device46, the selection being transmitted from client computing device34to server computing device36. In some embodiments, method200may then be repeated to allow for selection of another EEI item54.

Thus, a configuration tool that allows a user32to select and configure EEI items54in a flexible manner using a flexible set of sorting and filtering tools has been provided. In some embodiments, a configuration tool includes a relative selection criterion66that allows a user32to enter a target value67for a feature, which allows the tool to filter out EEI items54that do not meet the target criterion and to also sort the remaining items of EEI54based on closeness to the target value67for the feature. In some embodiments, the tool may automatically filter out items of EEI54that are not compatible with previous selections based on a database of compatibility criteria. In some embodiments, the tool may provide the option to the user32to enter several different criteria of different types.

Current EEI selection systems may display EEI items with conventional filtering and sorting tools. Such EEI selection systems may operate inefficiently because it may not be possible to enter filtering and sorting criteria that combine to display the EEI items in the most helpful manner to users. This is a technical problem. An example embodiment of an automated EEI selection system is provided that allows a user to configure EEI in a flexible manner using a flexible set of sorting and filtering tools. In some example embodiments, a configuration tool includes a relative selection criterion that allows a user to enter a target value for a feature, which allows the tool to filter out EEI items that do not meet the target criterion and to also sort the remaining items of EEI based on closeness to the target value for the feature. In some example embodiments, the tool may automatically filter out items of EEI that are not compatible with previous selections based on a database of compatibility criteria. In some example embodiments, the tool may provide the option to the user to enter several different criteria of different types. At least the foregoing combinations of features comprise automated EEI selection systems that serve as technical solutions to the foregoing technical problem. These technical solutions are not routine, and they are unconventional. These technical solutions are practical applications of automated EEI selection system designs that solve the foregoing technical problem and constitute improvements in the technical field of EEI selection systems.

It should be understood that although various embodiments have been described as being methods, software embodying these methods is also included. Thus, one embodiment includes a tangible computer-readable medium (such as, for example, a hard disk, a floppy disk, an optical disk, computer memory, flash memory, etc.) programmed with instructions, which, when performed by a computer or a set of computers, cause one or more of the methods described in various embodiments to be performed. Another embodiment includes a computer which is programmed to perform one or more of the methods described in various embodiments.

Furthermore, it should be understood that all embodiments which have been described may be combined in all possible combinations with each other, except to the extent that such combinations have been explicitly excluded.

Finally, nothing in this Specification shall be construed as an admission of any sort. Even if a technique, method, apparatus, or other concept is specifically labeled as “background” or as “conventional,” Applicants make no admission that such technique, method, apparatus, or other concept is actually prior art under 35 U.S.C. § 102 or 103, such determination being a legal determination that depends upon many factors, not all of which are known to Applicants at this time.