IP Library Granted Patent US 11,693,915
Granted Patent B2
US 11,693,915 · App. 17/180,282 · Granted Jul 4, 2023

Interactive web application editor

Inventors: Oliver Unter Ecker (Los Angeles, CA); Nickolas Westman (Los Gatos, CA)
Assignee: MK Systems USA Inc.
G06F16/986G06F3/0484G06F8/38G06F16/958G06F8/34
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,693,915
App. No.
17/180,282
Granted
Jul 4, 2023
Kind
B2
Abstract

Interactive editing of a web application at a user end station is described. The user end station dynamically loads into a running instance of the web application an interactive editor that allows editing of one or more user interface (UI) components of that running instance of the web application. A selection of a DOM element of the web application is received and a UI component that corresponds to the selected DOM element is determined. A set of parameters associated with the determined UI component is also determined. A value editor is displayed that is configured to display for at least one of the set of parameters a value and allows for that value to be modified. A modification of at least the value of the at least one of the set of parameters is received and the running instance of the web application is updated to reflect the modified value.

Claims (70)

1. A method for facilitating interactive editing of one or more user interface (UI) components of one or more running instances of a web application, comprising:

establishing an editing session between a server and a plurality of end stations corresponding to running instances of a web application on the plurality of end stations,

wherein each of the plurality of end stations participating in the editing session operates as a sender, a receiver, or a combination thereof,

wherein a UI of the web application is dynamically generated at runtime for running instances of the web application on the plurality of end stations using a respective UI definition file corresponding to each of the plurality of end stations that stores an externalized, parameterized representation of the web application without application code and that fully defines the web application including its structure, behavior, and appearance, and includes a set of one or more UI components that are UI building blocks to be presented within the web application, and

wherein the respective UI definition file corresponding to each of the plurality of end stations is configured for dynamic generation of application code representing the set of one or more UI components comprising at least one of HyperText Markup Language (HTML) and Cascading Style Sheets (CSS);

receiving, by the server, a client edit message from a first end station of the plurality of end stations,

wherein the client edit message describes a modified first value for editing a first UI component corresponding to a Document Object Model (DOM) element of the running instances of the web application on the plurality of end stations,

wherein the modified first value corresponds to a set of parameters of the respective UI definition files of the plurality of end stations that define the first UI component, and

wherein the modified first value is generated using an interactive editor configured to allow editing of the first UI component; and

transmitting, by the server, a server edit message describing the modified first value received from the first end station to one or more other end stations of the plurality of end stations, wherein a transmitted server edit message is configured to facilitate modifying the respective UI definition files on the one or more other end stations participating in the editing session to reflect the modified first value to dynamically regenerate the running instances of the web application on the one or more other end stations based on the respective modified UI definition files.

2. The method of claim 1 , wherein transmitting, by the server, the server edit message comprises passing the client edit message received from the first end station to the plurality of end stations.

3. The method of claim 1 , wherein the server edit message comprises at least the modified first value described in the client edit message and a corresponding unmodified first value corresponding to the set of parameters of the respective UI definition files of the plurality of end stations that define the first UI component.

4. The method of claim 1 , wherein the server edit message is further configured to allow an interactive editor to reject the modified first value and maintain unmodified UI definition files in storage of the one or more other end stations participating in the editing session.

5. The method of claim 1 , wherein the editing session is established in response to a request received from an end station of the one or more other end stations of the plurality of end stations.

6. The method of claim 1 , further comprising:

receiving a request to join the editing session from a second end station; and

adding the second end station to the plurality of end stations participating in the editing session.

7. The method of claim 6 , further comprising:

transmitting state information corresponding to a UI definition of the second end station to the one or more other end stations of the plurality of end stations participating in the editing session;

receiving one or more client edit messages for the second end station from the one or more other end stations participating in the editing session, wherein the one or more client edit messages describes a one or more modified values for editing one or more UI components of a running instance of the web application on the second end station; and

transmitting one or more server edit messages corresponding to the one or more client edit messages to the second end station, wherein the one or more server edit messages are configured to synchronize the UI definition file of the second end station with the respective UI definition files of the one or more other end stations.

8. The method of claim 1 , further comprising:

receiving a client edit message from a second end station of the plurality of end stations participating in the editing session, wherein the client edit message received from the second end station describes a modified second value that corresponds to the set of parameters of the respective UI definition files of the plurality of end stations that define the first UI component, and wherein the modified second value corresponds to and conflicts with the modified first value of the client edit message received from the first end station; and

resolving a conflict between the client edit message received from the first end station and the client edit message received from the second end station.

9. The method of claim 8 , wherein resolving the conflict between the client edit message received from the first end station and the client edit message received from the second end station includes serializing transmission of server edit messages corresponding to the respective first and second client edit messages received from the first and second end stations to respective other end stations participating in the editing session.

10. The method of claim 1 , wherein communications between the plurality of end stations participating in the editing session are full-duplex.

11. A non-transitory computer-readable storage medium storing instructions for interactive editing of one or more user interface (UI) components of one or more running instances of a web application which, when executed by a set of one or more processors of one or more servers, cause the one or more servers to perform operations comprising:

establishing an editing session between a server and a plurality of end stations corresponding to running instances of a web application on the plurality of end stations,

wherein each of the plurality of end stations participating in the editing session operates as a sender, a receiver, or a combination thereof,

wherein a UI of the web application is dynamically generated at runtime for running instances of the web application on the plurality of end stations using a respective UI definition file corresponding to each of the plurality of end stations that stores an externalized, parameterized representation of the web application without application code and that fully defines the web application including its structure, behavior, and appearance, and includes a set of one or more UI components that are UI building blocks to be presented within the web application, and

wherein the respective UI definition file corresponding to each of the plurality of end stations is configured for dynamic generation of application code representing the set of one or more UI components comprising at least one of HyperText Markup Language (HTML) and Cascading Style Sheets (CSS);

receiving, by a server, a client edit message from a first end station of the plurality of end stations,

wherein the client edit message describes a modified first value for editing a first UI component corresponding to a Document Object Model (DOM) element of the running instances of the web application on the plurality of end stations,

wherein the modified first value corresponds to a set of parameters of the respective UI definition files of the plurality of end stations that define the first UI component, and

wherein the modified first value is generated using an interactive editor configured to allow editing of the first UI component; and

transmitting, by a server, a server edit message describing the modified first value received from the first end station to one or more other end stations of the plurality of end stations, wherein a transmitted server edit message is configured to facilitate modifying the respective UI definition files on the one or more other end stations participating in the editing session to reflect the modified first value to dynamically regenerate the running instances of the web application on the one or more other end stations based on the respective modified UI definition files.

12. The non-transitory computer-readable storage medium of claim 11 , wherein the server edit message comprises at least the modified first value described in the client edit message and a corresponding unmodified first value corresponding to the set of parameters of the respective UI definition files of the plurality of end stations that define the first UI component.

13. The non-transitory computer-readable storage medium of claim 11 , wherein the non-transitory computer-readable storage medium further stores instructions that, when executed by the set of one or more processors of the one or more servers, cause the one or more servers to perform operations comprising:

receiving a request to join the editing session from a second end station; and

adding the second end station to the plurality of end stations participating in the editing session.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the non-transitory computer-readable storage medium further stores instructions that, when executed by the set of one or more processors of the one or more servers, cause the one or more servers to perform operations comprising:

transmitting state information corresponding to a UI definition of the second end station to the one or more other end stations of the plurality of end stations participating in the editing session;

receiving one or more client edit messages for the second end station from the one or more other end stations participating in the editing session, wherein the one or more client edit messages describes a one or more modified values for editing one or more UI components of a running instance of the web application on the second end station; and

transmitting one or more server edit messages corresponding to the one or more client edit messages to the second end station, wherein the one or more server edit messages are configured to synchronize the UI definition file of the second end station with the respective UI definition files of the one or more other end stations.

15. The non-transitory computer-readable storage medium of claim 11 , wherein the non-transitory computer-readable storage medium further stores instructions that, when executed by the set of one or more processors of the one or more servers, cause the one or more servers to perform operations comprising:

receive a client edit message from a second end station of the plurality of end stations participating in the editing session, wherein the client edit message received from the second end station describes a modified second value that corresponds to the set of parameters of the respective UI definition files of the plurality of end stations that define the first UI component, and wherein the modified second value corresponds to and conflicts with the modified first value of the client edit message received from the first end station; and

resolve a conflict between the client edit message received from the first end station and the client edit message received from the second end station.

16. A server for interactive editing of one or more user interface (UI) components of one or more running instances of a web application which, comprising:

a processor; and

a non-transitory computer-readable storage medium coupled to the processor and containing instructions executable by said processor whereby said server is operative to:

establish an editing session between the server and a plurality of end stations corresponding to running instances of a web application on the plurality of end stations,

wherein each of the plurality of end stations participating in the editing session operates as a sender, a receiver, or a combination thereof,

wherein a UI of the web application is dynamically generated at runtime for running instances of the web application on the plurality of end stations using a respective UI definition file corresponding to each of the plurality of end stations that stores an externalized, parameterized representation of the web application without application code and that fully defines the web application including its structure, behavior, and appearance, and includes a set of one or more UI components that are UI building blocks to be presented within the web application, and

wherein the respective UI definition file corresponding to each of the plurality of end stations is configured for dynamic generation of application code representing the set of one or more UI components comprising at least one of HyperText Markup Language (HTML) and Cascading Style Sheets (CSS);

receive, by the server, a client edit message from a first end station of the plurality of end stations,

wherein the client edit message describes a modified first value for editing a first UI component corresponding to a Document Object Model (DOM) element of the running instances of the web application on the plurality of end stations,

wherein the modified first value corresponds to a set of parameters of the respective UI definition files of the plurality of end stations that define the first UI component, and

wherein the modified first value is generated using an interactive editor configured to allow editing of the first UI component; and

transmit, by the server, a server edit message describing the modified first value received from the first end station to one or more other end stations of the plurality of end stations, wherein a transmitted server edit message is configured to facilitate modifying the respective UI definition files on the one or more other end stations participating in the editing session to reflect the modified first value to dynamically regenerate the running instances of the web application on the one or more other end stations based on the respective modified UI definition files.

17. The server of claim 16 , wherein the server edit message comprises at least the modified first value described in the client edit message and a corresponding unmodified first value corresponding to the set of parameters of the respective UI definition files of the plurality of end stations that define the first UI component.

18. The server of claim 16 , wherein the non-transitory computer-readable storage medium further contains instructions executable by said processor whereby said server is further operative to:

receive a request to join the editing session from a second end station; and

add the second end station to the plurality of end stations participating in the editing session.

19. The server of claim 18 , wherein the non-transitory computer-readable storage medium further contains instructions executable by said processor whereby said server is further operative to:

transmit state information corresponding to a UI definition of the second end station to the one or more other end stations of the plurality of end stations participating in the editing session;

receive one or more client edit messages for the second end station from the one or more other end stations participating in the editing session, wherein the one or more client edit messages describes a one or more modified values for editing one or more UI components of a running instance of the web application on the second end station; and

transmit one or more server edit messages corresponding to the one or more client edit messages to the second end station, wherein the one or more server edit messages are configured to synchronize the UI definition file of the second end station with the respective UI definition files of the one or more other end stations.

20. The server of claim 16 , wherein the non-transitory computer-readable storage medium further contains instructions executable by said processor whereby said server is further operative to:

receive a client edit message from a second end station of the plurality of end stations participating in the editing session, wherein the client edit message received from the second end station describes a modified second value that corresponds to the set of parameters of the respective UI definition files of the plurality of end stations that define the first UI component, and wherein the modified second value corresponds to and conflicts with the modified first value of the client edit message received from the first end station; and

resolve a conflict between the client edit message received from the first end station and the client edit message received from the second end station.

Assignments (8)
RELEASE OF SECURITY INTEREST Recorded Oct 14, 2025
From: CITIBANK, N.A., AS AGENT
To: MK SYSTEMS USA INC.
Reel/Frame 073070/0114 →
SECURITY INTEREST Recorded Oct 10, 2025
From: MK SYSTEMS USA INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 073062/0487 →
SECURITY INTEREST Recorded May 20, 2022
From: MK SYSTEMS USA INC.
To: CITIBANK, N.A., AS AGENT
Reel/Frame 060134/0068 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2021
From: LEONE MEDIA INC.
To: MK SYSTEMS US HOLDCO INC.
Reel/Frame 055354/0022 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2021
From: MK SYSTEMS US HOLDCO INC.
To: MK SYSTEMS US SUB-HOLDCO INC.
Reel/Frame 055354/0150 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2021
From: MK SYSTEMS US SUB-HOLDCO INC.
To: MK SYSTEMS USA INC.
Reel/Frame 055354/0303 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2021
From: ECKER, OLIVER UNTER; WESTMAN, NICKOLAS
To: TELEFONAKTIEBOLAGET L M ERICSSON (PUBL)
Reel/Frame 055353/0718 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2021
From: TELEFONAKTIEBOLAGET L M ERICSSON (PUBL)
To: LEONE MEDIA INC.
Reel/Frame 055353/0869 →
Continuity (3)
Continuation 14580172 · Dec 22, 2014
Provisional Application 62048774 · Sep 10, 2014
Related Publication 20210200835A1 · Jul 1, 2021