Взаимодействие между соседствами в рамках объединения по механизму рандеву
Иллюстрации
Показать всеИзобретение относится к вычислительной технике. Технический результат заключается в повышении эффективности передачи данных между узлами сети посредством применения механизма рандеву. Способ отправки сообщения в инфраструктуре объединения в вычислительной системе, причем инфраструктура объединения представлена связанным списком узлов, связанный список узлов разделен на иерархическое дерево колец, в котором: принимают сообщение в подкольце; определяют, что узел, имеющий принадлежность подкольцу, должен отправить сообщение к другому подкольцу; используют внутрикольцевое взаимодействие в пределах подкольца, чтобы идентифицировать следующий узел с таблицей входов набора боковых колец; используют межкольцевое взаимодействие для посылки сообщения от следующего узла к дополнительному подкольцу на том же определенном уровне подколец, чтобы обойти корневое кольцо, включающий в себя этап, на котором следующий узел осуществляет доступ к узлу входа в дополнительное подкольцо из таблицы входов набора боковых колец следующего узла, и этап, на котором следующий узел посылает сообщение к узлу входа в дополнительное подкольцо. 4 н. и 33 з.п. ф-лы, 30 ил.
Реферат
Уровень техники
Вычислительные системы и имеющие к ним отношение технологии влияют на множество аспектов общественной жизни. Действительно, способность вычислительной системы обрабатывать информацию преобразила образ нашей жизни и трудовой деятельности. Вычислительные системы в настоящее время, как правило, выполняют совокупность задач (например, обработку текстов, планирование и управление базами данных), которые до появления вычислительной системы выполнялись вручную. Позднее вычислительные системы были соединены друг с другом и с другими электронными устройствами для организации как проводных, так и беспроводных вычислительных сетей, по которым вычислительные системы и другие электронные устройства могут передавать электронные данные. В результате многие задачи, выполняемые на вычислительной системе (например, голосовая связь, организация доступа к электронной почте, управление бытовой электронной аппаратурой, просмотр сетевых страниц и печать документов), включают в себя обмен электронными сообщениями между множеством вычислительных систем и/или другими электронными устройствами через проводные и/или беспроводные вычислительные сети.
Однако для того, чтобы использовать сетевой ресурс для выполнения задачи с использованием вычислительной техники, вычислительная система должна обладать некими средствами идентификации и получения доступа к сетевому ресурсу. Соответственно, ресурсам обычно присваиваются уникальные идентификаторы, например сетевые адреса, которые однозначно идентифицируют ресурсы и могут использоваться, чтобы отличать один ресурс от других ресурсов. Таким образом, вычислительная система, которая желает использовать ресурс, может подключиться к ресурсу, используя сетевой адрес, который соответствует этому ресурсу. Однако получение доступа к сетевому ресурсу может быть затруднено, если вычислительная система не имеет предварительных сведений о сетевом адресе для сетевого ресурса. Например, вычислительная система не может напечатать документ на сетевом принтере, если эта вычислительная система (или другая сетевая вычислительная система) не знает сетевого адреса сетевого принтера.
Поэтому для вычислительных систем были разработаны различные механизмы (например, Система Именования Доменов ("DNS" - Domain Name System), Active Directory (AD), Распределенные Файловые Системы ("DFS" - Distributed File Systems)) для идентификации заранее неизвестных ресурсов (и организации к ним доступа). Однако, вследствие большого количества и разнообразия ресурсов (например, устройств и услуг), которые доступны через разные вычислительные сети, разработчикам часто приходится разрабатывать приложения, которые реализуют различные механизмы идентификации ресурса и организации доступа. Каждый особый механизм может иметь разные требования к кодированию и может не предоставлять разработчику всех функциональных средств, которые необходимы для приложения.
Например, хотя DNS имеет распределенную архитектуру администрирования (т.е. централизованное управление не требуется), DNS не обеспечивает достаточной динамической, самоорганизующейся поддержки нестойкой модели данных и запросов и имеет фиксированный набор корневых объектов. С другой стороны, AD является достаточно динамическим, но для него требуется централизованное администрирование. Более того, аспекты различных механизмов могут быть несовместимы друг с другом. Например, ресурс, идентифицируемый с использованием DNS, может быть несовместим с протоколами маршрутизации DFS. Таким образом, разработчик может быть вынужден выбирать наиболее подходящий механизм и отказываться от преимуществ других механизмов.
Механизмы для идентификации ресурсов могут быть особенно проблематичными в одноранговых сетях. DNS предоставляет услугу поиска, с именами основных узлов в качестве ключей и IP-адресами в качестве значений, которая основывается на наборе специальных корневых узлов обслуживания для реализации поисковых запросов. Более того, DNS нуждается в управлении информацией (NS-записи), чтобы предоставить возможность клиентам перемещаться по иерархической структуре блока преобразования имен. Таким образом, ресурс должен быть внесен в DNS, прежде чем этот ресурс сможет быть идентифицирован в сети. В крупномасштабных сетях, где сеть формируют часто подключаемые и отключаемые узлы, расчет на ввод информации не всегда практически осуществим. Дополнительно, DNS ограничивается задачей поиска основных узлов или услуг и не является общеприменимой к другим типам ресурсов.
Поэтому были разработаны другие механизмы для идентификации ресурсов и организации доступа, чтобы попытаться устранить эти недостатки. Ряд механизмов включает в себя протоколы распределенного поиска, которые лучше масштабируемы, чем DNS. Эти механизмы используют различные конфигурации узлов и алгоритмы маршрутизации для направления запросов соответствующим ресурсам и хранения информации для поиска.
По меньшей мере, один из этих механизмов использует локальные многоуровневые карты соседних элементов на каждом узле в сети для маршрутизации сообщения к узлу назначения. Это по существу приводит к архитектуре, где каждый узел является "корневым узлом" соответствующего дерева узлов (узлов в его карте соседей). Сообщения пошагово маршрутизируются к идентификатору назначения разряд за разрядом (например, ***6=> **46=>, *346=> 2346, где * отражает групповые символы). Эффективность маршрутизации механизмов такого типа равна O(log N) переходов маршрутизации, и требуются узлы для сохранения таблицы маршрутизации размера O(log N).
По меньшей мере, один другой из этих механизмов присваивает узлам уникальный идентификатор (ID), который берется из линейного кольца чисел. Узлы сохраняют таблицы маршрутизации, которые содержат указатели на непосредственно следующий за ними узел (согласно значению идентификатора), и на те узлы, чьи значения идентификаторов представляют собой ближайший последующий элемент относительно значения ID + 2L. Эффективность маршрутизации механизмов такого типа также равна O(log N) переходов маршрутизации, и требуются узлы для сохранения таблицы маршрутизации размера O(log N).
По меньшей мере, одному из дополнительных механизмов необходимо O(log N1/d) переходов маршрутизации, и требуются узлы для сохранения таблицы маршрутизации размера O(D). Таким образом, эффективность маршрутизации всех этих механизмов зависит, по меньшей мере частично, от количества узлов в системе.
Дополнительно, так как идентификаторы (по меньшей мере, для некоторых из механизмов) могут быть равномерно распределены по кольцу, всегда есть некоторая вероятность того, что маршрутизация между узлами на кольце приведет к некоторой неэффективности. Например, переходы маршрутизации могут преодолевать обширные географические расстояния, переправляться через более дорогостоящие каналы передачи данных или проходить через небезопасные области и т.д. К тому же, когда маршрутизация сообщения задействует множественные переходы, есть некоторый шанс, что подобные события будут происходить неоднократно. К сожалению, эти механизмы не принимают во внимание соседство узлов (физическое или в ином смысле) по отношению друг к другу. Например, в зависимости от распределения узлов на кольце маршрутизация сообщения от Нью-Йорка до Бостона может задействовать маршрутизацию сообщения от Нью-Йорка до Лондона, до Атланты, до Токио, а затем до Бостона.
Соответственно, по меньшей мере, один другой, более современный, механизм принимает во внимание соседство, определяя соседство как единый скалярный показатель соседства (например, переходы IP-маршрутизации или географическое расстояние). Эти механизмы используют идею основанного на соседстве выбора входов таблицы маршрутизации. Поскольку существует множество "правильных" возможных узлов для каждого входа таблицы маршрутизации, эти механизмы пытаются выбрать ближайший узел из числа возможных узлов. В результате эти механизмы могут обеспечить функцию, которая позволяет каждому узлу определять "расстояние" до себя от узла с заданным IP-адресом. Сообщения направляются между узлами в ближайшем соседстве, для продвижения по направлению к назначению, перед направлением на узел, который более удален. Таким образом, можно сберечь часть ресурсов, а маршрутизация будет эффективной.
К сожалению, эти существующие механизмы обычно не предусматривают, в частности, симметричной зависимости между узлами (т.е. если первый узел считает, что второй узел является его партнером, то второй узел также рассматривает первый узел в качестве партнера), направления сообщения в обоих направлениях (по часовой стрелке и против часовой стрелки) по кольцу, выделения связанных списков узлов на основании множества показателей соседства и направления сообщения на основании множества показателей соседства. Эти недостатки могут ограничивать динамическую, распределенную и эффективную передачу данных между узлами сети, например, при транслировании данных на все узлы сети.
Раскрытие изобретения
Технический результат, достигаемый при использовании заявленного изобретения, заключается в повышении эффективности передачи данных между узлами сети посредством применения механизма рандеву. Настоящее изобретение распространяется на способы, системы и компьютерные программные продукты для обеспечения взаимодействия между соседствами в рамках объединения по механизму рандеву (т.е. механизму взаимодействия между параллельными процессами). В некоторых вариантах осуществления поддерживается таблица входов множества боковых колец для узла. Узел обращается к таблице входов множества боковых колец, сконфигурированной для хранения входов множества боковых колец для узла. Каждый вход множества боковых колец конфигурируется для указания бокового кольца узла и, по меньшей мере, одного соответствующего узла входа в боковое кольцо этого узла. Информация таблицы входов множества боковых колец получается из доступных ресурсов, которые обеспечивают информацию, касающуюся конфигурации дерева колец. Таблица входов множества боковых колец обновляется до соответствующих структур входов множества боковых колец на основании полученной информации таблицы входов множества боковых колец. Соответствующая структура входов множества боковых колец включает в себя боковое кольцо узла и, по меньшей мере, один соответствующий узел входа в боковое кольцо узла.
В других вариантах осуществления информация между соседствами передается в дереве колец. В одном варианте осуществления взаимодействия между соседствами определяется, что узел должен отправить сообщение в определенное боковое кольцо этого узла. Узел обращается к таблице входов множества боковых колец, сконфигурированной для хранения входов множества боковых колец для этого узла. Каждый вход множества боковых колец конфигурируется для указания бокового кольца узла и соответствующего, по меньшей мере, одного узла входа в боковое кольцо этого узла. По меньшей мере, один вход множества боковых колец для определенного бокового кольца идентифицируется, исходя из таблицы входов множества боковых колец узла. Каждый из этих, по меньшей мере один, входов множества боковых колец указывает, по меньшей мере, один узел входа определенного бокового кольца. Сообщение отправляется, по меньшей мере, на один указанный узел входа.
В другом варианте осуществления взаимодействия между соседствами определяется, что вызывающий узел намеревается направить сообщение на узел назначения, который является ближайшим для заданного идентификатора узла в целевом кольце соседства в пределах дерева колец. Идентифицируются один или более узлов входа, являющихся узлами, принадлежащими, по меньшей мере, или целевому кольцу соседства, или родительскому кольцу целевого кольца соседства. Сообщение отправляется на идентифицированный узел входа. Сообщение указывает, что идентифицированный узел входа должен привести сообщение к узлу, который имеет идентификатор узла, ближайший к указанному узлу назначения в целевом кольце соседства.
Данный раздел "Раскрытие Изобретения" предусмотрен для представления в упрощенной форме набора концепций, которые дополнительно описываются далее в разделе "Осуществление Изобретения". Данный раздел "Раскрытие Изобретения" не предназначен для установления ключевых признаков или существенных признаков заявляемого предмета изобретения, а также не предназначен для использования в качестве помощи при определении объема заявляемого предмета изобретения.
Дополнительные признаки и преимущества настоящего изобретения будут изложены в последующем описании и частично будут очевидны из описания или могут быть изучены при практическом использовании изложенной идеи изобретения. Признаки и преимущества настоящего изобретения могут быть реализованы и получены посредством инструментов и комбинаций, особо отмеченных в прилагаемой формуле изобретения. Признаки настоящего изобретения станут полностью очевидными из последующего описания и прилагаемой формулы изобретения или могут быть изучены при практическом использовании настоящего изобретения, которое описано в дальнейшем в этом документе.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Для описания вида производства, которым вышеперечисленные и другие преимущества и признаки могут быть получены, более конкретное описание предмета настоящего изобретения, вкратце описанного выше, будет представлено со ссылками на определенные варианты осуществления, которые проиллюстрированы на прилагаемых чертежах. С пониманием того, что эти чертежи изображают только типичные варианты осуществления и, следовательно, не должны рассматриваться как ограничивающие в объеме, варианты осуществления будут описаны и раскрыты с дополнительными особенностями и подробностями с помощью прилагаемых чертежей, на которых:
Фиг. 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 - иллюстративную схему последовательности операций для другого способа отправки информационного сообщения между соседствами в дереве колец.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Настоящее изобретение распространяется на способы, системы и компьютерные программные продукты для обеспечения взаимодействия между соседствами в рамках объединения с поддержкой механизма рандеву. В некоторых вариантах осуществления поддерживается таблица входов множества боковых колец для узла. Узел обращается к таблице входов множества боковых колец, сконфигурированной для хранения входов множества боковых колец для узла. Каждый вход множества боковых колец конфигурируется для указания бокового кольца узла и, по меньшей мере, одного соответствующего узла входа в боковое кольцо этого узла. Информация таблицы входов множества боковых колец получается из доступных ресурсов, которые обеспечивают информацию, касающуюся конфигурации дерева колец. Таблица входов множества боковых колец обновляется до соответствующей структуры входов множества боковых колец, на основании полученной информации таблицы входов множества боковых колец. Соответствующая структура входов множества боковых колец включает в себя боковое кольцо узла и, по меньшей мере, один соответствующий узел входа в боковое кольцо узла.
В других вариантах осуществления информационное сообщение между соседствами отправляется в дерево колец. В одном варианте осуществления взаимодействия между соседствами определяется, что узел должен отправить сообщение в определенное боковое кольцо этого узла. Узел обращается к таблице входов множества боковых колец, сконфигурированной для хранения входов множества боковых колец для этого узла. Каждый вход множества боковых колец конфигурируется для указания бокового кольца узла и соответствующего, по меньшей мере, одного узла входа в боковое кольцо этого узла. По меньшей мере, один вход множества боковых колец для определенного бокового кольца идентифицируется, исходя из таблицы входов множества боковых колец узла. Каждый из этих, по меньшей мере один, входов множества боковых колец указывает, по меньшей мере, один узел входа определенного бокового кольца. Сообщение отправляется, по меньшей мере, на один указанный узел входа.
В другом варианте осуществления взаимодействия между соседствами определяется, что вызывающий узел намеревается направить сообщение на узел назначения, который является ближайшим для заданного идентификатора узла в целевом кольце соседства в пределах дерева колец. Идентифицируются один или более узлов входа, являющихся узлами, принадлежащими, по меньшей мере, или целевому кольцу соседства, или родительскому кольцу целевого кольца соседства. Сообщение отправляется на идентифицированный узел входа. Сообщение указывает, что идентифицированный узел входа должен привести сообщение к узлу, который имеет идентификатор узла, ближайший к указанному узлу назначения в целевом кольце соседства.
Варианты осуществления в пределах объема настоящего изобретения включают в себя машиночитаемые носители, чтобы переносить или иметь в наличии исполняемые на компьютере инструкции или структуры данных, хранящиеся на них. Такие машиночитаемые носители могут быть любыми имеющимися в распоряжении носителями, которые доступны для универсальной или специализированной вычислительной системы. Для примера, но не ограничиваясь этим, такие машиночитаемые носители могут охватывать физические запоминающие среды, такие как ОЗУ, ПЗУ, СППЗУ, компакт-диск или другой оптический дисковый накопитель, накопитель на магнитных дисках или другие магнитные запоминающие устройства, или любые другие носители, которые могут использоваться как средство для переноса или хранения требуемых программных средств в виде исполняемых на компьютере инструкций, машиночитаемых инструкций или структур данных и которые могут быть доступны для универсальной или специализированной вычислительной системы.
В данном описании и в нижеследующей формуле изобретения "сеть" определяется как один или более каналов передачи данных (возможно с различными скоростями), которые обеспечивают возможность переноса электронных данных между вычислительными системами и/или модулями (например, аппаратными и/или программными модулями). Когда информация передается или предоставляется по сети или по другой линии связи (или аппаратно-реализованной, или беспроводной, или комбинации аппаратно-реализованной или беспроводной) на вычислительную систему, соединение по существу рассматривается как машиночитаемая среда. Таким образом, любое такое соединение по существу характеризует машиночитаемую среду. Комбинации вышеизложенного также должны быть включены в область определения машиночитаемых носителей. Исполняемые на компьютере инструкции содержат, например, инструкции и данные, которые заставляют универсальную вычислительную систему или специализированную вычислительную систему выполнять некоторую функцию или группу функций. Исполняемые на компьютере инструкции могут быть, например, двоичными файлами, инструкциями в промежуточном формате, таком как язык ассемблера, или даже исходным кодом. В некоторых вариантах осуществления аппаратные модули, такие, например, как специализированные интегральные схемы или вентильные матрицы, оптимизируются для реализации принципов настоящего изобретения.
В данном описании и в нижеследующей формуле изобретения "узел" определяется как один или более программных модулей, один или более аппаратных модулей или их комбинации, которые работают совместно для выполнения действий над электронными данными. Например, определение узла включает в себя аппаратные компоненты персонального компьютера, а также программные модули, такие как операционная система персонального компьютера. Физическое размещение модулей не имеет значения. Узел может включать в себя один или более компьютеров, соединенных через сеть. Аналогично, узел может включать в себя единственное физическое устройство (такое, как мобильный телефон или Персональный Цифровой Помощник "ПЦП"), в котором встроенные модули (такие, как запоминающее устройство и обрабатывающее устройство) работают совместно для выполнения действий над электронными данными. Дополнительно, узел может включать в себя специализированные аппаратные средства, такие, например, как маршрутизирующее устройство, которое включает в себя специализированные интегральные схемы.
Специалистам в данной области техники будет понятно, что настоящее изобретение может быть осуществлено на практике в сетевых вычислительных средах с конфигурациями узлов многих типов, включающих в себя персональные компьютеры, портативные компьютеры, переносные устройства, многопроцессорные системы, микропроцессорную или программируемую бытовую электронику, сетевые ПК, мини-компьютеры, центральные компьютеры коллективного пользования, мобильные телефоны, ПЦП, устройства постраничной передачи информации, маршрутизирующие устройства, шлюзы, программы-посредники, посреднические узлы обслуживания, межсетевые экраны, системы переадресации, устройства преобразования сетевых адресов и т.п. Кроме того, настоящее изобретение может быть осуществлено на практике в средах распределенных систем, в которых задачи выполняют и локальные, и удаленные узлы, которые связаны (или аппаратными каналами связи, или беспроводными каналами связи, или комбинацией аппаратных и беспроводных каналов связи) через сеть. В среде распределенной системы программные модули могут размещаться и на локальных, и на удаленных запоминающих устройствах.
Архитектура Объединения
Фиг. 1 демонстрирует пример инфраструктуры 100 объединения. Инфраструктура 100 объединения включает в себя узлы 101, 102, 103, которые могут образовывать различные типы партнерств объединения. Например, узлы 101, 102, 103 могут объединяться друг с другом как равноправные, без корневого узла. Каждый из узлов 101, 102 и 103 имеет соответствующий идентификатор 171, 182 и 193 соответственно.
Как правило, узлы 101, 102, 103 могут использовать протоколы объединения для формирования партнерства и обмена информацией (например, информацией о состоянии, касающейся взаимодействий с другими узлами). Формирование партнерств и обмен информацией способствует более эффективному и надежному доступу к ресурсам. Могут существовать другие промежуточные узлы (не показаны) между узлами 101, 102 и 103 (например, узлы, имеющие значения идентификаторов между 171 и 193). Таким образом, сообщение, маршрутизируемое, например, между узлом 101 и узлом 103, может проходить через один или более других промежуточных узлов.
Узлы в инфраструктуре 100 объединения (включающей в себя другие промежуточные узлы) могут включать в себя соответствующие наборы протоколов рандеву. Например, узлы 101, 102 и 103 включают в себя соответствующие наборы протоколов рандеву 141, 142 и 143 соответственно. Каждый из наборов протоколов 141, 142 и 143 включает в себя прикладной уровень (например, прикладные уровни 121, 122 и 123) и другие нижние уровни (например, соответствующие другие нижние уровни 131, 132 и 133). Каждый уровень в наборе протоколов рандеву отвечает за различные функциональные возможности, связанные с организацией рандеву ресурсного запроса с соответствующим ресурсом.
Например, другие нижние уровни могут включать в себя канальный уровень, уровень маршрутизации и функциональный уровень. Как правило, канальный уровень отвечает за надежный перенос сообщения (например, используя протокол WS-ReliableMessaging (протокол надежной доставки сообщений) и Простой Протокол Доступа к Объектам ("SOAP" - Simple Object Access Protocol)) от одной конечной точки к другой (например, от узла 101 к узлу 103). Канальный уровень также отвечает за обработку заголовков для надежного входящего и исходящего обмена сообщениями и сохранение состояния, соотнесенного с сеансами надежного обмена сообщениями.
Как правило, уровень маршрутизации отвечает за вычисление следующего перехода по направлению к назначению. Уровень маршрутизации также отвечает за обработку заголовков для входящей и исходящей адресации и маршрутизации сообщений и сохранение состояния маршрутизации. В общем случае функциональный уровень отвечает за выдачу и обработку сообщений протокола рандеву, таких как запросы на установление и прерывание соединения, проверки связи, обновления и другие сообщения, а также генерирование откликов на эти сообщения. Функциональный уровень обрабатывает сообщения запросов от уровня маршрутизации и отправляет обратно соответствующие ответные сообщения, если таковые имеются, на вызывающий узел, используя уровень маршрутизации. Функциональный уровень также инициирует сообщения запросов и использует уровень маршрутизации для доставки сообщений запросов.
Как правило, прикладной уровень обрабатывает особые данные, полученные не по протоколу рандеву, доставляемые от функционального уровня (т.е. прикладные сообщения). Функциональный уровень может иметь доступ к прикладным данным от прикладного уровня и получать и размещать прикладные данные в сообщениях протокола рандеву (например, проверках связи и обновлениях). То есть функциональный уровень может осуществлять передачу прикладных данных совместно с сообщениями протокола рандеву и может осуществлять возврат прикладных данных на прикладной уровень в узлы, принимающие протокол рандеву. В некоторых вариантах осуществления прикладные данные используются для идентификации ресурсов и предназначений ресурсов. Таким образом, прикладной уровень может включать в себя специализированную логику и устанавливать, как обрабатывать данные, принятые от других нижних уровней и отправленные на них, с целью идентификации ресурсов и предназначений ресурсов.
Механизмы Объединения
Узлы могут объединяться, используя ряд различных механизмов. Первый механизм объединения включает в себя равноправные узлы, переправляющие информацию на все другие равноправные узлы. Когда узел должен присоединиться к инфраструктуре объединения, этот узел использует протокол обнаружения широковещательной/многоадресной передачи, такой, например, как протокол WS-Discovery (протокол обнаружения сетевых служб), чтобы объявить о своем присутствии, и вызывает широковещательный/групповой поиск для обнаружения других узлов. Затем этот узел создает простое партнерство эстафетной передачи с другими узлами, уже представленными в сети, и принимает новые партнерства с вновь присоединяющимися узлами. После этого узел просто переправляет все специализированные сообщения на все свои партнерские узлы.
Второй механизм объединения включает в себя равноправные узлы, которые наиболее эффективно передают специализированные сообщения к их назначению(ям). Когда новый узел должен присоединиться к инфраструктуре объединения, этот новый узел использует протокол обнаружения широковещательной/многоадресной передачи, такой, например, как протокол WS-Discovery, чтобы объявить о своем присутствии, и вызывает широковещательный/групповой поиск для обнаружения других узлов, которые являются частью инфраструктуры объединения. При обнаружении другого узла новый узел создает партнерство с этим другим узлом. Благодаря созданному партнерству новый узел узнает о присутствии других узлов, уже составляющих инфраструктуру объединения. Затем он создает партнерства с этими вновь узнанными узлами и принимает любые новые поступающие запросы на создание партнерства.
И входы/выходы узлов и регистрации предназначений в определенных специализированных сообщениях подвергаются лавинной маршрутизации в инфраструктуре объединения, приводящей к тому, что каждый узел имеет глобальные сведения о других партнерских узлах и регистрациях предназначений в специализированных сообщениях. Обладая такими глобальными сведениями, любой узел может отправлять специализированные сообщения напрямую на узлы, которые проявили интерес к специализированному сообщению.
Третий механизм объединения включает в себя равноправные узлы, неявно переправляющие все специализированные сообщения к их назначению(ям). В этом третьем механизме узлам присваиваются идентификаторы, такие, например, как 128-битный или 160-битный идентификатор. Узел, ответственный за сохранение регистрации предназначения в данном специализированном сообщении, может быть определен как узел, чей идентификатор является ближайшим к полученной посредством отображения (например, хеширования) идентификационной информации назначения (например, URI - Uniform Resource Identifier - унифицированный идентификатор ресурса) специализированного сообщения для этого 128-битного или 160-битного пространства идентификаторов.
В этом третьем механизме входы и выходы узлов подвергаются лавинной маршрутизации по всей структуре. С другой стороны, регистрации предназначений в некоторых специализированных сообщениях переправляются на узлы, которые ответственны за сохранение такой регистрационной информации. Ради расширяемости, выравнивания нагрузки и отказоустойчивости узел, принимающий регистрацию предназначения в некоторых специализированных сообщениях, может бесперебойно производить лавинную маршрутизацию этой регистрационной информации в пределах своего окрестного множества. Окрестное множество для конкретного узла может быть определено как множество узлов, имеющих идентификаторы в пределах предварительно заданного диапазона в обе стороны от идентификатора конкретного узла.
Как и во втором механизме, вновь присоединяющийся узел использует протокол обнаружения широковещательной/многоадресной передачи, такой, например, как протокол WS-Discovery, чтобы объявить о своем присутствии, и вызывает локальный широковещательный/групповой поиск для обнаружения другого узла, который уже является частью инфраструктуры объединения. Новый узел создает партнерство с обнаруженным узлом и использует это партнерство, чтобы узнать о присутствии других новых узлов, составляющих инфраструктуру объединения. Затем новый узел создает дополнительные партнерства с недавно обнаруженными узлами и принимает любые новые поступающие запросы на создание партнерства. Новый узел принимает входящие регистрации предназначений определенных ресурсов прикладного уровня от своих партнеров, которые отвечают за это, и может произвести лавинную маршрутизацию для них по своему окрестному множеству. Таким образом, в большинстве случаев сообщения могут быть переправлены к своему конечному назначению через посреднические узлы маршрутизации (например, те, с которыми у вновь присоединившегося узла есть партнерство или о которых знает партнерский узел).
В ответ на прием входящего специализированного сообщения новый узел переправляет сообщение партнерскому узлу, который может отвечать за сохранение регистрационной информации для назначения, заданного в сообщении. Таким образом, при использовании этого третьего механизма каждый узел в инфраструктуре объединения имеет глобальные сведения от всех других узлов, а регистрационная информация эффективно разделена среди узлов. Специализированные сообщения передаются к своему конечному назначению только через партнерские узлы, которые могут отвечать за сохранение регистрационной информации о предназначении в этих специализированных сообщениях. Таким образом, косвенность достигается посредством эстафетной передачи только партнерскому узлу, который имеет глобальные сведения о регистрационной информации предназначения для обрабатываемого сообщения. В этом состоит отличие от первого механизма, где косвенность достигается посредством эстафетной передачи всем партнерским узлам.
Четвертый механизм объединения включает в себя равноправные узлы, которые направляют сообщения к другим равноправным узлам. Этот четвертый механизм отличается от третьего механизма, по меньшей мере, тем, что и входы/выходы узлов и регистрации предназначений в некоторых специализированных сообщениях полностью маршрутизируются, вместо лавинной маршрутизации. Протоколы маршрутизации предназначены гарантировать рандеву между специализированными сообщениями и регистрационными сообщениями, которые выражают заинтересованность в этих специализированных сообщениях.
Фиг. 2 демонстрирует пример архитектуры 20 вычислительной системы, которая способствует косвенной маршрутизации запроса к партнерам. Архитектура 200 вычислительной системы иллюстрирует различные типы вычислительных систем, и устройства теоретически рассредоточены по множественным локальным областям обнаружения, составляя инфраструктуру объединения.
Рабочая