Virtual Appliance Patching for Software Provenance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The widespread adoption of virtual appliances as software distribution vehicles is hindered by the need for publishers to become implicit re-distributors of all software components, as they typically own only a component of the complete software stack, and there is a lack of transparency regarding modifications to open-source components.

Innovation Solution

Publishing virtual appliances as patches comprising file-level differences relative to a parent appliance, allowing publishers to distribute a composite software stack without re-distributing all components, while providing transparency through metadata and digital signatures.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If a publisher provides only their own component as an install package, then the publisher maintains control over their component, but the customer must acquire, install and configure multiple prerequisite components from different organizations

Engineering Contradiction:
ImprovePublisher controlVSAvoidCustomer configuration complexity
Core Design Contradiction:
Ease of manufactureVSDevice complexity

Solution Approach 1:

The software stack is segmented into independent components, each with its own versioning and provenance tracking. The publisher provides only their component with metadata describing dependencies, allowing customers to assemble the complete stack from separate, versioned components without requiring the publisher to redistribute entire stacks.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A virtual appliance library acts as an intermediary that stores pre-integrated software stacks and their provenance metadata. This library enables customers to retrieve complete operational stacks without the publisher needing to redistribute all components, while maintaining dependency information for transparency.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If a publisher integrates the full stack in a virtual image, then the customer receives a fully operational software stack, but the publisher becomes an implicit re-distributor of all software components

Engineering Contradiction:
ImproveCustomer deployment easeVSAvoidPublisher redistribution scope
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The virtual appliance is segmented into a base image and configurable components. The base image contains the operational stack, while components are identified by unique versioned identifiers. This allows the publisher to provide only their component with full provenance information, eliminating the need to redistribute the entire stack.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Instead of redistributing the complete software stack, the system creates a virtual copy of the base image and applies only the necessary component changes. This allows customers to receive fully operational stacks without the publisher needing to redistribute all underlying components.

Inventive Principle:
Principle #26Copying

3Adaptability or versatility

If a publisher uses open source components in a virtual image, then the customer can use the software stack, but the customer must accept the original open source license agreement without knowing what parts were modified

Engineering Contradiction:
ImproveSoftware stack flexibilityVSAvoidModification transparency
Core Design Contradiction:
Adaptability or versatilityVSLoss of information

Solution Approach 1:

Provenance metadata acts as an intermediary layer between the open source component and the customer. This metadata tracks the complete history of modifications, showing which parts of the open source component were changed and by whom, while maintaining the original license agreement. Customers receive full transparency about modifications without needing to renegotiate licenses.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system replaces the mechanical approach of physically modifying source code with a virtual layer of provenance metadata. This metadata layer records all modifications to open source components, allowing customers to see exactly what was changed while the actual component files remain intact and licensed under their original agreements.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS9195482B2Method and apparatus for distributing a composite software stack as a virtual machine image
Publication Date: 2015.11.24 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9195482B2 patent drawing
  • US9195482B2 patent drawing
  • US9195482B2 patent drawing

AI summary

A composite software stack is distributed as a virtual appliance. A new virtual appliance is published by obtaining a parent virtual appliance; configuring the new virtual appliance; obtaining file level differences between the parent virtual appliance and the new virtual appliance; and publishing the new virtual appliance as a patch comprising the file level differences relative to the parent virtual appliance. The file level differences comprise additions, deletions and/or modifications to the parent virtual appliance. An update to a given virtual appliance can be published as a fix pack, wherein the fix pack comprises file level differences relative to the given virtual appliance. An end user obtains a desired virtual appliance by selecting the desired virtual appliance; obtaining metadata for the desired virtual appliance comprising an identifier of a patch file and a parent virtual appliance; and applying the patch file to the parent virtual appliance to get a modified virtual appliance.