Server Selection via Application Code Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveapplication performanceVSAvoidserver selection system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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

Inventive Principle:
Principle #10Preliminary action

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

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If server characteristics are not analyzed, then system complexity is reduced, but resource utilization efficiency deteriorates

Engineering Contradiction:
Improveresource utilization efficiencyVSAvoidmonitoring and characterization complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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

Inventive Principle:
Principle #23Feedback

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

Inventive Principle:
Principle #25Self-service

3Measurement precision

If application code is not analyzed, then processing time is reduced, but server selection accuracy deteriorates

Engineering Contradiction:
Improveworkload classification accuracyVSAvoidapplication analysis time
Core Design Contradiction:
Measurement precisionVSLoss of time

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

Inventive Principle:
Principle #10Preliminary action

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

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10129130B2Management of connections of a client application including server selection
Publication Date: 2018.11.13 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10129130B2 patent drawing
  • US10129130B2 patent drawing
  • US10129130B2 patent drawing

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.