IP Library Granted Patent US 7,961,701
Granted Patent B2
US 7,961,701 · App. 11/691,439 · Granted Jun 14, 2011

Method and system for event polling

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,961,701
App. No.
11/691,439
Granted
Jun 14, 2011
Kind
B2
Abstract

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.

Claims (52)

1. A method comprising:

receiving, by a server computer system, an event request from a client device, the event request including an event revision number;

if the event revision number received from the client device matches a current revision number stored by the server computer system:

incrementing, by the server computer system, the current revision number;

waiting, by the server computer system, for an event from an event server;

transmitting, by the server computer system to the client device, the event and the incremented current revision number when the event is received from the event server; and

storing, by the server computer system, the event with the incremented current revision number in an event queue; and

if the event revision number received from the client device does not match the current revision number stored by the computer system:

identifying, by the server computer system, one or more events in the event queue having a revision number greater than the event revision number received from the client device; and

transmitting, by the server computer system, the one or more events and the current revision number to the client device.

2. The method of claim 1 further comprising, if the event revision number received from the client device matches the current revision number stored by the server computer system:

resetting a server timer upon receiving the event revision number; and

if an event is not received from the event server before the server timer expires, transmitting only the incremented current revision number to the client device.

3. The method of claim 2 wherein, if the event is received before the server time expires, the event is transmitted to the client device immediately upon receipt.

4. The method of claim 3 further comprising providing instructions to the client device to set a client timer that expires if the event is not received from the server computer system in a predetermined time period.

5. The method of claim 4 further comprising providing instructions to the client device to reestablish communications with the server computer system if the client timer expires, and if a network failure timer has not expired a predetermined number of server no-response limit times.

6. The method of claim 1 wherein a client timer is set equal to or greater than a server timer.

7. The method of claim 1 further comprising, if the event revision number received from the client device matches the current revision number stored by the computer system, deleting any events in the event queue having a revision number that is less than or equal to the event revision number received from the client device.

8. A non-transitory computer-readable medium having stored thereon program code executable by a computer system, the program code including:

code that causes the computer system to receive an event request from a client device, the event request including an event revision number;

if the event revision number received from the client device matches a current revision number stored by the computer system:

code that causes the computer system to increment the current revision number;

code that causes the computer system to wait for an event from an event server;

code that causes the computer system to transmit to the client device the event and the incremented current revision number when the event is received; and

code that causes the computer system to store the event with the incremented current revision number in an event queue; and

if the event revision number received from the client device does not match the current revision number stored by the computer system:

code that causes the computer system to identify one or more events in the event queue having a revision number greater than the event revision number received from the client device; and

code that causes the computer system to transmit the one or more events and the current revision number to the client device.

9. The non-transitory computer-readable medium of claim 8 wherein the program code further comprises, if the event revision number received from the client device matches a current revision number stored by the computer system:

code that causes the computer system to reset a server timer upon receiving the event revision number; and

if an event is not received from the event server before the server timer expires, code that causes the computer system to transmit only the incremented current revision number to the client device.

10. The non-transitory computer-readable medium of claim 9 wherein, if the event is received before the server timer expires, the event is transmitted to the client device immediately upon receipt.

11. The non-transitory computer-readable medium of claim 10 wherein the program code further comprises code that causes the computer system to provide instructions to the client device to set a client timer that expires if the event is not received from the computer system in a predetermined time period that is equal to or greater than a length of the server timer.

12. The non-transitory computer-readable medium of claim 11 wherein the program code further comprises code that causes the computer system to provide instructions to the client device to reestablish communications with the computer system if the client timer expires, and if a network failure timer has not expired a predetermined number of server no-response limit times.

13. The non-transitory computer-readable medium of claim 8 wherein the program code further comprises code that causes the computer system to set a client timer equal to or greater than a server timer.

14. The non-transitory computer-readable medium of claim 8 wherein the program code further comprises, if the event revision number received from the client device matches the current revision number stored by the computer system, code that causes the computer system to delete any events in the event queue having a revision number that is less than or equal to the event revision number received from the client device.

15. A computer system comprising:

a processor configured to:

receive an event request from a client device, the event request including an event revision number;

if the event revision number received from the client device matches a current revision number stored by the server computer system:

increment the current revision number;

wait for an event from an event server;

transmit, to the client device, the event and the incremented current revision number when the event is received from the event server; and

store the event with the incremented current revision number in an event queue; and

if the event revision number received from the client device does not match the current revision number stored by the computer system:

identify one or more events in the event queue having a revision number greater than the event revision number received from the client device; and

transmit the one or more events and the current revision number to the client device.

16. The computer system of claim 15 wherein the processor is further configured to, if the event revision number received from the client device matches the current revision number stored by the computer system:

reset a server timer upon receiving the event revision number; and

if an event is not received from the event server before the server timer expires, transmit only the incremented current revision number to the client device.

17. The computer system of claim 15 wherein the processor is further configured to, if the event revision number received from the client device matches the current revision number stored by the computer system:

delete any events in the event queue having a revision number that is less than or equal to the event revision number received from the client device.

Assignments (3)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044101/0405 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2012
From: MEEBO INC.
To: GOOGLE INC.
Reel/Frame 029198/0073 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 27, 2007
From: WHERRY, ELAINE; JEN, SANDY
To: MEEBO, INC.
Reel/Frame 019071/0854 →