IP Library › Granted Patent US 11,726,773
Granted Patent B2
US 11,726,773 · App. 17/324,872 · Granted Aug 15, 2023

Software supply chain quality control evaluation using blockchain

Inventors: Michael F. Angelo (Houston, TX); Alexander Hoole (Santa Clara, CA)
Assignee: Micro Focus LLC
G06F8/70H04L9/3239G06F16/27H04L9/50
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,726,773
App. No.
17/324,872
Granted
Aug 15, 2023
Kind
B2
Abstract

A primary blockchain for a software application is created that comprises a first block associated with a software component of the software application. An event is received that is associated with the software component. In response to receiving the event, a component blockchain is created that is associated with the software component. The component blockchain comprises a second block associated with the event. The component blockchain links to the primary blockchain. This provides a structure for managing supply chains of software components. As new software components are received, the new software components can be managed and tracked for quality/security.

Claims (51)

1. A system comprising:

a microprocessor; and

a non-transitory computer readable storage medium, coupled with the microprocessor and comprising microprocessor readable and executable instructions that, when executed by the microprocessor, cause the microprocessor to:

create a primary blockchain that comprises a first block associated with a first software component of a software application;

receive a first event associated with the first software component of the software application; and

in response to receiving the first event associated with the first software component of the software application:

create a first component blockchain that is associated with the first software component of the software application, wherein the first component blockchain comprises a second block associated with the first event associated with the first software component of the software application; and

link the first component blockchain to the primary blockchain, wherein the first component blockchain comprises a component validation block that indicates that the first software component of the software application is verified to a first level of quality and/or security, wherein the primary blockchain comprises an application validation block that indicates that the software application is verified to a second level of quality and/or security, and wherein the application validation block is based at least in part on the component validation block.

2. The system of claim 1 , wherein the microprocessor readable and executable instructions that, when executed by the microprocessor, further cause the microprocessor to:

receive a second event, wherein the second event is to add a validated software component of the software application; and

in response to receiving the second event:

add a third block to the primary blockchain, wherein the third block is for the validated software component of the software application; and

link a second component blockchain for the validated software component of the software application to the third block in the primary blockchain.

3. The system of claim 2 , wherein linking the second component blockchain for the validated software component of the software application to the third block in the primary blockchain is based on a reverse link.

4. The system of claim 1 , wherein the first software component of the software application is an internally developed software component of the software application, and wherein linking the first component blockchain to the primary blockchain is based on a forward link.

5. The system of claim 1 , wherein the first component blockchain comprises a third block, wherein the third block is for a second software component of the software application, and wherein the third block points to a second component blockchain associated with the second software component of the software application.

6. The system of claim 5 , wherein the first component blockchain comprises a first component validation block, wherein the second component blockchain comprises a second component validation block, wherein the primary blockchain comprises an application validation block, and wherein the application validation block is based on the first component validation block and the second component validation block.

7. The system of claim 1 , wherein the first component blockchain comprises a plurality of blocks, and wherein the plurality of blocks are associated with at least one of the following types of events: a version of the first software component of the software application, a check-in time for the first software component of the software application, who checked in the first software component of the software application, modifications to the first software component of the software application, testing of the first software component of the software application, specific tests run on the first software component of the software application, when the specific tests were run on the first software component of the software application, identified bugs in the first software component of the software application, depth of tests of the first software component of the software application, a percentage of code paths covered in the first software component of the software application, customer feedback of the first software component of the software application, how the identified bugs were mitigated and/or fixed in the first software component of the software application, virus scans of the first software component, types of security tests run on the first software component of the software application, anomalies detected when testing the first software component of the software application, integrated development environments used in developing the first software component of the software application, compilers used in compiling the first software component of the software application, virtual machines used in testing the first software component of the software application, sign-offs of testing processes for the first software component of the software application, and a history of retesting to validate fixes for the first software component of the software application.

8. The system of claim 1 , wherein the first component blockchain comprises a plurality of blocks, wherein the plurality of blocks are based on a plurality events, and wherein the plurality of events and data associated with the plurality of events are stored in the plurality of blocks and are used to generate a component validation block stored at an end of the first component blockchain.

9. The system of claim 1 , wherein the primary blockchain comprises a third block for a second software component of the software application, wherein a second component blockchain links to the third block for the second software component of the software application, and wherein the microprocessor readable and executable instructions that when executed by the microprocessor, further cause the microprocessor to:

receive a second event, wherein the second event is an application level event; and

in response to receiving the application level event:

add a fourth block associated with the second event to the first component blockchain; and

add a fifth block associated with the second event to the second component blockchain.

10. A method comprising:

creating, by a microprocessor, a primary blockchain that comprises a first block associated with a first software component of a software application;

receiving, by the microprocessor, a first event associated with the first software component of the software application; and

in response to receiving the first event associated with the first software component of the software application:

creating, by the microprocessor, a first component blockchain that is associated with the first software component of the software application, wherein the first component blockchain comprises a second block associated with the first event associated with the first software component of the software application; and

linking, by the microprocessor, the first component blockchain to the primary blockchain, wherein the first component blockchain comprises a component validation block that indicates that the first software component of the software application is verified to a first level of quality and/or security, wherein the primary blockchain comprises an application validation block that indicates that the software application is verified to a second level of quality and/or security, and wherein the application validation block is based at least in part on the component validation block.

11. The method of claim 10 , further comprising:

receiving a second event, wherein the second event is to add a validated software component of the software application; and

in response to receiving the second event:

adding a third block to the primary blockchain, wherein the third block is for the validated software component of the software application; and

linking a second component blockchain for the validated software component of the software application to the third block in the primary blockchain.

12. The method of claim 11 , wherein linking the second component blockchain for the validated software component of the software application to the third block in the primary blockchain is based on a reverse link.

13. The method of claim 10 , wherein the first software component of the software application is an internally developed software component of the software application, and wherein linking the first component blockchain to the primary blockchain is based on a forward link.

14. The method of claim 10 , wherein the first component blockchain comprises a third block, wherein the third block is for a second software component of the software application, and wherein the third block points to a second component blockchain associated with the second software component of the software application.

15. The method of claim 14 , wherein the first component blockchain comprises a first component validation block, wherein the second component blockchain comprises a second component validation block, wherein the primary blockchain comprises an application validation block, and wherein the application validation block is based on the first component validation block and the second component validation block.

16. The method of claim 10 , wherein the first component blockchain comprises a plurality of blocks, wherein the plurality of blocks are based on a plurality events, and wherein the plurality of events and data associated with the plurality of events are stored in the plurality of blocks and are used to generate a component validation block stored at an end of the first component blockchain.

17. The method of claim 10 , wherein the primary blockchain comprises a third block for a second software component of the software application, and wherein a second component blockchain links to the third block for the second software component of the software application, and further comprising:

receiving a second event, wherein the second event is an application level event; and

in response to receiving the application level event:

adding a fourth block associated with the second event to the first component blockchain; and

adding a fifth block associated with the second event to the second component blockchain.

18. A non-transitory computer readable storage medium having stored thereon instructions that cause a microprocessor to execute a method, the method comprising:

creating a primary blockchain that comprises a first block associated with a first software component of a software application;

receiving a first event associated with the first software component of the software application; and

in response to receiving the first event associated with the first software component of the software application:

creating a first component blockchain that is associated with the first software component of the software application, wherein the first component blockchain comprises a second block associated with the first event associated with the first software component of the software application; and

linking the first component blockchain to the primary blockchain, wherein the first component blockchain comprises a component validation block that indicates that the first software component of the software application is verified to a first level of quality and/or security, wherein the primary blockchain comprises an application validation block that indicates that the software application is verified to a second level of quality and/or security, and wherein the application validation block is based at least in part on the component validation block.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 19, 2021
From: ANGELO, MICHAEL F.; HOOLE, ALEXANDER
To: MICRO FOCUS LLC
Reel/Frame 056291/0741 →
Continuity (1)
Related Publication 20220374229A1 · Nov 24, 2022