IP Library Granted Patent US 11,200,143
Granted Patent B2
US 11,200,143 · App. 16/242,913 · Granted Dec 14, 2021

Software development framework for a cloud computing platform

Inventors: Kevin James Jones (Harrogate, GB); Simon Kristiansen Ejsing (Kirkland, WA)
Assignee: FinancialForce.com, Inc.
G06F11/3604G06F8/33G06F8/427G06F8/433G06F8/437G06F8/75G06F11/3664G06N20/00H04L67/10H04L67/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,200,143
App. No.
16/242,913
Granted
Dec 14, 2021
Kind
B2
Abstract

A technique is described for evaluating code at a local computing device before deploying the code to a cloud computing platform to be compiled. In an example embodiment, class files including the code in a programming language associated with the cloud computing environment are loaded by a local computer system, for example, associated with a software developer. The local computer system then parses the code to identify elements in the code and checks the identified elements. Errors in the code are identified based on the checking and are displayed to a user (e.g., the developer), for example, via a graphical user interface of a code editor application.

Claims (52)

1. A method for evaluating source code in a software project based on a cloud computing platform before deploying the source code to be compiled at the cloud computing platform, the method comprising:

receiving, by a source code analysis tool, a listing of a plurality of class files in the software project, the source code analysis tool executing at a developer computing device that is associated with a developer of the software project, the developer computing device configured to connect to the cloud platform via a computer network, the developer computing device being a local computer system;

incrementally loading, by the source code analysis tool, the plurality of class files included in the listing;

parsing, by the source code analysis tool, the source code included in the plurality of class files to identify a plurality of elements in the source code, the source code in a first language that is proprietary to the cloud computing platform;

generating, by the source code analysis tool, a syntax tree based on the identified plurality of elements in the source code;

type checking, by the source code analysis tool, the plurality of elements in the source code by analyzing the generated syntax tree;

converting, at the developer computing device, the source code in the first language associated with the cloud computing platform to or from a second language at the developer computing device;

identifying, by the source code analysis tool, an error in the source code based on the type checking, the source code being implemented in one or both of the first and the second languages; and

causing display, by the source code analysis tool, of an indication of the error in the source code in a graphical user interface of a code editor application.

2. A method for locally evaluating code for an application based on a cloud computing platform, before deploying the code to be compiled at the cloud computing platform, using a local computer system that is configured to connect to the cloud platform via a computer network, the method comprising:

loading, by the local computer system, one or more files including the code, the code in a first language that is associated with the cloud computing platform;

parsing, by the local computer system, the code to identify a plurality of elements in the code;

checking, by the local computer system, the plurality of elements in the code;

converting, by the local computer system, the code in the first language associated with the cloud computing platform to a second language at the local computer system;

identifying, by the local computer system, an error in the code at the local computer system based on the checking; and

causing display, by the local computer system, of an indication of the error in the code.

3. The method of claim 2 , wherein the indication of the error in the code is displayed in real time as the error is identified.

4. The method of claim 2 , wherein the loading of the one or more files is performed incrementally and wherein the checking is performed in real time as the one or more files are incrementally loaded.

5. The method of claim 2 , wherein the indication of the error in the code is displayed via a graphical user interface (GUI) of a code editor application executed at the computer system.

6. The method of claim 5 , wherein causing display of the indication of the error in the code includes transmitting, by a language server, a message to an extension of the code editor application, the message including the indication of the error in the code.

7. The method of claim 5 , wherein the GUI of the code editor includes:

a text editor element configured to display text of the code and receive user input to enter or edit the text of the code;

a file explorer element configured to display an interactive listing of the one or more files including the code; and

an error reporting element configured to display an interactive listing of identified errors in the code.

8. The method of claim 7 , wherein displaying the indication of the error in the code includes any of:

graphically highlighting, in the text editor element, a portion of the code that includes at least one of the identified errors in the code;

graphically highlighting, in the file explorer element, an identifier of a particular file of the one or more files that includes the portion of the code that includes at the least one of the identified errors in the code; or

displaying, in the error reporting element, an entry in the interactive listing that describes the identified error.

9. The method of claim 2 , wherein identifying the plurality of elements in the code includes:

generating an output indicative of the plurality of elements as a parse tree; and

generating a syntax tree (AST) based on the parse tree indicative of the plurality of elements.

10. The method of claim 2 , wherein checking the plurality of elements includes type checking.

11. The method of claim 2 , wherein the plurality of identified elements in the code include any of statements, variables, identifiers, literals, or operators.

12. The method of claim 2 , further comprising:

generating, by the computer system, a dependency map associated with the one or more files based on the checking; and

causing display, by the computer system, of an indication of a dependency associated with a particular file of the one or more files.

13. The method of claim 2 , wherein the one or more files include class files.

14. The method of claim 2 , wherein the local computer system is associated with a third-party developer that does not own, operate, provide, or manage the cloud computing platform.

15. The method of claim 2 , wherein the first language is proprietary to the cloud computing platform.

16. The method of claim 2 , wherein the code represents a portion of a total codebase utilized to compile the application, and wherein the total codebase is not accessible to the local computer system.

17. The method of claim 2 , further comprising:

transpiling, by the local computer system, the code in the first language associated with the cloud computing platform to generate code in another language at the local computer system.

18. The method of claim 17 , further comprising:

compiling, by the local computer system, the generated code in the other language to generate a local version of the application; and

executing, by the local computer system, the local version of the application.

19. The method of claim 18 , wherein the code includes a database query and wherein executing the local version of the application includes causing the database query to be executed at the cloud computing platform.

20. The method of claim 2 , further comprising:

transmitting, by the local computer system, via the computer network, to the cloud computing platform, the code for compiling at the cloud computing platform; and

receiving, by the local computer system, via the computer network, from the cloud computing platform, a compiling error based on the compiling.

21. The method of claim 2 , further comprising:

processing, by the local computer system, the received compiling error using machine learning; and

adjusting, by the local computer system, a process for identifying code errors based on the processing.

Assignments (9)
CHANGE OF ADDRESS Recorded Sep 12, 2024
From: CERTINIA INC.
To: CERTINIA INC.
Reel/Frame 068948/0361 →
SECURITY INTEREST Recorded Aug 7, 2023
From: CERTINIA INC.
To: BLUE OWL CREDIT INCOME CORP., AS COLLATERAL AGENT
Reel/Frame 064510/0495 →
RELEASE OF SECURITY INTEREST IN UNITED STATES PATENTS Recorded Aug 4, 2023
From: KEYBANK NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: CERTINIA, INC.
Reel/Frame 064502/0117 →
CHANGE OF NAME Recorded Jun 20, 2023
From: FINANCIALFORCE.COM, INC.
To: CERTINIA INC.
Reel/Frame 064042/0206 →
RELEASE OF SECURITY INTEREST Recorded Mar 24, 2022
From: OBSIDIAN AGENCY SERVICES, INC.
To: FINANCIALFORCE.COM, INC.
Reel/Frame 059389/0501 →
SECURITY INTEREST Recorded Feb 21, 2022
From: FINANCIALFORCE.COM, INC.
To: KEYBANK NATIONAL ASSOCIATION
Reel/Frame 059204/0323 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ERRONEOUS APPLICATION NUMBER PREVIOUSLY RECORDED AT REEL: 048416 FRAME: 0266. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 23, 2019
From: FINANCIALFORCE.COM, INC.
To: OBSIDIAN AGENCY SERVICES, INC.
Reel/Frame 050836/0001 →
SECURITY INTEREST Recorded Feb 22, 2019
From: FINANCIALFORCE.COM, INC.
To: OBSIDIAN AGENCY SERVICES, INC.
Reel/Frame 048416/0266 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 28, 2019
From: JONES, KEVIN JAMES; EJSING, SIMON KRISTIANSEN
To: FINANCIALFORCE.COM, INC.
Reel/Frame 048153/0733 →
Continuity (1)
Related Publication 20200218634A1 · Jul 9, 2020