Network JIT Compilation for Disparate Client Devices

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The increasing diversity of digital devices with varying capabilities and capacities leads to duplicated efforts and user difficulties in configuring applications across different devices, as developers must create multiple versions of programs to accommodate different processor types, memory, network availability, and operating systems.

Innovation Solution

A network-based just-in-time (JIT) compilation method using a web service to register device profiles, create client runtimes tailored to device capabilities, and enable communication with content services, thereby providing a centralized solution for adapting applications across disparate devices.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If developers write different versions of programs for different devices, then device compatibility is improved, but development effort and cost increase

Engineering Contradiction:
Improvedevice compatibilityVSAvoiddevelopment effort
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent applies universality by creating a single universal runtime environment that can execute on multiple disparate devices. Instead of writing separate program versions for each device type, the system provides one runtime that adapts to different devices, eliminating the need for multiple developer versions while maintaining device compatibility.

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

Solution Approach 2:

The system changes parameters dynamically by detecting device capabilities at runtime and adjusting execution parameters accordingly. The runtime modifies execution behavior based on detected device characteristics (processor type, memory capacity, display capabilities), allowing a single program to adapt its execution parameters to match different device specifications without requiring version changes.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If developers create multiple program versions for different devices, then device-specific optimization is improved, but configuration difficulty for users increases

Engineering Contradiction:
Improvedevice-specific optimizationVSAvoiduser configuration difficulty
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The runtime environment provides self-service by automatically detecting device capabilities and configuring itself without user intervention. The system autonomously identifies device characteristics (processor type, memory, display) and selects appropriate execution parameters, eliminating the need for users to manually configure device-specific settings while maintaining optimized performance for each device type.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system performs preliminary action by pre-defining device capability profiles and execution parameter mappings before runtime execution. The runtime contains pre-configured knowledge of various device types and their optimal execution parameters, allowing it to automatically select and apply appropriate settings without requiring real-time user configuration or manual device profiling.

Inventive Principle:
Principle #10Preliminary action

3Device complexity

If a single program version is used for all devices, then development effort is reduced, but device capability utilization is worsened

Engineering Contradiction:
Improvedevelopment effortVSAvoiddevice capability utilization
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The runtime environment introduces dynamics by enabling a single static program to exhibit dynamic execution behavior adapted to different devices. The system dynamically adjusts execution parameters such as instruction scheduling, memory management, and rendering based on detected device capabilities, allowing a single program version to optimize its performance for each specific device while maintaining code simplicity.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The runtime acts as an intermediary layer between the single program version and the diverse device hardware. This intermediary translates and adapts the unified program instructions into device-specific execution patterns, preserving device capability utilization without requiring device-specific program versions. The runtime mediates between software simplicity and hardware diversity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8713091B2Network based JIT on a priori knowledge of a set of disparate clients
Publication Date: 2014.04.29 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8713091B2 patent drawing
  • US8713091B2 patent drawing
  • US8713091B2 patent drawing

AI summary

Network based just-in-time compilation based on A Priori knowledge of a set of disparate clients is disclosed. One embodiment comprises using a web service to register a device and store a device profile containing the capabilities of the device, receiving a request from the device to subscribe to a content service, and to create a client runtime for the device for a requested service corresponding to the device capabilities. In this way, the embodiment may send the client runtime to the device to allow the device to communicate with the content service through the web service.