IP Library Granted Patent US 11,226,836
Granted Patent B2
US 11,226,836 · App. 16/877,822 · Granted Jan 18, 2022

Dynamic restructuring of user interface based on usage data

Inventors: Elaine Holland (County Cork, IE); Paul J. McSweeney (Cork, IE)
Assignee: EMC IP Holding Company LLC
G06F9/451G06F9/54G06F11/3438
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,226,836
App. No.
16/877,822
Granted
Jan 18, 2022
Kind
B2
Abstract

Techniques for rendering information for display in a graphical user interface (GUI) of an application may include: navigating to a point in a workflow of the application; and responsive to navigating to the point in the workflow of the application, performing processing to render a component in the GUI of the application. The component may include user interface elements for actions. The processing may include: receiving priorities for the actions of the component, wherein each of the priorities denotes a priority of one of the actions relative to remaining ones of the actions and wherein the priorities are determined in accordance with frequencies of usage of the GUI of the application to perform the plurality of actions; organizing user interface elements for the actions in an arrangement in accordance with the priorities; and rendering the component using the arrangement of the user interface elements for the actions.

Claims (55)

1. A method of rendering information for display in a graphical user interface (GUI) of an application comprising:

navigating to a point in a workflow of the application;

responsive to navigating to the point in the workflow of the application, performing processing to render a first component in the GUI of the application, wherein the first component includes a plurality of user interface elements for a plurality of actions, wherein the processing includes:

receiving a plurality of priorities for the plurality of actions of the first component, wherein each of the plurality of priorities denotes a priority of one of the plurality of actions relative to remaining ones of the plurality of actions and wherein the plurality of priorities is determined in accordance with frequencies of usage of the GUI of the application to perform the plurality of actions;

organizing the plurality of user interface elements for the plurality of actions in a first arrangement in accordance with the plurality of priorities; and

rendering the first component using the first arrangement of the plurality of user interface elements for the plurality of actions; and

analyzing usage information indicating a number of times each of a plurality of allowable interfaces has been used to perform each of the plurality of actions, wherein said usage information includes a first count denoting usage of the GUI to perform a first action of the plurality of actions, a second count denoting usage of an application programming interface (API) to perform the first action, and a third count denoting usage of a command line interface (CLI) to perform the first action, and wherein said analyzing includes:

determining a first percentage denoting a percentage of time the GUI is used to perform the first action with respect to a total number of times the plurality of allowable interfaces is used to perform the first action, wherein the plurality of allowable interfaces includes the GUI, the CLI and the API;

determining that the first percentage exceeds a minimum percentage; and

responsive to determining the first percentage exceeds the minimum percentage, determining a corresponding priority of the plurality of priorities for the first action relative to remaining ones of the plurality of actions using a ranking of counts denoting usage of the GUI to perform the plurality of actions.

2. The method of claim 1 , wherein a request to perform any of the plurality of actions is issued from one of the plurality of allowable interfaces including the GUI of the application, the API and the CLI.

3. The method of claim 2 , further comprising:

determining the plurality of priorities in accordance with said analyzing of the usage information.

4. The method of claim 3 , wherein the usage information includes a plurality of counts, and wherein said determining the plurality of priorities uses the plurality of counts denoting frequencies of usage of the GUI of the application to perform the plurality of actions, and wherein each of the plurality of counts denotes a frequency of usage of the GUI of the application to perform a different one of the plurality of actions.

5. The method of claim 4 , wherein the plurality of counts includes the first count indicating a frequency of usage of the GUI of the application for performing the first action of the plurality of actions and a fourth count indicating a frequency of usage of the GUI of the application for performing a second action of the plurality of actions, wherein the first count is greater than the fourth count, wherein the first action has a first priority of the plurality of priorities and the second action has a second priority of the plurality of priorities, and wherein the first priority is higher than the second priority.

6. The method of claim 5 , wherein the first component includes only N user interface elements for N of the plurality of actions having the highest N priorities of the plurality of priorities, and wherein N is an integer greater than 0.

7. The method of claim 5 , wherein the usage information includes a second plurality of counts denoting frequencies of usage of the API to perform the plurality of actions, and wherein the usage information includes a third plurality of counts denoting frequencies of usage of the CLI to perform the plurality of actions.

8. The method of claim 7 , further comprising performing first processing including:

using the plurality of counts, the second plurality of counts, and the third plurality of counts to determine a plurality of percentages of time the GUI of the application is used to perform said plurality of actions, where each of the plurality of percentages corresponds to a different one of the plurality of actions;

for each of the plurality of percentages of time, determining whether said each percentage of time corresponding to one of the plurality of actions is at least the minimum percentage; and

responsive to determining said percentage of time for corresponding to said one action is at least the minimum percentage, determining a priority for said one action, and otherwise not determining a priority for said one action.

9. The method of claim 8 , wherein the GUI of the application is used to perform a third action a third percentage of time that is less than the minimum percentage, and the method includes not determining a priority for the third action.

10. The method of claim 8 , wherein the priority for each of the plurality of actions is a relative priority based on a ranking of the plurality of counts denoting frequencies of usage of the GUI of the application to perform the plurality of actions.

11. The method of claim 1 , wherein the application is a data storage management application.

12. The method of claim 11 , wherein each of the plurality of actions is a data storage system management request sent over a control path.

13. The method of claim 1 , wherein prior to navigating to the point in the workflow of the application, the first component has the plurality of user interface elements for the plurality of actions organized in a second arrangement that is different than the first arrangement, and wherein the processing includes:

determining whether a user, that has navigated to the point in the workflow of the application, has logged into the application at least a minimum number of times within a specified time period, wherein the minimum number of times is an integer value greater than one; and

responsive to determining that the user has logged into the application at least the minimum number of times within the specified time period, performing said receiving, said organizing and said rendering the first component using the first arrangement, and otherwise rendering the first component using the second arrangement of the plurality of user interface elements of the plurality of actions.

14. The method of claim 1 , wherein the first percentage is determined as a ratio of the first count with respect to the total number of times, wherein the total number of times denotes a mathematical sum of the first count denoting usage of the GUI to perform the first action, the second count denoting usage of the API to perform the first action, and the third count denoting usage of the CLI to perform the first action.

15. A system comprising:

one or more processors; and

one or more memories comprising code stored thereon that, when executed, performs a method of rendering information for display in a graphical user interface (GUI) of an application comprising:

navigating to a point in a workflow of the application;

responsive to navigating to the point in the workflow of the application, performing processing to render a first component in the GUI of the application, wherein the first component includes a plurality of user interface elements for a plurality of actions, wherein the processing includes:

receiving a plurality of priorities for the plurality of actions of the first component, wherein each of the plurality of priorities denotes a priority of one of the plurality of actions relative to remaining ones of the plurality of actions and wherein the plurality of priorities is determined in accordance with frequencies of usage of the GUI of the application to perform the plurality of actions;

organizing the plurality of user interface elements for the plurality of actions in a first arrangement in accordance with the plurality of priorities; and

rendering the first component using the first arrangement of the plurality of user interface elements for the plurality of actions; and

analyzing usage information indicating a number of times each of a plurality of allowable interfaces has been used to perform each of the plurality of actions, wherein said usage information includes a first count denoting usage of the GUI to perform a first action of the plurality of actions, a second count denoting usage of an application programming interface (API) to perform the first action, and a third count denoting usage of a command line interface (CLI) to perform the first action, and wherein said analyzing includes:

determining a first percentage denoting a percentage of time the GUI is used to perform the first action with respect to a total number of times the plurality of allowable interfaces is used to perform the first action, wherein the plurality of allowable interfaces includes the GUI, the CLI and the API;

determining that the first percentage exceeds a minimum percentage; and

responsive to determining the first percentage exceeds the minimum percentage, determining a corresponding priority of the plurality of priorities for the first action relative to remaining ones of the plurality of actions using a ranking of counts denoting usage of the GUI to perform the plurality of actions.

16. A non-transitory computer readable medium including code stored thereon that, when executed, performs a method of rendering information for display in a graphical user interface (GUI) of an application comprising:

navigating to a point in a workflow of the application;

responsive to navigating to the point in the workflow of the application, performing processing to render a first component in the GUI of the application, wherein the first component includes a plurality of user interface elements for a plurality of actions, wherein the processing includes:

receiving a plurality of priorities for the plurality of actions of the first component, wherein each of the plurality of priorities denotes a priority of one of the plurality of actions relative to remaining ones of the plurality of actions and wherein the plurality of priorities is determined in accordance with frequencies of usage of the GUI of the application to perform the plurality of actions;

organizing the plurality of user interface elements for the plurality of actions in a first arrangement in accordance with the plurality of priorities; and

rendering the first component using the first arrangement of the plurality of user interface elements for the plurality of actions; and

analyzing usage information indicating a number of times each of a plurality of allowable interfaces has been used to perform each of the plurality of actions, wherein said usage information includes a first count denoting usage of the GUI to perform a first action of the plurality of actions, a second count denoting usage of an application programming interface (API) to perform the first action, and a third count denoting usage of a command line interface (CLI) to perform the first action, and wherein said analyzing includes:

determining a first percentage denoting a percentage of time the GUI is used to perform the first action with respect to a total number of times the plurality of allowable interfaces is used to perform the first action, wherein the plurality of allowable interfaces includes the GUI, the CLI and the API;

determining that the first percentage exceeds a minimum percentage; and

responsive to determining the first percentage exceeds the minimum percentage, determining a corresponding priority of the plurality of priorities for the first action relative to remaining ones of the plurality of actions using a ranking of counts denoting usage of the GUI to perform the plurality of actions.

17. The non-transitory computer readable medium of claim 15 , wherein a request to perform any of the plurality of actions is issued from one of the plurality of allowable interfaces including the GUI of the application, the API and the CLI.

18. The non-transitory computer readable medium of claim 16 , wherein the method further comprises:

determining the plurality of priorities in accordance with said analyzing of the usage information.

19. The non-transitory computer readable medium of claim 18 , wherein the usage information includes a plurality of counts, and wherein said determining the plurality of priorities uses the plurality of counts denoting frequencies of usage of the GUI of the application to perform the plurality of actions, and wherein each of the plurality of counts denotes a frequency of usage of the GUI of the application to perform a different one of the plurality of actions.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060332/0864 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0106 →
RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0371 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053578/0183 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053573/0535 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053574/0221 →
SECURITY AGREEMENT Recorded Aug 18, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053531/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 19, 2020
From: HOLLAND, ELAINE; MCSWEENEY, PAUL J.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052700/0011 →
Continuity (1)
Related Publication 20210365274A1 · Nov 25, 2021