High availability presence engine for instant messaging
First Claim
1. A system for a high availability presence engine for instant messaging, comprising:
- a plurality of presence engines for receiving presence information on users, wherein one of the plurality of presence engines is assigned to a user and the user'"'"'s contacts;
a global table engine accessible to the plurality of presence engines, the global table engine including user presence information and being operable to receiving presence changes from the plurality of presence engines; and
a plurality of local tables accessible to the plurality of presence engines and the global table engine, wherein the plurality of local tables are configured such that each of the plurality of local tables is associated with at least one of the plurality of presence engines and being operable to receive presence change information from the global table engine if the associated local table is affected by the presence change information.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems for a high availability presence engine for instant messaging service comprise a plurality of presence engines for receiving presence information on users and a global table engine accessible to the plurality of presence engines. The global table engine includes user presence information and receives presence changes from the plurality of presence engines. A plurality of local tables are accessible to the plurality of presence engines and the global table engine. The plurality of local tables are configured such that each of the plurality of local tables is associated with at least one of the plurality of presence engines, and is configured to receive presence change information from the global table engine. Other systems and methods are also provided.
-
Citations
51 Claims
-
1. A system for a high availability presence engine for instant messaging, comprising:
-
a plurality of presence engines for receiving presence information on users, wherein one of the plurality of presence engines is assigned to a user and the user'"'"'s contacts; a global table engine accessible to the plurality of presence engines, the global table engine including user presence information and being operable to receiving presence changes from the plurality of presence engines; and a plurality of local tables accessible to the plurality of presence engines and the global table engine, wherein the plurality of local tables are configured such that each of the plurality of local tables is associated with at least one of the plurality of presence engines and being operable to receive presence change information from the global table engine if the associated local table is affected by the presence change information. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A high availability presence engine, comprising:
-
a plurality of processors adapted to provide presence information; a global table accessible to the plurality of processors, the global table including presence information for a plurality of users; a local table operatively coupled to each processor, the local table including presence information for users associated with one of the plurality of processors associated with that particular local table and being operable to receiving presence information updates from the global table for users associated with that local table; and a load balancer operatively coupled to the plurality of processors, wherein the load balancer distributes and balances requests from a user to at least one of the plurality of processors having capacity to process the request, wherein the presence engine is assigned to the user and the contacts of the user. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36)
-
-
37. A method for deploying a high availability presence engine for instant messaging, comprising the steps of:
-
receiving a user'"'"'s presence change information in a global table; updating the global table to reflect the change in the user'"'"'s presence information; assigning at least one presence engine to the user and the user'"'"'s contacts; and sending updated presence information on the user to local tables of contacts affected by the change in the user'"'"'s presence. - View Dependent Claims (38, 39, 40, 41, 42, 43)
-
-
44. A method for determining status of a user of a high availability instant messaging system, comprising:
-
querying for presence status of a user, the presence status of the user supplied by a presence engine, the presence engine assigned to the user and the user'"'"'s contacts; determining whether information on the user resides in a local table; and returning the status of the user to the requesting client when information on the user resides in the local table, the status of the user being returned using at least one state label. - View Dependent Claims (45, 46, 47)
-
-
48. A method for removing a user from a high availability presence engine for instant messaging system, comprising:
-
receiving from the presence engine a presence change of a user to an offline state, the presence engine assigned to the user and the user'"'"'s contacts; sending the presence change to a global table; and purging the user'"'"'s user identification from the global table. - View Dependent Claims (49, 50, 51)
-
Specification