Load Balancer Session Management for Collaboration Failover

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern computer systems face challenges in managing bidirectional communication channels for collaboration sessions across different domains, particularly in handling failovers to ensure continuous communication among client devices participating in collaboration sessions.

Innovation Solution

The system employs a load balancer to manage service instances and establish bidirectional communication channels, using session identifiers and service instance identifiers to facilitate communication between web browser applications and service instances, while also handling requests for collaboration sessions and failovers by selecting appropriate service instances to maintain session integrity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a load balancer distributes requests across multiple service instances, then system reliability is improved through failover capability, but session management complexity increases due to the need to track service instance identifiers across different instances

Engineering Contradiction:
Improvesession continuityVSAvoidsession management
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system performs preliminary actions by embedding the service instance identifier in the collaboration session identifier before the client device needs to reconnect. When the load balancer receives a new connection request, it can immediately retrieve the stored service instance identifier and route the request to the correct service instance without requiring complex real-time tracking or coordination between instances

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The load balancer acts as an intermediary that maintains the mapping between collaboration session identifiers and service instance identifiers. It receives collaboration session identifiers from client devices, retrieves the corresponding service instance identifiers from its storage, and forwards requests to the appropriate service instances, thereby simplifying session management across multiple instances

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If the system stores session identifiers and service instance identifiers for later retrieval, then communication reliability is improved during failovers, but memory usage increases to maintain these mappings

Engineering Contradiction:
Improvecommunication continuityVSAvoidstored data
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The system segments the identification information into two distinct components: collaboration session identifiers that client devices receive and use for reconnection, and service instance identifiers that the load balancer uses for internal routing. This segmentation allows the system to store only the necessary mappings (collaboration session ID to service instance ID) in the load balancer's memory, rather than storing complete session state information across all service instances

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The load balancer creates and maintains a copy of the service instance identifier mapping in its memory based on the collaboration session identifier. This copy allows the load balancer to quickly retrieve the correct service instance without requiring the service instance itself to store or manage the mapping information, thereby reducing the overall memory burden on the distributed system

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11349931B2Session management for collaboration sessions
Publication Date: 2022.05.31 SAP SE
  • US11349931B2 patent drawing
  • US11349931B2 patent drawing
  • US11349931B2 patent drawing

AI summary

Some embodiments provide a non-transitory machine-readable medium stores a program. The program receives, from an application a session identifier associated with a service instance in a plurality of service instances and a service identifier associated with the second service instance. The program further sends a response that includes a collaboration session identifier associated with the collaboration session to the application. The program also receives, from a web browser application the collaboration session identifier. The program further sends the session identifier and the service instance identifier to the web browser application. The program also receives, from the web browser application a request for a bidirectional communication channel for the collaboration session. The request includes the session identifier and the service instance identifier. The program further creates the bidirectional communication channel between the web browser application and the second service instance.