СПОСОБ, СИСТЕМА И КОМПЬЮТЕРНАЯ ПРОГРАММА ДЛЯ ОБНАРУЖЕНИЯ СЕРВИСОВ И КОНТЕНТА НА ОСНОВАНИИ СОБЫТИЙ ПРОТОКОЛА SIP В СООБЩЕСТВЕ, ПОСТРОЕННОМ НА КОНТЕКСТНОЙ ИНФОРМАЦИИ
METHOD, SYSTEM AND COMPUTER PROGRAM FOR SERVICES AND CONTENT DETECTION ON BASIS OF SIP PROTOCOL EVENTS IN COMMUNITY DEVELOPED ON CONTEXT INFORMATION

ОБЛАСТЬ ТЕХНИКИ
Данное изобретение относится в общем к беспроводным коммуникационным системам и средствам, а более конкретно к беспроводным терминалам и сетевым узлам, которые используют протокол SIP (протокол инициирования сессии).
УРОВЕНЬ ТЕХНИКИ
Протокол SIP определен в документе RFC3261 (Розенберг и другие, июнь 2002) организации IETF. В общем, протокол SIP - это управляющий (сигнализационный) протокол уровня приложения для создания, модификации и завершения сессий с участием одной или более сторон. Сессии могут представлять собой телефонные звонки по Интернету, распространение мультимедийной информации и мультимедийные конференции. Приглашения протокола SIP, которые используются для создания сессии, включают описания сессии, которые позволяют участникам согласовать набор совместимых медиатипов. Протокол SIP использует элементы, называемые прокси-серверами, для маршрутизации запросов к текущему местоположению пользователя, для аутентификации и авторизации пользователей при доступе к сервисам, для реализации политики провайдера по маршрутизации вызовов и предоставления пользователям различных сервисов. Протокол SIP также предоставляет возможность регистрации, которая позволяет пользователям указать их текущее местоположение для использования прокси-серверами. Протокол SIP работает на базе нескольких различных транспортных протоколов.
В документе «Уведомление о событии в контексте протокола SIP», A. Roach, RFC3265, июль 2002 (в дальнейшем называемом просто «RFC3265»), описана инфраструктура SIP-событий, позволяющая предоставлять событийную информацию для любого узла Интернет. Ожидается, что эта процедура станет ключевым элементом в рамках SIP-инфраструктуры. Примерами информации такого типа являются «присутствие», информация о местоположении, доступность контента или сервиса, SIP-события контроля доступа.
Как указано в RFC3265, основная идея заключается в том, что сетевые объекты могут подписываться на состояние ресурса или вызова для различных ресурсов или вызовов в сети, и эти объекты (или объекты, действующие от их лица) могут посылать уведомления, когда эти состояния изменяются. Типичным потоком сообщений будет:
|--SUBSCRIBE→|
Запрос подписки на уведомление о состоянии
|←200-|
Подтверждение подписки
|←Notify-|
Передача информации о текущем состоянии
|--200→|
Подтверждение
|←Notify-|
Передача информации о текущем состоянии
|--200→|
Подтверждение
Сроки действия подписок истекают и их необходимо обновлять последующими сообщениями SUBSCRIBE.
Несколько полезных определений:
«Пакет событий» - это дополнительная спецификация, которая определяет информацию о множестве состояний, которая будет сообщаться уведомителем подписчику. Также «Пакеты событий» определяют дополнительные синтаксис и семантику, основанные на инфраструктуре, определенной в RFC3265, которые необходимы для передачи такой информации о состояниях.
«Шаблон-пакет событий» - это «пакет событий» специального типа, который определяет множество состояний, которое может применяться для всех возможных «пакетов событий», включая его самого.
Уведомление - это действие уведомителя по отправке сообщения NOTIFY подписчику для уведомления подписчика о состоянии ресурса.
Уведомитель - это агент пользователя, который формирует запросы NOTIFY с целью уведомления подписчиков о состоянии ресурса. Обычно уведомители также принимают запросы SUBSCRIBE для создания подписок.
Агент состояния - это уведомитель, который публикует информацию о состоянии от лица ресурса; для того чтобы это сделать, ему может потребоваться собрать эту информацию из множества источников. Агенты состояния всегда обладают полной информацией о состоянии того ресурса, для которого они создают уведомления.
Подписчик - это агент пользователя, который принимает запросы NOTIFY от уведомителя; эти запросы содержат информацию о состоянии ресурса, в котором заинтересован подписчик. Обычно подписчики также формируют запросы SUBSCRIBE и отправляют их уведомителям для создания подписок.
Подписка - это набор состояния приложения, связанный с диалогом. Это состояние приложения включает указатель на связанный диалог, имя пакета событий и, возможно, идентификационный маркер. Пакеты событий определяют дополнительную информацию о состоянии подписки. По определению, подписки существуют и у подписчика, и у уведомителя.
Миграция подписки - это действие по переносу подписки от одного уведомителя к другому уведомителю.
Метод SUBSCRIBE используется для запроса текущего состояния и обновлений состояния удаленного узла.
Дж. Розенберг в документе «Шаблон-пакет событий информации наблюдателя для протокола SIP», 'draft-ietf-simple-winfo-package-05.txt', янв. 31, 2003, определил шаблон-пакет информации наблюдателя для инфраструктуры SIP-событий. Информация наблюдателя в этом контексте относится к множеству пользователей, которые подписаны на определенный ресурс в рамках определенного пакета событий. Информация наблюдателя динамически изменяется по мере того, как пользователи подписываются, отказываются от подписки, принимаются или отвергаются. Пользователь может подписаться на информацию и, таким образом, может узнавать об изменениях этой информации. Этот определенный пакет событий называется шаблоном-пакетом, так как он может применяться к любому пакету событий, включая самого себя.
Как хорошо известно, существуют ситуации, в которых необходимо получить соответствующую информацию, относящуюся к определенной теме. Часто для выполнения такого поиска используются знания сообщества. Классическими примерами этой техники в Интернете являются тематические конференции. Путем подписки на определенную тему делятся знаниями специализированного сообщества с участниками конференции. Если кому-то необходимо найти определенную информацию, связанную с темой конференции, он может произвести поиск соответствующей информации по архиву конференции. В сценариях подобного типа знание контекстной информации, относящейся к сообществу (такой как расположение, время и дата, отношение к другим людям и средства общения во время обнаружения), может улучшить идентификацию и создание таких сообществ, основанных на знаниях.
Однако существующие SIP-среды не предоставляют функциональность для определения сообществ так, как описано выше, вместе с функциональностью обнаружения сервисов или контента в рамках такого сообщества. Так как протокол SIP (события SIP) предполагается перспективным как основа для будущих одноранговых (Р2Р) и других сервисов, а также как технология контекстного предоставления услуг, то был бы желателен способ создания сообщества серверов, основанный на протоколе SIP.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
В соответствии с предпочтительными в настоящее время вариантами осуществления данного изобретения преодолены вышеупомянутые и другие проблемы, а также реализованы другие преимущества.
В одном аспекте данное изобретение предоставляет способ управления системой уведомления о событиях, имеющей серверы и блок подписчика. Способ включает отправку сообщения с заявкой на подписку от блока подписчика на сервер обнаружения, при этом сообщение с заявкой на подписку содержит запрос на обнаружение, и, в ответ на получение сообщения с заявкой на подписку, анализ (разбор) запроса на обнаружение и принятие заявки на подписку, если запрос на обнаружение поддерживается сервером обнаружения. Далее, способ включает формулирование контекстного запроса, основанного на разобранном запросе на обнаружение, и отправку контекстного запроса на сервер контекстных запросов. Сервер контекстных запросов обрабатывает контекстный запрос и возвращает в ответ идентификаторы множества серверов событий, которые формируют сообщество серверов событий, которые совместно определяют результат запроса на обнаружение. Сервер обнаружения подписывается на возможность использования ресурсов на серверах событий, которые формируют сообщество серверов событий, и уведомляет блок подписчика об обнаруженных доступных сервисах.
В случае если время жизни сообщения с заявкой на подписку не нулевое, способ также включает уведомление блока подписчика об изменении в доступности ранее недоступного сервиса, предоставляемого сервером событий из сообщества серверов событий, а также уведомление блока подписчика об изменении в составе сообщества серверов событий.
В другом аспекте данное изобретение предлагает систему уведомления о событиях, которая работает в соответствии с вышеупомянутым способом, а также блок подписчика, сервер обнаружения и сервер контекстных запросов, каждый из которых работает в системе уведомления о событиях в соответствии с вышеупомянутым способом.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Вышеупомянутые и другие аспекты вариантов осуществления в соответствии с идеями данного изобретения станут более очевидны из следующего подробного описания вариантов предпочтительного осуществления изобретения вместе с приложенными чертежами, где
Фиг.1 иллюстрирует общую архитектуру и основные логические объекты данного изобретения;
Фиг.2 иллюстрирует различные этапы процесса и сообщения в соответствии с изобретением;
Фиг.3 показывает блок-схему сервера обнаружения, показанного на фиг.1; и
Фиг.4 показывает блок-схему сервера контекстных запросов, показанного фиг.1.
ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ПРЕДПОЧТИТЕЛЬНОГО ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
Данная патентная заявка связана со следующими патентными заявкам США, принадлежащими заявителю: Д.Троссен. «Интеграция регистрации и обнаружения сервисов в среде SIP», №10/179,244, подана 06/26/2002; Д.Троссен. «Регистрация, запрос и уведомление о контенте и сервисах с использованием пакетов событий протокола SIP», №10/330,146, подана 12/30/2002; Д.Троссен, К.Мехта. «Способ предупреждения при контроле доступа с использованием пакетов событий протокола SIP», №10/353.014, подана 01/29/2003; Д.Троссен. «Запрашивание пакетов SIP-событий с использованием метода OPTIONS протокола SIP или с использованием обнаружения сервисов», №10/418,313, подана 04/18/2003; Д.Троссен, Д.Павел. «Применение семантического связывания в шаблонах-пакетах событий протокола SIP», №10/465,455, подана 06/19/2003; и с патентной заявкой США 10/874,946, поданной тем же числом, что и данная патентная заявка, и озаглавленной «Способ, система и компьютерная программа, обеспечивающие запрос ресурсов в определенном контексте путем определения пакета событий протокола SIP» (Д.Троссен и Д.Павел), эти заявки полностью включены в настоящее описание путем ссылки.
Удаленное обнаружение сервиса относится к способам поиска определенного знания, сервисов или контента с определенными ограничениями. При таком подходе объединения агентов обнаружения пытаются ввести понятие сообществ в удаленное обнаружение сервисов путем усиления знаний этих объединений для определенных задач обнаружения. Такие объединения обычно существуют в определенных областях знаний, то есть представляют сообщество по интересам в вышеприведенном смысле.
Для начала поясним, что данное изобретение возникло из осознания изобретателями того, что решение по удаленному обнаружению сервисов, которое применяло бы знания таких сильно контекстно-ориентированных сообществ, было бы полезным при создании проектов в этой области. В этом контексте также была бы полезна функциональность уведомления приложений при добавлении или удалении релевантного контента или сервисов.
Характерные запросы на обнаружение, которые становятся возможны при использовании данного изобретения, включают следующие, но не ограничиваются ими:
а) «Обнаружить определенный сервис в рамках определенного местоположения среди множества людей, которые также присутствуют»
б) «Обнаружить контент среди множества людей, заинтересованных в данной теме»
в) «Уведомить меня о доступных в рамках данного местоположения сервисах поставщиков, которые присутствуют»
г) «Уведомить меня о новом контенте среди множества людей, которые близки к моему собственному местоположению»
В отношении запроса на обнаружение (а) «присутствие» может быть истолковано, например, согласно документу IETF «Пакет события присутствия для протокола SIP», Дж.Розенберг, янв. 2003, для мобильных устройств.
Данное изобретение предлагает систему и способ, которые позволяют обнаруживать контент и сервисы в рамках множества объектов, которые составляют определенное (контекстно-зависимое) сообщество. Процесс постройки сообщества осуществляется путем отыскания множества людей, которые создают сообщество на базе общей контекстной информации, а также другой информации, такой как предпочтения или биографическая информация (в качестве не ограничивающих изобретение примеров: «эксперт в данной области» или «член данной группы»).
Предпочтительный в настоящее время вариант осуществления данного изобретения описывает систему и способ в контексте инфраструктуры событий протокола SIP, определенной в RFC3265. Таким образом, определение сообщества, так же как и фактическое обнаружение, основаны на событиях протокола SIP. Однако использование инфраструктуры событий протокола SIP не следует толковать как ограничение к применению данного изобретения.
На фиг.1 показана упрощенная архитектура системы 10, которая пригодна для использования данного изобретения. Система 10 включает подписчика 12, локальные SIP-прокси 14, 16, 22 и 24, сеть 18 (такую как IP сеть), сервер 20 обнаружения, членов 26 сообщества, которые показаны как один объект, и сервер 28 контекстных запросов.
В предпочтительном в настоящее время, но не ограничивающем изобретение варианте его осуществления, подписчик 12 связан с мобильным беспроводным устройством коммуникации, таким как сотовый телефон, персональный коммуникатор или агент, такой как компьютер, связанный с сетью 18 посредством радиоканала. Сетью 18 может являться Интернет.
Подписчик 12 включает логику 12А и, предположительно, желает подписаться на возможность использования сервисов или контента в рамках определенного сообщества. Сервер контекстных запросов 28 обеспечивает обработку событий протокола SIP (по RFC3265) и, таким образом, функционирует как сервер событий протокола SIP. Также, как показано на фиг.3, в соответствии с данным изобретением сервер контекстных запросов 28, кроме функциональности 28А (по RFC3265) и интерфейса 28В к сети 18 через SIP-прокси 24, включает следующие функциональные блоки и модули.
Сервер 28 контекстных запросов включает модуль 28С, который предоставляет средства поддержки пакета события, который определяет набор ресурсов (выраженный в виде URI (универсального идентификатора ресурса) протокола SIP), основанный на данных ограничениях. Сервер 28 контекстных запросов включает модуль 28D, который предоставляет средства поддержки способов косвенного предоставления контента, таких как определенные в документе IETF «Требования к косвенному контенту в протоколе SIP», С.Олсон, сен. 2002, или других способов извлечения данных из внешних источников (таких как так называемые серверы онтологии (не показаны на фиг.1)). Сервер 28 контекстных запросов включает логику 28Е для интерпретации семантики запроса, предоставленной при подписке, а также включает логику 28F для выполнения желаемой семантики запроса, предоставленной при подписке. Обычно такая реализация работает на данных 29 о ресурсах, которые находятся на сервере 28 контекстных запросов, хотя все или некоторые из данных о ресурсах могут быть получены извне. Данные 29 о ресурсах, связанные с контекстно-зависимыми ограничениями, могут содержать одно или более из: информацию о присутствии, информацию наблюдателя, состояние вызова и события, зависящие от приложения. Сервер 28 контекстных запросов включает опциональный модуль 28G, который предоставляет (опционально) средства поддержки политики безопасности, которая может применяться для защиты данных 29 о ресурсах в соответствии с документом IETF (работа в процессе) «Протокол конфигурации доступа языка XML». Дж.Розенберг, май 2003.
Патентная заявка США 10/874,946, принадлежащая заявителю и поданная тем же числом, что и данная патентная заявка, «Способ, система и компьютерная программа, позволяющие обеспечить запрос ресурсов в определенном контексте путем определения пакета событий протокола SIP» (Д.Троссен и Д.Павел), предоставляет не ограничивающий изобретение пример пакета событий протокола SIP, который реализует желаемую функциональность. Кратко говоря, эта патентная заявка США описывает способ и систему управления сервером событий (предпочтительно, сервером событий протокола SIP) с блоком подписки (таким как блок подписки на фиг.1). Способ включает формулирование запроса и отправку сообщения с заявкой на подписку на сервер событий, при этом сообщение с заявкой на подписку содержит запрос. В ответ на прием сообщения с заявкой на подписку на сервере событий логика анализирует указанный запрос, и запрос принимается, если он успешно разобран и понят и если соответствующие данные о ресурсах доступны серверу событий для определения результата запроса.
Как было уже отмечено, данное изобретение может использовать один или несколько серверов онтологии, которые позволяют регистрироваться и запрашивать онтологии. В целях данного изобретения онтологии могут рассматриваться, чтобы получить семантику информации из различных источников и дать ей точное, единообразное и декларативное описание (см., например, Y.Ding, D.Fensel, «Системы библиотек онтологии: Ключ к успешному повторному использованию онтологии», http://www.semanticweb.org/SWWS/program/full/paper58.pdf, авг.2001).
Что касается понятия сообществ в соответствии с данным изобретением, то именно сервер 28 контекстных запросов реализует функцию по определению сообщества на основании запроса, поданного в запросе на доступ, полученном от подписчика 12. Следовательно, процесс построения сообщества имеет место в рамках сервера 28 контекстных запросов и заключается в соответствующей функциональности по "добыче" и обработке информации.
Как показано на фиг.4, в соответствии с данным изобретением сервер 20 обнаружения обеспечивает поддержку событий протокола SIP и, помимо функциональности 20А (по RFC3265) и интерфейса 20В к сети 18 через SIP-прокси 16, включает следующие функциональные блоки и модули. Сервер 20 обнаружения включает логику 20С для интерпретации данной подписки подписчика 12 на доступ (возможность использования). Логика 20С определяет контекстно-зависимую часть запроса для того, чтобы выдать соответствующий контекстный запрос для сервера 28 контекстных запросов (как описано выше). Сервер 20 обнаружения включает логику 20D для выполнения, на основании результатов контекстного запроса, соответствующего запроса на обнаружение для каждого члена 26 сообщества. Сервер 20 обнаружения включает логику 20Е для определения, на основании уведомлений от членов 26 сообщества, списка сервисов для отправки подписчику 12 в качестве уведомления об исходной подписке. Сервер 20 обнаружения также включает логику 20F, которая реагирует на изменения в наборе членов 26 сообщества, такие как добавление или удаление ресурсов в или из набора членов сообщества. Для этих целей логика 20F поддерживает и управляет списком 21 членов сообщества. Упоминавшаяся выше патентная заявка США «Регистрация, запрос и уведомление о контенте и сервисах с использованием пакетов событий протокола SIP», №10/330,146, принадлежащая заявителю и поданная 12/30/2002, дает не ограничивающий изобретение пример пакета события протокола SIP, который реализует подписку на возможность использования сервиса/контента в SIP-среде.
Различные логические блоки, функции и модули 12А, 20A-20F и 28А-28G могут быть построены с использованием аппаратных средств, программного обеспечения или их комбинации. В некоторых случаях логические блоки, функции и модули 12А, 20A-20F и 28A-28G могут быть частично или полностью реализованы компьютерным программным кодом, который хранится и исполняется процессорами данных, которые содержат блок 12 подписчика, сервер 20 обнаружения и сервер 28 контекстных запросов.
Член 26 сообщества также, предпочтительно, является сервером событий протокола SIP (по RFC3265), который предоставляет возможность подписки на доступные сервисы и контент. По результатам (контекстно-зависимого) запроса на обнаружение может найтись более чем один член 26 сообщества. Упоминавшаяся выше патентная заявка США «Регистрация, запрос и уведомление о контенте и сервисах с использованием пакетов событий протокола SIP», №10/330,146, принадлежащая заявителю и поданная 12/30/2002, дает пример пакета событий протокола SIP, который делает возможной такую подписку на доступ.
SIP-прокси 14, 16, 22, 24 существуют для подписчика 12, а также для различных серверов событий протокола SIP 20, 26, 28 (обычно отдельный SIP-прокси для каждого, как показано), и ответственны за обработку сообщений протокола SIP и соответствующую пересылку сообщений протокола SIP указанному объекту. Следует заметить, что SIP-прокси 14, 16, 22, 24 представляют собой не ограничивающий изобретение вариант осуществления объекта, который предоставляет функции пересылки регистрации, подписки и уведомлений, как это предоставляется инфраструктурой событий протокола SP согласно RFC3265. Однако в других вариантах осуществления данного изобретения могут использоваться и другие механизмы. Таким образом, хотя серверы событий протокола SIP в настоящее время являются предпочтительным вариантом осуществления изобретения, их использование не следует расценивать как ограничение на реализацию и применение данного изобретения.
Данное изобретение обеспечивает выполнение запросов на обнаружение, основанных на таких запросах, как:
«Обнаружить сервисы среди персон (ресурсов), которые находятся на данном собрании, которое проходит в данном месте»
«Обнаружить контент среди персон (ресурсов) в рамках определенного местоположения, при этом ресурсы присутствуют и мобильны»
«Уведомить меня о доступных в рамках данного местоположения сервисах поставщиков, которые присутствуют»
«Уведомить меня о новом контенте среди множества людей, которые близки к моему собственному местоположению»
Множества персон (ресурсов) в данных выше примерах составляют контекстно-зависимые сообщества или, иными словами, множества персон (ресурсов) составляют контекстно-зависимые критерии сообщества для запроса на обнаружение.
Для решения, основанного на протоколе SIP, согласно данному изобретению предполагается, что существует основанный на протоколе SIP способ, который позволяет по запросам определять набор ресурсов на основании определенных ограничений (ограничения, в соответствии с данным изобретением, - это контекстно-зависимые критерии сообщества). В патентной заявке США 10/874,946, поданной тем же числом, что и данная патентная заявка, и озаглавленной «Способ, система и компьютерная программа, позволяющие обеспечить запрос ресурсов в определенном контексте путем определения пакета событий протокола SIP» (Д.Троссен и Д.Павел), такой способ определен, и он может использоваться данным изобретением, хотя данное изобретение не ограничено использованием только этого конкретного способа.
По результатам определения множества ресурсов, удовлетворяющих критерию контекстно-зависимого сообщества, данное изобретение направляет соответствующие подписки на возможность использования сервисов или контента каждому члену множества.
Так как инфраструктура событий протокола SIP по RFC3265 предусматривает уведомления, то обнаружение поддерживает уведомления о будущих доступных сервисах/контенте. Также изобретение является динамическим по отношению к изменениям в составе членов сообщества. Следовательно, в случае если сообщество изменяется (например, добавлением или удалением персоны/ресурса), подписки на обнаружение соответствующим образом изменяются.
Связанные с контекстом запросы в данном изобретении также могут поддерживать повторное использование семантики запроса через онтологии путем использования способов косвенного предоставления контента для подписки, а также могут поддерживать должный контроль доступа через интеграцию контроля доступа в процесс определения списка ресурсов.
Для коммуникации между подписчиком 12 и сервером 20 обнаружения, а также между сервером 20 обнаружения и членом 26 сообщества, изобретение определяет пакет событий протокола SIP (по RFC3265), имеющий единственное событие, обозначенное как «сервис» или «контент» (в зависимости от содержания запроса), которое позволяет подписаться на возможность использования сервиса или контента в рамках определенного сообщества. Тело пакета подписки содержит фактический запрос сервисов.
В заявке «Регистрация, запрос и уведомление о контенте и сервисах с использованием пакетов событий протокола SIP», №10/330,146, поданной 12/30/2002, определены пакет событий и способ подписки, которые могут использоваться данным изобретением. Дополнительно к этой функциональности подписка на возможность использования (как она применяется в данном изобретении) включает такие контекстно-зависимые ограничения, как местоположение, дату и время или семантику более высокого уровня, позволяющую конструировать такие запросы, как:
«Сервисы данного типа в рамках определенного местоположения»;
«Сервис данного типа, предоставляемый мобильным устройством и присутствующий»;
«Контент данного типа в рамках определенного поля интересов, предоставляемый пользователями в рамках определенного местоположения».
Запрос формулируется с использованием подходящего языка запросов. Точные синтаксис и семантика языка запросов не важны для понимания данного изобретения. Однако такие нотации, как формат описания ресурсов (RDF) или язык XML, вполне подходят для использования при создании таких запросов.
Для того чтобы разделить такую семантическую информацию запросов среди большого числа пользователей, то есть, чтобы создать общее знание семантики, изобретение поддерживает понятие использования серверов онтологии в операциях подписки на запрос (как описано ниже).
Данное изобретение предполагает существование пакета событий (пакет событий контекстного запроса), который позволяет подписываться на так называемый контекстный запрос. Такой запрос предусматривает подписку на список ресурсов, который ограничен определенными данными о ресурсах, например, контекстной информацией. Такие данные о ресурсах могут храниться локально на сервере событий протокола SIP (например, данные 29 о ресурсах, показанные на фиг.3) или могут извлекаться внешними средствами (например, путем иерархических подписок на релевантные данные). Точная сущность подписки и детальный пакет событий протокола SIP находятся вне рамок данного изобретения. Однако патентная заявка США 10/874,946, принадлежащая заявителю и поданная тем же числом, что и данная патентная заявка, «Способ, система и компьютерная программа, позволяющие выполнить запрос ресурсов в определенном контексте путем определения пакета событий протокола SIP» (Д.Троссен и Д.Павел), предоставляет не ограничивающий изобретение пример такого пакета событий, который может использоваться данным изобретением.
Далее со ссылкой на фиг.2 обсуждается операция подписки на доступность (возможность использования), также называемая подпиской на обнаружение и уведомление о текущих и будущих сервисах. Фиг.2 показывает шаги и сообщения, которые используются для подписки на возможность использования сервисов или контента, зависящих от определенной контекстной информации. В целях упрощения фиг.2 опускает маршрутизацию сообщений посредством SIP-прокси 14, 16, 22, 24, и обмен сообщениями протокола SIP показан непосредственно между SIP-серверами 20, 26, 28 и объектами подписчика 12.
Подписчик 12, поддерживающий RFC3265, отправляет SIP SUBSCRIBE ("Подписаться") (сообщение 1 на фиг.2) на сервер 20 обнаружения. Заголовок сообщения SUBSCRIBE включает соответствующий идентификатор пакета событий для пакета событий обнаружения. При приеме сообщения на подписку (сообщение 1 на фиг.2) сервер 20 обнаружения извлекает тело сообщения и анализирует включенную семантическую информацию запроса на обнаружение. В случае если запрос на обнаружение поддерживается сервером 20 обнаружения (то есть семантика поддерживается локально или доступен подходящий сервер 28 контекстных запросов для выполнения запроса), то сервер 20 обнаружения подтверждает подписку сообщением '200 OK' (сообщение 2 на фиг.2) по RFC3265.
Контекстно-зависимая информация в теле исходной подписки сообщения 1 на фиг.2 используется для формулирования подписки на событие контекстного запроса на сервере 28 контекстных запросов (отправляется как сообщение 3 на фиг.2). При таком механизме сервер 20 обнаружения может формулировать контекстно-зависимые запросы к серверу 28 контекстных запросов, например:
«Какие ресурсы/персоны находятся в определенном месте?»
«Какие ресурсы/персоны находятся на определенном собрании и присутствуют?»
Подписка на контекстный запрос также может содержать такую информацию, как предпочтения пользователя, информация о пользователе (например, область специализации) или иную семантическую информацию для использования при формулировании множества ограничений.
Сервер 28 контекстных запросов отвечает на подписку сообщением '200 OK' (сообщение 4 на фиг.2) в случае, если семантика запроса (которая включена в сообщение о подписке) была понята. Если подписка не может быть предоставлена, то сервер 28 контекстных запросов возвращает соответствующий код ошибки согласно RFC3265, что приводит к прекращению подписки на сервере 20 обнаружения.
Следует заметить, что сервер 28 контекстных запросов может использовать один или более из упоминавшихся выше серверов онтологии для повторного использования и распространения семантических определений среди нескольких подписчиков, и тело сообщения может содержать ссылки на такие серверы онтологии. Способы косвенного предоставления контента (например, описанный С.Олсоном «Требования к косвенному предоставлению контента протокола SIP», черновик документа IETF, сен. 2002), могут использоваться для извлечения семантической информации из указанного сервера онтологии. В этом случае полученная информация анализируется сервером 28 контекстных запросов точно так же, как если бы она была предоставлена непосредственно в теле сообщения.
Если подписка предоставлена, то сервер 28 контекстных запросов использует подписку на контекстный запрос для определения начального множества идентификаторов ресурсов URI, которые удовлетворяют ограничениям контекстного запроса. Начальный набор идентификаторов ресурсов URI возвращается на сервер 20 обнаружения сообщением NOTIFY ("Уведомить") протокола SIP (отправляется как сообщение 5 на фиг.2). Установленный набор идентификаторов ресурсов URI составляет начальный набор членов 26 сообщества на фиг.1.
По приеме начального набора идентификаторов ресурсов URI (при условии, что этот набор URI не пустой; иначе следующие сообщения с 6 по 8 пропускаются) сервер 20 обнаружения подписывается на доступность сервиса/контента у каждого члена 26 сообщества. Для этих целей сервер 20 обнаружения отправляет сообщение SUBSCRIBE протокола SIP на событие доступности каждому члену 26 сообщества (показано как сообщение 6 на фиг.2). Тело сообщения содержит относящуюся к сервису/контенту часть исходного сообщения подписки на обнаружение, отправленного подписчиком 12 (то есть сообщения 1 на фиг.2). Если член 26 сообщества поддерживает подписку (и предоставляет подписку на основании политики авторизации), то член 26 сообщества отвечает сообщением '200 OK' (по RFC3265), отправляемым как сообщение 7 на фиг.2. Также член 26 сообщества отвечает сообщением NOTIFY протокола SIP, отправляемым как сообщение 8 на фиг.2 и содержащим начальный набор сервисов, которые удовлетворяют предоставленным ограничениям подписки на сервис.
По получении всех ответов от всех текущих членов 26 сообщества (либо по получении начального сообщения NOTIFY, либо по получении кода ошибки в тех случаях, когда подписка не может быть предоставлена), сервер 20 обнаружения формулирует начальное сообщение NOTIFY протокола SIP, содержащее накопленный набор сервисов, которые были обнаружены, и отправляет его подписчику 12 как сообщение 9 на фиг.2.
Понятно, что в результате этих операций подписчик 12 получает текущий набор сервисов, доступных от всех членов 26 сообщества в этот момент времени, и что это сообщество построено на основании контекстной информации, данной в исходной заявке на подписку подписчика 12.
В случае если время жизни сообщения с заявкой на подписку в сообщении 1 указано как нулевое значение, подписка завершается после начального сообщения NOTIFY (сообщение 9 на фиг.2). Следовательно, заявка на подписку сообщения 1 фактически выполняет функцию запроса на обнаружение сервиса, основанного на сообществе.
В случае если время жизни исходной заявки на подписку ненулевое, то в будущем возможны два различных уведомления.
Уведомление о доступности будет отправлено в случае, если сервис или контент, которые удовлетворяют условиям подписки (сообщение 6 на фиг.2), становятся доступны у члена 26 сообщества. В этом случае член 26 сообщества формирует сообщение NOTIFY протокола SIP и отправляет его как сообщение 10 на сервер 20 обнаружения. По получении этого уведомления, сервер 20 обнаружения отправляет сообщение NOTIFY протокола SIP (сообщение 11 на фиг.2) подписчику 12 в рамках диалога подписки, порожденного сообщением 1. Тело этого уведомления содержит информацию, описывающую сервис/контент и члена 26 сообщества, так что подписчик 12 может получить доступ к члену 26 сообщества с целью получения сервиса/контента.
Уведомление об изменении сообщества происходит в случае, если изменяется множество членов сообщества. Это изменение может произойти по причине изменений в контекстной информации, относящейся к членам 26 сообщества. Например, если сообщество было построено, среди прочего, на информации о местоположении, то изменение местоположения (например, уход из этого местоположения) члена сообщества может привести к его удалению из множества членов 26 сообщества. Или в качестве другого не ограничивающего изобретение примера изменение в расположении идентификатора ресурса URI может привести к добавлению к множеству членов сообщества (например, в случае если идентификатор ресурса URI входит в определенное местоположение или в случае присоединения к релевантному сообществу, где совпадают прочие ограничения).
В случае изменения сервер 28 контекстных запросов формирует сообщение NOTIFY протокола SIP (сообщение 12 на фиг.2), которое содержит обновленное множество членов 26 сообщества. Если новый набор членов сообщества показывает удаление бывшего члена, то сервер 20 обнаружения, а именно логика 20F, удаляет члена сообщества из внутреннего списка 21, чтобы избежать отправок уведомлений о доступности подписчику 12 от не-членов сообщества. Если новый набор членов сообщества показывает добавление члена сообщества, то сервер 20 обнаружения инициирует подписку на возможность использования сервиса/контента, сходную с последовательностью сообщений 6-9. Таким образом, сервер 20 обнаружения отправляет сообщение SUBSCRIBE протокола SIP каждому новому члену 26 сообщества (показано как сообщение 13 на фиг.2). Тело сообщения содержит относящуюся к сервису/контенту часть исходного сообщения подписки на обнаружение, отправленного подписчиком 12 (сообщение 1 на фиг.2). Если член 26 сообщества поддерживает подписку и предоставляет ее на основании политики авторизации, то член 26 сообщества отвечает сообщением '200 OK' (по RFC3265), которое отправляется как сообщение 14 на фиг.2. Далее член 26 сообщества отвечает сообщением NOTIFY протокола SIP, отправляемым как сообщение 15 на фиг.2 и содержащим начальный набор сервисов, который удовлетворяет предоставленным ограничениям подписки на сервис. По получении всех ответов от всех новых членов 26 сообщества (либо по получении начальных сообщений NOTIFY протокола SIP, либо по получении кодов ошибок в тех случаях, когда подписка не может быть предоставлена) сервер 20 обнаружения порождает сообщение NOTIFY протокола SIP, содержащее накопленное множество сервисов, которые были обнаружены, и отправляет его подписчику 12 (сообщение 16 на фиг.2).
Можно видеть, что одно из преимуществ, которое проистекает из использования данного изобретения, заключается в возможности использовать запросы на обнаружение в рамках определенного сообщества по интересам, при этом сообщество строится, по меньшей мере, частично на основании контекстной информации в среде, основанной на SIP. Далее многокомпонентные запросы на обнаружение реализованы в рамках одного диалога на подписку, что улучшает масштабируемость изобретения. Также изобретение предусматривает уведомления о сервисах/контенте, который становится доступен в будущем, а также изобретение является динамическим по отношению к изменениям в сообществе (например, при удалении или добавлении члена 26 сообщества), так как подписки на обнаружение реорганизуются.
Изобретение также допускает повторное использование семантики через поддержку онтологии, а также может интегрировать решения, касающиеся прав доступа (такие как способ ХСАР) при определении ответа на запрос. То есть способ сохраняет целостность разработанной в настоящее время инфраструктуры безопасности для событий протокола SIP.
Другим преимуществом использования данного изобретения является контроль сложности на сервере 28 контекстных запросов. Хотя запросы к спискам ресурсов и могут стать сложными, но решение о предоставлении данной подписки остается за сервером 28 контекстных запросов. Таким образом, если очередной диалог на подписку может перегрузить сервер 28 контекстных запросов по причине своей сложности, то в подписке может быть просто отказано.
Для поддержки вышеупомянутой функциональности сервер 28 контекстных запросов улучшен по отношению к обычным серверам в смысле поддержки дополнительного структурного разбора запросов и "добычи данных" или функций анализа. Следует отметить, что "добыча данных" / функции анализа применяются к множеству существующих данных, так как не требуется собирать дополнительные данные из других поддерживаемых пакетов событий. Если структурный разбор запросов и/или "добыча данных" / функции анализа не поддерживаются сервером 28 контекстных запросов, то сервер 28 контекстных запросов может просто отвергнуть пакет события обнаружения. Таким образом, данное изобретение предоставляет модульное, масштабируемое и расширяемое решение, которое упрощает разработку поддержки таких запросов в сетях серверов событий протокола SIP.
Предшествующее описание иллюстративных и не ограничивающих изобретение примеров предоставляет полное и информативное описание способа и устройства, в настоящее время рассматриваемых изобретателями как лучшие варианты осуществления изобретения. Однако различные модификации и адаптации могут стать очевидными для специалистов в соответствующей области при прочтении данного описания в сочетании с прилагаемыми чертежами и формулой изобретения. В качестве примера специалисты могут попытаться использовать другие похожие или эквивалентные типы и форматы сообщений, ресурсы и сетевые архитектуры. Кроме того, следует понимать, что в некоторых вариантах осуществления все функции или часть функциональности сервера 20 обнаружения и сервера 28 контекстных запросов могут сочетаться в одном сервере событий протокола SIP. В этом случае любые сообщения, пересылаемые между сервером обнаружения и сервером контекстных запросов (например, сообщения 3, 4, 5 и 12 на фиг.2), могут быть внутренними сообщениями (то есть внутренними для сервера, который содержит функции обнаружения и контекстных запросов). Однако все эти и подобные модификации данного изобретения будут попадать в рамки данного изобретения.
Кроме того, некоторые из признаков настоящего изобретения могут быть с выгодой использованы без соответствующего использования других признаков. По существу, предшествующее описание должно рассматриваться только как иллюстрация принципов настоящего изобретения, но не в смысле их ограничения.