RU2409846C2 - Организация ресурсов в коллекции, способствующая более эффективному и надежному доступу к ресурсам - Google Patents

Организация ресурсов в коллекции, способствующая более эффективному и надежному доступу к ресурсам Download PDF

Info

Publication number
RU2409846C2
RU2409846C2 RU2005130350/08A RU2005130350A RU2409846C2 RU 2409846 C2 RU2409846 C2 RU 2409846C2 RU 2005130350/08 A RU2005130350/08 A RU 2005130350/08A RU 2005130350 A RU2005130350 A RU 2005130350A RU 2409846 C2 RU2409846 C2 RU 2409846C2
Authority
RU
Russia
Prior art keywords
namespace
resource
action
resources
namespaces
Prior art date
Application number
RU2005130350/08A
Other languages
English (en)
Other versions
RU2005130350A (ru
Inventor
Гопала Кришна Р. КАКИВАЯ (US)
Гопала Кришна Р. КАКИВАЯ
Ричард Л. ХАША (US)
Ричард Л. ХАША
Original Assignee
Майкрософт Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Майкрософт Корпорейшн filed Critical Майкрософт Корпорейшн
Publication of RU2005130350A publication Critical patent/RU2005130350A/ru
Application granted granted Critical
Publication of RU2409846C2 publication Critical patent/RU2409846C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/30Managing network names, e.g. use of aliases or nicknames
    • H04L61/3015Name registration, generation or assignment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/30Managing network names, e.g. use of aliases or nicknames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4552Lookup mechanisms between a plurality of directories; Synchronisation of directories, e.g. metadirectories
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99948Application of database or data structure, e.g. distributed, multimedia, or image

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

Изобретение относится к области организации ресурсов в коллекции. Техническим результатом является повышение эффективности организации ресурсов. Обеспечиваются способы, системы и продукты компьютерных программ для организации ресурсов в коллекции, чтобы способствовать более эффективному и надежному доступу к ресурсу. Менеджеры пространства имен устанавливают связь друг с другом, образуя инфраструктуру объединения пространств имен. Инфраструктура может эффективно маршрутизировать, выполнять миграцию и обрабатывать запросы к пространствам имен, такие как, например, запросы регистрации пространства имен от провайдеров, запрашивающих управление частями пространств имен, и запросы поиска от потребителей, запрашивающих доступ к управляемым ресурсам. Ресурсы могут регистрироваться и предоставляться из многочисленных разных пространств имен. Ресурсы могут идентифицироваться с использованием многоуровневых запросов, которые фильтруют результаты на многочисленных уровнях иерархического пространства имен. 2 н. и 13 з.п. ф-лы, 17 ил.

Description

1. Область техники, к которой относится изобретение
Настоящее изобретение относится к организации ресурсов и, в частности, к организации ресурсов в коллекции, способствующей более эффективному и надежному доступу к ресурсам.
2. Уровень техники
Компьютерные системы и связанная с ними технология оказывают влияние на многие аспекты общества. Действительно, возможность компьютерных систем обрабатывать информацию преобразило то, как мы живем и работаем. Компьютерные системы теперь, как правило, выполняют множество задач (например, подготовку текстов, планирование и управление базами данными), которые до наступления компьютерных систем выполнялись вручную. В последнее время компьютерные системы были соединены друг с другом и с другими электронными устройствами, образуя как проводные, так и беспроводные компьютерные сети, по которым компьютерные системы и другие электронные устройства могут переносить электронные данные. В результате, многие задачи, выполняемые на компьютерной системе (например, передача речи, доступ к электронной почте, управление домашней электроникой, просмотр веб-страниц и печать документов), включают в себя электронную передачу данных между несколькими компьютерными системами и/или другими электронными устройствами по проводным и/или беспроводным компьютерным сетям.
Вследствие количества и разнообразия ресурсов (например, устройства и службы), которые являются доступными через компьютерные сети, было разработано множество различных механизмов доступа. Многие механизмы доступа используют различные протоколы. Например, доступ к веб-страницам во Всемирной паутине («ВП») обычно облегчается использованием протокола передачи гипертекста (ППГТ). С другой стороны, доступ к файлу с удаленного расположения может облегчаться использованием протокола передачи файлов (ППФ). Иногда один и тот же контент может передаваться с использованием различных протоколов в разные моменты времени. Например, сообщение электронной почты может передаваться между серверами электронной почты с использованием простого протокола электронной почты и затем передаваться клиенту с использованием протокола доступа к сообщениям в Интернете («ПДСИ») или почтового протокола («ПП»).
Однако перед тем как протокол может использоваться для передачи или доступа к ресурсу, соответствующий механизм доступа должен иметь некоторое средство для идентификации ресурса, к которому должен быть выполнен доступ или который должен быть передан. Например, перед тем как веб-браузер сможет использовать ППГТ для доступа к веб-странице, веб-браузер должен иметь некоторое средство для идентификации веб-страницы, к которой необходимо выполнить доступ. Аналогично, перед тем как клиент электронной почты сможет использовать ПДСИ или ПП для приема сообщения электронной почты, клиент электронной почты должен иметь некоторое средство для идентификации сервера электронной почты, который хранит электронное сообщение. Следовательно, фактически все механизмы доступа к ресурсу также включают в себя механизм идентификации, который может использоваться для идентификации ресурсов.
Один механизм идентификации включает в себя использование сетевого адреса (например, адрес протокола Интернета («ПИ»)) для идентификации соответствующего вычислительного устройства (например, портативного компьютера, сервера электронной почты, принтера, персонального цифрового помощника (ПЦП) и т.д.). Идентификация вычислительных устройств посредством сетевого адреса может быть достаточной в небольших сетях (например, домашние локальные сети (ДЛС)) и/или в сетях, в которых сетевые адреса меняются сравнительно нечасто. Однако в распределенных крупномасштабных сетях часто проблематично использование сетевых адресов в качестве механизма идентификации. Например, вследствие огромного количества вычислительных устройств в Интернете может быть трудным, даже невозможным, для пользователя запомнить адреса ПИ для каждого вычислительного устройства, к которому пользователь может захотеть обратиться. Далее, всегда существует некоторая возможность, что провайдер изменит сетевой адрес вычислительного устройства или передаст право собственности на вычислительное устройство другому провайдеру, который управляет другими сетевыми адресами. Таким образом, последующие попытки доступа к вычислительному устройству по ранее известному сетевому адресу могут закончиться неудачей, и может не быть способа, чтобы легко определить более новый сетевой адрес.
Следовательно, другие механизмы идентификации представляют сетевые адреса в виде буквенных строк, которые обычно легче запомнить и обеспечить некоторую степень абстракции от сетевых адресов. Например, службы доменных имен (СДИ) могут использоваться для представления адресов ПИ в виде буквенных строк (например, соответствующих доменным именам). Когда буквенная строка используется для идентификации вычислительного устройства, СДИ проверяет базу данных преобразования для преобразования буквенной строки в соответствующий адрес ПИ для вычислительного устройства. Далее, когда новый адрес ПИ присваивается вычислительному устройству, база данных преобразования может обновляться, так что ранее используемая буквенная строка, идентифицирующая вычислительное устройство, соответствует новому адресу ПИ. Таким образом, СДИ обеспечивает степень абстракции, который позволяет изменить адрес ПИ для вычислительного устройства без необходимости изменения буквенной строки, представляющей вычислительное устройство. Следовательно, если провайдер меняет адрес ПИ для вычислительного устройства, та же буквенная строка часто может использоваться для доступа к вычислительному устройству.
Однако, так как компьютерная система может конфигурироваться для одновременного предоставления ряда различных служб, использование одной СДИ не может быть достаточным для идентификации конкретных ресурсов вычислительного устройства. Например, в некоторых средах использование СДИ в качестве единственного механизма идентификации может сделать трудным различение между различными службами (электронная почта, функциональная возможность поиска и т.д.), предлагаемыми одним и тем же веб-сервером. Т.е. идентификация веб-сервера (например, посредством сетевого адреса или буквенной строки) необязательно обеспечивает какое-либо указание на конкретную службу, предлагаемую веб-сервером. Таким образом, чтобы получить доступ к службе электронной почты веб-сервера, механизму идентификации необходимо некоторое средство для установления отличия службы электронной почты от других служб веб-сервера.
Унифицированные идентификаторы ресурса («УИДР») представляют собой один механизм, который был разработан для более точной идентификации ресурсов. УИДР может включать в себя сетевой адрес или буквенную строку, идентифицирующие вычислительное устройство, а также дополнительную буквенно-цифровую строку, идентифицирующую конкретный ресурс на вычислительном устройстве. Унифицированные указатели ресурса (УУР) ссылаются на подмножество УИДР, которые идентифицируют ресурсы посредством представления их первичной механики доступа (например, их сетевого расположения). Унифицированные имена ресурса (УИР) ссылаются на подмножество УИДР, которые необходимы для того чтобы оставаться глобально уникальными и сохраняться даже тогда, когда прекращается существование соответствующего ресурса.
УУР обычно используются для доступа к ресурсам в Интернете. Например, УУР «http://[доменное имя]/[буквенно-цифровая строка]» может использоваться для идентификации конкретного ресурса на вычислительном устройстве в ВП. УУР также обычно подразделяются на различные схемы, которые представляют различные (часто иерархические) пространства имен. Например, некоторые из различных схем, используемых в Интернете, включают ftp, http, gopher, mailto, news и telnet. Каждая из этих схем представляет различное соответствующее пространство имен, соответственно. Это выгодно, так как идентификация ресурсов может делиться на области действия по различным пространствам имен, и каждая схема может иметь различный синтаксис для идентификации ресурсов в его соответствующем пространстве имен. Например, могут отличаться синтаксис для идентификации ресурсов в пространстве имен http и синтаксис для идентификации ресурсов в пространстве имен ftp.
К сожалению, из-за, по меньшей мере частично, различных схем, имеющих различный синтаксис, часто трудно, даже невозможно, сконфигурировать доступ к ресурсу, так чтобы доступ к ресурсу мог выполняться из многочисленных пространств имен. Т.е. выполнение ресурса доступным из одного пространства имен обычно препятствует тому, чтобы ресурс был доступным из других пространств имен. Например, схема http обычно не может использоваться для идентификации ресурсов, которые были сконфигурированы для идентификации с использованием схемы ftp (и передачи с использованием ftp). Т.е. УУР вида http://[доменное имя]/[буквенно-цифровая строка] обычно не может использоваться для идентификации ресурса в пространстве имен ftp.
Далее, обычные механизмы идентификации ресурса ограничили возможности запроса. Например, одно подмножество УИДР совместно использует общий синтаксис для представления иерархических зависимостей с заданным пространством имен. УИДР этого подмножества могут иметь вид <схема>://<владелец><путь>?<запрос>, где часть запроса представляет собой строку информации, подлежащую интерпретации ресурсом в <схема>://<владелец><путь>. Это облегчает выдачу запросов ресурса, таких как, например, исполнить возможности поиска или обнаружения ресурса.
Однако обычные механизмы идентификации ресурса ограничили, если они имеют место, функциональные возможности для использования УИДР для запроса пространства имен в отношении ресурсов, содержащихся в пространстве имен. Синтаксис УИДР для некоторых пространств имен допускает функциональные возможности запроса, но только на самом нижнем уровне в иерархии пространства имен (например, на концевых узлах). Это происходит, по меньшей мере частично, в результате того факта, что существующие механизмы пространства имен не рассматривают промежуточные узлы в качестве ресурсов. Таким образом, УИДР может быть составлен для запроса текстовых файлов на конкретной конечной точке, такой как, например, УИДР, представляющий веб-сайт для заданной корпорации. Однако было бы трудным, даже невозможным, составить УИДР для запроса в этой же иерархии пространств имен текстовых файлов только из каждого домена, оканчивающегося на «.com».
Далее, существующие механизмы поиска требуют, чтобы кэшировались большие объемы информации ресурсов. Например, большинство поисковых служб Интернета постоянно сканируют Интернет для поиска новых УУР и локально кэшируют УУР. Когда поиск (или запрос) представляется поисковой службе, поисковая служба выполняет поиск кэшированных УУР. Таким образом, если УУР для ресурса не кэширован или УУР изменился после кэширования, УУР или правильный УУР для ресурса не может быть возвращен в результатах поиска. Поэтому были бы полезны системы, способы, продукты компьютерной программы, которые способствуют более эффективному и надежному доступу к ресурсу.
Раскрытие изобретения
Вышеупомянутые проблемы известного состояния техники преодолеваются принципами настоящего изобретения, которые относятся к способам, системам и продуктам компьютерной программы для организации ресурсов в коллекции, способствующей более эффективному и надежному доступу к ресурсу. В некоторых вариантах осуществления запрос регистрации пространства имен передается в инфраструктуру объединения пространств имен. Принимается запрос регистрации пространства имен для регистрации ветви пространства имен, причем запрос регистрации пространства имен включает в себя строку пространства имен, которая идентифицирует ветвь пространства имен. По меньшей мере однонаправленное эквивалентное числовое значение идентификации, например, значение хэш-функции, генерируется на основе всей строки пространства имен для плоских схем УИДР или части до первого сегмента пути строки пространства имен для иерархических схем УУР. Запрос регистрации пространства имен посылается (и потенциально маршрутизируется) менеджеру пространства имен, имеющему идентификатор, который в числовом отношении ближе к по меньшей мере однонаправленному эквивалентному числовому значению идентификации, чем идентификаторы других менеджеров пространства имен. Ветвь пространства имен ассоциируется с менеджером пространства имен.
В других вариантах осуществления запрос регистрации пространства имен мигрирует в инфраструктуре объединения пространств имен. Определяется, что менеджер пространства имен выполнил ограничение на политики. Идентифицируется ветвь пространства имен, которая может мигрировать для соответствия действию политики, ассоциированному с ограничением на политики. Существующие регистрации для ветви пространства имен мигрируют к менеджеру пространства имен партнера в ответ на действие политики.
В других вариантах осуществления запрос регистрации пространства имен обрабатывается в инфраструктуре объединения пространств имен. Принимается запрос регистрации пространства имен для регистрации ветви пространства имен. Запрос регистрации пространства имен включает в себя строку пространства имен, которая идентифицирует ветвь пространства имен и идентификатор для провайдера, запрашивающего регистрацию в ветви пространства имен. Определяется, что менеджер пространства имен проявляет интерес к ветви пространства имен. Строка пространства имен сохраняется в индексированной соответствующим образом базе данных регистрации пространства имен. Дополнительно определяется, как часто должно впоследствии проверяться оживление инициатора запроса регистрации (например, провайдера пространства имен).
В других вариантах осуществления запрос поиска пространства имен посылается (и потенциально маршрутизируется) в инфраструктуре объединения пространств имен. Принимается запрос поиска пространства имен, включающий в себя строку пространства имен, которая идентифицирует ветвь пространства имен. По меньшей мере однонаправленное эквивалентное числовое значение идентификации, например, значение хеш-функции, генерируется на основе всей строки пространства имен для плоских схем УИДР или части до первого сегмента пути строки пространства имен для иерархических схем УИДР. Запрос поиска пространства имен посылается (и потенциально маршрутизируется) менеджеру пространства имен назначения, например, в соответствии с метрикой близости. Менеджером пространства имен назначения может быть любой менеджер из окрестности менеджеров пространства имен, которые находятся в пределах предопределенного диапазона от менеджера пространства имен, имеющего уникальный идентификатор, самый ближний в числовом отношении к по меньшей мере однонаправленному эквивалентному числовому значению идентификации. Запрос поиска пространства имен ретранслируется для доставки инициаторам соответствующих запросов регистрации (например, провайдерам пространства имен), которые выразили заинтересованность в ветви пространства имен или являются ответственными за нее.
В других вариантах осуществления запрос поиска пространства имен мигрирует в инфраструктуре объединения пространств имен. Менеджер пространства имен принимает запрос поиска пространства имен в отношении ветви пространства имен. Менеджер пространства имен включает в себя уникальный идентификатор пространства имен, который идентифицирует ветвь пространства имен. Уникальный идентификатор менеджера пространства имен для менеджера пространства имен, который находится ближе к сгенерированному уникальному идентификатору ветви пространства имен (например, по меньшей мере однонаправленное эквивалентное числовое значение идентификации), чем уникальные идентификаторы менеджера пространства имен одного или нескольких других менеджеров пространства имен. Обнаруживается указание, что ветвь пространства имен мигрировала к другому менеджеру пространства имен, имеющему другой уникальный идентификатор менеджера пространства имен.
В других вариантах осуществления запрос поиска пространства имен обрабатывается в инфраструктуре объединения пространств имен. Принимается запрос поиска пространства имен, включающий в себя строку пространства имен, которая идентифицирует ветвь пространства имен в пространстве имен. Идентифицируется тип запроса поиска пространства имен запроса поиска пространства имен. Обнаруживается, что один или несколько провайдеров зарегистрировались на части пространства имен, относящиеся к ветви пространства имен. Запрос поиска пространства имен ретранслируется по меньшей мере одному провайдеру, основываясь на идентифицированном типе запроса поиска пространства имен.
В дополнительных вариантах осуществления ресурс участвует в многочисленных пространствах имен в инфраструктуре объединения пространств имен. Устанавливается уникальный идентификатор ресурса для ресурса. Доступность ресурса публикуется в первом пространстве имен. Уникальный идентификатор ресурса связывается с существующим ресурсом узла пространства имен в первом пространстве имен, так что может выполняться прохождение первого пространства имен для идентификации ресурса. Доступность ресурса публикуется во втором пространстве имен. Уникальный идентификатор ресурса связывается с существующим ресурсом узла пространства имен во втором пространстве имен, так что может выполняться прохождение второго пространства имен для идентификации ресурса.
В других дополнительных вариантах осуществления идентифицируется подмножество ресурсов в инфраструктуре объединения пространств имен. Принимается запрос от инициатора. Запрос включает в себя первую часть запроса, идентифицирующую первую часть ресурсов, которые удовлетворяют первым критериям запроса на первом уровне в иерархии пространства имен. Запрос включает в себя вторую часть запроса, идентифицирующую вторую часть ресурсов, выбранных из числа ресурсов, включенных в первую часть ресурсов. Вторая часть ресурсов идентифицируется во втором другом расположении в инфраструктуре объединения пространств имен. Идентификация второй части ресурсов возвращается инициатору.
В других дополнительных вариантах осуществления организуется множество ресурсов. Определяется, что ресурс должен быть включен в одно или несколько пространств имен, в котором каждое из одного или нескольких пространств имен конфигурируется для организации одного или нескольких ресурсов. Идентифицируется первый ресурс в первом пространстве имен из одного или нескольких пространств имен и который должен быть соотнесен с ресурсом. Используется первый сегмент пространства имен для связывания ресурса с первым ресурсом, так что может выполняться прохождение сегмента пространства имен для навигации от первого ресурса к ресурсу в пространстве имен.
Эти и другие объекты и отличительные признаки настоящего изобретения станут более очевидными из последующего описания и прилагаемой формулы изобретения или могут быть узнаны из практики изобретения, как изложено ниже в данном описании.
Краткое описание чертежей
Чтобы дополнительно уточнить вышеупомянутые и другие преимущества и отличительные признаки настоящего изобретения, более конкретное описание изобретения представляется ссылкой на его конкретные варианты осуществления, которые изображены на прилагаемых чертежах. Понятно, что эти чертежи изображают только типовые варианты осуществления изобретения и поэтому не должны рассматриваться ограничивающими его объем. Изобретение описывается и объясняется с дополнительной специфичностью и подробностями посредством использования прилагаемых чертежей, на которых:
На фиг.1 изображен пример инфраструктуры объединения пространств имен.
На фиг.2 изображен пример компьютерной архитектуры, которая способствует маршрутизации запроса косвенно к партнерам.
На фиг.3 изображен пример бинарного отношения между менеджерами пространства имен в инфраструктуре объединения пространств имен.
На фиг.4 изображен пример архитектуры, которая способствует интегрированию других протоколов в инфраструктуру объединения пространств имен.
На фиг.5 изображен пример инфраструктуры объединения пространства имен с точки зрения провайдера и коллекции пространства имен.
На фиг.6 изображена примерная инфраструктура объединения пространств имен с ресурсом, представленным во множестве пространств имен.
На фиг.7А изображена примерная блок-схема последовательности операций способа маршрутизации запроса регистрации пространства имен.
На фиг.7В изображена примерная блок-схема последовательности операций способа миграции запроса регистрации пространства имен.
На фиг.7С изображена примерная блок-схема последовательности операций способа обработки запроса регистрации пространства имен.
На фиг.8А изображена примерная блок-схема последовательности операций способа маршрутизации запроса поиска пространства имен.
На фиг.8В изображена примерная блок-схема последовательности операций способа миграции запроса поиска пространства имен.
На фиг.8С изображена примерная блок-схема последовательности операций способа обработки запроса поиска пространства имен.
На фиг.9 изображена примерная блок-схема последовательности операций способа для участия ресурса в многочисленных пространствах имен.
На фиг.10 изображена примерная блок-схема последовательности операций способа идентификации подмножества ресурсов в инфраструктуре объединения пространств имен.
На фиг.11 изображена подходящая операционная среда для принципов настоящего изобретения.
На фиг.12 изображена примерная блок-схема последовательности операций способа организации множества ресурсов.
На фиг.13 изображена примерная таксономия схемы, которая может использоваться для описания ресурса.
Осуществление изобретения
Принципы настоящего изобретения обеспечивают организацию ресурсов в коллекции, способствующую более эффективному и надежному доступу к ресурсам. В некоторых вариантах осуществления запрос регистрации пространства имен передается в инфраструктуре объединения пространств имен. Принимается запрос регистрации пространства имен для регистрации ветви пространства имен, причем запрос регистрации пространства имен включает в себя строку пространства имен, которая идентифицирует ветвь пространства имен. По меньшей мере однонаправленное эквивалентное числовое значение идентификации, например, значение хеш-функции, генерируется на основе всей строки пространства имен для плоских схем УИДР или части до первого сегмента пути строки пространства имен для иерархических схем УУР. Запрос регистрации пространства имен посылается (и потенциально маршрутизируется) менеджеру пространства имен, имеющему идентификатор, который ближе в числовом отношении к по меньшей мере однонаправленному эквивалентному числовому значению идентификации, чем идентификаторы других менеджеров пространства имен. Ветвь пространства имен ассоциируется с менеджером пространства имен.
В других вариантах осуществления запрос регистрации пространства имен мигрирует в инфраструктуре объединения пространств имен. Определяется, что менеджер пространства имен выполнил ограничение на политики. Идентифицируется ветвь пространства имен, которая может мигрировать для соответствия действию политики, ассоциированному с ограничением на политики. Существующие регистрации для ветви пространства имен мигрируют в менеджер пространства имен партнера в ответ на действие политики.
В других вариантах осуществления запрос регистрации пространства имен обрабатывается в инфраструктуре объединения пространств имен. Принимается запрос регистрации пространства имен для регистрации ветви пространства имен. Запрос регистрации пространства имен включает в себя строку пространства имен, которая идентифицирует ветвь пространства имен и идентификатор для провайдера, запрашивающего регистрацию в ветви пространства имен. Определяется, что менеджер пространства имен проявляет интерес к ветви пространства имен. Строка пространства имен сохраняется в индексированной соответствующим образом базе данных регистраций пространства имен. Дополнительно определяется, как часто должно в последствии проверяться оживление инициатора запроса регистрации (например, провайдера пространства имен).
В других вариантах осуществления запрос поиска пространства имен посылается (и потенциально маршрутизируется) в инфраструктуре объединения пространств имен. Принимается запрос поиска пространства имен, включающий в себя строку пространства имен, которая идентифицирует ветвь пространства имен. По меньшей мере однонаправленное эквивалентное числовое значение идентификации, например значение хеш-функции, генерируется на основе всей строки пространства имен для плоских схем УИДР или части до первого сегмента пути строки пространства имен для иерархических схем УИДР. Запрос поиска пространства имен посылается (и потенциально маршрутизируется) менеджеру пространства имен назначения, например, в соответствии с метрикой близости. Менеджером пространства имен назначения может быть любой менеджер из окрестности менеджеров пространства имен, которые находятся в пределах предопределенного диапазона от менеджера пространства имен, имеющего уникальный идентификатор, самый ближний в числовом отношении к по меньшей мере однонаправленному эквивалентному числовому значению идентификации. Запрос поиска пространства имен ретранслируется для доставки инициаторам соответствующих запросов регистрации (например, провайдерам пространства имен), которые выразили заинтересованность в ветви пространства имен или являются ответственными за нее.
В других вариантах осуществления запрос поиска пространства имен мигрирует в инфраструктуре объединения пространств имен. Менеджер пространства имен принимает запрос поиска пространства имен в отношении ветви пространства имен. Менеджер пространства имен включает в себя уникальный идентификатор пространства имен, который идентифицирует ветвь пространства имен. Уникальный идентификатор менеджера пространства имен для менеджера пространства имен, который находится ближе к сгенерированному уникальному идентификатору ветви пространства имен (например, по меньшей мере однонаправленное эквивалентное числовое значение идентификации), чем уникальные идентификаторы менеджера пространства имен одного или нескольких других менеджеров пространства имен. Обнаруживается указание, что ветвь пространства имен мигрировала к другому менеджеру пространства имен, имеющему другой уникальный идентификатор менеджера пространства имен.
В других вариантах осуществления запрос поиска пространства имен обрабатывается в инфраструктуре объединения пространств имен. Принимается запрос поиска пространства имен, включающий в себя строку пространства имен, которая идентифицирует ветвь пространства имен в пространстве имен. Идентифицируется тип запроса поиска пространства имен запроса поиска пространства имен. Обнаруживается, что один или несколько провайдеров зарегистрировались на части пространства имен, относящиеся к ветви пространства имен. Запрос поиска пространства имен ретранслируется по меньшей мере одному провайдеру, основываясь на идентифицированном типе запроса поиска пространства имен.
В дополнительных вариантах осуществления ресурс участвует в многочисленных пространствах имен в инфраструктуре объединения пространств имен. Устанавливается уникальный идентификатор ресурса для ресурса. Доступность ресурса публикуется в первом пространстве имен. Уникальный идентификатор ресурса связывается с существующим ресурсом узла пространства имен в первом пространстве имен, так что может выполняться прохождение первого пространства имен для идентификации ресурса. Доступность ресурса публикуется во втором пространстве имен. Уникальный идентификатор ресурса связывается с существующим ресурсом узла пространства имен во втором пространстве имен, так что может выполняться прохождение второго пространства имен для идентификации ресурса.
В других дополнительных вариантах осуществления идентифицируется подмножество ресурсов в инфраструктуре объединения пространств имен. Принимается запрос от инициатора. Запрос включает в себя первую часть запроса, идентифицирующую первую часть ресурсов, которые удовлетворяют первым критериям запроса на первом уровне в иерархии пространства имен. Запрос включает в себя вторую часть запроса, идентифицирующую вторую часть ресурсов, выбранных из числа ресурсов, включенных в первую часть ресурсов. Вторая часть ресурсов идентифицируется во втором другом расположении в инфраструктуре объединения пространств имен. Идентификация второй части ресурсов возвращается инициатору.
В других дополнительных вариантах осуществления организуется множество ресурсов. Определяется, что ресурс должен быть включен в одно или несколько пространств имен, в которых каждое из одного или нескольких пространств имен конфигурируется для организации одного или нескольких ресурсов. Идентифицируется первый ресурс в первом пространстве имен одного или нескольких пространств имен, и который должен быть соотнесен с ресурсом. Используется первый сегмент пространства имен для связывания ресурса с первым ресурсом, так что может выполняться прохождение сегмента пространства имен для навигации от первого ресурса к ресурсу в пространстве имен.
Варианты осуществления в пределах объема настоящего изобретения включают в себя считываемые компьютером носители, переносящие или имеющие исполняемые компьютером инструкции или структуры данных, хранимые на них. Такими считываемыми компьютером носителями могут быть любые доступные носители, которые являются доступными для компьютерной системы общего назначения или специального назначения. В качестве примера, и не ограничения, такие считываемые компьютером носители могут содержать физические носители данных, такие как оперативное запоминающее устройство (ОЗУ), постоянное запоминающее устройство (ПЗУ), стираемое программируемое ПЗУ (СППЗУ), компакт-диск или другой накопитель на оптических дисках, накопитель на магнитных дисках или другие магнитные запоминающие устройства, или любой другой носитель, который может использоваться для переноса или хранения требуемого средства программного кода в виде исполняемых компьютером инструкций, считываемых компьютером инструкций или структур данных, и к которым может обращаться компьютерная система общего назначения или специального назначения.
В данном описании и в нижеследующей формуле изобретения «сеть» определяется как один или несколько каналов передачи данных (возможно, с различными скоростями), которые позволяют осуществлять перенос электронных данных между компьютерными системами и/или модулями (например, аппаратными и/или программными модулями). Когда информация передается или предоставляется по сети или другому соединению передачи данных (или проводному, или беспроводному, или комбинации проводного или беспроводного) на компьютерную систему, соединение рассматривается, собственно, как считываемый компьютером носитель. Таким образом, любое такое соединение, собственно, называется считываемым компьютером носителем. Комбинации вышеупомянутых также должны быть включены в сферу рассмотрения считываемых компьютером носителей. Исполняемые компьютером инструкции содержат, например, инструкции и данные, которые вызывают выполнение компьютерной системой общего назначения или компьютерной системой специального назначения определенной функции или группы функций. Исполняемыми компьютером инструкциями могут быть, например, двоичный код, инструкции в промежуточном формате, такие как язык ассемблера, или даже исходный код. В некоторых вариантах осуществления аппаратные модули, такие как, например, интегральные схемы специального назначения или вентильные матрицы, оптимизируются для реализации принципов настоящего изобретения.
В данном описании и в последующей формуле изобретения «компьютерная система» определяется как один или несколько программных модулей, один или несколько аппаратных модулей или их комбинации, которые работают вместе для выполнения операций над электронными данными. Например, определение компьютерной системы включает в себя аппаратные компоненты персонального компьютера, а также программные модули, такие как операционная система персонального компьютера. Физическое размещение модулей не является важным. Компьютерная система может включать в себя один или несколько компьютеров, связанных при помощи сети. Аналогично, компьютерная система может включать в себя одно физическое устройство (такое как мобильный телефон или персональный цифровой помощник «ПЦП»), где внутренние модули (такие как память и процессор) работают вместе для выполнения операций над электронными данными. Далее, компьютерная система может включать в себя аппаратные средства специального назначения, такие как, например, маршрутизатор, который включает в себя интегральные схемы специального назначения.
Для специалиста в данной области техники понятно, что изобретение может осуществляться на практике в сетевых вычислительных средах со многими типами конфигураций компьютерных систем, включая персональные компьютеры, портативные компьютеры, карманные компьютеры, мультипроцессорные системы, микропроцессорную или программируемую бытовую электронику, сетевые персональные компьютеры (ПК), миникомпьютеры, мэйнфреймы, мобильные телефоны, ПЦП, пейджеры, маршрутизаторы, шлюзы, брокеры, модули доступа, брандмауэры, редиректоры, преобразователи сетевых адресов и т.п. Изобретение также может осуществляться на практике в средах распределенных систем, где как локальные, так и удаленные компьютерные системы, которые связаны (или проводными каналами передачи данных, или беспроводными каналами передачи данных, или комбинацией проводных и беспроводных каналов передачи данных) при помощи сети, выполняют задачи. В среде распределенной системы программные модули могут располагаться как на локальных, так и на удаленных устройствах хранения.
В данном описании и в последующей формуле изобретения «ресурс» определяется как любой модуль, компонент, объект, компьютерная система, устройство, файл, элемент базы данных, схема, служба и т.д., который может использоваться для выполнения определенной функции, такой как, например, хранение данных, определение формата данных, печать документа и т.д. Ресурсы могут поддерживаться и/или хостироваться обслуживающими компонентами. Например, ресурс файлов может иметь файл-сервер в качестве обслуживающего компонента для доступа к файлу. Аналогично, конференц-зал может иметь почтовый ящик секретаря приемной в качестве обслуживающего компонента для планирования совещания. Реализованный ресурс может распределяться по множеству других ресурсов.
Ресурс также определяется как включающий ресурсы узла пространства имен, например, включенные в пространство имен, которые способствуют или предоставляют доступ к функциональной возможности пространства имен, такой как, например, безопасность пространства имен и административные функции, и/или по которому может выполняться прохождение для доступа к другим ресурсам, таким как, например, другой ресурс узла пространства имен, компьютерная система или компонент компьютерной системы. В некоторых вариантах осуществления ресурсы узла пространства имен могут быть реализованы распределенным образом. Далее, ресурс узла пространства имен может представлять соответствующий узел в дереве пространства имен.
В данном описании и в последующей формуле изобретения «дескриптор ресурса» определяется как структура данных (например, отформатированная в соответствии со схемой дескриптора ресурса), описывающая ресурс.
В данном описании и в последующей формуле изобретения «пространство имен» определяется как механизм деления на области действия для разделения ресурсов (например, всех ресурсов Интернета) на части, по которым могут выполняться разрешение, обнаружение и маршрутизация сообщения. Пространства имен являются расширяемыми, так что могут определяться новые области действия, и индивидуальные области действия могут быть иерархическими.
Пространства имен могут рассматриваться как лес, в котором каждое пространство имен (дерево) представляется как унифицированный идентификатор ресурса («УИДР»), причем схема и часть, непосредственно следующая за ней, служат в качестве корня. Схема УИДР может быть иерархической или плоской. Иерархические схемы, такие как «name» и «http» (в противоположность плоским схемам, таким как «uuid»), могут идентифицироваться присутствием последовательности знаков «:/» после имени схемы. Первая часть иерархических схем может идентифицировать владельца имени, ответственного за остальные компоненты УИДР. Такие УИДР идентифицируются посредством присутствия последовательности знаков «://» после имени схемы. Пространства имен могут быть как иерархическими, так и маршрутизируемыми, означая, что пространства имен служат в качестве идентификаторов, которые могут использоваться для идентификации путей передачи данных от отправителя к получателю.
В некоторых вариантах осуществления пространство имен может определяться следующим образом:
пространство имен := плоское | иерархическое
Плоское := схема ':' Opaque_part
Иерархическое := схема «:/» ('/' владелец '/')? сегмент ('/' сегмент)*
Схема := как определено в документе RFC-2396 в обобщенном синтаксисе УИДР
Opaque_part := как определено в документе RFC-2396 в обобщенном синтаксисе УИДР
Владелец := как определено в документе RFC-2396 в обобщенном синтаксисе УИДР
Сегмент := как определено в документе RFC-2396 в обобщенном синтаксисе УИДР
Ресурсы могут предоставляться в любой ветви в дереве, и данный ресурс может быть открыт в многочисленных пространствах имен. Также, данное пространство имен может идентифицировать единственный ресурс или ветвь пространства имен (группу ресурсов). Такое группирование может быть логическим или физическим, в зависимости от семантики пространства имен. Группа получается посредством выполнения поиска в глубину по идентифицированной ветви пространства имен. Если была идентифицирована группа ресурсов, многочисленные операции могут быть выполнены над ними, такие как выбор ресурсов, которые удовлетворяют некоторым критериям, отправка (и потенциально маршрутизацию) данного сообщения только тем, кто в группе, и т.д.
Единственный ресурс может рассматриваться как тривиальная коллекция. Таким образом, каждому ресурсу может присваиваться имя (пространство имен). Так как пространства имен являются маршрутизируемыми, сообщения могут маршрутизироваться по инфраструктуре объединения пространств имен на любой ресурс, который имеет имя. Такая маршрутизация может пересекать границы доверительных отношений и преодолевать брандмауэры.
Как правило, ресурсу может присваиваться один или несколько УИДР, которые могут использоваться для доступа к ресурсу. Один УИДР, идентификатор (ИД) ресурса, присвоенный ресурсу, может быть, минимально, уникальным по всем пространствам имен, реализованным данной инфраструктурой объединения пространств имен, так что на ресурс можно ссылаться единственным образом. Другие потенциально не уникальные УИДР также могут присваиваться ресурсам. Эти другие потенциально не уникальные УИДР обеспечивают доступ к ресурсу через дополнительные расположения в пространствах имен, реализованных данной инфраструктурой объединения пространств имен. Ресурсу может присваиваться по меньшей мере один потенциально не уникальный УИДР для каждого пространства имен, по которому можно выполнять прохождение для доступа к ресурсу.
На фиг.5 изображен пример инфраструктуры 500 объединения пространств имен с точки зрения провайдера и коллекции пространства имен. Инфраструктура 500 объединения пространств имен изображает, что провайдеры могут регистрироваться в любой ветви в дереве пространства имен. Далее, провайдер может регистрироваться на многочисленных ветвях пространства имен, потенциально в различных деревьях. Например, провайдер 501 регистрируется для ветвей пространства имен location:/CorporateBuildings/bldg34, location:/CorporateBuildings/bldg50/floor2 и location:/CorporateBuildings/bldg50/floor1/room1304. Провайдер 502 регистрируется для ветвей пространства имен location:/CorporateBuildings/bldg50 и location:/CorporateBuildings/bldg26. Провайдер 503 регистрируется для location:/CorporateBuildings/bldg50/floor1.
Как изображено на фиг.5, приложения могут рассматривать пространства имен как логические коллекции ресурсов, которые могут вкладываться иерархически. Т.е. промежуточные узлы пространства имен (например, location:/CorporateBuildings/bldg50/floor1 и location:/CorporateBuildings/bldg50) рассматриваются как ресурсы - ресурсы узла пространства имен. Приложения могут эффективно работать с такими логическими коллекциями согласованным и масштабируемым образом, включая публикацию, поиск, определение расположения, отслеживание, определения назначения и источника событий внутри коллекций. Отметьте, что не все ресурсы в логической коллекции обязательно располагаются в одной компьютерной системе или устройстве. Ресурсы могут распределяться как в пространстве, так и во времени по многим компьютерным системам и устройствам. Инфраструктура объединения пространств имен следит за эффективной маршрутизацией запросов поиска на компьютерные системы и устройства, участвующие в любой данной коллекции, таким образом обеспечивая однородный и совместимый вид для приложений.
На фиг.6 изображена примерная инфраструктура 600 объединения пространств имен, причем ресурс предоставляется во множестве пространств имен. УИДР Organization:/Product идентифицирует корень дерева 601 пространства имен. Аналогично, УИДР Location:/Bldg 42 идентифицирует корень дерева 602 пространства имен. Как изображено, принтер 603 открыт как в дереве 601 пространства имен, так и в дереве 602 пространства имен.
В данном описании изобретения и последующей формуле изобретения ресурс узла пространства имен может рассматриваться просто как узел в дереве пространства имен. Одинаковые ресурсы узла пространства имен могут рассматриваться как корневые узлы (например, Location:/Bldg42), другие могут рассматриваться как промежуточные узлы (например, Organization:/Product/Devices Team, и другие могут рассматриваться как концевые узлы (например, Location:/Bldg 42/Floor 1/Room 112/Printer 603). Однако необходимо понять, что ресурс узла пространства имен в одном дереве пространства имен может ссылаться на ресурсы (или другие ресурсы) узла пространства имен в другом дереве пространства имен. Таким образом, рассматривание ресурса узла пространства имен в качестве корневого, промежуточного или концевого узла в одном дереве пространства имен не ограничивает запрос этого ресурса узла пространства имен из других деревьев пространства имен.
Пространство имен также включает в себя сегменты пространства имен, которые связывают (или соотносятся с) два или несколько ресурсов узла пространства имен. Сегмент пространства имен может использоваться для связывания ресурсов узла пространства имен в одном и том же пространстве имен. Например, сегмент 611 пространства имен («Devices») связывает Organization:/Product с Devices Team. Далее, сегмент пространства имен может связывать (иначе соединять) ресурсы узла пространства имен в различных деревьях пространства имен, таким образом обеспечивая функциональную возможность символических связей. Прохождение сегмента пространства имен включает в себя навигацию ко всем целевым ресурсам узла пространства имен. Например, сегмент 641 («Project») пространства имен соединяет PM Team с ресурсами файлов SpecTemplate.doc и Milestone.prj.
Следовательно, может выполняться прохождение сегмента 611 («Devices») пространства имен, сегмента 621 («Dev») пространства имен и сегмента 631 («Printer») пространства имен по дереву 601 пространства имен для идентификации принтера 603. Аналогично, может выполняться прохождение сегмента 612 («Floor 1») пространства имен, сегмента 622 («Room 1226») пространства имен и сегмента 632 («Printer») пространства имен по дереву 602 пространства имен для идентификации принтера 603. Необходимо понять, что могут различаться схема УИДР дерева 601 пространства имен и схема УИДР дерева 602 пространства имен.
Так как один и тот же ресурс может участвовать в многочисленных пространствах имен и с присутствием функциональной возможности символической связи, глобальное рассматривание всех пространств имен и ресурсов, участвующих в них, формирует ориентированный граф с сегментами пространства имен, служащими в качестве ребер помеченного графа, и ресурсами узла пространства имен и другими ресурсами, служащими в качестве вершин графа. Корни пространства имен фактически разделяют ресурсы узла пространства имен и другие ресурсы в данном глобальном графе на множество начальных и доступных ресурсов с начальными ресурсами узла пространства имен, обеспечивающими основу для деления на области действия пространства имен. Следовательно, кэшированная информация для реализации запросов уменьшается и распределяется по каждому пространству имен.
Также любое данное пространство имен может формировать граф, так как один и тот же ресурс может предоставляться на многочисленных ветвях пространства имен, и некоторые сегменты могут соединять соединенные иным образом ресурсы узла пространства имен.
На фиг.1 изображен пример инфраструктуры 100 объединения пространств имен. Инфраструктура 100 объединения пространств имен включает в себя менеджеры 101, 102, 103, 111 и 112 пространства имен, которые могут формировать различные типы объединения партнерств. Например, менеджеры 101, 102, 103 пространства имен объединяются друг с другом как равноправные узлы без корневого менеджера пространства имен. С другой стороны, менеджеры 111 и 112 пространства имен объединяются с менеджерами 101 и 102 пространства имен, соответственно, причем менеджеры 101 и 102 пространства имен служат в качестве корневых менеджеров пространства имен. Различные типы устройств могут участвовать в инфраструктуре объединения пространств имен, включая хосты (например, ПК, хостирующие ресурсы), маршрутизаторы сообщений, шлюзы сообщений (например, брандмауэры, преобразование сетевых адресов (блоки «преобразования сетевых адресов (ПСА)» и редиректоры) и брокеры сообщений (например, посредники публикации-подписки). Инфраструктура 100 объединения пространств имен способствует шинным протоколам (например, оживление, управление, совершение события и потоковая передача данных). Далее, инфраструктура 100 объединения пространств имен может взаимодействовать с программными и аппаратными стеками третьих сторон, используя относящиеся протоколы веб-служб, такие как, например, WS-Discovery (обнаружение веб-служб) и WS-Eventing (совершение событий веб-служб.
Как правило, менеджеры 101, 102, 103, 111 и 112 пространства имен могут использовать протоколы объединения пространств имен для формирования партнерств и обмена информацией пространства имен. Формирование партнерств и обмен информацией пространства имен способствует более эффективному и надежному доступу к ресурсам пространства имен. Может быть, что равноправные менеджеры пространства имен (например, менеджеры 101, 102 и 103 пространства имен) обмениваются информацией пространства имен с другими равноправными менеджерами пространства имен. Однако другие менеджеры пространства имен (например, менеджеры 111 и 112 пространства имен) могут обмениваться информацией пространства имен с соответствующими корневыми менеджерами пространства имен (например, менеджерами 101 и 102 пространства имен). Каждый менеджер 101, 102, 103, 111 и 112 пространства имен может вести базу данных информации пространства имен, такую как, например, какие менеджеры пространства имен или провайдеры заинтересованы в каких ветвях пространства имен.
Инфраструктура 100 объединения пространств имен включает в себя провайдеры 121, 122, 123, 124, 126 и 127. Каждый провайдер может интересоваться одной или несколькими ветвями пространства имен в инфраструктуре объединения пространств имен. Провайдеры обмениваются информацией пространства имен с соответствующим менеджером пространства имен. Например, провайдер 122 обменивается информацией пространства имен с менеджером 111 пространства имен. Соответствующий менеджер пространства имен тогда способствует передачи информации пространства имен другим менеджерам пространства имен. Например, менеджер 111 пространства имен может передавать информацию пространства имен менеджеру 101 пространства имен, и менеджер 101 пространства имен может, в свою очередь, передавать относящиеся части информации пространства имен менеджерам 102 и 103 пространства имен.
Инфраструктура объединения пространств имен (например, инфраструктура 100 объединения пространств имен) способствует распределению запросов поиска по пространствам имен для соответствующих провайдеров. Например, может быть, что провайдерами 501, 502 и 503 являются каждый один из провайдеров 121, 122, 123, 124, 126 или 127.
Менеджеры пространства имен могут объединяться с использованием множества различных механизмов. Первый механизм объединения включает в себя равноправных менеджеров пространства имен, ретранслирующих информацию пространства имен всем другим равноправным менеджерам пространства имен. Когда менеджер пространства имен должен присоединиться к инфраструктуре объединения пространств имен, менеджер пространства имен использует широковещательный/многоадресный протокол обнаружения, такой как, например, WS-discovery, для объявления своего присутствия (широковещательное/многоадресное сообщение «Hello»), и выдает широковещательное/многоадресное тестовое сообщение для обнаружения других менеджеров пространства имен. Затем менеджер пространства имен устанавливает партнерство простой ретрансляции с другими менеджерами пространства имен, уже присутствующими в сети, и принимает новые партнерства с вновь присоединяющимися менеджерами пространства имен. После этого менеджер пространства имен может ретранслировать каждый запрос пространства имен своим партнерам.
Второй механизм объединения включает в себя равноправных менеджеров пространства имен, эффективно ретранслирующих всю информацию пространства имен другим равноправным менеджерам пространства имен. Когда новый менеджер пространства имен должен присоединиться к инфраструктуре объединения пространств имен, новый менеджер пространства имен использует широковещательный/многоадресный протокол обнаружения, такой как, например, WS-discovery, для объявления своего присутствия (широковещательное/многоадресное сообщение «Hello»), и выдает широковещательное/многоадресное тестовое сообщение для обнаружения других менеджеров пространства имен, которые являются частью инфраструктуры объединения пространств имен. При обнаружении другого менеджера пространства имен новый менеджер пространства имен устанавливает партнерство с другим менеджером пространства имен. Из установленного партнерства новый менеджер пространства имен узнает о присутствии других менеджеров пространства имен, уже участвующих в инфраструктуре объединения пространств имен. Он затем устанавливает партнерства с этими вновь узнанными менеджерами пространства имен и принимает любые новые поступающие запросы партнерства.
Как поступления/уходы менеджера пространства имен, так и регистрации пространства имен производят лавинную маршрутизацию по инфраструктуре объединения пространств имен, приводя к тому, что каждый менеджер пространства имен имеет глобальные сведения о других менеджерах пространства имен и регистрациях пространства имен. С такими глобальными сведениями любой менеджер пространства имен может ретранслировать запросы поиска только тем партнерам, которые имеют провайдеров/подписчиков, зарегистрированных на ветви пространства имен, заданной в запросе.
Третий механизм объединения включает в себя равноправных менеджеров пространства имен, неявно ретранслирующих информацию пространства имен другим равноправным менеджерам пространства имен. В этом третьем механизме менеджерам пространства имен присваиваются уникальные идентификаторы (ИД), такие как, например, 128-битовые или 160-битовые ИД. Определяется менеджер пространства имен, ответственный за данное дерево пространства имен, которым должен быть тот, ИД которого ближе всего к ИД, полученному посредством по меньшей мере однонаправленной отображающей функции, такой как, например, хеширование данного дерева пространства имен. Такая основанная на хешировании схема отображения для пространств имен более подробно описывается ниже.
В данном третьем механизме поступления и уходы менеджера пространства имен производят лавинную маршрутизацию по структуре. С другой стороны, регистрации пространства имен ретранслируются менеджеру пространства имен, назначенному ответственным за ветвь пространства имен, заданную в запросе. Для масштабируемости, выравнивания нагрузки и отказоустойчивости менеджер пространства имен, принимающий регистрации пространства имен, может надежным образом производить лавинную маршрутизацию этих регистраций по тем менеджерам пространства имен, которые находятся в пределах его окрестностного множества. Окрестностное множество для заданного менеджера пространства имен определяется как множество менеджеров пространства имен, имеющих ИД в пределах предварительно определенного диапазона по обеим сторонам ИД заданного менеджера пространства имен в пределах конечного адресного пространства по модулю ИД.
Аналогично механизму 2 вновь присоединяющийся менеджер пространства имен использует широковещательный/многоадресный протокол обнаружения, такой как, например, WS-Discovery, для объявления своего присутствия (широковещательное/многоадресное сообщение «Hello»), и выдает широковещательное/многоадресное тестовое сообщение для обнаружения менеджера пространства имен, который уже является частью инфраструктуры объединения пространства имен. Новый менеджер пространства имен устанавливает партнерство с обнаруженным менеджером пространства имен и использует это партнерство для того, чтобы узнать о присутствии других менеджеров пространства имен, участвующих в инфраструктуре объединения пространств имен. Новый менеджер пространства имен затем устанавливает другие партнерства с вновь обнаруженными менеджерами пространства имен и принимает любые новые поступающие запросы партнерства. Он принимает поступающие регистрации пространства имен от своих партнеров по ветвям пространства имен, для которых он является ответственным, и может производить лавинную маршрутизацию их по его окрестностному множеству.
В ответ на поступающие запросы поиска новый менеджер пространства имен обращается к своей базе данных регистраций и ретранслирует запросы менеджерам пространства имен, имеющим провайдеров/подписчиков, зарегистрированных на ветви пространства имен, заданной в запросе. Таким образом, при использовании данного третьего механизма каждый менеджер пространства имен в инфраструктуре объединения пространств имен имеет глобальные сведения о всех других менеджерах пространства имен, но информация о регистрации фактически разбивается по менеджерам пространства имен. Менеджер пространства имен, таким образом, неявно ретранслирует запрос поиска только тем партнерам, которые имеют провайдеров/подписчиков, зарегистрированных на ветви пространства имен, заданной в запросе. Эта косвенность осуществляется при помощи менеджера пространства имен, который имеет глобальные сведения о регистрациях пространств имен на ветви пространства имен, заданной в запросе.
Четвертый механизм объединения включает в себя равноправных менеджеров пространства имен, неявно маршрутизирующих информацию пространства имен другим равноправным менеджерам пространства имен. Данный четвертый механизм отличается от третьего механизма в том смысле, что как все поступления/уходы менеджера пространства имен, так и все запросы поиска/регистрации пространства имен маршрутизируются вместо выполнения лавинной маршрутизации. Протоколы маршрутизации предназначены для гарантирования рандеву между запросами поиска пространства имен и запросами регистрации пространства имен.
На фиг.2 изображен пример компьютерной архитектуры 200, которая способствует неявной маршрутизации запросов партнерам. Компьютерная архитектура 200 описывает различные типы компьютерных систем и устройств, потенциально распределенных по многочисленным локальным областям действия при обнаружении, участвующих в инфраструктуре объединения пространств имен.
Рабочая станция 233 может включать в себя экземпляр провайдера с динамической настройкой конфигурации, который регистрируется у соответствующего менеджера пространства имен на ветви пространства имен location:/architecture200/scope221/Devices. Чтобы информировать своих партнеров о присутствии этого экземпляра провайдера с динамической настройкой конфигурации, рабочая станция 233 маршрутизирует запрос 201 регистрации пространства имен по инфраструктуре объединения пространств имен. Запрос 201 регистрации пространства имен первоначально транслируется на портативный компьютер 231, который, в свою очередь, транслирует запрос 201 регистрации пространства имен на брокер 237 сообщений, который, в свою очередь, транслирует запрос 201 регистрации пространства имен на шлюз 241 сообщений. Шлюз 241 сообщений сохраняет запрос 201 регистрации информации о регистрации в своей базе данных и возвращает сообщение 204 об успешном результате рабочей станции 233.
Впоследствии другой экземпляр провайдера, на этот раз экземпляр выполняющихся служб, становится действующим в рабочей станции 233 и регистрирует себя у соответствующего менеджера пространства имен на ветви пространства имен location:/architecture200/scope221/Services. На этот раз менеджер пространства имен имеет сведения, что шлюз 241 сообщений является ответственным за регистрации на location:/architecture200 и транслирует запрос 205 регистрации непосредственно на шлюз 241 сообщений. Шлюз 241 сообщений сохраняет запрос 205 регистрации информации о регистрации в своей базе данных и возвращает сообщение 206 об успешном результате рабочей станции 233.
Впоследствии подается питание на принтер 236 (например, принтер с универсальной динамической настройкой конфигурации) и он посылает объявление 207. Сервер 234 обнаруживает объявление 207, присваивает пространство имен location:/architecture200/scope224/Devices принтеру 236 и маршрутизирует запрос 208 регистрации брокеру 237 сообщений. Брокер 237 сообщений транслирует запрос 208 регистрации шлюзу 241 сообщений. Шлюз 241 сообщений сохраняет запрос 208 регистрации информации о регистрации в своей базе данных и возвращает сообщение 210 об успешном результате серверу 234.
Впоследствии персональный компьютер 242 выдает запрос 211 обнаружения для обнаружения всех устройств на ветви пространства имен location:/architecture200. Так как персональный компьютер 242 не имеет сведений, куда транслировать запрос 211 обнаружения, он маршрутизирует запрос 211 обнаружения через рабочую станцию 243. Так как протокол маршрутизации, по существу, гарантирует рандеву между запросами регистрации и поиска для данного дерева пространства имен, рабочая станция 243 транслирует запрос 211 обнаружения на шлюз 241 сообщений. Шлюз 241 сообщений транслирует запрос 211 обнаружения как на рабочую станцию 233, так и на сервер 234. Рабочая станция 233 и сервер 234 посылают ответные сообщения 214 и 216, соответственно, персональному компьютеру 242.
Данный четвертый механизм работает посредством маршрутизации запроса менеджеру пространства имен (шлюзу 241 сообщений), который имеет глобальные сведения о регистрациях пространств имен на ветви пространства имен (например, location:/architecture200), заданной в запросе. Данный четвертый механизм, по существу, гарантирует, что маршрутизация может выполняться за O(log N) ретрансляций, где N представляет собой количество менеджеров пространства имен, участвующих в инфраструктуре объединения пространств имен. Так как данный четвертый механизм фактически разделяет информацию о регистрации пространств имен и не предоставляет полномочий глобальным сведениям о всех участвующих менеджерах пространства имен, он масштабируется на очень большие сети, даже Интернет.
На фиг.3 изображен пример бинарного отношения между менеджерами пространства имен в инфраструктуре объединения пространств имен. Бинарное отношение, изображенное на фиг.3, представляет собой одно отношение, которое может использоваться для реализации более эффективной маршрутизации между менеджерами пространства имен. Менеджеры пространства имен, участвующие в инфраструктуре объединения пространств имен, организуются в виде упорядоченного списка, использующего бинарное отношение, которое является рефлексивным, антисимметричным, транзитивным, суммарным и определяется по области идентификаций менеджера пространства имен. Оба конца упорядоченного списка соединяются, такими образом, образуя кольцо 306. Это делает возможным для каждого менеджера пространства имен в упорядоченном списке видеть себя находящимся посередине упорядоченного списка. Упорядоченный список может быть двунаправленным, так что любой менеджер пространства имен может проходить упорядоченный список в любом направлении. Далее, существует взаимно-однозначное отображение из области значений идентификации менеджера пространства имен (например, 2, 50 или 151) на сами менеджеры пространства имен. Это отображение принимает во внимание разреженность менеджеров пространства имен в области значений, когда отображение не является плотным.
Каждый менеджер пространства имен на кольце 306 может включать в себя таблицу маршрутизации, которая способствует маршрутизации информации пространства имен (например, запросы регистрации и поиска) на другие менеджеры пространства имен. Примерная таблица маршрутизации для менеджера пространства имен, имеющего ИД 64, изображена на фиг.3. Таблица маршрутизации указывает, что преемником ИД 64 является ИД 76. Преемник может быть в непосредственно соседнем менеджере пространства имен в направлению по часовой стрелке от ИД 64 по кольцу 306. Преемник может измениться, например, когда присоединяется новый менеджер пространства имен (например, с ИД 71), или существующий менеджер пространства имен (например, ИД 76) покидает инфраструктуру объединения пространств имен.
Таблица маршрутизации указывает, что предшественником ИД 64 является ИД 50. Предшественником может быть непосредственно соседний менеджер пространства имен в направлении против часовой стрелки от ИД 64 по кольцу 306. Предшественник может измениться, например, когда присоединяется новый менеджер пространства имен (например, с ИД 59), или существующий менеджер пространства имен (например, ИД 50) покидает инфраструктуру объединения пространства имен.
Таблица маршрутизации указывает, что соседями для ИД 64 являются ИД 83, 76, 50 и 46. Соседи могут идентифицироваться с использованием большего из двух факторов размера и диапазона. Менеджер пространства имен идентифицируется как член окрестности, когда соответствующий ИД находится в пределах минимального диапазона от данного ИД (например, в направлении по часовой стрелке или против часовой стрелки по кольцу 306), или существует меньший, чем некоторый сконфигурированный минимальный размер окрестности, уже присутствующий в окрестности. Например, на кольце 306 заданный диапазон может иметь величину 20, и размер может быть больше, чем 4. Следовательно, ИД в пределах 20 расположений относительно ИД 64 как в направлении по часовой стрелке (+10), так и против часовой стрелки (-10) являются соседями для ИД 64. Соседи могут меняться, например, когда менеджеры пространства имен присоединяются или покидают инфраструктуру объединения пространств имен, или когда изменяется заданный диапазон. Например, если размер равен 4, новый менеджер пространства имен с ИД 48 может заменить менеджера пространства имен, имеющего ИД 46.
Таблица маршрутизации указывает, что ИД 64 может маршрутизировать непосредственно на ИД 200, 2, 30, 46, 50, 64, 76, 83, 98 и 135. Таким образом, когда менеджер пространства имен, имеющий ИД 64, принимает запрос, менеджер пространства имен может маршрутизировать запросы менеджеру пространства имен, имеющему ИД в таблице маршрутизации, который ближе к ИД менеджера пространства имен в запросе.
На фиг.4 изображен пример архитектуры 400, которая облегчает интеграцию инфраструктуры объединения пространств имен с другими протоколами. Инфраструктура объединения пространств имен может поддерживать основанную на провайдерах модель расширения. Следовательно, инфраструктура объединения пространств имен может интегрироваться с существующими протоколами при условии, если модель ресурсов существующего протокола совместима с моделью пространств имен. Архитектура 400 изображает менеджеры 401, 404, 406 пространства имен (например, инфраструктуры объединения пространств имен, взаимодействующих с активным каталогом 402 и сервером 403 универсального описания, обнаружения и интеграции (УООИ). Сплошные стрелки указывают, что менеджеры пространства имен устанавливают связь с использованием протоколов объединения пространств имен, пунктирные стрелки указывают, что менеджеры пространства имен устанавливают связь с активным каталогом 402 с использованием облегченного протокола доступа к каталогам (ОПДК), и точечные стрелки указывают, что менеджеры пространства имен устанавливают связь с сервером 403 УООИ с использованием протоколов УООИ.
Темы публикации-подписки представляют собой другое примерное использование пространств имен. Тема публикации-подписки может рассматриваться как коллекция подписчиков на эту тему; по существу, имя темы рассматривается в качестве пространства имен. Преимущество рассматривания тем публикации-подписки в качестве пространств имен заключается в том, что инфраструктура объединения пространств имен может использоваться для маршрутизации сообщений об уведомлении от издателей к подписчикам. Подписка на тему может рассматриваться как запрос регистрации пространства имен, и публикация по теме может рассматриваться как запрос поиска пространства имен.
В некоторых вариантах осуществления инфраструктура объединения пространств имен может предоставлять шиноподобную абстракцию для программистов для разработки распределенных приложений. Например, инфраструктура объединения пространств имен может абстрагировать жизнеспособность - механизм, который приложения используют для того, чтобы узнать, когда ресурс, в котором они заинтересованы, вышел из сети. Для отслеживания данного ресурса приложение подписывается на уведомления, посылаемые в тему публикации-подписки, названной по УИДР идентификации этого ресурса (т.е. по его имени). Любой компонент (например, приложение), который замечает, что данный ресурс вышел из сети, может опубликовать сообщение об уведомление о жизнеспособности в тему, названную по УИДР идентификации ресурса, таким образом информируя другие приложения, заинтересованные в отслеживании ресурса. Так как подписки на публикации-подписки объединяются по инфраструктуре пространств имен, и так как многие схемы идентификации являются иерархическими (для захвата аспекта сдерживания ресурса с точки зрения жизнеспособности), система избегает проблем тестового опроса n2 простых систем обнаружения и очень хорошо масштабируется. Далее, чем компоненты (например, приложения) представляют больший интерес в данном ресурсе, тем быстрее кто-нибудь заметит, что он вышел из сети, что является выгодным.
Разработчики могут рассматривать инфраструктуру объединения пространств имен в виде облака, в котором регистрируются ресурсы, такие как файлы и источники событий. Приложения могут выдавать запросы обнаружения в отношении облака для обнаружения зарегистрированных ресурсов. Приложения также могут запрашивать облако для подписки от их имени как на текущую, так и будущую регистрацию источников событий в облаке. Далее, приложения могут подписываться на темы публикации-подписки, поддерживаемые в облаке. Любой может опубликовать сообщение об уведомлении, и облако принимает меры ретрансляции сообщения подписчикам темы события, в которую сообщение было опубликовано.
Различные типы ресурсов могут быть опубликованы в пространствах имен, включая службы, устройства, файлы, хосты, компоненты, элементы в базах данных, метаданные о метаданных (схемы) и т.д. Ресурс может иметь обслуживающий компонент, хостирующий/поддерживающий его. Например, ресурс файлов может иметь файл-сервер в качестве обслуживающего компонента для доступа к файлу. Конференц-зал может иметь почтовый ящик секретаря приемной в качестве обслуживающего компонента для планирования совещания.
Каждый ресурс может ассоциироваться с дескриптором ресурса, который захватывает его описательный аспект. Таким образом, дескрипторы ресурса могут запрашиваться для идентификации ресурсов, представляющих интерес. Когда идентифицируется ресурс, к ресурсу может выполняться доступ через соответствующий обслуживающий аспект ресурса. Типы сообщений, которые могут посылаться службе, хостирующей/поддерживающей ресурс, изменяются от одного типа ресурса к другому. Например, файл-серверы поддерживают открытие ресурсов файлов, и секретари приемной принимают запросы планирования для конференц-залов.
Модель данных для реализации дескрипторов ресурсов может быть с контролем версий, расширяемой и с возможностью взаимодействия. Такая модель данных ресурса может совместно использоваться во многих современных структурах, таких как распределенная файловая система (РФС), активный каталог (АК) и УООИ. Такая одна совместно используемая модель данных может способствовать тому, что объекты АК и файлы РФС (или ресурсы из других систем управления ресурсами) рассматриваются как ресурсы, объединяемые с использованием подхода пространства имен, и к которым производится доступ посредством посылки сообщений службам, хостирующим их.
Следовательно, ресурсы могут определяться как имеющие следующие свойства:
ИД ресурса: УИДР, который может необязательно дополняться набором свойств ссылок и может быть стабильным в пространстве и времени. Он может представляться как экземпляр схемы ссылки на ресурс. ИД ресурса вместе со свойствами ресурса может представлять в собирательном значении идентификацию ресурса.
Дескриптор: экземпляр характерной для ресурса схемы, содержащий полустатические метаданные о ресурсе. Эти метаданные полезны для выбора ресурса. Может выполняться таксономия схем дескриптора ресурса.
Номер конфигурации: монотонно возрастающее число, которое идентифицирует конкретную версию данных описания ресурса. Это число увеличивается всякий раз, когда изменяется описание ресурса.
ИД экземпляра: монотонно возрастающее число, которое идентифицирует конкретный экземпляр активного ресурса. Например, оно может быть тем же самым, что и время начальной загрузки для ресурсов служб/устройств или время изменения файла для ресурсов файлов.
С дальнейшей ссылкой на дескрипторы, устройство может иметь метаданные в соответствии с одной или несколькими схемами. Например, принтер может иметь метаданные в соответствии с различными схемами, которые описывают различные аспекты принтера. Схемы дескриптора ресурса могут стандартизироваться организациями, такими как рабочие группы Форума технологии универсальной динамической настройки конфигурации (например, схема принтера может быть стандартизирована рабочей группой принтера с универсальной динамической настройкой конфигурации) и W3C (Консорциума Всемирной паутины). На фиг.13 описывается примерная таксономия 1300 для описания ресурса. По таксономии 1300 различные схемы, в основном, представлены следующим образом:
Схема ссылки на службу: расширяет схему ссылки на ресурс и задает список типов поведения, идентифицирующих сообщения, поддерживаемые ресурсом, контейнер политик для своих утверждений (таких как поддерживаемые транспорты) и набор расширений.
Схема дескриптора ресурса: расширяет схему ссылки на ресурс и задает номер конфигурации дескриптора (см. ниже для объяснения), дружественное имя ресурса, ссылку на службу службы, поддерживающей ресурс, и набор расширений.
Схема дескриптора узла пространства имен: расширяет схему дескриптора ресурса и задает ресурсы, доступные с нее как экземпляры схемы дескриптора ребра.
Схема дескриптора ребра: задает локально разделенное по областям действия имя ребра, тип ребра и целевые ресурсы.
Схема дескриптора устройства: расширяет схему дескриптора ресурса и задает серийный номер и название производителя.
Схема дескриптора принтера: расширяет схему дескриптора устройства и задает характерные для принтера свойства, такие как разрешение, возможность печати в цвете, количество страниц в минуту и поддерживаемые размеры бумаги.
Любая из информации, определенной в любой из вышеупомянутых схем описания, может быть включена в запрос для идентификации ресурсов в инфраструктуре объединения пространств имен. Например, может выполняться поиск и навигация по данным дескриптора с использованием выражения фильтра (или запроса). Например, можно фильтровать по типу схемы дескриптора или значениям поля, выполнять навигацию к экземплярам, доступным с ее полей ссылки, применять подфильтр к ним и т.д. В некоторых вариантах осуществления используются выражения фильтра, основанные на XPath. Ссылаясь снова на фиг.6, используя синтаксис XPath, выражение фильтра, которое работает над данными описания, задаваемыми схемами описания ресурса, может использоваться для определения расположения принтера в Location:/Bldg42/Floor1, который может печатать в цвете.
Пространство имен может задавать выражение фильтра, в виде параметра сегмента УИДР, для полей/атрибутов, определенных на ресурсе узла пространства имен, для выбора и прохождения. Например, пространство имен Location:/Bldg42/Floor1/Room1226;employee=”employee1”/printer будет проходить ресурс «Room 1226» узла пространства имен, только если дескриптор «Room 1226» имеет поле «employee» со значением «employee1». Аналогично, пространство имен Organization:/Product/DevicesTeam;building=”Bldg33”/Dev/Computer604;printer=”color” будет проходить ресурс “Devices Team” узла пространства имен, только если его дескриптор имеет поле “building” со значением “Bldg 33” (таким образом, идентифицируя первую часть ресурсов), и будет выбирать ресурс “Computer 604” узла пространства имен, только если его дескриптор имеет поле “printer” со значением “color” (предназначенное для идентификации, что к нему был подключен цветной принтер).
Как описано ранее, менеджерам пространства имен может присваиваться уникальный числовой идентификатор, такой как, например, 160-битовый ИД. В некоторых вариантах осуществления уникальный идентификатор генерируется в результате хэширования одной или нескольких характеристик менеджера пространства имен, таких как, например, имя службы доменных имен (СДИ), расположение, отдел и т.д. Любая из множества различных хэш-функций, таких как, например, алгоритм стойкого хэширования (АСХ), может использоваться для генерирования уникального ИД.
Используя уникальные ИД менеджера пространства имен, следующие функции могут быть предусмотрены для маршрутизации информации пространства имен в инфраструктуре объединения пространства имен:
RouteNumerically(V, Msg): С учетом значения V из области значений идентификаций менеджера пространства имен и сообщения “MSG” доставляет сообщение менеджеру Х пространства имен, идентификация которого может отображаться на V, используя отображающую функцию.
Neighborhood(X, S): Neighborhood представляет собой множество менеджеров пространства имен по обеим сторонам от менеджера Х пространства имен (например, на кольце 306) с количеством элементов, равным S.
Варианты осуществления настоящего изобретения также могут использовать критерий близости менеджеров пространства имен, участвующих в объединении. Критерии близости могут определяться как отношение эквивалентности, которое разделяет множество объединяющих пространства имен менеджеров на непересекающееся множество классов (или разделов). В основном, отношение R на множестве S представляет собой отношение эквивалентности, если оно удовлетворяет следующим свойствам:
- рефлексивности: х в элементе S → x R x
- симметричности: при данных х, y элементы S, x R y → y R x
- транзитивности: при данных x, y элементы S, x R y
Figure 00000001
y R z → x R z
Варианты осуществления настоящего изобретения могут поддерживать множество различных критериев близости, и критерия близости могут классифицироваться с частичной упорядоченностью. Например, критерий, который рассматривает, что все ресурсы узла пространства имен, принадлежащие “Corporation 1”, являются проксимально близкими, предшествует критерию, который рассматривает, что все менеджеры пространства имен в “Corporation 1, Location A”, являются проксимально близкими. Это является следствием того, что множество менеджеров пространства имен, рассматриваемое проксимально близким по первому критерию (принадлежащие “Corporation A”), является супермножеством множества менеджеров пространства имен, рассматриваемого проксимально близким по второму критерию (принадлежащих “Corporation 1, Location A”). С другой стороны, не существует отношения порядка между критерием, который рассматривает все менеджеры пространства имен в “Corporation 1, Location A” проксимально близкими, и критерием, который рассматривает все менеджеры пространства имен в “Corporation 1, Location A” проксимально близкими.
Принятие во внимание факторов близости при вычислении маршрутизации менеджеров пространства имен для каждого менеджера пространства имен в объединении приводит к повышенной вероятности, что каждая ретрансляция маршрутизации на пути к окончательному пункту назначения остается в пределах близости менеджера пространства имен, который инициировал запрос. Далее, все же может быть сделан существенный прогресс в преодолении расстояния между менеджерами пространства имен в числовом пространстве.
Используя уникальные ИД вместе с критерием близости, следующая дополнительная функция может быть предусмотрена для маршрутизации информации пространства имен в инфраструктуре объединения пространств имен:
RouteProximally(V, Msg, P): С учетом значения V из области идентификаций менеджера пространства имен и сообщения “Msg” доставляет сообщение менеджеру Y пространства имен, идентификация которого может отображаться в V среди менеджеров пространства имен, рассматриваемых эквивалентными по критерию Р близости.
Когда провайдер/подписчик регистрируется в ветви пространства имен у менеджера пространства имен, запрос регистрации посылается (и потенциально маршрутизируется) менеджеру пространства имен партнера, ответственному за сохранение информации о регистрации для дерева пространства имен, заданного в запросе регистрации. Альтернативно, может быть, что менеджер пространства имен, который инициирует запрос регистрации пространства имен в структуре, представляет собой менеджер, ответственный за пространство имен. Описывается способ 710 в отношении инфраструктуры объединения пространств имен по фиг.1 и пространств имен по фиг.6.
Способ 710 включает в себя действие приема запроса регистрации пространства имен для регистрации ветви пространства имен, причем запрос регистрации пространства имен включает в себя идентификатор пространства имен, который идентифицирует ветвь пространства имен (действие 711). Например, менеджер 112 пространства имен может принимать запрос 132 регистрации, включающий в себя ИД 142 пространства имен, от провайдера 131. Так как менеджер 112 пространства имен не является равноправным менеджером пространства имен, менеджер 112 пространства имен может ретранслировать запрос 132 регистрации менеджеру 102 пространства имен. Менеджер 112 пространства имен может канонизировать ИД 142 пространства имен по правилам, идентифицированным его схемой, перед передачей запроса 132 регистрации по инфраструктуре 100 объединения пространств имен.
Способ 710 включает в себя действие генерирования по меньшей мере однонаправленного эквивалентного значения идентификации, основанного на части схемы идентификатора пространства имен вместе с по меньшей мере частью части пути идентификатора пространства имен (действие 712). Например, менеджер 102 пространства имен может генерировать хэш-значение 152, основанное на части схемы ИД 142 пространства имен вместе с по меньшей мере частью части пути ИД 142 пространства имен. Любая из множества различных хэш-функций, таких как, например, АСХ, может использоваться для генерирования хэш-значения из частей строки пространства имен. Генерирование хэш-значения из строки пространства имен может изменяться, основываясь на конфигурации инфраструктуры объединения пространств имен.
Для схем неиерархического пространства имен, таких как “uuid” (например, идентифицируемых отсутствием последовательности знаков “:/” после схемы), хэш-значение может генерироваться по всему пространству имен. Например, строка всего пространства имен “uuid:a36fab9c-9c7f-42c3-97d8-36cd57e9bd29” может использоваться для генерирования хэш-значения АСХ.
Иерархические пространства имен могут быть полномочными или неполномочными, причем они различаются, например, соответствующими последовательностями знаков “://” и “:/”, за которыми следует компонент схемы. Для полномочных пространств имен, таких как “name”, генерируется хэш-значение по части схемы, за которым следует последовательность знаков “://”, компонент полномочий, и первый компонент пути пространства имен. Например, часть “name://red.prn.xrx:200/printers” строки пространства имен “name://red.prn.xrx:200/printers/b42-1749-a” может использоваться для генерирования хэш-значения АСХ. Для неполномочных пространств имен, таких как схема “location” на фиг.6, хэш-значение может генерироваться по части схемы, за которым следует последовательность знаков “:/” и первый компонент пространства имен. Например, часть “location:/Bldg42” строки пространства имен “location:/Bldg42/Floor1/Room1226”.
Способ 710 включает в себя действие посылки запроса регистрации пространства имен менеджеру пространства имен, имеющему идентификатор, который численно находится ближе к по меньшей мере однонаправленному эквивалентному числовому значению идентификации, чем идентификаторы других менеджеров пространства имен (действие 713). Например, менеджер 102 пространства имен может вызывать функцию RouteNumerically, подавая хэш-значение 152 и сообщение 132 о регистрации в качестве входа, например, RouteNumerically(хэш-значение 152, сообщение 132 о регистрации). Альтернативно, может использоваться функция RouteProximally. В некоторых вариантах осуществления запрос регистрации пространства имен посылается непосредственно и не происходит маршрутизация.
Инфраструктура 100 объединения пространств имен тогда использует протоколы объединения для ретрансляции сообщения о регистрации соответствующему менеджеру пространства имен. Например, сообщение 132 о регистрации может маршрутизироваться на менеджер 103 пространства имен. Может быть, что менеджер 103 пространства имен передал (выполнил миграцию) ответственность за ветвь пространства имен другому менеджеру пространства имен. Таким образом, может быть, что менеджер 103 пространства имен возвращает сообщение о перенаправлении менеджеру 102 пространства имен. Следовательно, когда ответственность за ветвь пространства имен была передана, менеджер 102 пространства имен может принимать сообщение о перенаправлении, определяющее соответствующего менеджера пространства имен. Менеджер 102 пространства имен может, в свою очередь, послать запрос 132 регистрации соответствующему менеджеру пространства имен. Может встретиться одно или несколько перенаправлений, пока менеджер пространства имен не примет или отклонит запрос регистрации.
Способ 710 включает в себя действие ассоциации менеджера пространства имен с ветвью пространства имен (действие 714). Например, менеджер 103 пространства имен может ассоциироваться с ветвью пространства имен, идентифицированной посредством ИД 142 пространства имен (посредством провайдера 131). ИД 142 пространства имен может, например, идентифицировать часть пространства 601 имен или пространства 602 имен. Ассоциации между менеджером пространства имен и ветвью пространства имен дают возможность выполнять ретрансляцию, вместо маршрутизации, запросов (например, запросов поиска), задающих ветвь пространства имен под ветвью, заданной в запросе регистрации, на менеджер пространства имен, заданный в ассоциации. Ассоциации разрываются, когда или обнаруживается неудача менеджера пространства имен, или получается перенаправление к другому менеджеру пространства имен. Когда обнаруживается неудача, последующие запросы маршрутизируются до тех пор, пока не будет сформирована новая ассоциация.
На фиг.7В изображена примерная блок-схема последовательности операций способа 720 миграции запроса регистрации пространства имен. Способ 720 описывается в отношении инфраструктуры объединения пространств имен по фиг.1 и пространств имен по фиг.6.
Способ 720 включает в себя действие определения, что менеджер пространства имен выполнил ограничение на политики (действие 721). Например, менеджер 103 пространства имен может определить, что количество информации пространства имен (относящееся к инфраструктуре 100 объединения пространств имен), обрабатываемой в менеджере 103 пространства имен, превысило сконфигурированный порог. Сконфигурированным порогом может быть, например, общее количество регистраций, сохраняемых на менеджере пространства имен, или общее количество запросов поиска, обслуживаемых на менеджере пространства имен.
Способ 720 включает в себя действие идентификации ветви пространства имен, которая может мигрировать для выполнения действия политики, ассоциированного с ограничением на политики (действие 722). Например, менеджер 103 пространства имен может идентифицировать ветвь пространства имен (например, соответствующую ИД 142 пространства имен), которая может мигрировать для уменьшения информации пространства имен, обрабатываемой в менеджере 103 пространства имен, ниже сконфигурированного порога. Может быть, что менеджер пространства имен идентифицирует ветвь в большей степени наполненного пространства имен и/или в большей степени обслуживаемого пространства имен для миграции.
Способ 720 включает в себя действие действия миграции существующих регистраций для ветви пространства имен менеджеру пространства имен партнера в ответ на действие политики (действие 723). Например, менеджер 103 пространства имен может выполнить миграцию существующих регистраций к менеджеру пространства имен партнера (например, окрестности) в ответ на действие, которое должно произойти, чтобы сбросить нагрузку на ветвь в большой степени наполненного пространства имен и/или в большой степени обслуживаемого пространства имен.
Способ 730 также может включать в себя действие приема запроса пространства имен, соответствующего ветви пространства имен. Например, менеджер 103 пространства имен может принимать запрос 132 регистрации, соответствующий ветви пространства имен, представленной ИД 142 пространства имен.
Способ 720 также может включать в себя действие принятия мер для перенаправления запроса пространства имен менеджеру пространства имен партнера. Например, как указано точечной стрелкой, менеджер 103 пространства имен может повторно маршрутизировать запрос 132 регистрации менеджеру 101 пространства имен. Менеджер пространства имен, который выполняет миграцию ветви пространства имен, может вызвать RouteNumerically для повторной маршрутизации запроса другому менеджеру пространства имен. Например, RouteNumerically(H, migrateMsg) может вызываться для повторной маршрутизации запросов менеджеру пространства имен (например, менеджеру 101 пространства имен), идентифицированному по меньшей мере однонаправленным эквивалентным значением мигрирующей ветви пространства имен. Например, чтобы выполнить миграцию ветви location:/Bldg42/Floor1, менеджер 103 пространства имен генерирует хэш-значение Н по строке “location:/Bldg42/Floor1”, вызывает RouteNumerically(H, migrateMsg) для идентификации менеджера 101 пространства имен, ответственного за мигрирующую ветвь, и выполняет миграцию всех регистраций пространства имен под мигрирующей ветвью, такие как location:/Bldg42/Floor1/Room1226 и location:/Bldg42/Floor1/Room1119, идентифицированному менеджеру 101 пространства имен.
Менеджер пространства имен также может принять решение для ретрансляции всех регистраций пространства имен, встреченных по сердцевине мигрирующей ветви пространства имен, менеджеру пространства имен партнера, хостирующему ветвь. Это облегчает обслуживание ветвью менеджера пространства имен партнера всех запросов поиска, которые задают ветвь пространства имен без запросов, которые должны всегда проходить через выполняющий миграцию менеджер пространства имен или непосредственно, или косвенно. Выполняющий миграцию менеджер пространства имен может оставить после себя заглушку, указывающую, что он выполнил миграцию информации регистрации по заданной ветви пространства имен. Выполняющий миграцию менеджер пространства имен также может вызвать подписки, если они есть, для уведомлений о жизнеспособности, отслеживающих провайдеров/подписчиков, заданных в мигрировавших регистрациях. Следовательно, последующие регистрации пространства имен под и вдоль сердцевины мигрировавшей ветви пространства имен, принятые выполняющим миграцию менеджером пространства имен, ретранслируются менеджеру пространства имен партнера.
На фиг.7С изображена примерная блок-схема последовательности операций способа 730 обработки запроса регистрации пространства имен. Способ 720 описывается в отношении инфраструктуры объединения пространств имен по фиг.1 и пространств имен по фиг.6.
Способ 730 включает в себя действие приема запроса регистрации пространства имен для регистрации ветви пространства имен, причем запрос регистрации пространства имен включает в себя строку УИДР пространства имен, которая идентифицирует ветвь пространства имен, и уникальную ссылку или идентификатор для провайдера (или подписчика), запрашивающего регистрацию в ветви пространства имен (действие 731). Например, менеджер 103 пространства имен может принимать запрос 132 регистрации, который включает в себя ссылку на провайдера 131.
Способ 730 включает в себя действие определения, что менеджер пространства имен заинтересован в ветви пространства имен (действие 732). Например, менеджер 102 пространства имен может определять, является ли менеджер 102 пространства имен ответственным за ветвь пространства имен, представленную посредством ИД 142 пространства имен (например, Organization:/Product/Messaging Team). Если менеджер 102 пространства имен не является ответственным, менеджер 102 пространства имен может ретранслировать запрос регистрации пространства имен (например, запрос 132 регистрации) ответственному менеджеру пространства имен (например, менеджеру 103 пространства имен) для заданной ветви пространства имен. Альтернативно, когда менеджер 102 пространства имен не является ответственным, менеджер 102 пространства имен может послать сообщение 134 о перенаправлении менеджеру пространства имен (например, менеджеру 103 пространства имен), который инициировал запрос регистрации (например, запрос 133 регистрации), чтобы вместо этого установить связь с ответственным менеджером пространства имен (например, менеджером 101 пространства имен). Когда менеджер 102 пространства имен является ответственным, менеджер 102 пространства имен может удерживать запрос регистрации пространства имен.
Способ 730 включает в себя действие сохранения идентификатора пространства имен в индексированной соответствующим образом базе данных регистраций пространств имен (действие 733). Например, если идентификатором пространства имен является строка УИДР, он хранится в индексе базы данных регистраций пространств имен в алфавитном порядке, при этом более длинные строки занимают более высокое место. Например, менеджер 103 пространства имен может сохранить ИД 142 пространства имен в базе данных регистраций пространств имен. Пунктирная линия и соответствующий пунктирный прямоугольник, окружающий провайдера 131, указывает, что менеджер 103 пространства имен ссылается на провайдера 131, как на заинтересованного в пространстве имен, представленном посредством ИД 142 пространства имен.
Способ 730 также может включать в себя действие определения, как часто оживление провайдера должно впоследствии проверяться. Например, менеджер 103 пространства имен может определять, как часто оживление провайдера 131 должно впоследствии проверяться. Провайдер 103 пространства имен может необязательно подписываться на уведомления о жизнеспособности, публикуемые в тему публикации-подписки провайдера 131, идентифицированную посредством ИД 161. Тема публикации-подписки может идентифицироваться посредством ИД 161. Альтернативно, если подписка на жизнеспособность не выполнена, регистрации присваивается ограниченная во времени аренда. Провайдер 131 может обновить регистрацию до истечения срока аренды посредством непосредственного установления связи с менеджером 103 пространства имен. Также могут использоваться другие механизмы жизнеспособности.
Оживление менеджера пространства имен и провайдера могут распределяться по иерархии. Менеджер пространства имен, расположенный на более высоком уровне в иерархии, может полагаться на другие аналогично расположенные менеджеры пространства имен, чтобы сообщать информацию о жизнеспособности для соответствующих менеджеров пространства имен более низкого уровня и провайдеров. Например, на фиг.1 менеджер 103 пространства имен может отслеживать жизнеспособность менеджера 102 пространства имен (оба являются корневыми менеджерами пространства имен). Менеджер 103 пространства имен может полагаться на менеджера 102 пространства имен, чтобы сообщать о неудачах любых соответствующих менеджеров пространства имен более низкого уровня (например, менеджера 112 пространства имен) или провайдеров (например, провайдера 124). Менеджер 102 пространства имен, в свою очередь, полагается на менеджера 103 пространства имен, чтобы сообщать о неудачах аналогичного типа (например, неудача провайдера 126).
После успешной регистрации (или неудачи) провайдера 131 менеджер 102 пространства имен может послать сообщение, указывающее об успехе (или неудаче), провайдеру 131.
Время от времени потребителям (другим компьютерным системам или устройствам) может потребоваться доступ к ресурсам в ветви пространства имен, которая управляется провайдером. Чтобы получить доступ к ресурсам, потребители могут выдать запросы поиска, чтобы предпринять попытку идентификации ресурсов. Запросы поиска могут приниматься менеджерами пространства имен и доставляться одному или нескольким соответствующим провайдерам. В основном, когда менеджер пространства имен принимает запрос поиска, он маршрутизирует этот запрос поиска менеджеру пространства имен партнера, ближайшему к нему (что определяется некоторой предопределенной метрикой близости) и по направлению к окрестности менеджера пространства имен, ответственного за ветвь пространства имен, заданную в запросе. Так как информации о регистрации реплицируется по менеджерам пространства имен окрестности, запрос поиска может быть выполнен любым менеджером пространства имен в окрестностном множестве.
Маршрутизация через менеджера пространства имен, ближайшего к менеджеру пространства имен, инициирующему запрос поиска, приводит к улучшенной пропускной способности сети и динамическому выравниванию нагрузки, так как запросы поиска автоматически и эффективно разделяются по менеджерам пространства имен окрестности с точки зрения выполнения запроса поиска. Чтобы способствовать маршрутизации, алгоритм отображения ИД пространства имен, заданных в запросах поиска, может быть, по существу, тем же, что и алгоритм отображения ИД пространства имен, заданных в запросах регистрации. Например, взаимно однозначное отображение из области значений идентификации пространства имен на менеджеры пространства имен может использоваться для отображения ИД пространства имен для запросов как поиска, так и регистрации.
На фиг.8А изображена примерная блок-схема последовательности операций способа 810 маршрутизации запроса поиска пространства имен. Способ 810 описывается в отношении инфраструктуры объединения пространств имен по фиг.1 и пространств имен по фиг.6.
Способ 810 включает в себя действие приема запроса поиска пространства имен, который включает в себя идентификатор пространства имен, идентифицирующий ветвь пространства имен (действие 811). Например, менеджер 103 пространства имен может принимать запрос 133 поиска. Запрос 133 поиска может задавать ИД 143 пространства имен, который идентифицирует ветвь дерева 602 пространства имен, такую как, например, Location:/Bldg42/Floor2/ConfRoom 2005.
Способ 810 включает в себя действие генерирования по меньшей мере однонаправленного эквивалентного числового значения идентификации, основанного на идентификаторе пространства имен (действие 812). Например, менеджер 102 пространства имен может хэшировать часть схемы ИД 143 пространства имен вместе с по меньшей мере частью части пути ИД 143 пространства имен для получения хэш-значения 153.
Способ 810 включает в себя действие посылки запроса поиска пространства имен менеджеру пространства имен назначения (действие 813). Менеджер пространства имен назначения, включенный в окрестность менеджеров пространства имен, которые находятся в пределах предопределенного диапазона от менеджера пространства имен, имеющего уникальный идентификатор, в числовом отношении ближайший к по меньшей мере однонаправленному эквивалентному числовому значению идентификации. Чтобы маршрутизировать запрос 133 поиска, может быть, что менеджер 103 пространства имен вызовет функцию RouteProximally (или RouteNumerically). Например, менеджер 103 пространства имен может вызывать RouteProximally(хэш-значение 153, сообщение 133 поиска, критерий P близости) для маршрутизации сообщения 133 поиска менеджеру 102 пространства имен партнера, так как он идентифицируется как менеджер, имеющий уникальный ИД в числовом отношении самый ближайший из числа менеджеров пространства имен, рассматриваемых проксимально близкими к менеджеру 103 пространства имен по заданному критерию Р близости. Из функции RouteProximally может идентифицироваться менеджер 102 пространства имен.
Способ 810 также может включать в себя действие ретрансляции запроса поиска пространства имен для доставки одному или нескольким провайдерам, заинтересованным в ветви пространства имен. Например, менеджер 103 пространства имен может ретранслировать запрос 133 поиска менеджеру 102 пространства имен. Менеджер 102 пространства имен может ретранслировать запрос 133 поиска провайдеру 131.
На фиг.8В изображена примерная блок-схема последовательности операций способа 820 миграции запроса поиска пространства имен. Способ 820 описывается в отношении инфраструктуры объединения пространств имен по фиг.1 и пространств имен по фиг.6.
Способ 820 включает в себя действие приема запроса поиска пространства имен для ветви пространства имен (действие 821). Запрос поиска пространства имен включает в себя уникальный идентификатор пространства имен, который идентифицирует конкретную ветвь пространства имен. Например, идентификатором пространства имен может быть ИД 143 УИДР. Далее, принятый запрос поиска пространства имен необязательно включает в себя по меньшей мере однонаправленное эквивалентное числовое значение идентификации, которое генерировалось на основе идентификатора для заданной ветви пространства имен. Например, может быть, что хэш-значение 153 генерируется из схемы и по меньшей мере части частей пути ИД 143 пространства имен. Идентификатор менеджера пространства имен для менеджера пространства имен ближе к идентификатору ветви пространства имен, чем идентификаторы ветви пространства имен одного или нескольких других менеджеров пространства имен. Менеджер 102 пространства имен может принимать запрос 133 поиска в результате того, что уникальный ИД 172 ближе к хэш-значению 153, чем уникальные идентификаторы (например, ИД 174) других менеджеров пространства имен в инфраструктуре 100 объединения пространств имен.
Способ 820 включает в себя действие обнаружения указания, что ветвь пространства имен мигрировала к другому менеджеру пространства имен, имеющему другой идентификатор ветви пространства имен (действие 822). Например, менеджер 102 пространства имен может обнаружить присутствие заглушки, указывающей, что ветвь пространства имен, представленная посредством ИД 143 пространства имен, мигрировала к менеджеру 101 пространства имен.
Способ 820 также может включать в себя действие по меньшей мере информирования инициирующего менеджера пространства имен, что ветвь пространства имен мигрировала к другому менеджеру пространства имен. Например, менеджер 102 пространства имен может, по меньшей мере, информировать менеджера 103 пространства имен, что мигрировала ветвь пространства имен, представленная посредством ИД 143 пространства имен. Например, менеджер 102 пространства имен может послать сообщение 134 о перенаправлении менеджеру 103 пространства имен, указывающее, что менеджер 103 пространства имен должен установить связь с менеджером 101 пространства имен или инициировать новый запрос 132 поиска для мигрировавшей ветви.
Менеджер 103 пространства имен может руководствоваться инструкциями менеджера 102 пространства имен, которые включены в сообщение о перенаправлении.
Менеджер 102 пространства имен может, альтернативно, сам повторно маршрутизировать запрос 133 поиска посредством вызова RouteProximally(New ID H, запрос 133 поиска, критерий P близости) на себя. Например, New ID H может генерироваться посредством хэширования мигрировавшей ветви пространства имен всего компонента, в противоположность исходному хэш-значению, которое генерировалось посредством хэширования только части схемы и первой части компонента пути. Вызов RouteProximally может вызвать маршрутизацию запроса 133 поиска на другой менеджер пространства имен для доставки менеджеру 101 пространства имен (как указано пунктирной стрелкой, которая включает в себя запрос 133 поиска).
На фиг.8С изображена примерная блок-схема последовательности операций способа 830 обработки запроса поиска пространства имен. Способ 830 описывается в отношении инфраструктуры объединения пространств имен по фиг.1 и пространств имен по фиг.5.
Способ 830 включает в себя действие приема запроса поиска пространства имен, который включает в себя идентификатор пространства имен, идентифицирующий ветвь пространства имен пространства имен (действие 831). Например, менеджер 102 пространства имен может принимать запрос 133 поиска пространства имен, который включает в себя ИД 143 пространства имен. ИД 143 пространства имен может идентифицировать ветвь пространства имен инфраструктуры 500 пространств имен.
Способ 830 включает в себя действие идентификации типа запроса поиска пространства имен запроса поиска пространства имен (действие 832). Например, менеджер 102 пространства имен идентифицирует тип запроса поиска пространства имен запроса 133 поиска. В некоторых вариантах осуществления тип запроса поиска пространства имен может быть типом общего запроса (например, любой ветви пространства имен) или типом целевого запроса (например, конкретной ветви пространства имен).
Способ 830 включает в себя действие обнаружения, что один или несколько провайдеров зарегистрировались на части пространства имен, относящиеся к ветви пространства имен (действие 833). Например, менеджер 102 пространства имен может обнаружить, что один или несколько провайдеров зарегистрировались на части пространства имен, относящиеся к ветви пространства имен, представленной посредством ИД 143 пространства имен. Ссылаясь теперь на фиг.5, если ИД 143 пространства имен является Location:/Corporate Buildings/Bldg 50/Floor 1, могут идентифицироваться провайдеры 501, 502 и 503. Провайдер 502 зарегистрировался на Room 1304 (под Floor 1 в дереве 500 пространства имен), провайдер 502 зарегистрировался на Bldg 50 (над floor 1 в дереве 500 пространства имен), и провайдер 503, который зарегистрировался на Floor 1 в дереве 500 пространства имен.
Способ 830 также может включать в себя действие ретрансляции запроса поиска пространства имен по меньшей мере одному провайдеру, основываясь на идентифицированном типе запроса поиска пространства имен. Например, менеджер 102 пространства имен может ретранслировать запрос 133 поиска одному или нескольким из провайдеров 501, 502 и 503.
Для общего запроса менеджер 102 пространства имен ретранслирует запрос всем провайдерам, ветвью пространства имен регистрации которых является или префикс, или суффикс ветви, заданной в запросе поиска. Например, менеджер 102 пространства имен может ретранслировать запрос 133 поиска пространства имен провайдерам 501, 502 и 503, если ИД 143 пространства имен являлся Location:/Corporate Buildings/Bldg 50/Floor 1. Для целевого запроса менеджер пространства имен ретранслирует запрос только провайдеру, ветвью пространства имен регистрации которого является максимальный префикс ветви, заданной в запросе поиска. Однако как для общего, так и целевого типа, если доступно более одной копии данного провайдера, такого как 501, менеджер 102 пространства имен ретранслирует запрос провайдеру, который ближе к источнику запроса поиска (в данном случае менеджеру 103 пространства имен) при выбранной метрике близости.
Менеджер 103 пространства имен может создать ассоциацию между ветвью пространства имен, представленной посредством ИД 143 пространства имен, и менеджером 102 пространства имен (например, хранящим его в базе данных пространства имен). Такая ассоциация способствует запросам поиска пространства имен, задающим ветвь пространства имен под ветвью, заданной в ассоциации (например, под Location:/Corporate Buildings/Bldg 50/Floor 1), подлежащей ретрансляции вместо маршрутизации менеджеру 102 пространства имен. Ассоциации разрываются, когда или обнаруживается неудача менеджера целевого пространства имен, или получается перенаправление другому менеджеру пространства имен. В первом случае, последующие запросы маршрутизируются до тех пор, пока не сможет быть образована новая ассоциация.
На фиг.9 изображена примерная блок-схема последовательности операций способа 900 участия ресурса в многочисленных пространствах имен. Способ 900 описывается в отношении деревьев пространства имен на фиг.6.
Способ 900 включает в себя действие установления уникального идентификатора ресурса для ресурса (действие 901). Действие 901 может включать в себя установление части пути УИДР, которая соответствует ресурсу. Например, идентификатор “printer 603” может быть установлен для принтера.
Способ 900 включает в себя действие публикации доступности ресурса в первом пространстве имен (действие 902). Например, принтер 603 может опубликовать свою доступность в дереве 601 пространства имен. Способ 900 включает в себя действие связывания уникального идентификатора ресурса с первым ресурсом узла пространства имен в первом пространстве имен, так что может выполняться прохождение первого пространства имен для идентификации ресурса (действие 903). Например, сегмент 631 пространства имен может устанавливаться для связывания принтера 603 с ресурсом “Dev Team” узла пространства имен. Следовательно, может выполняться прохождение дерева 601 пространства имен (и ресурса “Dev Team” узла пространства имен) для идентификации принтера 603.
Способ 900 включает в себя действие публикации доступности ресурса во втором пространстве имен (действие 904). Например, принтер 603 может опубликовать свою доступность в дереве 602 пространства имен. Способ 900 включает в себя действие связывания уникального идентификатора ресурса со вторым ресурсом узла пространства имен во втором пространстве имен, так что может выполняться прохождение второго пространства имен для идентификации ресурса (действие 905). Например, сегмент 632 пространства имен может устанавливаться для связывания принтера 603 с ресурсом “Room 1226” узла пространства имен. Следовательно, также может выполняться прохождение дерева 602 пространства имен (и ресурса “Room 1226” узла пространства имен) для идентификации принтера 603.
На фиг.10 изображена примерная блок-схема последовательности операций способа 1000 идентификации подмножества ресурсов в инфраструктуре объединения пространств имен. Способ 1000 описывается в отношении деревьев пространств имен на фиг.6.
Способ 1000 включает в себя действие приема запроса от устройства (действие 1001). Например, провайдер для дерева 602 пространства имен может принимать запрос от устройства, которое является соединяемым по сети с провайдером. Запрос включает в себя первую часть запроса, идентифицирующую первую часть ресурсов, которые удовлетворяют первым критериям запроса на первом уровне в иерархии пространства имен. Например, первая часть запроса может идентифицировать первую часть ресурсов, которые удовлетворяют первым критериям запроса после прохождения сегмента “Floor 2” пространства имен (в дереве 602 пространства имен). Первой частью ресурсов могут быть, например, служащие, и первые критерии также могут включать в себя, например, включенные в состав “Messaging Team”. Таким образом, первая часть запроса может идентифицировать всех служащих, включенных в состав “Messaging Team”, которые работают на Floor 2 (в Bldg 42). В некоторых вариантах осуществления первые критерии запроса используются для навигации по свойствам ресурсов, которые ссылаются на первую часть ресурсов.
Запрос включает в себя вторую часть запроса, идентифицирующую вторую часть ресурсов, выбранных из числа ресурсов, включенных в первую часть ресурсов. Например, вторая часть запроса может идентифицировать вторую часть ресурсов, которые удовлетворяют вторым критериям запроса после прохождения сегмента “Room 2005” пространства имен (в дереве 602 пространства имен). Второй частью ресурсов могут быть, например, администраторы, и вторыми критериями могут быть, например, устройства. Таким образом, вторая часть запроса может идентифицировать администраторов принтеров с офисными кабинками в Room 2005. В некоторых вариантах осуществления вторые критерии запроса используются для навигации по свойствам первой части ресурсов, которые ссылаются на вторую часть ресурсов.
Следовательно, предоставляя ресурсы, идентифицированные из первой части запроса, в качестве ввода во вторую часть запроса, результаты принятого запроса могут (в зависимости от определений полей в схемах ресурсов) идентифицировать администраторов принтеров с офисами на втором этаже, Room 2005, и включенных в состав Messaging Team.
Способ 1000 включает в себя действие возврата идентификации второй части ресурсов устройству (действие 1002). Например, провайдер дерева 602 пространства имен может возвращать идентификацию администраторов устройств в ConfRoom 2005, которыми владеют служащие Messaging Team на Floor 2, подключаемому к сети устройству.
На фиг.12 изображена примерная блок-схема последовательности действий способа 120 организации множества ресурсов. Способ 1200 описывается в отношении инфраструктуры 600 пространств имен на фиг.6.
Способ 1200 включает в себя действие определения, что новый ресурс должен быть включен в одно или несколько пространств имен, причем каждое из одного или нескольких пространств имен конфигурируется для организации одного или нескольких ресурсов (действие 1201). Например, может определяться, что принтер 603 должен быть включен в пространство 601 имен и/или пространство 602 имен. Способ 1200 включает в себя действие идентификации первого ресурса в первом пространстве имен из одного или нескольких пространства имен, которое должно быть соотнесено с новым ресурсом (действие 1202). Например, может идентифицироваться, что комната 1226 в пространстве 602 имен должна быть соотнесена с принтером 603. Аналогично, может идентифицироваться, что Dev Team в пространстве 601 имен должна быть соотнесена с принтером 603.
Способ 1200 включает в себя действие использования первого сегмента пространства имен для связывания нового ресурса с первым ресурсом, так что может выполняться прохождение сегмента пространства имен для навигации от существующего ресурса к новому ресурсу в пространстве имен (действие 1203). Например, сегмент 632 пространства имен может использоваться для связывания принтера 603 с Room 1226, так что может выполняться прохождение сегмента 632 пространства имен для навигации от Room 1226 к принтеру 603. Аналогично, сегмент 631 пространства имен может использоваться для связывания принтера 603 с Dev Team, так что может выполняться прохождение сегмента 631 пространства имен для навигации от Dev Team к принтеру 603.
Фиг.11 и последующее описание предназначены для того, чтобы предоставить краткое, общее описание примерной подходящей вычислительной среды, в которой может быть реализовано изобретение. Хотя это не требуется (например, при реализации аппаратными средствами), изобретение описывается в общем контексте исполняемых компьютером инструкций, таких как программные модули, исполняемых компьютерными системами. В основном, программные модули включают в себя подпрограммы, программы, объекты, компоненты, структуры данных и т.п., которые выполняют конкретные задачи или реализуют конкретные типы абстрактных данных. Исполняемые компьютером инструкции, ассоциированные структуры данных и программные модули представляют примеры средства программного кода для исполнения действий способов, описанных в данном описании.
С ссылкой на фиг.11 примерная система для реализации изобретения включает в себя вычислительное устройство общего назначения в виде компьютерной системы 1120, включающей в себя блок 1121 обработки, системную память 1122 и системную шину 1123, которая соединяет различные системные компоненты, включая системную память 1122 с блоком 1121 обработки. Блок 1121 обработки может исполнять исполняемые компьютером инструкции, предназначенные для реализации отличительных признаков компьютерной системы 1120, включая отличительные признаки настоящего изобретения. Системная шина 1123 может быть любого из нескольких типов шинных структур, включая шину памяти или контроллер памяти, периферийную шину и локальную шину, используя любые из множества шинных архитектур. Системная память включает в себя постоянное запоминающее устройство (ПЗУ) 1124 и оперативное запоминающее устройство (ОЗУ) 1125. Базовая система 1126 ввода-вывода (БСВВ), содержащая базовые подпрограммы, которые способствуют переносу информации между элементами внутри компьютерной системы 1120, например, во время запуска, может храниться в ПЗУ 1124.
Компьютерная система 1120 также может включать в себя накопитель 1127 на магнитных жестких дисках для считывания и записи на магнитный жесткий диск 1139, накопитель 1128 на магнитных дисках для считывания или записи на съемный магнитный диск 1129 и накопитель 1130 на оптических дисках для считывания или записи на съемный оптический диск 1131, такой как, например, компакт-диск или другой оптический носитель. Накопитель 1127 на магнитных жестких дисках, накопитель 1128 на магнитных дисках и накопитель 1130 на оптических дисках соединены с системной шиной 1123 посредством интерфейса 1132 накопителя на жестких дисках, интерфейса 1133 накопителя на магнитных дисках и интерфейса 1134 накопителя на оптических дисках, соответственно. Накопители и связанные с ними считываемые компьютером носители обеспечивают энергонезависимое хранение исполняемых компьютером инструкций, структур данных, программных модулей и других данных для компьютерной системы 1120. Хотя описанная в данном описании примерная среда использует магнитный жесткий диск 1139, съемный магнитный диск 1129 и съемный оптический диск 1131, могут использоваться другие типы считываемых компьютером носителей для хранения данных, включая магнитные кассеты, карты флэш-памяти, цифровые многофункциональные диски, картриджи Бернулли, ОЗУ, ПЗУ и т.п.
Средство программного кода, содержащее один или несколько программных модулей, может храниться на жестком диске 1139, магнитном диске 1129, оптическом диске 1131, в ПЗУ 1124 или ОЗУ 1125, включая операционную систему 1135, одну или несколько программ 1136 приложений, другие программные модули 1137 и программные данные 1138. Пользователь может вводить команды и информацию в компьютерную систему 1120 при помощи клавиатуры 1140, указательного устройства 1142 или других устройств ввода (не показаны), таких как, например, микрофон, джойстик, игровой планшет, сканер или т.п. Эти и другие устройства ввода могут подключаться к блоку 1121 обработки через интерфейс 1146 ввода-вывода, соединенный с системной шиной 1123. Интерфейс 1146 ввода-вывода логически представляет любой из большого разнообразия различных интерфейсов, таких как, например, интерфейс последовательного порта, интерфейс PS/2, интерфейс параллельного порта, интерфейс универсальной последовательной шины (УПШ) или интерфейс 1394 Института инженеров по электротехнике и радиоэлектронике («ИИЭР») (т.е. интерфейс FireWire), или даже может логически представлять комбинацию различных интерфейсов.
Монитор 1147 или другое устройство отображения также может подключаться к системной шине 1123 через видеоинтерфейс 1148. Громкоговорители 1169 или другое устройство вывода звука также подключаются к системной шине 1123 через звуковой интерфейс 1149. Другие периферийные устройства вывода (не показаны), такие как, например, принтеры, также могут подключаться к компьютерной системе 1120.
Компьютерная система 1120 может подключаться к сетям, таким как, например, компьютерная сеть масштаба офиса или масштаба предприятия, домашняя сеть, интрасеть и/или Интернет. Компьютерная система 1120 может обмениваться данными с внешними источниками, такими как, например, удаленные компьютерные системы, удаленные приложения и/или удаленные базы данных, по таким сетям.
Компьютерная система 1120 включает в себя сетевой интерфейс 1153, через который компьютерная система 1120 принимает данные от внешних источников и/или передает данные внешним источникам. Как изображено на фиг.11, сетевой интерфейс 1153 способствует обмену данными с удаленной компьютерной системой 1183 по каналу 1151 связи. Сетевой интерфейс 1153 логически может представлять один или несколько программных и/или аппаратных модулей, таких как, например, плата сетевого интерфейса и соответствующий стек спецификации интерфейса сетевых драйверов (СИСД). Канал 1151 связи представляет часть сети (например, сегмент Эзернет), и удаленная компьютерная система 1183 представляет компьютерную систему сети.
Аналогично, компьютерная система 1120 включает в себя интерфейс 1146 ввода-вывода, через который компьютерная система 1120 принимает данные от внешних источников и/или передает данные внешним источникам. Интерфейс 446 ввода-вывода соединен с модемом 454 (например, стандартным модемом, кабельным модемом или модемом цифровой абонентской линии («ЦАЛ»)) при помощи канала 459 связи, по которому компьютерная система 1120 принимает данные и/или передает данные на внешние источники. Как изображено на фиг.11, интерфейс 1146 ввода-вывода и модем 1154 способствуют обмену данными с удаленной компьютерной системой 1193 по каналу 1152 связи. Канал 1152 связи представляет часть сети, и удаленная компьютерная система 1193 представляет компьютерную систему сети.
Хотя фиг.11 представляет подходящую операционную среду для настоящего изобретения, принципы настоящего изобретения могут использоваться в любой системе, которая способна, при подходящей модификации, если это необходимо, реализовать принципы настоящего изобретения. Среда, изображенная на фиг.11, является исключительно иллюстративной и никоим образом не представляет даже малую часть из множества сред, в которых могут быть реализованы принципы настоящего изобретения.
Согласно настоящему изобретению менеджеры пространства имен, провайдеры и ресурсы, а также ассоциированные данные, включая базы данных пространства имен, идентификаторы и строки пространства имен, хэш-значения, идентификаторы ресурса, таблицы маршрутизации и деревья пространства имен могут запоминаться и к ним может выполняться доступ с любого считываемого компьютером носителя, связанного с компьютерной системой 1120. Например, части таких модулей и части ассоциированных программных данных могут быть включены в операционную систему 1135, программы 1136 приложений, программные модули 1137 и/или программные данные 1138 для хранения в системной памяти 1122.
Когда массовое запоминающее устройство, такое как, например, магнитный жесткий диск 1139, подключен к компьютерной системе 1120, такие модули и ассоциированные программные данные также могут запоминаться в массовом запоминающем устройстве. В сетевой среде программные модули, изображенные относящимися к компьютерной системе 1120, или частям ее, могут запоминаться в удаленных запоминающих устройствах, таких как системная память и/или массовые запоминающие устройства, связанные с удаленной компьютерной системой 1183 и/или удаленной компьютерной системой 1193. Исполнение таких модулей может выполняться в распределенной среде, как ранее описано.
Настоящее изобретение может осуществляться в других конкретных формах без отступления от его сущности или его важных характеристик. Описанные варианты осуществления должны рассматриваться во всех отношениях только как иллюстративные и не ограничительные. Объем изобретения, поэтому, выражается прилагаемой формулой изобретения, а не вышеприведенным описанием. Все изменения, которые охватываются значением и объемом эквивалентности формулы изобретения, должны быть включены в ее объем.

Claims (15)

1. В инфраструктуре объединения пространств имен способ регистрации ресурса во множестве пространств имен, причем упомянутый ресурс является доступным через проходимый путь пространства имен в каждом из различных пространств имен, причем пространства имен содержат различные схемы коммуникации сети, и по меньшей мере две из упомянутых схем имеют различный синтаксис идентификации ресурсов в конкретном пространстве имен, при этом способ содержит:
действие установления уникального идентификатора ресурса для ресурса, причем упомянутый ресурс является идентифицируемым во множестве различных пространств имен с использованием уникального идентификатора ресурсов, причем каждое пространство имен в упомянутом множестве пространств имен содержит отличающуюся схему коммуникации сети, а уникальный идентификатор ресурсов является уникальным в отношении всей совокупности пространств имен, входящих в инфраструктуру объединения пространств, и ресурс является доступным через проходимый путь пространства имен;
действие публикации доступности ресурса в первом пространстве имен, имеющем первую схему коммуникации сети;
действие связывания уникального идентификатора ресурса с первым ресурсом узла пространства имен в первом пространстве имен, причем для идентификации ресурса может выполняться прохождение первого пространства имен с использованием синтаксиса первой схемы коммуникации сети;
действие прохождения проходимого пути пространства имен в первом пространстве имен для обнаружения ресурса, опубликованного в первом пространстве имен, причем упомянутое прохождение содержит навигацию к одному или более ресурсам узлов пространства имен в первом пространстве имен для определения местоположения ресурса в первом пространстве имен;
действие публикации доступности ресурса во втором пространстве имен, имеющем вторую схему коммуникации сети, при этом упомянутая публикация содержит широковещательную рассылку извещения для извещения по меньшей мере множества узлов во втором пространстве имен о присутствии ресурса во втором пространстве имен;
действие связывания уникального идентификатора ресурса с ресурсом узла второго пространства имен во втором пространстве имен, причем для идентификации ресурса может выполняться прохождение второго пространства имен с использованием синтаксиса второй схемы коммуникации сети; и
действие прохождения проходимого пути пространства имен из любого узла во втором пространстве имен, который принял упомянутую широковещательную рассылку извещения о доступности ресурса для обнаружения ресурса, опубликованного во втором пространстве имен, причем упомянутое прохождение содержит навигацию к одному или более ресурсам узлов пространства имен во втором пространстве имен для определения местоположения ресурса во втором пространстве имен.
2. Способ по п.1, в котором действие публикации доступности ресурса в первом пространстве имен содержит действие публикации доступности ресурса в первом пространстве имен из числа множества пространств имен, которые разделяют ресурсы для обеспечения основания для деления на области действия пространства имен.
3. Способ по п.1, в котором действие публикации доступности ресурса в первом пространстве имен содержит действие публикации доступности ресурса в первом пространстве имен, имеющем начальный ресурс узла пространства имен, который может запрашиваться другими ресурсами для идентификации ресурса в пространстве имен.
4. Способ по п.1, в котором действие связывания уникального идентификатора ресурса с первым ресурсом узла пространства имен в первом пространстве имен, так что может выполняться прохождение первого пространства имен для идентификации ресурса, содержит действие ассоциации УИДР с ресурсом.
5. Способ по п.4, в котором действие ассоциации УИДР для первого пространства имен с ресурсом содержит действие присваивания уникального УИДР ресурсу, так что уникальный УИДР может использоваться для доступа к ресурсу единственным образом.
6. Способ по п.5, дополнительно содержащий:
действие присваивания одного или нескольких дополнительных УИДР ресурсу, причем каждый из одного или нескольких дополнительных УИДР служит для доступа к новым ресурсам из одного из множества пространств имен.
7. Способ по п.1, в котором действие связывания уникального идентификатора ресурса с первым ресурсом узла пространства имен в первом пространстве имен, так что может выполняться прохождение первого пространства имен для идентификации ресурса, содержит действие формирования сегмента пространства имен между ресурсом и первым ресурсом узла пространства имен.
8. Способ по п.1, в котором действие публикации доступности ресурса во втором пространстве имен содержит действие публикации доступности ресурса во втором пространстве имен из числа множества пространств имен, которые разделяют ресурсы для обеспечения основы для деления на области действия пространства имен.
9. Способ по п.1, в котором действие публикации доступности ресурса во втором пространстве имен содержит действие публикации доступности ресурса во втором пространстве имен, имеющем начальный ресурс узла пространства имен, который может запрашиваться другими ресурсами для идентификации ресурса в пространстве имен.
10. Способ по п.1, в котором действие связывания уникального идентификатора ресурса со вторым ресурсом узла пространства имен во втором пространстве имен, так что может выполняться прохождение второго пространства имен для идентификации ресурса, содержит действие ассоциации УИДР для второго пространства имен с ресурсом.
11. Способ по п.1, в котором действие связывания уникального идентификатора ресурса со вторым ресурсом узла пространства имен во втором пространстве имен, так что может выполняться прохождение второго пространства имен для идентификации ресурса, содержит действие формирования сегмента пространства имен между ресурсом и вторым ресурсом узла пространства имен.
12. Способ по п.1, в котором ресурсом является ресурс узла пространства имен.
13. Машиночитаемый носитель, содержащий инструкции, которые при исполнении их компьютером приводят к осуществлению упомянутым компьютером способа регистрации ресурса во множестве пространств имен для использования в инфраструктуре объединения пространств имен, причем упомянутый ресурс является доступным через проходимый путь пространства имен в каждом из различных пространств имен, причем пространства имен содержат различные схемы коммуникации сети, и по меньшей мере две из упомянутых схем имеют различный синтаксис идентификации ресурсов в конкретном пространстве имен,
при этом способ содержит:
действие установления уникального идентификатора ресурса для ресурса, причем упомянутый ресурс является идентифицируемым во множестве различных пространств имен с использованием уникального идентификатора ресурсов, причем каждое пространство имен в упомянутом множестве пространств имен содержит отличающуюся схему коммуникации сети, а уникальный идентификатор ресурсов является уникальным в отношении всей совокупности пространств имен, входящих в инфраструктуру объединения пространств, и ресурс является доступным через проходимый путь пространства имен;
действие публикации доступности ресурса в первом пространстве имен, имеющем первую схему коммуникации сети;
действие связывания уникального идентификатора ресурса с первым ресурсом узла пространства имен в первом пространстве имен, причем для идентификации ресурса может выполняться прохождение первого пространства имен с использованием синтаксиса первой схемы коммуникации сети;
действие прохождения проходимого пути пространства имен в первом пространстве имен для обнаружения ресурса, опубликованного в первом пространстве имен, причем упомянутое прохождение содержит навигацию к одному или более ресурсам узлов пространства имен в первом пространстве имен для определения местоположения ресурса в первом пространстве имен;
действие публикации доступности ресурса во втором пространстве имен, имеющем вторую схему коммуникации сети, при этом упомянутая публикация содержит широковещательную рассылку извещения для извещения по меньшей мере множества узлов во втором пространстве имен о присутствии ресурса во втором пространстве имен;
действие связывания уникального идентификатора ресурса с ресурсом узла второго пространства имен во втором пространстве имен, причем для идентификации ресурса может выполняться прохождение второго пространства имен с использованием синтаксиса второй схемы коммуникации сети; и
действие прохождения проходимого пути пространства имен из любого узла во втором пространстве имен, который принял упомянутую широковещательную рассылку извещения о доступности ресурса для обнаружения ресурса, опубликованного во втором пространстве имен, причем упомянутое прохождение содержит навигацию к одному или более ресурсам узлов пространства имен во втором пространстве имен для определения местоположения ресурса во втором пространстве имен.
14. Машиночитаемый носитель по п.13, в котором исполняемые компьютером инструкции, которые при исполнении вызывают связывание инфраструктурой объединения пространств имен уникального идентификатора ресурса с первым ресурсом узла пространства имен в первом пространстве имен, содержат исполняемые компьютером инструкции, которые при исполнении вызывают формирование инфраструктурой объединения пространств имен сегмента пространства имен между ресурсом и первым ресурсом узла пространства имен.
15. Машиночитаемый носитель по п.13, в котором исполняемые компьютером инструкции, которые при исполнении вызывают связывание инфраструктурой объединения пространств имен уникального идентификатора ресурса со вторым ресурсом узла пространства имен во втором пространстве имен, содержат исполняемые компьютером инструкции, которые при исполнении вызывают формирование инфраструктурой объединения пространств имен сегмента пространства имен между ресурсом и вторым ресурсом узла пространства имен.
RU2005130350/08A 2004-09-30 2005-09-29 Организация ресурсов в коллекции, способствующая более эффективному и надежному доступу к ресурсам RU2409846C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/956,472 2004-09-30
US10/956,472 US7613703B2 (en) 2004-09-30 2004-09-30 Organizing resources into collections to facilitate more efficient and reliable resource access

Publications (2)

Publication Number Publication Date
RU2005130350A RU2005130350A (ru) 2007-04-10
RU2409846C2 true RU2409846C2 (ru) 2011-01-20

Family

ID=35593841

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2005130350/08A RU2409846C2 (ru) 2004-09-30 2005-09-29 Организация ресурсов в коллекции, способствующая более эффективному и надежному доступу к ресурсам

Country Status (10)

Country Link
US (6) US7613703B2 (ru)
EP (1) EP1643730B1 (ru)
JP (1) JP4879547B2 (ru)
KR (1) KR101153014B1 (ru)
CN (1) CN100578494C (ru)
AU (1) AU2005203695A1 (ru)
BR (1) BRPI0504205A (ru)
CA (2) CA2833834C (ru)
MX (1) MXPA05009679A (ru)
RU (1) RU2409846C2 (ru)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2454711C1 (ru) * 2011-04-04 2012-06-27 Общество с ограниченной ответственностью "СДН-видео" Способ распределения нагрузки между серверами сети доставки контента (cdn)
RU2606305C2 (ru) * 2014-07-23 2017-01-10 Сяоми Инк. Способ и устройство для совместного использования ресурсов
RU2756482C2 (ru) * 2014-06-26 2021-09-30 Гугл Инк. Оптимизированный процесс воспроизведения браузера
US11328114B2 (en) 2014-06-26 2022-05-10 Google Llc Batch-optimized render and fetch architecture

Families Citing this family (120)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7603349B1 (en) 2004-07-29 2009-10-13 Yahoo! Inc. User interfaces for search systems using in-line contextual queries
US7958115B2 (en) * 2004-07-29 2011-06-07 Yahoo! Inc. Search systems and methods using in-line contextual queries
US7421441B1 (en) 2005-09-20 2008-09-02 Yahoo! Inc. Systems and methods for presenting information based on publisher-selected labels
US7856441B1 (en) 2005-01-10 2010-12-21 Yahoo! Inc. Search systems and methods using enhanced contextual queries
US7409402B1 (en) * 2005-09-20 2008-08-05 Yahoo! Inc. Systems and methods for presenting advertising content based on publisher-selected labels
US7571464B2 (en) * 2004-08-27 2009-08-04 International Business Machines Corporation Secure bidirectional cross-system communications framework
US7640299B2 (en) * 2004-09-30 2009-12-29 Microsoft Corporation Optimizing communication using scaleable peer groups
US20070133520A1 (en) * 2005-12-12 2007-06-14 Microsoft Corporation Dynamically adapting peer groups
US7613703B2 (en) 2004-09-30 2009-11-03 Microsoft Corporation Organizing resources into collections to facilitate more efficient and reliable resource access
US8014321B2 (en) * 2004-10-22 2011-09-06 Microsoft Corporation Rendezvousing resource requests with corresponding resources
US20060090003A1 (en) * 2004-10-22 2006-04-27 Microsoft Corporation Rendezvousing resource requests with corresponding resources
US20110082928A1 (en) 2004-10-22 2011-04-07 Microsoft Corporation Maintaining consistency within a federation infrastructure
US8095601B2 (en) * 2004-10-22 2012-01-10 Microsoft Corporation Inter-proximity communication within a rendezvous federation
US20080288659A1 (en) 2006-11-09 2008-11-20 Microsoft Corporation Maintaining consistency within a federation infrastructure
US8392515B2 (en) * 2004-10-22 2013-03-05 Microsoft Corporation Subfederation creation and maintenance in a federation infrastructure
US8549180B2 (en) 2004-10-22 2013-10-01 Microsoft Corporation Optimizing access to federation infrastructure-based resources
US8095600B2 (en) 2004-10-22 2012-01-10 Microsoft Corporation Inter-proximity communication within a rendezvous federation
US20060168320A1 (en) * 2004-12-30 2006-07-27 Kidd Nelson F Network topology discovery service
US20070005746A1 (en) * 2005-06-30 2007-01-04 Roe Bryan Y Enhanced network discovery service
US8117443B1 (en) * 2005-10-05 2012-02-14 Oracle America, Inc. Method and apparatus for generating location independent unique identifiers
US9146789B2 (en) 2006-03-21 2015-09-29 Oracle America, Inc. Method and apparatus for generating and using location-independent distributed object references
ES2308624T3 (es) * 2006-04-04 2008-12-01 MULLER MARKEN GMBH &amp; CO. BETRIEBS-KG Verificacion automatica de datos de contacto de messenger.
US7849069B2 (en) * 2006-06-21 2010-12-07 International Business Machines Corporation Method and system for federated resource discovery service in distributed systems
US7827407B2 (en) * 2006-06-29 2010-11-02 Microsoft Corporation Scoped federations
EP1876788B1 (en) * 2006-07-07 2008-11-05 Alcatel Lucent Distributed Hashing Mechanism for self-organizing networks
US7860882B2 (en) * 2006-07-08 2010-12-28 International Business Machines Corporation Method and system for distributed retrieval of data objects using tagged artifacts within federated protocol operations
US7676586B2 (en) * 2006-10-05 2010-03-09 Microsoft Corporation Hierarchical federation metadata
US8234640B1 (en) 2006-10-17 2012-07-31 Manageiq, Inc. Compliance-based adaptations in managed virtual systems
US8949825B1 (en) 2006-10-17 2015-02-03 Manageiq, Inc. Enforcement of compliance policies in managed virtual systems
US8234641B2 (en) 2006-10-17 2012-07-31 Managelq, Inc. Compliance-based adaptations in managed virtual systems
US9038062B2 (en) * 2006-10-17 2015-05-19 Manageiq, Inc. Registering and accessing virtual systems for use in a managed system
US8458695B2 (en) 2006-10-17 2013-06-04 Manageiq, Inc. Automatic optimization for virtual systems
US9697019B1 (en) 2006-10-17 2017-07-04 Manageiq, Inc. Adapt a virtual machine to comply with system enforced policies and derive an optimized variant of the adapted virtual machine
US9086917B1 (en) 2006-10-17 2015-07-21 Manageiq, Inc. Registering and accessing virtual systems for use in a managed system
US8612971B1 (en) 2006-10-17 2013-12-17 Manageiq, Inc. Automatic optimization for virtual systems
US8752045B2 (en) * 2006-10-17 2014-06-10 Manageiq, Inc. Methods and apparatus for using tags to control and manage assets
US8949826B2 (en) 2006-10-17 2015-02-03 Managelq, Inc. Control and management of virtual systems
US9015703B2 (en) 2006-10-17 2015-04-21 Manageiq, Inc. Enforcement of compliance policies in managed virtual systems
US8312046B1 (en) * 2007-02-28 2012-11-13 Netapp, Inc. System and method for enabling a data container to appear in a plurality of locations in a super-namespace
DE102007026242A1 (de) * 2007-05-30 2008-12-11 Carad Beteiligungen Gmbh Datenspeichereinrichtung
US7886301B2 (en) * 2007-06-29 2011-02-08 Microsoft Corporation Namespace merger
US8887297B2 (en) 2007-07-13 2014-11-11 Microsoft Corporation Creating and validating cryptographically secured documents
US8452789B2 (en) * 2007-10-15 2013-05-28 International Business Machines Corporation Searching a database
US8407688B2 (en) 2007-11-27 2013-03-26 Managelq, Inc. Methods and apparatus for storing and transmitting historical configuration data associated with information technology assets
US8418173B2 (en) 2007-11-27 2013-04-09 Manageiq, Inc. Locating an unauthorized virtual machine and bypassing locator code by adjusting a boot pointer of a managed virtual machine in authorized environment
US20090187978A1 (en) * 2008-01-18 2009-07-23 Yahoo! Inc. Security and authentications in peer-to-peer networks
JP5243804B2 (ja) * 2008-01-21 2013-07-24 インターナショナル・ビジネス・マシーンズ・コーポレーション 構成要素を管理するためのコンピュータ・システム、並びにその方法及びコンピュータ・プログラム
US8051080B2 (en) * 2008-04-16 2011-11-01 Yahoo! Inc. Contextual ranking of keywords using click data
US8515994B2 (en) * 2008-06-12 2013-08-20 International Business Machines Corporation Reaching resource neighborhoods
US7526554B1 (en) 2008-06-12 2009-04-28 International Business Machines Corporation Systems and methods for reaching resource neighborhoods
US8370417B2 (en) * 2008-06-30 2013-02-05 Motorola Solutions, Inc. Method for peer to peer subscriber registration and affiliation
US20100185652A1 (en) * 2009-01-16 2010-07-22 International Business Machines Corporation Multi-Dimensional Resource Fallback
US7953896B2 (en) * 2009-05-27 2011-05-31 Microsoft Corporation Managing user accounts and groups in multiple forests
US8086633B2 (en) 2009-08-27 2011-12-27 International Business Machines Corporation Unified user identification with automatic mapping and database absence handling
US8341269B2 (en) * 2010-03-19 2012-12-25 International Business Machines Corporation Configuring cloud resources
US8751655B2 (en) * 2010-03-29 2014-06-10 International Business Machines Corporation Collective acceleration unit tree structure
US8473515B2 (en) * 2010-05-10 2013-06-25 International Business Machines Corporation Multi-tenancy in database namespace
US8676848B2 (en) 2010-06-09 2014-03-18 International Business Machines Corporation Configuring cloud resources
JP2012029244A (ja) * 2010-07-27 2012-02-09 Ricoh Co Ltd 通信装置、通信システム、通信方法、プログラムおよび記憶媒体
US8738673B2 (en) * 2010-09-03 2014-05-27 International Business Machines Corporation Index partition maintenance over monotonically addressed document sequences
US9779168B2 (en) 2010-10-04 2017-10-03 Excalibur Ip, Llc Contextual quick-picks
EP2445239B1 (en) * 2010-10-22 2018-10-31 BlackBerry Limited Method and system for identifying an entity in a mobile telecommunications system
US8578268B2 (en) * 2010-12-30 2013-11-05 Konica Minolta Laboratory U.S.A., Inc. Rendering electronic documents having linked textboxes
US8538926B2 (en) 2011-03-08 2013-09-17 Rackspace Us, Inc. Massively scalable object storage system for storing object replicas
US8554951B2 (en) 2011-03-08 2013-10-08 Rackspace Us, Inc. Synchronization and ordering of multiple accessess in a distributed system
US8712975B2 (en) 2011-03-08 2014-04-29 Rackspace Us, Inc. Modification of an object replica
US8510267B2 (en) * 2011-03-08 2013-08-13 Rackspace Us, Inc. Synchronization of structured information repositories
US8725681B1 (en) * 2011-04-23 2014-05-13 Infoblox Inc. Synthesized identifiers for system information database
US8549010B2 (en) 2011-05-13 2013-10-01 Nokia Corporation Method and apparatus for providing distributed key range management
US8510807B1 (en) * 2011-08-16 2013-08-13 Edgecast Networks, Inc. Real-time granular statistical reporting for distributed platforms
US8930320B2 (en) * 2011-09-30 2015-01-06 Accenture Global Services Limited Distributed computing backup and recovery system
US10277421B2 (en) * 2011-10-31 2019-04-30 Extreme Networks, Inc. Route lookup resolution
US9628438B2 (en) * 2012-04-06 2017-04-18 Exablox Consistent ring namespaces facilitating data storage and organization in network infrastructures
US8805880B2 (en) 2012-08-01 2014-08-12 International Business Machines Corporation Establishment, optimization, and routing of remote transitive name space access
US9438499B2 (en) * 2012-09-06 2016-09-06 Intel Corporation Approximation of the physical location of devices and transitive device discovery through the sharing of neighborhood information using wireless or wired discovery mechanisms
US8769105B2 (en) 2012-09-14 2014-07-01 Peaxy, Inc. Software-defined network attachable storage system and method
US8832254B1 (en) * 2012-10-29 2014-09-09 Symantec Corporation Systems and methods for managing registration and discovery of URI schemes
US20140188815A1 (en) * 2013-01-03 2014-07-03 Amazon Technologies, Inc Annotation of Resources in a Distributed Execution Environment
US9407583B2 (en) * 2013-03-15 2016-08-02 Red Hat, Inc. Handling unavailable destinations in a messaging network
US9112824B2 (en) 2013-03-15 2015-08-18 Red Hat, Inc. Forwarding multicast messages in a messaging network
US9552382B2 (en) 2013-04-23 2017-01-24 Exablox Corporation Reference counter integrity checking
EP3008647A4 (en) 2013-06-12 2017-01-25 Exablox Corporation Hybrid garbage collection
JP2015001784A (ja) * 2013-06-13 2015-01-05 富士通株式会社 情報処理システム、情報処理装置、及び情報処理プログラム
CA2820492A1 (en) * 2013-06-18 2014-12-18 El Fresko Technologies Limited Namespace transformations
US9715521B2 (en) 2013-06-19 2017-07-25 Storagecraft Technology Corporation Data scrubbing in cluster-based storage systems
US9934242B2 (en) 2013-07-10 2018-04-03 Exablox Corporation Replication of data between mirrored data sites
US9887924B2 (en) 2013-08-26 2018-02-06 Vmware, Inc. Distributed policy-based provisioning and enforcement for quality of service
US9811531B2 (en) 2013-08-26 2017-11-07 Vmware, Inc. Scalable distributed storage architecture
US10747475B2 (en) 2013-08-26 2020-08-18 Vmware, Inc. Virtual disk blueprints for a virtualized storage area network, wherein virtual disk objects are created from local physical storage of host computers that are running multiple virtual machines
US11016820B2 (en) 2013-08-26 2021-05-25 Vmware, Inc. Load balancing of resources
US10536545B2 (en) * 2013-09-27 2020-01-14 Oracle International Corporation Cloud database connection multiplexing
US10248556B2 (en) 2013-10-16 2019-04-02 Exablox Corporation Forward-only paged data storage management where virtual cursor moves in only one direction from header of a session to data field of the session
US9985829B2 (en) 2013-12-12 2018-05-29 Exablox Corporation Management and provisioning of cloud connected devices
US9774582B2 (en) 2014-02-03 2017-09-26 Exablox Corporation Private cloud connected device cluster architecture
WO2015120071A2 (en) 2014-02-04 2015-08-13 Exablox Corporation Content based organization of file systems
US10812313B2 (en) * 2014-02-24 2020-10-20 Netapp, Inc. Federated namespace of heterogeneous storage system namespaces
US9800519B2 (en) 2014-08-21 2017-10-24 Microsoft Technology Licensing, Llc Equitable sharing of system resources in workflow execution
US10887249B2 (en) * 2014-08-29 2021-01-05 Hewlett Packard Enterprise Development Lp Resource trees by management controller
US9311811B1 (en) 2014-10-08 2016-04-12 Google Inc. Alarm profile for a fabric network
US10963430B2 (en) 2015-04-01 2021-03-30 Dropbox, Inc. Shared workspaces with selective content item synchronization
US9922201B2 (en) * 2015-04-01 2018-03-20 Dropbox, Inc. Nested namespaces for selective content sharing
US10001913B2 (en) 2015-04-01 2018-06-19 Dropbox, Inc. Shared workspaces with selective content item synchronization
US20170060924A1 (en) 2015-08-26 2017-03-02 Exablox Corporation B-Tree Based Data Model for File Systems
US10140122B2 (en) 2015-09-23 2018-11-27 Hanan Potash Computer processor with operand/variable-mapped namespace
US9571573B1 (en) 2015-10-29 2017-02-14 Dropbox, Inc. Peer-to-peer synchronization protocol for multi-premises hosting of digital content items
US10691718B2 (en) 2015-10-29 2020-06-23 Dropbox, Inc. Synchronization protocol for multi-premises hosting of digital content items
US9537952B1 (en) 2016-01-29 2017-01-03 Dropbox, Inc. Apparent cloud access for hosted content items
US10757266B2 (en) * 2016-03-28 2020-08-25 Aiphone Co., Ltd. Terminal device, and intercom system provided with terminal device
US11093286B2 (en) * 2016-04-26 2021-08-17 Hanan Potash Computing device with resource manager and civilware tier
US9846553B2 (en) 2016-05-04 2017-12-19 Exablox Corporation Organization and management of key-value stores
US10721275B2 (en) * 2017-01-23 2020-07-21 Fireeye, Inc. Automated enforcement of security policies in cloud and hybrid infrastructure environments
US10812570B1 (en) * 2017-08-02 2020-10-20 Intuit Inc. System for data consolidation across disparate namespaces
US10686844B2 (en) * 2018-01-17 2020-06-16 International Business Machines Corporation Trusted group identification code
US10705856B2 (en) * 2018-03-28 2020-07-07 Ebay Inc. Network address management systems and methods
US10885018B2 (en) 2018-05-07 2021-01-05 Microsoft Technology Licensing, Llc Containerization for elastic and scalable databases
DE102018113082A1 (de) * 2018-05-31 2019-12-05 Atos Information Technology GmbH System von dynamisch verwalteten / selbstorganisierenden Objektnetzwerken
US10735369B2 (en) 2018-06-22 2020-08-04 Microsoft Technology Licensing, Llc Hierarchical namespace service with distributed name resolution caching and synchronization
WO2021001667A1 (en) * 2019-07-01 2021-01-07 Citrix Systems, Inc. Systems and methods for using namespaces to access computing resources
US11290531B2 (en) 2019-12-04 2022-03-29 Dropbox, Inc. Immediate cloud content item creation from local file system interface
US11955184B2 (en) 2022-05-10 2024-04-09 Sandisk Technologies Llc Memory cell group read with compensation for different programming speeds

Family Cites Families (92)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5483652A (en) * 1994-01-24 1996-01-09 Digital Equipment Corporation Mechanism for locating without search discrete application resources known by common name only in a distributed network computing environment
US5692180A (en) * 1995-01-31 1997-11-25 International Business Machines Corporation Object-oriented cell directory database for a distributed computing environment
CA2179337C (en) * 1995-08-22 2000-11-14 Thomas F. Laporta Network-based migrating user agents for personal communication services
US5831975A (en) * 1996-04-04 1998-11-03 Lucent Technologies Inc. System and method for hierarchical multicast routing in ATM networks
US5704407A (en) 1996-09-16 1998-01-06 Hamby, Jr.; Thomas E. Tree delimbing device
AT1751U1 (de) 1996-09-30 1997-10-27 Kuehn Eva Koordinations-system
US5893116A (en) * 1996-09-30 1999-04-06 Novell, Inc. Accessing network resources using network resource replicator and captured login script for use when the computer is disconnected from the network
US6353929B1 (en) 1997-06-23 2002-03-05 One River Worldtrek, Inc. Cooperative system for measuring electronic media
US6061743A (en) * 1998-02-19 2000-05-09 Novell, Inc. Method and apparatus for aggregating disparate namespaces
US6665702B1 (en) * 1998-07-15 2003-12-16 Radware Ltd. Load balancing
US6381627B1 (en) * 1998-09-21 2002-04-30 Microsoft Corporation Method and computer readable medium for discovering master DNS server computers for a given domain name in multiple master and multiple namespace configurations
US6411966B1 (en) * 1998-09-21 2002-06-25 Microsoft Corporation Method and computer readable medium for DNS dynamic update to minimize client-server and incremental zone transfer traffic
US6701415B1 (en) * 1999-03-31 2004-03-02 America Online, Inc. Selecting a cache for a request for information
EP1052802B1 (de) 1999-05-11 2005-02-02 LANCOM Systems GmbH Verfahren zur Kopplung von NetBIOS Netzwerken und Rechnern
US6546415B1 (en) * 1999-05-14 2003-04-08 Lucent Technologies Inc. Network management system using a distributed namespace
US6553423B1 (en) * 1999-05-27 2003-04-22 Cisco Technology, Inc. Method and apparatus for dynamic exchange of capabilities between adjacent/neighboring networks nodes
US6505244B1 (en) 1999-06-29 2003-01-07 Cisco Technology Inc. Policy engine which supports application specific plug-ins for enforcing policies in a feedback-based, adaptive data network
US7065784B2 (en) * 1999-07-26 2006-06-20 Microsoft Corporation Systems and methods for integrating access control with a namespace
US7463648B1 (en) 1999-08-23 2008-12-09 Sun Microsystems, Inc. Approach for allocating resources to an apparatus based on optional resource requirements
US6826182B1 (en) 1999-12-10 2004-11-30 Nortel Networks Limited And-or multi-cast message routing method for high performance fault-tolerant message replication
US6807423B1 (en) 1999-12-14 2004-10-19 Nortel Networks Limited Communication and presence spanning multiple access networks
WO2001067679A1 (fr) 2000-03-10 2001-09-13 Shenzhen Liming Network Systems Co., Ltd. Plate-forme de commutateur d'informations
EP1139602A1 (en) 2000-03-31 2001-10-04 Lucent Technologies Inc. Method and device for multicasting
WO2001098936A2 (en) 2000-06-22 2001-12-27 Microsoft Corporation Distributed computing services platform
US7379994B2 (en) 2000-10-26 2008-05-27 Metilinx Aggregate system resource analysis including correlation matrix and metric-based analysis
US7072982B2 (en) * 2000-11-22 2006-07-04 Microsoft Corporation Universal naming scheme for peer to peer resources
US6965575B2 (en) 2000-12-29 2005-11-15 Tropos Networks Selection of routing paths based upon path quality of a wireless mesh network
AU2002243522A1 (en) 2001-01-12 2002-07-24 Epicrealm Operating Inc. Method and system for community data caching
US7188145B2 (en) * 2001-01-12 2007-03-06 Epicrealm Licensing Llc Method and system for dynamic distributed data caching
WO2002057917A2 (en) * 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
US6956821B2 (en) 2001-01-30 2005-10-18 Telefonaktiebolaget L M Ericsson (Publ) Path determination in a data network
US7062563B1 (en) 2001-02-28 2006-06-13 Oracle International Corporation Method and system for implementing current user links
US20020184368A1 (en) * 2001-04-06 2002-12-05 Yunsen Wang Network system, method and protocols for hierarchical service and content distribution via directory enabled network
US7209973B2 (en) 2001-04-09 2007-04-24 Swsoft Holdings, Ltd. Distributed network data storage system and method
US20030018701A1 (en) 2001-05-04 2003-01-23 Gregory Kaestle Peer to peer collaboration for supply chain execution and management
US7016085B2 (en) 2001-08-31 2006-03-21 Hewlett-Packard Development Company, L.P. Remote proofing service adaptively isolated from the internet
DE10143754A1 (de) 2001-09-06 2003-04-03 Siemens Ag Skalierbares Peer-to-Peer-Netzwerk mit einem Verzeichnisdienst
US8001189B2 (en) * 2001-10-16 2011-08-16 Microsoft Corporation Routing of network messages
US20030088620A1 (en) 2001-11-05 2003-05-08 Microsoft Corporation Scaleable message dissemination system and method
US20030126304A1 (en) * 2001-12-31 2003-07-03 Wyatt David A. Method for attaching a resource to a parent within a global resource namespace
US7076796B2 (en) 2002-01-04 2006-07-11 Reeves Drue A Virtual media from a directory service
EP1456796A4 (en) * 2002-01-08 2007-11-07 Tivo Inc SYSTEM FOR DISTRIBUTING AND EXCHANGING ELECTRONIC CONTENT
US7085848B2 (en) 2002-03-15 2006-08-01 Microsoft Corporation Time-window-constrained multicast using connection scheduling
US6938042B2 (en) 2002-04-03 2005-08-30 Laplink Software Inc. Peer-to-peer file sharing
US7058639B1 (en) * 2002-04-08 2006-06-06 Oracle International Corporation Use of dynamic multi-level hash table for managing hierarchically structured information
JP2003316636A (ja) * 2002-04-23 2003-11-07 Fuji Xerox Co Ltd 計算機リソース管理装置および方法
US7310314B1 (en) * 2002-06-10 2007-12-18 Juniper Networks, Inc. Managing periodic communications
US20030233455A1 (en) 2002-06-14 2003-12-18 Mike Leber Distributed file sharing system
US7200113B2 (en) 2002-06-17 2007-04-03 Siemens Communications, Inc. Apparatus and method for isochronous network delay compensation
US20040083305A1 (en) 2002-07-08 2004-04-29 Chung-Yih Wang Packet routing via payload inspection for alert services
US7613796B2 (en) * 2002-09-11 2009-11-03 Microsoft Corporation System and method for creating improved overlay network with an efficient distributed data structure
JP2004110624A (ja) * 2002-09-20 2004-04-08 Fuji Xerox Co Ltd 計算機リソース管理装置および方法
US7206934B2 (en) 2002-09-26 2007-04-17 Sun Microsystems, Inc. Distributed indexing of identity information in a peer-to-peer network
WO2004030273A1 (ja) 2002-09-27 2004-04-08 Fujitsu Limited データ配信方法、システム、伝送方法及びプログラム
US7200657B2 (en) * 2002-10-01 2007-04-03 International Business Machines Corporation Autonomic provisioning of network-accessible service behaviors within a federated grid infrastructure
EP1414211A1 (en) 2002-10-23 2004-04-28 Sony International (Europe) GmbH Software architecture for capability and quality-of-service negotiations and session establishment for distributed multimedia applications
US8037202B2 (en) 2002-10-31 2011-10-11 Oracle America, Inc. Presence detection using mobile agents in peer-to-peer networks
US20040098455A1 (en) 2002-11-14 2004-05-20 Motorola, Inc. Method and apparatus for controlling communications between subscriber units
US7010534B2 (en) 2002-11-16 2006-03-07 International Business Machines Corporation System and method for conducting adaptive search using a peer-to-peer network
US7152180B2 (en) 2002-12-06 2006-12-19 Ntt Docomo, Inc. Configurable reliable messaging system
US7899932B2 (en) 2003-01-15 2011-03-01 Panasonic Corporation Relayed network address translator (NAT) traversal
US7533141B2 (en) * 2003-01-24 2009-05-12 Sun Microsystems, Inc. System and method for unique naming of resources in networked environments
US7774495B2 (en) * 2003-02-13 2010-08-10 Oracle America, Inc, Infrastructure for accessing a peer-to-peer network environment
US7293286B2 (en) * 2003-02-20 2007-11-06 Bea Systems, Inc. Federated management of content repositories
JP4517578B2 (ja) 2003-03-11 2010-08-04 株式会社日立製作所 ピアツーピア通信装置および通信方法
US7200675B2 (en) * 2003-03-13 2007-04-03 Microsoft Corporation Summary-based routing for content-based event distribution networks
US7693952B2 (en) 2003-03-27 2010-04-06 Microsoft Corporation Availability and scalability in a messaging system in a manner transparent to the application
US7831641B2 (en) * 2003-04-24 2010-11-09 Neopath Networks, Inc. Large file support for a network file server
US20040249953A1 (en) * 2003-05-14 2004-12-09 Microsoft Corporation Peer-to-peer instant messaging
US7426637B2 (en) 2003-05-21 2008-09-16 Music Public Broadcasting, Inc. Method and system for controlled media sharing in a network
WO2004112302A2 (en) 2003-06-12 2004-12-23 Camiant, Inc. Dynamic service delivery with topology discovery for communication networks
US7602725B2 (en) 2003-07-11 2009-10-13 Computer Associates Think, Inc. System and method for aggregating real-time and historical data
US7415711B2 (en) 2003-08-01 2008-08-19 Microsoft Corporation System and method for a transport independent gaming API for mobile devices
US20050044301A1 (en) 2003-08-20 2005-02-24 Vasilevsky Alexander David Method and apparatus for providing virtual computing services
JP2005092784A (ja) 2003-09-19 2005-04-07 Nippon Telegraph & Telephone West Corp 検索方式の動的切替方法、検索方式を動的に切り替える装置、及び検索方式を動的に切り替える切替プログラム
US7392422B2 (en) 2003-10-20 2008-06-24 Sony Computer Entertainment America Inc., Violations in a peer-to-peer relay network
JP2005142959A (ja) 2003-11-07 2005-06-02 Toshiba Solutions Corp アドホック通信システムおよびその通信装置、ならびに送信先決定方法
JP2005148956A (ja) 2003-11-12 2005-06-09 Denso It Laboratory Inc 情報配布方法及び情報配布処理用プログラム
US7340169B2 (en) 2003-11-13 2008-03-04 Intel Corporation Dynamic route discovery for optical switched networks using peer routing
US8104043B2 (en) 2003-11-24 2012-01-24 Microsoft Corporation System and method for dynamic cooperative distributed execution of computer tasks without a centralized controller
US20050182856A1 (en) * 2003-12-22 2005-08-18 Mcknett Charles L. Systems and methods for creating time aware networks using independent absolute time values in network devices
JP2005223722A (ja) 2004-02-06 2005-08-18 Matsushita Electric Ind Co Ltd 携帯端末及び車載端末
JP2005252755A (ja) 2004-03-05 2005-09-15 Mitsubishi Electric Corp 情報配信システム及び情報配信装置及び通信装置及び情報配信方法及び通信方法及びプログラム
US20070133520A1 (en) 2005-12-12 2007-06-14 Microsoft Corporation Dynamically adapting peer groups
US7640299B2 (en) 2004-09-30 2009-12-29 Microsoft Corporation Optimizing communication using scaleable peer groups
US7613703B2 (en) * 2004-09-30 2009-11-03 Microsoft Corporation Organizing resources into collections to facilitate more efficient and reliable resource access
FR2876233A1 (fr) 2004-10-06 2006-04-07 St Microelectronics Sa Filtre analogique a composants passifs pour signaux a temps discret
US8014321B2 (en) 2004-10-22 2011-09-06 Microsoft Corporation Rendezvousing resource requests with corresponding resources
US8549180B2 (en) 2004-10-22 2013-10-01 Microsoft Corporation Optimizing access to federation infrastructure-based resources
US20060167841A1 (en) * 2004-11-18 2006-07-27 International Business Machines Corporation Method and system for a unique naming scheme for content management systems
WO2008036777A2 (en) 2006-09-19 2008-03-27 Bea Systems, Inc. System and method for supporting service networks in a service-oriented architecture environment
TWI390869B (zh) 2008-04-24 2013-03-21 Univ Nat Taiwan 網路資源分配系統及方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2454711C1 (ru) * 2011-04-04 2012-06-27 Общество с ограниченной ответственностью "СДН-видео" Способ распределения нагрузки между серверами сети доставки контента (cdn)
RU2756482C2 (ru) * 2014-06-26 2021-09-30 Гугл Инк. Оптимизированный процесс воспроизведения браузера
US11328114B2 (en) 2014-06-26 2022-05-10 Google Llc Batch-optimized render and fetch architecture
RU2606305C2 (ru) * 2014-07-23 2017-01-10 Сяоми Инк. Способ и устройство для совместного использования ресурсов

Also Published As

Publication number Publication date
US20100005071A1 (en) 2010-01-07
AU2005203695A1 (en) 2006-04-13
RU2005130350A (ru) 2007-04-10
US20090327312A1 (en) 2009-12-31
EP1643730A2 (en) 2006-04-05
US9244926B2 (en) 2016-01-26
MXPA05009679A (es) 2006-04-05
KR20060050878A (ko) 2006-05-19
CA2517538A1 (en) 2006-03-30
US7613703B2 (en) 2009-11-03
EP1643730A3 (en) 2012-06-13
KR101153014B1 (ko) 2012-06-08
CN1755694A (zh) 2006-04-05
CN100578494C (zh) 2010-01-06
US8275826B2 (en) 2012-09-25
US7496602B2 (en) 2009-02-24
CA2833834A1 (en) 2006-03-30
CA2833834C (en) 2015-11-03
CA2517538C (en) 2014-03-04
US20060117024A1 (en) 2006-06-01
EP1643730B1 (en) 2014-03-26
US20120331122A1 (en) 2012-12-27
JP4879547B2 (ja) 2012-02-22
BRPI0504205A (pt) 2006-05-09
US20060074876A1 (en) 2006-04-06
US20120331103A1 (en) 2012-12-27
US8307028B2 (en) 2012-11-06
US8892626B2 (en) 2014-11-18
JP2006107501A (ja) 2006-04-20

Similar Documents

Publication Publication Date Title
RU2409846C2 (ru) Организация ресурсов в коллекции, способствующая более эффективному и надежному доступу к ресурсам
US7143139B2 (en) Broadcast tiers in decentralized networks
US7251689B2 (en) Managing storage resources in decentralized networks
US7069318B2 (en) Content tracking in transient network communities
US7177929B2 (en) Persisting node reputations in transient network communities
US7181536B2 (en) Interminable peer relationships in transient communities
Pietzuch Hermes: A scalable event-based middleware
US7039701B2 (en) Providing management functions in decentralized networks
US8549180B2 (en) Optimizing access to federation infrastructure-based resources
KR101201072B1 (ko) 자원 요청을 대응하는 자원과 랑데뷰시키는 방법 및 시스템
US8880489B2 (en) Discovery across multiple registries
JP3899076B2 (ja) 一時的ネットワーク
JP4251148B2 (ja) グループ内通信方法、システム及び記録媒体
Kang et al. A Semantic Service Discovery Network for Large‐Scale Ubiquitous Computing Environments
Pöhlsen et al. Integrating a decentralized web service discovery system into the internet infrastructure
Comes et al. Designing and Implementing XService: A Generative Communication Web Service Container System.

Legal Events

Date Code Title Description
PC41 Official registration of the transfer of exclusive right

Effective date: 20150526

MM4A The patent is invalid due to non-payment of fees

Effective date: 20170930