Управление усовершенствованными совокупностями присутствия
Иллюстрации
Показать всеИзобретение относится к области серверов присутствия. Техническим результатом является повышение вычислительной и сетевой эффективности серверов присутствия. Компьютерная система для передачи множества обновлений присутствия с использованием единого пакетного запроса содержит процессор; модуль памяти, подключенный к процессору с возможностью обмена данными и содержащий машиночитаемые команды, которыми при их исполнении процессором реализуется способ, содержащий прием множества обновлений присутствия, причем каждое из этого множества обновлений присутствия содержит информацию присутствия, включающую в себя по меньшей мере одно из идентификаторов пользователя, который идентифицирует пользователя, идентификатора совокупности, который идентифицирует совокупность, причем совокупность идентифицирует группу публикаций присутствия, и идентификатора типа, который идентифицирует категорию информации присутствия; отправку упомянутого множества обновлений присутствия в едином пакетном запросе на сервер присутствия, причем единый пакетный запрос включает в себя по меньшей мере два обновления присутствия, причем упомянутое множество обновлений присутствия содержит: обновления публикаций и обновления подписок. 3 н. и 12 з.п. ф-лы, 8 ил.
Реферат
Предшествующий уровень техники
Серверы присутствия все чаще используются для предоставления информации присутствия, такой как статус доступности пользователей. Информация присутствия пользователя идентифицирует текущий "статус присутствия" этого пользователя. Пользователи могут сделать доступной информацию о своем присутствии, чтобы другие пользователи могли определить, как лучше всего связаться с ними. Например, информация присутствия может указывать, что пользователь осуществил логический вход в сервер мгновенных сообщений ("онлайн") или осуществил логический выход из него ("оффлайн"). Информация присутствия также может предоставлять более детальную информацию о доступности пользователя. Например, даже если пользователь находится в режиме онлайн, он может находиться вдали от своего компьютера, например на совещании. В подобных случаях статус присутствия может указывать "онлайн" и "на совещании".
В контексте мгновенных сообщений публикующий пользователь ("издатель") может предоставлять свою информацию присутствия в службу присутствия, которая, в свою очередь, предоставляет информацию присутствия подписывающимся пользователям ("подписчикам"). Соответственно, служба присутствия может использовать модель подписчик/издатель, чтобы предоставлять информацию для публикующих и подписывающихся пользователей службы присутствия. Когда информация присутствия пользователя изменяется, служба присутствия уведомляется об изменении посредством компьютерной системы этого пользователя, и она, в свою очередь, уведомляет подписывающихся пользователей об этом изменении. Тогда подписывающийся пользователь на основании информации присутствия намеченных участников может определить, каким образом лучше всего связаться с публикующим пользователем. Например, если информация присутствия указывает, что публикующий пользователь в текущее время проводит совещание по телефону, то подписывающийся пользователь может решить послать публикующему пользователю мгновенное сообщение, а не звонить ему напрямую. Тем не менее, если подписывающемуся пользователю требуется позвонить и поговорить с публикующим пользователем, то подписывающийся пользователь может наблюдать за изменением информации присутствия публикующего пользователя, чтобы узнать, когда можно выполнить звонок. Когда подписывающийся пользователь замечает, что информация присутствия публикующего пользователя указывает, что телефонное совещание было завершено, тогда подписывающийся пользователь может позвонить по телефону.
Отдельный пользователь также может публиковать информацию присутствия из множества устройств. Например, пользователь может быть одновременно подключен к службе присутствия с переносного компьютера, настольного компьютера и сотового телефона. Информация присутствия может указывать статус пользователя на каждом устройстве. Это особенно полезно если, например, пользователь идет на совещание с сотовым телефоном и уже отошел от своего настольного компьютера. Если подписывающийся пользователь хочет связаться с публикующим пользователем, то информация присутствия может указывать, что с точки зрения связи с пользователем звонок на сотовый телефон будет более эффективен, чем передача мгновенного сообщения на настольный компьютер публикующего пользователя. Каждое устройство пользователя также может подписаться на информацию присутствия других устройств пользователя, что позволяет этим устройствам, например, определять, на каком устройстве публикующего пользователя имеет место наибольшая активность.
Из-за постоянного возрастания популярности систем мгновенных сообщений и других систем связи реального времени службы присутствия должны поддерживать все большее количество пользователей. В добавление, эти системы должны поддерживать постоянно усложняющиеся определения "информации присутствия". Например, информация присутствия может включать в себя календарную информацию, которая определяет доступность издателя в течение следующих нескольких месяцев. В результате сервер присутствия, как правило, разрабатывается так, чтобы предоставлять службы присутствия эффективным образом. К сожалению, типичные модели присутствия требуют выполнения больших объемов вычислений при обновлении информации присутствия. Так, когда добавляются новые издатели и подписчики, возникает необходимость в дополнительных серверах присутствия, чтобы выполнять необходимые вычисления.
Ранее системы присутствия обрабатывали публикацию информации присутствия путем размещения всей информации присутствия в одном XML-документе. В этом случае, когда определенные фрагменты информации присутствия пользователя изменяются, издатель должен указать на строку в документе и заменить ее новой информацией присутствия или указать узел в XML-поддереве и заменить его другим XML-поддеревом. Данный способ обновления требует выполнения дорогого в вычислительном плане XML-разбора. Когда количество пользователей и обновлений присутствия увеличивается, нагрузка по XML-разбору, выполняемому сервером присутствия, может стать чрезмерной. Это модель публикации информации присутствия не позволяет подписчику подписаться только на часть документа присутствия. В добавление, отдельные части документа не имеют версий, и подписчик или сервер присутствия не могут с легкостью определить части документа, которые были недавно изменены. Эта модель также не позволяет раскрывать различные версии документа присутствия различным пользователям или специфицировать различную информацию авторизации для отдельных частей документа.
Более эффективная система присутствия, которая менее требовательна с вычислительной точки зрения, описана в связанной патентной заявке США №11/190,503 (№418268225US по реестру поверенных) «Organizing Presence Information into Collections of Publications» ("Организация информации присутствия в совокупности публикаций"), поданной 26-го июля 2005 г, которая включена в настоящий документ в своей целостности посредством ссылки. В упомянутой связанной заявке описаны способ и система для управления информацией присутствия на основании совокупностей публикаций. Система совокупности присутствия создает совокупности публикаций для издателя. Публикация включает в себя тип и значение, а также сопутствующие атрибуты, такие как срок действия публикации. Например, публикация с типом "статус" и значением "онлайн" может указывать подписывающимся пользователям, что публикующий пользователь в данное время находится в режиме онлайн. Издатель может определить одну совокупность публикаций, которая должна быть доступна определенным подписчикам, и другую совокупность публикаций, которая должна быть доступна другим подписчикам. Например, одна совокупность может быть общедоступна, тогда как другая совокупность может быть видна только коллегам публикующего пользователя. Каждая совокупность содержит список пользователей, которым разрешается подписываться на информацию из этой совокупности. Система совокупности присутствия может позволять издателю обновлять отдельные публикации в совокупности. При получении обновления сервер присутствия может быстро обновить информацию присутствия без необходимости выполнения разбора XML-документов, который требует больших объемов вычислений. Каждая совокупность публикаций может содержать категории информации. Категория представляет собой тип публикации, которых охватывает множество совокупностей. Например, категория "статус" может иметь публикацию со значением "недоступен" в совокупности, которая общедоступна, а также публикацию с величиной "на встрече с Джоном" в совокупности, которая доступна коллегам. Публикация также может специфицировать идентификатор экземпляра. Идентификатор экземпляра дифференцирует схожую информацию в одной и той же совокупности. Например, пользователь может иметь публикацию "статус" с экземпляром "лэптоп", которая указывает статус пользователя на лэптопе, а также публикацию "статус" с экземпляром "сотовый телефон", которая указывает статус пользователя на сотовом телефоне.
Несмотря на то, что данная система совокупности присутствия представляет улучшение по сравнению с существующим уровнем техники, она может увеличить нагрузку с точки зрения сетевых ресурсов и сервера присутствия. Например, публикующий пользователь, который посылает серверу присутствия отдельные обновления множества экземпляров совокупности в рамках множества совокупностей, создает большой объем сетевого потока обмена на сервер присутствия. Аналогично, подписывающийся пользователь, который принимает отдельные уведомления для каждой обновляемой публикации, создает большой объем сетевого потока обмена от сервера присутствия к подключенному устройству или устройствам подписанного пользователя. Как правило, срок действия публикаций присутствия устанавливается равным фиксированному количеству времени, и публикации присутствия должны периодически обновляться публикующим пользователям, чтобы поддерживать публикации в опубликованном состоянии. Необходимость обновления множества публикаций, которые не были изменены, создает излишнюю нагрузку на сервер. В заключение, добавление совокупностей с переменными степенями детализации, доступных различным подписывающимся пользователям, создает возможность раскрытия информации присутствия большим группам подписчиков. Список пользователей, имеющих доступ к публикации, может сильно расшириться, из-за чего увеличивается объем вычислений для проверки того, на какую совокупность должен быть подписан конкретный пользователь, что приводит к дополнительной нагрузке сервера присутствия.
Сущность изобретения
Предоставлены способ и система для увеличения вычислительной и сетевой эффективности серверов присутствия с совокупностями публикаций. Данная система присутствия использует несколько методик, которые позволяют серверу присутствия предоставлять богатую информацию присутствия без необходимости дорогостоящей обработки. Во-первых, система присутствия принимает пакеты обновлений публикации в одном запросе обновления присутствия. Аналогично, система присутствия принимает пакеты запросов подписки. Далее, система присутствия поддерживает новые типы срока действия для запросов обновления публикации, которые исключают необходимость для публикующего пользователя непрерывно обновлять информацию присутствия, которая не была изменена. В заключение, данная система присутствия принимает списки доступа, которые содержат членские группы, а не отдельные списки пользователей, которые должны иметь доступ к отдельной совокупности присутствия.
Раздел "Сущность изобретения" приведен, чтобы представить в упрощенной форме выборку концепций, которые подробно описываются ниже, в разделе "Подробное описание". Раздел "Сущность изобретения" не предназначен ни для определения ключевых или существенных отличительных признаков заявленного изобретения, ни для использования при определении объема заявленного изобретения.
Перечень фигур чертежей
Фиг.1 - структурная схема, которая иллюстрирует компоненты системы присутствия в одном варианте осуществления;
Фиг.2 - распечатка протокола, которая иллюстрирует расширения протокола SIP для передачи обновлений публикаций в одном варианте осуществления настоящего изобретения;
Фиг.3 - схема последовательности операций, которая иллюстрирует обработку, выполняемую компонентом обновления публикации, который входит в состав системы присутствия в одном варианте осуществления настоящего изобретения;
Фиг.4 - распечатка протокола, которая иллюстрирует расширения протокола SIP для передачи запросов на подписку в одном варианте осуществления настоящего изобретения;
Фиг.5 - схема последовательности операций, которая иллюстрирует обработку, выполняемую компонентом обновления подписок, который входит в состав системы присутствия в одном варианте осуществления настоящего изобретения;
Фиг.6 - распечатка протокола, которая иллюстрирует расширения протокола SIP для обновления членств совокупности в одном варианте осуществления настоящего изобретения;
Фиг.7 - схема последовательности операций, которая иллюстрирует обработку, выполняемую компонентом обновления членств, который входит в состав системы присутствия в одном варианте осуществления настоящего изобретения;
Фиг.8 - схема последовательности операций, которая иллюстрирует обработку, выполняемую компонентом срока действия публикации, который входит в состав системы присутствия в одном варианте осуществления настоящего изобретения.
Подробное описание
Предоставлены способ и система для увеличения вычислительной и сетевой эффективности серверов присутствия с совокупностями публикаций. Данная система присутствия использует несколько методик, которые позволяют серверу присутствия предоставлять богатую информацию присутствия без необходимости дорогостоящей обработки. Во-первых, система присутствия принимает пакеты обновлений публикации в одном запросе обновления присутствия. Например, публикующий пользователь может публиковать множество категорий информации во множестве совокупностей путем передачи в сервер присутствия только одного запроса обновления. Аналогично, система присутствия принимает пакеты запросов подписки. Например, подписывающийся пользователь может выполнить запрос подписки на множество категорий информации во множестве совокупностей путем передачи в сервер присутствия только одного запроса подписки. Далее, система присутствия поддерживает новые типы срока действия для запросов обновления публикации, которые исключают для публикующего пользователя необходимость непрерывного обновления информации присутствия, которая не была изменена. Например, домашний телефонный номер публикующего пользователя изменяется крайне редко, так что система присутствия позволяет пользователю публиковать эту информацию только один раз и не обновлять ее, если она не изменяется, а не выполнять повторную публикацию этой информации раз в час. В заключение, данная система присутствия принимает списки доступа, которые содержат членские группы, а не отдельные списки пользователей, которые должны иметь доступ к отдельной совокупности присутствия. Например, публикующий пользователь может предоставить доступ всем своим коллегам путем применения членской группы к совокупности без отдельного перечисления каждого сотрудника.
Пакетная обработка публикации
В одном варианте осуществления система присутствия принимает множество публикаций присутствия в одном запросе. Эти публикации могут охватывать множество категорий, экземпляров и совокупностей. Например, публикующий пользователь, имеющий категории публикации "статус" и "место", может публиковать статус "недоступен" и место "Штаб-квартира Microsoft" в совокупности, которая общедоступна, а также статус "на встрече с Джоном" и место "Конференц-зал 5/Строение 40" в совокупности, которая доступа только его коллегам. Публикующий пользователь также может публиковать множество экземпляров одной и той же информации в каждой совокупности. Например, категория "телефонный номер" может иметь экземпляры "домашний" для домашнего номера, "рабочий" для рабочего номера и "мобильный" для сотового номера. Пользователь может публиковать значения для каждого из этих экземпляров в одном и том же запросе публикации.
В одном варианте осуществления система присутствия принимает отмены публикаций и публикации в одном запросе. Например, публикующий пользователь, который идет на совещание, может осуществить логический выход из своего настольного компьютера, что приводит к отмене публикаций экземпляров, связанных с настольным компьютером, и пользователь может стать активным на своем сотовом телефоне, что приводит к необходимости добавления новых экземпляров для сотового телефона. Система присутствия может принимать отмену публикаций настольного компьютера и публикации сотового телефона в одном запросе обновления. Например, система присутствия предприятия может принимать обновления публикаций с обоих устройств и пересылать эти обновления в глобальную систему присутствия в едином запросе.
В одном варианте осуществления система присутствия передает множество обновлений присутствия, используя расширения Протокола Инициации Сеанса (SIP) и протокола Расширений Применения Мгновенных Сообщений и Присутствия для SIP (SIMPLE). SIP представляет собой протокол управления прикладного уровня, который может использоваться устройствами для обнаружения друг друга и установки, модификации и завершений сессий между устройствами. Протокол SIP является предложенным Интернет стандартом, который описан в документе "RFC 3261." Документ RFC 3261, который доступен в Интернете по адресу www.ietf.org/rfc/rfc3261.txt, включен в настоящий документ в своей целостности посредством ссылки. Стандарт SIP предоставляет возможность конструкторам добавлять расширения, чтобы определять специальные свойства. Система присутствия добавляет тэг <публиковать> (<publish>), который содержит список тэгов <публикация> (<publication>), специфицирующий информацию присутствия, которая должна быть опубликована, а также схожий тэг <отменить публикацию> (<unpublish>), который содержит список тэгов <публикация> (<publication>), специфицирующих информацию присутствия, публикация которых должна быть отменена. Каждая публикация идентифицирует категорию, экземпляр и совокупность, к которой она относится. В некоторых вариантах осуществления система присутствия принимает значение срока действия, равное нулю для публикации в тэге <публиковать>, вместо того, чтобы определять отдельный тэг <отменить публикацию>.
В одном варианте осуществления система присутствия принимает обновления для множества публикующих пользователей в одном запросе. Например, когда используется протокол SIP, каждая публикация может содержать Унифицированный Идентификатор Информационного Ресурса (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 приема запроса подписки активируется тогда, когда от объекта принимается запрос подписки на один или более типов публикаций и