Managing rich presence collections
First Claim
1. A system of expiring published presence information from a presence server, comprising:
- a memory storing computer-executable instructions of;
a receive request component that receives a request to publish presence information containing a user identifier identifying a publishing user and an expiration type being either static or non-static, wherein a non-static expiration type indicates that the presence information should remain published until a connect status of the publishing user changes, wherein static expiration type indicates that the presence information should remain published until explicitly unpublished, wherein the receive request component stores the user identifier and the expiration type, and wherein the request to publish presence information comprises;
a list of publication tags specifying presence information to be published and a list of unpublish tags specifying presence information to be unpublished,a specification of category of device to which the presence information applies,a specification of device instances within the category to which the presence information applies, wherein each device instance specifies a specific device, anda collection to which the presence information applies, wherein the collection specifies a group of subscribers to which the presence information is published;
a publishing component that publishes batches of the stored presence information to subscribers in a single publication;
a receive subscription request component that receives subscription requests from a potential subscriber, wherein individual subscription requests specify multiple attributes of the publishing user and are sent individually;
a connect status detection component that, if the expiration type is non-static, detects that the connect status of the user has changed;
an update subscriptions component that is invoked by the receive subscription request component sending a single request to the update subscriptions component, wherein the single request includes one or more subscription filters and one or more unsubscription filters, wherein the subscription filters define available categories, instances, and collections to which the potential subscriber wishes to subscribe, and wherein the unsubscription filters define existing category, instance, and collection subscriptions which the potential subscriber wishes to terminate, wherein the update subscriptions component applies the subscription filters and the unsubscription filters; and
an unpublish publication component that unpublishes presence information with an expiration type of non-static from the presence server when the connect status detection component detects that the connect status has changed by removing the stored presence information of the user with an expiration type of non-static and that unpublishes presence information with an expiration type of static when an explicit unpublish request is received by removing the stored presence information of the user with an expiration type of static such that subsequent publishing of the presence information for the request will not include the unpublished presence information, wherein the unpublish publication component is independent of the publishing component such that presence information on the presence server is independent of the subscribers; and
a processor for executing the computer-executable instructions stored in the memory.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and system for increasing the computational and network efficiency of presence servers having collections of publications is provided. The presence system uses several techniques that enable a presence server to provide rich presence information without requiring expensive processing. First, the presence system accepts batches of publication updates in a single presence update request. Similarly, the presence system accepts batches of subscription requests. Next, the presence system supports new expiration types for publication update requests that eliminate the need for a publishing user to continually refresh presence information that has not changed. Finally, the presence system accepts access lists that contain membership groups rather than an individual list of users that are to have access to a particular presence collection.
72 Citations
14 Claims
-
1. A system of expiring published presence information from a presence server, comprising:
-
a memory storing computer-executable instructions of; a receive request component that receives a request to publish presence information containing a user identifier identifying a publishing user and an expiration type being either static or non-static, wherein a non-static expiration type indicates that the presence information should remain published until a connect status of the publishing user changes, wherein static expiration type indicates that the presence information should remain published until explicitly unpublished, wherein the receive request component stores the user identifier and the expiration type, and wherein the request to publish presence information comprises; a list of publication tags specifying presence information to be published and a list of unpublish tags specifying presence information to be unpublished, a specification of category of device to which the presence information applies, a specification of device instances within the category to which the presence information applies, wherein each device instance specifies a specific device, and a collection to which the presence information applies, wherein the collection specifies a group of subscribers to which the presence information is published; a publishing component that publishes batches of the stored presence information to subscribers in a single publication; a receive subscription request component that receives subscription requests from a potential subscriber, wherein individual subscription requests specify multiple attributes of the publishing user and are sent individually; a connect status detection component that, if the expiration type is non-static, detects that the connect status of the user has changed; an update subscriptions component that is invoked by the receive subscription request component sending a single request to the update subscriptions component, wherein the single request includes one or more subscription filters and one or more unsubscription filters, wherein the subscription filters define available categories, instances, and collections to which the potential subscriber wishes to subscribe, and wherein the unsubscription filters define existing category, instance, and collection subscriptions which the potential subscriber wishes to terminate, wherein the update subscriptions component applies the subscription filters and the unsubscription filters; and an unpublish publication component that unpublishes presence information with an expiration type of non-static from the presence server when the connect status detection component detects that the connect status has changed by removing the stored presence information of the user with an expiration type of non-static and that unpublishes presence information with an expiration type of static when an explicit unpublish request is received by removing the stored presence information of the user with an expiration type of static such that subsequent publishing of the presence information for the request will not include the unpublished presence information, wherein the unpublish publication component is independent of the publishing component such that presence information on the presence server is independent of the subscribers; and a processor for executing the computer-executable instructions stored in the memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer-readable storage medium containing computer-executable instructions that when executed cause a computing system to perform a method for expiring published presence information from a presence server, the method comprising:
-
receiving a publication request to publish batches of presence information in a single publication containing a user identifier and an expiration type, the expiration type being at least one of a user expiration type, a device expiration type, a duration expiration type, and a static expiration type, the static expiration type indicating that the presence information should remain published independent of a connect status, wherein the publication request comprises; a list of publication tags specifying presence information to be published and a list of unpublish tags specifying presence information to be unpublished, a specification of category of device to which the presence information applies, a specification of device instances within the category to which the presence information applies, and a collection to which the presence information applies, wherein the collection specifies a group of subscribers to which the presence information is published; detecting that the connect status for presence information of a user expiration type has changed because the user has gone offline or online independent of an audience of the presence information; detecting that the connect status for presence information of a device expiration type has changed because the device has gone offline or online independent of an audience of the presence information; detecting that the connect status for presence information of a duration expiration type has changed because the duration has expired independent of an audience of the presence information; receiving a subscription update request from a subscriber to update subscriptions for the subscriber, wherein the subscription update request includes a subscription filter and an unsubscription filter, wherein the subscription filter defines available categories, instances, and collections to which the subscriber wishes to subscribe, and wherein the unsubscription filter defines existing category, instance, and collection subscriptions which the subscriber wishes to terminate; updating the subscriptions based on the subscription filter and the unsubscription filter; and unpublishing the presence information from the presence server after detecting that the connect status has changed. - View Dependent Claims (11, 12, 13, 14)
-
Specification