Runtime Linking for Dynamic Software Component Selection
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Productivity
If multiple function implementations are maintained for different execution environments, then optimal performance can be achieved, but software complexity increases
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.
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.
3Productivity
If runtime environment evaluation is performed to select optimal function implementations, then performance and efficiency are improved, but additional processing time is required
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.
Data Source
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.


