# US 12,001,815 B2 · Cloud portability code scanning tool

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,001,815 B2
- Document ID: US12001815B2
- Status: Granted
- Kind: B2
- Application number: 18/130,096
- Filed: 2023-04-03
- Published: 2023-07-27
- Granted: 2024-06-04
- Earliest claimed: 2020-04-17
- Assignees: JPMorgan Chase Bank, N.A.
- Applicants: JPMorgan Chase Bank, N.A.
- Inventors: Richard Ackroyd; Matthew Chaddock; Helen Paget; Kenny Rodman; Kin Choi Yeung
- Web page: https://patentgrep.com/patent/US12001815B2

## CPC

- G06F 8/33: Intelligent editors
- G06F 8/76: Adapting program code to run in a different environment; Porting
- G06F 8/34: Graphical or visual programming
- G06F 8/433: {Dependency analysis; Data or control flow analysis}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Embodiments disclosed herein provide for systems and methods for scanning application code to determine cloud platform portability. The systems and methods provide for a rules processing engine configured to perform a portability analysis on the application code and a list of cloud platform dependencies, and returns a score indicating the “stickiness” of the application code to a particular cloud platform.

## Claims

### Claim 1

A system for scanning application code to determine cloud platform portability, the system comprising:
an integrated design environment configured to receive the application code;
a harvesting engine configured to receive at least one list of cloud platform dependencies, to receive intermittent updates to the at least one list of cloud platform dependencies at a predetermined interval, to identify dependency names and versions in the at least one list of cloud platform dependencies, and to remove duplicates present in the at least one list of cloud platform dependencies;
a graphical user interface configured to display a cloud platform portability determination to an end user, and to display a dependency map indicating the cloud platform dependencies; and
a rules processing engine comprising a computer processor, coupled to the integrated design environment, the harvesting engine and the graphical user interface, the computer processor configured to perform the steps of:
receiving the application code from the integrated design environment;
receiving the at least one list of cloud platform dependencies from the harvesting engine;
performing an analysis between the received application code and the at least one list of cloud platform dependencies;
identifying one or more vendor lock-in dependencies in the application code based on the analysis;
generating a cloud platform portability determination based on the analysis; and
transmitting, to the graphical user interface, the cloud platform portability determination.

### Claim 2 (depends on 1)

The system of claim 1, wherein the integrated design environment comprises at least one scanning plug-in based on application code format.

### Claim 3 (depends on 1)

The system of claim 1, wherein the at least one list of cloud platform dependencies comprises a first list source and a second list source.

### Claim 4 (depends on 3)

The system of claim 3, wherein the first list source comprises a first list of cloud dependencies using Swagger definitions and the second list source comprises a second list of cloud dependencies using a dependency repository system.

### Claim 5 (depends on 1)

The system of claim 1, wherein the application code is a Java class file, and
wherein the rules processing engine executes an algorithm that searches the Java class file for at least one import from dependencies of a specific cloud provider.

### Claim 6 (depends on 1)

The system of claim 1, wherein the rules processing engine executes an algorithm that searches a POM file for dependency inclusion entries from a specific cloud provider.

### Claim 7 (depends on 1)

The system of claim 1, wherein the rules processing engine executes an algorithm that searches codebase for APIs of a specific cloud provider.

### Claim 8 (depends on 1)

The system of claim 1, wherein the application code is a Java class file, and
wherein the rules processing engine executes an algorithm that searches the Java class file for imports from a key list of database dependencies.

### Claim 9 (depends on 1)

The system of claim 1, wherein the harvesting engine polls the at least one list of cloud platform dependencies to retrieve an appropriate dependencies list.

### Claim 10 (depends on 1)

The system of claim 1, wherein the cloud platform portability determination further comprises a dependency location, service usage, pricing, API detection, portability effort and application dependencies.

### Claim 11

A method for scanning application code to determine cloud platform portability, the method comprising the steps of:
receiving application code from an integrated design environment;
receiving at least one list of cloud platform dependencies from a harvesting engine;
receiving intermittent updates to the at least one list of cloud platform dependencies at a predetermined interval;
identifying dependency names and versions in the at least one list of cloud platform dependencies;
removing duplicates present in the at least one list of cloud platform dependencies;
performing, via a rules processing engine, an analysis between the received application code and the at least one list of cloud platform dependencies;
identifying one or more potential vendor lock-in dependencies in the application code based on the analysis;
generating, via the rules processing engine, a cloud platform portability determination based on the analysis; and
transmitting, to a graphical user interface, the cloud platform portability determination.

### Claim 12 (depends on 11)

The method of claim 11, wherein the integrated design environment comprises at least one scanning plug-in based on application code format.

### Claim 13 (depends on 11)

The method of claim 11, wherein the at least one list of cloud platform dependencies comprises a first list source and a second list source.

### Claim 14 (depends on 13)

The method of claim 13, wherein the first list source comprises a first list of cloud dependencies using Swagger definitions and the second list source comprises a second list of cloud dependencies using a dependency repository system.

### Claim 15 (depends on 11)

The method of claim 11, wherein the application code is a Java class file, and
wherein the rules processing engine executes an algorithm that searches the Java class file for at least one import from dependencies of a specific cloud provider.

### Claim 16 (depends on 11)

The method of claim 11, wherein the rules processing engine executes an algorithm that searches a POM file for dependency inclusion entries from a specific cloud provider.

### Claim 17 (depends on 11)

The method of claim 11, wherein the rules processing engine executes an algorithm that searches codebase for APIs of a specific cloud provider.

### Claim 18 (depends on 11)

The method of claim 11, wherein the application code is a Java class file, and
wherein the rules processing engine executes an algorithm that searches the Java class file for imports from a key list of database dependencies.

### Claim 19 (depends on 11)

The method of claim 11, wherein the harvesting engine polls the at least one list of cloud platform dependencies to retrieve an appropriate dependencies list.

### Claim 20 (depends on 11)

The method of claim 11, wherein the cloud platform portability determination further comprises a dependency location, service usage, pricing, API detection, portability effort and application dependencies.
