IP Library Granted Patent US 10,754,755
Granted Patent B2
US 10,754,755 · App. 16/145,468 · Granted Aug 25, 2020

Automatically validating data incorporated into a computer program

Inventors: Christopher Taylor Creel (Atlanta, GA); Mykel Alvis (Birmingham, AL)
Assignee: COTIVITI, INC.
G06F11/3624G06F11/3612G06F11/3636G06F16/2365
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 10,754,755
App. No.
16/145,468
Granted
Aug 25, 2020
Kind
B2
Abstract

Embodiments disclosed herein relate to methods, systems, and computer programs for verifying that data incorporated into a computer program is current. The methods, systems, and computer programs compare a source identifier status code associated with the data to a current source identifier status code at the location where the data was obtained. The methods, systems, and computer programs include at least one validation function which determines the validity of the data according to selected parameters. If the source identifier status code and current source identifier status code match and the at least one validation function determines the data is valid, an executable computer program incorporating the data and one or more functions is produced as output.

Claims (50)

1. A method of validating data incorporated into a computer program, the method comprising:

building one or more functions incorporating data obtained from at least one remote location into a source code of the computer program;

incorporating a source identifier status code from the at least one remote location into the one or more functions, the source identifier status code corresponding to a date and a location at which the data was obtained from the at least one remote location;

writing a checksum query into the source code that queries the at least one remote location to determine if the source identifier status code matches a current source identifier status code at the at least one remote location;

providing at least one validation function in the source code, the at least one validation function being configured to perform one or more tests on the data to ensure the data is valid;

adding a build-break function into the source code, the build-break function providing that a computer program build continues only if the source identifier status code and the current source identifier status code match and the at least one validation function confirms that the data is valid; and

running a build tool to perform a computer program build effective to compile the source code into an executable computer program that uses the data obtained from the at least one remote location to perform the one or more functions.

2. The method of claim 1 , wherein building one or more functions incorporating data obtained from at least one remote location into the source code of the computer program includes archiving the data in the computer program.

3. The method of claim 1 , wherein the source code is in an open standard format for electronic data.

4. The method of claim 3 , wherein open standard format includes xml format.

5. The method of claim 1 , wherein the executable computer program is output in a verified archive format with the data incorporated therein as one or more verified libraries.

6. The method of claim 5 , wherein the verified archive format includes a signed JAR file.

7. The method of claim 1 , wherein the checksum query examines a correspondence between source identifier status code and the current source identifier status code at a uniform resource locator of the at least one remote location corresponding to the source identifier status code.

8. The method of claim 7 , wherein the source identifier status code includes a checksum or hash and the current source identifier status code includes a current checksum or current hash.

9. The method of claim 8 , wherein the one or more functions includes a report function that provides a report of any mismatch between the source identifier status code and the current source identifier status code and identifies the data associated therewith.

10. The method of claim 1 , wherein providing at least one validation function in the source code, the at least one validation function being configured to perform one or more tests on the data to ensure the data is valid includes providing a function which tests the data to confirm that the data is in a format specified by the source code.

11. The method of claim 1 , wherein providing at least one validation function in the source code, the at least one validation function being configured to perform one or more tests on the data to ensure the data is valid includes providing a function which tests the data to confirm that the data contains values that satisfy one or more criteria of the at least one validation test.

12. The method of claim 1 , wherein incorporating a source identifier status code from the at least one remote location into the one or more functions includes incorporating a checksum or a hash from a uniform resource identifier corresponding to the at least one remote location into the one or more functions.

13. The method of claim 1 , further comprising running a transformation function on the executable computer program to transform the executable computer program from a first format to a second format.

14. The method of claim 13 , wherein the first format is Comma-Separated Values format and the second format is Apache Avro format.

15. The method of claim 13 , wherein the first format is Comma-Separated Values format and the second format is JavaScript Object Notation format.

16. The method of claim 13 , wherein the first format is Extensible Mark-Up Language format and the second format is Hypertext Markup Language format.

17. The method of claim 1 , wherein running a build tool to compile the source code into an executable computer program includes running Apache Ant, Apache Maven, Gradle, MSBuild, sbt, or Waf.

18. A method of building a computer program using data incorporated therein, the method comprising:

directly importing data from at least one remote location into a source code;

incorporating a source identifier status code from the at least one remote location into the source code, the source identifier status code corresponding to a date and a location at which the data was obtained from the at least one remote location;

writing a checksum query into the source code that queries the at least one remote location to determine if the source identifier status code matches a current source identifier status code at the at least one remote location;

providing at least one validation function in the source code, the at least one validation function being configured to perform one or more tests on the data to ensure the data is valid;

adding a build-break function into the source code, the build-break function providing that a computer program build continues only if the source identifier status code and the current source identifier status code match and the at least one validation function confirms the data is valid;

running a build tool to perform a computer program build effective to compile the source code into an executable computer program that uses the data obtained from the at least one remote location; and

running a transformation function on the executable computer program in a second build tool to transform the executable computer program from a first format to a second format, wherein the second build tool executes the at least one validation function and build break function on the data that has been transformed to ensure the data that has been transformed is valid.

19. The method of claim 18 , wherein directly importing data from at least one remote location into a source code includes manually building an archive or library of the data in the source code.

20. The method of claim 18 , wherein directly importing data from at least one remote location into a source code includes using a standard dependency import mechanism of a build tool that enforces dependency checking including Apache Ant, Apache Maven, Gradle, MSBuild, sbt, or Waf.

21. The method of claim 18 , wherein incorporating a source identifier status code from the at least one remote location into the source code includes associating the source identifier status code with the data in the source code.

22. The method of claim 21 , wherein incorporating a source identifier status code from the at least one remote location into the source code includes adding a checksum or hash into the source code.

23. The method of claim 18 , further including adding a report function to the source code that provides a report of a mismatch between the source identifier status code and the current source identifier status code and identifies the data associated therewith.

24. The method of claim 18 , wherein running a build tool to perform a computer program build to compile the source code into an executable computer program includes running Apache Ant, Apache Maven, Gradle, MSBuild, sbt, or Waf.

25. The method of claim 18 , wherein the source code is in an open standard format for electronic data transfer.

26. The method of claim 25 , wherein the open standard format includes xml format.

27. The method of claim 18 , wherein the executable computer program is output in a JAR file with the data incorporated therein as one or more verified libraries.

28. A computer program product, comprising: a non-transitory computer-readable storage medium storing a source code, including:

one or more functions incorporating data obtained from at least one remote location;

a source identifier status code from the at least one remote location in the one or more functions, the source identifier status code corresponding to a date and a location at which the data was obtained from the at least one remote location;

a checksum query in the source code that queries the at least one remote location to determine if the source identifier status code matches a current source identifier status code at the at least one remote location;

at least one validation function configured to perform one or more tests on the data to ensure the data is valid;

a build-break function providing that a computer program build continues only if the source identifier status code and the current source identifier status code match and the at least one validation function confirms the data is valid.

29. The computer program product of claim 28 , wherein the source code is in an open standard format for electronic data.

30. The computer program product of claim 29 , wherein the open standard format includes xml format.

31. The computer program product of claim 28 , wherein the checksum query examines a correspondence between the source identifier status code and the current source identifier status code at a uniform resource locator of the at least one remote location corresponding to the source identifier status code.

32. The computer program product of claim 28 , wherein the source identifier status code includes a checksum or hash and the current source identifier status code includes a current checksum or current hash.

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE NAME OF THE RECEIVING PARTY PREVIOUSLY RECORDED ON REEL 67287 FRAME 363. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Aug 6, 2024
From: COTIVITI, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 068367/0732 →
SECURITY INTEREST Recorded May 1, 2024
From: COTIVITI, INC.
To: CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 067287/0363 →
RELEASE OF SECURITY INTEREST Recorded Jan 17, 2024
From: ALTER DOMUS (US) LLC
To: COTIVITI INC.
Reel/Frame 066147/0455 →
SECURITY INTEREST Recorded Jun 3, 2021
From: COTIVITI INC.
To: ALTER DOMUS (US) LLC, AS ADMINISTRATIVE AGENT
Reel/Frame 056420/0973 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 2, 2020
From: COTIVITI CORPORATION
To: COTIVITI INTERMEDIATE CORPORATION
Reel/Frame 052295/0673 →
MERGER Recorded Apr 2, 2020
From: COTIVITI INTERMEDIATE CORPORATION
To: COTIVITI HOLDINGS, INC.
Reel/Frame 052295/0805 →
MERGER Recorded Apr 2, 2020
From: COTIVITI HOLDINGS, INC.
To: COTIVITI, INC.
Reel/Frame 052296/0007 →
CHANGE OF NAME Recorded Apr 2, 2020
From: COTIVITI CORPORATION
To: COTIVITI INTERMEDIATE CORPORATION
Reel/Frame 052296/0066 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2018
From: CREEL, CHRISTOPHER TAYLOR; ALVIS, MYKEL
To: COTIVITI CORPORATION
Reel/Frame 047003/0591 →
Continuity (1)
Related Publication 20200104236A1 · Apr 2, 2020