Remote incremental program binary compatibility verification using API definitions
First Claim
1. A method of operating a computer system, said method comprising:
- providing a first version of a program in memory, said first version of a program including at least one program unit, each program unit comprising an Application Programing Interface (API) definition file and an implementation, each API definition file defining items in its associated program unit that are made accessible to one or more other program units, each implementation including executable code corresponding to said API definition file, said executable code including type specific instructions and data; and
performing a first verification including verifying said program prior to execution of said program, said first verification including indicating a verification error when a first version of a first program unit implementation is not internally consistent;
indicating a verification error when said first version of said first program unit implementation is inconsistent with a first version of said first program unit API definition file associated with said first version of said first program unit implementation;
receiving a second version of said first program unit implementation and a second version of said first program unit API definition file, said second version being a revised version of said first version;
performing a second verification including verifying said second version of said first program unit implementation, including indicating a verification error when said second version of said first program unit implementation is not internally consistent; and
indicating a verification error when said second version of said fist program unit implementation is inconsistent with said second version of said first program unit API definition file; and
performing a third verification including verifying said second version of said first program unit implementation is binary compatible with said first version of said first program unit implementation by comparing said first version of said first program unit API definition file and said second version of said first program unit API definition file.
2 Assignments
0 Petitions
Accused Products
Abstract
A method of operating a computer system includes providing a first version of a program in memory and verifying the program prior to program execution. Program verification includes indicating a verification error when a first version of a first program unit implementation is not internally consistent, indicating a verification error when the first version of the first program unit implementation is inconsistent with the version of the program unit API definition file associated with the first version of the first program unit implementation, receiving a second version of the first program unit implementation and a second version of the first program unit implementation is binary compatible with the first version of the first program unit implementation by comparing the first version of the first program unit API definition file and the second version of the first program unit API definition unit.
-
Citations
19 Claims
-
1. A method of operating a computer system, said method comprising:
-
providing a first version of a program in memory, said first version of a program including at least one program unit, each program unit comprising an Application Programing Interface (API) definition file and an implementation, each API definition file defining items in its associated program unit that are made accessible to one or more other program units, each implementation including executable code corresponding to said API definition file, said executable code including type specific instructions and data; and
performing a first verification including verifying said program prior to execution of said program, said first verification including indicating a verification error when a first version of a first program unit implementation is not internally consistent;
indicating a verification error when said first version of said first program unit implementation is inconsistent with a first version of said first program unit API definition file associated with said first version of said first program unit implementation;
receiving a second version of said first program unit implementation and a second version of said first program unit API definition file, said second version being a revised version of said first version;
performing a second verification including verifying said second version of said first program unit implementation, including indicating a verification error when said second version of said first program unit implementation is not internally consistent; and
indicating a verification error when said second version of said fist program unit implementation is inconsistent with said second version of said first program unit API definition file; and
performing a third verification including verifying said second version of said first program unit implementation is binary compatible with said first version of said first program unit implementation by comparing said first version of said first program unit API definition file and said second version of said first program unit API definition file. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A program storage device readable by a machine, embodying a program of instructions executable by the machine to perform program verification, comprising:
-
providing a first version of a program in memory, said first version of a program including at least one program unit, each program unit comprising an Application Programming Interface (API) definition file and an implementation, each API definition file defining items in its associated program unit that are made accessible to one or more other program units, each implementation including execute code corresponding to said API definition file, said executable code including type specific instructions and data; and
performing a first verification including verifying said program prior to execution of said program said first verification including indicating a verification error when a first version of a first program unit implementation is not internally consistent;
indicating a verification error when said first version of said first program unit implementation is inconsistent with a first version of said first program unit API definition file associated with said first version of said first program unit implementation;
receiving a second version of said first program unit implementation and a second version of said first program unit API definition file, said second version being a revised version of said first version;
performing a second verification including verifying said second version of said first program unit implementation, including indicating a verification error when said second version of said first program unit implementation is not internally consistent; and
indicating a verification error when said second version of said first program unit implementation is inconsistent with said second version of said first program unit API definition file; and
performing a third verification including verifying said second version of said first program unit implementation is binary compatible with said first version of said first program unit implementation by comparing said first version of said first program unit API definition file and said second version of said first program unit API definition file. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A system for executing a software application, the system comprising:
-
a computing system that generates executable code, comprising means for providing a first version of a program in memory, said first version of a program including at least one program unit, each program unit comprising an Application Programming Interface (API) definition file and an implementation, each API definition file defining items in its associated program unit that are made accessible to one or more other program units, each implementation including executable code corresponding to said API definition file, said executable code including type specific instructions and data; and
means for performing a first verification including verifying said program prior to execution of said program, said first verification including means for indicating a verification error when a first version of a first program unit implementation is not internally consistent;
means for indicating a verification error when said first version of said first program unit implementation is inconsistent with a first version of said first program unit API definition file associated with said first version of said fist program unit implementation;
means for receiving a second version of said first program unit implementation and a second version of said first program unit API definition file, said second version being a revised version of said first version;
means for performing a second verification including verifying said second version of said first program unit implementation, including means for indicating a verification error when said second version of said first program unit implementation is not internally consist; and
means for indicating a verification error when said second version of said first program unit implementation is inconsistent with said second version of said first program unit API definition file; and
means for performing a third verification including verifying said second version of said first program unit implementation is binary compatible with said first version of said first program unit implementation by comparing said first version of said first program unit API definition file and said second version of said first program unit API definition file. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A resource-constrained device, comprising:
-
memory for providing a remotely verified application software program including at least one program unit, each program unit comprising an Application Programming Interface (API) definition file and an implementation, each API definition file defining items in its associated program unit that arc made accesible to one or more other program units, each implementation including executable code corresponding to said API definition file, said executable code including type specific instructions and data, said remote verification including verifying a second version of a first program unit implementation is binary compatible with a first version of said first program unit implementation by comparing said first version of said first program unit API definition file and said second version of said first program unit API definition file; and
a virtual machine that is capable of executing instructions included within said application software program. - View Dependent Claims (17, 18)
-
-
19. A program storage device readable by a machine, embodying a program of instructions executable by the machine to perform program verification, comprising:
-
providing a first version of a program in memory, said first version of a program including at least one program unit, each program unit comprising an Application Programming Interface (API) definition file and an implementation, each API definition file defining items in its associated program unit that are made accessible to one or more other program units, each implementation including executable code corresponding to said API definition file, said executable code including type specific instructions and data; and
performing a first verification including verifying said program prior to execution of said program, said first verification including indicating a verification error when a first version of a first program unit implementation is not internally consistent;
indicating a verification error when said first version of said first program unit implementation is inconsistent with a first version of said first program unit API definition file associated with said first version of said first program unit implementation;
receiving a second version of said first program unit implementation and a second version of said first program unit API definition file, said second version being a revised version of said fit version;
performing a second verification including verifying said second version of said first program unit implementation, including indicating a verification error when said second version of said first program unit implementation is not internally consistent; and
indicating a verification error when said second version of said first program unit implementation is inconsistent with said second version of said first program unit API definition file; and
performing a third verification including verifying said second version of said first program unit implementation is binary compatible with said first version of said fist program unit implementation by comparing said first version of said first program unit API definition file and said second version of said first program unit API definition file;
indicating a verification error when a second program unit implementation that references said first program unit is inconsistent with said first version of said first program unit API definition file;
indicating said second program unit implementation is verified with said second version of said first program unit API definition file when said second version of said first program unit binary is compatible with said first version of said first program unit implementation; and
indicating said second program unit implementation is verified with said second version of said first program unit implementation when said second program unit implementation is verified with said second version of said first program unit API definition file.
-
Specification