Nominal Type Correlation via Intermediate Mapping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developers face challenges in ensuring interoperability between applications using different type frameworks, such as nominal and structural types, which often require complex type conversions and adapters, leading to inefficiencies and security concerns due to competing interests in speed, customizability, and stability.

Innovation Solution

A system that uses a single intermediate type based on common type shapes among applications, with automatically generated proxies to map and correlate type shapes and structures, allowing applications to interoperate without needing separate adapters for each type framework.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a strong nominal type framework is used to ensure security and stability, then type safety and system stability are improved, but application interoperability and flexibility deteriorate due to prohibition from accessing functions and data of other type frameworks

Engineering Contradiction:
Improvetype safetyVSAvoidapplication interoperability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent introduces reflection mechanisms and type mapping systems as intermediaries between nominal type frameworks. These intermediaries enable applications to access and correlate data from different type frameworks without compromising the strong typing constraints, thus maintaining type safety while enabling interoperability through a mediating layer that translates between type systems

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent creates universal type correlation mechanisms that can operate across multiple nominal type frameworks simultaneously. The reflection infrastructure and mapping systems are designed to be framework-agnostic, allowing a single application to interact with multiple different type systems through unified interfaces, thereby achieving versatility without sacrificing the individual integrity of each type framework

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

2Adaptability or versatility

If separate adapters are written for each application to map type structures, then type interoperability is achieved, but device complexity and development effort increase significantly

Engineering Contradiction:
Improvetype interoperabilityVSAvoidadapter complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements self-service type correlation through automatic reflection mechanisms. The system automatically inspects type structures, identifies compatible fields, and generates mapping relationships without requiring manual adapter code for each application pair. This self-reflective approach eliminates the need for developers to write separate adapters, reducing complexity while maintaining interoperability

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent performs preliminary type structure analysis and correlation at system initialization or compilation time. By pre-computing type compatibility relationships and storing them in mapping tables, the system avoids the need for runtime adapter generation and eliminates repetitive manual mapping efforts, significantly reducing overall system complexity

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If structural type frameworks are used to allow access based on structure matching, then interoperability between different type names is improved, but type precision and structural mismatch detection deteriorate

Engineering Contradiction:
ImproveinteroperabilityVSAvoidtype precision
Core Design Contradiction:
Adaptability or versatilityVSManufacturing precision

Solution Approach 1:

The patent segments type correlation into multiple hierarchical levels: nominal type matching at the top level for precision, followed by structured field-by-field comparison at lower levels. This segmentation allows the system to first enforce strict nominal type boundaries for safety, then progressively relax constraints at deeper levels to enable structural compatibility, thereby maintaining both precision and interoperability through layered validation

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies different correlation strictness levels to different parts of the type system. Critical fields and type boundaries maintain strict nominal matching for precision, while less critical data fields allow structural matching for interoperability. This local differentiation of quality constraints enables the system to be precise where needed and flexible where appropriate

Inventive Principle:
Principle #3Local quality

4Ease of operation

If dynamic typing is used to allow runtime type determination, then flexibility and ease of operation are improved, but security and performance deteriorate due to runtime examinations

Engineering Contradiction:
ImproveflexibilityVSAvoidsecurity
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent performs type validation and correlation checks at compilation time or system initialization rather than at runtime. By pre-computing type compatibility, generating mapping relationships, and validating structural compatibility in advance, the system eliminates the need for security-critical runtime type examinations, thereby maintaining both flexibility and security

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9201874B2Efficiently correlating nominally incompatible types
Publication Date: 2015.12.01 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9201874B2 patent drawing
  • US9201874B2 patent drawing
  • US9201874B2 patent drawing

AI summary

A nominal type framework can be configured to efficiently correlate different nominal types together based on a minimum set of common type shapes or structures. In one implementation, a developer identifies a number of different nominal types of interest (source types), and identifies the minimum set of common type shapes to be accessed by an application program. The minimum set of common type shapes can then be used to create an intermediate type (target type) to which each of the other different source types can be mapped. For example, one or more proxies can be created that map shapes of the one or more source types to corresponding shapes of the created target type. The application program created by the developer, in turn, can access, operate on, or otherwise use the mapped data of each different source type through a single target type.