IP Library › Granted Patent US 11,650,799
Granted Patent B2
US 11,650,799 · App. 17/110,234 · Granted May 16, 2023

Remote application modernization

Inventors: Kevin Gilpin (Weston, MA); Elizabeth Lawler (Weston, MA); Dustin Byrne (Haverhill, MA); Daniel Warner (Stow, MA)
Assignee: AppLand Inc.
G06F8/35G06F8/34G06F8/433G06F8/447G06F8/453G06F8/60G06F11/3684
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,650,799
App. No.
17/110,234
Granted
May 16, 2023
Kind
B2
Abstract

Various embodiments of the present technology generally relate to the characterization and improvement of software applications. More specifically, some embodiments relate to systems and methods for modeling code behavior and generating new versions of the code based on the code behavior models. In some embodiments, a method of improving a codebase includes recording a run of the existing code, characterizing the code behavior via one or more models, prototyping new code according to a target language and target environment, deploying the new code to the target environment, and comparing the behavior of the new code to the behavior of the existing code. In some implementations, generating new code based on the behavior models includes using one or more machine learning techniques for code generation based on the target language and environment.

Claims (51)

1. A system, comprising:

a remote recording component executing on an application server, the remote recording component comprising recording instructions that, when executed by one or more application server processors, cause the one or more application server processors to:

receive, from a user interface component, a request to record a run of an application on the application server, the application comprising existing code;

generate one or more data files based on information captured about the application during the run of the application; and

transmit the one or more data files to an analysis component;

the user interface component executing on a remote computing system, the user interface component comprising interface instructions that, when executed by one or more computing system processors, cause the one or more computing system processors to:

receive user input indicating the request to record the run of the application; and

in response to the user input, send the request to the remote recording component; and

the analysis component executing on an analysis server, the analysis component comprising analysis instructions that, when executed by one or more analysis server processors, cause the one or more analysis server processors to:

receive the one or more data files,

generate a behavior model representing a behavior of the existing code by interrogating the one or more data files, wherein generating the behavior model comprises:

identifying and labeling one or more functional areas of the existing code;

identifying one or more steps performed by the application; and

identifying one or more code paths connecting the one or more steps performed by the application, wherein the behavior model comprises operational code path data including information about the application correlated with the one or more steps and the one or more code paths; and

generate new code based at least on the behavior model and a target code language, wherein a behavior of the new code is same as the behavior of the existing code of the application.

2. The system of claim 1 , wherein the user interface component comprises a browser extension.

3. The system of claim 1 , wherein the analysis component comprises further analysis instructions that, when executed by the one or more analysis server processors, cause the one or more analysis server processors to:

generate a graphical depiction of the behavior model.

4. The system of claim 3 , wherein the analysis component comprises further analysis instructions that, when executed by the one or more analysis server processors, cause the one or more analysis server processors to:

transmit the graphical depiction of the behavior model to the user interface component.

5. The system of claim 4 , wherein the user interface component comprises further interface instructions that, when executed by the one or more computing system processors, cause the one or more computing system processors to:

display the graphical depiction of the behavior model.

6. The system of claim 1 , wherein the information captured about the application comprises dependencies, logic, and data queries.

7. The system of claim 1 , wherein the recording instructions to generate the one or more data files comprises further recording instructions that, when executed by the one or more application server processors, cause the one or more application server processors to:

store information related to the one or more functional areas of the application and the one or more code paths of the application in the one or more data files.

8. The system of claim 1 , wherein the run of the application comprises executing test cases designed to explore user interactions with the application.

9. The system of claim 1 , wherein analysis component comprises further analysis instructions that, when executed by the one or more analysis server processors, cause the one or more analysis server processors to:

generate a functional visualization of the existing code based on the one or more functional areas of the existing code, wherein the functional visualization comprises a plurality of elements, wherein each element of the plurality of elements represents a functional area of the one or more functional areas, and wherein a size of each element is representative of a density of an underlying codebase of respective functional area.

10. The system of claim 1 , wherein the information captured about the application comprises decision points and branches between functional areas of the application.

11. A computer-implemented method, comprising:

receiving, by a remote recording component from a user interface component, a request to record a run of an application on an application server, wherein the application comprises existing code;

generating, by the remote recording component, one or more data files based on information captured about the application during the run of the application;

transmitting, by the remote recording component, the one or more data files to an analysis component;

generating, by the analysis component, a behavior model representing a behavior of the existing code by interrogating the one or more data files, wherein the generating the behavior model comprises:

identifying and labeling one or more functional areas of the existing code;

identifying one or more steps performed by the application; and

identifying one or more code paths connecting the one or more steps performed by the application, wherein the behavior model comprises operational code path data including information about the application correlated with the one or more steps and the one or more code paths; and

generating, by the analysis component, new code based at least on the behavior model and a target code language, wherein a behavior of the new code is same as the behavior of the existing code of the application.

12. The computer-implemented method of claim 11 , wherein the remote recording component, user interface component, and analysis component are each executed on a different computing system.

13. The computer-implemented method of claim 11 , wherein the user interface component comprises a browser extension.

14. The computer-implemented method of claim 11 , further comprising:

generating a graphical depiction of the behavior model.

15. The computer-implemented method of claim 14 , further comprising:

displaying the graphical depiction of the behavior model.

16. The computer-implemented method of claim 11 , wherein the information captured about the application comprises dependencies, logic, and data queries.

17. The computer-implemented method of claim 11 , wherein the generating the one or more data files comprises:

storing information related to the one or more functional areas of the application and the one or more code paths in the one or more data files.

18. The computer-implemented method of claim 11 , wherein the run of the application comprises executing test cases designed to explore user interactions with the application.

19. The computer-implemented method of claim 11 , further comprising:

generating, by the analysis component, a functional visualization of the existing code based on the one or more functional areas of the existing code, wherein the functional visualization comprises a plurality of elements, wherein each element of the plurality of elements represents a functional area of the one or more functional areas, and wherein a size of each element is representative of a density of an underlying codebase of respective functional area.

20. The computer-implemented method of claim 11 , wherein the information captured about the application comprises decision points and branches between functional areas of the application.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2023
From: GILPIN, KEVIN; LAWLER, ELIZABETH; BYRNE, DUSTIN; WARNER, DANIEL
To: APPLAND INC.
Reel/Frame 062292/0178 →
Continuity (3)
Provisional Application 63029027 · May 22, 2020
Provisional Application 62942638 · Dec 2, 2019
Related Publication 20210165641A1 · Jun 3, 2021