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

Авторы патента:


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

 


Владельцы патента RU 2538911:

СОНИ КОМПЬЮТЕР ЭНТЕРТЕЙНМЕНТ АМЕРИКА ЛЛК (US)

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

Загрузочный сервер 400 может также включать в себя сетевой интерфейс 425 для облегчения связи посредством электронной коммуникационной сети 429. Сетевой интерфейс 425 может быть сконфигурирован для осуществления проводной или беспроводной связи с локальными сетями и глобальными сетями, такими как интернет. Загрузочный сервер 400 может отправлять и получать данные и/или запросы на файлы посредством одного или нескольких пакетов 427 сообщений по сети 429.

Компоненты для загрузочного сервера 400, включая процессор 401, память 405, функции 409 поддержки, накопитель 419 данных, пользовательский интерфейс 431 и сетевой интерфейс 425 могут быть работоспособно соединены друг с другом посредством одной или нескольких шин 433 данных. Эти компоненты могут быть выполнены в виде аппаратного обеспечения, программного обеспечения или программно-аппаратного обеспечения или комбинаций из двух или более этих компонентов.

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

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

Хотя вышеописанные варианты осуществления относятся главным образом к системам на базе закрытой платформы, следует отметить, что варианты осуществления изобретения могут быть расширены также до систем с открытой платформой. Например, как описано выше, если клиентское устройство является частью системы с открытой платформой, описанный со ссылкой на фиг.2 вариант осуществления может быть расширен с помощью дополнительного факультативного сканирования и проверки файлов или частей данных для того, чтобы убедиться в том, что клиентское устройство содержит либо части данных, которые ожидает загрузочный сервер, либо подходящие замены. Существует определенное количество разных систем с открытой платформой, которые могут быть модифицированы для того, чтобы включить признаки данного изобретения. Например, наряду с тем, что программы Windows могут использовать любое количество установщиков, существует подгруппа (например, WISE-инсталлятор), которые достаточно известны тем, что их можно модифицировать для включения признаков данного изобретения. Для того чтобы также использовать такие функции на системах Linux, могут применяться менеджеры пакетов RPM или apt-get, отслеживающие упакованные и установленные файлы. Кроме того, системы Macintosh используют системный инсталлятор, который во многих случаях может быть модифицирован для включения эффективной загрузки пакетов данных с помощью описанных здесь свойств. Наряду с тем, что вышеприведенное описание является полным описанием предпочтительного варианта осуществления данного изобретения, является возможным использовать различные альтернативы, модификации и эквиваленты. Поэтому объем данного изобретения должен определяться не со ссылкой на вышеприведенное описание, а вместо этого должен определяться со ссылкой на прилагаемые пункты формулы изобретения, наряду с их полным объемом эквивалентов. Любое свойство, описанное здесь, является оно предпочтительным или нет, может объединяться с любым другим свойством, описанным здесь, является то предпочтительным или нет. В пунктах формулы изобретения, следующих далее, неопределенный артикль «А» или «An» относится к количеству одного или нескольких элементов, стоящих после артикля, за исключением тех случаев, где четко указано иначе. Прилагаемые пункты формулы изобретения не должны интерпретироваться, как включающие в себя ограничения «средство плюс функция» до тех пор, пока такое ограничение ясно не процитировано в данном пункте формулы изобретения с помощью фразы «средство для».

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

2. Способ по п.1, также содержащий отправление запроса на загрузку пакета данных от клиентского устройства на сервер.

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

4. Способ по п.2, в котором запрос выполняется клиентским устройством автоматически в заранее заданное время.

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

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

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

8. Способ по п.1, в котором ответ включает в себя код и/или данные, сконфигурированные для направления клиентского устройства на сбор одной или нескольких частей, идентифицированных в ответе.

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

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

11. Способ по п.1, который включает в себя осуществление сканирования собранных идентифицированных частей пакета данных для определения оставшейся части пакета данных.

12. Способ по п.1, также содержащий проверку пакета данных на отсутствующие части.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



 

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

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

Изобретение относится к технике связи и может использоваться в системе радиосвязи. Технический результат состоит в оценке канала для передачи с использованием пилот-сигнала.

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

Изобретение относится к области мобильной связи. Технический результат заключается в увеличении скорости доставки сообщений в сетях мобильной связи.

Изобретение относится к сетям радиосвязи. Технический результат заключается в уменьшении времени передачи пользовательской информации в беспроводной сети.

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

Изобретение относится к способу и устройству для обработки информации о качестве канала (CQI) и для диспетчеризации подвергаемых совместному распределению ресурсов на основании CQI.

Изобретение относится к беспроводной связи. Техническим решением является улучшенная передача управляющих сообщений в восходящей линии для мобильных широкополосных систем беспроводной связи.

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

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

Изобретение относится к области управления графическим приложением пользователя с использованием технологии множественного касания (multi-touch). Техническим результатом является обеспечение более реалистичного движения объектов приложений, управляемых с использованием аппаратного обеспечения multi-touch.

Изобретение относится к технологии обновления сетевого устройства в области коммутаций. Технический результат - автоматическое обновление сетевого устройства без использования третьего устройства.

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

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

Изобретение относится к области обработки цифровых данных. .

Изобретение относится к области компьютерной виртуализации. .

Изобретение относится к области двигателестроения и может быть использовано для защиты программного обеспечения (ПО) блока управления двигателем внутреннего сгорания транспортного средства (далее - БУ ДВС ТС) от несанкционированного изменения.

Изобретение относится к автоматизации процессов с использованием полевых приборов. .

Изобретение относится к способу и системе эмуляции команд одного микропроцессора с командами другого микропроцессора с помощью несовместимой системы команд. .

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