Управление богатыми коллекциями присутствия

Иллюстрации

Показать все

Изобретение относится к области предоставления информации присутствия. Техническим результатом является увеличения вычислительной и сетевой эффективности серверов присутствия, имеющих коллекции публикаций. Система присутствия использует несколько методов, которые позволяют серверу присутствия предоставлять богатую информацию присутствия без необходимости дорогостоящей обработки. Во-первых, система присутствия принимает пакеты обновлений публикации в одном запросе обновления присутствия. Аналогично, система присутствия принимает пакеты запросов подписки. Далее, система присутствия поддерживает новые типы истечения срока действия для запросов обновления публикации, которые исключают необходимость для публикующего пользователя непрерывно обновлять информацию присутствия, которая не была изменена. В заключение, система присутствия принимает списки доступа, которые содержат членские группы, а не индивидуальный список пользователей, которые должны иметь доступ к конкретной коллекции присутствия. 2 н. и 12 з.п. ф-лы, 8 ил.

Реферат

Уровень техники

Серверы присутствия все чаще используются для предоставления информации присутствия, такой как статус доступности пользователей. Информация присутствия пользователя идентифицирует текущий "статус присутствия" этого пользователя. Пользователи могут сделать их информацию присутствия доступной, чтобы другие пользователи могли определить, как лучше всего связаться с ними. Например, информация присутствия может указывать, что пользователь вошел в сервер мгновенных сообщений ("онлайн") или вышел из него ("оффлайн"). Информация присутствия также может предоставлять более детальную информацию о доступности пользователя. Например, даже если пользователь находится в режиме онлайн, он может находиться вдали от своего компьютера, например на совещании. В подобных случаях, статус присутствия может указывать "онлайн" и "на совещании".

В контексте мгновенных сообщений публикующий пользователь ("издатель") может предоставлять свою информацию присутствия в службу присутствия, которая в свою очередь предоставляет информацию присутствия подписывающимся пользователям ("подписчикам"). Соответственно, служба присутствия может использовать модель подписчик/издатель, чтобы предоставлять информацию присутствия для публикующих и подписывающихся пользователей службы присутствия. Когда информация присутствия пользователя изменяется, служба присутствия уведомляется об изменении посредством компьютерной системы этого пользователя, и она в свою очередь уведомляет подписывающихся пользователей об изменении. Тогда подписывающийся пользователь на основании информации присутствия заданных участников может определить, каким образом лучше всего связаться с публикующим пользователем. Например, если информация присутствия указывает, что публикующий пользователь в текущее время проводит совещание по телефону, то подписывающийся пользователь может решить послать публикующему пользователю мгновенное сообщение, а не звонить ему напрямую. Тем не менее, если подписывающемуся пользователю требуется позвонить и поговорить с публикующим пользователем, то подписывающийся пользователь может наблюдать за изменением информации присутствия публикующего пользователя, чтобы узнать, когда можно выполнить звонок. Когда подписывающийся пользователь замечает, что информация присутствия публикующего пользователя указывает, что телефонное совещание было завершено, тогда подписывающийся пользователь может позвонить по телефону.

Конкретный пользователь также может публиковать информацию присутствия из множества устройств. Например, пользователь может быть одновременно подключен к службе присутствия с переносного компьютера, настольного компьютера и сотового телефона. Информация присутствия может указывать статус пользователя на каждом устройстве. Это особенно полезно, если, например, пользователь идет на совещание с сотовым телефоном и уже отошел от своего настольного компьютера. Если подписывающийся пользователь хочет связаться с публикующим пользователем, то информация присутствия может указывать, что с точки зрения связи с пользователем звонок на сотовый телефон будет более эффективен, чем передача мгновенного сообщения на настольный компьютер публикующего пользователя. Каждое устройство пользователя также может подписаться на информацию присутствия других устройств пользователя, что позволяет этим устройствам, например, определять, на каком устройстве публикующего пользователя имеет место наибольшая активность.

Из-за постоянного возрастания популярности систем мгновенных сообщений и других систем связи реального времени, службы присутствия должны поддерживать все большее количество пользователей. В добавление, эти системы должны поддерживать постоянно усложняющиеся определения "информации присутствия". Например, информация присутствия может включать в себя календарную информацию, которая определяет доступность издателя в течение следующих нескольких месяцев. В результате сервер присутствия, как правило, разрабатывается так, чтобы предоставлять службы присутствия эффективным образом. К сожалению, типичные модели присутствия требуют выполнения больших объемов вычислений при обновлении информации присутствия. Так, когда добавляются новые издатели и подписчики, возникает необходимость в дополнительных серверах присутствия, чтобы выполнять необходимые вычисления.

Ранее системы присутствия обрабатывали публикацию информации присутствия путем размещения всей информации присутствия в одном XML-документе. В этом случае, когда определенные фрагменты информации присутствия пользователя изменяются, издатель должен указать на строку в документе и заменить ее новой информацией присутствия или указать узел в XML-поддереве и заменить его другим XML-поддеревом. Этот вид обновления требует выполнения дорогого вычислительного XML-анализа. Когда количество пользователей и обновлений присутствия увеличивается, нагрузка XML-анализа, выполняемого сервером присутствия, может стать чрезмерной. Эта модель публикации информации присутствия не позволяет подписчику подписаться только на часть документа присутствия. В добавление, индивидуальные части документа не имеют версий, и подписчик или сервер присутствия не могут с легкостью определить части документа, которые были недавно изменены. Эта модель также не позволяет раскрывать различные версии документа присутствия различным пользователям или специфицировать различную информацию авторизации для индивидуальных частей документа.

Более эффективная система присутствия, которая менее требовательна с вычислительной точки зрения, описана в связанной патентной заявке США № 11/190503 (№41826-8225US по реестру поверенных), озаглавленной "ORGANIZING PRESENCE INFORMATION INTO COLLECTIONS OF PUBLICATIONS", поданной 26-го июля 2005 г, которая включена сюда в своей целостности посредством ссылки. В упомянутой связанной заявке описан способ и система для управления информацией присутствия на основании коллекций публикаций. Система коллекции присутствия создает коллекции публикаций для издателя. Публикация включает в себя тип и значение, а также может сопровождаться атрибутами, такими как когда должен истечь срок действия публикации. Например, публикация с типом "статус" и значением "онлайн" может указывать подписывающимся пользователям, что публикующий пользователь в текущее время находится в режиме "онлайн". Издатель может определить одну коллекцию публикаций, которая должна быть доступна определенным подписчикам, и другую коллекцию публикаций, которая должна быть доступна другим подписчикам. Например, одна коллекция может быть общедоступна, тогда как другая может быть видна только коллегам публикующего пользователя. Каждая коллекция содержит список пользователей, которым разрешается подписываться на информацию из этой коллекции. Система коллекции присутствия может позволять издателю обновлять индивидуальные публикации в коллекции. При получении обновления сервер присутствия может быстро обновить информацию присутствия без необходимости выполнения анализа XML-документов, который требует больших объемов вычислений. Каждая коллекция публикаций может содержать категории информации. Категория представляет собой тип публикации, который охватывает множество коллекций. Например, категория "статус" может иметь публикацию со значением "недоступен" в коллекции, которая общедоступна, а также публикацию с величиной "на встрече с Джоном" в коллекции, которая доступна коллегам. Публикация также может специфицировать идентификатор экземпляра. Идентификатор экземпляра дифференцирует схожую информацию в одной и той же коллекции. Например, пользователь может иметь публикацию "статус" с экземпляром "лэптоп", которая указывает статус пользователя на лэптопе, а также публикацию "статус" с экземпляром "сотовый телефон", которая указывает статус пользователя на сотовом телефоне.

Несмотря на то что система коллекции присутствия представляет улучшение по сравнению с существующим уровнем техники, она может увеличить нагрузку с точки зрения сетевых ресурсов и сервера присутствия. Например, публикующий пользователь, который посылает серверу присутствия отдельные обновления для множества экземпляров публикаций в множестве коллекций, создает большой объем сетевого потока обмена на сервер присутствия. Аналогично, подписывающийся пользователь, который принимает отдельные уведомления для каждой обновляемой публикации, создает большой объем сетевого потока обмена от сервера присутствия к подключенному устройству или устройствам подписанного пользователя. Как правило, для публикаций присутствия истечение срока действия устанавливается в пределах фиксированной величины времени, и публикации присутствия должны периодически обновляться публикующим пользователем, чтобы поддерживать публикации опубликованными. Необходимость обновления множества публикаций, которые не были изменены, создает излишнюю нагрузку на сервер. В заключение, добавление коллекций, имеющих переменные степени детализации, доступных различным подписывающимся пользователям, создает возможность раскрытия информации присутствия большим группам подписчиков. Список пользователей, имеющих доступ к публикации, может сильно расшириться, из-за чего увеличивается объем вычислений для проверки того, на какую коллекцию должен быть подписан конкретный пользователь, что приводит к дополнительной нагрузке сервера присутствия.

Сущность изобретения

Предоставлены способ и система для увеличения вычислительной и сетевой эффективности серверов присутствия с коллекциями публикаций. Система присутствия использует несколько методов, которые позволяют серверу присутствия предоставлять богатую информацию присутствия без необходимости дорогостоящей обработки. Во-первых, система присутствия принимает пакеты обновлений публикации в одном запросе обновления присутствия. Аналогично, система присутствия принимает пакеты запросов подписки. Далее, система присутствия поддерживает новые типы истечения срока действия для запросов обновления публикации, которые исключают необходимость того, чтобы публикующий пользователь постоянно обновлял информацию присутствия, которая не изменилась. В заключение, система присутствия принимает списки доступа, которые содержат членские группы, а не индивидуальный список пользователей, которые должны иметь доступ к конкретной коллекции присутствия.

Раздел "Сущность изобретения" приведен, чтобы представить в упрощенной форме выборку концепций, которые подробно описываются ниже, в разделе "Подробное описание". Раздел "Сущность изобретения" не предназначен ни для определения ключевых или существенных отличительных признаков сущности формулы изобретения, ни для использования при определении объема сущности формулы изобретения.

Краткое описание чертежей

Фиг.1 - структурная схема, которая иллюстрирует компоненты системы присутствия в одном варианте осуществления.

Фиг.2 - распечатка протокола, которая иллюстрирует расширения протокола SIP для передачи обновлений публикаций в одном варианте осуществления.

Фиг.3 - схема последовательности операций, которая иллюстрирует обработку, выполняемую компонентом обновления публикаций, который входит в состав системы присутствия в одном варианте осуществления.

Фиг.4 - распечатка протокола, которая иллюстрирует расширения протокола SIP для передачи запросов на подписку в одном варианте осуществления.

Фиг.5 - схема последовательности операций, которая иллюстрирует обработку, выполняемую компонентом обновления подписок, который входит в состав системы присутствия в одном варианте осуществления.

Фиг.6 - распечатка протокола, которая иллюстрирует расширения протокола SIP для обновления членств коллекции в одном варианте осуществления.

Фиг.7 - схема последовательности операций, которая иллюстрирует обработку, выполняемую компонентом обновления членств, который входит в состав системы присутствия в одном варианте осуществления.

Фиг.8 - схема последовательности операций, которая иллюстрирует обработку, выполняемую компонентом истечения срока действия публикаций, который входит в состав системы присутствия в одном варианте осуществления.

Подробное описание

Предоставлены способ и система для увеличения вычислительной и сетевой эффективности серверов присутствия с коллекциями публикаций. Система присутствия использует несколько методов, которые позволяют серверу присутствия предоставлять богатую информацию присутствия без необходимости дорогостоящей обработки. Во-первых, система присутствия принимает пакеты обновлений публикации в одном запросе обновления присутствия. Например, публикующий пользователь может публиковать множество категорий информации во множестве коллекций путем передачи в сервер присутствия только одного запроса обновления. Аналогично, система присутствия принимает пакеты запросов подписки. Например, подписывающийся пользователь может выполнить запрос подписки на множество категорий информации во множестве коллекций путем передачи в сервер присутствия только одного запроса подписки. Далее, система присутствия поддерживает новые типы истечения срока действия для запросов обновления публикации, которые исключают необходимость непрерывного обновления информации присутствия, которая не была изменена. Например, домашний телефонный номер публикующего пользователя изменяется крайне редко, так что система присутствия позволяет пользователю публиковать эту информацию только один раз и не обновлять ее, если она не изменяется, а не выполнять повторную публикацию этой информации раз в час. В заключение, система присутствия принимает списки доступа, которые содержат членские группы, а не индивидуальный список пользователей, которые должны иметь доступ к конкретной коллекции присутствия. Например, публикующий пользователь может предоставить доступ всем своим коллегам путем применения членской группы к коллекции без перечисления каждого сотрудника индивидуально.

Пакетная обработка публикаций

В одном варианте осуществления система присутствия принимает множество публикаций присутствия в одном запросе. Публикации могут охватывать множество категорий, экземпляров и коллекций. Например, публикующий пользователь, имеющий категории публикации "статус" и "место", может публиковать статус "недоступен" и место "Штаб-квартира Microsoft" в коллекции, которая общедоступна, а также статус "на встрече с Джоном" и место "Конференц-зал 5/Строение 40" в коллекции, которая доступна только его коллегам. Публикующий пользователь также может публиковать множество экземпляров одной и той же информации в каждой коллекции. Например, одной и той же информации в каждой коллекции. Например, категория "телефонный номер" может иметь экземпляры "домашний" для домашнего номера, "рабочий" для рабочего номера и "мобильный" для сотового номера. Пользователь может публиковать значения для каждого из этих экземпляров в одном и том же запросе публикации.

В одном варианте осуществления система присутствия принимает отмены публикаций и публикации в одном запросе. Например, публикующий пользователь, который идет на совещание, может выйти из системы своего настольного компьютера, что приводит к отмене публикаций экземпляров, связанных с настольным компьютером, и пользователь может стать активным на своем сотовом телефоне, что приводит к необходимости добавления новых экземпляров для сотового телефона. Система присутствия может принимать отмену публикаций настольного компьютера и публикации сотового телефона в одном запросе обновления. Например, система присутствия предприятия может принимать обновления публикаций с обоих устройств и пересылать обновления в глобальную систему присутствия в едином запросе.

В одном варианте осуществления система присутствия передает множество обновлений присутствия, используя расширения Протокола Инициации Сессии (Session Initiation Protocol, SIP) и протокола Расширений Применения Мгновенных Сообщений и Присутствия для SIP (SIP for Instant Messaging and Presence Leveraging Extensions, SIMPLE). SIP представляет собой протокол управления уровня приложения, который может использоваться устройствами для обнаружения друг друга и установки, модификации и завершений сессий между устройствами и является предложенным Интернет стандартом, который описан в документе "RFC 3261". Документ RFC 3261, который доступен в Интернете по адресу www.ietf.org/rfc/rfc3261.txt, включен сюда в своей целостности посредством ссылки. Стандарт SIP предоставляет возможность конструкторам добавлять расширения, чтобы определять специальные свойства. Система присутствия добавляет тег <publish> (<публиковать>), который содержит список тегов <publication> (<публикация>), специфицирующий информацию присутствия, которая должна быть опубликована, а также схожий тег <unpublish> (<отменить публикацию>), который содержит список тегов <publication> (<публикация>), специфицирующих информацию присутствия, публикация которых должна быть отменена. Каждая публикация идентифицирует категорию, экземпляр и коллекцию, к которой она относится. В некоторых вариантах осуществления система присутствия принимает значение истечения срока действия равным нулю для публикации в теге <publish> (<публиковать>) как индикацию отменить публикацию информации, вместо того, чтобы определять отдельный тег <unpublish> (<отменить публикацию>).

В одном варианте осуществления система присутствия принимает обновления для множества публикующих пользователей в одном запросе. Например, когда используется протокол SIP, каждая публикация может содержать Унифицированный Идентификатор Ресурса (Uniform Resource Identifier, URI) пользователя, к которому публикация относится. Это предоставляет возможность службам публиковать информацию от лица большого количества пользователей. Например, сервер электронной почты Exchange может публиковать календарную информацию для всех пользователей, которые используют сервер. В еще одном примере, оператор сотовой связи может публиковать информацию о месте своих абонентов сотовой связи на сервере присутствия. В обоих этих примерах, информация, которая согласно существующему уровню техники сгенерировала бы большой объем сетевого потока обмена, может быть опубликована для большого количества пользователей в одном запросе в сервер присутствия.

В одном варианте осуществления система присутствия принимает запросы публикации, имеющие различные атрибуты, в одном запросе. Публикующий пользователь может специфицировать политику истечения срока действия для публикации в одной коллекции, которая отличается от политики срока действия для публикации в другой коллекции. Например, в коллекции, имеющей подробную информацию для публикации "место", подробная информация статуса (например, "в конференц-зале 2") может часто изменяться и иметь меньший срок действия, чем менее подробная информация в другой коллекции (например, "В Сиэтле"). В еще одном примере публикующий пользователь в одном и том же запросе может специфицировать одну политику уведомления для одного типа публикаций и другую политику уведомления для другого типа публикаций. Например, политика уведомления может указывать, что обновления в определенных категориях вообще не должны генерировать уведомления.

Пакетная обработка подписок

В одном варианте осуществления система присутствия принимает от подписывающегося пользователя подписки для множества категорий в одном запросе. Например, подписывающийся пользователь, который заинтересован в статусе и месте публикующего пользователя, может составить один запрос подписки, который содержит "статус" и "место" в списке категорий.

В одном варианте осуществления система присутствия принимает от подписывающегося пользователя подписки для множества публикующих пользователей в одном запросе. Например, подписывающийся пользователь может подписаться на множество категорий для Пользователя A и Пользователя B в одном запросе. Когда подписывающийся пользователь подписывается на информацию присутствия для каждого из пользователей в своем списке контактов, это может привести к значительной экономии ресурсов, поскольку все подписки могут быть выполнены в одном запросе. Аналогично, система присутствия также может принимать списки различных категорий для различных пользователей в одном запросе. Например, подписывающийся пользователь может подписаться на категории 1 и 2 для Пользователя A и категории 3 и 4 для Пользователя B в одном запросе.

В одном варианте осуществления система присутствия предоставляет возможность запросу подписки получать информацию присутствия без создания подписки. Например, пользователю может потребоваться запросить информацию присутствия для публикующего пользователя один раз без необходимости получения уведомлений при изменении информации. Пользователь может передать запрос подписки с указанием, что запрос является запросом для текущего значения информации присутствия в специфицированных категориях, а не запросом на создание подписки.

В одном варианте осуществления система присутствия принимает удаление существующих подписок в том же запросе, в котором присутствует добавление новых подписок. Например, если подписывающийся пользователь больше не заинтересован в месте публикующего пользователя, но хочет отслеживать текущий телефонный номер публикующего пользователя, то подписывающийся пользователь может составить один запрос, который содержит категорию "статус" в списке категорий, подписку на которые нужно отменить, и категорию "телефонный номер" в списке категорий, на которые нужно подписаться.

В одном варианте осуществления система присутствия принимает запросы подписки от лица множества подписывающихся пользователей в одном запросе. Например, компания может иметь локальный сервер присутствия, который принимает индивидуальные запросы подписки от подписывающихся пользователей в рамках компании и пересылает запросы в глобальный сервер присутствия, как единый пакетный запрос подписки.

В одном варианте осуществления система присутствия передает множество подписок присутствия, используя расширения протоколов SIP и SIMPLE. Система присутствия добавляет тег <batchSub>, который содержит тег <categoryList>, который специфицирует список категорий, на которые необходимо подписаться. Тег <batchSub> также может специфицировать тег <adhocList>, который специфицирует список пользователей, на категории которых необходимо подписаться. Система присутствия также добавляет тег <batchUnsub>, который также содержит теги, специфицирующие списки пользователей и их категории, подписка на которые отменяется. Система может также предоставлять возможность запроса подписки с пустым телом, чтобы указывать, что подписка для всех пользователей и категорий должна быть отменена, нежели запрашивать подписывающегося пользователя перечислять каждую категорию и пользователя, на которые они подписались.

В одном варианте осуществления система присутствия отфильтровывает нежелательную информацию присутствия для подписывающегося пользователя путем применения требования наличия явной подписки на каждую категорию, в которой заинтересован подписывающийся пользователь. Например, публикующий пользователь может публиковать сотни категорий информации, но подписывающийся пользователь может пожелать получать сведения только о текущем статусе публикующего пользователя. Подписывающийся пользователь может передать запрос подписки, указывающий подписку на категорию "статус", и пользователь будет получать уведомления только для этой категории. В случае увеличения объема информации, предоставляемой сервером присутствия, это предотвращает перегрузку подписывающегося пользователя уведомлениями, в которых пользователь не заинтересован.

Модели истечения срока действия

В одном варианте осуществления система присутствия принимает публикации, для которых срок действия истекает, когда публикующее устройство выходит из сервера присутствия. В ранее существующих системах публикующий пользователь публиковал информацию с фиксированным сроком действия (например, один час), и чтобы поддерживать ее в опубликованном состоянии, он должен был обновлять или повторно публиковать информацию, когда срок действия публикации был близок к концу. Система присутствия определяет новый тип истечения срока действия, который поддерживает публикацию информации присутствия до тех пор, пока устройство, которое опубликовало информацию, не перейдет в режим оффлайн. Это используется, например, когда устройство, такое как сотовый телефон, имеет опубликованные экземпляры информации, которые действительны только тогда, когда сотовый телефон находится в режиме онлайн. Когда сотовый телефон выключается или иным образом переходит в режим оффлайн, сервер присутствия может детектировать это событие и удалить информацию, которая оставалась релевантной, пока устройство было в режиме онлайн. Когда устройство находится в режиме онлайн, больше не требуется непрерывно обновлять информацию присутствия, которая не изменилась, чтобы удерживать ее от истечения срока действия.

В одном варианте осуществления система присутствия принимает публикации, срок действия которых истекает, когда публикующий пользователь выходит из режима онлайн. Этот тип истечения срока действия полезен для информации присутствия, которая применима к множеству устройств в течение периода, когда пользователь находится в режиме онлайн, но которая больше не будет релевантной, если пользователь переходит в режим оффлайн. Система присутствия может детектировать, что пользователь находится в режиме оффлайн, когда пользователь выходит из всех устройств. Система присутствия может детектировать, что пользователь уже вышел из системы устройства, когда устройство отсоединяется от сервера присутствия или когда устройство информирует сервер присутствия о том, что пользователь больше не использует устройство. Например, общественный Интернет-киоск может предоставить пользователю возможность доступа в Интернет путем вставки USB-ключа, который идентифицирует пользователя. Когда ключ удаляется, упомянутый Интернет-киоск может информировать все службы, к которым был соединен пользователь, таким как служба присутствия, что пользователь больше не использует устройство. Когда пользователь находится в режиме онлайн, информация остается опубликованной без запросов обновления от пользователя, благодаря чему сервер присутствия не обрабатывает лишние дополнительные запросы обновления.

В одном варианте осуществления система присутствия принимает публикации, срок действия которых не истекает. Этот тип истечения срока действия, называемый статическим, полезен для информации, которая остается релевантной независимо от того, находится ли пользователь в режиме онлайн или оффлайн, как например, телефонный номер или адрес пользователя. Этот тип истечения срока действия также может использоваться службами, которые публикуют информацию от лица пользователя. Например, для публикации календарной информации пользователя серверу Exchange, который публикует календарную информацию для множества пользователей, не требуется знать, находится ли пользователь в режиме онлайн или нет, и срок действия информации не должен истекать независимо от текущего статуса пользователя. Следовательно, такие службы могут публиковать информацию путем указания статического типа истечения срока действия для публикации, и публикация этой опубликованной информации не будет отменена, если сервер присутствия не получит явного запроса на отмену публикации.

Членские группы

В одном варианте осуществления система присутствия принимает членские списки коллекции, которые содержат группы пользователей. В ранее существующих системах, пользователи, которые должны были выполнять доступ к конкретной коллекции информации присутствия, перечислялись в списке в явной форме и коллекция по умолчанию содержала информацию, которая была применима к пользователям, которых не было в списке. Система присутствия предоставляет возможность специфицирования групп пользователей, что снижает сложность вычислений при определении того, имеет ли пользователь доступ к коллекции для больших групп пользователей. Членские списки коллекции могут быть специфицированы при публикации информации присутствия, либо независимо - по отдельному запросу. Один тип членской группы - "список контактов" - определяет, что любой подписывающийся пользователь из списка контактов публикующего пользователя может просматривать информацию в коллекции, которой группа назначена.

В одном варианте осуществления система присутствия принимает в качестве публикующего пользователя членскую группу, которая содержит пользователей в одном и том же предприятии. Эта членская группа предоставляет возможность посредством одной записи в членском списке коллекции пользователя специфицировать, что любой подписывающийся пользователь в одном и том же предприятии должен иметь доступ к конкретной коллекции. Например, для большой корпорации, такой как Microsoft, это предоставляет возможность создания коллекции с дополнительными деталями для сотрудников, которая содержит одну запись в членском списке, который специфицирует членскую группу "одного и того же предприятия". Сервер присутствия определяет, имеет ли конкретный подписывающийся пользователь доступ к коллекции, путем проверки, входит ли пользователь и публикующий пользователь в одно и то же предприятие, например, путем опроса контроллера внешнего домена. Это предотвращает дублирование сервером присутствия одних и тех же списков пользователей, которые уже содержатся в контроллере внешнего домена.

В одном варианте осуществления система присутствия принимает членскую группу, содержащую пользователей в публичном облаке. Публичное облако определяется как доступный извне список пользователей, предоставленный другой организацией. Членская группа публичного облака полезна, когда один оператор сервера присутствия имеет партнерские соглашения с операторами других систем присутствия. Например, сервер присутствия, используемый программным обеспечением мгновенных сообщений Microsoft's, может взаимодействовать с платформами мгновенных сообщений AOL, Yahoo и т.д., используя членские группы публичного облака. Путем специфицирования членской группы публичного облака в членском списке коллекции, публикующий пользователь может определить публикации присутствия, на которые члены других систем присутствия могут подписаться и просматривать без необходимости явного перечисления каждого члена в членском списке коллекции.

В одном варианте осуществления система присутствия принимает интегрированную членскую группу. Интегрированная членская группа представляет собой группу, в которой множество записей определяют списки пользователей, которые должны иметь одинаковый доступ к информации присутствия. Например, две корпорации, такие как Microsoft и Intel, могут предоставить списки своих сотрудников для интегрированных членских групп. Сервер присутствия, принимающий публикации с интегрированной членской группой, ссылается на определенные сервера интегрированного членства, чтобы определить, какие пользователи являются членами интегрированной группы. Тогда, публикующий пользователь может специфицировать публикации, на которые может подписаться интегрированная группа.

В одном варианте осуществления система присутствия принимает пакеты изменений членского списка в одном запросе. Например, публикующий пользователь может предоставить доступ подписывающимся пользователям из одной и той же членской группы предприятия к одной коллекции и удалить пользователей в членской группе публичного облака из коллекции в одном запросе. Публикующий пользователь может специфицировать членские списки для множества коллекций, а также множество членских групп и индивидуальных пользователей в членском списке для конкретной коллекции в одном запросе.

Путем комбинирования модели коллекции с членскими группами, публикующий пользователь может установить иерархическую структуру доступа к информации присутствия. Например, календарная информация пользователя может быть предоставлена сотрудникам одного и того же предприятия в более подробной форме и одновременно другим пользователям в форме информации свободен/занят (которая указывает только периоды, когда пользователь свободен, и периоды, когда пользователь занят). Это позволяет публичным членам планировать встречи с публикующим пользователем, которые не конфликтуют с остальным графиком пользователя, причем это выполняется без раскрытия личной информации о том, что делает пользователь. С другой стороны, коллегам публикующего сотрудника предоставляется более детальная информация о том, что пользователь делает, например информация о том, что пользователь назначил встречу с коллегой позже в тот же день.

Фиг.1 представляет собой структурную схему, которая иллюстрирует компоненты системы присутствия в одном варианте осуществления. Система 110 присутствия соединена с объектными устройствами 120 и 130 через линии 140 связи, такие как Интернет. Объектные устройства соответствуют объектам, которые могут быть издателями или подписчиками. Объектные устройства включают в себя компонент 122 составления обновления публикации, компонент 125 составления запроса подписки и компонент 127 передачи запроса. Компонент 122 составления обновления публикации составляет запросы обновления опубликованной информации присутствия, которые могут включать в себя пакеты индивидуальных обновлений публикации. Компонент 125 составления запроса подписки составляет запросы подписки, которые могут включать в себя пакеты подписок на множество категорий информации присутствия для множества публикующих пользователей. Компонент 127 передачи запроса передает запросы обновления публикации и запросы подписки в сервер 110 присутствия.

Система присутствия включает в себя компонент 150 приема обновления публикации, компонент 155 обновления публикаций, компонент 170 приема обновления членства, компонент 175 обновления членств, компонент 180 истечения срока действия публикаций, компонент 182 детектирования статуса соединения, компонент 185 приема запроса подписки, компонент 190 обновления подписок, компонент 165 создания коллекции, компонент 160 хранилища публикаций и компонент 195 хранилища подписок. Хранилище 160 публикаций содержит публикации издателей. Публикации организованы в коллекции, созданные посредством компонента 165 создания коллекции. Компонент 150 приема обновления публикации вызывается тогда, когда от издателя принимается запрос обновления одной или более публикаций. Компонент 150 приема обновления публикации вызывает компонент 155 обновления публикаций, чтобы добавлять, удалять или обновлять публикации в хранилище 160 публикаций согласно запросу. Компонент 170 приема обновления членства вызывается тогда, когда от издателя принимается запрос обновления членского списка одной или более коллекций в хранилище 160 публикаций. Запрос может быть принят как независимое сообщение или как часть запроса обновления публикации. Компонент 170 приема обновления членства вызывает компонент 175 обновления членств, чтобы добавлять, удалять и обновлять членства коллекций в хранилище 160 публикаций. Компонент 185 приема запроса подписки вызывается тогда, когда от объекта принимается запрос подписки на один или более типов публикаций издателя. Компонент 185 приема запроса подписки вызывает компонент 190 обновления подписок, чтобы подписать объект на запрошенные типы публикаций. Подписки хранятся в хранилище 195 подписок, которое может быть интегрировано с хранилищем 160 публикаций. Компонент 180 истечения срока действия публикаций периодически вызывается системой присутствия, чтобы вычищать публикации с истекшим сроком действия в хранилище 160 пу