IP Library › Granted Patent US 11,681,504
Granted Patent B1
US 11,681,504 · App. 16/857,622 · Granted Jun 20, 2023

Automated application builder using configuration files

Inventors: Kenneth D'Silva (Sarasota, FL); Rocco Rinaldi (North Redington Beach, FL)
Assignee: Opturo, Inc.
G06F8/35G06F8/36G06F9/44505G06F9/547
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,681,504
App. No.
16/857,622
Granted
Jun 20, 2023
Kind
B1
Abstract

A computer system enables users to create applications (such as web-based applications) easily by writing textual configuration files, which are automatically processed by the computer system to create a specific web-based application based on the configuration files. In particular, the computer system creates a data store layer, an application layer, and a user interface (UI) layer based on the configuration files. Users who do not have programming experience may write the configuration files. As a result, embodiments of the present invention enable non-programmers to create web-based applications easily and semi-automatically.

Claims (64)

1. A method performed by at least one computer processor executing computer program instructions stored on at least one non-transitory computer-readable medium, the method comprising:

(1) receiving at least one configuration file comprising: text defining a data management layer; text defining table identifiers, table types, column identifiers, and column data types in a data store layer; text defining an application layer; text defining a report layer; and text defining a user interface layer; and

(2) automatically processing the at least one configuration file to create a software application comprising:

the data management layer, comprising computer program instructions, executable by a computer processor to perform ETL (extract, transform, and load) functions, the ETL functions comprising: (1) receiving data from a plurality of systems in native data and file formats of the plurality of systems; (2) extracting, transforming, and loading the data received from the plurality of systems into the data store layer;

the data store layer, comprising data defined by the text defining the data store layer, wherein the data in the data store layer has the table identifiers, table types, column identifiers, and column data defined by the configuration file;

the application layer, comprising computer program instructions, executable by the computer processor to receive data from the data store layer to produce application output, defined by the text defining the application layer;

the report layer, comprising computer program instructions, executable by the computer processor to generate reports based on: (1) the data in the data store layer, and (2) the application layer; and

the user interface layer, comprising user interface elements defined by the text defining the user interface layer.

2. The method of claim 1 , further comprising:

(3) executing the software application to:

(a) receive user input via the user interface layer; and

(b) provide the user input to the application layer; and

(c) process the user input, using the application layer, to produce output.

3. The method of claim 2 , wherein

(3) further comprises:

(d) using the user interface layer to provide the output produced in (3)(c) to the user.

4. The method of claim 1 , further comprising:

(3) executing the software application to:

(a) receive input via a web service API; and

(b) provide the input to the application layer; and

(c) process the input, using the application layer, to produce output.

5. The method of claim 1 , wherein the at least one configuration file solely contains text.

6. The method of claim 1 , wherein the data store layer comprises at least one data model, and wherein creating the data store layer comprises, at a data management layer:

rendering the at least one data model based on the text defining the table identifiers, table types, column identifiers, and column data types in the data store layer; and

importing data from a data import layer into the at least one data model of the data store layer.

7. The method of claim 6 , wherein the data import layer is at least one of a spreadsheet, data obtained from web services, Adobe® Portable Document Format (Adobe® PDF®) files, text files, and data in a database.

8. The method of claim 7 , wherein importing comprises using extract, transform, and load (ETL) functionality to import the data.

9. The method of claim 1 , wherein the at least one configuration file defines a plurality of features of at least one data model, and wherein creating the data store layer comprises creating a plurality of data structures having the plurality of features in the data store layer.

10. The method of claim 1 , wherein the at least one configuration file comprises a first configuration file defining a data store and a second configuration file defining the application layer and the user interface layer.

11. The method of claim 1 , wherein the text defining the data store layer defines:

a plurality of data models; and

a unique Optional Parameter Identifier List, which defines parameters that are common across all of the plurality of data models.

12. The method of claim 1 , wherein the at least one configuration file consists of assignment statements which assign values to parameters of existing software modules.

13. The method of claim 12 , wherein the at least one configuration file does not contain any conditional statements.

14. The method of claim 13 , wherein the at least one configuration file does not contain any loop statements.

15. The method of claim 1 , wherein automatically processing the at least one configuration file to create the software application comprises assigning values to parameters of existing software modules, and does not include compiling any source code into executable code.

16. A system comprising at least one non-transitory computer-readable medium having computer program instructions stored thereon, the computer program instructions being executable by at least one computer processor to perform a method, the method comprising:

(1) receiving at least one configuration file comprising: text defining a data management layer; text defining table identifiers, table types, column identifiers, and column data types in a data store layer; text defining an application layer; text defining a report layer; and text defining a user interface layer; and

(2) automatically processing the at least one configuration file to create a software application comprising:

the data management layer, comprising computer program instructions, executable by a computer processor to perform ETL (extract, transform, and load) functions, the ETL functions comprising: (1) receiving data from a plurality of systems in native data and file formats of the plurality of systems; (2) extracting, transforming, and loading the data received from the plurality of systems into the data store layer;

the data store layer, comprising data defined by the text defining the data store layer, wherein the data in the data store layer has the table identifiers, table types, column identifiers, and column data defined by the configuration file;

the application layer, comprising computer program instructions, executable by the computer processor to receive data from the data store layer to produce application output, defined by the text defining the application layer;

the report layer, comprising computer program instructions, executable by the computer processor to generate reports based on: (1) the data in the data store layer, and (2) the application layer; and

the user interface layer, comprising user interface elements defined by the text defining the user interface layer.

17. The system of claim 16 , wherein the method further comprises:

(3) executing the software application to:

(a) receive user input via the user interface layer; and

(b) provide the user input to the application layer; and

(c) process the user input, using the application layer, to produce output.

18. The system of claim 17 , wherein (3) further comprises:

(d) using the user interface layer to provide the output produced in (3)(c) to the user.

19. The system of claim 16 , wherein the method further comprises:

(3) executing the software application to:

(a) receive input via a web service API; and

(b) provide the input to the application layer; and

(c) process the input, using the application layer, to produce output.

20. The system of claim 16 , wherein the at least one configuration file solely contains text.

21. The system of claim 16 , wherein the data store layer comprises at least one data model, and wherein creating the data store layer comprises, at a data management layer:

rendering the at least one data model based on the text defining the table identifiers, table types, column identifiers, and column data types in the data store layer; and

importing data from a data import layer into the at least one data model of the data store layer.

22. The system of claim 21 , wherein the data import layer is at least one of a spreadsheet, data obtained from web services, Adobe® Portable Document Format (Adobe® PDF®) files, text files, and data in a database.

23. The system of claim 22 , wherein importing comprises using extract, transform, and load (ETL) functionality to import the data.

24. The system of claim 16 , wherein the at least one configuration file defines a plurality of features of at least one data model, and wherein creating the data store layer comprises creating a plurality of data structures having the plurality of features in the data store layer.

25. The system of claim 16 , wherein the at least one configuration file comprises a first configuration file defining a data store and a second configuration file defining the application layer and the user interface layer.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2020
From: D'SILVA, KENNETH; RINALDI, ROCCO
To: OPTURO, INC.
Reel/Frame 052488/0056 →
Continuity (1)
Provisional Application 62839300 · Apr 26, 2019
Cited By (5)
US 12,591,413 US 12,645,455 US 12,657,024 US 12,669,996 US 12,748,593