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

Иллюстрации

Показать все

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

Реферат

Область техники

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

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

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

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

Игровые сети на базе закрытой платформы сконфигурированы для передачи данных посредством загрузки с сетевого сервера на игровую систему клиента в форме приложений, программ и других элементов данных. Размер таких данных может варьироваться в диапазоне от 10 Мб в каждой передаче до 2Гб в каждой передаче в зависимости от приложения. Передачи большего объема до полного завершения могут длиться несколько часов и иногда даже дней.

В данном контексте возникают варианты осуществления данного изобретения.

Краткое описание изобретения

Фиг.1 - блок-схема, изображающая систему закрытой среды согласно одному варианту осуществления данного изобретения.

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

Фиг.3 - блок-схема, изображающая клиентское устройство согласно одному варианту осуществления данного устройства.

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

Описание отдельных вариантов осуществления

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

Введение

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

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

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

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

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

Как видно на фиг.1, эффективная система 100 на базе закрытой платформы может включать в себя одно или несколько клиентских устройств 101 и один или несколько загрузочных серверов 105. Клиентские устройства 101 и загрузочные серверы 105 могут быть сконфигурированы для связи друг с другом в сети 103 на закрытой платформе. В качестве примера и без потери универсальности, сеть 103 может быть двунаправленной коммуникационной сетью. Сеть 103 может быть локальной сетью или глобальной сетью. Сеть 103 может быть осуществлена, например, с помощью инфраструктуры, такой, которая используется для двунаправленных сетей кабельного телевидения, ISDN или xDSL высокоскоростных сетей, которые позволяют осуществлять сетевые соединения для выполнения определенных вариантов осуществления данного изобретения.

В качестве примера и без ограничения, клиентское устройство 101 может быть консолями видеоигр. Примерами коммерчески доступных консолей видеоигр включают в себя Xbox® от Microsoft Corporation of Redmond Washington, Wii® от Nintendo Company, Ltd of Kyoto Japan и устройства PlayStation®, такие как PlayStation 3 от Sony Computer Entertainment of Tokyo, Japan. Xbox® - является зарегистрированным товарным знаком Microsoft Corporation of Redmond Washington. PlayStation® - является зарегистрированным товарным знаком Kabushika Kaisha Sony Computer Entertainment of Tokyo, Japan. Wii® - является зарегистрированным товарным знаком Nintendo Company, Ltd of Kyoto, Japan. Альтернативно, клиентское устройство 101 может быть устройством любого другого типа, способным работать в сети закрытой среды. В качестве примера, а не в качестве ограничения, такое устройство, способное работать в сети с закрытой средой, может включать в себя смартфоны (например, iPhone, Android Phone и т.д.).

Используемый здесь термин «закрытая платформа» относится к сети, в которой определенные пакеты содержимого, ассоциированные с сетью, защищены от изменения извне. Такие пакеты данных могут включать в себя приложения, программы, аудио/видео ресурсы и другие типы данных, ассоциированных с сетью. Определенные элементы пакетов защищенных данных, передаваемых между клиентскими устройствами 101 и загрузочным сервером 105, могут быть модифицированы только после авторизации в сети. Для удобства такие элементы именуются элементами защищенного содержимого. Элементы защищенного содержимого на клиентском устройстве 101 не могут быть изменены клиентом или любой другой третьей стороной без авторизации. Поэтому для устройства на базе закрытой платформы или приложений закрытой платформы управление обновлениями может быть существенно упрощено.

Термин «пакет данных» относится к сбору данных, которые составляют части пакета содержимого для передачи между загрузочным сервером 105 и клиентским устройством 101. В качестве примера, а не ограничения, такая база данных может включать в себя приложения, программы, видео/аудио ресурсы, патчи обновления или любой другой тип данных, передаваемых от загрузочного сервера на клиентское устройство.

Клиентское устройство 101 может получать команды и части пакетов данных от одного или нескольких загрузочных серверов 105. Загрузочный сервер 105 может определять, какие части запрошенного пакета данных могут находиться на клиентском устройстве 105, используя соединенную с загрузочным сервером 105 базу 109 данных. В качестве примера, а не ограничения, такая база 109 данных может включать в себя информацию, имеющую отношение к хранящемуся защищенному содержимому клиентского устройства, а также информацию, имеющую отношение к запрошенному пакету данных. В качестве примера, а не ограничения, загрузочный сервер 105 также может извлекать запрошенные оставшиеся части пакета данных с сервера 107 содержимого для передачи на клиентское устройство 101. Альтернативно, загрузочный сервер 105 может хранить пакеты данных и его части внутри.

Как показано на фиг.2, система 100 с закрытой средой может быть сконфигурирована для осуществления способа эффективной загрузки пакетов данных для защищенного содержимого согласно предлагаемому способу 200. Многочисленные аспекты способа 200 могут быть осуществлены посредством выполнения исполняемых команд компьютера, запущенных на клиентском устройстве 101 и/или загрузочных серверах 105. В частности, клиентское устройство 101 может быть сконфигурировано, например, посредством подходящего программирования для выполнения определенных команд 201 клиентского устройства. Кроме того, загрузочный сервер 105 может быть сконфигурирован для выполнения определенных команд 215 загрузочного сервера.

Первоначально, клиентское устройство 101 может, факультативно, отправлять запрос 229 на загрузочный сервер 105 на загрузку пакета данных, как показано на 203. В качестве примера, а не ограничения, такой запрос 209 может быть сделан пользователем клиентского устройства 101. Например, пользователь игровой консоли может запросить загрузку пакета защищенного содержимого, такого как, например, демонстрационная версия или полная версия игры, на устройство 101. Альтернативно, запрос 229 может быть сделан автоматически клиентским устройством 101. Например, клиентское устройство 101 может периодически в заданное время опрашивать загрузочный сервер 105 на наличие обновлений устройства или обновлений защищенного содержимого для пакета данных. Факультативно, загрузочный сервер 105 получает запрос 229, как показано на 217. После получения запроса 229 загрузочный сервер 105 может сохранить запрос 229 в своей локальной памяти для последующей обработки.

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

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

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

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

Загрузочный сервер 105 получает этот перечень 231, как показано на 219. После получения перечня 231, загрузочный сервер 105 может сохранять его в своей локальной памяти для последующей обработки. После получения запроса 229 на пакет данных и перечня 231 клиента, загрузочный сервер 105 может идентифицировать из перечня части пакета данных, которые уже хранятся на клиентском устройстве, как показано на 221. В частности, сервер 105 может сравнивать набор элементов содержимого в пакете данных с набором существующих элементов содержимого, определенных из перечня 231. В качестве примера, а не ограничения, уже хранящиеся части могут быть идентифицированы с помощью таблицы поиска или базы данных. Так как клиентское устройство 101 и загрузочный сервер 105 функционируют в сети на базе закрытой платформы, любое содержимое, хранящееся на клиентском устройстве внутри сети на базе закрытой платформы, может быть оригинальной версией или авторизованной обновленной версией (то есть неавторизованные версии отсутствуют). Поэтому загрузочный сервер 105 может просто сохранять базу данных/таблицу поиска для всех элементов содержимого, соответствующих каждому пакету защищенного содержимого внутри сети. Загрузочный сервер 105 может определять, какие части запроса 229 на пакет данных уже хранятся в той или иной форме на клиентском устройстве посредством сравнения списка файлов содержимого для запроса 229 на пакет данных с базой данных/таблицей поиска для каждого элемента содержимого, перечисленного в перечне 231.

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

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

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

Затем клиентское устройство 101 может собирать идентифицированные части пакета данных из расположенного на клиентском устройстве существующего содержимого с помощью команд 233, как показано на 209. В качестве примера, а не ограничения, информация в ответе 233 может факультативно включать в себя подлежащие выполнению процессором кодовые команды, связанные с клиентским устройством 101, которые сконфигурированы для того, чтобы направлять клиентское устройство 101 на сбор уже существующих на устройстве частей пакета данных. Альтернативно, клиентское устройство 101 может быть сконфигурировано для размещения и сбора уже существующих на устройстве частей пакета данных без дополнительного кода. В качестве примера, а не ограничения, информация в ответе 233 может включать в себя список имен файлов, соответствующих файлам защищенного содержимого, которые, в свою очередь, соответствуют пакету содержимого и номеру версии в отправленном на сервер перечне. В таком случае клиентское устройство 101 может производить поиск на своем локальном запоминающем устройстве (например, жестком диске) файлов, соответствующих перечисленным в ответе именам файлов. Собранные файлы могут включать в себя замены для несовпадающих файлов, которые идентифицированы во время факультативной верификации и согласования на 208.

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

Как только идентифицированные части пакета данных собраны клиентским устройством 101, клиентское устройство 101 может запрашивать оставшуюся часть пакета данных с сервера 105, как показано на 211. В качестве примера, а не ограничения, запрос 235 может просто быть извещением серверу 105, обозначающим, что клиентское устройство 101 завершило сбор идентифицированных частей пакета данных. Альтернативно, клиентское устройство 101 может быть сконфигурировано для запуска сканирования частично завершенного пакета данных для определения требующихся оставшихся частей. В таком осуществлении клиентское устройство 101 может независимо проверять, все ли части пакета данных, идентифицированные загрузочным сервером, действительно уже присутствуют на клиентском устройстве. Загрузочный сервер 105 получает этот запрос, как показано на 225.

После получения запроса 235 на оставшуюся часть пакета данных от клиентского устройства 101, загрузочный сервер 105 отправляет оставшуюся часть 237 пакета данных на клиентское устройство 101, как показано на 227. В качестве примера, а не ограничения, загрузочный сервер 105 может извлекать оставшиеся части пакета данных из сервера содержимого для передачи на клиентское устройство 101. Альтернативно, загрузочный сервер 105 может хранить такие запрошенные оставшиеся части пакета данных в своем локальном запоминающем устройстве для последующего извлечения и передачи. Затем клиентское устройство 101 получает оставшуюся часть пакета 237 данных, как показано на 213. Клиентское устройство 101 может затем хранить полный комплект данных в своей локальной памяти или запоминающем устройстве для последующего использования.

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

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

Клиентское устройство может также включать в себя память 305, сконфигурированную для хранения приложений и для использования процессора 301. Память 305 может быть в форме интегральной схемы, например RAM, DRAM, ROM и подобного. Память 305 также может быть оперативной памятью, которая доступна всем процессорным модулям. В некоторых осуществлениях процессорный модуль 301 может иметь локальные блоки памяти, соединенные с каждым ядром. Программа 303 может храниться в оперативной памяти 305 в форме читаемых процессором команд, которые могут быть выполнены процессорными модулями. Программа 303 может быть сконфигурирована для осуществления способа эффективной загрузки пакетов данных. В качестве примера, программа 303 может включать в себя команды для отправления запроса на загрузочный сервер для загрузки пакета данных, для отправления перечня на загрузочный сервер, обозначающего существующие части пакетов защищенного содержимого, хранящиеся на клиентском устройстве, получение информации от загрузочного сервера, обозначающей части пакета данных, уже хранящиеся на клиентском устройстве, и (факультативно) их соответствующие расположения на клиентском устройстве, сбор идентифицированных частей пакета данных от загрузочного сервера и получение оставшейся части пакета данных из существующего содержимого, хранящегося на клиентском устройстве, запрос оставшейся части пакета данных от загрузочного сервера и получение оставшейся части пакета данных от загрузочного сервера. Программа 303 может быть написана на любом подходящем, читаемым процессором языке, например, С, С++, JAVA, Assembly, MATLAB, FORTRAN и большим количеством других языков.

Информация 307 о загружаемом пакете, полученная клиентским устройством 300 от загрузочного сервера, также может храниться в памяти 305. Такая информация 307 может обозначать части пакета данных, которые могут быть найдены в существующем содержимом, расположенно на клиентском устройстве, и также могут обозначать их соответствующие местоположения. Факультативно, информация 307 может включать в себя исполняемые кодовые команды, которые сконфигурированы для направления клиентского устройства 300 в положения сбора частей пакетов данных, уже существующих на устройстве. Полученный клиентским устройством 300 загруженный пакет 308 данных также может храниться в памяти 305. Такие полученные данные 308 могут включать в себя оставшиеся части пакета данных, полученные от загрузочного сервера, которые ранее не существовали на клиентском устройстве. Во время выполнения программы 203 части программного кода, информация 307 по загрузке и/или данные 308 могут быть загружены в память или локальное запоминающее устройство ядер процессора для параллельной обработки с помощью множественных ядер процессора.

Клиентское устройство 300 может также включать в себя хорошо известные функции 309 поддержки, такие как элементы 311 ввода/вывода (I/O), блоки питания (P/S) 313, часы (CLK) 315 и кэш 317. Факультативно, устройство 300 может включать в себя устройство 319 большой емкости, такое как несъемный жесткий диск, съемный жесткий диск, устройство флеш-памяти, накопитель на магнитной ленте, CD-ROM, DVD-ROM, Blue-Ray, HD-DVD, UMD или другие оптические накопители. Накопитель 319 может использоваться для временного или постоянного хранения содержимого 320 (например, приложений, программ, аудио/видео и т.д.). Следует отметить, что содержимое 320 может включать в себя пакеты 322 защищенного содержимого и пользовательские данные 324. Как обсуждалось выше, пакеты 322 защищенного содержимого защищены от изменений со стороны пользователя устройства 300 или третьей стороны. Пакет 322 защищенного содержимого может включать в себя защищенный код и защищенные данные, связанные, например, с заголовками игр, медиа-контентом и другими формами защищенного содержимого, связанного с устройством 300 или другими устройствами на базе закрытой платформы схожей конфигурации, которые используют сеть на базе закрытой платформы. Расположение защищенных элементов содержимого, составляющих пакеты 322 защищенного содержимого, может быть определено общим способом для устройств на базе закрытой платформы. Это означает, что идентичность и/или расположение каждого файла, который составляет элемент содержимого в накопителе 319, например объем, сектор или адрес, может устанавливаться заранее или устанавливаться из того факта, что пакет содержимого присутствует на накопителе.

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

Факультативно, устройство 300 может включать в себя устройство 321 отображения и устройство 321 пользовательского интерфейса для облегчения взаимодействия с устройством 300. Устройство 321 отображения может быть любым устройством, способным отображать визуальную информацию в ответ на сигнал от клиентского устройства 300, включая CRT-, LCD-, плазменные и OLED-дисплеи. Клиентское устройство 300 может отправлять на устройство 321 отображения аналоговый или цифровой сигнал. В качестве примера, устройство 321 отображения может включать в себя электронно-лучевую трубку (CRT) или панель с плоским экраном, которая отображает текст, числа, графические символы или изображения. Кроме того, дисплей 321 может включать в себя один или несколько динамиков. Которые воспроизводят слышимые или иначе различимые звуки. Для облегчения выработки таких звуков клиентское устройство 300 далее может включать в себя аудиопроцессор 323, приспособленный для выработки аналогового или цифрового аудиосигнала от команд и/или данных, отправляемых процессором 301, памятью 305 и/или накопителем 319. Пользовательский интерфейс 331 может включать в себя клавиатуру, мышь, джойстик, световое перо или другое устройство, которое может быть использовано в сочетании с графическим пользовательским интерфейсом (GUI).

Устройство 300 может также включать в себя сетевой интерфейс 325 для облегчения связи посредством электронной коммуникационной сети 329. Сетевой интерфейс 329 может быть сконфигурирован для осуществления проводной или беспроводной связи с локальными сетями и глобальными сетями, такими как интернет. Клиентское устройство 300 может отправлять и получать данные и/или запросы на пакеты данных по сети 329 осредством одного или нескольких пакетов 327 сообщений.

Компоненты для клиентского устройства 300, включающие в себя процессор 300, память 305, функции 309 поддержки, накопитель 319 данных, пользовательский интерфейс 331, дисплей 321, аудиопроцессор 323 и сетевой интерфейс 325, могут быть работоспособно соединены друг с другом посредством одной или нескольких шин 333 данных. Эти компоненты могут быть выполнены в виде аппаратного обеспечения, программного обеспечения или программно-аппаратного обеспечения или комбинаций из двух или более этих компонентов.

В качестве примера и без потери всеобщности, загрузочные серверы 105 в системе 100 могут быть сконфигурированы, как показано на фиг.4. Согласно одному варианту осуществления данного изобретения загрузочный сервер 400 может быть выполнен в виде компьютерной системы или другого цифрового устройства. Загрузочный сервер может включать в себя процессор 401, сконфигурированный для запуска приложений программного обеспечения и, факультативно, операционной системы. Процессор 401 может включать в себя одно или несколько ядер процессора. В качестве примера и без ограничения, процессор 401 может быть модулем параллельных процессоров, таким как процессор Cell.

Загрузочный сервер 400 может также включать в себя память 405, сконфигурированную для сохранения приложений и данных для использования процессором 401. Компьютерная программа 403 может храниться в памяти 405 в форме команд, которые могут выполняться процессором 401. Команды программы 403 могут быть сконфигурированы, среди всего прочего, для выполнения способа эффективной загрузки пакетов данных, например, как описано выше относительно операций 215 загрузочного сервера на фиг.2. В частности, загрузочный сервер 400 может быть сконфигурирован, например, посредством соответствующего программирования программы 403 для получения запроса от клиентского устройства на загрузку пакетов данных, получения перечня существующих пакетов содержимого, идентификации частей пакета данных, которые хранятся в виде существующих элементов содержимого на клиентском устройстве, отправления команд на клиентское устройство, идентифицирующих существующие элементы содержимого, соответствующие частям пакета данных, получения запроса на остающуюся часть пакета данных и отправления оставшейся части пакета данных на клиентское устройство.

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

Загрузочный сервер 400 может также включать в себя хорошо известные функции 409 поддержки, такие как элементы 411 входа/выхода (I/O), блоки питания (P/S) 413, часы (CLK) 415 и кэш 417. Также, загрузочный сервер может включать в себя накопитель 419, который обеспечивает энергозависимое запоминающее устройство для приложений и данных. Накопитель 419 может использоваться для долгосрочного хранения базы 420 данных, сконфигурированной для обеспечения загрузочного сервера 400 каталогом всего авторизованного содержимого (например, оригинальное содержимое, авторизованное обновленное содержимое и т.д.), циркулирующего внутри сети на базе закрытой платформы. Перечень 407 клиентского устройства и запрос 408 на пакет данных могут быть проверены по отношению к базе 420 данных для того, чтобы определить, какие части запрошенного пакета данных уже хранятся на клиентском устройстве, а какие части запрошенного пакета данных необходимо передать.

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