Runtime Linking for Dynamic Software Component Selection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developing software applications that can efficiently perform across diverse and dynamic execution environments, such as those found in heterogeneous and distributed computing systems, including IoT devices, is challenging due to varying hardware architectures and resource availability, which affects performance, efficiency, and security.

Innovation Solution

Implementing a dynamic linking approach that allows for the selection of the most advantageous software component implementations at a function or block level based on the current execution environment and policy parameters, using a mechanism like DDLL_runtime_resolve to determine the appropriate implementation and offload operations to edge or cloud resources when necessary.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If software applications are developed for heterogeneous and distributed computing systems with varying hardware architectures, then the software can run on diverse platforms, but performance, efficiency, and security are affected due to environment variability

Engineering Contradiction:
Improvesoftware compatibilityVSAvoidperformance consistency
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent implements dynamic linking that allows software component implementations to be selected at runtime based on the current execution environment. The dynamic linker resolves function calls by evaluating policy parameters and environmental conditions, enabling the same software to adapt its implementation dynamically rather than being statically bound to a specific hardware architecture. This resolves the contradiction by making the software both versatile across platforms and consistent in performance through environment-aware selection.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the parameter of function implementation selection from a fixed compile-time decision to a flexible runtime decision based on execution environment parameters. By evaluating policy parameters such as performance requirements, security constraints, and resource availability at runtime, the system selects the most appropriate implementation for each specific context, thereby maintaining both adaptability and reliability.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If multiple function implementations are maintained for different execution environments, then optimal performance can be achieved, but software complexity increases

Engineering Contradiction:
Improveexecution efficiencyVSAvoidsoftware structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a dynamic linker as an intermediary component that manages the complexity of multiple function implementations. Instead of requiring the application developer to directly handle multiple implementations and selection logic, the dynamic linker serves as a mediator that automatically resolves function calls by evaluating policy parameters and selecting the appropriate implementation. This hides the complexity from the main software structure while maintaining high execution efficiency.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the software into distinct components: the main application code and separate function implementations. Each function can have multiple implementations stored separately, and the dynamic linker segments the resolution process into evaluating policy parameters, selecting the best implementation, and binding it at runtime. This segmentation reduces overall software complexity by organizing multiple implementations in a structured manner.

Inventive Principle:
Principle #1Segmentation

3Productivity

If runtime environment evaluation is performed to select optimal function implementations, then performance and efficiency are improved, but additional processing time is required

Engineering Contradiction:
Improvesoftware performanceVSAvoidlinking overhead
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent performs preliminary evaluation of policy parameters and execution environment characteristics before function calls are made. By pre-establishing the criteria for implementation selection and caching environment information, the system reduces the overhead during actual function resolution. The dynamic linker prepares the selection logic in advance, so when a function call occurs, the evaluation and selection process is streamlined, minimizing the time penalty while maintaining optimal performance selection.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20240160452A1System, devices and/or processes for runtime linking of software component function implementations
Publication Date: 2024.05.16 ARM LTD
  • US20240160452A1 patent drawing
  • US20240160452A1 patent drawing
  • US20240160452A1 patent drawing

AI summary

The present disclosure relates generally to systems, devices and/or processes for runtime linking of software component function implementations, and relates more particularly to linking particular function implementations based at least in part on a current execution environment.