Virtual Machine Image Update Service for Distributed Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processes for updating components in distributed computing environments are labor-intensive, error-prone, and lack centralization and automation, making it difficult to manage updates across multiple applications with various components.

Innovation Solution

Creating an inventory of components used by applications within the distributed computing environment, identifying applications that utilize a particular component, and updating it in an isolated computing environment, with a new application image being created and notified to users for future instantiations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual update process is used for components in distributed computing environment, then updates can be applied to applications, but the process becomes labor-intensive and error-prone

Engineering Contradiction:
Improveupdate accuracyVSAvoidmanual intervention required
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The system performs self-service by automatically detecting component updates, identifying affected applications through the inventory, and applying updates without requiring manual user intervention. The update service autonomously manages the entire update lifecycle including notification, execution, and verification.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system implements feedback mechanisms where the update service continuously monitors for component updates, receives notifications about available updates, and uses this information to automatically trigger update processes for affected applications, creating a closed-loop update management system.

Inventive Principle:
Principle #23Feedback

2Productivity

If centralized automation is implemented for component updates, then update efficiency improves, but system complexity increases

Engineering Contradiction:
Improveupdate speedVSAvoidsystem architecture
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The update management system is segmented into distinct functional components: an inventory service that tracks component-application relationships, and an update service that processes updates. This segmentation allows each component to specialize in specific tasks, improving efficiency while managing complexity through modular design.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The inventory data structure serves multiple functions: it tracks which applications use which components, enables identification of affected applications when updates are available, and provides the basis for automated update deployment. This multi-functionality reduces the need for separate specialized systems.

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

3Loss of time

If manual identification of component updates is required, then user control is maintained, but the update process becomes time-consuming and non-scalable

Engineering Contradiction:
Improveupdate detection timeVSAvoidscalability
Core Design Contradiction:
Loss of timeVSAdaptability or versatility

Solution Approach 1:

The inventory of component-application relationships is created and maintained in advance, before updates are needed. This preliminary action enables the system to quickly identify affected applications when updates become available, eliminating the time-consuming process of manual identification and enabling scalable deployment across numerous applications.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8533701B2Virtual machine image update service
Publication Date: 2013.09.10 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8533701B2 patent drawing
  • US8533701B2 patent drawing
  • US8533701B2 patent drawing

AI summary

Systems, methods, and computer-readable media for updating a component utilized by an application within a distributed computing environment. An inventory of components relied on by applications within a distributed computing environment is created and maintained to facilitate identifying applications utilizing a particular component. A determination is made from the inventory of applications that utilize the particular component. An indication is received that an update is available for the particular component. An application image for an application utilizing the particular component is booted in an isolated computing environment to allow the component to be updated. A new image of the application is created to reflect the updated component. A user, such as a developer, of the application may be notified that the new image is available for future instantiations of the application.