УРОВЕНЬ ТЕХНИКИ
Насколько компьютеризованные системы выросли в популярности, настолько возникла необходимость поддерживать связь с другими людьми и приложениями, ассоциативно связанными с ними. Вообще, компьютерные системы и связанные устройства обмениваются информацией через сеть по различным поводам, например, чтобы обмениваться персональными электронными сообщениями, продавать товары, поставлять информацию о счетах, передавать сообщения из одного приложения в другое и так далее. Однако должно приниматься во внимание, что так как компьютерные системы и их связанные приложения стали в большей степени сложными, опознавательные запросы, ассоциативно связанные с обменом сообщениями по сети, также возросли.
Вообще, есть некоторое количество разных протоколов и топологий для передачи сообщений из одной компьютерной системы в следующую по сети. Одна из традиционных топологий, такая как используемая с электронной почтой («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 отправляет сообщение 140 на одноранговый узел 115 и одноранговый узел 120, центральный объект 145 отслеживания согласно фиг.2 в одноранговом узле 100, а также объект 145 в одноранговых узлах 115 и 120 могут регистрировать тот факт, что одноранговый узел 100 отправлял сообщение 140. Совместное использование и/или распространение информации таким образом может задействовать любое количество оптимизаций обмена сообщениями, таких как посредством регистрации отправленных и принятых сообщений.
Например, как на фиг.1A, когда одноранговый узел 105 принимает многочисленные ответы 107, одноранговый узел 105 может распознавать из центрального объекта (например, 145) отслеживания, что ответ 107 уже был принят из однорангового узла 120 и отправлен на одноранговый узел 100, и, таким образом, использовать эту информацию для отбрасывания дублированного ответа 107 из одноранговых узлов 110 и 115. Подобным образом, как показано на фиг.1B, одноранговый узел 105 может справляться у центрального объекта (например, 145) отслеживания, чтобы определять, каким из одноранговых узлов в группе A одноранговый узел 105 уже попытался передать сообщение 113 при ограничении «отправки только одному», и так далее. Соответственно регистрация благодаря центральному объекту 145 отслеживания может предусматривать по меньшей мере один механизм, сконфигурированный для фильтрации дубликатов, а также использование черных списков, белых списков и/или идентификации информации об отсутствии и т.п., которые затем могут использоваться интеллектуальным приемопередатчиком 150a-c на более высоких уровнях канала связи.
Например, фиг.2 показывает, что одноранговый узел 100 может включать в себя компонент 150a интеллектуального (смарт) приемопередатчика. Интеллектуальный приемопередатчик 150a является индивидуализированным компонентом, который также обнаруживается в других одноранговых узлах в системе связи между одноранговыми узлами, таким как показан для приемопередатчика 150b на одноранговом узле 115 и приемопередатчика 150c на одноранговом узле 120. Как правило, интеллектуальный приемопередатчик 150a может использоваться для взаимодействия между компонентом 155 приложения и одним или более механизмов 133, 135 и 137 связи, а затем создания некоторых решений об отправке и приеме сообщений на основании многообразия ограничений или свойств системы (например, аппаратных, программных, сетевых проблем и т.п.).
В частности, интеллектуальный приемопередатчик (то есть 150a-c) может динамически определять в любое время в процессе связи, какой более эффективный механизм связи может быть основан на любом количестве динамически определяемых факторов. В одной из реализаций, например, интеллектуальный приемопередатчик 150a может кэшировать каналы приложения (например, посредством механизмов 133, 135, 137 связи и т.п.), так что установленную безопасность и другую логику прикладного уровня не требуется устанавливать повторно (в пределах временных окон). Интеллектуальный приемопередатчик 150a-c также пользуется различными идентификаторами и другими соображениями пропускной способности сети или сетевой обработки и выбирает установленный или предпочтенный механизм связи. В соответствии с этим интеллектуальный приемопередатчик 150a-c также может отслеживать показатели отказов сети, а также любые другие изменения сети, в том числе изменения или обновления сетевой политики. Такая информация, динамически определяемая интеллектуальным приемопередатчиком 150a-c, может предоставлять данному приемопередатчику возможность динамически настраивать, какие механизмы или каналы связи используются.
В качестве примера предположим, что система однорангового распространения (или любой механизм связи) устанавливает канал связи посредством любого из механизмов 133, 135 или 137 связи для конкретного оконечного однорангового узла (например, однорангового узла 115). Интеллектуальный приемопередатчик 150a в одноранговом узле 100 инициирует соединение на основании наиболее подходящих факторов с другим интеллектуальным приемопередатчиком в данном оконечном одноранговом узле (например, приемопередатчиком 150b в одноранговом узле 115), а затем кэширует состояние соединения (то есть «канал связи»). Поскольку соединение по-прежнему производится через компонент приложения канала связи, важная семантика соединения приложения может удерживаться при переключении на другой механизм связи (более низкий уровень канала связи) на основании последнего более подходящего механизма соединения.
По существу, каналы связи могут использоваться (или повторно использоваться) на основании любой существующей сетевой политики и/или ограничений в отправляемом сообщении (например, 140). Например, пользователь, такой как одноранговый узел 100 в надлежащей компьютерной системе (например, персональном компьютере, сотовом телефоне и т.п.), вначале может присоединяться к другому одноранговому узлу для отправки сообщения. Одноранговый узел 100 вначале может обнаруживать благодаря интеллектуальному приемопередатчику 150a некоторую информацию о «присутствии», которая внушает, что пользователь на одноранговом узле 115 присоединен к сети через наземную линию. Соответственно интеллектуальный приемопередатчик 150a может инициировать канал связи присоединением к одноранговому узлу 115 через интеллектуальный приемопередатчик 150b с использованием механизма 133 связи HTTP. Пользователь на одноранговом узле 115, однако, может уходить от компьютерной системы с наземной линией в более поздний момент и, таким образом, быть доступным впоследствии только через средство беспроводной связи. Соответственно интеллектуальный приемопередатчик 150b может передавать это изменение информации о присутствии по пользователю в приемопередатчик 150a на одноранговом узле 100.
Интеллектуальный приемопередатчик 150a затем может автоматически определять, что пользователь (одноранговый узел 115) лучше достижим посредством иного механизма связи, такого как механизм 137 связи SMS. Соответственно интеллектуальный приемопередатчик 150a использует кэшированный канал связи, изначально настроенный поверх механизма 133 HTPP, и дублирует канал связи поверх теперь предпочтительного механизма 137 связи SMS. Как результат, новые сообщения, отправленные через приложение 155 в одноранговый узел 115, теперь передаются с помощью SMS.
В одной или более альтернативных реализациях (не показанных) интеллектуальный приемопередатчик 150a также может создавать многочисленные каналы связи для доставки конкретного сообщения, как считается подходящим. Например, интеллектуальный приемопередатчик 150a может определять, что при условии срочной природы конкретного сообщения можно эффективно создавать многочисленные каналы связи, чтобы тем самым гарантировать, что пользователь принимает данное сообщение. В таком случае, например, интеллектуальный приемопередатчик 150 обнаруживал бы присутствие пользователя с помощью многочисленных трактов связи, а затем инициировал бы соответствующие многочисленные каналы связи.
Фиг.3 иллюстрирует другую реализацию в соответствии с аспектами настоящего изобретения, в которой компонент 150a интеллектуального приемопередатчика может использоваться для динамической диспетчеризации входящих и исходящих сообщений между одноранговыми узлами. В частности, фиг.3 иллюстрирует реализацию, в которой одноранговый узел 100 является передающим сообщения с использованием приложений 156 и 157, которые оперируют, главным образом, двумя режимами работы приема или отправки соответственно. Например, приложение 156 сконфигурировано для приема и отображения передаваемых непрерывным потоком котировок акций из однорангового узла 115 наряду с тем, что приложение 157 сконфигурировано для потоковой передачи видеоданных на один или более других одноранговых узлов 105 и 110. Каналы 170 и 175 связи, однако, имеют отличающиеся возможности. В частности, канал 170 связи имеет конфигурацию приблизительно одинаковой выгрузки и загрузки наряду с тем, что канал 175 связи имеет конфигурацию с более быстрой загрузкой, но более медленной выгрузкой.
Соответственно интеллектуальный приемопередатчик 150a, который служит средством взаимодействия между приложениями 156 и 157 и каналами 170 и 175 связи, может определять общий режим работы (общее поведение) приложения в любое заданное время, а затем принимать надлежащее решение, какой канал связи следует использовать. Например, фиг.3 показывает, что интеллектуальный приемопередатчик 150a выбирает, чтобы канал 170 связи использовался с приложением 157 (отправителем), поскольку канал 170 связи имеет относительно более быструю скорость выгрузки по сравнению с каналом 175. Подобным образом, фиг.3 показывает, что интеллектуальный приемопередатчик 150a выбирает, чтобы канал 175 связи использовался с приложением 156 (приемником), поскольку канал 175 связи имеет относительно более быструю скорость загрузки по сравнению с каналом 170. Понятно, однако, что интеллектуальный приемопередатчик 150a может изменять эти решения о каналах связи в более поздний момент, если необходимо или если аспекты каналов 170-175 связи изменяются по некоторым другим причинам.
Соответственно фиг.1A-3 и соответствующее описание иллюстрируют некоторое количество компонентов и механизмов для оптимизации и масштабирования систем связи между одноранговыми узлами. Реализации настоящего изобретения также могут быть описаны исходя из действий в способе для выполнения конкретной функции. В частности, фиг.4 и 5 иллюстрируют блок-схемы последовательностей операций из действий в способе для отправки сообщения с использованием динамически выбранного механизма связи и для отправки сообщения в группу, ассоциативно связанную с пространством имен соответственно.
Например, фиг.4 показывает, что способ динамической настройки механизма связи, используемого одноранговым узлом, содержит действие 200 для идентификации множества механизмов связи. Действие 200 включает в себя идентификацию множества механизмов связи для передачи сообщения из однорангового узла на получающий одноранговый узел. Например, фиг.2 показывает, что интеллектуальный приемопередатчик 150a на одноранговом узле 100 содержит механизмы 133, 135 и 137 связи при своем праве распоряжаться созданием канала связи для поддержания связи с другим одноранговым узлом (например, одноранговым узлом 115).
В дополнение, фиг.4 показывает, что способ содержит действие 210 определения, что по меньшей мере один начальный механизм связи предпочтителен по отношению к другому механизму связи. Действие 210 включает в себя автоматическое определение, что по меньшей мере один начальный механизм связи из множества механизмов связи предпочтителен по отношению к другому механизму связи из множества механизмов связи. Например, интеллектуальный приемопередатчик 150a идентифицирует информацию о присутствии касательно пользователя на одноранговом узле 115 из условия, чтобы пользователь присутствовал в присоединенной наземной линией связи компьютерной системе. Соответственно и на основании любых других уместных факторов (например, близости, местоположения в сети, соответствующих приложений, времени суток и т.п.) интеллектуальный приемопередатчик 150a определяет, что механизм 133 связи HTTP был бы более подходящим, чем, например, механизм 133 связи SMS.
Фиг.4 также показывает, что способ содержит действие 220 выбора по меньшей мере одного начального механизма связи. Действие 220 включает в себя автоматический выбор по меньшей мере одного начального механизма связи. Например, после определения, что механизм 133 связи HTTP является более подходящим, интеллектуальный приемопередатчик 150a создает канал связи между приложениями на одноранговых узлах 100 и 115 с использованием механизма 133 связи HTTP. В качестве альтернативы, если механизм 137 связи SMS является более подходящим в более позднее время, интеллектуальный приемопередатчик 150a берет кэш канала связи, созданного в начале для механизма 133 связи HTTP, и применяет его к механизму 137 связи SMS.
Более того, фиг.4 показывает, что способ содержит действие 230 по отправке сообщений с использованием по меньшей мере одного из выбранных механизмов связи. Действие 230 включает в себя отправку сообщения в компьютерную систему получающего однорангового узла с использованием по меньшей мере одного из выбранных начальных механизмов связи. Например, приложение 155 на одноранговом узле 100 отправляет сообщение 140 через канал связи, созданный с использованием механизма 133 связи HTTP, в соответствующее приложение (не показано) на одноранговом узле 115. Специфика канала связи, однако, далеко абстрагирована от самого уровня приложений и обрабатывается компонентом 150a интеллектуального приемопередатчика. Таким образом, если лежащий в основе механизм связи изменяется, приложение является практически не подозревающим об этом изменении и просто отправляет сообщения через канал связи, установленный интеллектуальным приемопередатчиком 150a.
Фиг.5 иллюстрирует альтернативный способ в соответствии с аспектами настоящего изобретения для связи группы одноранговых устройств в пределах сетевого пространства имен. В частности, фиг.5 показывает, что способ содержит действие 300 по идентификации первой группы одноранговых узлов, ассоциативно связанной с первым пространством имен. Действие 300 включает в себя идентификацию первой группы одноранговых узлов из одного или более одноранговых узлов, первая группа одноранговых узлов является ассоциативно связанной с первым пространством имен. Например, одноранговый узел 100 идентифицирует «группу A» одноранговых узлов, которая включает в себя одноранговые узлы 105, 110, 115 и 120, и распознает, что группа A ассоциативно связана с пространством 160 имен. По существу, понятно, что присоединение к группе A повлечет за собой присоединение к пространству 160 имен.
В дополнение, способ по фиг.5 содержит действие 310 по отправке сообщения присоединения к группе в первое пространство имен. Действие 310 включает в себя отправку сообщения запроса присоединения к группе в первое пространство имен. Например, одноранговый узел 100 отправляет сообщение запроса присоединения к группе (не показано) в пространство 160 имен. Это сообщение затем может обрабатываться наиболее подходящим одноранговым узлом в пространстве имен для обработки запроса, таким как одноранговый узел 105 или одноранговый узел 110, который хранит хеш-функцию по меньшей мере части списка (то есть 130a или 130b) группы.
Более того, фиг.5 показывает, что способ содержит действие 320 по приему подтверждения членства из первого пространства имен. Действие 320 включает в себя прием подтверждения из первого пространства имен, что членство в первой группе одноранговых узлов было принято, из условия, чтобы одноранговый узел был добавлен в список состава первой группы одноранговых узлов. Например, одноранговый узел 105, который является хранящим по меньшей мере часть хеш-таблицы (103a) состава «группы A», отвечает от лица пространства 160 имен одноранговому узлу 100, что членство было принято. В подобных направлениях одноранговый узел 110 отправляет сообщение запроса присоединения к группе от лица пространства 160 имен в пространство 163 имен, для того чтобы добавить «группу B». Одноранговый узел 125, который является узлом в «группе B» (и следовательно, пространства 163 имен), затем отвечает подтверждением одноранговому узлу 110 и, таким образом, предоставляет возможность для построения моста пространств имен между группами A и B. В качестве альтернативы, одобрение запроса присоединения к группе может обеспечивать транспортное средство для однорангового узла 110, чтобы запрашивать членство группы В, и включает в себя URI для каждого однорангового члена группы B в списке хеш-таблицы 130b для группы A.
Фиг.6 иллюстрирует еще один альтернативный способ в соответствии с реализацией настоящего изобретения для оптимизации передачи одноранговых сообщений между одним или более одноранговыми узлами в группе одноранговых узлов на основании одного или более ограничений доставки. В частности, фиг.6 показывает, что способ может содержать действие 400 по приему однорангового сообщения, указывающего одно или более ограничений доставки. Действие 400 включает в себя прием однорангового сообщения через по меньшей мере один канал связи между одноранговыми узлами от инициирующего однорангового узла, одноранговое сообщение указывает одно или более ограничений доставки. Например, одноранговый узел 100 отправляет сообщение 103, которое включает в себя ограничение, что необходим «только один ответ». Подобным образом, одноранговый узел 100 отправляет сообщение 113, которое обязывает сообщение отправляться «любому одному» из группы A.
Фиг.6 также показывает, что способ содержит действие 410 обращения к центральному объекту отслеживания. Действие 410 включает в себя обращение к центральному объекту отслеживания, центральный объект отслеживания указывает по меньшей мере, что один или более одноранговых узлов приняли одноранговое сообщение и что исходящий одноранговый узел отправлял одноранговое сообщение. Например, одноранговый узел 105 принимает сообщение 103 (фиг.1A) и справляется у центрального объекта 145 отслеживания (фиг.2), чтобы определить, что сообщение 103 было отправлено только одноранговым узлом 100 и еще не было принято никаким другим, нежели одноранговый узел 105. Центральный объект 145 отслеживания также может указывать, что сообщение 103 было отправлено посредством механизма 133 связи HTTP.
В дополнение, способ содержит действие 420 по оценке одного или более ограничений доставки. Действие 420 включает в себя оценку одного или более ограничений доставки для однорангового сообщения. Например, одноранговый узел 105 распознает ограничение в сообщении 103, что сообщению необходим только один ответ. Более того, одноранговый узел 105 распознает от центрального объекта 145 отслеживания, что никакие другие одноранговые узлы еще не давали ответ на сообщение 103. Подобным образом, одноранговый узел 105 распознает по центральному объекту 145 отслеживания, что никакие другие одноранговые узлы, которые должны принимать сообщение 113, еще не приняли сообщение 113. В качестве альтернативы, одноранговый узел 105 распознает, что никакие другие одноранговые узлы, которые могут ответить на сообщение 113, еще не приняли сообщение 113.
По существу, фиг.6 дополнительно показывает, что способ содержит действие 430 по отправке однорангового ответного сообщения. Действие 430 включает в себя отправку однорангового ответного сообщения на основании указания, представленного ссылкой из центрального объекта отслеживания, и на основании оценки одного или более ограничений доставки из условия, чтобы сохранялась цель доставки исходящего однорангового узла. Например, одноранговый узел 105 отправляет ответ 107 в одноранговый узел 100 и регистрирует это действие в центральном объекте 145 отслеживания (например, фиг.2). По существу, любые другие ответы 107, принятые одноранговым узлом 105, на сообщение 103 будут отбрасываться по меньшей мере одноранговым узлом 105, а также любым другим одноранговым узлом, который имеет доступ к центральному объекту 145 отслеживания. Подобным образом, одноранговый узел 105 регистрирует признак у центрального объекта 145 отслеживания, что одноранговый узел 105 принял сообщение 113, которое адресовано «любому одному» из группы A. Соответственно любой другой одноранговый узел в группе A, который непреднамеренно принимает копию сообщения 113, может отбрасывать сообщение или просто отменять ответ.
Соответственно, реализации настоящего изобретения дают некоторое количество преимуществ и оптимизаций для систем связи между одноранговыми узлами. Варианты осуществления и/или реализации в пределах объема настоящего изобретения также включают в себя машиночитаемые носители для переноса или содержания машиноисполняемых команд или структур данных, сохраненных на них. Такие машиночитаемые носители могут быть любыми имеющимися в распоряжении носителями, к которым может быть осуществлен доступ компьютером общего применения или специального назначения.
В качестве примера, а не ограничения, такие машиночитаемые носители могут содержать ОЗУ (оперативное запоминающее устройство, RAM), ПЗУ (постоянное запоминающее устройство, ROM), ЭСППЗУ (электрически стираемое программируемое постоянное запоминающее устройство, EEPROM), CD-ROM (ПЗУ на компакт диске) или другое оптическое дисковое запоминающее устройство, магнитное дисковое запоминающее устройство или другие магнитные устройства хранения данных либо любой другой носитель, который может использоваться для переноса или хранения требуемого средства управляющей программы в виде машиноисполняемых команд или структур данных, к которым может осуществляться доступ компьютером общего применения или специального назначения. Когда информация переносится или поставляется через сеть или другое соединение связи (соединенное кабелем, беспроводное или сочетание соединенного кабелем или беспроводного) в компьютер, этот компьютер, по сути, рассматривает соединение как машиночитаемый носитель. Таким образом, любое такое соединение, по сути, выражается машиночитаемым носителем. Сочетания вышеприведенных также должны быть включены в объем машиночитаемых носителей.
Машиноисполняемые команды, например, содержат команды и данные, которые побуждают компьютер общего применения, компьютер специального назначения или устройство обработки специального назначения выполнять определенную функцию или группу функций. Хотя объект изобретения был описан на языке, характерном для структурных признаков и/или действий способов, должно быть понятно, что объект изобретения, определенный в прилагаемой формуле изобретения, не обязательно ограничен отдельными признаками или действиями, описанными выше. Точнее, отдельные признаки и действия, описанные выше, раскрыты в качестве примерных форм реализации формулы изобретения.
Настоящее изобретение может быть воплощено в других специальных формах, не выходя из своей сущности и неотъемлемых характеристик. Описанные варианты осуществления во всех отношениях должны рассматриваться только как иллюстративные, а не ограничительные. Объем изобретения поэтому скорее указан прилагаемой формулой изобретения, чем вышеизложенным описанием. Все изменения, которые подпадают под значение и диапазон эквивалентности формулы изобретения, должны содержаться в пределах ее объема.
Изобретение относится к сетям передачи данных. Технический результат заключается в оптимизации связи между одноранговыми узлами. Сущность изобретения заключается в том, что одна из реализаций относится к использованию интеллектуального приемопередатчика, который динамически создает, кэширует и диспетчеризирует каналы связи между одноранговыми узлами. Другая реализация относится к использованию центрального объекта слежения, который может использоваться для эффективной регистрации и распространения одноранговых сообщений среди различных одноранговых узлов. В одной из реализации центральный объект отслеживания совместно используется среди одноранговых узлов в группе. Еще одна другая реализация относится к ассоциативному связыванию групп одноранговых узлов с пространствами имен и для указания групп одноранговых узлов из одного пространства имен в пределах, кроме того, еще других групп одноранговых узлов из иных пространств имен. Эти и другие аспекты изобретения также могут использоваться, чтобы гарантировать, что сохраняется цель доставки данного однорангового сообщения, и чтобы гарантировать, что оптимальные количества сообщений передаются на любой заданный одноранговый узел в любой заданный момент времени. 2 н. и 16 з.п. ф-лы, 7 ил.
1. Способ динамической настройки механизма связи, используемого для передачи одноранговых сообщений в одноранговом узле, сконфигурированном для осуществления связи с другим одноранговым узлом из одного или более получающих одноранговых узлов по сети, содержащий действия, на которых:
обнаруживают наличие получающего однорангового узла,
идентифицируют множество механизмов связи для передачи одного или более одноранговых сообщений из однорангового узла на упомянутый получающий одноранговый узел,
автоматически определяют, что по меньшей мере один начальный механизм связи из множества механизмов связи является предпочтительным по отношению к другому механизму связи из множества механизмов связи для посылки упомянутых одного или более одноранговых сообщений на упомянутый получающий одноранговый узел;
автоматически выбирают упомянутый по меньшей мере один начальный механизм связи;
устанавливают канал связи, используя упомянутый по меньшей мере один начальный механизм связи, при этом канал связи включает в себя безопасность и логику прикладного уровня,
отправляют по меньшей мере одно из одного или более одноранговых сообщений на получающий одноранговый узел с использованием выбранного упомянутого по меньшей мере одного начального механизма связи,
кэшируют канал связи, включая безопасность и логику прикладного уровня,
обнаруживают изменение в наличии получающего однорангового узла,
автоматически обнаруживают, что по меньшей мере один другой механизм связи из множества механизмов связи является предпочтительным перед упомянутым по меньшей мере одним начальным механизмом связи для посылки по меньшей мере одного из одного или более сообщений одноранговых узлов к получающему одноранговому узлу,
автоматически выбирают упомянутый по меньшей мере один другой механизм связи; и
автоматически замещают упомянутый по меньшей мере один начальный механизм связи в канале связи выбранным по меньшей мере одним другим механизмом связи, в то же время сохраняя безопасность и логику прикладного уровня упомянутого канала связи.
2. Способ по п.1, в котором действие по отправке однорангового сообщения на получающий одноранговый узел с использованием выбранного по меньшей мере одного начального механизма связи содержит действие, при котором случайным образом выбирают механизм связи из числа множества механизмов связи.
3. Способ по п.1, дополнительно содержащий действие, при котором принимают информацию состояния о получающем одноранговом узле, которая указывает, что по меньшей мере один другой механизм связи является предпочтительным по отношению к по меньшей мере одному начальному механизму связи.
4. Способ по п.1, дополнительно содержащий действие, при котором дополняют выбранный по меньшей мере один начальный механизм связи или любой другой из множества механизмов связи одним или более признаками, так, чтобы дополненный механизм связи был совместим с идентифицированным другим механизмом связи.
5. Способ по п.1, дополнительно содержащий действие, при котором отправляют новое одноранговое сообщение в получающую одноранговую компьютерную систему по каналу связи с использованием выбранного по меньшей мере одного другого механизма связи.
6. Способ по п.5, дополнительно содержащий действие, при котором регистрируют запись в центральном объекте отслеживания, которая указывает, что одноранговый узел отправлял одноранговое сообщение на получающий одноранговый узел с использованием выбранного по меньшей мере одного начального механизма связи или выбранного по меньшей мере одного начального механизма связи и любой другой связи из множества механизмов связи.
7. Способ по п.5, дополнительно содержащий действие, при котором регистрируют запись в центральном объекте отслеживания, которая указывает, что одноранговый узел отправлял одноранговое сообщение на получающий одноранговый узел с использованием выбранного по меньшей мере одного другого механизма связи.
8. Способ по п.1, дополнительно содержащий действие, при котором регистрируют запись в центральном объекте отслеживания, которая указывает, что одноранговый узел отправлял одноранговое сообщение на получающий одноранговый узел с использованием выбранного по меньшей мере одного начального механизма связи или выбранного по меньшей мере одного начального механизма связи и любой другой связи из множества механизмов связи.
9. Способ по п.8, в котором центральный объект отслеживания является одиночным объектом, который совместно используется между одноранговой компьютерной системой и получающей одноранговой компьютерной системой.
10. Способ по п.8, дополнительно содержащий действие, при котором принимают иное одноранговое сообщение от одного из одного или более одноранговых узлов в группе одноранговых узлов, причем иное одноранговое сообщение указывает, что иное одноранговое сообщение должно отправляться на любой из одного или более одноранговых узлов.
11. Способ по п.10, дополнительно содержащий действие, при котором:
идентифицируют из центрального объекта отслеживания или иного центрального объекта отслеживания, принадлежащего другому из одного или более одноранговых узлов, что нет регистрационной записи, указывающей, что другое одноранговое сообщение было принято любым из одного или более одноранговых узлов; и
обрабатывают иное одноранговое сообщение.
12. Способ по п.10, дополнительно содержащий действие, при котором:
идентифицируют регистрационную запись в центральном объекте отслеживания или ином центральном объекте отслеживания, принадлежащем другому из одного или более одноранговых узлов, причем регистрационная запись указывает, что иное одноранговое сообщение было принято по меньшей мере одним из одного или более одноранговых узлов; и
обрабатывают иное одноранговое сообщение.
13. Способ по п.1, дополнительно содержащий действие, при котором принимают иное одноранговое сообщение от одного из одного или более одноранговых узлов в группе одноранговых узлов, причем иное одноранговое сообщение указывает, что оно требует только одного ответа от одного или более одноранговых узлов в группе одноранговых узлов.
14. Способ по п.1, дополнительно содержащий действие, при котором создают первый канал связи и второй канал связи, при этом первый канал связи и второй канал связи имеют различающиеся операционные характеристики.
15. Способ по п.14, в котором различающиеся операционные характеристики влияют на то, каким образом приложение отправляет или принимает данные по соответственным первому и второму каналам связи, так чтобы скорость выгрузки и скорость загрузки отличались между первым и вторым каналами связи.
16. Способ по п.14, дополнительно содержащий действие, при котором:
идентифицируют режим работы приложения, имеющего отношение к компьютерной системе для однорангового узла; и
определяют, какой из первого и второго каналов связи более эффективен для идентифицированного режима работы приложения; и
ассоциативно связывают определенный первый или второй канал связи с приложением.
17. Способ по п.14, в котором действие по идентификации режима работы приложения, имеющего отношение к одноранговой компьютерной системе, содержит действие, при котором идентифицируют режим работы приложения в одноранговой компьютерной системе.
18. Машиночитаемый носитель для использования в системе, где одноранговая компьютерная система сконфигурирована для поддержания связи с другим одноранговым узлом из одной или более получающих одноранговых компьютерных систем по сети, причем машиночитаемый носитель содержит машиноисполняемые команды, сохраненные на нем, которые, когда исполняются, побуждают один или более процессоров выполнять способ динамической настройки механизма связи, используемого одноранговой компьютерной системой для отправки сообщений, состоящий в следующем:
обнаруживают наличие получающего однорангового узла,
идентифицируют множество механизмов связи для передачи одного или более одноранговых сообщений из однорангового узла на упомянутый получающий одноранговый узел,
автоматически определяют, что по меньшей мере один начальный механизм связи из множества механизмов связи является предпочтительным по отношению к другому механизму связи из множества механизмов связи для посылки упомянутых одного или более одноранговых сообщений на упомянутый получающий одноранговый узел;
автоматически выбирают упомянутый по меньшей мере один начальный механизм связи;
устанавливают канал связи, используя упомянутый по меньшей мере один начальный механизм связи, при этом канал связи включает в себя безопасность и логику прикладного уровня,
отправляют по меньшей мере одно из одного или более одноранговых сообщений на получающий одноранговый узел с использованием выбранного упомянутого по меньшей мере одного начального механизма связи,
кэшируют канал связи, включая безопасность и логику прикладного уровня,
обнаруживают изменение в наличии получающего однорангового узла,
автоматически обнаруживают, что по меньшей мере один другой механизм связи из множества механизмов связи является предпочтительным перед упомянутым по меньшей мере одним начальным механизмом связи для посылки по меньшей мере одного из одного или более сообщений одноранговых узлов к получающему одноранговому узлу,
автоматически выбирают упомянутый по меньшей мере один другой механизм связи; и
автоматически замещают упомянутый по меньшей мере один начальный механизм связи в канале связи выбранным по меньшей мере одним другим механизмом связи, в то же время сохраняя безопасность и логику прикладного уровня упомянутого канала связи.
US 2002141345 A1, 03.10.2002 | |||
ЗАВИСЯЩИЙ ОТ ПОДСЕТИ ПРОТОКОЛ СХОДИМОСТИ ДЛЯ СЕТИ МОБИЛЬНОЙ РАДИОСВЯЗИ | 1998 |
|
RU2226315C2 |
УСТАНОВКА ДЛЯ ИСПЫТАНИЯ ОБРАЗЦА НА ИЗГИБ | 1990 |
|
RU2054646C1 |
US 2003088620 A1, 08.05.2003. |
Авторы
Даты
2011-06-10—Публикация
2006-12-19—Подача