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»), могут идентифицироваться присутствием последовательности знаков «:/» после имени схемы. Первая часть иерархических схем может идентифицировать владельца имени, ответственного за остальные компоненты УИДР. Такие УИДР идентифицируются посредством присутствия последовательности знаков «://» после имени схемы. Пространства имен могут быть как иерархическими, так и маршрутизируемыми, означая, что пространства имен служат в качестве идентификаторов, которые могут использоваться для идентификации путей передачи данных от отправителя к получателю.
В некоторых вариантах осуществления пространство имен может определяться следующим образом:
Ресурсы могут предоставляться в любой ветви в дереве, и данный ресурс может быть открыт в многочисленных пространствах имен. Также, данное пространство имен может идентифицировать единственный ресурс или ветвь пространства имен (группу ресурсов). Такое группирование может быть логическим или физическим, в зависимости от семантики пространства имен. Группа получается посредством выполнения поиска в глубину по идентифицированной ветви пространства имен. Если была идентифицирована группа ресурсов, многочисленные операции могут быть выполнены над ними, такие как выбор ресурсов, которые удовлетворяют некоторым критериям, отправка (и потенциально маршрутизацию) данного сообщения только тем, кто в группе, и т.д.
Единственный ресурс может рассматриваться как тривиальная коллекция. Таким образом, каждому ресурсу может присваиваться имя (пространство имен). Так как пространства имен являются маршрутизируемыми, сообщения могут маршрутизироваться по инфраструктуре объединения пространств имен на любой ресурс, который имеет имя. Такая маршрутизация может пересекать границы доверительных отношений и преодолевать брандмауэры.
Как правило, ресурсу может присваиваться один или несколько УИДР, которые могут использоваться для доступа к ресурсу. Один УИДР, идентификатор (ИД) ресурса, присвоенный ресурсу, может быть, минимально, уникальным по всем пространствам имен, реализованным данной инфраструктурой объединения пространств имен, так что на ресурс можно ссылаться единственным образом. Другие потенциально не уникальные УИДР также могут присваиваться ресурсам. Эти другие потенциально не уникальные УИДР обеспечивают доступ к ресурсу через дополнительные расположения в пространствах имен, реализованных данной инфраструктурой объединения пространств имен. Ресурсу может присваиваться по меньшей мере один потенциально не уникальный УИДР для каждого пространства имен, по которому можно выполнять прохождение для доступа к ресурсу.
На фиг.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 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. Исполнение таких модулей может выполняться в распределенной среде, как ранее описано.
Настоящее изобретение может осуществляться в других конкретных формах без отступления от его сущности или его важных характеристик. Описанные варианты осуществления должны рассматриваться во всех отношениях только как иллюстративные и не ограничительные. Объем изобретения, поэтому, выражается прилагаемой формулой изобретения, а не вышеприведенным описанием. Все изменения, которые охватываются значением и объемом эквивалентности формулы изобретения, должны быть включены в ее объем.
Изобретение относится к области организации ресурсов в коллекции. Техническим результатом является повышение эффективности организации ресурсов. Обеспечиваются способы, системы и продукты компьютерных программ для организации ресурсов в коллекции, чтобы способствовать более эффективному и надежному доступу к ресурсу. Менеджеры пространства имен устанавливают связь друг с другом, образуя инфраструктуру объединения пространств имен. Инфраструктура может эффективно маршрутизировать, выполнять миграцию и обрабатывать запросы к пространствам имен, такие как, например, запросы регистрации пространства имен от провайдеров, запрашивающих управление частями пространств имен, и запросы поиска от потребителей, запрашивающих доступ к управляемым ресурсам. Ресурсы могут регистрироваться и предоставляться из многочисленных разных пространств имен. Ресурсы могут идентифицироваться с использованием многоуровневых запросов, которые фильтруют результаты на многочисленных уровнях иерархического пространства имен. 2 н. и 13 з.п. ф-лы, 17 ил.
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, в котором исполняемые компьютером инструкции, которые при исполнении вызывают связывание инфраструктурой объединения пространств имен уникального идентификатора ресурса со вторым ресурсом узла пространства имен во втором пространстве имен, содержат исполняемые компьютером инструкции, которые при исполнении вызывают формирование инфраструктурой объединения пространств имен сегмента пространства имен между ресурсом и вторым ресурсом узла пространства имен.
Способ приготовления мыла | 1923 |
|
SU2004A1 |
RU 2001112668 A, 27.06.2003 | |||
US 6546415 B1, 08.04.2003 | |||
Способ и приспособление для нагревания хлебопекарных камер | 1923 |
|
SU2003A1 |
Авторы
Даты
2011-01-20—Публикация
2005-09-29—Подача