Scalable Remote Access Architecture via Dynamic Server Selection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing remote access server systems lack scalability to handle large numbers of concurrent users and are prone to failures, leading to disconnections during high demand or component failures.
Innovation Solution
A client-server remote access system with a scheduler that selects an application server based on resource utilization, creates a session URL with a unique payload to establish connections, and uses a proxy server and service manager to authenticate and manage sessions, ensuring high availability and scalability.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a remote access server is used to service concurrent users, then remote access capability is provided, but scalability is insufficient under high demand
Solution Approach 1:
The patent divides the remote access system into multiple independent application servers (first application server, second application server, etc.) that can independently service users. Each server can be selected based on resource utilization, allowing the system to scale horizontally by adding more servers without affecting existing ones, thus improving both concurrent user capacity and reliability.
Solution Approach 2:
The patent introduces a scheduler as an intermediary component that sits between clients and application servers. The scheduler receives client requests, evaluates resource utilization across multiple application servers, and intelligently routes requests to appropriate servers. This mediator enables load balancing and fault tolerance, allowing the system to handle high demand while maintaining availability even if individual servers fail.
2Reliability
If a single application server hosts a service, then simple connection management is achieved, but fault tolerance is insufficient during component failure
Solution Approach 1:
The scheduler acts as an intermediary that manages session information and maintains a mapping between session URLs and application servers. When a client connects, the scheduler creates a session URL that encapsulates the connection state. If a server fails, the scheduler can redirect subsequent requests to different servers while maintaining session continuity, providing fault tolerance without requiring complex distributed session management across servers.
Solution Approach 2:
The patent uses session URLs as portable copies of session state that can be independently validated and processed by different application servers. The session URL contains encoded authentication and session information that allows any server in the cluster to resume service for a client without requiring centralized session storage, simplifying fault tolerance while maintaining manageable complexity.
3Productivity
If resource utilization-based server selection is implemented, then load balancing is improved, but scheduling complexity increases
Solution Approach 1:
The scheduler monitors dynamic parameters such as CPU utilization, memory usage, and active session counts of application servers. Based on these changing parameters, the scheduler adjusts its server selection decisions in real-time. This parameter-based approach enables effective load balancing by routing new connections to servers with lower resource utilization, improving productivity without requiring complex algorithms—just straightforward threshold-based or metric-based routing logic.
Data Source
AI summary
Systems and methods for providing a remote access to a service in a client-server remote access system. The method includes selecting, by a scheduler, an application server hosting the service, the selecting being performed in accordance with a utilization of resources in the client-server remote access system. A session Uniform Resource Locator (URL) is created that includes a URL payload that uniquely identifies the service and being used to establish the remote access to the service by a client. The system may include a proxy server accessible at a resource URL. The proxy server receives a request from a client to connect to the service. An authentication component authenticates the request in accordance with a payload of the resource URL. A service manager establishes the session between the client and the service connected at the session URL.


