Automatic Certificate of Origin Generation for Software Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Manually generating a Certificate of Origin (COO) for software or firmware systems is a tedious and error-prone process due to the complexity of tracking multiple components from different origins and licenses, especially when these components vary across different embedded systems and versions.

Innovation Solution

A system and method for automatic generation of COO during compilation, which processes source modules to generate binary modules, combines them into an executable file, and generates a COO file based on control files, utilizing a compiling module, linker module, and control file processing module to retrieve and combine COO information from standard reference files or source/binary module control files.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If manual COO generation is performed, then flexibility in handling diverse components is maintained, but time consumption and error rate increase significantly

Engineering Contradiction:
ImproveCOO generation speedVSAvoidManual COO creation time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by automatically collecting component information, tracking origins and licenses during the build process, and preparing COO data in advance. The compiler and linker automatically gather component metadata and store it in a structured format, so that when COO generation is needed, the data is already organized and ready, eliminating the need for manual information gathering and reducing both time consumption and errors.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If manual COO generation is performed, then complex component tracking can be handled, but error rate increases due to tedious manual work

Engineering Contradiction:
ImproveCOO accuracyVSAvoidErrors in manual COO creation
Core Design Contradiction:
ReliabilityVSObject-generated harmful factors

Solution Approach 1:

The system implements self-service by automatically tracking component origins, licenses, and dependencies throughout the compilation and linking process. The compiler and linker self-automate the collection of COO information, eliminating manual intervention entirely. This automated self-tracking ensures accuracy by consistently applying the same rules and procedures without human error, while still handling complex component relationships through systematic data collection and organization.

Inventive Principle:
Principle #25Self-service

3Productivity

If automated COO generation is implemented, then time efficiency improves, but system complexity increases due to additional modules

Engineering Contradiction:
ImproveCOO generation efficiencyVSAvoidBuilding system structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system achieves universality by designing the compiler and linker to perform multiple functions: traditional compilation and linking tasks plus automatic COO information collection and management. These existing building tools are enhanced with additional capabilities to handle component tracking, origin identification, and license information gathering. This multi-functionality approach avoids creating separate dedicated systems, thereby reducing overall system complexity while maintaining high COO generation efficiency.

Inventive Principle:
Principle #6Universality (Multi-functionality)

4Measurement precision

If comprehensive component tracking is performed, then COO accuracy improves, but processing complexity increases

Engineering Contradiction:
ImproveComponent origin tracking accuracyVSAvoidTracking system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system introduces an intermediary mechanism where the compiler and linker act as mediators between the source code components and the COO generation process. These intermediaries automatically collect component information, track origins and licenses, and organize data during the natural compilation and linking flow. This intermediary approach simplifies the tracking system by integrating it into existing tools rather than creating a separate complex tracking infrastructure, thereby maintaining high measurement precision while reducing overall system complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9417871B2Automatic generation of certificate of origin (COO) for software systems
Publication Date: 2016.08.16 AMERICAN MEGATRENDS
  • US9417871B2 patent drawing
  • US9417871B2 patent drawing
  • US9417871B2 patent drawing

AI summary

A system includes at least one computing device. The computing device has one or more processors, a memory, and a storage storing computer executable code. The computer executable code, when executed at the processors, is configured to process a plurality of source modules to generate a plurality of binary modules corresponding to the source modules. Each source module has at least one source file and a control file including a certificate of origin (COO) of the source module, and each binary module generated from each source module has at least one corresponding binary file and a copy of the control file. Once the binary modules are generated, the computer executable code combines the binary files of each of the binary modules to generate an executable file, and generates a COO file for the executable file based on the control files from the source modules or the binary modules.