Server-Based Binary Compilation for Client Architecture Adaptation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Client-side application compilation is inefficient due to limited processing power, RAM, and storage on client computing devices, leading to lightweight compilation and unnecessary software libraries being downloaded, which wastes bandwidth.

Innovation Solution

A server-based system that stores optimized binaries for various client architectures, allowing for the delivery of specifically tailored binaries to clients based on their architecture and usage patterns, with the option to update binaries post-download based on user profile information.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If client computing devices perform local compilation of applications, then application execution is enabled on diverse hardware architectures, but compilation quality is insufficient due to limited processing power, RAM, and storage capabilities

Engineering Contradiction:
Improveapplication compatibility across hardware architecturesVSAvoidcompilation quality and performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The compilation process is segmented between server and client: the server performs high-quality compilation for different hardware architectures while the client only needs to download and execute the pre-compiled binary. This division allows the client to maintain versatility across architectures without needing local compilation capabilities.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The server acts as an intermediary that performs the compilation operation. Instead of the client compiling applications locally, the server receives application code, compiles it for specific hardware architectures, and delivers the optimized binary to the client, thereby improving compilation quality without requiring powerful local hardware.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If applications include extra software libraries to emulate missing hardware capabilities, then compatibility with devices lacking certain hardware is improved, but bandwidth consumption increases due to unnecessary downloads

Engineering Contradiction:
Improvehardware compatibilityVSAvoidbandwidth consumption
Core Design Contradiction:
Adaptability or versatilityVSLoss of substance

Solution Approach 1:

Instead of providing universal software libraries that work for all devices, the system generates architecture-specific binaries tailored to each device's hardware capabilities. This allows each client to receive only the necessary components for their specific architecture, reducing bandwidth consumption while maintaining hardware compatibility.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system changes the parameter of binary architecture based on the client device's hardware characteristics. By detecting the client's architecture and generating corresponding optimized binaries, the system eliminates the need for clients to download unnecessary universal libraries, thereby reducing bandwidth usage while maintaining compatibility.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If server provides architecture-specific optimized binaries, then application execution performance is improved, but system complexity increases due to maintenance of multiple binary variants

Engineering Contradiction:
Improveexecution speedVSAvoidbinary variant management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system uses feedback from client architecture information to automatically select and provide the appropriate binary variant. Client devices send their architecture details to the server, which then automatically determines and delivers the matching optimized binary, reducing the complexity of manual binary management while maintaining high execution performance.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9185513B1Method and system for compilation with profiling feedback from client
Publication Date: 2015.11.10 GOOGLE LLC
  • US9185513B1 patent drawing
  • US9185513B1 patent drawing
  • US9185513B1 patent drawing

AI summary

A computer-implemented method for compilation of applications includes storing, at a server, a plurality of variants, wherein each of the plurality of variants describes a distinct client architecture. A plurality of optimized binaries for an application are maintained at the server, wherein the plurality of optimized binaries correspond to different variants in the plurality of variants. The server receives a request from a client to download the application, wherein the request includes a reference to a first variant that describes the client's architecture. A determination is made that the first variant corresponds to a first optimized binary of the plurality of optimized binaries, and the server provides the first optimized binary to the client.