ПОВЫШЕНИЕ ПРОИЗВОДИТЕЛЬНОСТИ ОДНОРАНГОВЫХ СЕТЕЙ Российский патент 2018 года по МПК H04L29/08 

Описание патента на изобретение RU2657183C2

Уровень техники

[0001] Цифровой контент, такой как видеоигра, часто доступен для прямой загрузки через Интернет от провайдера цифрового контента, тем самым устраняя необходимость для пользователя устанавливать такой цифровой контент на своем вычислительном устройстве с использованием оптического диска для хранения данных или некоторого другого устройства хранения данных. Однако такой цифровой контент может содержать большое количество данных, и, следовательно, может занимать потенциально значительное количество времени, чтобы загрузить его полностью. Кроме того, значительное количество ресурсов провайдера цифрового контента и сетевых ресурсов может использоваться для передачи цифрового контента от провайдера цифрового контента на пользовательское вычислительное устройство, которое также может упоминаться как клиент. Проблема с количеством времени, ресурсов провайдера цифрового контента и сетевых ресурсов, используемых для передачи такого цифрового контента, усугубляется, когда многочисленные вычислительные устройства пытаются загрузить один и тот же цифровой контент в одно и то же время, что часто происходит, когда цифровой контент выпущен изначально или обновлен.

Сущность изобретения

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

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

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

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

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

Краткое описание чертежей

[0007] Фиг. 1 показывает примерную среду использования, с которой по меньшей мере некоторые из описанных в данном документе вариантов осуществления могут быть реализованы.

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

[0009] Фиг. 3 иллюстрирует примерную таблицу, которая может генерироваться при выполнении этапов блок-схемы по фиг. 2.

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

[0011] Фиг. 5 иллюстрирует примерную таблицу, которая обеспечивает пример типа информации, к которой можно обращаться и которая может использоваться при выполнении этапов блок-схемы по фиг. 4.

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

[0013] Фиг. 7 иллюстрирует примерную гистограмму, которая показывает относительный дефицит элементов цифрового контента в одноранговой сети или в группе вычислительных устройств, которые являются частью одноранговой сети.

[0014] Фиг. 8 показывает блок-схему, изображающую вариант осуществления способа улучшения распространения единиц цифрового контента между вычислительными устройствами одноранговой сети.

[0015] Фиг. 9 представляет собой блок-схему высокого уровня, которая используется для иллюстрации примерного использования варианта осуществления, описанного со ссылкой на блок-схему по фиг. 8.

[0016] Фиг. 10 является видом в изометрии примерной игровой и медиасистемы.

[0017] Фиг. 11 показывает примерную функциональную блок-схему компонентов игровой и медиасистемы, показанной на фиг. 10.

Осуществление изобретения

[0018] Одноранговая (P2P) сеть может быть использована для уменьшения количества ресурсов провайдера цифрового контента, сетевых ресурсов и количества времени, используемого для распространения цифрового контента, такого как видеоигры, на множество вычислительных устройств.

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

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

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

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

[0023] Прежде чем обсуждать упомянутые выше варианты осуществления более подробно, примерный вариант осуществления среды 100 использования описывается со ссылкой на фиг. 1. Примерная среда 100 использования содержит множество вычислительных устройств 1121, 1122, 1123, … 112n, которые могут совместно упоминаться как вычислительные устройства 112 и могут упоминаться в отдельности как вычислительное устройство 112. Каждое вычислительное устройство 112, которое сконфигурировано для приема, обработки и представления цифрового контента, ассоциировано с соответствующим пользователем. В некоторых случаях, более чем одно вычислительное устройство может быть ассоциировано с одним и тем же пользователем. Например, пользователь может иметь два или более из видеоигровой консоли, мобильного устройства, компьютера (например, ноутбука, настольного компьютера, планшета), носимого устройства (например, шлем-дисплей) и т.д. и может потреблять цифровой контент на каждом из этих вычислительных устройств.

[0024] Каждое вычислительное устройство может осуществлять связь с одним или более хранилищ 132 цифрового контента (например, местами, из которых цифровой контент может быть загружен) через сеть 122 (например, компьютерную сеть, сотовую телефонную сеть и/или любой другой подходящий тип сети). Хранилище 132 цифрового контента изображено как хранящее множество элементов 1341, 1342,… 134n цифрового контента, которые могут совместно упоминаться как элементы 134 цифрового контента и могут упоминаться отдельно как элемент 134 цифрового контента. Хранилище 134 цифрового контента может поддерживаться сетью доставки контента (CDN), но не ограничено этим. Каждое вычислительное устройство 112 также может осуществлять связь с одним или более другими вычислительными устройствами 112 в одноранговой конфигурации для приема цифрового контента от одноранговых вычислительных устройств. В любой момент времени, вычислительные устройства 112, которые принимают участие или доступны для одноранговой связи, могут упоминаться как «рой» (группировка). Рой является динамическим, т.е. вычислительные устройства могут войти в рой или выйти из роя в ответ на включение и выключение пользователями их вычислительных устройств и/или выборочное включение и отключение возможностей одноранговой связи пользователями (или их вычислительными устройствами). Для конкретного примера, вычислительное устройство может временно отключить все или некоторые из его одноранговых возможностей, так что ресурсы, такие как сетевые, CPU и/или ресурсы памяти, могут быть использованы, чтобы сохранить пользовательское восприятие.

[0025] Каждый элемент 134 цифрового контента содержит множество частей контента, примеры которых показаны как части 1361… 136n для элемента 1342 цифрового контента. Элементы 134 цифрового контента могут представлять любой подходящий тип цифрового контента, включая, без ограничения указанным, интерактивный контент, такой как видеоигры, интерактивное видео и социальное медиа. Другие примеры включают, без ограничения указанным, фильмы, телевизионные шоу и другое видео, музыку, фотографии, веб-сайты и т.д. Кроме того, части контента могут иметь любую подходящую форму, такую ​​как, без ограничения указанным, конкретные участки памяти (например, ячейки памяти, сектора дисков и т.п.), или, путем расширения, конкретные файлы или их части.

[0026] В случае, если вычислительные устройства 112 способны выполнять одноранговую передачу цифрового контента, каждое вычислительное устройство 112 может также упоминаться как одноранговый узел (или просто равный по рангу или узел), и вся среда 100 использования также может упоминаться как одноранговая сеть распространения контента (или просто одноранговая сеть). В одноранговой сети множество узлов в сети связи имеют доступ к протоколу однорангового совместного использования файлов и могут использовать этот протокол, чтобы пытаться получать копии конкретного цифрового контента, такого как файл, который распространяется. Узлы в сети, могут иметь, каждый, одно или более текущих соединений, использующих этот протокол, с другими из узлов. Таким образом, узлы могут присоединяться к сети или покидать сеть, когда они сбрасывают или формируют соединения с узлами, уже находящимися в сети. Соединения не всегда должны активно использоваться для распространения контента, хотя соединения должны быть пригодны для этого, используя определенный протокол, который может или не может использовать сетевое кодирование. Соединения могут быть либо однонаправленными, либо двунаправленными соединениями. Вполне возможно, что данный узел может быть членом более чем одной одноранговой сети одновременно.

[0027] Фиг. 1 также показывает вычислительное устройство 142 координатора, которое также может упоминаться как узел-координатор или просто координатор. Координатор 142 может собирать и поддерживать информацию о различных вычислительных устройствах 112, например, участвует ли вычислительное устройство в одноранговой сети и имеет какой-либо цифровой контент для совместного использования. Кроме того, координатор 142 может помочь вычислительным устройствам 112 найти другие вычислительные устройства 112, которые имеют необходимый или желательный цифровой контент. Координатор 142 может быть, например, модулем отслеживания, но не ограничивается этим. Хотя только один координатор 142 показан на фиг. 1, одноранговая сеть 100 распространения контента может включать в себя несколько координаторов 142.

Улучшение P2P производительности с использованием задержанного распространения

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

[0029] Блок-схема высокого уровня по фиг. 2, обсуждаемая ниже, используется для объяснения этих вариантов осуществления. Более конкретно, фиг. 2 теперь будет использована для описания способа идентификации одного или более других вычислительных устройств в одноранговой сети, чтобы осуществлять или рекомендовать конкретному вычислительному устройству (например, 1121 на фиг. 1) посылать на них один или более запросов на загрузку для конкретного цифрового контента. Конкретный цифровой контент может быть либо полным элементом цифрового контента, который включает в себя множество частей цифрового контента (также упоминаемых как единицы цифрового контента), конкретной частью цифрового контента элемента цифрового контента, который включает в себя множество частей цифрового контента, или конкретной группой частей цифрового контента элемента цифрового контента.

[0030] В соответствии с одним вариантом осуществления этапы на фиг. 2 могут быть инициированы в ответ на то, что вычислительное устройство (например, 1121 на фиг. 1) указывает на необходимость или желание получить конкретный цифровой контент (например, конкретную часть цифрового контента). Как показано на фиг. 2, на этапе 202 получают доступ к информации относительно одного или более других вычислительных устройств, которые в текущий момент имеют конкретный цифровой контент. На этапе 204 получают доступ к информации относительно одного или более других вычислительных устройств, которые в текущий момент находятся в процессе получения конкретного цифрового контента. В некоторых вариантах осуществления вычислительное устройство, которое в текущий момент находится в процессе получения конкретного цифрового контента, по меньшей мере уже отправило запрос на загрузку для конкретного цифрового контента, но может или не может уже начать загрузку конкретного цифрового контента. В других вариантах осуществления вычислительное устройство, которое в текущий момент находится в процессе получения конкретного цифрового контента, уже начало загрузку конкретного цифрового контента.

[0031] Информация, к которой получают доступ на этапах 202 и 204, может включать в себя информацию о скорости загрузки (которая также может упоминаться как информация о скорости передачи данных), информацию о доступности вычислительного устройства, но не ограничивается этим. Для того чтобы такая информация была доступной, сначала необходимо собрать информацию. В некоторых вариантах осуществления такая информация собирается и поддерживается координатором (например, координатором 142 на фиг. 1). В других вариантах осуществления каждое вычислительное устройство 112 одноранговой сети может собирать и поддерживать такую информацию для собственного использования. В других вариантах осуществления конкретное вычислительное устройство может собирать и поддерживать некоторую информацию, а также может получать доступ к некоторой информации от координатора. Другими словами, конкретное вычислительное устройство может обращаться к своей собственной собранной и поддерживаемой информации и/или обращаться к информации, собранной и поддерживаемой координатором. В общем, способ, описанный со ссылкой на фиг. 1, может выполняться либо конкретным вычислительным устройством, которому требуется или желателен конкретный цифровой контент (без какой-либо помощи со стороны координатора), либо координатором, который взаимодействует с конкретным вычислительным устройством и другими вычислительными устройствами, или комбинацией конкретного вычислительного устройства и координатора.

[0032] Как будет понятно из приведенного ниже описания, информация, к которой обращаются на этапах 202 и 204, используется для идентификации одного или более источников для конкретного вычислительного устройства (например, вычислительного устройства 1121 на фиг. 1), которому необходим или желателен конкретный цифровой контент. В одноранговой сети источник является вычислительным устройством, которое имеет конкретный цифровой контент, который необходим или желателен для другого вычислительного устройства, и доступно и готово предоставлять копии конкретного цифрового контента (например, в ответ на запрос на загрузку). В этом описании, вычислительное устройство, которое в текущий момент имеет конкретный цифровой контент, но не будет доступным в качестве источника до более позднего момента времени (например, потому, что оно в данный момент находится в автономном режиме или слишком занято), может упоминаться как недоступный в текущий момент источник. Вычислительное устройство, которое в текущий момент не имеет конкретного цифрового контента данных, но в текущий момент находится в процессе получения конкретного цифрового контента, может упоминаться как будущий источник. Недоступный в текущий момент источник и будущий источник являются различными примерами задержанных источников. Источник, который в текущий момент имеет конкретный цифровой контент и в текущий момент способен поставлять копии конкретного цифрового контента, может упоминаться как доступный в текущий момент источник. На этапе 202 можно получать доступ к информации относительно доступных в текущий момент источников и недоступных в текущий момент источников. На этапе 204 можно получать доступ к информации относительно будущих источников.

[0033] На этапе 206, на основе информации относительно другого(их) вычислительного(ых) устройства (устройств), которые в текущий момент имеют конкретный цифровой контент, определяется(ются) первая(ые) оценка(и) количества времени, которое потребуется для конкретного вычислительного устройства, чтобы загрузить конкретный цифровой контент из каждого из одного или более из других вычислительных устройств, которые в текущий момент имеют конкретный цифровой контент. Это вовсе не означает, что если есть двадцать других вычислительных устройств, которые в текущий момент имеют конкретный цифровой контент, то двадцать оценок должны быть определены. Скорее, вполне возможно, что оценки могут быть определены только для некоторых (например, десяти) из двадцати других вычислительных устройств, которые в текущий момент имеют конкретный цифровой контент.

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

[0035] В соответствии с некоторыми вариантами осуществления, каждая первая оценка, определяемая на этапе 206, является суммой оценки количества времени, которое потребуется до тех пор, пока одно из других вычислительных устройств (например, 1122), которое в текущий момент имеет конкретный цифровой контент, станет доступным для предоставления конкретного цифрового контента, плюс оценку количества времени, которое потребуется для конкретного вычислительного устройства (например, 1121), чтобы завершить загрузку конкретного цифрового контента, как только другое вычислительное устройство (например, 1122) становится доступным для предоставления конкретного цифрового контента. Например, предположим, что вычислительное устройство 1122 имеет конкретный цифровой контент, который необходим или желателен вычислительному устройству 1121, но вычислительное устройство 1122 не сможет предоставить конкретный цифровой контент в течение семи минут с этого момента (например, потому что вычислительное устройство 1122 будет занято загрузкой в другие вычислительные устройства и/или будут передавать потоковое видео в течение следующих семи минут). Также предположим, что как только вычислительное устройство 1122 становится доступным для предоставления конкретного цифрового контента, по оценкам, потребуется четыре минуты для конкретного вычислительного устройства 1121, чтобы завершить загрузку конкретного цифрового контента из вычислительного устройства 1122. Для этого примера, первая оценка, определенная на этапе 206, будет равна одиннадцати минутам (то есть, семь минут плюс четыре минуты равно одиннадцати минутам). В альтернативных вариантах осуществления каждая первая оценка является оценкой количества времени, которое потребуется для конкретного вычислительного устройства (например, 1121), чтобы завершить загрузку конкретного цифрового контента, как только начинается загрузка из одного из других вычислительных устройств, которое в текущий момент имеет конкретный цифровой контент. Продолжая с описанным выше примером, в альтернативных вариантах осуществления, первая оценка будет равна четырем минутам.

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

[0037] На этапе 210, на основе первой и второй оценок (определенных на этапах 206 и 208), выполняется идентификация одного или более других вычислительных устройств, на которые следует отправить запрос на загрузку для конкретного цифрового контента.

[0038] В некоторых вариантах осуществления одним из других вычислительных устройств, идентифицированных на этапе 210, является другое вычислительное устройство, из которого конкретное вычислительное устройство, по оценкам, сможет загрузить конкретный цифровой контент в самое раннее время относительно настоящего времени. Дополнительные другие вычислительные устройства могут также идентифицироваться на этапе 210. В общем, количество N других вычислительных устройств может быть идентифицировано на этапе 210, которые соответствуют N другим вычислительным устройствам, из которых конкретное вычислительное устройство, по оценкам, сможет загрузить конкретный цифровой контент в 1-ое, 2-ое… N-ое ближайшее время.

[0039] В других вариантах осуществления одним из других вычислительных устройств, идентифицированных на этапе 210, является другое вычислительное устройство, из которого конкретное вычислительное устройство, по оценкам, сможет загрузить конкретный цифровой контент за самый короткий промежуток времени, как только конкретное вычислительное устройство начинает загрузку. Дополнительные другие вычислительные устройства могут также идентифицироваться на этапе 210. В общем, количество N других вычислительных устройств может быть идентифицировано на этапе 210, которые соответствуют N другим вычислительным устройствам, из которых конкретное вычислительное устройство, по оценкам, сможет загрузить конкретный цифровой контент за 1-ое, 2-ое … N-ое кратчайшие промежутки времени, после того как конкретное вычислительное устройство начинает загрузку.

[0040] На этапе 212 осуществляется или рекомендуется отправка запроса на загрузку для конкретного цифрового контента. Это может включать в себя или может привести к тому, что такой запрос загрузки для конкретного цифрового контента отправляется от конкретного вычислительного устройства на по меньшей мере одно из идентифицированных одного или более других вычислительных устройств. На этапе 214 осуществляется загрузка конкретного цифрового контента конкретным вычислительным устройством. Конкретное вычислительное устройство может инициировать отправку запроса(ов) загрузки и выполнение загрузки, ассоциированной, соответственно, с этапами 212 и 214. Альтернативно, координатор может отправить инструкцию или рекомендацию на конкретное вычислительное устройство, чтобы отправить запрос(ы) на конкретный цифровой контент, и может отправить инструкцию или рекомендацию на конкретное вычислительное устройство, чтобы выполнить загрузку, ассоциированную, соответственно, с этапами 212 и 214.

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

[0042] Конкретному вычислительному устройству может потребоваться или быть желательным конкретный цифровой контент в течение определенного периода времени (например, в течение ближайших десяти минут). Это может произойти, например, потому, что пользователь конкретного вычислительного устройства играет в игру и, вероятно, достигнет через десять минут уровня игры, для которого конкретное вычислительное устройство еще не имеет цифрового контента. В некоторых вариантах осуществления, если ни одна из (или по меньшей мере заданное минимальное количество) первой или второй оценок не меньше, чем десять минут, то конкретное вычислительное устройство может отправить запрос на загрузку для конкретного цифрового контента непосредственно в хранилище для доставки контента (например, 132). В общем, варианты осуществления, описанные со ссылкой на фиг. 2, могут быть использованы для уменьшения количества цифрового контента, который загружается непосредственно из хранилища для доставки контента, и, таким образом, снижения затрат для компании, которая отвечает за хранилище для доставку контента. Однако в ситуациях, когда загрузка цифрового контента от однорангового вычислительного устройства будет отрицательно влиять на пользовательское восприятие, было бы предпочтительно, чтобы пользовательское вычислительное устройство загружало цифровой контент непосредственно из хранилища цифрового контента. Таким образом, в альтернативных вариантах осуществления, могут быть случаи, когда вместо осуществления или рекомендации, чтобы конкретное вычислительное устройство посылало запрос на загрузку к одному или более других "одноранговых" вычислительных устройств, будет использована рекомендация или инструкция, чтобы посылать запрос на загрузку непосредственно в хранилище цифрового контента.

[0043] Фиг. 3 иллюстрирует примерную таблицу 300, которая может генерироваться вычислительным устройством и/или координатором, который выполняет этапы 202-208. Столбец 302 таблицы 300 перечисляет другие вычислительные устройства в одноранговой сети. Столбец 304 включает в себя указания того, имеют ли отдельные одни из других вычислительных устройств в текущий момент конкретный цифровой контент, который необходим или желателен. Столбец 306 включает в себя указания того, находятся ли отдельные одни из других вычислительных устройств в текущий момент в процессе получения конкретного цифрового контента. Столбец 308 включает в себя оценки количества времени, которое потребуется, чтобы загрузить конкретный цифровой контент из различных других вычислительных устройств, перечисленных в столбце 302.

[0044] Для других вычислительных устройств, которые в текущий момент имеют конкретный цифровой контент, каждая соответствующая оценка в столбце 308 может быть получена путем суммирования оценки количества времени, которое потребуется для другого вычислительного устройства, чтобы стать доступным для поддержки загрузки, и оценки количества времени, которое потребуется для конкретного вычислительного устройства, чтобы завершить загрузку конкретного цифрового контента, как только начинается загрузка из одного из других вычислительных устройств, которое в текущий момент имеет конкретный цифровой контент. Если другое вычислительное устройство немедленно доступно для поддержки загрузки конкретного цифрового контента (то есть, сразу же доступно для получения конкретного цифрового контента), то та часть оценки равна нулю, и сумма будет равна оценке количества времени, которое потребуется для конкретного вычислительного устройства, чтобы завершить загрузку конкретного цифрового контента, как только начнется загрузка из другого вычислительного устройства.

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

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

[0047] Примерная таблица 300 показывает, что оценка самой быстрой (то есть, самой короткой) загрузки может соответствовать другому вычислительному устройству, которое в текущий момент находится в процессе получения конкретного цифрового контента. Это может произойти, например, потому, что другое вычислительное устройство 1124 почти выполнило получение конкретного цифрового контента, будет немедленно доступно в качестве источника, как только оно выполнит получение конкретного цифрового контента, и потому, что скорость передачи данных между конкретным вычислительным устройством (которому необходим или желателен конкретный цифровой контент) и другим вычислительным устройством 1124 чрезвычайно высока. Таким образом, для вычислительного устройства может быть лучше ожидать будущего момента времени (когда другое вычислительное устройство готово распространять конкретный цифровой контент), чтобы попытаться загрузить конкретный цифровой контент, вместо того, чтобы немедленно пытаться выполнить загрузку.

Увеличение эффективности роя посредством прогнозируемого выбора источника

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

[0049] Блок-схема высокого уровня по фиг. 4, обсужденная ниже, используется для пояснения этих вариантов осуществления. Более конкретно, фиг. 4 будет использоваться для описания способа идентификации одного или более других вычислительных устройств в одноранговой сети, в которой вычислительное устройство (например, 1121 на фиг. 1) одноранговой сети посылает один или более запросов на загрузку цифрового контента. Цифровой контент может быть либо полным элементом цифрового контента, который включает в себя множество частей цифрового контента (также упоминаемых как единицы цифрового контента), либо частью цифрового контента элемента цифрового контента, который включает в себя множество частей цифрового контента, либо группой частей цифрового контента элемента цифрового контента. Этапы, описанные со ссылкой на фиг. 4, могут быть выполнены координатором (например, 142 на фиг. 1) или одноранговым вычислительным устройством (например, 1121 на фиг. 1), или их комбинацией.

[0050] Согласно фиг. 4, на этапе 402 каждое из множества вычислительных устройств соотносится с (т.е. группируется в) одной из множества различных групп на основе информации о местоположении, соответствующей каждому из множества вычислительных устройств. Информацией о местоположении могут быть часовые пояса и/или географические регионы без ограничения указанным. Например, вычислительные устройства в первом часовом поясе или в пределах первой группы часовых поясов могут быть соотнесены с первой группой; вычислительные устройства в пределах второго часового пояса или в пределах второй группы часовых поясов могут быть соотнесены со второй группой; … и вычислительные устройства в пределах N-го часового пояса или в пределах N-ой группы часовых поясов могут быть соотнесены с N-ой группой. В текущий момент в мире существует в общей сложности сорок часовых поясов. Каждый часовой пояс может соответствовать другой группе, или несколько часовых поясов могут быть соотнесены с одной и той же группой, так что имеется меньше групп, чем всего часовых поясов. В качестве другого примера, вычислительные устройства в пределах первого географического региона могут быть соотнесены с первой группой, вычислительные устройства в пределах второго географического региона могут быть соотнесены со второй группой; … и вычислительные устройства в пределах N-го географического региона могут быть соотнесены с N-ой группой. Различные географические регионы могут соответствовать разным континентам, разным странам или разным регионам внутри страны (например, штатам, провинциям, территориям, городам и т.п.), но не ограничиваются ими.

[0051] На этапе 404 обращаются к межгрупповой информации, которая в соответствии с конкретными вариантами осуществления включает в себя по меньшей мере одну межгрупповую информацию о скорости передачи данных и межгрупповую информацию о доступности. Если этап 404 выполняется координатором 142, межгрупповая информация может быть сохранена локально координатором 142 или может быть удаленно сохранена и удаленно доступна посредством координатора 142. Если этап 404 выполняется вычислительным устройством 112, межгрупповая информация может быть сохранена локально вычислительным устройством 112 или может быть удаленно сохранена и удаленно доступна посредством вычислительного устройства 112 (например, вычислительное устройство 112 может получать доступ к межгрупповой информации, сохраненной координатором 142 или некоторым другим устройством). Межгрупповая информация о скорости передачи данных, которая может быть основана на исторической информации и, опционально, также на информации реального времени, может задавать среднюю или медианную скорость, с которой данные передаются между парой групп, но не ограничивается этим. Аналогичным образом межгрупповая информация о доступности, которая может быть основана на исторической информации и, опционально, также на информации реального времени, может задавать вероятность того, что вычислительные устройства во второй группе будут принимать запросы на загрузку от вычислительных устройств в первой группе, но не ограничивается этим.

[0052] Для простоты предположим, что каждое из десяти тысяч вычислительных устройств соотносится с одной из трех различных групп, именуемых группа 1, группа 2 и группа 3, основываясь на информации о часовом поясе. Межгрупповая информация может включать в себя информацию, ассоциированную с передачами данных между группами 1 и 2, группами 1 и 3 и группами 2 и 3. Межгрупповая информация может быть двунаправленной, в этом случае межгрупповая информация о скорости передачи данных и межгрупповая информация о доступности между группами 1 и 2 являются теми же самыми, что и между группами 2 и 1. В качестве альтернативы, межгрупповая информация может быть однонаправленной, и в этом случае межгрупповая информация о скорости передачи данных и межгрупповая информация о доступности между группами 1 и 2 отличаются от таковых между группами 2 и 1. Межгрупповая информация может быть независимой от времени суток, или предпочтительно может быть различная межгрупповая информация, соответствующая разному времени суток и, возможно, разным дням недели. Например, может быть различная межгрупповая информация, соответствующая различным интервалам времени суток (например, с 12:00 ночи до 3:59 утра, с 4:00 утра до 7:59 утра, с 8:00 до 11:59 дня, с 12:00 дня до 3:59 дня, с 4:00 дня до 7:59 вечера, с 8:00 вечера до 11:59 ночи). Другие варианты также возможны и находятся в пределах объема варианта осуществления.

[0053] Такие варианты осуществления с выгодой используют прогнозы (на основе исторической информации и, возможно, также информации реального времени), что часто будет быстрее загружать цифровой контент из вычислительных устройств, расположенных относительно далеко, чем загружать цифровой контент из вычислительных устройств, расположенных относительно близко. Это противоречит здравому смыслу, так как задержка, как правило, обратно пропорциональна расстоянию, проходимому цифровым контентом. Тем не менее, эти варианты осуществления компенсируют увеличения задержки увеличениями скорости передачи данных и/или доступности. Для примера, штаты Калифорния, Орегон и Вашингтон находятся в часовом поясе UTC-8 (где UTC - скоординированное всемирное время), а страны, которые являются частью Соединенного Королевства, находятся в часовом поясе UTC+0, что на 8 часов вперед относительно часового пояса UTC-8. Это означает, что когда наступает 8:00 вечера в Калифорнии (что, скорее всего, является временем, когда пользователи в Калифорнии могут использовать свои вычислительные устройства и желают загружать игры или видео), в Соединенном Королевстве это соответствует 4:00 утра (что, скорее всего, является временем, когда пользователи в Соединенном Королевстве спят, и их вычислительные устройства будут незаняты и, вероятно, доступны в качестве источника).

[0054] Все еще со ссылкой на фиг. 4, на этапе 406, для одного из вычислительных устройств в пределах одной из групп, имеется идентификация, на основании информации, доступной на этапе 404, об одной из других групп, чтобы посылать на нее один или более запросов на загрузку цифрового контента. Продолжая рассматривать предыдущий пример, если в 8:00 вечера в Калифорнии вычислительное устройство, соотнесенное с первой группой, соответствующей часовому поясу UTC-8, указало, что ему необходимо или желательно найти вычислительное устройство-источник, чтобы загрузить с него цифровой контент, то вторая группа, соответствующая часовому поясу UTC+0, может быть идентифицирована, если доступная межгрупповая информация указала на высокие межгрупповые скорости передачи данных и/или высокую межгрупповую доступность между первой и второй группами в 8:00 вечера в Калифорнии. Иначе говоря, межгрупповая информация, доступная на этапе 404, может указывать, что в 8:00 вечера в часовом поясе UTC-8 (что соответствует 4:00 утра в часовом поясе UTC+0) имеются высокие межгрупповые скорости передачи данных и/или высокая межгрупповая доступность между группой, соответствующей часовому поясу UTC-8, и группой, соответствующей часовому поясу UTC+0. На этапе 406 это может привести к тому, что группа, соответствующая часовому поясу UTC+0, идентифицируется для вычислительного устройства в группе, соответствующей часовому поясу UTC-8.

[0055] На этапе 408, посылка одного или нескольких запросов на загрузку осуществляется или рекомендуется. Такие запросы на загрузку предназначены для цифрового контента и должны быть направлены от одного из вычислительных устройств в пределах одной из групп к одному или более вычислительных устройств в пределах идентифицированной одной из других групп. Это может включать в себя или приводить к тому, что такой запрос на загрузку цифрового контента посылается от вычислительного устройства на одно или более вычислительных устройств, соотнесенных с идентифицированной другой группой. На этапе 410 осуществляется загрузка цифрового контента. Вычислительное устройство, которому требуется или желательно загрузить цифровой контент, может инициировать отправку запроса(ов) на загрузку и выполнение загрузки, ассоциированных, соответственно, с этапами 408 и 410. Альтернативно, координатор может отправить инструкцию или рекомендацию на вычислительное устройство, чтобы отправить запрос(ы) на загрузку для цифрового контента, и может отправить инструкцию на вычислительное устройство, чтобы выполнять загрузку, ассоциированные, соответственно, с этапами 408 и 410.

[0056] В описанных выше вариантах осуществления вычислительные устройства, которые соотносятся с одной и той же группой, могут упоминаться как локальные одноранговые узлы, и вычислительные устройства, которые соотносятся с разными группами, могут упоминаться как нелокальные одноранговые узлы. Другое потенциальное преимущество загрузки цифрового контента из нелокальных одноранговых узлов заключается в том, что нелокальные одноранговые узлы, которые являются опережающими во времени, скорее всего, будут хорошими источниками для недавно выпущенного цифрового контента. Например, предположим, что во всем мире выпуск новой компьютерной игры происходит в 8:00 вечера по местному времени. Это означало бы, что вычислительное устройство в Соединенном Королевстве может загрузить новую игру на 8 часов раньше, чем вычислительное устройство в Калифорнии. Таким образом, когда в Калифорнии наступает 8:00 вечера, вероятно, было бы быстрее для вычислительного устройства в Калифорнии загрузить цифровой контент из нелокального однорангового узла в Соединенном Королевстве не только из-за высоких межгрупповых скоростей передачи и высокой межгрупповой доступности, но и потому, что более вероятно, что нелокальные одноранговые узлы в Соединенном Королевстве (по сравнению с локальными одноранговыми узлами в Калифорнии) уже имеют недавно выпущенный цифровой контент. Кроме того, путем осуществления или рекомендации загрузки цифрового контента из вычислительных устройств, которые по всей вероятности незаняты (например, поскольку их пользователи, вероятно, спят), оценки количества времени, которое потребуется, чтобы завершить загрузки, могут быть более точными, так как менее вероятно, что доступное простаивающее вычислительное устройство-источник сбросит свое соединение в середине загрузки (по сравнению с доступным, не простаивающим вычислительным устройством-источником).

[0057] Фиг. 5 иллюстрирует таблицу 500, которая представляет собой пример типа информации, которая может быть доступна на этапе 404. Различные часовые пояса указаны в крайнем левом столбце и самой верхней строке таблицы 500. Каждое вычислительное устройство одноранговой сети может быть отображено на один из часовых поясов (или одну из групп часовых поясов). Клетки таблицы 500 могут быть заполнены межгрупповой информацией, такой как, без ограничения указанным, межгрупповая информация о скорости передачи данных и межгрупповая информация о доступности. Для конкретного примера, клетка, обозначенная 502, может включать в себя межгрупповую информацию о скорости передачи данных и межгрупповую информацию о доступности между часовым поясом UTC-2 и часовым поясом UTC+0. Подобные таблицы могут быть сгенерированы для различных интервалов времени суток и/или разных дней недели, но не ограничиваются ими. Такие таблицы могут быть использованы на этапе 406, чтобы идентифицировать, для вычислительного устройства, соотнесенного с одной из групп, другой(их) группы (групп), к которой(ым) следует отправить запрос на загрузку цифрового контента, как было описано в дополнительных деталях выше.

[0058] Как упоминалось выше, в любой момент времени, вычислительные устройства 112, которые принимают участие или доступны для связи одноранговых узлов, могут упоминаться как рой. Вычислительные устройства, которые принимают участие или доступны для связи одноранговых узлов, могут быть частью того же роя, даже если они соотносятся с разными группами. Варианты осуществления, описанные со ссылкой на фиг. 4 и 5, могут повысить эффективность роя путем прогнозирования, что во многих случаях вычислительные устройства, соотнесенные с другой группой, могут быть наилучшими источниками для конкретного вычислительного устройства.

Смягчение дефицита регионального уровня

[0059] В некоторых вариантах осуществления собирают информацию, указывающую дефицит, ассоциированный с каждой из множества различных единиц цифрового контента, и распределение единиц цифрового контента приоритизируют способом, который снижает дефицит единиц цифрового контента, имеющих дефицит, который превышает заданный уровень. Распределение единиц цифрового контента осуществляется на основе результатов приоритизации, чтобы уменьшить дефицит единиц цифрового контента единиц, имеющих дефицит, который превышает заданный уровень. Такие варианты осуществления должны иметь эффект улучшения распределения единиц цифрового контента между вычислительными устройствами в одноранговой сети. Блок-схема высокого уровня на фиг. 6, обсуждаемая ниже, используется для пояснения этих вариантов осуществления. Более конкретно, фиг. 6 будет далее использована для описания способа улучшения распространения множества различных единиц цифрового контента между множеством вычислительных устройств в одноранговой сети. Этапы, описанные со ссылкой на фиг. 4, могут быть выполнены координатором (например, 142 на фиг. 1) или вычислительным устройством (например, 1121 на фиг. 1), или их комбинацией. Каждая единица цифрового контента может соответствовать полному элементу цифрового контента или может соответствовать одной или более частям элемента цифрового контента, который включает в себя множество частей цифрового контента. Как показано на фиг. 6, на этапе 602 обращаются к информации, указывающей дефицит, ассоциированный с каждой из множества различных единиц цифрового контента. Информация, доступная на этапе 602, может указывать настоящий дефицит и/или прогнозируемый будущий дефицит, ассоциированный с каждой из множества различных единиц цифрового контента. Информация, указывающая дефицит, количественно определяет частотность (или нерегулярность) цифрового контента во всей одноранговой сети или части одноранговой сети. Для простоты предположим, что часть одноранговой сети включает в себя группу из ста одноранговых вычислительных устройств. Также предположим, что пятьдесят из ста одноранговых вычислительных устройств имеют копию первой единицы цифрового контента, но только пять из ста одноранговых вычислительных устройств имеют копию второй единицы цифрового контента. Информация, указывающая дефицит, может, например, определять, что первая единица цифрового контента имеет дефицит 50 из 100 или, более просто, уровень дефицита два (т.е. 100/50=2); и определять, что вторая единица цифрового контента имеет дефицит 5 из 100 или, более просто, уровень дефицита двадцать (то есть 100/5=20). Продолжая этот пример, можно понять, что вторая единица цифрового контента имеет дефицит в десять раз больше, чем первая единица цифрового контента. Альтернативные способы выражения дефицита также возможны и входят в объем варианта осуществления. Например, информация, указывающая дефицит, может определять процент (или другой квантификатор) вычислительного устройства, которое имеет конкретный цифровой контент. Для того чтобы иметь возможность доступа к информации, указывающей дефицит, на этапе 602, эту информацию сначала нужно собрать. В некоторых вариантах осуществления такая информация собирается и поддерживается координатором (например, координатором 142 на фиг. 1). Например, координатор может собирать такую информацию, когда одноранговые вычислительные устройства обеспечивают координатор списками цифрового контента, которые они имеют и которые они готовы предоставить для совместного использования с другими одноранговыми вычислительными устройствами. В качестве другого примера, координатор может отслеживать, какие одноранговые вычислительные устройства выполняют загрузку, и может делать вывод о дефиците на основе такой информации. В качестве другого примера, координатор может отслеживать, насколько трудно и/или сколько времени требуется для вычислительных устройств, чтобы найти источники для конкретного цифрового контента, и может делать вывод о дефиците на основе такой информации. В других вариантах осуществления по меньшей мере некоторые из вычислительных устройств 112 одноранговой сети могут собирать и поддерживать такую информацию для собственного использования. Например, одноранговое вычислительное устройство может собирать такую информацию, когда одноранговое вычислительное устройство получает списки цифрового контента (от координатора и/или другого вычислительного устройства), который доступен для загрузки. В других вариантах осуществления вычислительное устройство может собирать и поддерживать некоторую информацию, а также может получать доступ к некоторой информации от координатора. Другими словами, вычислительное устройство может обращаться к своей собственной собранной и поддерживаемой информации и/или обращаться к информации, собранной и поддерживаемой координатором. Также возможно, что другое устройство, упоминаемое как оценщик дефицита, может собирать и поддерживать вышеупомянутую информацию, и что вычислительные устройства и/или координатор могут получать доступ к такой информации из оценщика дефицита. В общем, способ, описанный со ссылкой на фиг. 6, может быть выполнен либо одноранговым вычислительным устройством, либо координатором, который осуществляет связь с одноранговыми вычислительными устройствами, либо оценщиком дефицита, либо комбинацией вычислительного устройства, координатора и/или оценщика дефицита. Это всего лишь несколько примеров, которые не рассматриваются как всеобъемлющие.

[0060] На этапе 604 распределение единиц цифрового контента приоритизируется способом, который снижает дефицит единиц цифрового контента, имеющих дефицит, который превышает заданный уровень. В соответствии с вариантом осуществления, единицы цифрового контента могут быть ранжированы в соответствии с их дефицитом, и единицы цифрового контента, имеющие N наивысших уровней дефицита, рассматриваются как превышающие заданный уровень, где N представляет собой целое число, которое больше или равно единице. В другом варианте осуществления Х процентов (например, 10%) единиц цифрового контента, имеющих самые высокие уровни дефицита, рассматриваются как превышающие заданный уровень. В еще одном варианте осуществления может быть определен средний уровень дефицита, и единицы цифрового контента, превышающие среднее значение (или превышающие среднее значение на конкретный процент или конкретное стандартное отклонение), могут рассматриваться как превышающие заданный уровень. Это всего лишь несколько примеров, которые не рассматриваются как всеобъемлющие. Приоритизация на этапе 604 может включать в себя приоритизацию распределения единиц цифрового контента способом, который снижает дефицит единиц цифрового контента, имеющих настоящий дефицит, который превышает заданный уровень, и/или снижает дефицит единиц цифрового контента, имеющих прогнозируемый будущий дефицит, который превышает заданный уровень. В некоторых вариантах осуществления, приоритизация на этапе 604 выполняется способом, который спрогнозирован, чтобы достичь, по существу, однородного дефицита для множества единиц цифрового контента. Например, наивысшим приоритетом может быть уменьшить дефицит (и, таким образом, повысить распространенность) единицы цифрового контента, имеющей наивысший уровень дефицита; вторым по важности приоритетом может быть уменьшить дефицит единицы цифрового контента, имеющей второй по высоте уровень дефицита, и так далее. Дополнительные типы информации, такие как, без ограничения указанным, потребность в конкретных единицах цифрового контента, могут быть также использованы при приоритизации распространения единиц цифрового контента. Например, если две единицы цифрового контента имеют тот же самый или по существу тот же самый дефицит, но одна пользуется более высоким спросом, чем другая, то более высоким приоритетом может быть распространять единицу цифрового контента, имеющую более высокий спрос. Настоящий дефицит указывает на текущие уровни дефицита в одноранговой сети или ее части. Прогнозируемый будущий дефицит может быть определен путем мониторинга трендов в уровнях дефицита. Например, если уровень дефицита конкретной единицы цифрового контента исторически увеличивается на 10 процентов в день, то на основе этой информации можно прогнозировать будущие уровни дефицита. Прогнозируемый будущий дефицит может также принимать во внимание усилия, направленные на снижение дефицита, которые реализуются в соответствии с вариантами осуществления, описанными в настоящем документе.

[0061] На этапе 606 осуществляется или рекомендуется распространение единиц цифрового контента на основе приоритизации, чтобы снизить дефицит единиц цифрового контента, имеющих дефицит, который превышает заданный уровень. Если координатор выполняет этапы по фиг. 6, координатор может выполнять этап 606 путем инструктирования (или рекомендации), чтобы один или более одноранговых вычислительных устройств загружал дефицитный цифровой контент. Это может происходить, чтобы улучшать общее состояние здоровья роя, и, таким образом, может происходить независимо от того, действительно ли необходим или желателен конкретному вычислительному устройству, которое загружает конкретный дефицитный цифровой контент, этот конкретный дефицитный цифровой контент. Аналогичным образом, когда одноранговое вычислительное устройство выполняет этапы по фиг. 6, одноранговое вычислительное устройство может выполнять этап 606 путем отправки запроса на загрузку для дефицитного цифрового контента к одному или более другим вычислительным устройствам, независимо от того, действительно ли необходим или желателен конкретный дефицитный цифровой контент одноранговому вычислительному устройству, посылающему запрос на загрузку.

[0062] Этапы, описанные со ссылкой на фиг. 6, могут быть выполнены для всей одноранговой сети. Кроме того, вычислительные устройства одноранговой сети могут быть сгруппированы во множество различных групп внутри одноранговой сети, и этапы, описанные со ссылкой на фиг. 6, могут быть выполнены на групповой основе. Более конкретно, отдельная информация о дефиците может быть доступна для каждой из множества групп в одноранговой сети на этапе 602, и приоритизация, выполняемая на этапе 604, может быть выполнена для каждой из групп таким образом, что приоритизация отличается для различных групп. Вычислительные устройства могут быть сгруппированы многими различными способами. Например, как было описано выше со ссылкой на фиг. 4 и 5, вычислительные устройства могут быть соотнесены с различными группами на основе информации о местоположении (например, информации о часовом поясе и/или географическом регионе). Альтернативно, вычислительные устройства могут быть сгруппированы на основе их провайдеров Интернет-услуг (ISP). Например, вычислительные устройства, обслуживаемые первым ISP, могут быть частью первой группы, вычислительные устройства, обслуживаемые вторым ISP, могут быть частью второй группы, … и вычислительные устройства, обслуживаемые N-ым ISP, могут быть частью N-ой группы. В других вариантах осуществления вычислительные устройства могут быть сгруппированы на основе маршрутизатора, к которому они подключены, или концентратора маршрутизаторов, к которому они подключены. Это всего лишь несколько примеров, которые не рассматриваются как всеобъемлющие.

[0063] Фиг. 7 иллюстрирует примерную гистограмму, которая показывает относительный дефицит элементов цифрового контента в одноранговой сети или в группе вычислительных устройств, которые являются частью одноранговой сети. Такая гистограмма представляет собой иллюстративный пример типа информации, которая может быть доступна на этапе 602. На фиг. 7 элемент #10 цифрового контента имеет самый высокий уровень дефицита, и элемент #2 цифрового контента имеет второй по высоте уровень дефицита. Соответственно, на этапе 604, распространение элемента #10 цифрового контента может иметь самый высокий приоритет, и распространение элемента #2 цифрового контента может иметь второй по высоте приоритет. Как упоминалось выше, в некоторых вариантах осуществления этап 604 выполняется таким способом, который прогнозируется, чтобы достичь, по существу, однородного дефицита для множества элементов цифрового контента. Если однородный дефицит был достигнут, то уровни дефицита будут одинаковыми для всех элементов цифрового контента, показанных на гистограмме на фиг. 7. Для примера, цель может состоять в том, что сто различных единиц цифрового контента, каждая, должны иметь тот же самый (т.е. однородный) уровень дефицита, что соответствует двадцати процентам вычислительных устройств (в группе из ста вычислительных устройств), имеющих каждый из элементов цифрового контента. Одним способом достижения этой цели было бы осуществлять или рекомендовать, чтобы каждое из ста вычислительных устройств получило разную комбинацию двадцати из ста единиц цифрового контента, так что каждая единица цифрового контента имеет дефицит, определяемый как 20 из 100. Это просто пример, который не предназначен для ограничения.

[0064] Дефицит и изобилие (распространенность) находятся в обратной пропорции, и чем больше дефицит, тем ниже распространенность, и чем ниже дефицит, тем больше распространенность. Соответственно, в объеме варианта осуществления было бы на этапе 602 получать доступ к информации, указывающей на распространенность, так как информация, указывающая на распространенность, также является показательной для дефицита (например, элемент цифрового контента с самой низкой распространенностью, имеет наибольший дефицит, и наоборот). Кроме того, в объеме варианта осуществления настоящего раскрытия было бы приоритизировать распространение единиц цифрового контента на этапе 604 таким способом, который увеличивает распространенность элементов цифрового контента, имеющих распространенность ниже заданного уровня. Аналогичным образом, было бы в объеме варианта осуществления выполнять или рекомендовать распространение элементов цифрового контента на этапе 606, чтобы увеличить распространенность элементов цифрового контента, имеющих распространенность, которая ниже заданного уровня. Другими словами, меры распространенности также показательны для дефицита.

Совместное получение фрагментов, чтобы повысить пропускную способность кластера одноранговых узлов

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

[0066] Блок-схема высокого уровня по фиг. 8, обсужденная ниже, используется, чтобы пояснить эти варианты осуществления. Более конкретно, фиг. 8 теперь будет использоваться для описания способа для улучшения распространения единиц цифрового контента между вычислительными устройствами одноранговой сети. Этапы, описанные со ссылкой на фиг. 8, могут быть выполнены координатором (например, 142 на фиг. 1) или вычислительным устройством (например, 1121 на фиг. 1), или их комбинацией. Как показано на фиг. 8, на этапе 802 вычислительные устройства группируются во множество кластеров вычислительных устройств, так что каждый из кластеров будет включать в себя множество вычислительных устройств. Аналогично способам, обсужденным выше, группирование, выполняемое на этапе 802, может быть основано на ISP, которые обслуживают вычислительные устройства, географических регионах, в которых расположены вычислительные устройства, часовых поясах, в которых находятся вычислительные устройства, маршрутизаторах или концентраторах маршрутизаторов, к которым подключены вычислительные устройства, но не ограничивается этим. Альтернативно или дополнительно, группирование, выполняемое на этапе 802, может выполняться на основе текущей и/или исторической пропускной способности передачи данных между вычислительными устройствами. Например, вычислительные устройства, имеющие высокую текущую и/или историческую пропускную способность передачи данных, могут быть сгруппированы в один кластер. Кластер, как термин, используемый в данном документе, обозначает группу вычислительных устройств, которые работают совместно с выгодой для группы, что, как правило, также приносит пользу отдельным вычислительным устройствам группы.

[0067] На этапе 804 различным вычислительным устройствам в том же самом кластере инструктируют или им рекомендуют отправлять запросы на загрузку для различных единиц цифрового контента на вычислительные устройства вне кластера, так что множество вычислительных устройств в том же самом кластере коллективно получают все различные единицы цифрового контента. Инструктирование вычислительного устройства отправлять запрос на загрузку является способом осуществления отправки запроса на загрузку. В некоторых вариантах осуществления вычислительные устройства вне кластера, на которые вычислительные устройства внутри кластера отправляют запросы на загрузку, могут включать в себя вычислительные устройства сети доставки контента (CDN), которые поддерживают одноранговую сеть, или, в более общем смысле, вычислительные устройства, которые управляют хранилищем цифрового контента (например, 132 на фиг. 1), которое поддерживает одноранговую сеть. Например, если этапы, описанные со ссылкой на фиг. 8, выполняются координатором (например, 142 на фиг. 1), координатор может выполнять группирование, ассоциированное с этапом 802; и координатор может инструктировать (или рекомендовать), чтобы вычислительные устройства внутри кластера отправляли запросы на загрузку для различных единиц цифрового контента к вычислительным устройствам вне кластера на этапе 804.

[0068] Для простоты предположим, что имеется сто вычислительных устройств в кластере, и каждому из вычислительных устройств в кластере требуется или желательно получить сто разных единиц цифрового контента. Каждое из вычислительных устройств может индивидуально пытаться получить каждую из ста единиц цифрового контента из вычислительных устройств-источников вне кластера или непосредственно из CDN. Однако это было бы очень неэффективным и потенциально дорогостоящим. В отличие от этого, в соответствии с некоторыми вариантами осуществления, каждое из ста вычислительных устройств в кластере может получить различную одну из ста различных единиц цифрового контента, что приведет к тому, что кластер совместно получит все сто единиц цифрового контента.

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

[0070] Этапы 804 и 806 могут быть выполнены независимо друг от друга для каждого из кластеров вычислительных устройств. Другими словами, если этап 802 приводит к тому, что вычислительные устройства группируются в двадцать кластеров, то этапы 804 и 806 могут быть выполнены для каждого из двадцати кластеров.

[0071] Фиг. 9 далее будет использована для иллюстрации примера вариантов осуществления, которые были только что описаны со ссылкой на блок-схему на фиг. 8. Для простоты предположим, что кластер включает три вычислительных устройства 1121, 1122 и 1123, каждому из которых нужно загрузить одни и те же три единицы 1341, 1342 и 1343 цифрового контента. Каждое из трех вычислительных устройств 112 может индивидуально загрузить каждый из трех элементов цифрового контента. Альтернативно, с помощью описанных в данном документе вариантов осуществления, вычислительное устройство 1121 может загрузить элемент 1341 цифрового контента, вычислительное устройство 1122 может загрузить элемент 1342 цифрового контента, и вычислительное устройство 1123 может загрузить элемент 1343 цифрового контента, что приведет к тому, что в кластере вычислительных устройств совместно будут иметься все три элемента 131 цифрового контента. Три вычислительных устройства 112 могут загрузить элементы 131 цифрового контента из хранилища цифрового контента (например, 132), которое может или не может поддерживаться посредством CDN. Также в объем варианта осуществления входит то, что вычислительные устройства 112 загружают элементы цифрового контента или по меньшей мере его часть из других одноранговых вычислительных устройств 112, которые находятся вне их кластера, в противоположность загрузке из хранилища 132 цифрового контента.

[0072] Вычислительное устройство 1121 может затем загрузить элемент 1342 цифрового контента из вычислительного устройства 1122 и загрузить элемент 1343 цифрового контента из вычислительного устройства 1123. Аналогично, вычислительное устройство 1122 может затем загрузить элементы 1341 и 1343 цифрового контента, соответственно, из вычислительных устройств 1121 и 1123, и вычислительное устройство 1123 может загрузить элементы 1341 и 1342 цифрового контента, соответственно, из вычислительных устройств 1121 и 1122.

[0073] Различные варианты осуществления, описанные в данном документе, могут быть объединены. Например, варианты осуществления, описанные со ссылкой на фиг. 6 и 8, могут быть объединены таким образом, что на этапе 804 и/или на этапе 806 распространение единиц цифрового контента приоритизируется в зависимости от дефицита единиц цифрового контента, так что единицы цифрового контента с более высокими уровнями дефицита более быстро получаются кластером (от вычислительных устройств вне кластера) и/или распространяются среди вычислительных устройств в кластере. В качестве другого примера, варианты осуществления, описанные со ссылкой на фиг. 4 и 8, могут быть объединены таким образом, что на этапе 408 осуществление или рекомендация отправки запросов на загрузку приоритизируется в зависимости от дефицита единиц цифрового контента в группе, так что единицы цифрового контента с более высоким уровнем дефицита более быстро получаются группой (от вычислительных устройств в другой группе). В качестве еще одного примера, варианты осуществления, показанные на фиг. 2 и 8, могут быть объединены таким образом, что конкретный цифровой контент, для которого информация о других вычислительных устройствах, которые имеют его или находятся в процессе получения, доступна на этапах 202 и 204, идентифицируется (до этапов 202 и 204) в зависимости от информации, указывающей дефицит, чтобы снизить дефицит цифрового контента, имеющего дефицит, который превышает заданный уровень. В другом примере, варианты осуществления по фиг. 2 и 4 могут быть объединены таким образом, что этапы 402-406 первоначально выполняются, чтобы идентифицировать, на основе межгрупповой информации, вторую группу, которая, вероятно, включает в себя хорошие вычислительные устройства-источники для конкретного вычислительного устройства, соотнесенного с первой группой; и тогда информация, доступная на этапах 202 и 204, может соответствовать другим вычислительным устройствам, соотнесенным со второй группой, идентифицированной на этапе 406. Другие комбинации вариантов осуществления, описанных выше, также находятся в пределах объема вариантов осуществления.

Примерное вычислительное устройство

[0074] Как упоминалось выше, одно или более вычислительных устройств 112 может быть, без ограничения указанным, видеоигровой консолью. Фиг. 10 теперь будет использоваться для описания примерной видеоигровой и медиаконсоли или, более обобщенно, будет использоваться для описания примерной игровой и медиасистемы 1000, которая включает в себя игровую и медиаконсоль. Следующее обсуждение фиг. 10 предназначено для обеспечения краткого общего описания подходящего вычислительного устройства, с помощью которого концепции, представленные в данном документе, могут быть реализованы. Понятно, что система по фиг. 10 приведена лишь в качестве примера. В других примерах, варианты осуществления, описанные в данном документе, могут быть реализованы с использованием различных клиентских вычислительных устройств, либо через приложение браузера, либо прикладное программное обеспечение, постоянно находящееся и выполняемое на клиентском вычислительном устройстве. Как показано на фиг. 10, игровая и медиасистема 1000 включает в себя игровую и медиаконсоль (в дальнейшем "консоль") 1002. В общем, консоль 1002 является одним типом клиентского вычислительного устройства. Консоль 1002 сконфигурирована для размещения одного или более беспроводных контроллеров, как представлено контроллерами 10041 и 10042. Консоль 1002 оснащена внутренним накопителем на жестком диске (не показан) и накопителем 1006 на портативных носителях 1006, которые поддерживают различные формы портативных носителей хранения информации, как представлено оптическим диском 1008 хранения информации. Примеры подходящих портативных носителей хранения информации включают в себя DVD, CD-ROM, игровые диски и так далее. Консоль 1002 также включает в себя два гнезда 10251 и 10252 карт блоков памяти для вставки съемных блоков 1040 памяти типа флэш-памяти. Командная кнопка 1035 на консоли 1002 включает и выключает поддержку беспроводных периферийных устройств.

[0075] Как показано на фиг. 10, консоль 1002 также включает в себя оптический порт 1030 для осуществления беспроводной связи с одним или более устройствами и два USB (Универсальная последовательная шина) порта 10101 и 10102 для поддержки проводного подключения дополнительных контроллеров или других периферийных устройств. В некоторых реализациях, количество и расположение дополнительных портов могут быть изменены. Кнопка 1012 питания и кнопка 1014 извлечения также расположены на передней поверхности игровой консоли 1002. Кнопка 1012 питания выбирается для подачи питания к игровой консоли, а также может предоставить доступ к другим функциям и элементам управления, а кнопка 1014 извлечения попеременно открывает и закрывает лоток портативного накопителя информации, чтобы вставлять и извлекать диск 1008 хранения информации.

[0076] Консоль 1002 подключается к телевизору или другому устройству отображения (например, монитору 1050) с помощью A/V (аудио/видео) интерфейсных кабелей 1020. В одном варианте осуществления консоль 1002 оснащена специализированным A/V-портом (не показан), сконфигурированным для безопасной цифровой передачи контента с использованием A/V-кабелей 1020 (например, A/V-кабелей, подходящих для связи с HDMI (мультимедийный интерфейс высокого разрешения) портом на мониторе 1050 высокого разрешения или другим устройством отображения). Кабель 1022 питания подает питание на игровую консоль. Консоль 1002 может быть дополнительно сконфигурирована с широкополосными возможностями, как представлено кабельным или модемным разъемом 1024 для облегчения доступа к сети, такой как Интернет. Широкополосные возможности также могут быть предоставлены по беспроводной сети, через широкополосную сеть, такую как сеть Wi-Fi.

[0077] Каждый контроллер 1004 соединен с консолью 1002 с помощью проводного или беспроводного интерфейса. В иллюстративной реализации, контроллеры 1004 являются USB-совместимыми и связаны с консолью 1002 через беспроводный или USB-порт 1010. Консоль 1002 может быть оснащена любым из широкого спектра механизмов взаимодействия с пользователем. В примере, показанном на фиг. 10, каждый контроллер 1004 оснащен двумя контроллерными элементами 10321 и 10322, D-панелью 1034, кнопками 1036 и двумя триггерами 1038. Эти контроллеры являются просто характерными, и другие известные игровые контроллеры могут быть заменены или добавлены к показанным на фиг. 10.

[0078] В одной реализации блок памяти (MU) 1040 может также быть вставлен в контроллер 1004, чтобы обеспечить дополнительное и портативное устройство для хранения. Портативные MU позволяют пользователям хранить параметры игры для использования при игре на других консолях. В этом варианте осуществления каждый контроллер сконфигурирован, чтобы вместить два MU 1040, хотя также могут быть использованы больше или меньше, чем два MU.

[0079] Игровая и медиасистема 1000, как правило, сконфигурирована для исполнения игр, сохраненных на носителе памяти, а также для загрузки и исполнения игр и воспроизведения предварительно записанной музыки и видео из электронных и твердотельных источников медиа. С различными предложениями для хранения, произведения могут быть воспроизведены с накопителя на жестком диске, с оптических дисковых носителей (например, 1008), из онлайн-источников или из MU 1040. Образцы типов носителей, которые может воспроизводить игровая и медиасистема 1000, включают в себя:

- видеоигры, воспроизводимые с CD и DVD дисков, с накопителя на жестком диске или из онлайн-источника.

- Цифровая музыка, воспроизводимая с CD в накопителе 1006 на портативных носителях, из файла на накопителе на жестком диске (например, музыка в формате Windows Media Audio (WMA)) или из онлайн-источников потоковой передачи.

- Цифровое аудио/видео, воспроизводимое с DVD диска в накопителе 1006 на портативных носителях, из файла на накопителе на жестком диске (например, Active Streaming Format (формат активной потоковой передачи)) или из онлайн-источников потоковой передачи.

[0080] При функционировании, консоль 1002 сконфигурирована для приема ввода от контроллеров 1004 и отображения информации на дисплее 1050. Например, консоль 1002 может отображать пользовательский интерфейс на дисплее 1050, чтобы позволить пользователю выбрать игру, используя контроллер 1004 и информацию о разрешимости состояния дисплея, как описано ниже.

[0081] Фиг. 11 является функциональной блок-схемой игровой и медиасистемы 1000 и показывает функциональные компоненты игровой и медиасистемы 1000 более подробно. Консоль 1002 имеет центральный процессорный блок (CPU) 1100 и контроллер 1102 памяти, который облегчает процессору доступ к различным типам памяти, таким как флэш-память только для считывания (ROM) 1104, память произвольного доступа (RAM) 1106, накопитель 1108 на жестком диске и накопитель 1006 на портативных носителях. В одной реализации CPU 1100 включает в себя кэш 1110 уровня 1 и кэш 1112 уровня 2 для временного хранения данных и, следовательно, уменьшения количества циклов доступа к памяти, выполненных к накопителю 1108 на жестком диске, тем самым улучшая скорость обработки и пропускную способность.

[0082] CPU 1100, контроллер 1102 памяти и различные устройства памяти соединены друг с другом с помощью одной или нескольких шин (не показано). Подробная информация о шине, которая используется в этой реализации, не особенно важна для понимания представляющего интерес предмета, обсуждаемого в данном документе. Однако следует понимать, что такая шина может включать в себя одну или более последовательных и параллельных шин, шину памяти, периферийную шину и процессорную или локальную шину, использующую любую из множества шинных архитектур. В качестве примера, такие архитектуры могут включать в себя шину микроканальной архитектуры (ISA), улучшенную ISA (EISA) шину, шину Ассоциации по стандартам видеооборудования (VESA) и шину межсоединений периферийных компонентов (PCI), также известную как шина расширения.

[0083] В одной реализации, CPU 1100, контроллер 1102 памяти, ROM 1104 и RAM 1106 интегрированы в общий модуль 1114. В этой реализации ROM 1104 выполнена в виде флэш-ROM, подключенной к контроллеру 1102 памяти через шину PCI и шину ROM (ни одна из которых не показана). RAM 1106 сконфигурирована как множество модулей синхронной динамической RAM с удвоенной скоростью передачи данных (DDR SDRAM), которые независимо управляются контроллером 1102 памяти через отдельные шины (не показаны). Накопитель 1108 на жестких дисках и накопитель 1006 на портативных носителях показаны как соединенные с контроллером 1102 памяти через шину PCI и шину 1116 расширения стандарта ATA. Однако в других реализациях специализированные структуры шин данных разных типов могут также применяться в качестве альтернативы.

[0084] Блок 1120 обработки трехмерной графики и видеокодер 1122 формируют конвейер обработки видео для высокоскоростной и с высоким разрешением (например, High Definition) обработки графики. Данные переносятся из блока 1120 обработки графики на видеокодер 1122 через шину цифрового видео (не показана). Блок 1124 обработки аудио и аудиокодек (кодер/декодер) 1126 формируют соответствующий конвейер обработки аудио для многоканальной обработки аудио различных цифровых форматов аудио. Аудиоданные переносятся между блоком 1124 обработки аудио и аудиокодеком 1126 через линию связи (не показана). Конвейеры обработки видео и аудио выводят данные на A/V (аудио/видео) порт 1128 для передачи на телевизор или другое устройство отображения. В иллюстративной реализации компоненты 1120-1128 обработки видео и аудио смонтированы на модуле 1114.

[0085] Фиг. 11 показывает модуль 1114, включающий в себя USB-хост-контроллер 1130 и сетевой интерфейс 1132. USB-хост-контроллер 1130 показан в коммуникации с CPU 1100 и контроллером 1102 памяти через шину (например, шину PCI) и служит в качестве хоста для контроллеров 10041-10044 периферийных устройств. Сетевой интерфейс 1132 обеспечивает доступ к сети (например, Интернету, домашней сети и т.д.) и может быть любым из различных компонентов проводных или беспроводных интерфейсов, включая Ethernet-карту, модем, карту беспроводного доступа, модуль Bluetooth, кабельный модем и тому подобное.

[0086] В реализации, изображенной на фиг. 11, консоль 1002 включает в себя подузел 1140 поддержки контроллеров для поддержки четырех контроллеров 10041-10044. Подузел 1140 поддержки контроллеров включает в себя любые аппаратные и программные компоненты для поддержки проводной и беспроводной работы с внешним устройством управления, таким как, например, медиа и игровой контроллер. Подузел 1142 ввода/вывода (I/O) передней панели поддерживает множество функциональностей кнопки 1012 питания, кнопку 1014 извлечения, а также любые светодиоды (LED) или другие индикаторы, расположенные на внешней поверхности консоли 1002. Подузлы 1140 и 1142 осуществляют связь с модулем 1114 через один или более кабельных узлов 1144. В других реализациях консоль 1002 может включать в себя дополнительные контроллерные подузлы. Показанная реализация также показывает оптический интерфейс 1135 ввода/вывода, который сконфигурирован для отправки и приема сигналов, которые могут передаваться в модуль 1114.

[0087] MU 10401 и 10402 проиллюстрированы как подключаемые к MU портам "А" 10301 и "B" 10302, соответственно. Дополнительные MU (например, MU 10403-10406) показаны как подключаемые к контроллерам 10041 и 10043, т.е. два MU для каждого контроллера. Контроллеры 10042 и 10044 также могут быть сконфигурированы для приема MU (не показано). Каждый MU 1040 предоставляет дополнительное хранилище, в котором могут быть сохранены игры, параметры игр и другие данные. В некоторых реализациях, другие данные могут включать в себя любое из цифровых игровых компонентов, исполняемого игрового приложения, набора инструкций для расширения игрового приложения и медиафайл. При вставке в консоль 1002 или контроллер, к MU 1040 может обеспечиваться доступ контроллером 1102 памяти.

[0088] Модуль 1150 источника питания системы подает питание на компоненты игровой системы 1000. Вентилятор 1152 охлаждает схемы внутри консоли 1002.

[0089] Приложение 1160, содержащее машинные инструкции, сохранено в накопителе 1108 на жестком диске. Когда на консоль 1002 подается питание, различные части приложения 1160 загружаются в RAM 1106 и/или кэши 1110 и 1112 для исполнения на CPU 1100, причем приложение 1160 является одним таким примером. Различные приложения могут храниться в накопителе 1108 на жестком диске для выполнения на CPU 1100.

[0090] Консоль 1002 также показана, как включающая в себя подсистему 1170 связи, сконфигурированную, чтобы коммуникативно связывать консоль 1002 с одним или более другими вычислительными устройствами (например, другими консолями). Подсистема 1170 связи может включать в себя проводные и/или беспроводные устройства связи, совместимые с одним или более различными протоколами связи. В качестве неограничивающего примера, подсистема 1170 связи может быть сконфигурирована для связи через беспроводную телефонную сеть или проводную или беспроводную локальную или глобальную сеть. В некоторых вариантах осуществления, подсистема 1170 связи может позволить консоли 1002 передавать и/или принимать сообщения к и/или от других устройств через сеть, такую как Интернет. В конкретных вариантах осуществления подсистема 1170 связи может использоваться для связи с координатором и/или другими вычислительными устройствами для отправки запросов на загрузку и для осуществления загрузки и выгрузки цифрового контента. В общем, подсистема 1170 связи может обеспечивать консоли 1002 возможность участия в обмене данными между одноранговыми узлами.

[0091] Игровая и медиасистема 1000 может работать как автономная система просто путем подключения системы к монитору 1050 (фиг. 10), телевизору, видеопроектору или другому устройству отображения. В этом автономном режиме игровая и медиасистема 1000 позволяет одному или более игрокам играть в игры, или наслаждаться цифровым медиа, например, смотреть фильмы или слушать музыку. Однако с интеграцией широкополосной связности, сделанной доступной через сетевой интерфейс 1132 или, в более общем виде, подсистему 1170 связи, игровая и медиасистема 1000 может также работать в качестве участника в большом сетевом игровом сообществе, таком как одноранговая сеть, как описано выше в связи с фиг. 1.

[0092] Вышеописанная игровая и медиаконсоль 1002 является лишь одним примером вычислительных устройств 112, описанных выше со ссылкой на фиг. 1 и различные другие чертежи. Как было описано выше, существуют различные другие типы вычислительных устройств, с которыми варианты осуществления, описанные в данном документе, могут быть использованы.

[0093] Термины "модуль" и "программа" могут быть использованы для описания аспекта вычислительного устройства или системы, реализуемых для выполнения конкретной функции. Следует иметь в виду, что различные модули и/или программы могут быть реализованы из одного и того же приложения, услуги, кодового блока, объекта, библиотеки, подпрограммы, API, функции и т.д. Кроме того, тот же самый модуль и/или программа могут быть реализованы с помощью разных приложений, сервисов, кодовых блоков, объектов, подпрограмм, API, функций и т.д. Термины "модуль" и "программа" могут охватывать индивидуальные или группы исполняемых файлов, файлы данных, библиотеки, драйверы, скрипты, записи базы данных и т.д.

[0094] Следует понимать, что "сервис", как используется в данном документе, представляет собой прикладную программу, исполняемую по множеству пользовательских сессий. Сервис может быть доступным одному или более компонентам систем, программ и/или других сервисов. В некоторых реализациях сервис может работать на одном или более серверов/вычислительных устройств.

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

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

Похожие патенты RU2657183C2

название год авторы номер документа
ПРЯМАЯ ПОТОКОВАЯ ПЕРЕДАЧА МЕЖДУ ОДНОРАНГОВЫМИ ЭЛЕМЕНТАМИ 2012
  • Коэн Брэм
RU2553671C2
ВЫБОР И УПРАВЛЕНИЕ ИСТОЧНИКОМ ПОЛУЧЕНИЯ КОНТЕНТА 2013
  • Бурба Александр
  • Хант Брэндон
  • Гэллоп Майкл
  • Розмунд Скотт
  • Моррисон Франк Р. Iii
  • Макналти Марк Дж.
  • Ганджех Нима
RU2656794C2
СИСТЕМА И СПОСОБ, ПРЕДНАЗНАЧЕННЫЕ ДЛЯ СОВМЕСТНОГО ИСПОЛЬЗОВАНИЯ ФАЙЛОВ В ГРУППОВЫХ СОВМЕСТНО ИСПОЛЬЗУЕМЫХ ОБЛАСТЯХ ОДНОРАНГОВОЙ СЕТИ 2004
  • Лайуаллен Брайан Р.
  • Миллер Джон Л.
  • Шаппелл Майкл Э.
  • Рао Рави Т.
  • Сенкерести Скотт А.
RU2374681C2
Способ расширения сети CDN с помощью одноранговой сети 2019
  • Ивленков Сергей Владимирович
  • Зырянов Александр Владимирович
RU2722464C1
МЕХАНИЗМ ОДНОРАНГОВОЙ ШИРОКОВЕЩАТЕЛЬНОЙ ПЕРЕДАЧИ ИНФОРМАЦИОННОГО СОДЕРЖАНИЯ 2003
  • Верт Джон
  • Месгар Юджин
  • Зараховский Юджин
  • Саретто Чезаре Джон
RU2343536C2
НАДЕЖНОЕ ЭФФЕКТИВНОЕ ХРАНЕНИЕ В ОДНОРАНГОВЫХ УЗЛАХ 2007
  • Ли Цзинь
RU2435206C2
ОДНОРАНГОВАЯ АУТЕНТИФИКАЦИЯ И АВТОРИЗАЦИЯ 2005
  • Гупта Рохит
  • Манион Тодд Р.
  • Рао Рави Т.
  • Сингхал Сандип К.
RU2390945C2
ОДНОРАНГОВЫЙ ОБМЕН ИНФОРМАЦИЕЙ О ПЕРЕМЕЩЕНИИ УСТРОЙСТВ 2014
  • Деркс Патрик Джозеф
  • Дишно Дарин Джеймс
RU2676881C2
СПОСОБ И СИСТЕМА РАСПРОСТРАНЕНИЯ МЕДИА КОНТЕНТА В ПИРИНГОВОЙ СЕТИ ПЕРЕДАЧИ ДАННЫХ 2015
  • Клименко Алексей Константинович
RU2606314C1
СИСТЕМА И СПОСОБ ДЛЯ УПРОЩЕНИЯ ПЕРЕДАЧИ КОНТЕНТА МЕЖДУ КЛИЕНТСКИМИ УСТРОЙСТВАМИ В ЭЛЕКТРОННОЙ СЕТИ 2008
  • Хван Пол
  • Георгис Николаос
RU2479034C2

Иллюстрации к изобретению RU 2 657 183 C2

Реферат патента 2018 года ПОВЫШЕНИЕ ПРОИЗВОДИТЕЛЬНОСТИ ОДНОРАНГОВЫХ СЕТЕЙ

Изобретение относится к технологиям сетевой связи. Технический результат заключается в повышении скорости передачи данных. Способ содержит этапы, на которых: осуществляют доступ к информации касаемо одного или более из других вычислительных устройств, которые в текущий момент имеют конкретный цифровой контент; осуществляют доступ к информации касаемо одного или более из других вычислительных устройств, которые в текущий момент находятся в процессе получения конкретного цифрового контента; на основе информации касаемо одного или более из других вычислительных устройств, которые в текущий момент имеют конкретный цифровой контент, определяют одну или более первых оценок количества времени, которое потребуется для упомянутого конкретного вычислительного устройства, чтобы загрузить конкретный цифровой контент с каждого из одного или более из других вычислительных устройств, которые в текущий момент имеют конкретный цифровой контент. 3 н. и 15 з.п. ф-лы, 11 ил.

Формула изобретения RU 2 657 183 C2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Документы, цитированные в отчете о поиске Патент 2018 года RU2657183C2

Колосоуборка 1923
  • Беляков И.Д.
SU2009A1
Станок для изготовления деревянных ниточных катушек из цилиндрических, снабженных осевым отверстием, заготовок 1923
  • Григорьев П.Н.
SU2008A1
Способ и приспособление для нагревания хлебопекарных камер 1923
  • Иссерлис И.Л.
SU2003A1

RU 2 657 183 C2

Авторы

Бурба Александер

Хант Брэндон

Моррисон Франк Р. Iii

Даты

2018-06-08Публикация

2013-12-11Подача