Layered Remote Access Architecture for Full Duplex Flow Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The disparity in bandwidth between clients and servers in remote access systems poses a challenge for implementing effective full duplex communications, leading to undesirable performance characteristics due to message queue buildup and communication failures.

Innovation Solution

A layered architecture is implemented with a client layer, a server layer acting as a communications proxy, and a service layer, using two half-duplex channels for full duplex communication, along with mechanisms for detecting failures and reestablishing connections, and employing control signals to manage message queues and ensure message freshness.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If full duplex communication is implemented between clients and servers, then communication efficiency is improved, but message queue buildup occurs due to bandwidth disparity

Engineering Contradiction:
Improvecommunication efficiencyVSAvoidmessage queue buildup
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The communication system is segmented into multiple layers (client layer, server layer, service layer) with separate message queues at each layer. This segmentation allows independent management of message flow at different levels, preventing uncontrolled queue buildup while maintaining full duplex communication efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The server layer acts as an intermediary between the client layer and service layer, managing message queues and flow control. This intermediary buffers and regulates message flow, preventing queue buildup at the service layer while maintaining efficient communication throughput.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Quantity of substance

If flow control mechanisms are implemented to manage bandwidth disparity, then message queue management is improved, but communication reliability deteriorates due to potential message loss

Engineering Contradiction:
Improvemessage queue managementVSAvoidcommunication reliability
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The system implements feedback mechanisms where the server layer monitors message queue states and adjusts flow control signals accordingly. This feedback loop ensures that messages are not lost during flow control operations, maintaining communication reliability while effectively managing message queues.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The server layer maintains buffer queues in advance to cushion against bandwidth fluctuations. These pre-established buffers prevent message loss during transient flow control situations, ensuring communication reliability while managing queue volumes.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

3Adaptability or versatility

If multiple message queues are used to manage different client connections, then client isolation is improved, but system complexity increases

Engineering Contradiction:
Improveclient isolationVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The message queue system is segmented into hierarchical layers with clear separation of concerns. Each layer manages specific aspects of client connections, providing isolation while maintaining manageable complexity through modular architecture.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The server layer implements universal message queue management that handles multiple client connections through a standardized interface. This multi-functional approach provides client isolation while avoiding the complexity of implementing separate management systems for each client.

Inventive Principle:
Principle #6Universality (Multi-functionality)

4Loss of time

If control signals are used to regulate message flow, then message freshness is improved, but communication overhead increases

Engineering Contradiction:
Improvemessage freshnessVSAvoidcommunication overhead
Core Design Contradiction:
Loss of timeVSLoss of energy

Solution Approach 1:

The flow control mechanism uses periodic control signals rather than continuous regulation. This periodic approach maintains message freshness by regularly updating flow control states while minimizing communication overhead compared to continuous control.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The system applies partial flow control only where and when needed based on queue states, rather than universal continuous control. This selective application maintains message freshness in critical paths while minimizing unnecessary control overhead in other areas.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10474514B2Method for flow control and for reliable communication in a collaborative environment
Publication Date: 2019.11.12 RESOLUTIONMD INC
  • US10474514B2 patent drawing
  • US10474514B2 patent drawing
  • US10474514B2 patent drawing

AI summary

Flow control of messages to/from clients and services in a remote access system. Within the remote access system a layered architecture may be provided that includes a client layer at a client device, a service layer associated with a service, and a server layer that is a communications proxy for messages sent between the client device and the service. The service layer may have a receive queue for messages received from the client device and a send queue of messages destined for the client device. The server layer may include an outbound queue of messages destined for the client device. Full duplex communications between the client layer and the server layer may be implemented using a service protocol in a first channel for communication between the client layer and the server layer and a second channel for communication between the server layer and the client layer.