Parallel Request Handling via Capability Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In networked communications environments, clients often lack information on whether server participants support parallel or serial request handling, leading to inefficiencies in sending requests and awaiting responses.

Innovation Solution

A facility is introduced that determines whether a request handler supports parallel or serial requests by sending a message with an identifier and analyzing the response, allowing it to enqueue requests and send them accordingly, providing an API for applications to assume parallel handling capabilities.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a client participant sends multiple requests to a server participant without knowing its parallel handling capability, then the client may send requests in parallel improving response time, but the server may become overwhelmed if it only supports serial processing

Engineering Contradiction:
Improverequest processing throughputVSAvoidserver overload prevention
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The facility performs a preliminary capability detection by sending a test request with an identifier before processing actual requests. Based on whether the server returns the identifier, the facility determines if the server supports parallel processing and configures the request queue accordingly, preventing server overload before it occurs

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system dynamically adjusts its request sending behavior based on the detected server capability. If the server supports parallel requests, the facility sends multiple requests simultaneously; if not, it processes requests serially, allowing the system to adapt to different server configurations

Inventive Principle:
Principle #15Dynamics

2Reliability

If a client participant waits for responses before sending subsequent requests to ensure serial processing compatibility, then server overload is prevented, but response time increases significantly

Engineering Contradiction:
Improveserial processing compatibilityVSAvoidrequest response time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The facility performs capability detection in advance by sending a test request with an identifier and checking if it is returned. This preliminary action reveals the server's parallel processing capability, allowing the client to optimize its request sending strategy and avoid unnecessary waiting

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Instead of assuming serial processing and waiting for responses, the system inverts the approach by first detecting whether the server supports parallel processing. If the server does support parallel requests (indicated by returning the identifier), the client can send multiple requests simultaneously, dramatically reducing response time

Inventive Principle:
Principle #13The other way round (Inversion)

3Productivity

If the facility enqueues all requests before sending them, then parallel request handling is enabled improving throughput, but requests are delayed if the server only supports serial processing

Engineering Contradiction:
Improveparallel request throughputVSAvoidrequest queuing delay
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The facility dynamically configures the request queue based on detected server capability. When the server supports parallel processing, the queue operates in parallel mode sending multiple requests simultaneously. When the server only supports serial processing, the queue automatically switches to serial mode, sending requests one at a time, eliminating unnecessary queuing delays

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS7730192B2Managing parallel requests in a communications environment supporting serial and parallel request handlers
Publication Date: 2010.06.01 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7730192B2 patent drawing
  • US7730192B2 patent drawing
  • US7730192B2 patent drawing

AI summary

A facility is described for managing parallel requests in a communications environment having devices or applications (“request handlers”) that support serial and parallel message processing. In various embodiments, the facility receives messages directed to a recipient from an application and sends a first message to the recipient without sending subsequently received messages to the recipient. Upon receiving a response from the recipient to the first message, the facility determines whether the recipient supports parallel or serial message processing. When the recipient supports parallel message processing, the facility sends the subsequently received messages to the recipient without awaiting a response to a message before sending another message. When the recipient supports serial message processing, the facility sends a subsequent message after receiving a response to a previously sent message.