Long-Running Client-Server Process Handling via Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In network environments, long-running client-server processes can lead to resource constraints on both client and server sides, causing inefficiencies and disabling user interfaces while waiting for responses, as HTTP is a request-reply protocol that requires clients to wait for server responses before releasing connections.
Innovation Solution
A method is implemented where a processor on a server device receives requests from a client, initiates processes on a second server, and communicates status updates back to the client using HTTP and REST interactions, allowing for the management of process initiation, status queries, and cancellation, including specific status codes and timing instructions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a client waits for a server response in a request-reply protocol, then the client can obtain the processing result, but hardware resources on both client and server sides become constrained
Solution Approach 1:
The patent segments the HTTP interaction into separate phases: an initial request phase that quickly establishes connection and returns acceptance, followed by an independent status checking phase where the client queries process status without blocking the connection. This allows the client to release the connection after receiving acceptance while still being able to check status later, thereby freeing hardware resources while ensuring response completion.
Solution Approach 2:
The server performs preliminary action by processing the request in the background after quickly accepting it, rather than waiting for the client to receive the complete response. The server initiates long-running processes asynchronously and returns acceptance immediately, allowing resource-intensive operations to proceed without constraining client or server hardware resources during the waiting period.
2Reliability
If a client waits for a server response, then the client can obtain processing results, but the user interface may be effectively disabled
Solution Approach 1:
The patent divides the interaction into separate segments: the initial request/acceptance phase and the status checking phase. This segmentation allows the user interface to remain interactive during the status waiting period, as the client can query status asynchronously without blocking the UI thread. The user can continue to interact with the interface while periodically checking process status through separate HTTP requests.
3Productivity
If web servers limit the number of open connections based on available CPU threads, then server resources are protected, but the ability to support long-running processes is reduced
Solution Approach 1:
The server performs preliminary acceptance of the connection and request without committing long-term resources. By returning a quick acceptance response and allowing the client to release the connection, the server can handle many more concurrent connections than traditional models. The long-running processes are executed in the background without requiring persistent connection slots, thereby increasing connection support capacity while maintaining support for extended process execution times.
Data Source
AI summary
Systems and methods for performing a process are provided. The methods include receiving, from a client, a request for an initiation of the process; transmitting, to a server, a request for executing the process; transmitting, to the client in response to the request, a first message that indicates that the process has been initiated; receiving, from the client, a request for a status of the process; transmitting, to the server, a query that relates to the status of an execution of the process; receiving a response to the query; and transmitting, to the client, a second message that indicates the status of the process.


