Runtime Activation Policy for Legacy Application Compatibility

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Complex software applications face compatibility issues when evolving runtimes introduce changes that affect older applications and plug-ins, making it difficult to maintain backwards compatibility while allowing easy migration to new runtime versions, especially in environments with mixed managed and native code execution.

Innovation Solution

A runtime activation system with a set of policies that use an activation shim to choose the appropriate runtime version for an application or module, consulting compatibility data and global configuration to balance backwards compatibility and ease of migration, allowing applications to handle new and side-by-side runtime versions flexibly.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a runtime evolves to support multiple versions side-by-side in the same process, then compatibility with both old and new applications is improved, but the complexity of the runtime system increases

Engineering Contradiction:
Improveruntime version compatibilityVSAvoidruntime system complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The runtime system is segmented into multiple version instances that can coexist independently within the same process. Each runtime version is treated as a separate loadable module with its own namespace and execution context, allowing version 1, version 2, and version 3 to operate simultaneously without interfering with each other.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

An activation policy system acts as an intermediary layer between applications and runtime versions. This mediator examines application compatibility information and automatically selects the appropriate runtime version to load, shielding applications from the complexity of multiple runtime versions while enabling seamless compatibility.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If applications are tightly coupled to a specific runtime version, then execution reliability is improved, but adaptability to new runtime versions deteriorates

Engineering Contradiction:
Improveapplication execution reliabilityVSAvoidruntime version flexibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

Applications are assigned compatibility information in advance that specifies which runtime versions they can execute on. This preliminary tagging allows the activation policy to make informed decisions about runtime selection before execution begins, ensuring reliable operation while enabling future updates.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The runtime binding is made dynamic rather than static. Instead of hard-coding a specific runtime version into the application, the system dynamically selects the appropriate runtime version at load time based on the application's compatibility information and the available runtime versions, allowing flexible adaptation while maintaining reliability.

Inventive Principle:
Principle #15Dynamics

3Adaptability or versatility

If the runtime hides new versions from legacy applications, then backwards compatibility is improved, but the ability to facilitate easy migration to new versions deteriorates

Engineering Contradiction:
Improvebackwards compatibilityVSAvoidmigration ease
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The runtime visibility is made local rather than global. Legacy applications see only the runtime versions they are compatible with, while new applications can discover and utilize newer runtime versions. This localized view allows each application type to have its own quality experience without compromising the other.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The activation policy system provides feedback mechanisms that allow applications to indicate their runtime preferences and compatibility requirements. This feedback loop enables the system to learn from application behavior and optimize runtime selection, facilitating smooth migration paths while maintaining backwards compatibility.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8522227B2Runtime activation and version selection
Publication Date: 2013.08.27 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8522227B2 patent drawing
  • US8522227B2 patent drawing
  • US8522227B2 patent drawing

AI summary

A runtime activation system uses a set of policies designed to provide a balance between backwards compatibility and ease of migrating existing (non side-by-side aware) applications to new runtime versions. The system chooses the runtime version to activate when an application runs or when a runtime application programming interface is invoked based on the set of policies. The system implements these policies by consulting compatibility data associated with the application indicating the intent of the author and level of side-by-side support provided by the application and/or global configuration data. Based on the compatibility data, the system chooses policies that are right in the most common cases, and easy to modify in less common cases. Thus, the runtime activation system allows applications to be flexibly configured to handle new runtime versions in a manner determined by the application author, a system administrator, or others.