Host Environment Representation Marshaling in Scripting Environments

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing solutions for passing data items between host and scripting environments often result in the loss of semantically meaningful information and adverse performance impacts, or require developers to manage new data types, limiting reusability and portability.

Innovation Solution

The method involves passing a host environment representation of a data item to a scripting environment without immediate conversion, allowing lazy conversion only when necessary, and using a data structure with an indicator to track modifications, thus preserving semantically meaningful representations and avoiding unnecessary data type management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If conversion between different representations is performed at the interface, then data compatibility between host and scripting environments is achieved, but semantically meaningful information is lost and performance deteriorates

Engineering Contradiction:
Improvedata compatibilityVSAvoidsemantically meaningful information
Core Design Contradiction:
Adaptability or versatilityVSLoss of information

Solution Approach 1:

The patent introduces an intermediary data structure that contains both the host environment representation and the scripting environment representation simultaneously. This intermediary structure acts as a bridge that preserves both representations without losing semantically meaningful information, allowing the system to maintain data compatibility while avoiding the information loss associated with direct conversion.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent performs preliminary conversion by creating and storing both representations in the intermediary data structure before any actual data exchange occurs. This preliminary action ensures that both the host environment and scripting environment receive data in their native formats without requiring runtime conversion, thereby preserving semantically meaningful information while maintaining compatibility.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If conversion between different representations is performed at the interface, then data compatibility between host and scripting environments is achieved, but performance of the computing platform deteriorates

Engineering Contradiction:
Improvedata compatibilityVSAvoidperformance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent performs the conversion action in advance by populating the intermediary data structure with both representations before data exchange. This eliminates the need for runtime conversion operations, thereby maintaining data compatibility while avoiding performance deterioration during actual script execution and data processing.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

By pre-converting and storing both representations in the intermediary data structure, the patent enables continuous data exchange between host and scripting environments without interruption for conversion operations. This maintains the continuity of useful action and improves overall system performance by eliminating conversion overhead during runtime.

Inventive Principle:
Principle #20Continuity of useful action

3Adaptability or versatility

If additional distinct data types are created for each representation, then data compatibility is maintained, but device complexity increases and script portability is limited

Engineering Contradiction:
Improvedata compatibilityVSAvoiddata type management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent creates a universal intermediary data structure that can hold multiple representations simultaneously. This single data structure serves multiple functions by accommodating both host environment and scripting environment representations, thereby maintaining data compatibility without requiring separate distinct data types for each representation and reducing overall system complexity.

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

Solution Approach 2:

The patent merges the host environment representation and scripting environment representation into a single intermediary data structure. This combining approach eliminates the need for multiple separate data types, reduces data type management complexity, and maintains script portability while preserving data compatibility across different environments.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS8826306B2Hidden representations for marshaling through hosted scripting environments
Publication Date: 2014.09.02 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8826306B2 patent drawing
  • US8826306B2 patent drawing
  • US8826306B2 patent drawing

AI summary

Systems and methods are described for passing a data item to and obtaining the data item from a scripting environment hosted by a host environment, wherein each environment uses a different representation of the data item. The host environment passes the data item to the scripting environment by passing a host environment representation of the data item that is hidden from developers of scripts to be executed by the scripting environment. This enables the original host environment representation of the data item to be preserved even after the data item has been passed to and from the scripting environment in the case where the scripting environment does not modify the data item, and also facilitates lazy conversion of the data item or avoidance of conversion entirely in the case where the scripting environment does not modify the data item.