IP Library › Granted Patent US 11,853,752
Granted Patent B2
US 11,853,752 · App. 16/588,168 · Granted Dec 26, 2023

Migration of web applications between different web application frameworks

Inventor: Raphaël Aubert (Montreal, CA)
Assignee: EMC IP Holding Company LLC
G06F8/76G06F8/71G06F9/44521G06F9/44594G06F9/54
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,853,752
App. No.
16/588,168
Filed
Sep 30, 2019
Granted
Dec 26, 2023
Kind
B2
Art Unit
2193
USPC
717/122
Abstract

A method includes identifying a portion of a web application to be migrated from a first to a second web application framework, selecting at least one page element in the portion of the web application that is to be migrated, generating an application chunk for the selected page element as a self-contained web application that utilizes the second web application framework, and replacing a portion of software code of the web application corresponding to the selected page element with chunk definition metadata defining content of the selected page element, dependencies of the selected page element, and triggers for loading the generated application chunk. The method also includes creating an application core comprising a user interface shell configured to load the generated application chunk and one or more other application chunks of the web application responsive to activation of user interface elements of the web application corresponding to the defined triggers.

Claims (103)

1. A method comprising steps of:

identifying at least a portion of a web application to be migrated from a first web application framework to a second web application framework, the portion of the web application comprising at least a subset of a plurality of page elements of the web application;

selecting at least one of the plurality of page elements in the portion of the web application to be migrated from the first web application framework to the second web application framework;

generating an application chunk for the selected page element as a self-contained web application that utilizes the second web application framework;

replacing a portion of existing software code of the web application corresponding to the selected page element with chunk definition metadata of the generated application chunk, the chunk definition metadata defining content of the selected page element, dependencies of the selected page element, and one or more triggers for loading the generated application chunk; and

creating an application core for the web application, the application core comprising a user interface shell configured to load the generated application chunk that utilizes the second web application framework and one or more other ones of a plurality of application chunks of the web application that utilize one or more web application frameworks other than the second web application framework based at least in part on activation of user interface elements of the web application corresponding to the defined triggers of the generated application chunk;

wherein the web application is configured to be executed by running the application core and utilizing the application core to load the plurality of application chunks;

wherein creating the application core for the web application further comprises:

generating a communication bridge configured (i) to load shared object instances utilized by two or more of the plurality of application chunks and (ii) to enable communication between the plurality of application chunks; and

generating a bootstrapping process for each of the plurality of application chunks, the bootstrapping process for the generated application chunk being configured to mount the second web application framework, to load the selected page element of the generated application chunk, and to link the generated application chunk to the communication bridge; and

wherein the method is performed by at least one processing device comprising a processor coupled to a memory.

2. The method of claim 1 further comprising repeating the selecting, generating and replacing steps for one or more additional ones of the page elements in the portion of the web application.

3. The method of claim 1 wherein identifying the portion of the web application to be migrated from the first web application framework to the second web application framework comprises identifying an entirety of the web application.

4. The method of claim 1 further comprising repeating the selecting, generating and replacing steps for one or more additional ones of the page elements in an additional portion of the web application to be migrated from the first web application framework to a third web application framework different than the second web application framework.

5. The method of claim 1 wherein the first web application framework comprises a first version of a given web application framework and the second web application framework comprises a second version of the given web application framework.

6. The method of claim 1 wherein the application core comprises a self-contained web application that utilizes one of the first web application framework and the second web application framework.

7. The method of claim 1 wherein the application core comprises a self-contained web application that utilizes a third web application framework different than the first web application framework and the second web application framework.

8. The method of claim 1 wherein the self-contained web application of the generated application chunk is configured for execution independent of additional self-contained web applications for additional ones of the plurality of application chunks.

9. The method of claim 1 wherein running the application core comprises:

at startup of the web application, displaying a user interface shell;

reading application chunk definition metadata to identify a set of available ones of the plurality of application chunks; and

monitoring user interface features of the web application to determine when respective ones of the plurality of page elements of the web application are selected.

10. The method of claim 9 further comprising, responsive to determining that a given page element of the web application is selected, identifying at least one of the plurality of application chunks to be loaded or un-loaded from the user interface shell.

11. The method of claim 10 further comprising, responsive to identifying at least one application chunk to be un-loaded from the user interface shell, disabling said at least one application chunk.

12. A method comprising steps of:

identifying at least a portion of a web application to be migrated from a first web application framework to a second web application framework, the portion of the web application comprising at least a subset of a plurality of page elements of the web application;

selecting at least one of the plurality of page elements in the portion of the web application to be migrated from the first web application framework to the second web application framework;

generating an application chunk for the selected page element as a self-contained web application that utilizes the second web application framework;

replacing a portion of existing software code of the web application corresponding to the selected page element with chunk definition metadata of the generated application chunk, the chunk definition metadata defining content of the selected page element, dependencies of the selected page element, and one or more triggers for loading the generated application chunk; and

creating an application core for the web application, the application core comprising a user interface shell configured to load the generated application chunk that utilizes the second web application framework and one or more other ones of a plurality of application chunks of the web application that utilize one or more web application frameworks other than the second web application framework based at least in part on activation of user interface elements of the web application corresponding to the defined triggers of the generated application chunk;

wherein the web application is configured to be executed by running the application core and utilizing the application core to load the plurality of application chunks;

wherein the method is performed by at least one processing device comprising a processor coupled to a memory;

wherein running the application core comprises:

at startup of the web application, displaying a user interface shell;

reading application chunk definition metadata to identify a set of available ones of the plurality of application chunks;

monitoring user interface features of the web application to determine when respective ones of the plurality of page elements of the web application are selected;

responsive to determining that a given page element of the web application is selected, identifying at least one of the plurality of application chunks to be loaded or un-loaded from the user interface shell; and

responsive to identifying at least one application chunk to be un-loaded from the user interface shell, disabling said at least one application chunk;

wherein disabling said at least one application chunk comprises maintaining said at least one application chunk in an application chunk buffer of the memory of the at least one processing device.

13. A method comprising steps of:

identifying at least a portion of a web application to be migrated from a first web application framework to a second web application framework, the portion of the web application comprising at least a subset of a plurality of page elements of the web application;

selecting at least one of the plurality of page elements in the portion of the web application to be migrated from the first web application framework to the second web application framework;

generating an application chunk for the selected page element as a self-contained web application that utilizes the second web application framework;

replacing a portion of existing software code of the web application corresponding to the selected page element with chunk definition metadata of the generated application chunk, the chunk definition metadata defining content of the selected page element, dependencies of the selected page element, and one or more triggers for loading the generated application chunk; and

creating an application core for the web application, the application core comprising a user interface shell configured to load the generated application chunk that utilizes the second web application framework and one or more other ones of a plurality of application chunks of the web application that utilize one or more web application frameworks other than the second web application framework based at least in part on activation of user interface elements of the web application corresponding to the defined triggers of the generated application chunk;

wherein the web application is configured to be executed by running the application core and utilizing the application core to load the plurality of application chunks;

wherein running the application core comprises:

at startup of the web application, displaying a user interface shell;

reading application chunk definition metadata to identify a set of available ones of the plurality of application chunks;

monitoring user interface features of the web application to determine when respective ones of the plurality of page elements of the web application are selected; and

responsive to identifying at least one application chunk to be loaded into the user interface shell:

reading chunk definition metadata for said at least one application chunk;

injecting one or more application chunk files and dependencies for said at least one application chunk specified in the chunk definition metadata;

boot-strapping one or more page elements of said at least one application chunk into an associated self-contained web application for said at least one application chunk; and

linking the self-contained web application for said at least one application chunk to a communication bridge of the application core, the communication bridge being configured (i) to load shared object instances utilized by said at least one application chunk and (ii) to enable communication between said at least one application chunk and one or more other ones of the plurality of application chunks; and

wherein the method is performed by at least one processing device comprising a processor coupled to a memory.

14. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes the at least one processing device to perform steps of:

identifying at least a portion of a web application to be migrated from a first web application framework to a second web application framework, the portion of the web application comprising at least a subset of a plurality of page elements of the web application;

selecting at least one of the plurality of page elements in the portion of the web application to be migrated from the first web application framework to the second web application framework;

generating an application chunk for the selected page element as a self-contained web application that utilizes the second web application framework;

replacing a portion of existing software code of the web application corresponding to the selected page element with chunk definition metadata of the generated application chunk, the chunk definition metadata defining content of the selected page element, dependencies of the selected page element, and one or more triggers for loading the generated application chunk; and

creating an application core for the web application, the application core comprising a user interface shell configured to load the generated application chunk that utilizes the second web application framework and one or more other ones of a plurality of application chunks of the web application that utilize one or more web application frameworks other than the second web application framework based at least in part on activation of user interface elements of the web application corresponding to the defined triggers of the generated application chunk;

wherein the web application is configured to be executed by running the application core and utilizing the application core to load the plurality of application chunks; and

wherein creating the application core for the web application further comprises:

generating a communication bridge configured (i) to load shared object instances utilized by two or more of the plurality of application chunks and (ii) to enable communication between the plurality of application chunks; and

generating a bootstrapping process for each of the plurality of application chunks, the bootstrapping process for the generated application chunk being configured to mount the second web application framework, to load the selected page element of the generated application chunk, and to link the generated application chunk to the communication bridge.

15. The computer program product of claim 14 wherein the self-contained web application of the generated application chunk is configured for execution independent of additional self-contained web applications for additional ones of the plurality of application chunks.

16. The computer program product of claim 14 wherein running the application core comprises:

at startup of the web application, displaying a user interface shell;

reading application chunk definition metadata to identify a set of available ones of the plurality of application chunks;

monitoring user interface features of the web application to determine when respective ones of the plurality of page elements of the web application are selected;

responsive to determining that a given page element of the web application is selected, identifying at least one of the plurality of application chunks to be loaded or un-loaded from the user interface shell; and

responsive to identifying at least one application chunk to be un-loaded from the user interface shell, disabling said at least one application chunk; and

wherein disabling said at least one application chunk comprises maintaining said at least one application chunk in an application chunk buffer of a memory of the at least one processing device.

17. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory;

the at least one processing device being configured to perform steps of:

identifying at least a portion of a web application to be migrated from a first web application framework to a second web application framework, the portion of the web application comprising at least a subset of a plurality of page elements of the web application;

selecting at least one of the plurality of page elements in the portion of the web application to be migrated from the first web application framework to the second web application framework;

generating an application chunk for the selected page element as a self-contained web application that utilizes the second web application framework;

replacing a portion of existing software code of the web application corresponding to the selected page element with chunk definition metadata of the generated application chunk, the chunk definition metadata defining content of the selected page element, dependencies of the selected page element, and one or more triggers for loading the generated application chunk; and

creating an application core for the web application, the application core comprising a user interface shell configured to load the generated application chunk that utilizes the second web application framework and one or more other ones of a plurality of application chunks of the web application that utilize one or more web application frameworks other than the second web application framework based at least in part on activation of user interface elements of the web application corresponding to the defined triggers of the generated application chunk;

wherein the web application is configured to be executed by running the application core and utilizing the application core to load the plurality of application chunks; and

wherein creating the application core for the web application further comprises:

generating a communication bridge configured (i) to load shared object instances utilized by two or more of the plurality of application chunks and (ii) to enable communication between the plurality of application chunks; and

generating a bootstrapping process for each of the plurality of application chunks, the bootstrapping process for the generated application chunk being configured to mount the second web application framework, to load the selected page element of the generated application chunk, and to link the generated application chunk to the communication bridge.

18. The apparatus of claim 17 wherein the self-contained web application of the generated application chunk is configured for execution independent of additional self-contained web applications for additional ones of the plurality of application chunks.

19. The apparatus of claim 17 wherein running the application core comprises:

at startup of the web application, displaying a user interface shell;

reading application chunk definition metadata to identify a set of available ones of the plurality of application chunks;

monitoring user interface features of the web application to determine when respective ones of the plurality of page elements of the web application are selected;

responsive to determining that a given page element of the web application is selected, identifying at least one of the plurality of application chunks to be loaded or un-loaded from the user interface shell; and

responsive to identifying at least one application chunk to be un-loaded from the user interface shell, disabling said at least one application chunk; and

wherein disabling said at least one application chunk comprises maintaining said at least one application chunk in an application chunk buffer of the memory of the at least one processing device.

20. The apparatus of claim 17 wherein running the application core comprises:

at startup of the web application, displaying a user interface shell;

reading application chunk definition metadata to identify a set of available ones of the plurality of application chunks;

monitoring user interface features of the web application to determine when respective ones of the plurality of page elements of the web application are selected; and

responsive to identifying at least one application chunk to be loaded into the user interface shell:

reading chunk definition metadata for said at least one application chunk;

injecting one or more application chunk files and dependencies for said at least one application chunk specified in the chunk definition metadata;

boot-strapping one or more page elements of said at least one application chunk into an associated self-contained web application for said at least one application chunk; and

linking the self-contained web application for said at least one application chunk to a communication bridge of the application core, the communication bridge being configured (i) to load shared object instances utilized by said at least one application chunk and (ii) to enable communication between said at least one application chunk and one or more other ones of the plurality of application chunks.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (051302/0528) Recorded Jun 23, 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; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.); SECUREWORKS CORP.
Reel/Frame 060438/0593 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST AT REEL 051449 FRAME 0728 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
Reel/Frame 058002/0010 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Dec 31, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 051449/0728 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Dec 16, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 051302/0528 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 30, 2019
From: AUBERT, RAPHAËL
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 050568/0536 →
Continuity (1)
Related Publication 20210096853A1 · Apr 1, 2021