KR101422563B1 - 데이터 패키지의 효율적인 다운로드 방법 및 시스템 - Google Patents

데이터 패키지의 효율적인 다운로드 방법 및 시스템 Download PDF

Info

Publication number
KR101422563B1
KR101422563B1 KR1020120080983A KR20120080983A KR101422563B1 KR 101422563 B1 KR101422563 B1 KR 101422563B1 KR 1020120080983 A KR1020120080983 A KR 1020120080983A KR 20120080983 A KR20120080983 A KR 20120080983A KR 101422563 B1 KR101422563 B1 KR 101422563B1
Authority
KR
South Korea
Prior art keywords
client device
data package
stored
package
list
Prior art date
Application number
KR1020120080983A
Other languages
English (en)
Other versions
KR20130012929A (ko
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 KR20130012929A publication Critical patent/KR20130012929A/ko
Application granted granted Critical
Publication of KR101422563B1 publication Critical patent/KR101422563B1/ko

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

Abstract

효율적인 데이터 패키지의 다운로드 방법, 및 이 방법을 구현하는 클라이언트 장치와 서버를 개시한다. 클라이언트 장치는 다운로드 서버로 기존 저장된 컨텐트 패키지를 식별하기 위한 목록을 보낸다. 다운로드 서버는 이미 클라이언트 장치에 저장된 컨텐트 요소에 해당되는 피요청 데이터 패키지의 부분을 식별하고, 이 피요청 데이터 패키지의 어느 부분이 이미 클라이언트 장치에 저장되어 있는지 나타내는 정보를 클라이언트 장치로 보낸다. 클라이언트 장치는 이미 저장된 피요청 데이터 패키지의 부분을 취합하고, 다운로드 서버로부터 피요청 데이터 패키지의 나머지 부분을 요청한. 다운로드 서버는 데이터 패키지의 나머지 부분에 대한 요청을 수신하고 이 나머지 부분을 클라이언트 장치로 보낸다.

Description

데이터 패키지의 효율적인 다운로드 방법 및 시스템 {METHOD AND SYSTEM FOR EFFICIENT DOWNLOAD OF DATA PACKAGE}
본 발명의 실시예는 컴퓨터 네트워크에 관한 것으로, 더 구체적으로는, 네트워크에서 데이터 패키지를 다운로드하는 것에 관한 것이다.
현재, 많은 컴퓨터게임 네트워크 및 스마트폰 네트워크가 폐쇄형 플랫폼(closed platform) 네트워크 방식으로 운용되고 있다. 여기에 사용되는 폐쇄형 플랫폼 네트워크란, 네트워크 어플리케이션을, 프로그램을, 그리고 네트워크로써 특정 클라이언트 장치 또는 플랫폼과 연결된 그 밖의 제한된 컨텐트를, 외부에서 변경하지 못하도록 차단하는 네트워크를 말한다. 여기서는, 이러한 네트워크에서 동작하는 클라이언트 장치를 폐쇄형 플랫폼 장치라 언급하기로 한다. 반면에, 개방형 플랫폼(open platform) 네트워크 또는 개방형 플랫폼 장치에서는 상기 대상들의 변경이 금지되지 않는다.
예를 들자면(한정이 아니라 예시임), 비디오게임 콘솔과 연결된 특정 컴퓨터게임 네트워크는 폐쇄형 플랫폼 네트워크로 작동하도록 구성된다. 폐쇄형 플랫폼 컴퓨터게임 네트워크에서는, 게임 타이틀, 어플리케이션, 매체에 관련된 제한된 코드 및 제한된 데이터, 그리고 네트워크를 사용하는 게임 콘솔이나 휴대용 게임 기기와 관련된 다른 형태의 제한된 컨텐트를 사용자나 제3자가 변경하지 못하도록 보호한다. 즉, 제한된 어플리케이션, 제한된 프로그램, 또는 다른 제한된 컨텐트를 폐쇄 공간에서 작동하는 컴퓨터게임 시스템에 (다운로드나 디스크 등에 의해) 일단 로드하였으면, 그 데이터는 네트워크 운영자가 (예컨대, 업데이트 패치 등으로) 변경하기 전까지는 원래 상태 그대로 유지된다. 컴퓨터게임 플랫폼 사용자 또는 제3자는 누구라도 인증 채널을 통하지 않고서는 제한된 데이터에 액세스하여 이를 변경할 수 없다. 데이터가 모르는/원치 않는 변경으로부터 보호되기 때문에, 이러한 폐쇄형 플랫폼 네트워크에서는, 시스템 어플리케이션, 프로그램, 및 데이터의 관리가 매우 간단해진다. 따라서 폐쇄형 플랫폼 네트워크는 각 어플리케이션, 프로그램, 및 이 안에서 실행되는 데이터군 상태를 항시 확인할 수 있다.
폐쇄형 플랫폼 게임 네트워크는 또한, 어플리케이션, 프로그램, 및 데이터군의 형태로 데이터가 네트워크 서버로부터 다운로드되어 클라이언트 게임 시스템으로 전송되도록 구성된다. 이 데이터 전송량은 어플리케이션에 따라 다르지만, 전송당 10MB 내지 2GB의 범위 내에 있게 된다. 이보다 큰 데이터 전송시에는 몇 시간, 때로는 몇 일이 걸릴 것이다.
이에, 본 발명의 실시예들을 착안하게 되었다.
본 발명의 목적은, 전송량이 클 경우 데이터 중복(data redundancy)에 의해 전송 효율성이 낮아지는 것을 방지하는 다운로드 방법 및 시스템을 제공하는 데에 있다.
본 발명의 일 실시형태에 따르면, 네트워크 상에서 운용되도록 구성된 클라이언트 장치에 있어서 데이터 패키지를 효율적으로 다운로드하는 방법으로서, a) 네트워크 상에서 운용되는 서버로 상기 클라이언트 장치에 저장되어 있는 기존 컨텐트 패키지를 식별하기 위한 목록을 보내는 과정, b) 상기 클라이언트 장치에 저장된 하나 이상의 기존 컨텐트 요소에 해당되는 상기 데이터 패키지의 하나 이상의 부분을 식별하기 위한 정보를 포함하는 응답을 상기 서버로부터 수신하는 과정, c) 상기 클라이언트 장치에 저장되어 있는 기존 컨텐트 요소로부터 상기 데이터 패키지 내에 있는 컨텐트의 하나 이상의 식별된 부분을 취합하는 과정, d) 상기 서버에 상기 데이터 패키지의 나머지 부분을 요청하는 과정, e) 상기 서버로부터 상기 데이터 패키지의 나머지 부분을 수신하는 과정을 포함하는 것을 특징으로 하는 데이터 패키지를 효율적으로 다운로드하는 방법이 제공된다.
본 발명의 다른 실시형태에 따르면, 폐쇄형 플랫폼 네트워크에서 운용되도록 구성된 클라이언트 장치로서, 프로세서; 프로세서에 연결된 메모리; 상기 프로세서에 의해 실행되기 위해 상기 메모리에 구현된 하나 이상의 명령어들을 포함하고, 이 명령어들은 아래의 과정들, 즉, a) 상기 폐쇄형 플랫폼 네트워크 상에서 운용되는 서버로 상기 클라이언트 장치에 저장되어 있는 기존 컨텐트 패키지를 식별하기 위한 목록을 보내는 과정, b) 상기 클라이언트 장치에 저장된 하나 이상의 기존 컨텐트 요소에 해당되는 상기 데이터 패키지의 하나 이상의 부분을 식별하기 위한 정보를 상기 서버로부터 수신하는 과정, c) 상기 클라이언트 장치에 저장되어 있는 기존 컨텐트 요소로부터의 상기 데이터 패키지 내에 있는 컨텐트의 하나 이상의 식별된 부분을 취합하는 과정, d) 상기 서버에 상기 데이터 패키지의 나머지 부분을 요청하는 과정, e) 상기 서버로부터 상기 데이터 패키지의 나머지 부분을 수신하는 과정을 포함하는 데이터 패키지를 효율적으로 다운로드하는 방법을 구현하기 위해 구성되는 것을 특징으로 하는, 폐쇄형 플랫폼 네트워크에서 운용되도록 구성된 클라이언트 장치가 제공된다.
본 발명의 또 다른 실시형태에 따르면, 네트워크 상에서 운용되도록 구성된 서버에 있어서 데이터 패키지를 효율적으로 다운로드하는 방법으로서, a) 클라이언트 장치에 저장되어 있는 기존 컨텐트 패키지를 식별하기 위한 목록을 받는 과정, b) 상기 목록으로부터, 상기 클라이언트 장치에 저장된 하나 이상의 기존 컨텐트 요소에 해당되는 데이터 패키지의 하나 이상의 부분을 식별하는 과정, c) 상기 클라이언트 장치에 기존 컨텐트 요소로서 저장된 상기 데이터 패키지의 하나 이상의 부분을 각각 식별하기 위한 정보를 상기 클라이언트 장치로 보내는 과정, d) 상기 데이터 패키지의 나머지 부분에 대한 요청을 클라이언트 장치로부터 수신하는 과정, e) 상기 데이터 패키지의 나머지 부분을 상기 클라이언트 장치로 보내는 과정을 포함하는 것을 특징으로 하는, 데이터 패키지를 효율적으로 다운로드하는 방법이 제공된다.
본 발명의 또 다른 실시형태에 따르면, 네트워크에서 운용되도록 구성된 서버로서, 프로세서; 메모리; 상기 프로세서에 의해 실행되기 위해 상기 메모리에 구현된 하나 이상의 명령어들을 포함하고, 상기 명령어들은 아래의 과정들, 즉, a) 클라이언트 장치에 저장되어 있는 기존 컨텐트 패키지를 식별하기 위한 목록을 받는 과정, b) 상기 목록으로부터, 상기 클라이언트 장치에 저장된 하나 이상의 기존 컨텐트 요소에 해당되는 데이터 패키지의 하나 이상의 부분을 식별하는 과정, c) 상기 하나 이상의 기존의 컨텐트 요소를 식별하기 위한 정보를 상기 클라이언트 장치로 보내는 과정, d) 상기 데이터 패키지의 나머지 부분에 대한 요청을 클라이언트 장치로부터 수신하는 과정, e) 상기 데이터 패키지의 나머지 부분을 상기 클라이언트 장치로 보내는 과정을 포함하는 것을 특징으로 하는, 네트워크에서 운용되도록 구성된 서버가 제공된다.
본 발명에 따르면, 전송량이 클 경우 데이터 중복에 의해 전송 효율성이 낮아지는 것을 방지하는 다운로드 방법 및 시스템이 제공된다.
도 1은 본 발명의 실시예에 따른 폐쇄 공간(closed universe) 시스템을 보여주는 개략도이다.
도 2는 본 발명의 실시예에 따른 데이터 패키지의 다운로드를 위한 효율적인 방법을 설명하는 흐름도이다.
도 3은 본 발명의 실시예에 따른 클라이언트 장치를 설명하는 블록도이다.
도 4는 본 발명의 실시예에 따른 다운로드 서버를 설명하는 블록도이다.
발명의 설명을 위해 이하의 상세한 기재 내용에 많은 구체적인 내용이 포함되어 있지만, 당업자라면 이하의 세부 사항들에 대한 다양한 변형과 변경도 본 발명의 범위에 속한다는 것을 알 것이다. 따라서 아래에서 설명하는 발명의 대표 실시예는 특허청구한 발명을 제한하지 않으며 그 일반성을 훼손하지 않는다.
본 발명의 실시예는 전송량이 클 경우 데이터 중복(data redundancy)에 의해 전송 효율성이 낮아질 수 있다는 인식에서 착안된 것이다. 예를 들자면(한정이 아니라 예시임), 컴퓨터게임 시스템의 사용자는 자신이 갖고 있는 게임 타이틀의 전편(예컨대, SOCOM 3)에 이어 최신 속편(예컨대, SOCOM 4)을 다운로드하길 희망할 수 있다. 현재, 이러한 게임 네트워크에서는 데이터 패키지 다운로드시, 전편과 속편 사이의 코드 및 데이터의 중복을 고려하지 않고 전체 데이터 패키지를 전송하도록 구성되어 있다. 다른 말로, 최신 속편의 전송 대상이 되는 데이터 패키지에는 이 최신 속편과 관련된 영상 자산, 음향 자산, 게임 엔진, 라이브러리 컨텐트 등이 모두 포함되어 있는데, 이들은 이전에 게임시스템에 로드(load)한 전편의 데이터 패키지에 포함되어 있을 수 있다.
NetApp, EMC 등의 일부 회사에서는 '중복 제거'(deduplication)를 수행하는 시스템을 사용하고 있다. 이 중복 제거는 압축 형태로서 사용되기도 한다. 중복제거 시스템은 중복된 부분을 찾기 위해 파일을 스캔하여, 중복된 부분들을 제거하고, 나머지 부분을 가리키는 포인터를 설정하여 반복 정보 없이 보다 작은 크기로 디스크에 저장할 수 있도록 한다. 일부 중복 제거 시스템에서는 중복 제거 처리를 적용할 수 있는 동일한 세그먼트들이 포함되어 있을 수 있는 파일 체계 중에서 후보 파일을 찾기 위해 체크섬(checksum)을 사용한다.
파일의 특정 부분을 전송하고 이미 존재하고 있는 부분을 찾기 위해 체크섬을 사용하는 일부 시스템들이 있다. 예를 들어, 무엇보다도, 오늘날의 일부 웹브라우저, BitTorrent 파일 전송 방법, 그리고 'rsync' 소프트웨어는 파일의 일부를 전송하고 부분 파일을 채울 수 있도록 파일의 일부분을 요청하는 개념을 사용한다. 구체적으로 BitTorrent와 rsync는 또한, 특정 부분을 전송할지 또는 다시 다운로드할지 여부를 결정하기 위해 그리고 네트워크를 통한 전송 시에 누락된 파일 세그먼트의 목록을 구축하기 위해, 기존 파일의 일부분에 체크섬 기능을 시행하는 개념을 사용한다. 그러나 파일 부분의 존재 및 유효성을 테스트하기 위해 체크섬을 사용하는 개념은, 전송 또는 다운로드가 성공시에 그 전송·다운로드가 끝난 때에 동일해야 할 특정 두 파일을 비교하는 BitTorrent 및 rsync에서만 사용됨을 주목해야 한다.
폐쇄형 플랫폼 네트워크에서는 어플리케이션, 프로그램, 및 네트워크 내에 로드된 데이터의 모든 상태를 쉽게 모니터할 수 있기 때문에, 이 네트워크에 보다 더 효율적으로 데이터 패키지를 다운로드 방식으로 전송하는 메커니즘을 적용할 수 있다.
본 발명의 실시예에 의해, 폐쇄형 플랫폼 네트워크 내에서 운용되는 클라이언트 장치는, 동일한 폐쇄형 플랫폼 내에서 운용되는 서버에 네트워크를 통해서 저장된 컨텐트를 식별하기 위한 목록(예컨대, 실제 컨텐트의 사본, 또는 패키지를 구성하는 요소의 목록이 아닌, 저장된 컨텐트의 패키지를 식별하기 위한 목록)과 함께, 제한된 데이터 패키지를 요청하는 신호를 보낼 수 있다.
서버는 상기 정보를 이용하여, 요청받은 데이터 패키지의 어느 부분이 클라이언트 장치에 저장되어 있는지 결정하고 클라이언트 장치에 명령을 보내어 클라이언트 장치에 이미 존재하는 데이터 패키지 부분을 합치도록 지시할 수 있다. 그러면, 서버는 이 요청에 따라, 데이터 패키지의 나머지 부분을 클라이언트 장치로 보낼 수 있다.
도 1에서 볼 수 있듯이, 효율적인 폐쇄형 플랫폼 시스템(100)은 하나 이상의 클라이언트 장치(101) 및 하나 이상의 다운로드 서버(105)를 포함할 수 있다. 클라이언트 장치(101) 및 다운로드 서버(105)는 폐쇄형 플랫폼 네트워크(103)를 통해 서로 통신하도록 구성할 수 있다. 예를 들어, 일반적으로, 네트워크(103)는 양방향 디지털 통신 네트워크일 수 있다. 네트워크(103)는 근거리 네트워크(LAN) 또는 광역 네트워크(WAN)일 수 있다. 네트워크(103)는, 본 발명의 특정 실시예를 구현하기 위한 네트워크 연결을 가능하게 하기 위해, CATV양방향 네트워크에 사용되는 것과 같은 인프라스트럭쳐인 ISDN이나 xDSL 고속 네트워크를 사용하여 구현할 수 있다.
예를 들어(한정이 아니라 예시임), 클라이언트 장치(101)는 비디오게임 콘솔일 수 있다. 상용 게임 콘솔의 예로는 Xbox®(워싱턴주 레드몬드 소재 마이크로소프트 사), Wii®(일본 교토 소재 닌텐도 사), 그리고 PlayStation®(예컨대, PlayStation3(일본 도쿄의 소니컴퓨터엔터테인먼트))를 들 수 있다. Xbox®는 마이크로소프트 사의 등록상표이고, PlayStation®은 소니컴퓨터엔터테인먼트 주식회사의 등록상표이고, Wii®는 닌텐도 사의 등록 상표이다. 다르게는, 클라이언트 장치(101)는 폐쇄 공간 네트워크를 적용 가능한 다른 종류의 클라이언트 장치일 수도 있다. 예를 들어(한정이 아니라 예시임), 상기 폐쇄 공간 네트워크 적용이 가능한 클라이언트 장치로는 스마트폰(예컨대, 아이폰, 안드로이드폰 등)을 들 수 있다.
여기에 사용된 용어 "폐쇄형 플랫폼"은 네트워크와 연계된 특정 컨텐트 패키지가 외부로부터의 변경을 차단할 수 있는 네트워크를 말한다. 이러한 컨텐트 패키지는 어플리케이션, 프로그램, 음향/영상 매체, 및 기타, 네트워크와 관련된 다른 데이터 종류를 포함할 수 있다. 클라이언트 장치(101)와 다운로드 서버(105) 사이에서 전송되는 제한된 컨텐트 패키지의 특정 요소를 네트워크 인증 하에서만 변경할 수 있다. 편의를 위해 이러한 요소를 여기서는 제한된(ristricted) 컨텐트 요소라 부른다. 인증이 없는 한, 클라이언트 장치(101)에 있는 제한된 컨텐트 요소를 사용자 또는 다른 제3자가 변경할 수 없다. 따라서 폐쇄형 플랫폼 장치 또는 폐쇄형 플랫폼 어플리케이션에 있어서는, 업데이트의 관리가 크게 간소화될 수 있다.
여기에 사용된 용어 "데이터 패키지"는 다운로드 서버(105)와 클라이언트 장치(101) 사이에서 전송되어야 할 컨텐트 패키지의 일부를 이루는 데이터 모음을 말한다. 예를 들어(한정하는 것이 아니라 예시하는 것임), 이러한 데이터 패키지는 어플리케이션, 프로그램, 영상/음향 매체, 업데이트 패치, 또는 다운로드 서버에서 클라이언트 장치로 전송될 기타 데이터 모음을 포함할 수 있다.
클라이언트 장치(101)는 하나 이상의 다운로드 서버(105)에서 명령어 및 데이터 패키지의 일부분을 받을 수 있다. 다운로드 서버(105)는 요청받은 데이터 패키지(피요청 데이터 패키지)의 어느 부분을 다운로드 서버(105)에 연결된 데이터베이스(109)를 사용하여 클라이언트 장치(109)에 위치시킬 수 있을지를 결정한다. 예를 들어(한정하는 것이 아니라 예시하는 것임), 상기 데이터베이스(109)는 피요청 데이터 패키지에 관한 정보 뿐만 아니라 클라이언트 장치에 저장된 제한된 컨텐트에 관한 정보를 포함할 수 있다. 또한, 예를 들어(한정하는 것이 아니라 예시하는 것임), 다운로드 서버(105)는 컨텐트 서버(107)로부터, 클라이언트 장치(101)로 전송하기 위한 데이터 패키지의 피요청 부분의 나머지 부분을 검색할 수 있다. 다른 방식으로서, 다운로드 서버(105)는 데이터 패키지 및 그 일부를 내부적으로 저장할 수 있다.
도 2에 도시한 것과 같이, 폐쇄 공간 시스템(100)은 본 발명의 방법(200)에 따라, 제한된 컨텐트에 대한 데이터 패키지의 효율적인 다운로드 방법을 구현하도록 구성할 수 있다. 본 방법(200)의 다양한 측면은 클라이언트 장치(101) 및/또는 다운로드 서버(105) 상에서 컴퓨터 실행 명령어를 실행시킴으로써 구현할 수 있다. 구체적으로, 클라이언트 장치(101)는, 예컨대 적절한 프로그래밍을 통해, 특정 클라이언트 장치 명령어들(201)을 실행하도록 구성할 수 있다. 또한 다운로드 서버(105)는 특정 다운로드 서버 명령어들(215)을 실행하도록 구성할 수 있다.
우선, 선택사항(옵션)으로서, 클라이언트 장치(101)가 다운로드 서버(105)로 데이터 패키지 다운로드 요청(229)을 보낸다(단계 203). 예를 들어(한정이 아니라 예시임), 이 요청(229)은 클라이언트 장치(101)의 사용자가 할 수 있다. 예를 들어, 게임 콘솔의 사용자는 게임 타이틀의 데모버전 또는 풀버전과 같은 제한된 컨텐트 패키지를 자신의 클라이언트 장치(101)로 다운로드할 것을 요청할 수 있다. 다른 방식으로서, 이 요청(229)은 클라이언트 장치(101)가 자동으로 할 수도 있다. 예를 들어, 클라이언트 장치(101)는 미리 정해진 시간마다 주기적으로, 컨텐트 패키지에 대하여 장치의 업데이트 또는 제한된 컨텐트의 업데이트을 다운로드 서버(105)에 지시할 수 있다. 선택사항으로서, 다운로드 서버(105)는 상기 요청(229)을 받는다(단계 217). 이 요청(229)을 받은 후, 다운로드 서버(105)는 이후의 처리를 위해 자신의 로컬 메모리에 이 요청(229)을 저장할 수 있다.
클라이언트 장치(101)는 다운로드 서버(105)로 기존 저장된 컨텐트의 목록(inventory)(231)을 보낸다. 이 목록(231)은 클라이언트 장치(101)에 저장된 모든 제한된 컨텐트 패키지의 목록을 제공할 수 있다. 이 목록은 클라이언트 장치에 저장된 제한된 컨텐트 패키지의 확인(식별)을 위한 것으로, 컨텐트 패키지를 구성하고 있는 요소(예컨대, 코드 및/또는 데이터 파일) 또는 실제 내용을 포함하고 있지는 않다. 클라이언트 장치(101)는 이 목록을 다운로드 요청(231)의 일부로서 보낼 수도 있고, 다운로드가 가능한 다운로드 서버(105)로부터 확인 통보가 올 때 이에 대한 응답으로서 보낼 수도 있다.
여기에 사용된 용어 "컨텐트 패키지"는, 예를 들어, 컴퓨터가 읽을 수 있는, 일반적인 기능과 관련된 1군의 컴퓨터가 읽을 수 있는 요소(가령, 파일군)를 일컫는다. 여기에 사용된 용어 "컨텐트 요소"는, 예를 들어, 어플리케이션이나 매체 패키지와 같은 컨텐트 패키지의 구성품인, 컴퓨터가 읽을 수 있는 요소(가령, 파일)를 말한다. 예를 들어(한정하는 것이 아니라 예시하는 것임), 컨텐트 패키지는 특정 소프트웨어 어플리케이션이나 게임 타이틀에 관련된 모든 코드 및/또는 데이터 파일을 포함할 수 있다.
예를 들자면(한정이 아니라 예시임), 클라이언트 장치에 저장된 제한된 컨텐트가 다른 어플리케이션의 형태로 되어 있다면, 상기 목록은 어플리케이션 식별자(예컨대, 제목) 및 이에 대한 버전 식별자(예컨대, 해당 어플리케이션의 버전 또는 제작 번호)에 의해 각 어플리케이션을 식별할 수 있다. 예를 들자면(한정이 아니라 예시임), 다수의 게임이 저장된 게임 콘솔이, 클라이언트 장치에 저장된 각 게임 타이틀 및 그 버전을 식별하기 위한 목록을 다운로드 서버(105)에 보낼 수 있다. 각 게임 타이틀에는 1군의 상응하는 요소들(가령, 코드 또는 데이터)이 있을 수 있으며, 이들은 1군의 파일로서 저장될 수 있음을 주목해야 한다. 코드 및/또는 데이터는 다른 버전 번호로서 변경될 수 있다. 그러나 클라이언트 장치가 폐쇄형 플랫폼 네트워크에서 운용되는 경우에는 해당 코드 및/또는 데이터 파일은 게임 타이틀 및 버전 식별자로부터 즉각 확인할 수 있다. 더욱이, 폐쇄형 플랫폼 장치에 있는 제한된 컨텐트 패키지 내부에 있는 이들 파일이나 특정 컨텐트 요소의 위치는, 제목 및 버전 번호를 앎으로써 결정하거나 결정할 수 있다. 다른 경우에는 알고 있는 제목 및 버전 번호를 통해 클라이언트 장치에 저장된 컨텐트 패키지를 구성하는 요소에 해당되는 식별자(예컨대, 파일명)의 목록을 결정할 수 있다.
목록(231)을 모든 컨텐트 파일이 아닌 컨텐트 패키지 식별자의 목록으로 제한함으로써, 이 목록을 전송할 때의 대역폭의 상당량을 절감할 수 있고 목록을 만들 때의 복잡함이 크게 줄어들 수 있다.
다운로드 서버(105)는 이 목록(231)을 수신한다(단계 219). 목록(231)을 받은 후 다운로드 서버(105)는 이후의 처리를 위하여 자기의 로컬 메모리에 이를 저장할 수 있다. 데이터 패키지 요청(229)과 클라이언트 목록(231)을 모두 받은 후 다운로드 서버(105)는 이 목록로부터, 클라이언트 장치에 이미 저장되어 있는 데이터 패키지 부분을 확인할 수 있다(단계 221). 특히, 다운로드 서버(105)는 데이터 패키지의 컨텐트 요소들을, 목록(231)에서 판단한 기존 컨텐트 요소들과 비교할 수 있다. 예를 들어(한정하는 것이 아니라 예시하는 것임), 이미 저장된 부분들을 조회표(lookup table) 또는 데이터베이스를 이용하여 확인할 수 있다. 클라이언트 장치(101) 및 다운로드 서버(105)가 폐쇄형 플랫폼 네트워크에서 동작하기 때문에, 폐쇄형 플랫폼 네트워크 내의 모든 클라이언트 장치에 저장된 모든 컨텐트는 오리지널 버전이거나 승인된 업데이트 버전이어야 한다(즉, 권한없는 버전은 존재하지 않는다). 따라서, 다운로드 서버(105)는 네트워크 내에 뿌려진 각 제한된 컨텐트 패키지에 해당되는 모든 컨텐트 요소에 대한 조회표/데이터베이스를 단순하게 유지할 수 있다. 다운로드 서버(105)는 데이터 패키지 요청(229)에 대한 컨텐트 파일의 리스트를 목록(231)에 있는 각 컨텐트 내용에 대한 조회표/데이터베이스와 비교함으로써, 데이터 패키지 요청(229)의 어느 부분이 클라이언트 장치에 여러 형태로 이미 저장되어 있는지를 판단할 수 있다.
예를 들자면(한정이 아니라 예시임), 컴퓨터게임의 측면에서 볼 때, 많은 게임 타이틀의 데이터는 여러 부분(예컨대, 영상 자산, 음향 자산, 게임 엔진, 라이브러리 컨텐트 등)을 공유할 수 있다. 게임 타이틀이 본질적으로 순차적일 경우에는 특히 그러하다. 따라서 데이터 패키지 요청(229)의 어느 부분이 이미 클라이언트 장치에 저장되어 있는지 식별함으로써 해당 데이터 패키지의 보다 효율적인 생성이 촉진될 수 있고 네트워크를 타고 전송되는 데이터의 총량을 줄일 수 있다.
이미 클라이언트 장치에 존재하는 피요청 데이터 패키지의 부분을 확인한 다음에, 다운로드 서버(105)는 이미 클라이언트 장치에 저장되어 있는 해당 부분을 식별하기 위한 정보를 포함하는 응답(233)을 클라이언트 장치로 보낼 수 있다(단계 223). 선택사항으로서, 어떤 경우에는 이 응답에 있는 정보에 의해서 각 부분을 액세스하기 위한, 클라이언트 장치 내의 위치를 나타낼 수 있다. 어떤 경우에는 이 응답에 있는 정보가 이미 클라이언트 장치에 저장되어 있는 다운로드 패키지의 컨텐트 요소에 대한 컨텐트 식별자(예컨대, 파일명)의 목록을 포함할 수 있다. 클라이언트 장치(101)는 클라이언트 장치에 이미 저장되어 있는 해당 부분 및 각 부분을 액세스하기 위한 위치를 확인한 정보를 수신한다(단계 207). 이 응답(233)을 받은 후 클라이언트 장치(101)는 이후의 처리를 위해 자신의 메모리에 이 응답을 저장할 수 있다.
도 2를 통해 설명한 실시예는, 서버(105)가 기대하는 것과 같은 파일이 클라이언트 장치(101)에 포함되어 있는지 확인하기 위하여 파일 또는 데이터의 부분을 스캔(조사) 및 검증하는 단계가 선택사항으로서 추가될 수 있다. 예를 들어, 파일(또는 데이터 일부)의 목록을 포함하고 있는 응답(233) 이외에도, 서버(105)는 필요시에 체크섬(checksum)(234)을 보내어 클라이언트(101)가 이를 이용해 응답(233)에 있는 파일(또는 데이터 일부)이 서버가 생각하기에 올바른 지를 검증할 수 있다. 응답(233)에 있는 것과 일치하지 않는 파일이나 데이터 부분을 제거하거나 적절한 대체물(예를 들어, 응답(233)에 있는 파일을 대체할 수 있는 제2선택 가능한 파일)을 찾기 위한 협상 루프(208, 224)가 추가되어, 다운로드 패키지의 내용물과 협상을 함으로써 클라이언트가 해당 내용물을 국부적으로 복사할 수 있도록 할 수 있다. 이러한 기능은, 가령, 클라이언트 장치(101)가 개방형 플랫폼 시스템의 일부 구성요소인 경우에 유용하다.
한편, 클라이언트 장치(101)는 단계 209에 나타낸 것과 같은 명령어를 사용하여 클라이언트 장치에 있는 기존 컨텐트로부터 데이터 패키지의 식별된 부분을 취합할 수 있다. 예를 들어(한정하는 것이 아니라 예시하는 것임), 선택사항으로서 응답(233) 내의 정보는, 이미 클라이언트 장치에 있는 데이터 패키지의 일부를 취합할 때에 클라이언트 장치(101)를 안내하도록 클라이언트 장치(101)에 연결되어 구성된 프로세서에 의해 실행되는 명령어 코드들을 포함할 수 있다. 다른 방식으로서, 클라이언트 장치(101)는 이미 클라이언트 장치에 있는 데이터 패키지 부분을 별도의 코드없이도 그 위치를 찾고 취합하도록 구성할 수 있다. 예를 들어(한정하는 것이 아니라 예시하는 것임), 응답(233)에 포함된 정보는 컨텐트 패키지 및 서버에 전송된 목록상의 버전 번호에 차례로 해당되는 제한된 컨텐트 파일에 해당되는 파일명의 목록이 포함될 수 있다. 이러한 경우에 클라이언트 장치(101)는 응답에 리스트되어 있는 파일명에 해당하는 파일의 로컬 저장 장치(예컨대, 하드 드라이브)를 탐색할 수 있다. 취합된 파일들은 선택사항인 검증 및 협상단계(208) 동안에 식별된 불일치 파일에 대한 대체파일을 포함할 수 있다.
예를 들어(한정하는 것이 아니라 예시하는 것임), 데이터 패키지의 식별된 부분을 취합하는 것에는, 이 데이터 패키지의 식별된 부분에 해당하는 기존 컨텐트의 해당 부분을 복사하는 것이 포함된다. 다르게는, 클라이언트 장치가 데이터 패키지의 식별된 부분에 해당하는 기존 저장된 컨텐트를 가리키는 포인터를 생성할 수 있다. 필요시 포인터를 사용하면 저장된 컨텐트의 일부를 복사하는 것보다, 데이터 패키지는 보다 더 간단하게, 저장된 컨텐트를 찾아서 접근할 수 있다.
일단, 데이터 패키지의 식별된 부분을 클라이언트 장치(101)가 취합했으면, 클라이언트 장치(101)는 데이터 패키지의 나머지 부분을 서버(105)에 요청(235)할 수 있다(단계 211). 예를 들어(한정하는 것이 아니라 예시하는 것임), 이 요청(235)은 단순히, 클라이언트 장치(101)가 데이터 패키지의 식별 부분의 취합을 완료하였음을 서버(105)에 통보하는 것일 수도 있다. 다르게는, 필요한 나머지 부분을 결정하기 위해 부분적으로 완료된 데이터 패키지를 스캔하도록 클라이언트 장치(101)를 구성할 수 있다. 이러한 구현에서는 클라이언트 장치(101)가 다운로드 서버가 식별한 데이터 패키지의 모든 부분이 실제로 클라이언트 장치에 이미 존재하는지 여부를 독립적으로 검증할 수 있다. 다운로드 서버(105)는 이 요청(235)을 수신한다(단계 225).
클라이언트 장치(101)로부터 데이터 패키지의 나머지 부분에 대한 요청(235)을 받은 후, 다운로드 서버(105)는 클라이언트 장치(101)에 데이터 패키지의 나머지 부분(237)을 보낸다(단계 227). 예를 들어(한정하는 것이 아니라 예시하는 것임), 다운로드 서버(105)는 클라이언트 장치(101)로 전송할 데이터 패키지의 나머지 피요청 부분을 컨텐트 서버에서 검색할 수 있다. 다르게는, 다운로드 서버(105)는 차후의 검색 및 전송을 위해 자신의 로컬 저장소 내에 상기 데이터 패키지의 나머지 피요청 부분을 저장할 수 있다. 이에 클라이언트 장치(101)는 데이터 패키지의 나머지 부분(237)을 받는다(단계 213). 클라이언트 장치(101)는 그 다음, 차후 사용을 위하여 자신의 로컬 메모리 또는 저장소에 전체 데이터 패키지를 저장할 수 있다.
예를 들어(한정하는 것이 아니라 예시하는 것임), 클라이언트 장치(101)는 다운로드 서버(105)에서 데이터 패키지의 나머지 부분을 받은 후 데이터 패키지를 스캔하도록 구성할 수 있다. 이러한 추가 스캔은 데이터 패키지의 모든 부분이 제대로 취합되었는지 그리고 누락된 부분이 없는지 확실히 하기 위한 것이다.
예로서, 본 발명의 실시예에 따른 클라이언트 장치(300)의 구성 요소를 설명하는 블록 다이어그램을 도시한 도 3과 같이 클라이언트 장치(101)를 구성할 수 있다. 일반적으로, 예를 들어, 클라이언트 장치(300)는 비디오게임 콘솔, 스마트폰, 또는 본 발명을 실시하기에 적합한 기타 디지털 장치 등의 컴퓨터 시스템으로 구현할 수 있다. 클라이언트 장치(300)는 소프트웨어 어플리케이션(및 옵션으로서 운영체제)을 실행하도록 구성된 프로세서 모듈(301)을 포함할 수 있다. 프로세서 모듈(301)은 하나 이상의 프로세서 코어를 포함할 수 있다.
클라이언트 장치(300)는 또한, 프로세서(301)가 사용하는 어플리케이션과 데이터를 저장하는 메모리(305)를 포함할 수 있다. 메모리(305)는 집적회로 메모리, 예를 들어, RAM, DRAM, ROM 등일 수 있다. 메모리(305)는 또한, 모든 프로세서 모듈이 접근할 수 있는 메인 메모리일 수 있다. 일부 실시예에서 프로세서 모듈(301)은 각각의 코어에 연결된 로컬 메모리를 가질 수 있다. 프로그램(303)은 프로세서 모듈에 의해 실행가능한, 프로세서가 읽을 수 있는 명령어의 형태로 메인 메모리(305)에 저장될 수 있다. 프로그램(303)은 데이터 패키지를 효율적으로 다운로드하는 방법을 구현하도록 구성할 수 있다. 예로서, 프로그램(303)은, 데이터 패키지의 다운로드 요청을 다운로드 서버로 전송하고, 클라이언트에 저장되어 있는 기존의 제한된 컨텐트 패키지를 식별하기 위한 목록을 다운로드 서버로 전송하고, 이미 클라이언트 장치(및 옵션으로서, 클라이언트 장치 내의 각각의 해당 위치)에 저장된 데이터 패키지의 일부를 식별하기 위한 정보를 다운로드 서버로부터 수신하고, 클라이언트 장치에 저장된 기존 컨텐트로부터 데이터 패키지의 식별된 부분들을 취합하고, 다운로드 서버로 데이터 패키지의 나머지 부분을 보내도록 요청하고, 다운로드 서버로부터 데이터 패키지의 나머지 부분을 수신하도록 하는 명령어들을 포함할 수 있다. 프로그램(303)은 프로세서가 읽을 수 있는 언어라면 어떠한 언어(예를 들어, C, C++, JAVA, Assembly, MATLAB, FORTRAN 등)로도 작성할 수 있다.
클라이언트 장치(300)가 다운로드 서버로부터 받은 다운로드 패키지 정보(307)도 역시 메모리(305)에 저장할 수 있다. 이러한 정보(307)에 의해 클라이언트 장치에 위치한 기존 컨텐트 내에서 찾을 수 있는 데이터 패키지의 일부를 식별할 수 있고, 그 각각의 위치도 식별할 수 있다. 선택사항으로서, 이 정보(307)는 이미 클라이언트 장치에 존재하는 데이터 패키지의 일부를 취합하는 데 있어서 클라이언트 장치(300)를 안내하도록 구성되는, 실행 가능한 명령어 코드를 포함할 수 있다. 클라이언트 장치(300)가 수신한 다운로드 패키지 데이터(308)도 역시 메모리(305)에 저장할 수 있다. 이 수신 데이터(308)는 다운로드 서버로부터 받은, 이전에는 클라이언트 장치에 존재하지 않던 데이터 패키지의 나머지 부분을 포함할 수 있다. 프로그램(303)의 실행 중에 프로그램 코드, 다운로드 정보(307), 및/또는 데이터(308)의 일부분을 다중 프로세서 코어에 의한 병렬 처리를 위하여 메모리 또는 프로세서 코어의 로컬 저장소에 로드할 수 있다.
클라이언트 장치(300)에는 또한, 입/출력 장치(I/O)(311), 전원공급 장치(P/S)(313), 클럭(CLK)(315), 캐시(317)와 같은 주지의 지원 장치(309)가 포함될 수 있다. 선택사항으로서, 클라이언트 장치(300)는 고정식 디스크 드라이브, 탈착식 디스크 드라이브, 플래시 메모리 장치, 테이프 드라이브, CD-ROM, DVD-ROM, 블루레이(Bli-Ray), HD-DVD, UMD, 또는 기타, 광학식 저장장치 등과 같은 대용량 저장 장치(319)를 포함할 수 있다. 저장 장치(319)는 컨텐트(320)(예컨대, 어플리케이션, 프로그램, 음향/영상 등)의 임시 보관 또는 장기 보관에 사용할 수 있다. 컨텐트(320)는 제한된 컨텐트 패키지(322)와 사용자 컨텐트(324)를 포함할 수 있음을 주목해야 한다. 위에서 설명한 바와 같이, 제한된 컨텐트 패키지(322)는 클라이언트 장치(300)의 사용자 또는 제3자에 의한 변경으로부터 보호된다. 제한된 컨텐트 패키지(322)는, 어플리케이션 타이틀, 게임 타이틀, 매체 컨텐트, 및 클라이언트 장치(300) 또는 다른 유사하게 구성된, 폐쇄형 플랫폼 네트워크를 사용하는 폐쇄형 플랫폼 장치와 관련된 다른 형태의 제한된 컨텐트에 관련된 제한된 코드 및 제한된 데이터를 포함할 수 있다. 제한된 컨텐트 패키지(322)를 구성하는 제한된 컨텐트 요소의 위치는 폐쇄형 플랫폼 장치에 대한 일정한 방식으로 결정된다. 이렇게 하는 것의 의미는, 저장 장치(319) 내에 있는 컨텐트 종목을 구성하는 각 파일의 정체성 및/또는 위치(예를 들어, 볼륨, 섹터, 또는 주소)가 컨텐트 패키지가 저장 장치에 존재한다는 사실로부터 미리 결정될 수 있거나 또는 결정가능하다는 것이다.
컨텐트(320)는 또한, 변경가능한 사용자 컨텐트(324)를 포함할 수 있다. 즉, 사용자 또는 제3자가 상기 사용자 컨텐트를 만들거나/만들고 변경할 수 있다. 사용자 컨텐트(324)의 예를 들자면, 사용자 프로필, 게임 저장, 사용자가 생성한 메시지(채팅이나 이메일, 사용자 환경 설정, 장치 설정 등)를 포함하지만, 이들에 국한되지는 않는다.
선택사항으로서, 클라이언트 장치(300)는 클라이언트 장치(300)와 상호 작용하는 디스플레이부(321) 및 사용자 인터페이스(331)를 포함할 수 있다. 디스플레이부(321)는 CRT, LCD, 플라즈마 및 OLED 디스플레이 등, 클라이언트 장치(300)로부터의 신호에 대한 응답으로 시각 정보를 표시할 수 있는 모든 장치가 될 수 있다. 클라이언트 장치(300)는 아날로그 또는 디지털 신호를 디스플레이부(321)로 출력할 수 있다. 예로서, 디스플레이부(321)는 문자, 숫자, 도형 기호 또는 영상을 표시하는 음극선관(CRT) 또는 평판스크린을 포함할 수 있다. 또한, 디스플레이부(321)는 가청 음향 등의 감지가능한 소리를 만드는 하나 이상의 음향 스피커를 포함할 수 있다. 음향 발생을 위해 클라이언트 장치(300)는 프로세서(301), 메모리(305), 및/또는 저장장치(319)에서 출력된 명령어 및/또는 데이터로부터 아날로그 또는 디지털 음향을 생성하도록 적용된 오디오 프로세서(323)를 추가로 포함할 수 있다. 사용자 인터페이스(331)는 키보드, 마우스, 조이스틱, 라이트 펜(light pen), 또는 기타, 그래픽 사용자 인터페이스(GUI)와 함께 사용가능한 다른 장치를 포함할 수 있다.
클라이언트 장치(300)는 또한, 전자 통신 네트워크(329)를 통한 통신을 용이하게 해주는 네트워크 인터페이스(325)를 포함할 수 있다. 네트워크 인터페이스(325)는 근거리 네트워크(LAN)와 광역 네트워크(WAN)(인터넷 등)를 통해 유선 또는 무선 통신을 구현하도록 구성할 수 있다. 클라이언트 장치(300)는 네트워크(329) 상에서 하나 이상의 메시지 패킷(327)을 통해 데이터를 송수신 및/또는 데이터 패키지를 요청할 수 있다.
프로세서(301), 메모리(305), 지원 기능(309), 데이터 저장소(319), 사용자 인터페이스(331), 디스플레이부(321), 오디오 프로세서(323), 네트워크 인터페이스(325)를 포함하는 클라이언트 장치(300)의 구성 요소는 하나 이상의 데이터 버스(333)를 통해 서로 동작가능하게 연결할 수 있다. 이들 구성 요소는 하드웨어, 소프트웨어, 펌웨어, 또는 이들 중 두 가지 이상의 모든 경우의 조합으로 구현할 수 있다.
일반적으로, 예를 들어, 시스템(100)의 다운로드 서버(105)를 도 4와 같이 구성할 수 있다. 본 발명의 실시예에 따르면, 다운로드 서버(400)는 컴퓨터 시스템 또는 기타 디지털 장치로 구현할 수 있다. 다운로드 서버에는 소프트웨어 어플리케이션(및 선택사항으로서, 운영체제)을 실행하도록 구성된 프로세서(401)가 포함되어 있다. 프로세서(401)는 하나 이상의 프로세싱 코어를 포함할 수 있다. 예로서(한정하는 것이 아니라 예시하는 것임), 프로세서(401)는 Cell Processor와 같은 병렬 프로세서 모듈일 수 있다.
다운로드 서버(400)에는 또한, 어플리케이션과, 프로세서(401)가 사용할 수있는 데이터를 저장하도록 구성된 메모리(405)가 포함되어 있다. 컴퓨터 프로그램(403)은 프로세서(401)가 실행할 수 있는 명령어의 형태로 메모리(405)에 저장될 수 있다. 프로그램(403)의 명령어들은 무엇보다도, 도 2의 다운로드 서버의 동작(215)과 관련하여 앞에서 설명한, 데이터 패키지를 효율적으로 다운로드하는 방법을 구현하도록 구성할 수 있다. 특히, 다운로드 서버(400)는, 클라이언트 장치로부터 데이터 패키지 다운로드 요청을 수신하고, 클라이언트 장치에 저장되어 있는 기존 컨텐트 패키지의 목록을 수신하고, 클라이언트 장치에 있는 기존 컨텐트 요소로서 저장되어 있는 데이터 패키지 부분을 식별하고, 데이터 패키지의 부분에 해당되는, 기존 컨텐트 요소를 식별하는 클라이언트 장치에 명령어를 보내고, 데이터 패키지의 나머지 부분에 대한 요청을 수신하고, 클라이언트 장치로 데이터 패키지의 나머지 부분을 전송하기 위하여, 프로그램(430)을, 예컨대, 적절히 프로그래밍하여 구성할 수 있다
클라이언트 장치에 저장된 기존 컨텐트의 목록(407)도 메모리(405)에 저장할 수 있다. 이러한 목록(407)에는 클라이언트 장치에 저장된 모든 컨텐트 패키지의 목록이 포함될 수 있다. 이 목록을 통해 컨텐트 패키지를 (예컨대, 제목 또는 다른 식별자에 의하여) 식별할 수 있지만, 패키지 또는 실제 내용 자체를 구성하는 컨텐트 요소의 목록을 포함할 필요는 없다. 예를 들자면(한정이 아니라 예시임), 다수의 게임이 저장되어 있는 게임 콘솔(즉, 클라이언트 장치)은 클라이언트 장치에 저장된 각 게임 타이틀 및 특정 버전을 나열한 목록을 다운로드 서버로 보낼 수 있다. 클라이언트 장치가 폐쇄형 플랫폼 장치인 경우, 각 컨텐트 패키지를 구성하는 컨텐트 요소는 컨텐트 패키지 식별자와 버전 번호를 통해 확인할 수 있다. 클라이언트 장치에 의해 만들어진 각각의 데이터 패키지 요청(408)도 또한 메모리(405)에 저장할 수 있다. 이러한 데이터 패키지 요청(408)에는 클라이언트 장치에 이미 저장되어 있는 컨텐트 요소 중에는 포함되지 않는 여러 데이터 패키지 부분들의 목록이 포함될 수 있다.
다운로드 서버(400)에는 또한, 입/출력 장치(I/O)(411), 전원공급 장치(P/S)(413), 클럭(CLK)(415), 캐시(417)와 같은 주지의 지원기능 장치(409)가 포함될 수 있다. 다운로드 서버(400)는 어플리케이션과 데이터를 저장하는 비휘발성 저장소를 갖는 저장 장치(419)를 추가로 포함할 수 있다. 이 저장 장치(419)로는, 폐쇄 공간 네트워크 내에서 순환하는 모든 인증된 컨텐트(예컨대, 오리지널 컨텐트, 업데이트된 인증 컨텐트 등)의 디렉토리를 다운로드 서버(400)에 제공하도록 구성된 장기 보관용 데이터베이스(420)를 사용할 수 있다. 피요청 데이터 패키지의 어느 부분이 클라이언트 장치에 이미 저장되어 있는지 그리고 피요청 데이터 패키지의 어느 부분을 전송해야 하는지를 결정하기 위하여, 클라이언트 장치의 목록(407)과 데이터 패키지 요청(408)을 데이터베이스(420)에 대해 체크할 수 있다.
선택사항으로서, 다운로드 서버(400)는 다수의 사용자로부터의 입력 신호를 다운로드 서버(400)로 보내어 통신하기 위한 사용자 인터페이스(431)를 포함할 수 있다. 예로서, 사용자 인터페이스(431)는 I/O 요소(411)를 통해 다운로드 서버(400)에 연결된다. 사용자 인터페이스(431)는 키보드, 마우스, 조이스틱, 라이트펜(light pen), 또는 기타, 그래픽 사용자 인터페이스(GUI)와 함께 사용가능한 다른 장치를 포함할 수 있다.
다운로드 서버(400)는 또한, 전자 통신 네트워크(429)를 통한 통신을 용이하게 해주는 네트워크 인터페이스(425)를 포함할 수 있다. 네트워크 인터페이스(425)는 근거리 네트워크(LAN)와 광역 네트워크(WAN)(인터넷 등)를 통해 유선 또는 무선 통신을 구현하도록 구성할 수 있다. 다운로드 서버(400)는 네트워크(429) 상에서 하나 이상의 메시지 패킷(427)을 통해 데이터를 송수신 및/또는 데이터 패키지를 요청할 수 있다.
프로세서(401), 메모리(405), 지원 기능(409), 데이터 저장소(419), 사용자 인터페이스(431), 네트워크 인터페이스(425)를 포함하는 다운로드 서버(400)의 구성 요소들은 하나 이상의 데이터 버스(433)를 통해 서로 동작가능하게 연결할 수 있다. 이들 구성 요소는 하드웨어, 소프트웨어, 펌웨어, 또는 이들 중 두 가지 이상의 조합으로 구현할 수 있다.
본 발명의 실시예들은 폐쇄 공간 네트워크에서의, 그리고 클라이언트 장치에 저장된 기존 컨텐트에서의 데이터 중복 문제를 활용하여 데이터 패키지의 효율적 다운로드를 가능케 한다. 기존에 저장되어 있는 제한된 컨텐트 요소들 중에서 요청받은 데이터 패키지의 부분들을 취합함으로써, 다운로드 서버와 클라이언트 장치 사이에서 전송되는 데이터 패키지의 실제 크기가 크게 줄어들 수 있다. 이로써 클라이언트 장치 또는 다운로드 서버에 큰 추가 부담을 주지 않고도 전송 시간이 보다 짧아지고, 보다 효율적인 대역폭 사용이 가능하다.
이상에서 비디오게임 플랫폼과 관련된 실시예에 대해서 설명하였지만, 본 발명의 실시예가 이에만 국한되는 것이 아니라는 것을 주목해야 한다. 이와 달리, 본 발명의 실시예는 스마트폰과 같은 다른 형태의 폐쇄형 플랫폼 시스템에도 적용할 수 있는 것이다.
이상에서 대부분 폐쇄형 플랫폼 시스템에 관련하여 실시예를 설명하였지만, 본 발명의 실시예는 개방형 플랫폼 시스템으로도 확장할 수 있다는 것을 주목해야 한다. 예를 들어, 클라이언트 장치가 개방형 플랫폼 시스템의 일부인 경우에는, 클라이언트 장치가 다운로드 서버가 기대한 데이터 부분 또는 적절한 대체물을 갖고 있는지를 확실히 하기 위하여, 도 2와 관련하여 설명한 클라이언트 장치를 확장하여 파일들 또는 데이터의 부분들을 추가로 스캔 및 검증하는 추가 기능을 포함시킬 수 있다. 다양한 개방형 플랫폼 시스템을 변경함으로써 본 발명의 특징을 적용할 수 있다. 예를 들어, 윈도우즈 프로그램에 대해서는 어떠한 설치자(installer)라도 사용할 수 있지만, 본 발명의 특징을 적용하기 위해 변경할 수 있는 것으로 주지되어 있는 설치자(예컨대, WISE 설치 프로그램)가 있다. 리눅스 시스템에서는 패키지화되고 설치된 파일을 추적하는 RPM 또는 apt-get 패키지 관리자를 사용하여 본 발명의 특징을 활용할 수 있다. 덧붙여, 매킨토시 시스템에서 사용하는 시스템 설치 프로그램은, 많은 경우에, 여기서 설명한 특징을 이용하여 데이터 패키지의 효율적 다운로드를 적용할 수 있도록 변경가능하다. 위에서 설명한 것은 본 발명의 바람직한 실시예에 대해서이지만, 다양한 대체물, 변형물, 및 등가물을 사용하는 것도 가능하다. 따라서 본 발명의 범위는, 위의 설명 내용이 아닌, 청구범위 및 그 등가 범위를 기준으로 판단해야 한다. 여기서 설명한 모든 특징들(이들이 바람직하든 아니든)을, 여기서 설명한 것과 다른 모든 특징들(이들이 바람직하든 아니든)과 결합할 수 있다. 아래에 첨부한 특허청구범위에서, 부정관사 "A" 또는 "An"은 다른 언급이 없는한, 이 부정관사 다음에 나오는 명사가 하나 이상의 개수임을 나타낸다. 첨부한 특허청구범위는, "...하는 수단(means for)"이라는 문구로 특정 청구항을 명확하게 한정하지 않은 한, 이러한 기능적 수단을 포함하는 것으로 해석해서는 안된다.
100: 폐쇄형 플랫폼 시스템
200: 본 발명의 방법
201: 클라이언트 장치 명령
215: 다운로드 서버 명령
300: 본 발명의 실시예에 따른 클라이언트 장치
333: 데이터 버스
400: 본 발명의 실시예에 따른 다운로드 서버
433: 데이터 버스

Claims (29)

  1. 네트워크 상에서 운용되도록 구성된 클라이언트 장치에 있어서 데이터 패키지를 효율적으로 다운로드하는 방법으로서,
    a) 네트워크 상에서 운용되는 서버로 상기 클라이언트 장치에 저장되어 있는 기존 컨텐트 패키지를 식별하기 위한 목록을 보내는 과정,
    b) 상기 클라이언트 장치에 저장된 하나 이상의 기존 컨텐트 요소에 해당되는 상기 데이터 패키지의 하나 이상의 부분을 식별하기 위한 정보를 포함하는 응답을 상기 서버로부터 수신하는 과정,
    c) 상기 클라이언트 장치에 저장되어 있는 기존 컨텐트 요소로부터 상기 데이터 패키지 내에 있는 컨텐트의 하나 이상의 식별된 부분을 취합하는 과정, 및
    d) 상기 서버에 상기 데이터 패키지의 나머지 부분을 요청하는 과정을 포함하는 것을 특징으로 하는, 데이터 패키지를 효율적으로 다운로드하는 방법.
  2. 제1항에 있어서, a) 과정 전에, 상기 클라이언트 장치에서 서버로 데이터 패키지 다운로드 요청을 전송하는 과정을 더 포함하는 것을 특징으로 하는, 데이터 패키지를 효율적으로 다운로드하는 방법.
  3. 제2항에 있어서, 상기 요청은 상기 클라이언트 장치 사용자의 입력에 대한 응답으로 이루어지는 것을 특징으로 하는, 데이터 패키지를 효율적으로 다운로드하는 방법.
  4. 제2항에 있어서, 상기 요청은 미리 정해진 시간에 상기 클라이언트 장치에 의해 자동으로 이루어지는 것을 특징으로 하는, 데이터 패키지를 효율적으로 다운로드하는 방법.
  5. 제1항에 있어서, 상기 기존 컨텐트를 식별하기 위한 목록은, 상기 클라이언트 장치에 저장되어 있는 각 컨텐트 항목 및 이에 상응하는 각 컨텐트 항목에 대한 버전 번호를 식별하기 위한 리스트를 포함하는 것을 특징으로 하는, 데이터 패키지를 효율적으로 다운로드하는 방법.
  6. 제1항에 있어서, 상기 서버로부터의 응답은, 상기 클라이언트 장치에 저장된 하나 이상의 기존 컨텐트 요소의 각각의 상기 클라이언트 장치 내에서의 위치를 나타내는 정보를 포함하는 것을 특징으로 하는, 데이터 패키지를 효율적으로 다운로드하는 방법.
  7. 제1항에 있어서, 상기 서버로부터의 응답은, 클라이언트 장치에 저장된 하나 이상의 기존 컨텐트 요소에 해당되는 식별자의 리스트를 포함하는 것을 특징으로 하는, 데이터 패키지를 효율적으로 다운로드하는 방법.
  8. 제1항에 있어서, 상기 요청은 상기 응답에서 식별된 하나 이상의 부분을 취합 시에 상기 클라이언트 장치를 안내하도록 구성된 코드 및/또는 데이터를 포함하는 것을 특징으로 하는, 데이터 패키지를 효율적으로 다운로드하는 방법.
  9. 제1항에 있어서, 상기 c) 과정은 상기 클라이언트 장치에 저장된 하나 이상의 기존 컨텐트 요소를 복사하는 과정을 포함하는 것을 특징으로 하는, 데이터 패키지를 효율적으로 다운로드하는 방법.
  10. 제1항에 있어서, 상기 c) 과정은 상기 데이터 패키지의 식별된 각 부분에 대한 포인터(이 포인터는 상기 클라이언트 장치에 저장되어 있는 해당 기존 컨텐트 요소의 위치를 가리킴)를 생성하는 과정을 포함하는 것을 특징으로 하는, 데이터 패키지를 효율적으로 다운로드하는 방법.
  11. 제1항에 있어서, 상기 d) 과정은 데이터 패키지의 나머지 부분을 판단하기 위해 취합된 데이터 패키지의 식별된 부분을 스캔하는 과정을 포함하는 것을 특징으로 하는, 데이터 패키지를 효율적으로 다운로드하는 방법.
  12. 제1항에 있어서, f) 데이터 패키지의 누락된 부분이 있는지 조사하는 과정을 더 포함하는 것을 특징으로 하는, 데이터 패키지를 효율적으로 다운로드하는 방법.
  13. 제1항에 있어서, 상기 클라이언트 장치는 폐쇄형 플랫폼 장치이며 상기 목록은 상기 클라이언트 장치에 저장된 기존의 제한된 컨텐트 패키지를 식별하는 것을 특징으로 하는, 데이터 패키지를 효율적으로 다운로드하는 방법.
  14. 제1항에 있어서, 상기 클라이언트 장치는 개방형 플랫폼 장치이며, 상기 방법은 상기 식별된 부분이 상기 클라이언트 장치에 저장되어 있는 기존 컨텐트 요소에 해당하는지 검증하는 과정을 더 포함하는 것을 특징으로 하는, 데이터 패키지를 효율적으로 다운로드하는 방법.
  15. 제14항에 있어서, 상기 d) 과정은 상기 클라이언트 장치에 저장된 컨텐트 요소에 해당되지 않는 하나 이상의 불일치한 식별 부분을 요청하는 과정을 더 포함하는 것을 특징으로 하는, 데이터 패키지를 효율적으로 다운로드하는 방법.
  16. 제14항에 있어서, 상기 c) 과정은 상기 클라이언트 장치에 저장되어 있는 컨텐트 요소에 해당되지 않는 하나 이상의 불일치한 식별 부분에 대한 하나 이상의 대체물을 확인하고, 상기 클라이언트 장치에 저장된 부분들로부터 이 대체물을 취합하는 과정을 포함하는 것을 특징으로 하는, 데이터 패키지를 효율적으로 다운로드하는 방법.
  17. 폐쇄형 플랫폼 네트워크에서 운용되도록 구성된 클라이언트 장치로서,
    상기 클라이언트 장치는, 프로세서; 상기 프로세서에 연결된 메모리; 상기 프로세서에 의해 실행되기 위해 상기 메모리에 구현된 하나 이상의 명령어들을 포함하고,
    상기 명령어들은 데이터 패키지를 효율적으로 다운로드하는 방법을 구현하기 위해 구성되며,
    상기 다운로드하는 방법은,
    a) 상기 폐쇄형 플랫폼 네트워크 상에서 운용되는 서버로 상기 클라이언트 장치에 저장되어 있는 기존 컨텐트 패키지를 식별하기 위한 목록을 보내는 과정,
    b) 상기 클라이언트 장치에 저장된 하나 이상의 기존 컨텐트 요소에 해당되는 상기 데이터 패키지의 하나 이상의 부분을 식별하기 위한 정보를 상기 서버로부터 수신하는 과정,
    c) 상기 클라이언트 장치에 저장되어 있는 기존 컨텐트 요소로부터의 상기 데이터 패키지 내에 있는 컨텐트의 하나 이상의 식별된 부분을 취합하는 과정,
    d) 상기 서버에 상기 데이터 패키지의 나머지 부분을 요청하는 과정, 및
    e) 상기 서버로부터 상기 데이터 패키지의 나머지 부분을 수신하는 과정을 포함하는 것을 특징으로 하는, 폐쇄형 플랫폼 네트워크에서 운용되도록 구성된 클라이언트 장치.
  18. 네트워크 상에서 운용되도록 구성된 서버에 있어서 데이터 패키지를 효율적으로 다운로드하는 방법으로서,
    a) 클라이언트 장치에 저장되어 있는 기존 컨텐트 패키지를 식별하기 위한 목록을 받는 과정,
    b) 상기 목록으로부터, 상기 클라이언트 장치에 저장된 하나 이상의 기존 컨텐트 요소에 해당되는 데이터 패키지의 하나 이상의 부분을 식별하는 과정,
    c) 상기 클라이언트 장치에 기존 컨텐트 요소로서 저장된 상기 데이터 패키지의 하나 이상의 부분을 각각 식별하기 위한 정보를 상기 클라이언트 장치로 보내는 과정, 및
    d) 상기 데이터 패키지의 나머지 부분에 대한 요청을 클라이언트 장치로부터 수신하는 과정을 포함하는 것을 특징으로 하는, 데이터 패키지를 효율적으로 다운로드하는 방법.
  19. 제18항에 있어서, 상기 목록은, 상기 클라이언트 장치에 저장되어 있는 각 컨텐트 패키지 및 이에 상응하는 각 컨텐트 패키지에 대한 버전 번호를 식별하기 위한 리스트를 포함하는 것을 특징으로 하는, 데이터 패키지를 효율적으로 다운로드하는 방법.
  20. 제18항에 있어서, 상기 b) 과정은 상기 데이터 패키지의 1군의 컨텐트 요소를 상기 목록으로부터 결정한 1군의 기존 컨텐트 요소와 비교하는 과정을 포함하는 것을 특징으로 하는, 데이터 패키지를 효율적으로 다운로드하는 방법.
  21. 제20항에 있어서, 상기 b) 과정은 상기 목록상의 하나 이상의 컨텐트 패키지에 대한 컨텐트 패키지 식별자 및 버전 번호로부터, 상기 클라이언트 장치에 기존 컨텐트 요소로서 저장되어 있는 데이터 패키지의 하나 이상의 부분을 식별하는 과정을 포함하는 것을 특징으로 하는, 데이터 패키지를 효율적으로 다운로드하는 방법.
  22. 제20항에 있어서, 상기 c)에서 상기 클라이언트 장치로 전송되는 정보는, 상기 클라이언트 장치에 기존 컨텐트 요소로서 저장된 데이터 패키지의 하나 이상의 부분의 상기 클라이언트 장치 내의 각 위치를 나타내는 정보를 포함하는 것을 특징으로 하는, 데이터 패키지를 효율적으로 다운로드하는 방법.
  23. 제18항에 있어서, 상기 클라이언트 장치로 전송되는 정보는 상기 클라이언트 장치에 저장된 하나 이상의 기존 컨텐트 요소에 해당되는 식별자의 리스트를 포함하는 것을 특징으로 하는, 데이터 패키지를 효율적으로 다운로드하는 방법.
  24. 제18항에 있어서, 상기 클라이언트 장치는 폐쇄형 플랫폼 장치이며, 상기 목록은 상기 클라이언트 장치에 저장된 기존의 제한된 컨텐트 패키지를 식별하는 것을 특징으로 하는, 데이터 패키지를 효율적으로 다운로드하는 방법.
  25. 제18항에 있어서, 상기 클라이언트 장치는 개방형 플랫폼 장치이며, 상기 방법은 상기 식별된 부분이 상기 클라이언트 장치에 저장되어 있는 기존 컨텐트 요소에 해당하는지 상기 클라이언트 장치가 검증할 수 있도록 하는 검증 정보를 상기 클라이언트 서버로 전송하는 과정을 더 포함하는 것을 특징으로 하는, 데이터 패키지를 효율적으로 다운로드하는 방법.
  26. 제25항에 있어서, 상기 c) 과정은 상기 클라이언트 장치에 저장되어 있는 컨텐트 요소에 해당되지 않는 하나 이상의 불일치한 식별 부분에 대한 하나 이상의 대체물을 확인하고, 상기 대체물을 상기 클라이언트 장치에 통보하는 과정을 포함하는 것을 특징으로 하는, 데이터 패키지를 효율적으로 다운로드하는 방법.
  27. 네트워크에서 운용되도록 구성된 서버로서,
    상기 서버는, 프로세서; 메모리; 상기 프로세서에 의해 실행되기 위해 상기 메모리에 구현된 하나 이상의 명령어들을 포함하고,
    상기 명령어들은 데이터 패키지를 효율적으로 다운로드하는 방법을 구현하기 위해 구성되며,
    상기 다운로드하는 방법은,
    a) 클라이언트 장치에 저장되어 있는 기존 컨텐트 패키지를 식별하기 위한 목록을 받는 과정,
    b) 상기 목록으로부터, 상기 클라이언트 장치에 저장된 하나 이상의 기존 컨텐트 요소에 해당되는 데이터 패키지의 하나 이상의 부분을 식별하는 과정,
    c) 상기 하나 이상의 기존의 컨텐트 요소를 식별하기 위한 정보를 상기 클라이언트 장치로 보내는 과정,
    d) 상기 데이터 패키지의 나머지 부분에 대한 요청을 클라이언트 장치로부터 수신하는 과정, 및
    e) 상기 데이터 패키지의 나머지 부분을 상기 클라이언트 장치로 보내는 과정을 포함하는 것을 특징으로 하는, 네트워크에서 운용되도록 구성된 서버.
  28. 제 1항에 있어서, 상기 수신된 요청에 따라 상기 데이터 패키지의 나머지 부분이 상기 서버로부터 수신되는 것을 특징으로 하는 방법.
  29. 제 18항에 있어서, 상기 수신된 요청에 따라 상기 데이터 패키지의 나머지 부분이 상기 클라이언트 장치에게 전송되는 것을 특징으로 하는 방법.
KR1020120080983A 2011-07-25 2012-07-25 데이터 패키지의 효율적인 다운로드 방법 및 시스템 KR101422563B1 (ko)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
KR20130012929A KR20130012929A (ko) 2013-02-05
KR101422563B1 true KR101422563B1 (ko) 2014-07-24

Family

ID=46754865

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120080983A KR101422563B1 (ko) 2011-07-25 2012-07-25 데이터 패키지의 효율적인 다운로드 방법 및 시스템

Country Status (7)

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

Families Citing this family (12)

* 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 阿里巴巴集团控股有限公司 数据包发送/接收方法、装置、传输系统及移动设备
RU2710879C1 (ru) * 2016-04-15 2020-01-14 Телефонактиеболагет Лм Эрикссон (Пабл) Контейнеры пользовательского оборудования и сетевые срезы
EP3441876B1 (en) 2016-04-27 2023-02-15 Honor Device Co., Ltd. Patch upgrade-based file processing method and device, terminal, and storage medium
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 삼성전자주식회사 소프트웨어 플랫폼을 제공하는 서버 및 그 동작방법
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 (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002091452A (ja) 2000-09-11 2002-03-27 Nec Corp データ配信システム及びその配信方法
KR20080037450A (ko) * 2006-10-26 2008-04-30 웹싱크 주식회사 소프트웨어 실행모듈의 업데이트 시스템 및 방법
KR20100088990A (ko) * 2009-02-02 2010-08-11 에스케이텔레콤 주식회사 데이터 세그먼트 정보를 이용한 컨텐츠 전송시스템 및 방법, 그 프록시서버

Family Cites Families (20)

* 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
US5845077A (en) * 1995-11-27 1998-12-01 Microsoft Corporation Method and system for identifying and obtaining computer software from a remote computer
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
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
US6711557B1 (en) * 2000-08-14 2004-03-23 Adobe Systems Incorporated Client-based background update monitoring
US6671772B1 (en) 2000-09-20 2003-12-30 Robert E. Cousins Hierarchical file system structure for enhancing disk transfer efficiency
US6941135B2 (en) * 2001-08-13 2005-09-06 Qualcomm Inc. System and method for temporary application component deletion and reload on a wireless device
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
US7574706B2 (en) * 2003-12-15 2009-08-11 Microsoft Corporation System and method for managing and communicating software updates
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 주식회사 케이티프리텔 무선 네트워크를 통한 대용량 컨텐츠 이어받기 서비스 제공방법 및 이를 구현하기 위한 프로그램이 기록된 기록매체
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
US8239852B2 (en) 2009-06-24 2012-08-07 Uniloc Luxembourg S.A. Remote update of computers based on physical device recognition
CN101699399B (zh) * 2009-11-03 2014-04-30 中兴通讯股份有限公司 一种软件更新的系统和方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002091452A (ja) 2000-09-11 2002-03-27 Nec Corp データ配信システム及びその配信方法
KR20080037450A (ko) * 2006-10-26 2008-04-30 웹싱크 주식회사 소프트웨어 실행모듈의 업데이트 시스템 및 방법
KR20100088990A (ko) * 2009-02-02 2010-08-11 에스케이텔레콤 주식회사 데이터 세그먼트 정보를 이용한 컨텐츠 전송시스템 및 방법, 그 프록시서버

Also Published As

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

Similar Documents

Publication Publication Date Title
KR101422563B1 (ko) 데이터 패키지의 효율적인 다운로드 방법 및 시스템
CN110058873B (zh) 应用页面更新方法、装置、设备和存储介质
KR101643022B1 (ko) 카탈로그-기반 소프트웨어 컴포넌트 관리
US20240048631A1 (en) Demand resources
US9880824B2 (en) On demand resources
JP7297769B2 (ja) プリキャシュのためのクライアント・マシン間でのシェーダの配布
CN105373396B (zh) 插件平台中的插件更新加载方法和装置
US20190196805A1 (en) Controlled rollout of updates for applications installed on client devices
US20200259879A1 (en) Interaction method and device for mobile terminal and cloud platform of unmanned aerial vehicle
CN109391664A (zh) 用于多集群容器部署的系统和方法
US20140033315A1 (en) Method and system for enforcing a license dependency rule for a software application
KR20140126328A (ko) 애플리케이션 캐시를 사용하여 설치된 애플리케이션의 리소스를 업데이트하는 기법
KR20140099907A (ko) 다운로드 가능한 컨텐츠의 전송을 최적화하는 시스템 및 장치
JP2004227559A (ja) ユーザ・アプリケーション・プログラムの制御方法
CN107667343B (zh) 用于加载按需加载资源的系统和方法
CN106569841A (zh) 一种文件加载方法和装置
US10798147B2 (en) Constraint based controlled seeding
KR20100129439A (ko) Pc 일체형 tv의 소프트웨어 업데이트 방법
CN110569088A (zh) 客户端插件管理方法、装置、电子设备及存储介质
JP2009265743A (ja) ウェブアプリケーション管理システム、ウェブアプリケーション管理方法およびプログラム
US20140325270A1 (en) Method and a device for managing an application referenced by a device
JP2014115883A (ja) 端末装置、コンテンツ利用システム、ライセンス管理方法及びプログラム
JP2006279845A (ja) アクセスポイント装置およびその制御方法
CN114564301A (zh) 基于车载信息娱乐系统的外部资源管理方法
KR20130011836A (ko) 게임 보조 프로그램 제공 서버, 시스템 및 그 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20170710

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180710

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190709

Year of fee payment: 6