IP Library Granted Patent US 11,237,705
Granted Patent B2
US 11,237,705 · App. 13/835,739 · Granted Feb 1, 2022

Configurable user interface interactions using a state machine combined with event orchestration

Inventors: David T. Sulcer (Santa Clara, CA); Elaine Tang (Millbrae, CA); Dinesh Elaprolu (Fremont, CA)
Assignee: BMC Software, Inc.
G06F3/0484G06F2203/04803
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,237,705
App. No.
13/835,739
Granted
Feb 1, 2022
Kind
B2
Abstract

Disclosed is a method of displaying a user interface, the method includes defining a template for the user interface, the template including a plurality of display areas, defining a plurality of components, each of the components configured to perform an associated user interface function, each of the plurality of components being associated with one of the display areas, defining a plurality of states, each of the plurality of states including one or more of the plurality of components, each of the plurality of states defining a configuration of the user interface, defining a table, the table defining a plurality events associated with transitioning between states; and triggering a transition between states based on look-up of the table with a received event.

Claims (43)

1. A method of displaying a user interface on a client device, the user interface being based on one or more user interface templates, the method comprising,

transmitting, from a server to the client device, a first plurality of components and a second plurality of components for display in a first display area and a second display area, respectively, of the user interface;

transmitting a first plurality of states of the user interface from the server to the client device, each state of the first plurality of states associated with a respective mapping of at least one of the first plurality of components to the first display area, and of at least one of the second plurality of components to the second display area;

transmitting, from the server to the client device, and based on a first state table stored at the server, a first state change among the first plurality of states, the first state change occurring in response to a first input event and a first output event at a first component of the first plurality of components causing a second input event at a second component of the second plurality of components, and thereby to an execution of at least one user interface function by the second component;

determining, at the server, a second plurality of states of the user interface and a second state table specifying a second state change among the second plurality of states, each state of the second plurality of states associated with a respective mapping of at least one of the first plurality of components to the first display area, and of at least one of the second plurality of components to the second display area; and

transmitting the second plurality of states and the second state change, as determined from the second state table, from the server to the client device, in response to the execution of the at least one user interface function by the second component and prior to an input event at either the first plurality of components or the second plurality of components that would cause the second state change.

2. The method of claim 1 , further comprising:

transmitting a third plurality of components for display in a third display area of the user interface, the first state table including a third state change that updates a mapping of the third plurality of components with respect to the third display area,

wherein the first state change occurs independently of the third state change.

3. The method of claim 1 , wherein user interface data required to implement the at least one user interface function is transmitted prior to receipt of the first input event.

4. The method of claim 1 , wherein one or more of the first plurality of components and the second plurality of components includes a property, the property being at least one of representing initial configuration data required at initialization and representing configuration data for a state change.

5. The method of claim 1 , wherein the first state table includes an incoming event received from one of the components in relation to a state change based on a conditional check.

6. The method of claim 1 , wherein each of the first plurality of components and the second plurality of components is defined independently.

7. The method of claim 1 , wherein each of the first plurality of states and the second plurality of states is defined independently.

8. The method of claim 1 , wherein the user interface is associated with either an executable compiled software or an interpreted software.

9. A server, comprising:

at least one processor, and

at least one non-transitory computer readable memory storing code segments that when executed by the processor cause the processor to,

receive a request for a webpage from a client computing device, the webpage including a user interface, the user interface being based on one or more user interface templates;

transmit, from a server to the client computing device, a first plurality of components and a second plurality of components for display in a first display area and a second display area, respectively, of the user interface;

transmit a first plurality of states of the user interface from the server to the client computing device, each state of the first plurality of states associated with a respective mapping of at least one of the first plurality of components to the first display area, and of at least one of the second plurality of components to the second display area;

transmit, from the server to the client device, and based on a first state table stored at the server, a first state change among the first plurality of states, the first state change occurring in response to a first input event and a first output event at a first component of the first plurality of components causing a second input event at a second component of the second plurality of components, and thereby to an execution of at least one user interface function by the second component;

determine, at the server, a second plurality of states of the user interface and a second state table specifying a second state change among the second plurality of states, each state of the second plurality of states associated with a respective mapping of at least one of the first plurality of components to the first display area, and of at least one of the second plurality of components to the second display area; and

transmit the second plurality of states and the second state change, as determined from the second state table, from the server to the client device, in response to the execution of the at least one user interface function by the second component and prior to an input event at either the first plurality of components or the second plurality of components that would cause the second state change.

10. The server of claim 9 , wherein

if the request is a first request for the webpage, the first plurality of states is based on an initial state of the user interface; and

if the request is not the first request, the first plurality of states is based on a current state of the user interface.

11. The server of claim 9 , wherein the code segments, when executed by the processor, cause the processor to,

transmit a third plurality of components for display in a third display area of the user interface, the first state table including a third state change that updates a mapping of the third plurality of components with respect to the third display area,

wherein the first state change occurs independently of the third state change.

12. The server of claim 9 , wherein user interface data required to implement the at least one user interface function is transmitted prior to receipt of the first input event.

13. A client device, comprising:

at least one processor, and

at least one non-transitory computer readable storing code segments that when executed by the processor cause the processor to,

communicate a request for a webpage, the webpage including a user interface, the user interface being based on one or more user interface templates; and

receive a first plurality of components and a second plurality of components for display in a first display area and a second display area, respectively, of the user interface;

receive a first plurality of states of the user interface, each state of the first plurality of states associated with a respective mapping of at least one of the first plurality of components to the first display area, and of at least one of the second plurality of components to the second display area;

access a first state table, the first state table specifying a first state change among the first plurality of states, the first state change occurring in response to a first input event and a first output event at a first component of the first plurality of components causing a second input event at a second component of the second plurality of components, and thereby to an execution of at least one user interface function by the second component; and

receive a second plurality of states of the user interface and access a second state table specifying a second state change among the second plurality of states, each state of the second plurality of states associated with a respective mapping of at least one of the first plurality of components to the first display area, and of at least one of the second plurality of components to the second display area, in response to the execution of the at least one user interface function by the second component and prior to an input event at either the first plurality of components or the second plurality of components that would cause the second state change.

14. The client device of claim 13 , wherein the code segments, when executed by the processor, cause the processor to

transmit a third plurality of components for display in a third display area of the user interface, the first state table including a third state change that updates a mapping of the third plurality of components with respect to the third display area,

wherein the first state change occurs independently of the third state change.

15. The client device of claim 13 , wherein user interface data required to implement the at least one user interface function is transmitted prior to receipt of the first input event.

Assignments (13)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2025
From: BMC SOFTWARE, INC.
To: BMC HELIX, INC.
Reel/Frame 070442/0197 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0568 →
GRANT OF FIRST LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0628 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052854/0139) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0617 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052844/0646) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0408 →
OMNIBUS ASSIGNMENT OF SECURITY INTERESTS IN PATENT COLLATERAL Recorded Mar 4, 2024
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS RESIGNING COLLATERAL AGENT
To: GOLDMAN SACHS BANK USA, AS SUCCESSOR COLLATERAL AGENT
Reel/Frame 066729/0889 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 1, 2024
From: ALTER DOMUS (US) LLC
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 066567/0283 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Sep 30, 2021
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 057683/0582 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052854/0139 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052844/0646 →
RELEASE OF PATENTS Recorded Oct 5, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.; BMC ACQUISITION L.L.C.
Reel/Frame 047198/0468 →
SECURITY INTEREST Recorded Oct 2, 2018
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE, AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047185/0744 →
SECURITY INTEREST Recorded Jul 27, 2017
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 043351/0231 →