Event Polling System for Instant Messaging Session Synchronization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing instant messaging systems face challenges in managing session states and event synchronization between clients and servers, leading to potential message loss and inefficiencies in real-time communication due to network disruptions or application errors.

Innovation Solution

A method and system for event polling that involves providing a session key to client devices, setting timers for session and event revisions, and queuing events until the client confirms receipt and processing, ensuring that events are not lost during network disruptions or application errors by using a session timer and event revision numbers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If events are sent immediately to clients in real-time instant messaging, then communication speed is improved, but message loss occurs during network disruptions or application errors

Engineering Contradiction:
Improvecommunication speedVSAvoidmessage delivery reliability
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The server performs preliminary actions by queuing events and checking revision numbers before sending messages to clients. This ensures that messages are only transmitted when the client is ready to receive them, preventing message loss during network disruptions while maintaining real-time communication capability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback mechanisms through revision number matching. The server sends the current revision number to the client, and the client returns the last received revision number. This feedback loop allows the server to verify successful message delivery and retransmit any lost messages, ensuring reliable communication without sacrificing speed.

Inventive Principle:
Principle #23Feedback

2Reliability

If the server continuously monitors and sends events to all clients, then real-time synchronization is improved, but server processing overhead increases

Engineering Contradiction:
Improveevent synchronizationVSAvoidserver processing complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Instead of continuously monitoring and sending all events to all clients, the server performs partial actions by only sending events to clients who have caught up to the current revision number. This reduces unnecessary server processing and network traffic while maintaining synchronization for clients who need it, applying effort only where required rather than universally.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If the system implements comprehensive event tracking and revision number matching, then message loss is prevented, but system complexity increases

Engineering Contradiction:
Improvemessage deliveryVSAvoidsession management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system implements self-service mechanisms where each client autonomously tracks its own last received revision number and actively requests events from the server when ready. This distributes the complexity of event tracking to individual clients rather than requiring centralized server-side tracking for each client, reducing overall system complexity while maintaining reliable message delivery.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS7961701B2Method and system for event polling
Publication Date: 2011.06.14 GOOGLE LLC
  • US7961701B2 patent drawing
  • US7961701B2 patent drawing
  • US7961701B2 patent drawing

AI summary

A method and system for event polling have been disclosed. According to one embodiment, a computer-implemented method comprises receiving a session request from a client device. A session key is provided to the client device in response to the session request. A session timer is set for a predetermined time period. An event revision number is received from the server device. The client is provided with an updated event revision number if the event revision number matches an expected revision number. An event from an instant messaging server is placed in a queue until the event revision number matches the expected revision number, the event including one or more of instant messages, buddy events, typing, and application events.