Повышение производительности одноранговых сетей
Иллюстрации
Показать всеИзобретение относится к технологиям сетевой связи. Технический результат заключается в повышении скорости передачи данных. Способ содержит этапы, на которых: осуществляют доступ к информации касаемо одного или более из других вычислительных устройств, которые в текущий момент имеют конкретный цифровой контент; осуществляют доступ к информации касаемо одного или более из других вычислительных устройств, которые в текущий момент находятся в процессе получения конкретного цифрового контента; на основе информации касаемо одного или более из других вычислительных устройств, которые в текущий момент имеют конкретный цифровой контент, определяют одну или более первых оценок количества времени, которое потребуется для упомянутого конкретного вычислительного устройства, чтобы загрузить конкретный цифровой контент с каждого из одного или более из других вычислительных устройств, которые в текущий момент имеют конкретный цифровой контент. 3 н. и 15 з.п. ф-лы, 11 ил.
Реферат
Уровень техники
[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 может быть получена путем суммирования оценки количества времени, которое потребуется другому вычислительному устройству, чтобы завершить процесс получения конкретного цифрового контента, и оценки количества времени, которое потребуется конкретному вычислительному устройству, чтобы завершить загрузку конкретного цифрового контента из другого вычислительного устройства, после того как другое вычислительное устройство завершает процесс получ