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

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

Info

Publication number
RU2538911C2
RU2538911C2 RU2012131669/08A RU2012131669A RU2538911C2 RU 2538911 C2 RU2538911 C2 RU 2538911C2 RU 2012131669/08 A RU2012131669/08 A RU 2012131669/08A RU 2012131669 A RU2012131669 A RU 2012131669A RU 2538911 C2 RU2538911 C2 RU 2538911C2
Authority
RU
Russia
Prior art keywords
client device
data packet
stored
list
parts
Prior art date
Application number
RU2012131669/08A
Other languages
English (en)
Other versions
RU2012131669A (ru
Inventor
Э. НИЛСЕН Свен
Original Assignee
Сони Компьютер Энтертейнмент Америка Ллк
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Сони Компьютер Энтертейнмент Америка Ллк filed Critical Сони Компьютер Энтертейнмент Америка Ллк
Publication of RU2012131669A publication Critical patent/RU2012131669A/ru
Application granted granted Critical
Publication of RU2538911C2 publication Critical patent/RU2538911C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0892Network architectures or network communication protocols for network security for authentication of entities by using authentication-authorization-accounting [AAA] servers or protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

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

Description

Область техники
Варианты осуществления данного изобретения относятся к компьютерным сетям и, более конкретно, к загрузке пакетов данных из сети.
Уровень техники
В настоящее время многие компьютерные игровые сети и сети смартфонов функционируют в виде сетей на базе закрытой платформы. Как используется здесь, сеть на базе закрытой платформы относится к сети, которая запрещает внешнюю модификацию сетевых приложений, программ и другого защищенного содержимого на отдельном устройстве клиента или платформе, которая использует сеть. Функционирующие в таких сетях клиентские устройства иногда именуются устройствами на базе закрытой платформы. В отличие от этого, в сети на базе открытой платформы или устройстве на базе открытой платформы такая модификация не запрещена.
В качестве примера, а не посредством ограничения некоторые сети компьютерных игр, ассоциированные с видеоигровыми консолями, сконфигурированы для работы в виде сетей на базе закрытой платформы. В игровой сети на базе закрытой платформы защищенный код и защищенные данные, ассоциированные с заголовками игр, приложениями, носителями данных и другими формами защищенного содержимого, ассоциированного с игровыми консолями или портативными игровыми устройствами, которые используют сеть, защищены от пользователя или модификации со стороны третьих лиц. Другими словами, как только защищенное приложение, защищенная программа или другой элемент защищенного содержимого загружен на компьютерную игровую систему (например, с помощью диска, загрузки и т.д.), функционирующую в рамках закрытой среды, данные остаются в своей первоначальной форме до тех пор, пока операторы не решат модифицировать их (например, посредством обновления патчей и т.д.). Ни одному пользователю компьютерной игровой платформы или третьей стороне не разрешен доступ и модификация защищенных данных за исключением посредством санкционированных каналов. В такой сети на базе закрытой платформы управление системными приложениями, программами и данными очень упрощено, так как данные защищены от неизвестной/нежелательной модификации. По существу, сеть на базе закрытой платформы может оставаться осведомленной о состоянии каждого приложения, программы и элемента данных, выполняемых в ее рамках в любое время.
Игровые сети на базе закрытой платформы сконфигурированы для передачи данных посредством загрузки с сетевого сервера на игровую систему клиента в форме приложений, программ и других элементов данных. Размер таких данных может варьироваться в диапазоне от 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» относится к количеству одного или нескольких элементов, стоящих после артикля, за исключением тех случаев, где четко указано иначе. Прилагаемые пункты формулы изобретения не должны интерпретироваться, как включающие в себя ограничения «средство плюс функция» до тех пор, пока такое ограничение ясно не процитировано в данном пункте формулы изобретения с помощью фразы «средство для».

Claims (27)

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. Сервер, сконфигурированный для работы в сети, содержащий одну или несколько команд, встроенных в память для выполнения процессором, при этом команды сконфигурированы осуществлять:
а) получение списка идентификаторов существующих пакетов данных, хранящихся на клиентском устройстве;
б) идентификацию из списка идентификаторов одной или нескольких частей пакета данных, соответствующих одному или нескольким существующим элементам содержимого, хранящимся на клиентском устройстве;
в) отправление списка идентификаторов одного или нескольких существующих элементов содержимого на клиентское устройство;
г) получение запроса от клиентского устройства на оставшуюся часть пакета данных;
д) отправление оставшейся части пакета данных на клиентское устройство.
RU2012131669/08A 2011-07-25 2012-07-24 Способ и система для эффективной загрузки пакета данных RU2538911C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/190,360 2011-07-25
US13/190,360 US8880651B2 (en) 2011-07-25 2011-07-25 Method and system for efficient download of data package

Publications (2)

Publication Number Publication Date
RU2012131669A RU2012131669A (ru) 2014-01-27
RU2538911C2 true RU2538911C2 (ru) 2015-01-10

Family

ID=46754865

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2012131669/08A RU2538911C2 (ru) 2011-07-25 2012-07-24 Способ и система для эффективной загрузки пакета данных

Country Status (7)

Country Link
US (1) US8880651B2 (ru)
EP (1) EP2551766A1 (ru)
KR (1) KR101422563B1 (ru)
CN (2) CN105516079B (ru)
BR (1) BR102012018420B1 (ru)
RU (1) RU2538911C2 (ru)
TW (1) TWI492156B (ru)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2710879C1 (ru) * 2016-04-15 2020-01-14 Телефонактиеболагет Лм Эрикссон (Пабл) Контейнеры пользовательского оборудования и сетевые срезы
RU2712130C1 (ru) * 2016-04-27 2020-01-24 Хуавей Текнолоджиз Ко., Лтд. Способ и устройство обработки файла на основе обновления с патчем, конечное устройство и носитель информации

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150006667A1 (en) * 2013-06-28 2015-01-01 Jeffrey R. Foerster Dynamic data compression system
US9998388B2 (en) 2014-02-06 2018-06-12 Sony Interactive Entertainment LLC Congestion control bitrate algorithm
CN105528722A (zh) * 2014-09-29 2016-04-27 阿里巴巴集团控股有限公司 数据包发送/接收方法、装置、传输***及移动设备
US10447430B2 (en) 2016-08-01 2019-10-15 Sony Interactive Entertainment LLC Forward error correction for streaming data
KR102166336B1 (ko) * 2017-05-15 2020-10-15 삼성전자주식회사 소프트웨어 플랫폼을 제공하는 서버 및 그 동작방법
US11224803B2 (en) * 2019-11-22 2022-01-18 Roblox Corporation Prominent display of targeted game in search results
CN111147595A (zh) * 2019-12-30 2020-05-12 昆山丘钛微电子科技有限公司 一种文档下载方法、***、服务器和客户端
CN111782229B (zh) * 2020-06-30 2024-04-23 百度在线网络技术(北京)有限公司 一种小程序启动方法、装置及电子设备
CN111866604B (zh) * 2020-07-24 2022-10-21 四川科泰智能电子有限公司 一种音视频传输方法及***
CN112131263B (zh) * 2020-09-14 2024-02-27 微医云(杭州)控股有限公司 软件包获取方法、***、装置、电子设备和存储介质
KR20230103779A (ko) * 2021-12-31 2023-07-07 엘지전자 주식회사 가전기기, 가전기기의 업그레이드 방법, 관리서버, 관리서버의 가전기기 업그레이드 방법, 가전기기 업그레이드 시스템

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6073214A (en) * 1995-11-27 2000-06-06 Microsoft Corporation Method and system for identifying and obtaining computer software from a remote computer
US6167567A (en) * 1998-05-05 2000-12-26 3Com Corporation Technique for automatically updating software stored on a client computer in a networked client-server environment
US6199107B1 (en) * 1998-07-22 2001-03-06 Microsoft Corporation Partial file caching and read range resume system and method
US6493871B1 (en) * 1999-09-16 2002-12-10 Microsoft Corporation Method and system for downloading updates for software installation
RU2302089C2 (ru) * 2001-08-13 2007-06-27 Квэлкомм Инкорпорейтед Система для обновления программного обеспечения в беспроводном устройстве
RU2357279C2 (ru) * 2003-12-15 2009-05-27 Майкрософт Корпорейшн Система и способ управления и передачи обновлений программного обеспечения
EP2270656A1 (en) * 2009-06-24 2011-01-05 Uniloc Usa, Inc. Remote update of computers based on physical device recognition

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781785A (en) * 1995-09-26 1998-07-14 Adobe Systems Inc Method and apparatus for providing an optimized document file of multiple pages
US6434569B1 (en) 1996-06-06 2002-08-13 Kabushiki Kaisha Toshiba Integrated medical information system formed of text-based and image-based databases, and display thereof
US6711557B1 (en) * 2000-08-14 2004-03-23 Adobe Systems Incorporated Client-based background update monitoring
JP2002091452A (ja) 2000-09-11 2002-03-27 Nec Corp データ配信システム及びその配信方法
US6671772B1 (en) 2000-09-20 2003-12-30 Robert E. Cousins Hierarchical file system structure for enhancing disk transfer efficiency
US6978355B2 (en) 2001-11-13 2005-12-20 Seagate Technology Llc Cache memory transfer during a requested data retrieval operation
US7003644B2 (en) 2002-03-28 2006-02-21 Seagate Technology Llc Execution time dependent command schedule optimization
US6965965B2 (en) 2002-06-06 2005-11-15 International Business Machines Corporation Dynamic response shaping for command aging
US7590522B2 (en) 2004-06-14 2009-09-15 Hewlett-Packard Development Company, L.P. Virtual mass storage device for server management information
US7260703B1 (en) 2004-08-20 2007-08-21 Sun Microsystems, Inc. Method and apparatus for I/O scheduling
JP4456490B2 (ja) 2005-01-14 2010-04-28 富士通株式会社 Dma装置
KR100680296B1 (ko) * 2005-04-15 2007-02-07 주식회사 케이티프리텔 무선 네트워크를 통한 대용량 컨텐츠 이어받기 서비스 제공방법 및 이를 구현하기 위한 프로그램이 기록된 기록매체
KR20080037450A (ko) 2006-10-26 2008-04-30 웹싱크 주식회사 소프트웨어 실행모듈의 업데이트 시스템 및 방법
US7991948B2 (en) 2008-01-30 2011-08-02 International Business Machines Corporation Optimizing execution of I/O requests for a disk drive in a computing system
KR101140636B1 (ko) 2009-02-02 2012-05-03 에스케이플래닛 주식회사 데이터 세그먼트 정보를 이용한 컨텐츠 전송시스템 및 방법, 그 프록시서버
CN101699399B (zh) * 2009-11-03 2014-04-30 中兴通讯股份有限公司 一种软件更新的***和方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6073214A (en) * 1995-11-27 2000-06-06 Microsoft Corporation Method and system for identifying and obtaining computer software from a remote computer
US6167567A (en) * 1998-05-05 2000-12-26 3Com Corporation Technique for automatically updating software stored on a client computer in a networked client-server environment
US6199107B1 (en) * 1998-07-22 2001-03-06 Microsoft Corporation Partial file caching and read range resume system and method
US6493871B1 (en) * 1999-09-16 2002-12-10 Microsoft Corporation Method and system for downloading updates for software installation
RU2302089C2 (ru) * 2001-08-13 2007-06-27 Квэлкомм Инкорпорейтед Система для обновления программного обеспечения в беспроводном устройстве
RU2357279C2 (ru) * 2003-12-15 2009-05-27 Майкрософт Корпорейшн Система и способ управления и передачи обновлений программного обеспечения
EP2270656A1 (en) * 2009-06-24 2011-01-05 Uniloc Usa, Inc. Remote update of computers based on physical device recognition

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2710879C1 (ru) * 2016-04-15 2020-01-14 Телефонактиеболагет Лм Эрикссон (Пабл) Контейнеры пользовательского оборудования и сетевые срезы
RU2712130C1 (ru) * 2016-04-27 2020-01-24 Хуавей Текнолоджиз Ко., Лтд. Способ и устройство обработки файла на основе обновления с патчем, конечное устройство и носитель информации
US10949191B2 (en) 2016-04-27 2021-03-16 Huawei Technologies Co., Ltd. Patch-upgrade-based file processing method and apparatus, terminal, and storage medium

Also Published As

Publication number Publication date
KR101422563B1 (ko) 2014-07-24
BR102012018420B1 (pt) 2022-01-18
US8880651B2 (en) 2014-11-04
EP2551766A1 (en) 2013-01-30
US20130031214A1 (en) 2013-01-31
CN105516079A (zh) 2016-04-20
TW201319945A (zh) 2013-05-16
CN102904878B (zh) 2015-12-16
CN105516079B (zh) 2019-07-30
BR102012018420A2 (pt) 2013-07-30
KR20130012929A (ko) 2013-02-05
CN102904878A (zh) 2013-01-30
TWI492156B (zh) 2015-07-11
RU2012131669A (ru) 2014-01-27

Similar Documents

Publication Publication Date Title
RU2538911C2 (ru) Способ и система для эффективной загрузки пакета данных
US11818224B2 (en) On demand resources
US9880824B2 (en) On demand resources
KR102600025B1 (ko) 프리캐싱을 위해 클라이언트 머신들 간에 셰이더들을 분배하는 것
US20060155674A1 (en) Image server
US20130231194A1 (en) Offline game storing system and method thereof
JP7412594B2 (ja) データ処理方法、データ処理装置、コンピュータ機器、及びコンピュータプログラム
CN107483241A (zh) 一种在网元升级过程中下载升级镜像版本的方法和装置
US20040143586A1 (en) Method of controlling user application program
CN102904935A (zh) 基于家庭网关的下载方法、设备和***
US10798147B2 (en) Constraint based controlled seeding
CN115733666A (zh) 一种密码管理方法、装置、电子设备及可读存储介质
CN107667343B (zh) 用于加载按需加载资源的***和方法
CN111090530B (zh) 一种分布式跨进程间通信总线***
CN103701844A (zh) 管理用户信息的方法及***
KR20100129439A (ko) Pc 일체형 tv의 소프트웨어 업데이트 방법
US20150229730A1 (en) Managing Server Pushed Resources at Client
CN114584556B (en) File transmission method and device
JP5178734B2 (ja) P2pシステムにおけるピア管理サーバー及びピア管理方法
US20210049025A1 (en) Electronic apparatus and object sharing method thereof
US20140325270A1 (en) Method and a device for managing an application referenced by a device
KR102309171B1 (ko) M2m 플랫폼의 리소스 미러링 방법
CN116074377A (zh) 信息处理方法、装置以及计算机可读存储介质
KR20230005152A (ko) 효율적인 파일 전달 기술
CN116351070A (zh) 一种数据处理方法、装置、计算机设备以及可读存储介质