Virtual Environment Interface for Data Access and Synchronization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The complexity of accessing and synchronizing data objects across various data object systems and remote computers in a computing environment poses challenges for applications, particularly in virtual environments like web browsers, where isolation and security are crucial, but managing cache synchronization and access protocols can be inefficient and cumbersome.

Innovation Solution

A computing environment component handles data object access and synchronization across multiple systems and devices, with a virtual environment interface allowing applications to interact with this component, providing a programmatic interface for seamless access and synchronization, even when the virtual environment is not active.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If applications directly access data objects through multiple data object systems and remote computers, then data access capability is improved, but system complexity and synchronization difficulty increase

Engineering Contradiction:
Improvedata access capabilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a computing environment component as an intermediary layer between applications and multiple data object systems. This component provides a unified programming model that translates application requests into system-specific operations, enabling applications to access diverse data objects (files, databases, registry entries) through a single interface without directly managing the complexity of each underlying system.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The computing environment component implements a universal programming model that handles multiple types of data objects and access protocols through a single unified interface. This allows applications to interact with various data object systems (filesystem, database management system, registry) using the same programming constructs, eliminating the need for application-specific code for each system type.

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

2Adaptability or versatility

If applications access data objects stored on remote computers, then data availability is improved, but synchronization complexity and access time increase

Engineering Contradiction:
Improvedata availabilityVSAvoidsynchronization time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The computing environment component performs preliminary actions by pre-fetching and caching data objects from remote computers before they are actually needed by the application. It also pre-establishes synchronization mechanisms and maintains local representations of remote data objects, reducing the time required for actual data access and synchronization operations.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If virtual environment restricts application access for security, then security is improved, but data access efficiency deteriorates

Engineering Contradiction:
ImprovesecurityVSAvoiddata access efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The computing environment component serves as a trusted intermediary between the virtual environment and data object systems. It implements security policies and access controls at the intermediary layer, allowing the virtual environment to maintain its security restrictions while still enabling applications to access required data objects through the controlled interface, thus preserving both security and efficiency.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Stability of the object's composition

If computing environment component manages all data object access, then access consistency is improved, but processing overhead increases

Engineering Contradiction:
Improveaccess consistencyVSAvoidprocessing overhead
Core Design Contradiction:
Stability of the object's compositionVSUse of energy by moving object

Solution Approach 1:

The computing environment component implements partial management of data object access by providing centralized control for operations requiring consistency (such as synchronization and security-critical accesses) while allowing direct access for simple, low-risk operations. This selective approach maintains access consistency where needed while minimizing processing overhead for routine operations.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS8413139B2Programming model for application and data access and synchronization within virtual environments
Publication Date: 2013.04.02 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8413139B2 patent drawing
  • US8413139B2 patent drawing
  • US8413139B2 patent drawing

AI summary

Applications executing on computer systems may execute in a virtual environment, such as a web application executing in a web browser. An application may access the actual computing environment (such as the filesystem), but this accessing may be complicated; e.g., the computing environment may be deployed across many computers and devices, and may be synchronized for offline access via a local cache. A computing environment component may service the complex computing environment (e.g., by managing the cache and retrieving remotely stored data objects) and expose it as a well-organized set of data objects. A virtual environment interface (e.g., a web browser plug-in) may allow applications hosted in the virtual environment to access the computing environment through the computing environment component. Programmatic interfaces may also be implemented to permit such accessing via familiar programming languages and techniques, such as JavaScript libraries exposed to web applications in the web browser.