Session Front End for Web-Based Real-Time Collaboration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Web-based real-time collaboration systems face challenges in synchronizing data among remote users without requiring additional browser technologies, handling user disconnects, and efficiently communicating message data, especially in scenarios with sequential message cancellations and dynamic user participation.

Innovation Solution

A method and system providing resource-based synchronization through a session front end on a server that maintains transaction histories and current states, using HTTP operations to manage resource changes and updates, ensuring only necessary data is sent to clients, and adapting to user disconnections by comparing client and server states to remove redundant operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If HTTP tunneling with message wrapping is used for real-time collaboration, then data synchronization between endpoints is achieved, but implementation complexity increases beyond JavaScript capabilities

Engineering Contradiction:
Improvedata synchronizationVSAvoidimplementation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary component (the server with session management capabilities) that mediates between endpoints. Instead of endpoints directly exchanging complex messages through HTTP tunneling, the server acts as a mediator that receives HTTP requests, manages session state, and distributes updates. This intermediary approach simplifies the client-side JavaScript implementation while maintaining reliable data synchronization.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent uses copying by maintaining a simplified representation of session state on the client side that mirrors the server's state. Rather than implementing full message parsing and interpretation logic in JavaScript, the client receives and applies state updates from the server. This copying approach reduces implementation complexity while ensuring data synchronization.

Inventive Principle:
Principle #26Copying

2Reliability

If defense mechanisms with time-out and disconnection are used, then message queue backup is prevented, but user experience deteriorates during network drop-outs

Engineering Contradiction:
Improvemessage queue managementVSAvoiduser experience
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent implements dynamic session state management where the server tracks the state of each endpoint and adapts its communication strategy accordingly. When an endpoint is detected as disconnected, the server dynamically adjusts by queuing messages and resending them when the endpoint reconnects. This dynamic approach prevents message queue backups while maintaining good user experience during network drop-outs.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent employs beforehand cushioning by implementing a message queuing mechanism on the server side that prepares for potential disconnections in advance. When an endpoint disconnects, the server cushions the impact by storing messages in a queue rather than allowing them to backup or lose data. This prior cushioning ensures reliable message delivery when the endpoint reconnects.

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

3Loss of information

If all sequential messages are sent to all endpoints, then complete information is provided, but resource waste increases due to redundant data transmission

Engineering Contradiction:
Improveinformation completenessVSAvoidresource waste
Core Design Contradiction:
Loss of informationVSLoss of energy

Solution Approach 1:

The patent applies local quality by customizing the information provided to each endpoint based on its specific needs and current state. Rather than sending all sequential messages to all endpoints uniformly, the server analyzes each endpoint's state and sends only the relevant updates. This local quality approach ensures information completeness for each endpoint while minimizing resource waste through targeted transmission.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent uses partial action by sending only the necessary subset of messages to each endpoint rather than all messages. The server determines the minimum required updates based on endpoint state comparisons, sending partial information that is sufficient to maintain synchronization without the excess of transmitting all sequential messages to all clients.

Inventive Principle:
Principle #16Partial or excessive action

4Reliability

If additional browser technologies like Java are required, then real-time collaboration functionality is enhanced, but ease of deployment and accessibility deteriorates

Engineering Contradiction:
Improvereal-time collaboration functionalityVSAvoidease of deployment
Core Design Contradiction:
ReliabilityVSEase of manufacture

Solution Approach 1:

The patent achieves universality by designing the solution to work with standard HTTP and JavaScript technologies that are universally supported by all modern web browsers. The server-side implementation handles the complex real-time collaboration logic, while clients use only standard browser capabilities. This multi-functional approach provides enhanced real-time collaboration functionality without requiring additional browser technologies, maintaining ease of deployment and accessibility.

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

Data Source

PatentEP2115976B1Method and system for resource-based synchronization between endpoints in a web-based real time collaboration
Publication Date: 2013.09.25 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • EP2115976B1 patent drawingFigure 1
  • EP2115976B1 patent drawingFigure 2
  • EP2115976B1 patent drawingFigure 3

AI summary

A system for providing resource-based synchronization between clients in a Web-based realtime collaboration, in which a session front end on the server layers a transaction history on top of all session resources. HTTP operations are issued by client systems to request changes to session resources and to request session updates. The HTTP resource change requests include hierarchical pointers containing session identifiers and resource identifiers within a URL. The client generated resource change request operations may be HTTP PUT, HTTP DELETE, and HTTP POST commands. The HTTP session update request operations may be HTTP GET commands. A session front end stores each received resource change request operation in a resource-specific transaction history of change request operations received from all client systems. The session front end maintains a current session state indicating the number of resource change request operations stored for each session resource. A last session state for each client system indicates the number of change request operations that client system has previously received for each session resource. For a session update, the session front end compares the last client session state for the requesting client with the current session state and determines the change request operations that need to be forwarded to the requesting client system to bring it up to date. The session front end removes negating change request operations from the change request operations forwarded to the requesting client system.