Оптимизация связи с использованием масштабируемых групп одноранговых узлов

Иллюстрации

Показать все

Изобретение относится к сетям передачи данных. Технический результат заключается в оптимизации связи между одноранговыми узлами. Сущность изобретения заключается в том, что одна из реализаций относится к использованию интеллектуального приемопередатчика, который динамически создает, кэширует и диспетчеризирует каналы связи между одноранговыми узлами. Другая реализация относится к использованию центрального объекта слежения, который может использоваться для эффективной регистрации и распространения одноранговых сообщений среди различных одноранговых узлов. В одной из реализации центральный объект отслеживания совместно используется среди одноранговых узлов в группе. Еще одна другая реализация относится к ассоциативному связыванию групп одноранговых узлов с пространствами имен и для указания групп одноранговых узлов из одного пространства имен в пределах, кроме того, еще других групп одноранговых узлов из иных пространств имен. Эти и другие аспекты изобретения также могут использоваться, чтобы гарантировать, что сохраняется цель доставки данного однорангового сообщения, и чтобы гарантировать, что оптимальные количества сообщений передаются на любой заданный одноранговый узел в любой заданный момент времени. 2 н. и 16 з.п. ф-лы, 7 ил.

Реферат

УРОВЕНЬ ТЕХНИКИ

Насколько компьютеризованные системы выросли в популярности, настолько возникла необходимость поддерживать связь с другими людьми и приложениями, ассоциативно связанными с ними. Вообще, компьютерные системы и связанные устройства обмениваются информацией через сеть по различным поводам, например, чтобы обмениваться персональными электронными сообщениями, продавать товары, поставлять информацию о счетах, передавать сообщения из одного приложения в другое и так далее. Однако должно приниматься во внимание, что так как компьютерные системы и их связанные приложения стали в большей степени сложными, опознавательные запросы, ассоциативно связанные с обменом сообщениями по сети, также возросли.

Вообще, есть некоторое количество разных протоколов и топологий для передачи сообщений из одной компьютерной системы в следующую по сети. Одна из традиционных топологий, такая как используемая с электронной почтой («email») и некоторыми системами мгновенной доставки сообщений, использует один или более централизованных серверов обмена сообщениями для управления и проверки пользовательской информации, а также для маршрутизации сообщений пользователей, отправленных из одной компьютерной системы в следующую. В этом примере одна компьютерная система регистрируется на централизованном сервере обмена сообщениями и отправляет сообщение, адресованное другому пользователю или компьютерной системе. Централизованный сервер принимает адресованное сообщение, проверяет пользовательскую информацию и отправляет сообщение, адресованное компьютерной системе (или пользователю).

Другая традиционная топология использует инфраструктуру между одноранговыми узлами для отправки сообщений непосредственно из одной компьютерной системы в следующую. То есть одна компьютерная система (то есть один «одноранговый узел» или «одноранговая компьютерная система») могла бы присоединяться непосредственно к другой компьютерной системе (то есть другому «одноранговому узлу» или «одноранговой компьютерной системе»), а затем отправлять сообщения непосредственно в другую одноранговую компьютерную систему. Традиционные одноранговые соединения, такие как эти, также могут содержать несколько других соединений с многочисленными другими разными одноранговыми компьютерными системами. В частности, один одноранговый узел также может быть подсоединен к многочисленным другим одноранговым узлам в сети связи и, кроме того, может быть подсоединен к определенной «группе» многочисленных одноранговых узлов.

Традиционные инфраструктуры одноранговой связи, такие как эти, однако, являются более ограниченными во многих отношениях в том, каким образом они содействуют связи, по сравнению с традиционными системами электронной почты и мгновенного обмена сообщениями. Например, традиционные инфраструктуры одноранговой связи типично не предоставляют группам возможность включать в себя другие группы. То есть группа одноранговых узлов типично содержит одну или более одноранговых компьютерных систем, но типично не включает в свой состав одиночную сущность (например, адрес или объект), представляющую другую группу, может быть, без отдельной адресации всех членов такой другой группы.

Традиционные инфраструктуры одноранговой связи также типично содержат, если это имеет место, несколько служб, которые в достаточной мере или разумно регулируют количество и средства для передачи определенных сообщений. Например, один одноранговый узел может отправлять сообщение паре других одноранговых узлов в определенной группе. Получающие одноранговые узлы, кроме того, могут ретранслировать сообщение нескольким другим одноранговым узлам в группе, не разбирая, кто изначально отправлял первое сообщение. По существу, исходный отправляющий одноранговый узел может принимать несколько копий исходного сообщения от других членов группы одноранговых узлов.

В дополнение, традиционные одноранговые инфраструктуры проводят не рационально - если вообще проводят - различие, как, когда или принимал ли пользователь ответ на запрос. Например, пользователь мог пожелать отправить запрос нескольким членам группы одноранговых узлов, но нуждаться в получении правильного ответа только один раз. Тем не менее, если членам группы одноранговых узлов не отправлено другое сообщение некоторой разновидности, что запрос был удовлетворен, каждый член группы одноранговых узлов может полагать, что еще не было ответа на запрос, и, таким образом, продолжать отвечать. Как результат, пользователь, по-видимому, мог бы получать несколько повторов одного и того же ответа от многочисленных одноранговых узлов в группе всего лишь на единичный запрос. В этом смысле, традиционная инфраструктура одноранговой связи также типично не очень хорошо проводит различие одного однорангового члена от соседнего внутри группы одноранговых узлов. Например, одноранговый узел может иметь потребность передавать определенную информацию только один раз одному члену из группы одноранговых узлов, такую как для присоединения к группе одноранговых узлов, но не желать (или не иметь потребности) передавать такую информацию всем членам группы одноранговых узлов. К сожалению, традиционные одноранговые инфраструктуры не предусматривают этот тип ограничения.

Поэтому можно понять, что традиционная инфраструктура одноранговой связи может содержать много ненужных копий сообщений, передаваемых по сети на различных стадиях. То есть может быть много излишних дубликатов сообщений, рассылаемых по одноранговой сети, вследствие неспособности проведения различия между одноранговыми узлами или того, создали одноранговые узлы или приняли сообщение, такое как в сценариях, описанных выше. В других случаях инфраструктуры одноранговой связи могут забиваться сообщениями, отправленными с использованием определенного механизма связи, который неуместен для данного контекста, где конечный пользователь даже мог бы не быть способным осуществлять доступ к сообщению между одноранговыми узлами.

Например, инфраструктура одноранговой связи может использовать механизм протокола передачи гипертекста («HTTP») для отправки сообщений пользователю на основании некоторой начальной информации о соединении. Если пользователь покидает локальную компьютерную систему (то есть выходит из здания), однако, может быть более эффективным передавать сообщения на мобильный телефон пользователя с использованием механизма связи службы коротких сообщений («SMS»). Тем не менее, традиционная инфраструктура одноранговой связи не будет автоматически корректировать свой выбранный механизм связи, чтобы приспособиться к изменению присутствия. В частности, инфраструктура одноранговой связи типично будет использовать подход «все или ничего» и оставаться только с изначально выбранным механизмом связи независимо от того, мог ли другой механизм связи быть более подходящим в более позднее время. Можно понять, что неспособность надлежащим образом регулировать, сколько и какие сообщения являются отправляемыми, может иметь следствием обременение инфраструктуры одноранговой связи.

Еще один аспект традиционных инфраструктур одноранговой связи состоит в том, что они обычно не учитывают возможные ограничения (например, аппаратные средства, программное обеспечение или то и другое) при рассмотрении режима работы «приема» и «отправки» на одноранговом узле. Например, отправляющий одноранговый узел может пожелать только широковещательно передавать информацию, как в случае распространения котировок акций, наряду с тем, что принимающий одноранговый узел может пожелать только принимать широковещательную информацию, как в случае простого просмотра потока котировок акций. Отправляющие и принимающие одноранговые узлы, кроме того, могут быть использующими два разных типа каналов связи с разными характеристиками. Например, один канал связи может иметь быструю скорость выгрузки и медленную скорость загрузки наряду с тем, что другой канал связи может иметь равную, но средне-быструю скорость выгрузки и загрузки. Традиционные одноранговые инфраструктуры, однако, типично не определяют надлежащие каналы связи (или другие решения по аппаратным средствам или программному обеспечению) по меньшей мере частично на основании типа режима работы однорангового узла и не корректируют надлежащим образом решение после установления однорангового соединения.

Соответственно традиционная связь между одноранговыми узлами может быть оптимизирована для широкого многообразия рассмотрений.

КРАТКАЯ СУЩНОСТЬ ИЗОБРЕТЕНИЯ

Реализации настоящего изобретения решают одну или более проблем в данной области техники с помощью систем, способов и компьютерных программных продуктов, которые оптимизируют связь между одноранговыми узлами. В частности, реализации настоящего изобретения включают в себя группы одноранговой связи, в отношении которых одноранговые узлы могут осуществлять подписку и опубликование и у которых могут быть членами другие группы одноранговых узлов. Реализации настоящего изобретения также включают в себя компоненты, которые могут интеллектуально и динамически выбирать надлежащие один или многочисленные разные каналы связи для заданного контекста. Реализации настоящего изобретения дополнительно включают в себя компоненты, которые гарантируют, что оптимальное количество сообщений передается на и из данного однорангового узла.

Например, один из способов в соответствии с реализацией настоящего изобретения для динамической настройки механизма связи влечет за собой идентификацию множества механизмов связи для передачи однорангового сообщения из одноранговой компьютерной системы в получающую одноранговую компьютерную систему. В дополнение, способ также может включать в себя автоматическое определение, что начальный механизм связи из множества механизмов связи является предпочтительным по отношению к другому механизму связи из множества механизмов связи. После выполнения этого определения способ дополнительно влечет за собой автоматический выбор начального механизма связи и отправку однорангового сообщения в получающую компьютерную систему с использованием выбранного начального механизма связи.

Другой альтернативный способ в соответствии с реализацией настоящего изобретения для управления связью группы одноранговых узлов в пределах пространства имен сети включает в себя идентификацию первой группы одноранговых узлов из одного или более одноранговых узлов, где первая группа одноранговых узлов ассоциативно связана с первым пространством имен. В дополнение, способ также включает в себя отправку сообщения запроса присоединения к группе в первое пространство имен, а также прием сообщения подтверждения из первого пространства имен, что членство в первой группе одноранговых узлов было принято. По существу, одноранговый узел был добавлен в список членства первой группы одноранговых узлов и одноранговый узел подписан на первое пространство имен.

Дополнительный альтернативный способ в соответствии с реализацией настоящего изобретения для оптимизации передачи одноранговых сообщений включает в себя прием однорангового сообщения по сети связи между одноранговыми узлами от исходящего (инициирующего) однорангового узла, где одноранговое сообщение включает в себя одно или более ограничений доставки. Одноранговый узел затем обращается к центральному объекту отслеживания, который указывает, по меньшей мере, что один или более одноранговых узлов приняли одноранговое сообщение и что инициирующий одноранговый узел отправлял одноранговое сообщение. Способ дополнительно включает в себя оценку одного или более ограничений доставки для однорангового сообщения и отправку однорангового ответного сообщения на основании указания, приведенного в качестве ссылки из центрального объекта отслеживания, а также на основании оценки одного или более ограничений доставки. По существу, способ может сохранять цель доставки инициирующего однорангового узла с этим сообщением.

Этот раздел - Сущность изобретения - приведен для ознакомления в упрощенном виде с выбором концепций, которые дополнительно описаны ниже в Подробном описании. Этот раздел, однако, не подразумевается как идентифицирующий ключевые признаки или существенные признаки заявленного объекта изобретения, также не подразумевается как используемый в качестве вспомогательного средства при определении объема заявленного объекта изобретения.

Дополнительные признаки и преимущества изобретения изложены в описании ниже и частично будут очевидны из описания или могут быть изучены при осуществлении изобретения на практике. Признаки и преимущества изобретения могут быть реализованы и получены посредством инструментальных средств и комбинаций, подробно указанных в прилагаемой формуле изобретения. Эти и другие признаки настоящего изобретения станут более очевидными из последующего описания и прилагаемой формулы изобретения или могут быть изучены посредством осуществления изобретения на практике, как изложено ниже.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

Для того чтобы описать способ, которым могут быть получены вышеизложенные и другие преимущества и признаки изобретения, более конкретное описание изобретения, кратко описанного выше, воспроизведено посредством ссылки на определенные варианты его осуществления, которые проиллюстрированы в прилагаемой формуле изобретения. С пониманием, что эти чертежи изображают только типичные варианты осуществления изобретения и поэтому не должны считаться ограничивающими его объем, изобретение будет описано и пояснено с дополнительной спецификой и детализацией посредством использования прилагаемых чертежей, на которых:

фиг.1A иллюстрирует обзорное схематическое представление системы связи между одноранговыми узлами, в которой одноранговый узел отправляет направленное сообщение в группу одноранговых узлов, в соответствии с реализацией настоящего изобретения;

фиг.1B иллюстрирует еще одно схематическое представление, как показанное на фиг.1A, в котором одноранговый узел отправляет направленное сообщение в группу одноранговых узлов;

фиг.2 иллюстрирует обзорное схематическое представление системы связи между одноранговыми узлами, в которой одноранговый узел отправляет сообщения с использованием интеллектуального приемопередатчика и центрального объекта отслеживания;

фиг.3 иллюстрирует схематическое представление, показанное на фиг.2, при этом интеллектуальный приемопередатчик различает функциональные возможности отправки и приема;

фиг.4 иллюстрирует блок-схему последовательности операций способа, содержащую последовательность действий в соответствии с реализацией настоящего изобретения для отправки сообщения с использованием выбранного механизма связи;

фиг.5 иллюстрирует блок-схему последовательности операций способа, содержащую последовательность действий в соответствии с реализацией настоящего изобретения для отправки сообщения в группу, ассоциативно связанную с пространством имен;

фиг.6 иллюстрирует блок-схему последовательности операций способа, содержащую последовательность действий в соответствии с реализацией настоящего изобретения для доставки однорангового сообщения с одним или более ограничениями доставки.

ПОДРОБНОЕ ОПИСАНИЕ

Настоящее изобретение распространяется на системы, способы и компьютерные программные продукты, которые оптимизируют связь между одноранговыми узлами. В частности, реализации настоящего изобретения включают в себя группы одноранговой связи, в отношении которых одноранговые узлы могут осуществлять подписку и опубликование и у которых могут быть членами другие группы одноранговых узлов. Реализации настоящего изобретения также включают в себя компоненты, которые могут интеллектуально и динамически выбирать надлежащие один или многочисленные разные каналы связи для данного контекста. Реализации настоящего изобретения дополнительно включают в себя компоненты, которые гарантируют, что оптимальное количество сообщений передается в и из данного однорангового узла.

Например, по меньшей мере один аспект настоящего изобретения включает в себя использование группы одноранговых узлов, которая в целом является точкой подписки, которая не обязательно нуждается в централизованном администраторе. В частности, каждый член (или «одноранговый узел») данной группы одноранговых узлов может считаться в качестве элемента пространства имен, в отношении которого каждый из одноранговых узлов членов группы может осуществлять подписку и опубликование. Группа одноранговых узлов может принадлежать, кроме того, еще одной группе и также может иметь иную группу одноранговых узлов в качестве одного из своих членов группы. Приложения в компьютерной системе данного однорангового узла затем могут оценивать каждую группу одноранговых узлов в терминах модели подписки/опубликования.

В дополнение, аспекты настоящего изобретения влекут за собой использование компонента интеллектуального приемопередатчика, который динамически выбирает надлежащий механизм связи для любого заданного сценария связи в любой момент времени. Например, и как более полно описано в материалах настоящей заявки, компонент интеллектуального приемопередатчика может служить средством взаимодействия между компонентом приложения в компьютерной системе однорангового узла и одним или более механизмами связи, такими как механизмы HTTP, SMS и TCP (протокола управления передачей), а также другими механизмами связи, такими как радиочастотные («РЧ», «RF»), инфракрасные компоненты, компоненты совместно используемой памяти и/или компоненты последовательного порта. Специалисты в данной области техники будут понимать, что могут использоваться многие разные виды связи.

В любой момент во время связи с одним или более одноранговыми узлами компонент интеллектуального приемопередатчика в отправляющей системе связи может выбирать (и/или настраиваться на) любой из протоколов связи. Компонент интеллектуального приемопередатчика также может динамически переключаться на (или включать в себя) другой протокол связи, если найден подходящим в более поздний момент, в зависимости от любого количества факторов, чтобы помогать делать связь настолько эффективной, насколько возможно. В дополнение, компонент интеллектуального приемопередатчика может кэшировать и повторно использовать каналы связи, так что компьютеризованной системе не нужно открывать многочисленные разные каналы связи для поддержания связи с одним и тем же одноранговым узлом.

Аспекты настоящего изобретения, кроме того, могут оптимизировать передающие и приемные каналы связи на основании режима работы данного однорангового узла. Например, компонент интеллектуального приемопередатчика может распознавать, когда одноранговый узел сконфигурирован главным образом для «приема» или главным образом для «отправки» одноранговых сообщений. Если одноранговый узел сконфигурирован главным образом для приема, то компонент интеллектуального приемопередатчика может выбирать протоколы связи и порты аппаратных средств, которые имеют более высокую пропускную способность и скорость загрузки. Подобным образом, если одноранговый узел сконфигурирован главным образом для отправки, то компонент интеллектуального приемопередатчика может выбирать протоколы связи и порты аппаратных средств, которые имеют более высокую пропускную способность и скорость выгрузки.

Кроме того, дополнительные аспекты настоящего изобретения включают в себя некоторое количество оптимизаций, которые могут помочь гарантировать, что надлежащие количества или копии данного сообщения передаются в структуре одноранговой связи. Например, и как более полно детализировано в материалах настоящей заявки, центральный объект отслеживания в каждой компьютерной системе однорангового узла может использоваться для отслеживания сообщений, отправленных между пользователями и отправляемых по разным каналам связи. В частности, центральные объекты отслеживания, например, могут помочь гарантировать, что отправляющие одноранговые узлы не принимают копии своих собственных сообщений или что другие одноранговые узлы не принимают дубликаты одного и того же сообщения.

Эти и другие аспекты настоящего изобретения, кроме того, могут использоваться для обеспечения некоторого количества дополнительных признаков в отношении инфраструктуры одноранговой связи. Например, аспекты настоящего изобретения могут использоваться для отправки одного сообщения в группу с ограничением, что сообщение будет отправляться только на «любой один» одноранговый узел в группе. Аспекты настоящего изобретения также могут использоваться для обеспечения приема только одного ответного сообщения, например, после наличия отправки запроса всем одноранговым узлам в данной группе, тем самым избегая излишних дубликатов.

Далее, со ссылкой на чертежи, фиг.1A иллюстрирует систему связи между одноранговыми узлами, которая включает в себя одноранговый узел 100, который находится на связи с одноранговым узлом 105, который, кроме того, находится на связи (например, имеет канал связи) с одноранговым узлом 110, одноранговым узлом 115 и одноранговым узлом 120. Одноранговый узел 115 также находится на связи с одноранговым узлом 120 наряду с тем, что одноранговый узел 110 также находится на связи с одноранговым узлом 125 в отдельном пространстве имен. Таким образом, проиллюстрированная система связи показывает, что один или более одноранговых узлов (например, 105, 110) также могут быть «узловыми» одноранговыми узлами. Эти узловые одноранговые узлы могут служить в качестве смешанного функционального блока, подобного централизованному серверу, для маршрутизации одноранговых сообщений или могут действовать как типичные конечные одноранговые узлы, которые просто обмениваются сообщениями туда и обратно с другим одноранговым узлом.

Например, узловые одноранговые узлы 105 и 110 оба хранят по меньшей мере часть списка группы для группы A. В частности, одноранговый узел 105 хранит список 130a группы, который включает в себя одноранговый узел 100, 110, 115 и 120; наряду с тем, что одноранговый узел 110 (узловой одноранговый узел) хранит список 130b, который включает в себя одноранговый узел 105 и группу В (через одноранговый узел 125) в своем составе. В одной из реализаций каждая часть списка группы хранится в виде хеш-таблицы.

Так или иначе, владение/управление списком группы также может предоставлять одноранговым узлам 105 и 110 возможность маршрутизировать (пересылать или «передавать по цепочке») одноранговые сообщения, адресованные одноранговым узлам в их соответствующем списке группы. Например, если бы одноранговый узел 105 принимал сообщение, направленное в группу В (через одноранговый узел 125), одноранговый узел 105 мог бы проверять состав (членство) в своем списке группы и определять, что он не имеет записи для группы B, но что запись может быть найдена в другой части (то есть 130b) списка группы, и соответственно пересылать запрос на одноранговый узел 110, который известен одноранговому узлу 105 размещающим (имеющим) остаток списка группы. В качестве альтернативы, часть 130a списка, размещенная (хостированная) одноранговым узлом 105, может хранить информацию, которая указывает, что часть 130b списка, хостированная одноранговым узлом 110, включает в себя запись для группы B. Как более полно описано ниже, одноранговый узел 110 затем может принимать сообщение и отправлять сообщение на соответствующий одноранговый узел 125, который является хостирующим список группы для группы B. Один из способов, которым это может делаться, состоит в отправке или опубликовании сообщения в отношении определенного «пространства имен».

Например, фиг.1A показывает, что проиллюстрированные одноранговые узлы могут быть ассоциативно связаны с некоторыми разделами пространства имен 160, 163. Вообще, пространство имен идентифицирует набор имен в иерархическом формате, чтобы избежать неопределенности, когда объекты разных происхождений - но с одним и тем же наименованием - смешиваются друг с другом. Поскольку пространства имен могут идентифицироваться универсальными идентификаторами ресурсов («URI») и поскольку одноранговые узлы также могут идентифицироваться посредством URI, группы одноранговых узлов также могут быть ассоциативно связаны с уникальным пространством имен, адресуемым посредством URI. Соответственно фиг.1A показывает, что одноранговые узлы 100, 105, 110, 115 и 120 являются частью одной и той же группы A в пространстве 160 имен наряду с тем, что одноранговый узел 125 является частью пространства 163 имен. То есть каждый из одноранговых узлов 100, 105, 110, 115 и 120 является адресуемым посредством URI в одном и том же пространстве 160 имен наряду с тем, что одноранговый узел 125 является адресуемым посредством URI в ином пространстве 163 имен. Каждый одноранговый узел в свою очередь может отправлять сообщения в группу посредством опубликования в отношении ассоциативно связанного пространства имен. Подобным образом одноранговые узлы могут присоединяться к группе отправкой запроса присоединения к группе в ассоциативно связанное пространство имен.

В дополнение, фиг.1A показывает, что группа одноранговых узлов из одного пространства имен (например, 163) также может быть членом иной группы одноранговых узлов из иного пространства имен (например, 160). Например, фиг.1A показывает, что списки 130a-b групп ассоциативно связаны с пространством 160 имен. Список 130b группы, однако, содержит «группу B» в своем составе. Список 130b группы, кроме того, показывает, что группа В является адресуемой через одноранговый узел 125 в пространстве 163 имен. Соответственно, сообщения, отправленные членам общей группы A пространства 160 имен, также будут пересылаться или передаваться по цепочке членам группы В пространства 163 имен.

Вообще, есть некоторое количество способов, которыми одна группа одноранговых узлов одного пространства имен может быть добавлена в другую группу одноранговых узлов иного пространства имен. В одной из реализаций одна группа (например, пространства 163 имен) запрашивается касательно членства одноранговых узлов (например, посредством URI одноранговых узлов в пространстве имен), и такие обнаруженные одноранговые узлы добавляются в состав группы, производящей запрос (например, пространства 160 имен). Каждый одноранговый узел затем может отправлять сообщения цепочки, принимаемые в таком виде, какой они имели бы в своей предыдущей группе до добавления в новую группу. В еще одной реализации одна группа может добавляться к другой группе посредством создания моста пространств имен между двумя ассоциативно связанными пространствами имен (то есть пространством 160 и 163 имен). В еще одной другой реализации контекст может ассоциативно связываться с конкретными диалогами одноранговых узлов, предоставляя диалогам возможность смешиваться по группам одноранговых узлов, и по-прежнему упорядочиваться по получателям. Например, атрибут сообщения может выражать «диалог 23» или даже может быть более точным и выражать «диалог Y группы A».

В дополнение фиг.1A дает обзор того, как один одноранговый узел может отправлять сообщение в группу одноранговых узлов с конкретными ограничениями на то, каким образом сообщения отправляются или от кого принимаются ответы. Например, фиг.1A показывает, что одноранговый узел 100 отправляет сообщение 103 с ограничением, что принимается «только один ответ». То есть приложение в компьютерной системе однорангового узла 100 может нуждаться только в одной общей части информации, такой как дата и время, и не заботиться о том, от кого одноранговый узел 100 принимает ответное сообщение. Тем не менее, одноранговый узел 100 мог бы пожелать отправлять сообщение стольким членам группы, скольким необходимо, до тех пор, пока не принят надлежащий ответ.

Соответственно, фиг.1A показывает, что одноранговый узел 100 отправляет сообщение 103 в одноранговый узел 105, который является узловым одноранговым узлом. Одноранговый узел 105 проверяет членство своей группы, чтобы удостовериться в записи членства для однорангового узла 100 и чтобы идентифицировать одноранговые узлы для ретрансляции сообщения. Одноранговый узел 105 также распознает, может ли он отвечать на сообщение 103. Например, одноранговый узел может не иметь надлежащих ресурсов или полосы пропускания, пригодных для ответа на сообщение 103, или может быть просто не знающим надлежащий ответ. Соответственно фиг.1A показывает, что одноранговый узел 105 пересылает сообщение на одноранговый узел 110 и на одноранговый узел 115. Так как одноранговый узел 115 также имеет соединение с одноранговым узлом 120 - и так как одноранговый узел 115 будет ретранслировать сообщения группы на одноранговый узел 120 - одноранговому узлу 105 не нужно отправлять еще одну копию сообщения 103 в одноранговый узел 120. По подобным причинам, так как одноранговый узел 105 знает, что одноранговый узел 110 является узловым для остатка списка группы для «группы A», одноранговый узел 105 может просто отправлять сообщение 103, адресованное одноранговому узлу 110, с дополнительной отметкой, что сообщение должно отправляться любым другим членам «группы A».

В этом примере одноранговый узел 120 отправляет ответ 107 обратно на одноранговый узел 100 через одноранговый узел 105 до того, как одноранговый узел 115 и одноранговый узел 110 делают это. В некоторых случаях это может произойти до того, как одноранговый узел 105 отправляет сообщение 103 в одноранговый узел 110 (что делало бы сообщение 103 одноранговому узлу 110 излишним). При приеме ответа 107 от однорангового узла 120, однако, одноранговый узел 105 способен замечать ответ, например, посредством создания записи в «центральном объекте отслеживания», более полно описанном ниже на последующих чертежах (например, фиг.2). Более того, поскольку одноранговый узел 100 требовал только одного ответа, одноранговый узел 105 распознает это ограничение и просто пересылает ответ 107 от однорангового узла 120 в одноранговый узел 100 наряду с отбрасыванием ответов 107 от одноранговых узлов 110 и 115 соответственно. По существу, одноранговый узел 105 может гарантировать, что одноранговый узел 100 принимает только один ответ, как запрашивалось изначально.

Фиг.1B иллюстрирует сценарий, подобный показанному на фиг.1A, хотя и показывающий другое ограничение, наложенное одноранговым узлом 100 на доставку сообщения. В частности, фиг.1B показывает, что одноранговый узел 100 обязывает сообщение 113 отправляться «любому одному» из группы A. Например, приложение в компьютерной системе однорангового узла 100 может пожелать отправлять информацию о «присутствии» любому обобщенному члену группы одноранговых узлов, но не нуждается в отправке такового всем членам группы. Информация о присутствии может быть доступна другим одноранговым узлам в группе без необходимости каждому обязательно принимать сообщение 113 из однорангового узла 100. Соответственно фиг.1B показывает, что одноранговый узел 100 отправляет сообщение 113 на одноранговый узел 105, «целевой» одноранговый узел, который также оказывается узловым одноранговым узлом в этом случае.

Может быть много способов, которыми один одноранговый узел автоматически выбирает целевой одноранговый узел, которому следует отправлять сообщение 113. Например, одноранговый узел 100 может учитывать информацию о близости и определять самое ближнее и/или самое дальнее местоположения в сети других одноранговых узлов в группе A. Эта информация также может использоваться для формирования потенциального класса или набора получателей, таких как получатели в одном местоположении в сети в сравнении с получателями в другом местоположении в сети. В одной из реализаций эта информация включает в себя такие критерии выбора, как наименьший идентификатор, наибольший идентификатор, случайный идентификатор, наименьшая ширина полосы пропускания или нагрузка обработки, либо некоторые другие динамически достижимые критерии.

Одноранговый узел 100 также может создавать соответствующие списки исключений в дополнение к любым таким спискам приемлемых получателей. В частности, одноранговый узел 100 может ограничивать сообщение 113 так, что оно адресуется «любому одному из группы A в пределах домена X, но никакому из группы B в пределах домена Y». Соответственно аспекты настоящего изобретения могут предусматривать больший масштаб в сценариях, таких как репликация кэша, где могут быть необходимы данные из другого однорангового узла (например, 115, 120), но где важен выбор «класса» однорангового узла, а сообщению (например, 113) поэтому не нужно реплицироваться всем одноранговым членам.

Во всяком случае, и как описано ранее, фиг.1B показывает, что сообщение 113 адресовано только одному из группы A (через 130a), которая ограничивает распространение сообщения 113 любым из однорангового узла 115 или однорангового узла 120, которые найдены в списке 130a группы. Таким образом, когда одноранговый узел 105 принимает сообщение 113, одноранговый узел 105 не получает надлежащего ответа и, таким образом, распознает, следует ли перенаправлять сообщение 113 на другой одноранговый узел. Это решение может быть основано на любом из параметров, идентифицированных выше, а также на рассуждениях о ширине полосы пропускания или ресурсах. Таким образом, например, фиг.1B показывает, что одноранговый узел 105 запрашивает одноранговый узел 115 в новом сообщении 111 (которое содержит контент из сообщения 113), пригоден ли он для ответа, на которое одноранговый узел 115 отвечает 109 отрицательно. Одноранговый узел 105 затем отправляет такой же запрос 111 на одноранговый узел 120 и принимает ответ 117, который одноранговый узел 105 затем передает по цепочке (или пересылает) обратно в одноранговый узел 100. Таким образом, фиг.1B показывает, как одноранговый узел 105 может помочь гарантировать, что удовлетворено ограничение отправки «любому одному», сделанное одноранговым узлом 100. В частности, фиг.1A, 1B иллюстрируют некоторое количество способов, которыми группы и одноранговые узлы в пределах группы могут быть организованы и могут управлять доставкой сообщений с некоторым количеством оптимизаций и/или ограничений.

Фиг.2 иллюстрирует более подробное схематическое представление одного или более из компонентов, которые могут использоваться, чтобы помочь задействовать эти организационные оптимизации, в соответствии с реализациями настоящего изобретения. Например, фиг.2 иллюстрирует центральный объект 145 отслеживания, который может использоваться для совместного использования аннотаций отправки и приема сообщений среди множества одноранговых узлов в группе выбора. В одной из реализаций центральный объект 145 отслеживания может храниться по меньшей мере частично на одноранговом узле (например, одноранговом узле 105, 110) в назначенном совместно используемом разделе. Обновления регистрации у центрального объекта 145 отслеживания затем могут по необходимости опубликовываться в отношении (или вытаскиваться из) любого из других одноранговых узлов в системе связи между одноранговыми узлами или конфигурироваться пользователем однорангового узла. Например, фиг.2 показывает, что информация, диспетчеризируемая центральным объектом 145 отслеживания на одноранговом узле 100, также может совместно использоваться в объектах отслеживания, ассоциативно связанных с одноранговыми узлами 115 и одноранговым узлом 120. В одной из реализаций центральный объект 145 отслеживания является единственным объектом, который каждый одноранговый узел совместно использует по разным транспортным входным и выходным процессорам на соответственном одноранговом узле, наряду с тем что в альтернативных реализациях (не показанных явно) каждый одноранговый узел может иметь монопольное использование независимого, по существу отдельного объекта отслеживания. Для простоты в описании, однако, фиг.2 иллюстрирует, что каждый из одноранговых узлов 100, 115 и 120 совместно используют по меньшей мере часть центрального объекта 145 отслеживания. Когда одноранговый узел 100 отправляет сообще