CN102904878B - 用于数据包的高效下载的方法及系统 - Google Patents

用于数据包的高效下载的方法及系统 Download PDF

Info

Publication number
CN102904878B
CN102904878B CN201210346540.6A CN201210346540A CN102904878B CN 102904878 B CN102904878 B CN 102904878B CN 201210346540 A CN201210346540 A CN 201210346540A CN 102904878 B CN102904878 B CN 102904878B
Authority
CN
China
Prior art keywords
client device
stored
packet
content
described client
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN201210346540.6A
Other languages
English (en)
Other versions
CN102904878A (zh
Inventor
S·E·尼尔森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment LLC
Original Assignee
Sony Computer Entertainment America LLC
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 Sony Computer Entertainment America LLC filed Critical Sony Computer Entertainment America LLC
Priority to CN201510824575.XA priority Critical patent/CN105516079B/zh
Publication of CN102904878A publication Critical patent/CN102904878A/zh
Application granted granted Critical
Publication of CN102904878B publication Critical patent/CN102904878B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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

用于数据包的高效下载的方法及系统
技术领域
本发明的实施例涉及计算机网络,更具体地涉及从网络下载数据包。
背景技术
目前,很多计算机游戏网络以及智能手机网络以封闭平台网络方式运行。此处使用的,封闭平台网络是指禁止外部修改的网络,该外部修改是网络应用、程序以及与使用网络的特定客户端设备或平台关联的其他受限制内容的外部修改。这里,运行于此网络上的客户端设备有时被称为封闭平台设备。两相对比,在开放平台网络或开放平台设备中,不禁止此类修改。
发明内容
举例说明,并非为限定范围,与视频游戏机有关的某些计算机游戏网络被配置以作为封闭平台网络运行。在封闭平台计算机游戏网络中,与游戏标题、应用、介质有关的受限制代码和受限制数据以及与使用该网络的游戏机或便携游戏设备有关的其他形式的受限制内容被保护以免受用户或第三方的修改。换句话说,一旦已经将受限制应用、受限制程序或受限制内容的其他片段加载(例如,通过磁盘、通过下载等等)到在封闭环境中运行的计算机游戏系统中,则数据保持其原始形式直到网络的操作者决定修改它(例如,通过更新补丁等等)。除了通过授权的渠道外,不允许计算机游戏平台的用户或第三方访问并修改那些受限制数据。在这样的封闭平台网络中,由于对数据屏蔽了未知的/不需要的修改,所以极大地简化了系统应用、程序以及数据的管理。正因如此,封闭平台网络可以总是保持了解每个运行于其边界内的应用、程序以及数据片段的状态。
封闭平台游戏网络也被配置经由以应用、程序及其他数据片段的形式通过从网络服务器到客户游戏系统的下载来传输数据。取决于应用,这样的数据可以是从每次传输10MB到每次传输2GB不等。更大的传输可以花费几个小时有时甚至是几天来完成。
在这种背景下提出本发明的实施例。
附图说明
图1是图示根据本发明的实施例的封闭环境系统的示意图。
图2是图示根据本发明的实施例的用于下载数据包的高效方法的流程图。
图3是图示根据本发明的实施例的客户端设备的方框图。
图4是图示根据本发明的实施例的下载服务器的方框图。
具体实施方式
尽管下列的详细描述包含出于演示目的的很多具体细节,但是任何本领域的普通技术人员将评价对下列细节的很多变化和改变是在本发明范围内的。因此,没有任何所要求的发明的通用性损失并没有在所要求的发明上强加限制地阐述以下描述的本发明的示例性实施例。
引言
由大型传输可能包括妨碍传输过程的效率的一些数据冗余的事实的认识提出本发明。举例说明而非限制,计算机游戏系统的用户可能希望下载他已经拥有的之前版本(例如,SOCOM3)的游戏标题的最新的续篇(例如,SOCOM4)。目前,这些游戏网络被配置以传输用于下载的整个数据包而不统计两个版本之间在代码和数据中的冗余。换句话说,为最新续篇而传输的数据包包括所有与最新续集关联的视频内容、音频内容、游戏引擎以及库内容等,甚至如果该数据包的一些部分可能已经在之前的版本中被下载到游戏系统中。
如NetApp、EMC及其他的一些公司具有进行“去重”的系统,“去重”有时被用作压缩形式。去重系统为了重复部分而扫描文件,除了一个重复部分外移除其他所有重复部分,并建立指向该一个剩余部分的指针从而文件可以以没有重复信息的更小的形式存储在磁盘上。在一些去重实现中使用校验和,以便于发现文件系统中的候选文件,该文件系统可能包含可以向它们应用去重处理的一致部分。
存在为传送文件的特定部分以及使用校验和以找到已经存在的部分的一些系统。例如除了别的以外,一些现代网页浏览器、BitTorrent文件传送方法和“rsync”软件使用请求将要被传送的文件的部分去填充部分文件的概念。具体地,BitTorrent和rsync也使用现有文件的校验和部分的概念确定特定段是否需要被再次传送或下载,并建立用于在网络上传送的文件的任何丢失段的列表。但是注意,使用校验和以测试部分文件的存在性和有效性的概念只能由BitTorrent和rsync比较两个特定文件来使用,该两个特定文件在成功传输或下载的结束应该是一致的。
因为封闭平台网络具有轻松监控所有应用、程序及其中装载的数据的其他片段的状态的能力,它们可能能够采用更有效的用于经由下载传输数据包的机制。
本发明的实施例允许客户端设备在封闭平台网络中运行以通过网络的方式向运行于该相同封闭平台网络的服务器发送对受限数据包的请求,一同请求的还有识别所存储的内容的清单(例如,识别所存储的内容的包的列表而不是实际内容的拷贝或组成包的元素的列表)。服务器可使用该信息确定所请求的数据包的哪些部分已经存储在客户端设备上并向客户端设备提供指令以引导它装配已存在于客户端设备上的数据包的部分。然后服务器可根据请求发送数据包的剩余部分给该设备。
如图1所示,有效的封闭平台系统100可包括一个或多个客户端设备101和一个或多个下载服务器105。该客户端设备101和下载服务器105可被配置以通过封闭平台网络103彼此通信。举例说明,并且没有通用性的损失,网络103可以是双向数字通信网络。该网络103可以是局域网或广域网。该网络103可以例如,使用基础架构实现,诸如用于CATV双向网络、ISDN或xDSL高速网络以使能用于实现本发明的特定实施例的网络连接的基础构架之类。
举例说明,并且没有通用性的损失,客户端设备101可以是视频游戏机。市售游戏机的示例包括来自华盛顿雷德蒙德的微软公司的来自日本京都任天堂有限公司的和来自日本东京索尼电脑娱乐的诸如PlayStation3之类的设备。是华盛顿雷德蒙德的微软公司的注册商标。是日本东京的索尼电脑娱乐株式会社的注册商标。是日本京都任天堂有限公司的注册商标。替代地,客户端设备101可以是任何其他类型的封闭环境网络可用的设备。举例说明,而非限定,这样的封闭环境网络可用的设备可以包括智能手机(例如,iPhone,Android手机等)。
此处使用的术语“封闭平台”指与网络关联的特定内容包屏蔽了外部修改的网络。这样的内容包可以包括应用、程序、音频/视频介质以及与网络关联的其他类型数据。在客户端设备101和下载服务器105之间传输的受限制内容包的特定元素可以仅根据网络授权修改。方便起见,这样的元素在此称为受限制内容元素。除非被授权,否则客户端设备101上的受限制内容元素不可以被客户或任何第三方改变。因此,对于封闭平台设备或封闭平台应用,可以极大地简化更新的管理。
正如这里所使用的,术语“数据包”指构成在下载服务器105和客户端设备101之间传输的内容包的部分的数据的聚集。举例说明,而非限定,这样的数据包可以包括应用、程序、视频/音频介质、更新补丁或将从下载服务器传输到客户端设备的任可其他数据的集合。
客户端设备101可以从一个或多个下载服务器105接收指令和数据包的部分。下载服务器105可以通过使用连接到下载服务器105的数据库109确定所请求的数据包的哪些部分可能位于客户端设备101上。举例说明,而非限定,这样的数据库109可以包括与客户端设备的所存储的受限制内容有关的信息以及与所请求的数据包有关的信息。举例说明,而非限定,该下载服务器105也可为了向客户端设备101的传输而从内容服务器107取回所请求的数据包的剩余部分。替代地,下载服务器105可以内部地存储数据包及其部分。
如图2所示,封闭环境系统100可被配置以实现根据发明方法200的用于受限制内容的数据包的有效下载方法。该方法200的各个方面可以通过在客户端设备101和/或下载服务器105上运行的计算机可执行指令的执行而实现。具体地,例如可以通过合适的编程配置客户端设备101以实现特定客户端设备指令201。此外,下载服务器105可以被配置为实现特定下载服务器指令215。
首先,如在203处所指示的,客户端设备101可以选择性地发送请求229到下载服务器105以下载数据包。举例说明,而非限定,这样的请求229可以由客户端设备101的用户做出。例如,游戏机的用户可以请求下载诸如游戏标题的演示或完整版本之类的受限制内容包到他的设备101上。替代地,请求229可以由客户端设备101自动地做出。例如,客户端设备101在预定时间定期地向下载服务器105提示设备更新或内容包的受限制内容更新。如在217处所指示的,下载服务器105选择性地接收请求229。接收请求229后,下载服务器105为了后续处理可以将请求229存储在它的本地存储器中。
客户端设备101发送所存储的现有内容的清单231到下载服务器105。该清单231可以提供在客户端设备101上存储的所有受限制内容包的列表。该列表识别了在该设备上存储的受限制内容包,但不包括实际内容或构成内容包的元素(例如,代码和/或数据文件)的列表。客户端设备101可以将该清单作为下载请求231的部分发送,或响应于来自服务器105的下载可用的通知而发送该清单。
正如此处所使用的,术语内容包指计算机可读元素的集合,例如,与常用功能关联的文件。正如此处所使用的,术语内容元素指计算机可读元素,例如,文件,是诸如应用或介质包之类的内容包的组成的文件。举例说明,而非限定,该内容包可以包括与给定的软件应用或游戏标题关联的所有代码和/或数据文件。
举例说明,而非限定,如果在所述设备上存储的受限制内容是不同应用程序的形式,则列表通过应用识别符(例如,标题)和对应的版本识别符(例如,用于对应应用的版本或版本号)识别每个应用。举例说明,而非限定,具有多个已存储的游戏的游戏机可以发送清单到下载服务器105,该服务器识别在该设备中存储的每个游戏标题和对应的版本。注意,对于每个游戏标题可能有对应元素的集合(例如,代码或数据),这些元素可以作为文件的集合而存储。所述代码和/或数据随着每个不同的版本号变化。但是,如果该设备运行于封闭平台网络中,则可以轻易地从游戏标题和版本识别符识别对应的代码和/或数据文件。此外,从标题或版本号的获知可以确定封闭平台客户端设备上的这些文件或受限制内容包内的特定内容元素的位置或该位置是可确定的。在其他情况下,标题和版本号的获知可以被用于确定识别符(例如,文件名)的列表,该标示符对应于组成在该客户端设备上存储的内容包的元素。
通过将清单231限定为内容包识别符的列表,而不是所有内容文件的列表,在发送该列表时可以显著地节省带宽并且可以极大地降低准备该列表的复杂性。
如在219处所指示的,下载服务器105接收此列表231。在接收所述列表231之后,下载服务器105可将该列表231存储在它的本地存储器中以用于后续处理。如在221处所指示的,在数据包请求229和客户端清单231两者都接收后,该下载服务器105可以识别已经存储在客户端设备上的数据包的部分。特别是,服务器105可以将数据包中的内容元素的集合与从该清单231中确定的现有内容元素的集合比较。举例说明,而非限定,可以借助于查找表或数据库识别已经存储的部分。因为客户端设备101和下载服务器105运行在封闭平台网络中,在该封闭平台网络中的任何客户端设备上存储的任何内容必须是初始版本或授权后的更新版本(即,无未授权的版本存在)。因此,下载服务器105可以简单地为对应于在网络内发布的每个受限制内容包的所有内容元素而保留数据库/查找表。该下载服务器105可以通过将用于数据包请求229的内容文件的列表与用于在清单231中列出的每个片段的内容的数据库/查找表比较,来确定数据包请求229的哪些部分已经以一种或另一种形式存储在客户端设备上。
举例说明,而非限定,在计算机游戏的背景下,许多游戏标题共享数据的各种部分(例如,视频内容、音频内容、游戏引擎、内容库等)。在游戏标题本质上是连续的情况下尤其如此。如此,识别数据包请求229中的哪些部分已经存储在客户端设备上可以便于更有效地创建数据包并且可以减少跨网传输的数据的总量。
在识别已存在于客户端设备上的所请求的数据包的部分后,如在223处所指示的,下载服务器105可以发送响应233到客户端设备,该客户端设备包含识别在设备上已经存储的那些部分的信息。在一些情况下,该响应可以选择性地指示客户端设备中的位置以访问每个部分。在一些情况下,在该响应中的信息可以包括用于下载包中的内容元素的内容识别符(例如,文件名)的列表,该下载包已经存储在该客户端设备上。如在207处所指示的,客户端设备101接收识别那些已存储在设备上的那些部分的信息和用于访问每个部分的位置。在接收该响应233之后,客户端设备101可以为后续处理而在其存储器中存储该响应。
关于图2描述的实施例可以用额外可选的扫描和文件或数据部分验证来扩展以确保客户端设备101包含服务器105期待的相同的文件。例如,除了包括文件(或数据部分)的列表的响应233之外,如果需要,该服务器105还可以发送校验和234,客户端101可以使用该校验和234验证对应于服务器认为的、该响应233中的文件(或数据部分)是正确的。用于消除与响应233中的那些文件或数据部分不匹配的文件或数据部分或用于找到合适的替代文件(例如,可以替代响应233中的文件的第二选择文件)的额外的否定循环208、224可以实现以“协商”客户随后可以本地复制的下载包的片段。例如,如果客户端设备101是开放平台系统的部分,则这样的特征是有用的。
如在209处所指示的,然后,客户端设备101可以使用指令233从位于客户端设备的现有内容收集数据包的已识别部分。举例说明,而非限定,响应233中的信息可以选择性地包括由与客户端设备101关联的处理器执行的代码指令,该代码指令被配置以引导所述客户端设备101在已经存在于设备上的数据包的部分的收集中引导该客户端101。替代地,客户端设备101可以被配置以定位并收集已存在于设备上数据包的部分,而没有额外代码。举例说明,而非限定,该响应233中的信息可以包括对应于受限制内容文件的文件名的列表,该受限制内容文件顺序对应于向服务器发送的清单上的内容包和版本号。在此情况下,客户端设备101可以为了对应于该响应中列出的文件名的文件而搜索其本地存储设备(例如,硬盘)。所收集的文件可以包括不匹配文件的代替者,该不匹配文件是在208处的选择性验证和协商期间被识别的。
举例说明,而非限定,收集数据包的已识别部分可以复制现有的所存储的内容的部分,该部分对应于数据包的已识别的部分。替代地,客户端设备可以创建指向对应于数据包的已识别部分的现有的所存储的内容的指针。该数据包可以简单地定位已存储的内容并在需要时使用指针访问它,而不是复制已存储的内容的部分。
如在211处所指示的,一旦数据包的已识别部分已经由客户端设备101收集,则客户端设备101可以从服务器105请求数据包的剩余部分。举例说明,而非限定,请求235可以简单地是对服务器105的通知,该通知指示客户端设备101已经完成收集数据包的已识别部分。替代地,客户端设备设备101可以被配置以运行部分完成的数据包的扫描以确定所需的剩余部分。在这样的实现中,该客户端设备101可以独立地验证由下载服务器识别的数据包的所有部分是否确实已经存在于该客户端设备上。如在225处所指示的,下载服务器105接收这个请求。
如在227处所指示的,在从客户端设备101接收用于数据包的剩余部分的请求235之后,下载服务器105发送该数据包的剩余部分237到客户端设备101。举例说明,而非限定,下载服务器105可以从内容服务器取回所请求的数据包的剩余部分用于到客户端设备101的传输。替代地,下载服务器105可以在其本地存储中存储这样的数据包的所请求的剩余部分用于后续取回和传输。如在213处所指示的,然后,客户端设备101接收数据包237的剩余部分。然后客户端设备101可以在其本地存储器或存储中为后续使用而存储完整的数据包。
举例说明,而非限定,在从下载服务器105接收数据包的剩余部分之后,客户端设备101可以被配置以进行该数据包的扫描。此额外的扫描提供额外的保证,即数据包的所有部分已经正确地收集并且没有丢失片段。
举例说明,客户端设备101可以配置为如图3中所示,图3描述了图示根据本发明的实施例的客户端设备300的组件的方框图。举例说明,而非丧失通用性,客户端300可以作为计算机系统实现,诸如视频游戏机、智能手机,或适于实践本发明的实施例的其他数字设备。客户端设备300可以包括处理器模块301,其被配置以运行软件应用并可选择地运行操作系统。处理器模块301可以包括一个或多个处理器核。
客户端设备300也可以包括被配置以存储由处理器301使用的应用和数据的存储器305。该存储器305可以是集成电路的形式,例如,RAM、DRAM、ROM等等。该存储器305也可以是所有处理器模块可访问的主存储器。在一些实施例中,处理器模块301可以具有与每个核关联的本地存储器。程序303可以以处理器模块可以执行的处理器可读指令的形式存储在主存储器305中。程序303可被配置以实现有效下载数据包的方法。举例说明,程序303可以包括指令以:向下载服务器发送请求以下载数据包、向下载服务器发送识别在客户端中存储的现有的受限制内容包的清单、从下载服务器接收信息,该信息识别已经存储在客户端设备上的数据包的部分和(可选择地)它们在客户端设备中的各自的位置、从在客户端设备上存储的现有内容中收集数据包的已识别部分、从下载服务器请求数据包的剩余部分以及从下载服务器接收数据包的剩余部分。程序303可以以诸如C、C++-、JAVA、汇编、MATLAB、FORTRAN以及若干其他语言的任何适合的处理器可读语言编写。
由客户端设备300从下载服务器接收的下载包信息307也可以存储在存储器305中。这样的信息307可以识别数据包的部分,该数据包的部分可以在位于客户端设备上的现有内容中发现,并且也可以识别它们各自的位置。该信息307可以选择性地包括可执行代码指令,该可执行代码指令被配置以引导客户端设备300收集已存在于设备上数据包的部分。由客户端设备300接收的下载包数据308也可以存储在存储器305中。这样的所接收的数据308可以包括从下载服务器接收的数据包的剩余部分,该数据包的剩余部分之前不存在于客户端设备。在程序303的执行期间,程序代码的部分、下载信息307和/或数据308可以由多个处理器核加载到用于并行处理的处理器核的存储器或本地存储中。
客户端设备300也可以包括公知的支持功能309,诸如输入/输出(I/O)元素311、电源(P/S)313、时钟(CLK)315和缓存317之类。设备300可以选择性地包括大容量存储设备319,诸如固定磁盘驱动器、可移除磁盘驱动器、闪存设备、磁带驱动器、CD-ROM、DVD-ROM、蓝光、HD-DVD、UMD或其他光学存储驱动器。存储设备319可以被用于内容320(例如,应用、程序、音频/视频等)的临时或长期存储。注意,内容320可以包括受限制内容包322和用户内容324。如上所述,受限制内容包322被保护免受设备300的用户或第三方的修改。该受限制内容包322可以包括例如与如应用标题、游戏标题、介质内容关联的受限制代码和受限制数据,以及与设备300或其他类似配置的使用封闭平台网络的封闭平台设备关联的其他形式的受限制内容。构成受限制内容包322的受限制内容元素的位置可以以对于封闭平台设备统一的方式确定。这意味着从内容包存在于存储设备上的事实,构成存储设备319内的内容的项的每个文件的识别符和/或位置(例如,卷、扇区或地址)可以被确定或者是可以确定的。
内容320也可以包括用户内容324,该用户内容324不被保护以免受修改。换句话说,用户或第三方可以创建这样的用户内容和或修/改它。用户内容324的示例包括,但不限定于,用户配置文件、游戏存档、诸如聊天或电子邮件之类用户生成的消息、用户偏好、设备设置等。
设备300可以选择性地包括显示单元321和用户接口单元331以方便与设备300交互。显示单元321可以是能够响应于来自客户端设备300的信号而显示视觉信息的任何设备,包括CRT、LCD、等离子和OLED显示器。客户端设备300可以向显示单元321提供模拟或数字信号。举例说明,该显示单元321可以包括显示文本、数字、图形符号或图像的平板显示器或阴极射线管(CRT)。此外,显示器321可以包括产生可听见的或其他可检测的声音的一个或多个音频扬声器。为了方便生成这样的声音,客户端设备300可以进一步包括音频处理器323,该音频处理器323适配于从由处理器301、存储器305和/或存储319提供的指令和/或数据生成模拟或数字音频输出。用户接口331可以包括键盘、鼠标、操纵杆、光笔或可以被用于结合图形用户接口(GUI)的其他设备。
设备300也可已包括网络接口325以方便经由电子通讯网络329的通信。网络接口325可以被配置以在局域网和诸如Iternet之类的广域网上实现有线或无线通信。客户端设备300可以在网络329上经由一个或多个消息包327发送并接收数据和/或请求数据包。
客户端设备300包括处理器301、存储器305、支持功能309、数据存储319、用户接口331、显示器321、音频处理器323和网络接口325,该客户端设备300的组件经由一条或多条数据总线333彼此可操作地连接。这些组件可以以硬件、软件或固件,或者这些的两者或多个的一些组合来实现。
举例说明,而无通用性的损失,系统100中的下载服务器105可以被配置为如图4中所示。根据本发明的实施例,下载服务器400可以作为计算机系统或其他数字设备实现。下载服务器可以包括处理器401,其被配置以运行软件应用并选择性地运行操作系统。处理器401可以包括一个或多个处理器核。举例说明而无限定,处理器401可以是诸如单元处理器之类的并行处理器模块。
下载服务器400也可以包括存储器405,其被配置以存储由处理器401使用的应用和数据。计算机程序403可以以可以由处理器401执行的指令形式存储在存储器405中。除其他事项之外,程序403的指令可以被配置以实现数据包的高效下载的方法,例如,如关于根据图2中的下载服务器操作215描述的。具体地,下载服务器400可以例如通过程序403的恰当编程被配置,从客户端设备接收请求以下载数据包、接收在客户端设备存储上的现有内容包的清单、识别作为现有内容元素存储在客户端设备上的数据包的部分、发送到客户端设备,识别对应于数据包的部分的现有内容元素、接收数据包的剩余部分的请求以及发送数据包的剩余部分到客户端设备。
存储在客户端设备上的现有内容的清单407也可以存储在存储器405中。这样的清单407可以包括存储在客户端设备上的所有内容包的列表。该列表可以识别内容包(例如,通过标题或其他识别符),但无需包括构成包的内容元素的列表或的实际内容自身的列表。举例说明,而非限定,有多个已存储的游戏的游戏机(即,客户端设备)可以发送清单给下载服务器,该下载服务器列出了在该设备上存储的每个游戏标题和特定的版本。如果该客户端设备是封闭平台设备,则可以从内容包识别符和版本号中确定构成每个内容包的内容元素。由客户端设备做出的每个数据包请求408也可以存储在存储器405中。这样的数据包请求408可以包括各种数据包的剩余部分的列表,该数据包的剩余部分没有被包括在存储在客户端设备上的内容元素中。
下载服务器400也可以包括公知的支持功能409,诸如输入/输出(I/O)元素411、电源(P/S)413、时钟(CLK)415和缓存417之类。下载服务器400可以进一步包括存储设备419,该存储设备419为应用和数据提供非易失性存储。存储设备419可以用于数据库420的长期存诸,该数据库420被配置以向下载服务器400提供在封闭环境网络中传播的所有已授权内容(例如,原始内容、已授权的更新内容等)的目录。客户端设备的清单407和数据包请求408可以对照数据库420检查以确定所请求的数据包的哪些部分已经存储在客户端设备上以及所请求的数据包的哪些部分将被传送。
下载服务器400可以选择性地包括用户接口431以从一个或多个用户向该下载服务器400传达用户输入。举例说明,该用户接口431可以经由I/O元素411耦接到该下载服务器400。用户接口431的示例可以包括键盘、鼠标、操纵杆、光笔或可以用于结合图形用户接口(GUI)的其他设备。
下载服务器400也可以包括网络接口425以方便经由电子通讯网络429的通信。网络接口425可被配置以在局域网和诸如Internet的广域网上实现有线或无线通信。该下载服务器400可以在网络429上经由一个或多个消息包427发送和接收数据和/或请求文件。
下载服务器400的组件包括处理器401、存储器405、支持功能409、数据存储器419、用户接口431和网络接口425,该组件经由一条或多条数据总线433彼此可操作地连接。这些组件可以以硬件、软件或固件,或者这些的两个或多个的一些组合来实现。
本发明的实施例通过利用在封闭环境网络内的数据冗余和存储在客户端设备上的现有内容方便了数据包的高效下载。通过从现有的已存储的受限制内容元素中收集所请求数据包的部分,在下载服务器和客户端设备之间传输的数据包的实际大小可极大地减少。这反而导向较短的传送时间和较高效的带宽使用,而在客户端设备或下载服务器上无任何显著的额外压力。
注意,尽管从包括视频游戏平台的实现的方面来描述特定示例,但是本发明的实施例不限定于这样的实现。替代地,本发明的实施例也可以应用于诸如智能手机之类的其他封闭平台系统。
尽管上述实施例大部分涉及封闭平台系统,但是注意,本发明的实施例也可以扩展到开放平台系统。例如,如上所述,如果用户设备是开放平台系统的部分,则关于图2描述的实施例可以用文件的额外的可选的扫描和检证或数据部分来确保客户端设备择一地包含下载服务器预期的数据部分或合适的替代品。存在一些不同的开放平台系统,其可以修改以合并本发明的特征。例如,当Windows程序可以使用任意数量的安装器时,存在足够公知的子集(例如WISE安装程序),可以修改该子集以合并本发明的特征。在Linux系统上,持续跟踪打包的和已安装的文件的RPM或aptget包管理器也能被利用以使用这样的特征。此外,Macintosh系统使用系统安装器,该安装器可以在许多情况下被修改以使用本文所描述的特征合并数据包的高效下载。尽管以上是本发明的优选实施例的完整描述,仍可以使用各种替换、改进和等同物。所以,本发明的范围不应参照以上描述而确定,相反,应参照附加的权利要求连同它们的等同物的全部范围一起确定。此处描述的、无论是否是优选的任何特征,可以与此处所描述的无论是否是优选的任何其他特征组合。在下列的权利要求中,不定冠词“一个”或“一种”指一些跟随在冠词之后的或多个术语,除非另有明确说明。所附权利要求不被解释为包括手段加功能的限定,除非这样的限定在使用词语“手段用于”的给定权利要求中明确阐述。

Claims (27)

1.一种在被配置以在网络上运行的客户端设备中用于数据包的高效下载的方法,包括:
a)发送识别已存储在所述客户端设备中的现有内容包的清单到运行在所述网络上的服务器,其中该清单识别存储在所述客户端设备中的内容包,但不包括实际内容或构成该内容包的元素的列表;
b)从所述服务器接收包含识别所述数据包中对应于在所述客户端设备上存储的一个或多个现有内容元素的一个或多个部分的信息的响应;
c)从存储在所述客户端设备上的现有内容元素中收集所述数据包内的内容的所述一个或多个已识别部分;以及
d)从所述服务器请求所述数据包的剩余部分;以及
e)从所述服务器接收所述数据包的所述剩余部分。
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)从客户端设备接收对所述数据包的剩余部分的请求;
e)发送所述数据包的剩余部分到所述客户端设备。
19.权利要求18的方法,其中所述清单包括列表,该列表识别在所述客户端设备中存储的每个内容包和在所述客户端设备中存储的每个内容包的对应的版本号。
20.权利要求18的方法,其中b)包括比较在所述数据包中的内容元素的集合与从所述清单确定的现有内容元素的集合。
21.权利要求20的方法,其中b)包括从列表上的内容包识别符和一个或多个内容包的版本号中识别在所述客户端设备上作为现有内容元素存储的所述数据包的一个或多个部分。
22.权利要求20的方法,其中在c)中被发送给所述客户端设备的所述信息包括为在所述客户端设备上作为现有内容元素存储的所述数据包的一个或多个部分中的每一个指示在所述客户端设备中的位置的信息。
23.权利要求18的方法,其中发送给所述客户端设备的信息包括识别符的列表,该识别符的列表对应于在所述客户端设备上存储的一个或多个现有内容元素。
24.权利要求18的方法,其中所述客户端设备是封闭平台设备,并且所述清单识别了在所述客户端设备中存储的现有受限制内容包。
25.权利要求18的方法,其中所述客户端设备是开放平台设备,所述方法进一步包括发送验证信息到所述客户端,所述客户端可以使用所述验证信息验证所述已识别部分与在所述客户端设备中存储的对应的现有内容元素匹配。
26.权利要求25的方法,其中c)包括识别一个或多个不匹配的已识别部分的一个或多个替代品,所述不匹配的已识别部分不对应于在所述设备中存储的内容元素,并通知所述客户端设备所述替代品。
27.一种被配置以在网络上运行的服务器,包括:
a)接收识别存储在客户端设备中的现有内容包的清单的部件,其中该清单识别存储在所述客户端设备中的内容包,但不包括实际内容或构成该内容包的元素的列表;
b)从所述清单识别数据包中对应于存储在所述客户端设备上的一个或多个现有内容元素的一个或多个部分的部件;
c)发送识别所述一个或多个现有内容元素的信息给所述客户端设备的部件;
d)从客户端设备接收对所述数据包的剩余部分的请求的部件;以及
e)发送所述数据包的剩余部分到所述客户端设备的部件。
CN201210346540.6A 2011-07-25 2012-07-25 用于数据包的高效下载的方法及系统 Active CN102904878B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510824575.XA CN105516079B (zh) 2011-07-25 2012-07-25 用于数据包的高效下载的方法、客户端设备和服务器

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

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201510824575.XA Division CN105516079B (zh) 2011-07-25 2012-07-25 用于数据包的高效下载的方法、客户端设备和服务器

Publications (2)

Publication Number Publication Date
CN102904878A CN102904878A (zh) 2013-01-30
CN102904878B true CN102904878B (zh) 2015-12-16

Family

ID=46754865

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201210346540.6A Active CN102904878B (zh) 2011-07-25 2012-07-25 用于数据包的高效下载的方法及系统
CN201510824575.XA Active CN105516079B (zh) 2011-07-25 2012-07-25 用于数据包的高效下载的方法、客户端设备和服务器

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201510824575.XA Active CN105516079B (zh) 2011-07-25 2012-07-25 用于数据包的高效下载的方法、客户端设备和服务器

Country Status (7)

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

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 Телефонактиеболагет Лм Эрикссон (Пабл) Контейнеры пользовательского оборудования и сетевые срезы
CN108027741B (zh) 2016-04-27 2020-06-09 华为技术有限公司 基于补丁升级的文件处理方法、装置、终端以及存储介质
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
US6493871B1 (en) * 1999-09-16 2002-12-10 Microsoft Corporation Method and system for downloading updates for software installation
CN101699399A (zh) * 2009-11-03 2010-04-28 中兴通讯股份有限公司 一种软件更新的系统和方法
EP2270656A1 (en) * 2009-06-24 2011-01-05 Uniloc Usa, Inc. Remote update of computers based on physical device recognition

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
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
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 주식회사 케이티프리텔 무선 네트워크를 통한 대용량 컨텐츠 이어받기 서비스 제공방법 및 이를 구현하기 위한 프로그램이 기록된 기록매체
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 에스케이플래닛 주식회사 데이터 세그먼트 정보를 이용한 컨텐츠 전송시스템 및 방법, 그 프록시서버

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6493871B1 (en) * 1999-09-16 2002-12-10 Microsoft Corporation Method and system for downloading updates for software installation
EP2270656A1 (en) * 2009-06-24 2011-01-05 Uniloc Usa, Inc. Remote update of computers based on physical device recognition
CN101699399A (zh) * 2009-11-03 2010-04-28 中兴通讯股份有限公司 一种软件更新的系统和方法

Also Published As

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

Similar Documents

Publication Publication Date Title
CN102904878B (zh) 用于数据包的高效下载的方法及系统
CN109117169A (zh) 用于修复内核漏洞的方法和装置
CN106843978B (zh) 一种sdk接入方法及系统
EP2876552A2 (en) Software installation package generation and software installation method, device, and system
US20120226823A1 (en) Document distribution system and method
US9535677B2 (en) Software discovery in an environment with heterogeneous machine groups
CN101252575B (zh) 在零售商店环境中管理引导镜像的系统和方法
CA2448004A1 (en) Method and apparatus for gaming device software configuration
CN107506221A (zh) 应用程序升级方法、装置及设备
CN109492013A (zh) 应用于数据库集群的数据处理方法、装置和系统
CN102984277B (zh) 防止恶意连接的系统和方法
CN103020235A (zh) 自治网络流传输
CN103166911A (zh) 一种版本管理服务器权限管理方法和设备
CN103595808A (zh) 一种文件更新信息推送方法及装置
JP2012015646A (ja) 放送局システム、広告管理システム、広告管理方法、及びプログラム
CN101127578A (zh) 一种处理海量数据的方法及系统
CN110046000A (zh) 小程序运行方法和装置
CN102077186A (zh) 传送存储盘映像的方法和系统
CN112702373B (zh) 微服务升级文件发送方法、接收方法、设备及存储介质
US7716658B2 (en) Method and apparatus for optimizing patching of objects containing references
CN111090530B (zh) 一种分布式跨进程间通信总线系统
CN110377328A (zh) 一种数据获取方法、装置、设备以及存储介质
CN110866380A (zh) 一种填写信息字段内容的方法、终端
CN109271224A (zh) 用于确定位置的方法和设备
CN106254440A (zh) 一种ap的升级方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant