Local Environment Cloning for Remote Pair Programming

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed development environments, developers often have differing schedules and may be geographically separated, making it challenging to implement pair programming effectively, as existing solutions rely on centralized databases and require developers to be in the same physical location.

Innovation Solution

A technique that allows creating a clone of a local development environment on a server, enabling multiple developers to edit or browse content simultaneously while maintaining the integrity of each developer's local environment, using a server-connected network to manage and synchronize changes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If developers use centralized databases to share development information, then real-time collaboration is improved, but developers must be in the same physical location and cannot work in their own local environments

Engineering Contradiction:
Improvereal-time collaborationVSAvoidflexibility in working location and schedule
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent creates a clone of the first client's local development environment on the server, allowing the second client to access and interact with this cloned environment remotely. This copying approach enables the second developer to work in their own location while still accessing the first developer's environment, resolving the contradiction between real-time collaboration and physical location requirements

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The server acts as an intermediary between the two clients, hosting the cloned environment and facilitating communication and synchronization. The server mediates the interaction by receiving operations from the second client, translating them into actions on the first client's local environment, and synchronizing changes back, enabling remote collaboration without requiring developers to be physically present in the same location

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If multiple developers access the same local environment simultaneously, then collaboration is enabled, but one developer may change or destroy another's local environment

Engineering Contradiction:
Improvecollaboration capabilityVSAvoidintegrity of local environment
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

Instead of allowing direct access to the original local environment, the system creates a cloned copy on the server. The second client interacts with this clone, and changes are synchronized back to the first client's environment through controlled operations. This copying mechanism protects the original environment from direct modification while enabling collaboration

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The system preemptively protects the first client's local environment by requiring that any changes made through the cloned environment undergo verification and approval processes. The server controls the synchronization of changes, allowing the first client to review and approve modifications before they are applied to the local environment, preventing destructive changes before they can occur

Inventive Principle:
Principle #9Preliminary anti-action

3Adaptability or versatility

If a clone of the local environment is created on the server, then remote pair programming is enabled, but network dependency and synchronization complexity increase

Engineering Contradiction:
Improveremote collaboration capabilityVSAvoidsystem architecture complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The server as an intermediary manages the complexity of remote collaboration by handling environment creation, operation translation, and change synchronization. This centralizes the complexity management, making the system easier to control and maintain despite the added network dependency

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system implements feedback mechanisms where the server continuously monitors and synchronizes changes between the cloned environment and the original local environment. This feedback loop ensures consistency and manages synchronization complexity through automated conflict resolution and change propagation

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10659522B2Sharing application local environment
Publication Date: 2020.05.19 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10659522B2 patent drawing
  • US10659522B2 patent drawing
  • US10659522B2 patent drawing

AI summary

Cloning a local environment is described. Cloning a local environment can enable sharing the environment during pair programming. Cloning can have other uses as well. A server or other computer may maintain a clone environment of a first client apart from a second client such that the cloned computing environment, mimicking the environment of the first client, may be maintained on behalf of and used by a second client.