Variant Type Container for Cross-Language Interoperability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Large software projects face challenges in interacting between components written in different programming languages due to the difficulty of handling values stored in various formats.

Innovation Solution

A method involving a container that passes values by reference and uses accessor methods to convert them into a desired format, allowing interoperability between programs in different languages by isolating the programmer from type details and enabling conversion between incompatible types, such as date to integer and back.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If values are passed directly between components in different programming languages, then interoperability is achieved, but type format incompatibility causes errors during instruction execution

Engineering Contradiction:
Improveinteroperability between different programming languagesVSAvoiderror prevention during instruction execution
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent introduces a Variant type as an intermediary data structure that sits between components written in different programming languages. This Variant type acts as a mediator that can hold values of different types and formats, allowing JavaScript components to pass values to ActionScript components without direct type compatibility requirements. The Variant type buffers the type format differences, enabling interoperability while maintaining reliability by preventing type-related execution errors.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If type conversion is performed to enable interoperability, then adaptability between languages is improved, but complexity of handling various value formats increases

Engineering Contradiction:
Improveconversion between incompatible typesVSAvoidcomplexity of handling various value formats
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The Variant type is designed as a universal data structure that can accommodate multiple value formats and types within a single construct. Instead of creating separate conversion mechanisms for each type combination, the Variant type provides a multi-functional container that can hold and manage different types of values (strings, numbers, dates, etc.) uniformly. This universality reduces the overall system complexity by providing a single, standardized approach to handling type conversions across different programming languages.

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

Solution Approach 2:

The patent applies preliminary action by performing type conversion and validation before values are passed between language components. The Variant type pre-processes and standardizes values into a compatible format before they reach the target component, preventing type-related errors from occurring during execution. This advance preparation eliminates the need for complex runtime type checking and conversion logic in the receiving components.

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If programmer isolation from type details is implemented, then ease of operation is improved, but loss of information about value types occurs

Engineering Contradiction:
Improveisolation of programmer from type detailsVSAvoidinformation about value type
Core Design Contradiction:
Ease of operationVSLoss of information

Solution Approach 1:

The Variant type implements feedback mechanisms that provide type information back to the programmer when needed. While the programmer is isolated from detailed type handling during normal operation (improving ease of use), the system maintains and provides access to type information through the Variant type's internal structure. This feedback allows programmers to retrieve type details when necessary for debugging, validation, or dynamic type checking, without requiring them to manage type complexity during routine development.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8176469B2Inter language interoperability using a variant type
Publication Date: 2012.05.08 ORACLE INT CORP
  • US8176469B2 patent drawing
  • US8176469B2 patent drawing
  • US8176469B2 patent drawing

AI summary

A container can be used to atomically convert types of values to pass the values between programs of different programming languages. Different programs written in different programming languages can pass the values by reference to a container and can use an accessor method associated with the container to convert the values to a desired format.