Межблизостная связь в федерации рандеву
Иллюстрации
Показать всеИзобретение относится к программно-аппаратным средствам для облегчения межблизостной связи в федерации рандеву. Техническим результатом является обеспечение переноса данных между узлами сети за счет симметричных отношений между узлами, маршрутизации сообщений в обоих направлениях, разделения связных списков узлов на основании совокупности метрик близости и маршрутизации сообщений на основании совокупности метрик близости. Узлы поддерживают таблицы вхождений множества коллатеральных колец, которые включают в себя коллатеральные кольца и соответствующие узлы вхождения в коллатеральные кольца. Узлы могут обмениваться состоянием вхождения множества коллатеральных колец для взаимного обновления конфигурации колец в дереве колец. Узлы могут осуществлять доступ к таблицам вхождений множества коллатеральных колец, а также к другим узлам, чтобы идентифицировать узлы вхождения в кольцах, которые являются коллатеральными кольцами узла. Сообщения можно посылать на узлы вхождения в коллатеральных кольцах. Сообщение может включать в себя указание, что узел вхождения в целевом кольце близости должен разрешать сообщение на узел в целевом кольце близости, который имеет ID узла, ближайший к указанному узлу назначения. 3 н. и 39 з.п. ф-лы, 30 ил.
Реферат
Уровень техники
Компьютерные системы и соответствующая технология определяют многочисленные аспекты общественной жизни. Действительно, способность компьютерной системы обрабатывать информацию изменила образ жизни и характер работы людей. В настоящее время компьютерные системы выполняют большое количество задач (например, редактирование текста, составление расписаний и управление базами данных), которые до появления компьютерных систем выполнялись вручную. В последние годы, компьютерные системы начали подключать друг к другу и к другими электронным устройствам с образованием проводных и беспроводных компьютерных сетей, по которым компьютерные системы и другие электронные устройства могут передавать электронные данные. В результате, многие задачи, осуществляемые в компьютерной системе (например, голосовая связь, доступ к электронной почте, управление домашними электронными приборами, навигация в интернете и печать документов), включают в себя обмен электронными сообщениями между несколькими компьютерными системами и/или другими электронными устройствами по проводным и/или беспроводным компьютерным сетям.
Однако, чтобы использовать сетевой ресурс для осуществления компьютеризированной задачи, компьютерная система должна иметь возможность идентификации сетевого ресурса и доступа к нему. Соответственно, ресурсам обычно присваиваются уникальные идентификаторы, например сетевые адреса, которые однозначно идентифицируют ресурсы и которые можно использовать для того, чтобы отличать один ресурс от других ресурсов. Таким образом, компьютерная система, которая желает использовать ресурс, может подключиться к ресурсу с использованием сетевого адреса, который соответствует ресурсу. Однако доступ к сетевому ресурсу может быть затруднен, если компьютерная система заранее не имеет информации о сетевом адресе для сетевого ресурса. Например, компьютерная система не может напечатать документ на сетевом принтере, если компьютерная система (или другая сетевая компьютерная система) не знает сетевого адреса сетевого принтера.
Соответственно, были разработаны различные механизмы (например, [Domain Name System] Система доменных имен (“DNS”), Active Directory (“AD”), [Distributed File System] Распределенная файловая система (“DFS”)), позволяющие компьютерным системам идентифицировать (и осуществлять доступ) к первоначально не известным ресурсам. Однако, в силу количества и разнообразия ресурсов (например, устройств и служб), к которым можно осуществлять доступ через различные компьютерные сети, разработчикам часто требуется создавать приложения, реализующие разнообразные механизмы идентификации и доступа к ресурсам. Разные механизмы могут иметь разные требования к кодированию и могут не обеспечивать разработчика всеми функциями, которые необходимы в приложении.
Например, хотя DNS имеет распределенную архитектуру администрирования (т.е. централизованное управление не требуется), DNS недостаточно динамична, не имеет возможностей самоорганизации, поддерживает слабую модель данных и запросов и имеет фиксированное множество корней. С другой стороны, AD достаточно динамична, но требует централизованного администрирования. Кроме того, аспекты разных механизмов могут быть несовместимы друг с другом. Например, ресурс, идентифицированный с использованием DNS, может быть несовместим с протоколами маршрутизации DFS. Таким образом, разработчику приходится выбирать наиболее подходящий механизм и пренебрегать преимуществами других механизмов.
Механизмы идентификации ресурсов могут составлять особую проблему в одноранговых сетях. DNS обеспечивает службу поиска, в которой имена хостов являются ключами и IP адреса являются значениями и которая опирается на множество особых корневых серверов для реализации запросов поиска. Кроме того, DNS требует управления информацией (записи NS), чтобы клиенты могли осуществлять навигацию по иерархии серверов имен. Таким образом, чтобы ресурс можно было идентифицировать в сети, этот ресурс должен быть введен в DNS. В крупномасштабных сетях, где узлы часто соединяются с и отсоединяются от сети, полагаться на запись информации не всегда практично. Кроме того, DNS специализируется на задаче отыскания хостов или служб и, в целом, не применима к другим типам ресурсов.
Соответственно, были разработаны другие механизмы идентификации и доступа к ресурсам в попытке исправить эти недостатки. Некоторые механизмы включают в себя распределенные протоколы поиска, которые в большей степени масштабируемы, чем DNS. Эти механизмы используют различные конфигурации узлов и алгоритмы маршрутизации для маршрутизации запросов на соответствующие ресурсы и для сохранения информации для поиска.
По меньшей мере, один из этих механизмов использует локальные многоуровневые карты соседей на каждом узле в сети для маршрутизации сообщений на узел назначения. Это, по существу, приводит к архитектуре, где каждый узел является “корневым узлом” соответствующего дерева узлов (узлов в его карте соседей). Сообщения последовательно маршрутизируются в ID пункта назначения цифра за цифрой (например, ***6 => **46 =>, *346 => 2346, где * представляет маску подстановки). Сложность маршрутизации этих типов механизмов составляет O(log N) переходов маршрутизации и требует, чтобы узлы поддерживали таблицу маршрутизации размером O(log N).
По меньшей мере, еще один из этих механизмов присваивает узлам уникальный ID, который берется из линейного кольца чисел. Узлы поддерживают таблицы маршрутизации, содержащие указатели на непосредственно последующий узел (согласно значению ID) и на узлы, значения ID которых являются ближайшими последователями значения ID + 2L. Сложность маршрутизации этих типов механизмов также составляет O(log N) переходов маршрутизации и требует, чтобы узлы поддерживали таблицу маршрутизации размером O(log N).
По меньшей мере, еще один механизм требует O(log N1/d) переходов маршрутизации и требует, чтобы узлы поддерживали таблицу маршрутизации размером O(D). Таким образом, сложность маршрутизации всех этих механизмов зависит, по меньшей мере частично, от количества узлов в системе.
Кроме того, поскольку ID (для, по меньшей мере, некоторых механизмов) могут равномерно распределяться по кольцу, всегда существует возможность того, что маршрутизация между узлами на кольце приведет к некоторой неэффективности. Например, переходы маршрутизации могут преодолевать большие географические расстояния, проходить по более дорогостоящим линиям связи или проходить через незащищенные домены, и т.д. Кроме того, когда маршрутизация сообщений предусматривает множественные переходы, существует вероятность того, что такие события будут происходить много раз. К сожалению, эти механизмы не учитывают близость узлов (физическую или иную) относительно друг друга. Например, в зависимости от распределения узлов на кольце, маршрутизация сообщения из Нью-Йорка в Бостон могут включать в себя маршрутизацию сообщения из Нью-Йорка в Лондон, затем в Атланту, затем в Токио и, наконец, в Бостон.
Соответственно, по меньшей мере, еще один недавно разработанный механизм учитывает близость, определяя близость как единую скалярную метрику близости (например, количество переходов IP маршрутизации или географическое расстояние). Эти механизмы используют условное обозначение выбора на основе близости для записей таблицы маршрутизации. Поскольку существует много “правильных” узлов-кандидатов для каждой записи таблицы маршрутизации, эти механизмы пытаются выбирать проксимально близкий узел среди узлов-кандидатов. Для этих механизмов можно обеспечить функцию, которая позволяет каждому узлу определить “расстояние” от узла с данным IP адресом до себя самого. Сообщения маршрутизируются между более близкими узлами для продвижения к пункту назначения до маршрутизации на более далекий узел. Это позволяет сэкономить некоторые ресурсы и повысить эффективность маршрутизации.
К сожалению, эти существующие механизмы обычно не предусматривают, помимо прочего, симметричных отношений между узлами (т.е., если первый узел считает второй узел своим партнером, то второй узел также считает первый узел своим партнером), маршрутизацию сообщений в обоих направлениях (по часовой стрелке и против часовой стрелки) на кольце, разделение связных списков узлов на основании совокупности метрик близости и маршрутизацию сообщений на основании совокупности метрик близости. Эти трудности могут ограничивать динамический, распределенный и эффективный перенос данных между узлами сети, например, при широковещательной рассылке данных на все узлы сети.
Сущность изобретения
Настоящее изобретение относится к способам, системам и компьютерным программным продуктам для облегчения межблизостной связи в федерации рандеву. В некоторых вариантах осуществления, поддерживается таблица вхождений множества коллатеральных колец для узла. Узел обращается к таблице вхождений множества коллатеральных колец, предназначенной для хранения вхождений множества коллатеральных колец для узла. Каждая запись множества коллатеральных колец способна указывать коллатеральное кольцо узла и, по меньшей мере, один соответствующий узел вхождения в коллатеральное кольцо узла. Выявляется информация таблицы вхождений множества коллатеральных колец из доступных ресурсов, которые поддерживают информацию, относящуюся к конфигурации дерева колец. Таблица вхождений множества коллатеральных колец обновляется надлежащим состоянием записи множества коллатеральных колец на основании выявленной информации таблицы вхождений множества коллатеральных колец. Надлежащее состояние записи множества коллатеральных колец включает в себя коллатеральное кольцо узла и, по меньшей мере, один соответствующий узел вхождения в коллатеральное кольцо узла.
В других вариантах осуществления, межблизостная связь осуществляется в дереве колец. В одном варианте осуществления межблизостной связи, производится определение, что узел должен отправить сообщение в указанное коллатеральное кольцо узла. Узел обращается к таблице вхождений множества коллатеральных колец, предназначенной для хранения вхождений множества коллатеральных колец для узла. Каждая запись множества коллатеральных колец способна указывать коллатеральное кольцо узла и, по меньшей мере, один соответствующий узел вхождения в коллатеральном кольце узла. По меньшей мере, одна запись множества коллатеральных колец для указанного коллатерального кольца идентифицируется из таблицы вхождений множества коллатеральных колец узла. Каждое из, по меньшей мере, одной из вхождений множества коллатеральных колец указывает, по меньшей мере, один узел вхождения указанного коллатерального кольца. Сообщение отправляется на, по меньшей мере, один указанный узел вхождения.
В другом варианте осуществления межблизостной связи, производится определение, что исходный узел намерен маршрутизировать сообщение на узел назначения, ближайший к данному ID узла в целевом кольце близости в дереве колец. Один или несколько узлов вхождения, про которые известно, что они принадлежат, по меньшей мере, одному из целевого кольца близости и кольца, предшествующего целевому кольцу близости, идентифицируются. Сообщение отправляется на идентифицированный узел вхождения. Сообщение указывает, что идентифицированный узел вхождения призван разрешать сообщение на узел, который имеет ID узла, ближайший к указанному узлу назначения в целевом кольце близости.
Эта сущность изобретения призвана в упрощенной форме обозначить идеи, которые будут дополнительно раскрыты ниже в подробном описании. Эта сущность изобретения не призвана идентифицировать ключевые признаки или существенные признаки заявленного изобретения, а также не подлежит использованию для определения объема заявленного изобретения.
Дополнительные признаки и преимущества будут изложены в нижеприведенном описании, и отчасти будут следовать из описания, или смогут быть изучены путем практического применения принципов изобретения. Признаки и преимущества изобретения можно реализовать и получить посредством инструментов и комбинаций, конкретно указанных в прилагаемой формуле изобретения. Признаки настоящего изобретения в полном объеме следуют из нижеследующего описания и прилагаемой формулы изобретения или могут быть изучены путем практического применения изобретения, раскрытого ниже.
Краткое описание чертежей
Для описания, каким образом можно получить вышеописанные и другие преимущества и признаки, более конкретное описание изобретения, кратко описанного выше, будет приведено со ссылкой на конкретные варианты осуществления, проиллюстрированные в прилагаемых чертежах. С учетом того, что эти чертежи изображают лишь типичные варианты осуществления и поэтому не призваны ограничивать его объем, варианты осуществления будут описаны и объяснены в дополнительных деталях и подробностях с использованием прилагаемых чертежей, в которых:
фиг.1 - пример инфраструктуры федерации;
фиг.2 - пример архитектуры компьютера, которая облегчает запрос маршрутизации опосредованно партнерам;
фиг.3 - иллюстративное бинарное отношение между узлами в инфраструктуре федерации в форме сортированного списка и соответствующего кольца;
фиг.4 - иллюстративное кольцо колец, которое облегчает проксимальную маршрутизацию;
фиг.5 - иллюстративное дерево разбиения колец по признаку близости, которое облегчает проксимальную маршрутизацию;
фиг.5A - иллюстративное дерево разбиения колец по признаку близости, показанное фиг.5, где более подробно показаны части дерева разбиения колец, показанного на фиг.5;
фиг.6 - подходящая операционная среда для реализации принципов настоящего изобретения;
фиг.7 - иллюстративная логическая блок-схема способа наполнения таблицы маршрутизации узла с учетом критериев близости;
фиг.8 - иллюстративная логическая блок-схема способа разбиения узлов инфраструктуры федерации;
фиг.9 - иллюстративная логическая блок-схема способа наполнения таблицы маршрутизации узла;
фиг.10 - иллюстративная логическая блок-схема способа численной маршрутизации сообщения на узел назначения;
фиг.11 - иллюстративная логическая блок-схема способа проксимальной маршрутизации сообщения на узел назначения;
фиг.12A - пример узла, устанавливающего принадлежность в существующей федерации;
фиг.12B - пример узлов в инфраструктуре федерации, обменивающихся сообщениями;
фиг.13 - иллюстративная логическая блок-схема способа установления принадлежности в инфраструктуре федерации;
фиг.14 - иллюстративная логическая блок-схема способа поддержания принадлежности в инфраструктуре федерации;
фиг.15 - иллюстративная логическая блок-схема способа выявления информации живучести для другого узла;
фиг.16 - пример модели сообщений и соответствующей модели обработки;
фиг.17 - пример ряда взаимодействий живучести, которые могут происходить между функциональным уровнем и прикладным уровнем;
фиг.18 - пример сообщений, составляющих часть образца обмена сообщениями типа запрос-ответ, маршрутизирующихся между узлами на кольце;
фиг.19A - иллюстративное дерево разбиения колец по признаку близости, которое облегчает межблизостную связь;
фиг.19B - другой вид иллюстративного дерева разбиения колец по признаку близости, показанного на фиг.19A;
фиг.19C - представление разбиения части иллюстративного дерева разбиения колец по признаку близости, показанного на фиг.19A;
фиг.19D - более подробная схема промежуточного кольца из иллюстративного дерева разбиения колец по признаку близости, показанного на фиг.19A;
фиг.19E - еще один вид иллюстративного дерева разбиения колец по признаку близости, показанного на фиг.19A;
фиг.19F - дополнительный вид иллюстративного дерева разбиения колец по признаку близости, показанного на фиг.19A;
фиг.19G - более подробная схема части фиг.19F;
фиг.20 - иллюстративная логическая блок-схема способа поддержания множества коллатеральных колец для узла в дереве колец;
фиг.21 - иллюстративная логическая блок-схема способа осуществления межблизостной связи в дереве колец;
фиг.22 - иллюстративная логическая блок-схема еще одного способа осуществления межблизостной связи в дереве колец.
Подробное описание
Настоящее изобретение относится к способам, системам и компьютерным программным продуктам для облегчения межблизостной связи в федерации рандеву. В некоторых вариантах осуществления, поддерживается таблица вхождений множества коллатеральных колец для узла. Узел обращается к таблице вхождений множества коллатеральных колец, предназначенной для хранения вхождений множества коллатеральных колец для узла. Каждая запись множества коллатеральных колец способна указывать коллатеральное кольцо узла и, по меньшей мере, один соответствующий узел вхождения в коллатеральное кольцо узла. Выявляется информация таблицы вхождений множества коллатеральных колец из доступных ресурсов, которые поддерживают информацию, относящуюся к конфигурации дерева колец. Таблица вхождений множества коллатеральных колец обновляется надлежащим состоянием записи множества коллатеральных колец на основании выявленной информации таблицы вхождений множества коллатеральных колец. Надлежащее состояние записи множества коллатеральных колец включает в себя коллатеральное кольцо узла и, по меньшей мере, один соответствующий узел вхождения в коллатеральное кольцо узла.
В других вариантах осуществления, межблизостная связь осуществляется в дереве колец. В одном варианте осуществления межблизостной связи, производится определение, что узел должен отправить сообщение в указанное коллатеральное кольцо узла. Узел обращается к таблице вхождений множества коллатеральных колец, предназначенной для хранения вхождений множества коллатеральных колец для узла. Каждая запись множества коллатеральных колец способна указывать коллатеральное кольцо узла и, по меньшей мере, один соответствующий узел вхождения в коллатеральное кольцо узла. По меньшей мере, одна запись множества коллатеральных колец для указанного коллатерального кольца идентифицируется из таблицы вхождений множества коллатеральных колец узла. Каждая из, по меньшей мере, одной из вхождений множества коллатеральных колец указывает, по меньшей мере, один узел вхождения указанного коллатерального кольца. Сообщение отправляется на, по меньшей мере, один указанный узел вхождения.
В другом варианте осуществления межблизостной связи, производится определение, что исходный узел намерен маршрутизировать сообщение на узел назначения, ближайший к данному ID узла в целевом кольце близости в дереве колец. Один или несколько узлов вхождения, про которые известно, что они принадлежат, по меньшей мере, одному из целевого кольца близости и кольца, предшествующего целевому кольцу близости, идентифицируются. Сообщение отправляется на идентифицированный узел вхождения. Сообщение указывает, что идентифицированный узел вхождения призван разрешать сообщение на узел, который имеет ID узла, ближайший к указанному узлу назначения в целевом кольце близости.
Варианты осуществления настоящего изобретения могут содержать компьютер специального назначения или общего назначения, включающий в себя компьютерное оборудование, более подробно рассмотренное ниже. Варианты осуществления в объеме настоящего изобретения также включают в себя компьютерно-считываемые носители для переноса или хранения компьютерно-выполняемых инструкций или структур данных. Такие компьютерно-считываемые носители могут представлять собой любые доступные носители, к которым может осуществлять доступ компьютер общего назначения или специального назначения. В порядке примера, но не ограничения, компьютерно-считываемые носители могут содержать компьютерно-считываемые носители данных, например ОЗУ, ПЗУ, ЭСППЗУ, CD-ROM или другие носители данных в виде оптического диска, носители данных в виде магнитного диска или другие магнитные запоминающие устройства, или любой другой носитель, который можно использовать для хранения нужного средства программного кода в форме компьютерно-выполняемых инструкций или структур данных и к которым может осуществлять доступ компьютер общего назначения или специального назначения.
В этом описании и в нижеследующей формуле изобретения, “сеть” определяется как одна или несколько линий передачи данных, которые обеспечивают транспортировку электронных данных между компьютерными системами и/или модулями. При переносе или предоставлении информации по сети или иному соединению (проводному, беспроводному или комбинированному) на компьютер, компьютер рассматривает соединение как компьютерно-считываемый носитель. Таким образом, в порядке примера, но не ограничения, компьютерно-считываемые носители могут содержать сеть или линии передачи данных, которую(ые) можно использовать для переноса или хранения нужного средства программного кода в форме компьютерно-выполняемых инструкций или структур данных и к которым может осуществлять доступ компьютер общего назначения или специального назначения.
Компьютерно-выполняемые инструкции содержат, например, инструкции и данные, которые предписывают компьютеру общего назначения, компьютеру специального назначения или устройству обработки специального назначения осуществлять определенную функцию или группу функций. Компьютерно-выполняемые инструкции могут представлять собой, например, инструкции в двоичном формате, промежуточном формате, например, на языке ассемблера, или даже в виде исходного кода. Хотя настоящее изобретение описано применительно к структурным признакам и/или этапам способа, следует понимать, что настоящее изобретение, заданное в прилагаемой формуле изобретения, не обязано ограничиваться вышеописанными признаками или этапами. Напротив, описанные признаки и этапы приведены в качестве иллюстративных форм реализации формулы изобретения.
В некоторых вариантах осуществления, аппаратные модули, например интегральные схемы или вентильные матрицы специального назначения, оптимизированы для реализации принципов настоящего изобретения.
В этом описании и в нижеследующей формуле изобретения, “узел” определяется как один или несколько программных модулей, один или несколько аппаратных модулей или их комбинация, которые действуют совместно для осуществления операций над электронными данными. Например, определение узла включает в себя аппаратные компоненты персонального компьютера, а также программные модули, например операционную систему персонального компьютера. Физическая конфигурация модулей не имеет значения. Узел может включать в себя один или несколько компьютеров, соединенных через сеть. Аналогично, узел может включать в себя одно физическое устройство (например, мобильный телефон или карманный персональный компьютер “КПК”), где внутренние модули (например, память и процессор) действуют совместно для осуществления операций над электронными данными. Кроме того, узел может включать в себя оборудование специального назначения, например маршрутизатор, который включает в себя интегральные схемы специального назначения.
Специалистам в данной области очевидно, что изобретение можно осуществлять на практике в сетевых вычислительных средах, где существует много типов конфигураций узлов, включающих в себя, персональные компьютеры, портативные компьютеры, карманные устройства, многопроцессорные системы, микропроцессорные или программируемые бытовые электронные приборы, сетевые ПК, миникомпьютеры, универсальные компьютеры, мобильные телефоны, КПК, пейджеры, маршрутизаторы, шлюзы, брокеры, прокси-серверы, брандмауэры, редиректоры, трансляторы сетевых адресов и пр. Изобретение также можно осуществлять на практике в условиях распределенной системы, где задачи осуществляют локальные и удаленные узлы, которые связаны (посредством проводных линий передачи данных, беспроводных линий передачи данных или комбинации проводных и беспроводных линий передачи данных) через сеть. В условиях распределенной системы, программные модули могут располагаться как в локальных, так и удаленных запоминающих устройствах.
Архитектура федерации
На фиг.1 показан пример инфраструктуры 100 федерации. Инфраструктура 100 федерации включает в себя узлы 101, 102, 103, которые могут формировать различные типы партнерства в федерации. Например, узлы 101, 102, 103 могут быть объединены в федерацию как равноправные узлы без корневого узла. Каждый из узлов 101, 102 и 103 имеет соответствующий ID 171, 182 и 193 соответственно.
В целом, узлы 101, 102, 103 могут использовать протоколы федерации для формирования партнерства и обмена информацией (например, информацией состояния, относящейся к взаимодействиям с другими узлами). Формирование партнерства и обмен информацией способствует более эффективному и надежному доступу к ресурсам. Между узлами 101, 102 и 103 могут существовать другие промежуточные узлы (не показаны) (например, узлы, имеющие ID между 171 и 193). Таким образом, сообщение, маршрутизируемое, например, между узлом 101 и узлом 103, может проходить через один или несколько других промежуточных узлов.
Узлы в инфраструктуре 100 федерации (включая другие промежуточные узлы) могут включать в себя соответствующие стеки протоколов рандеву. Например, узлы 101, 102 и 103 включают в себя соответствующие стеки протоколов рандеву 141, 142 и 143, соответственно. Каждый из стеков протоколов 141, 142 и 143 включает в себя прикладной уровень (например, прикладные уровни 121, 122 и 123) и другие, более низкие уровни (например, соответствующие другие более низкие уровни 131, 132 и 133). Каждый уровень в стеке протоколов рандеву отвечает за соответствующие функции, связанные с организацией рандеву запроса ресурса с соответствующим ресурсом.
Например, другие, более низкие уровни могут включать в себя канальный уровень, уровень маршрутизации и функциональный уровень. В целом, канальный уровень отвечает за надежную транспортировку сообщения (например, с использованием протоколов WS-ReliableMessaging и Simple Object Access Protocol (“SOAP”)) из одной конечной точки в другую (например, от узла 101 к узлу 103). Канальный уровень также отвечает за обработку входящих и исходящих заголовков надежного обмена сообщениями и поддержание состояния, связанного с сеансами надежного обмена сообщениями.
В целом, уровень маршрутизации отвечает за вычисление следующего перехода к пункту назначения. Уровень маршрутизации также отвечает за обработку входящих и исходящих заголовков адресации и маршрутизации сообщений и поддержание состояния маршрутизации. В целом, функциональный уровень отвечает за выдачу и обработку сообщений протокола рандеву, например запросов вступления и выбытия, пингов, обновлений и других сообщений, а также генерацию ответов на эти сообщения. Функциональный уровень обрабатывает сообщения запроса с уровня маршрутизации и посылает соответствующие сообщения ответа, если таковые предусмотрены, обратно на исходный узел с использованием уровня маршрутизации. Функциональный уровень также инициирует сообщения запроса и использует уровень маршрутизации для доставки сообщений запросов.
В целом, прикладной уровень обрабатывает данные, не связанные с протоколом рандеву, доставляемые с функционального уровня (т.е. сообщения приложения). Функциональный уровень может обращаться к данным приложения с прикладного уровня и извлекать и вводить данные приложения в сообщения протокола рандеву (например, пинги и обновления). Таким образом, функциональный уровень может обеспечивать вложение данных приложения в сообщения протокола рандеву и может обеспечивать передачу данных приложения обратно на прикладной уровень на принимающих узлах протокола рандеву. В некоторых вариантах осуществления, данные приложения используются для идентификации ресурсов и ценности ресурсов. Таким образом, прикладной уровень может включать в себя логику прикладного уровня и состояние, которое обрабатывает данные, принимаемые с и передаваемые на другие, более низкие уровни в целях идентификации ресурсов и ценности ресурсов.
Механизмы объединения в федерацию
Узлы могут объединяться в федерацию с использованием разнообразных механизмов. Первый механизм объединения в федерацию включает в себя равноправные узлы, пересылающие информацию на все остальные равноправные узлы. Когда узел собирается вступить в инфраструктуру федерации, узел использует протокол обнаружения широковещания/групповой адресации, например WS-Discovery, для объявления своего присутствия и выдает команду обнаружения широковещания/групповой адресации для обнаружения других узлов. Затем узел устанавливает простое партнерство по пересылке с другими узлами, уже присутствующими в сети, и принимает новые партнерства с вновь вступающими узлами. Затем узел просто пересылает все сообщения прикладного уровня на все свои узлы-партнеры.
Второй механизм объединения в федерацию включает в себя равноправные узлы, которые наиболее эффективно передают сообщения прикладного уровня на свои пункты назначения. Когда новый узел собирается вступить в инфраструктуру федерации, новый узел использует протокол обнаружения широковещания/групповой адресации, например WS-Discovery, для объявления своего присутствия и выдает команду обнаружения широковещания/групповой адресации для обнаружения других узлов, которые входят в состав инфраструктуры федерации. Обнаружив другой узел, новый узел устанавливает партнерство с другим узлом. На основании установленного партнерства, новый узел получает информацию о наличии других узлов, уже участвующих в инфраструктуре федерации. Затем он устанавливает партнерства с этими вновь обнаруженными узлами и принимает любые новые входящие запросы партнерства.
Прибытия/выбытия и регистрации узлов, представляющие интерес, в определенных сообщениях прикладного уровня распространяются по инфраструктуре федерации, благодаря чему каждый узел имеет глобальную информацию о других узлах-партнерах и регистрациях, представляющих интерес, в сообщениях прикладного уровня. Благодаря такой глобальной информации, любой узел может посылать сообщения прикладного уровня непосредственно на узлы, которые проявили интерес к сообщению прикладного уровня.
Третий механизм объединения в федерацию включает в себя равноправные узлы, опосредованно пересылающие все сообщения прикладного уровня на их пункты назначения. В этом третьем механизме, узлам присваиваются идентификаторы (ID), например 128-битовый или 160-битовый ID. Узел, отвечающий за поддержание регистрации, представляющей интерес, в данном сообщении прикладного уровня можно определить как тот, ID которого является ближайшим к тому, который получен путем отображения (например, хэширования) идентификатора пункта назначения (например, URI) сообщения прикладного уровня в это пространство 128-битовых или 160-битовых ID.
В этом третьем механизме, прибытия и выбытия узла распространяются по всей архитектуре. С другой стороны, регистрации, представляющие интерес, в определенных сообщениях прикладного уровня пересылаются на узлы, в отношении которых определено, что они отвечают за поддержание такой информации регистрации. Для масштабируемости, балансировки нагрузки и отказоустойчивости узел, принимающий регистрацию, представляющую интерес, в определенных сообщениях прикладного уровня может надежно распространять эту информацию регистрации в пределах своего множества соседей. Множество соседей для указанного узла можно определить как множество узлов, имеющих ID в заранее заданном диапазоне по обе стороны от ID указанного узла.
Аналогично второму механизму, вновь вступающий узел использует протокол обнаружения широковещания/групповой адресации, например WS-Discovery, для объявления своего присутствия и выдает локальную команду обнаружения широковещания/групповой адресации для обнаружения узла, который уже является частью инфраструктуры федерации. Новый узел устанавливает партнерство с выявленным узлом и использует это партнерство для получения информации о наличии других новых узлов, участвующих в инфраструктуре федерации. Затем новый узел устанавливает дополнительные партнерства с вновь обнаруженными узлами и принимает любые новые входящие запросы партнерства. Новый узел принимает входящие регистрации, представляющие интерес, в определенных ресурсах прикладного уровня от своих партнеров, за которые он отвечает, и может распространять их по своему множеству соседей. Таким образом, сообщения можно, в целом, пересылать в их конечные пункты назначения через промежуточные маршрутизирующие узлы (например, с которыми вновь вступающий узел установил партнерства или о которых осведомлен узел-партнер).
В ответ на прием входящего сообщения прикладного уровня, новый узел пересылает сообщение на узел-партнер, который может отвечать за поддержание информации регистрации для пункта назначения, указанного в сообщении. Таким образом, с использованием этого третьего механизма каждый узел в инфраструктуре федерации получает глобальную информацию обо всех остальных узлах, но информация регистрации эффективно делится между узлами. Сообщения прикладного уровня передаются в свои конечные пункты назначения только через узлы-партнеры, которые могут отвечать за поддержание информации регистраций, представляющих интерес, в этих сообщениях прикладного уровня. Таким образом, опосредованность осуществляется за счет пересылки только на узел-партнер, который имеет глобальную информацию о регистрациях, представляющих интерес, для обрабатываемого сообщения. В этом состоит отличие от механизма, где опосредованность осуществляется за счет пересылки на все узлы-партнеры.
Четвертый механизм объединения в федерацию включает в себя равноправные узлы, которые маршрутизируют сообщения на другие равноправные узлы. Этот четвертый механизм отличается от третьего механизма, по меньшей мере, тем, что все прибытия/выбытия и регистрации узлов, представляющие интерес, в определенных сообщениях прикладного уровня маршрутизируются, а не распространяются. Протоколы маршрутизации призваны гарантировать рандеву между сообщениями прикладного уровня и сообщениями регистрации, которые проявляют интерес к этим сообщениям прикладного уровня.
На фиг.2 показан пример компьютерной архитектуры 200, которая облегчает запрос маршрутизации опосредованно партнерам. Компьютерная архитектура 200 представляет различные типы компьютерных систем и устройств, потенциально распределенных по нескольким локальным диапазонам обнаружения, участвующим в инфраструктуре федерации.
Рабочая станция 233 может включать в себя зарегистрированный экземпляр провайдера PnP. Чтобы сообщить партнерам о наличии этого экземпляра провайдера PnP, рабочая станция 233 маршрутизирует запрос 201 регистрации по инфраструктуре федерации. Запрос 201 регистрации первоначально направляется на портативный компьютер 231, который, в свою очередь, пересылает запрос 201 регистрации брокеру 237 сообщений, который, в свою очередь, пересылает запрос 201 регистрации на шлюз 241 сообщений. Шлюз 241 сообщений сохраняет информацию регистрации запроса 201 регистрации в своей базе данных и возвращает сообщение об успехе 204 на рабочую станцию 233.
Затем, другой зарегистрированный экземпляр провайдера, на этот раз провайдера действующих услуг, активизируется на рабочей станции 233. На этот раз узел знает, что шлюз 241 сообщений отвечает за регистрации, и пересылает запрос 205 регистрации непосредственно на шлюз 241 сообщений. Шлюз 241 сообщений сохраняет информацию регистрации запроса 205 регистрации в своей базе данных и возвращает сообщение 206 об успехе на рабочую станцию 233.
Затем принтер 236 (например, принтер UPnP) включается и посылает объявление 207. Сервер 234 обнаруживает объявление 207 и маршрутизирует запрос 208 регистрации брокеру 237 сообщений. Брокер 237 сообщений пересылает запрос 208 регистрации на шлюз 241 сообщений. Шлюз 241 сообщений с