Server Selection via Application Code Analysis
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing client-server architectures in distributed computing environments face inefficiencies in server selection due to varying performance characteristics across servers, leading to suboptimal execution of client applications, as current methods do not adequately analyze application workloads and server resources before execution.
Innovation Solution
A computer-implemented method that analyzes client software applications using code analysis and non-functional metadata to classify operations, maps these classifications to suitable server characteristics, and monitors available servers to select the best server for execution based on performance and resource characteristics.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If traditional server selection methods are used, then system simplicity is maintained, but application performance is suboptimal due to mismatched server-workload pairing
Solution Approach 1:
The system performs preliminary analysis of the client application's code and metadata before execution to classify its operational characteristics. This advance classification enables the server selection mechanism to match the application with the most suitable server based on its specific workload requirements, thereby improving performance without adding complex runtime decision-making processes
Solution Approach 2:
The patent introduces an intermediary server selection mechanism that acts as a mediator between the client application and the server farm. This intermediary analyzes application characteristics, maintains a mapping to server capabilities, and makes intelligent routing decisions, thereby improving performance while isolating the complexity from both the client and server components
2Productivity
If server characteristics are not analyzed, then system complexity is reduced, but resource utilization efficiency deteriorates
Solution Approach 1:
The system implements feedback mechanisms where servers continuously report their performance metrics and resource availability to the selection mechanism. This feedback loop enables the system to dynamically adjust server assignments based on current server states, improving resource utilization efficiency while maintaining manageable complexity through automated monitoring
Solution Approach 2:
Servers autonomously characterize themselves by reporting their own performance metrics, resource capacities, and operational status. This self-service approach eliminates the need for complex external monitoring systems, as each server provides its own characterization data, thereby improving resource matching while minimizing the complexity of the monitoring infrastructure
3Measurement precision
If application code is not analyzed, then processing time is reduced, but server selection accuracy deteriorates
Solution Approach 1:
The system performs code analysis and metadata extraction as preliminary actions before the application is executed. By analyzing the application's operational characteristics in advance, the system can accurately classify the workload and match it with the appropriate server, thereby achieving high selection accuracy without incurring analysis delays during actual application runtime
Solution Approach 2:
The system applies partial code analysis by focusing on specific metadata and operational characteristics that are most relevant for server selection, rather than performing exhaustive analysis of the entire application codebase. This selective approach achieves sufficient classification accuracy while minimizing the time overhead associated with code analysis
Data Source
AI summary
Managing connections for execution of a client software application. A client software application is analyzed before execution of the application using code analysis and, optionally non-functional metadata analysis, of the application to determine one or more classifications of operations of the application. A mapping of application operation classifications to server characteristics suited to the application operation classifications is maintained. Multiple servers currently available to process at least a portion of the client software application may be monitored, and each of the multiple servers may be characterized according to their performance and resources. The classifications of operations of the analyzed application may be compared to the characteristics of the multiple servers currently available using the mapping, and a server may be selected based on the comparison.


