Virtual Machine Isolation for Development Environment Dependency Conflicts

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Setting up a development environment on a local computer can be time-consuming and prone to dependency conflicts between different versions of shared libraries, leading to functionality issues and incompatibility across different developer computers.

Innovation Solution

A method for providing a virtual development environment using virtual machines, where configuration data is retrieved from a configuration data store to identify dependent resources and execute corresponding virtual machine images in a virtual machine execution space, isolating the development environment from the host machine and allowing central management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If developers independently set up development environments on their local computers, then each developer can have customized development tools and configurations, but dependency conflicts between different versions of shared libraries occur and compatibility across different developer computers deteriorates

Engineering Contradiction:
Improvecustomization of development environmentVSAvoidcompatibility across developer computers
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent segments the development environment into isolated virtual machine instances, where each developer's environment is separated into its own virtualized space. This allows each developer to have customized tools and configurations without affecting others, as the virtual machines create independent execution contexts that prevent dependency conflicts between different versions of shared libraries.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a central management system that acts as an intermediary between developers and their development environments. This system provisions, configures, and manages virtual machine instances, handling dependency resolution and environment setup automatically. The intermediary ensures compatibility across different developer computers by standardizing the virtualized environment delivery while allowing customization within each isolated instance.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If developers set up development environments on local computers, then developers can access and modify source code locally, but the setup process becomes time-consuming and requires troubleshooting dependency conflicts

Engineering Contradiction:
Improvelocal access to source codeVSAvoidtime for setting up and troubleshooting environment
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-configuring development environments within virtual machine images before they are provisioned to developers. Dependencies, shared libraries, and toolchains are prepared in advance during the virtual machine image creation process, eliminating the need for developers to manually resolve dependency conflicts during local setup. The environment is ready-to-use upon provisioning, significantly reducing setup time.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements self-service through automated provisioning and management of virtual machine instances. The central management system automatically handles environment setup, dependency resolution, and configuration based on developer requirements, eliminating the need for manual troubleshooting. The system serves itself by managing the entire lifecycle of development environments without requiring developer intervention for complex setup tasks.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10365954B1Using virtual machines to manage other virtual machines in a development environment
Publication Date: 2019.07.30 INTUIT INC
  • US10365954B1 patent drawing
  • US10365954B1 patent drawing
  • US10365954B1 patent drawing

AI summary

The present disclosure relates to providing a virtual development environment by receiving a request for a development environment from a user, identifying resources from the request and resource on which the requested resource depends, and obtaining virtual machine images for each resource from a repository. The virtual machine images are executed in separate virtual machines to provide a development environment and related resources to the user.