Server-Based Code Compilation for Resource-Constrained Devices
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Portable devices face resource constraints, such as limited processing power and memory, making it inefficient to compile software locally, and developers must create multiple versions of applications for different platforms, increasing complexity and cost.
Innovation Solution
A server-based compilation method where a server with multiple compilers receives and compiles source code, selecting the appropriate compiler based on the client's platform, and communicates the compiled code back to the client, conserving device resources and simplifying the development process.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If code compilation is performed on portable devices, then developers can have direct control over the compilation process, but device resources (processing power, memory, battery) are consumed and efficiency is reduced
Solution Approach 1:
The compilation function is extracted from the portable device and relocated to a remote server. The device only sends source code and receives compiled output, while the computationally intensive compilation process executes remotely, eliminating local resource consumption while preserving developer control through interface design.
Solution Approach 2:
A communication interface acts as an intermediary between the portable device and the compilation server. This interface manages the interaction by transmitting compilation requests and results, maintaining developer control over the process while the actual compilation occurs on the server infrastructure.
2Adaptability or versatility
If multiple compiler versions are maintained for different platforms, then support for various portable devices is improved, but system complexity and development costs increase
Solution Approach 1:
The compilation server is designed with multi-functionality to handle multiple programming languages, platforms, and compiler versions through a single unified system. The server automatically selects the appropriate compiler based on the target platform specified in the compilation request, providing universal support without requiring the client device to manage multiple compilers.
Solution Approach 2:
Instead of distributing multiple compiler versions to each device, the system maintains copies of various compilers on the centralized server. Each compilation request is routed to the appropriate compiler copy based on platform requirements, reducing client-side complexity while maintaining platform versatility.
Data Source
AI summary
A server is disclosed that includes an interface to a data communication network, a compiler library that stores a plurality of different compilers, and compiler selection logic responsive to data received at the interface and including logic. The compiler selection logic is configured to select one of the plurality of different compilers based on an evaluation of the received data. The selected compiler generates compiled output data and the compiled output data is communicated over the data communication network to a client.


