Multi-channel Session Connection Management for Browser Performance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Establishing multiple client-server connections within a browser interface leads to performance issues due to limitations such as '1 connection per browser' constraints, multiple clients detected responses, and browser limitations on connections per domain, affecting page loading performance.

Innovation Solution

Implementing a connection management mechanism that manages a single session connection between a client and server for multiple client channel subscriptions, using a session connection module and connection manager to multiplex events and messages, and employing Comet web applications and EmpJs to establish and manage session connections.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple client-server connections are established simultaneously via different tabs or windows, then the application can access services through multiple interfaces, but performance issues occur due to browser connection constraints

Engineering Contradiction:
Improvemulti-interface access capabilityVSAvoidpage loading performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent merges multiple client-server connections into a single shared connection. When the first client tab establishes a connection to the server, subsequent client tabs reuse this same connection rather than establishing separate connections. This combining approach allows multiple interfaces to access services while avoiding browser connection constraints that would otherwise degrade performance.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The single client connection is designed to serve multiple functions and multiple client tabs simultaneously. The connection manager enables one connection to handle requests and responses for different application pages and tabs, making the connection universal rather than dedicated to a single interface.

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

2Productivity

If a single session connection is shared across multiple browser tabs, then connection efficiency improves, but managing subscriptions and events across multiple channels becomes complex

Engineering Contradiction:
Improveconnection efficiencyVSAvoidsession management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a connection manager as an intermediary component between the single client connection and multiple server subscriptions. This manager handles the complexity of tracking which tabs are subscribed to which channels, managing event routing, and coordinating communications. By placing this intermediary layer, the system achieves efficient single connection usage while the manager absorbs the management complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the connection management functionality into distinct components: the connection manager handles high-level coordination and subscription tracking, while the underlying connection handles actual data transmission. This segmentation allows each component to focus on specific aspects of management, reducing overall system complexity despite serving multiple tabs.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10873635B2Multi-channel session connection management mechanism
Publication Date: 2020.12.22 SALESFORCE INC
  • US10873635B2 patent drawing
  • US10873635B2 patent drawing
  • US10873635B2 patent drawing

AI summary

Techniques and structures to manage a multi-channel client-server connection is disclosed. A connection session is established between a client and in server response to receiving a call from a first browser interface element to establish the connection session. The session is shared in response to receiving a second call from a second browser interface element to establish a connection session.