CN1906576B - 分布软件应用的方法与设备 - Google Patents

分布软件应用的方法与设备 Download PDF

Info

Publication number
CN1906576B
CN1906576B CN2005800019469A CN200580001946A CN1906576B CN 1906576 B CN1906576 B CN 1906576B CN 2005800019469 A CN2005800019469 A CN 2005800019469A CN 200580001946 A CN200580001946 A CN 200580001946A CN 1906576 B CN1906576 B CN 1906576B
Authority
CN
China
Prior art keywords
software program
version
treatment facility
identification information
program
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.)
Expired - Fee Related
Application number
CN2005800019469A
Other languages
English (en)
Other versions
CN1906576A (zh
Inventor
笠原荣二
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 Inc
Original Assignee
Sony Computer Entertainment Inc
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 Inc filed Critical Sony Computer Entertainment Inc
Publication of CN1906576A publication Critical patent/CN1906576A/zh
Application granted granted Critical
Publication of CN1906576B publication Critical patent/CN1906576B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Abstract

一种使得能够执行软件程序的方法与设备,准许:获取指示软件程序的版本的标识信息;判断将在其上执行软件程序的处理器的处理能力是否与软件程序的版本的适当执行不兼容;以及至少部分地修改软件程序的版本,以得到将在所述处理器上适当执行的软件程序的更适当的版本。

Description

分布软件应用的方法与设备
技术领域
本发明涉及一种方法与设备,所述方法与设备用于修改软件程序的版本,以在其处理能力远优于开发软件程序时所考虑的处理能力的处理器上执行该软件程序时,改进所得到的结果。
背景技术
零售与商务用软件程序的设计的市场与销售,是经济中不断演化和不断扩展的部分。实际上,软件开发商持续寻求满足消费者对新的、改进的软件应用的看上去无法满足的胃口。最显著的莫过于计算机图形软件领域,诸如对视频游戏、电影动画以及特殊效果等。实际上,实时、多媒体应用正变得越来越为重要,特别是在视频游戏市场中。这些应用要求极快的处理速度,例如每秒数千兆比特的数据。
更复杂和更尖端的软件程序的这一演化,已成为在其上执行这样的软件程序的硬件的处理能力的相应演化。实际上,自从1971年推出第一个微处理器Intel(英特尔)的4004以来,微处理器的处理能力已令人难以置信地提高,Intel的4004是仅能够进行加、减的4比特的处理器。1979年Intel推出了其8080微处理器,并且将其并入IBM的个人计算机。Intel 8080微处理器使用了大约29,000个晶体管,时钟速度为5MHz,其每秒可以执行33万条指令,即0.33每秒百万指令(MIPS)。从1982年到1989年,Intel推出了80286、80386以及80486微处理器。Intel 80486微处理器使用了120万个晶体管,时钟速度为25MHz,并且可执行20MIPS。从1993年至2000年,Intel推出了Pentium(奔腾)系列的微处理器,其中Pentium 4微处理器使用了4200万个晶体管,时钟速度为1.5GHz,其可执行大约17,000MIPS。这些数据表明在其上执行软件程序的硬件的速度和能力正在不断提高(注意:Intel Pentium4的运行速度比Intel 8088微处理器大约快5,000倍)。如本说明书中将进一步加以论述的,当前正在开发更新、功能更强大的微处理器,它们可以达到大约4GHz的时钟频率以及更高的MIPS水平。
尽管单个的处理单元能够进行快速的处理,但它们通常不能够与多处理器体系结构的处理速度相匹配。实际上,在多处理器系统中,为了达到所希望的处理结果,多个处理器可以并行(或至少协同)操作。可以利用多处理技术的计算机和计算设备的类型相当广泛。除了个人计算机(PC)和服务器外,这些计算设备还包括蜂窝电话、移动计算机、个人数字助理(PDA)、机顶盒、数字电视以及许多其它设备。
现在参照图1,图1说明了软件程序的演化以及用于执行软件程序的硬件的相应的演化。在某一时间点,硬件系统102的功能不如诸如硬件系统106或硬件系统112的其它硬件系统强大。这些硬件系统的功能甚至不如硬件系统118强大,硬件系统118为本发明的主体。而且,软件程序104(将其说明为存储在光盘上)被设计为在当时存在的硬件系统102上执行。例如,可能基于这样的理解编写软件程序104:认为将在具有诸如Intel 80286微处理器所提供的处理特性的处理单元上执行软件程序104。在软件程序104之后所设计和购买的软件程序110被设计为在具有诸如Intel 80486的微处理器所提供的处理特性的处理单元上执行.或者,可以把软件程序110设计和开发为在具有Sony(索尼)的PlayStation(游戏站)游戏控制台的处理能力的处理单元上执行,Sony的PlayStation游戏控制台是1994年推出的.另外,软件程序116可以被设计和开发为在具有Intel的Pentium 3微处理器所提供的处理能力的处理单元上执行。或者,软件程序116可以设计和开发为在Sony的PlayStation 2控制台上执行,PlayStation 2控制台特别被设计为执行视频游戏软件程序。
传统的观念是,任何所开发的在具有某种处理特性的给定处理单元上执行的软件程序,都将在另一个具有更强处理特性的处理单元上执行。尽管在许多情况下这一观念可能是正确的,但情况并非总是如此,特别是当软件程序被设计为在显示器上向用户提供多媒体体验时,诸如,在视频游戏软件程序的情况下。实际上,在具有实质更高处理能力的处理单元上运行针对适度高性能的处理单元设计的软件程序时,可能会导致运动图像的对象过快地移动、运动图像音频与视频分量之间的同步性的损害等。总之,当不保证程序线程(并行处理单元)之间的相互独立性时,这些问题便会表现出来。
除非已把这些特性设计在给定的处理单元中,而且该处理单元准许执行专门针对其设计的软件程序、以及设计为运行于性能较低的处理单元上的软件程序,否则用户将必须维持两个个别的处理单元,以支持他或她的全部软件程序。这一情况的例外是Sony的PlayStation控制台和PlayStation 2控制台。实际上,Sony的PlayStation 2控制台使用了多于一个的微处理器,以应对专门为PlayStation控制台所编写的软件程序和专门为PlayStation 2控制台所编写的软件程序。更具体地讲,为执行PlayStation视频游戏软件程序,PlayStation2控制台并入了存在于PlayStation控制台中的微处理器。Sony PlayStation 2控制台中的另一微处理器用于执行专门针对PlayStation 2控制台设计的视频游戏软件程序。
尽管今后对具有不同处理能力的多微处理器的处理单元的设计,可能会解决与支持全部软件程序相关的某些问题,但还是希望能够实现更好的方案,最好是多功能、有效率并且成效比明显提高的方案。
发明内容
根据本发明的一或多个方面,一种使得能够执行软件程序的方法,包括:获取指示软件程序的版本的标识信息;判断将在其上执行软件程序的至少一个处理器的处理能力是否与软件程序的所述版本的适当执行不兼容;以及至少部分地修改软件程序的版本,以得到将在所述至少一个处理器上适当执行的软件程序的更适当版本。
可以从存储媒体中获取标识信息,所述存储媒体可以是光盘媒体、磁媒体以及电子媒体的至少一个。标识信息可以是软件程序的一部分,并且可以从软件程序中获取。
优选的是,该方法还包括使用标识信息判断处理单元的处理能力。这一判断可能需要判断在执行软件程序的过程中是否至少一个处理器能够使用来自一或多个外部处理器的处理资源。或者,或另外,对至少一个处理器的处理能力的判断可以包括获取指示至少一个处理器的处理能力的处理标识符。
优选的是,该方法还包括:使用软件程序的标识信息和用于访问表的至少一个处理器的处理标识符,所述表与下列相关联:(i)多个软件程序的相应的标识信息,(ii)处理标识符,以及(iii)可用于至少部分地修改软件程序的版本以得到将在所述至少一个处理器上适当执行的软件程序的更适当版本的软件程序和/或数据模块.接下来,可以把一或多个软件程序和/或数据模块用于至少部分地修改软件程序的版本,以得到软件程序的适当的版本.
可以把所述的表本地存储在处理单元中,远程存储在管理实体中,和/或存储在由管理实体访问的更远的位置。当把所述的表远离处理单元存储时,该方法还可以包括:使用通信信道,建立处理单元和管理实体之间的链接;并且通过通信信道,把标识信息和处理标识符从至少一个处理器传输至管理实体。
优选的是,管理实体使用标识信息和处理标识符访问所述的表,以获取一或多个相关联的软件程序和/或数据模块。接下来,该方法可以包括:通过通信信道,在处理单元,从管理实体接收一或多个相关联的软件程序和/或数据模块;以及使用一或多个相关联的软件程序和/或数据模块,修改软件程序的版本,以得到软件程序的适当的版本。
修改软件程序的版本,以得到软件程序的适当版本可以包括:盖写存储媒体中的软件程序的版本,以得到存储媒体中的软件程序的适当版本。
根据本发明的一或多个其它方面,一种处理设备,包括:至少一个处理器,诸如包括下列部件的至少一个处理单元:多个子处理单元,每个子处理单元具有用于执行处理器任务的本地存储器;主处理单元,可操作以在子处理单元上执行至少某些管理处理任务;主存储器,可由主处理单元和子处理单元加以存取;以及数据总线,其可操作地耦接至主处理单元、子处理单元以及主存储器。
优选的是,至少一个处理器,例如上述主处理单元和子处理单元的至少之一,可操作以:(i)获取指示软件程序的版本的标识信息,(ii)判断将在其上执行软件程序的处理器的处理能力是否与软件程序的版本的适当执行不兼容(例如太高),以及(iii)至少部分地修改软件程序的版本,以得到将适当执行的软件程序的进一步的版本。
优选的是,至少一个处理器,例如主处理单元和/或子处理单元的至少之一,可操作以使用标识信息,判断处理单元的处理能力。这一判断可以包括判断在执行软件程序的过程中所述至少一个处理器是否能够使用来自一或多个外部处理单元的处理资源。或者,或另外,对处理能力的判断可以包括获取指示处理能力的处理标识符。
所述至少一个处理器,例如上述主处理单元和子处理单元的至少一个,可操作以:使用软件程序的标识信息和用于访问表的处理单元的处理标识符,所述的表与下列相关联:(i)多个软件程序的相应的标识信息,(ii)处理标识符,以及(iii)可用于至少部分地修改软件程序的版本,以得到将在其上适当执行的软件程序的适当版本的软件程序和/或数据模块。所述至少一个主处理单元和/或子处理单元也可操作以:使用一或多个软件程序和/或数据模块,以至少部分地修改软件程序的版本,以得到软件程序的适当版本。
可以把所述的表本地存储在处理单元中和/或远程地存储在管理实体中。当远程地加以存储时,处理单元可操作以使用通信信道,建立处理单元和管理实体之间的链接;并且通过通信信道,把标识信息和处理标识符传输至管理实体。
管理实体可以使用标识信息和处理标识符访问所述的表,以获取一或多个相关联的软件程序和数据模块.所述至少一个处理器可进一步操作,以便:通过通信信道,从管理实体接收一或多个相关联的软件程序和/或数据模块;以及使用一或多个相关联的软件程序和/或数据模块,以修改软件程序的版本,来得到软件程序的适当版本.
修改软件程序的版本,以得到软件程序的适当版本的动作可以包括:盖写存储媒体中的软件程序的版本,以得到存储媒体中的软件程序的适当版本。
根据本发明的一或多个其它的方面,向记录媒体记录程序,该程序用于使用以上所描述的方法来操作处理单元。
根据本发明的上述方面,开发了一种新的计算机体系结构,该计算机体系结构超出当前微处理器的处理能力。根据这一新的计算机体系结构,通过公共计算模块(或信元(cell))构造多处理器计算机系统的所有处理器。这一公共计算模块具有一致的结构,优选的是使用相同的指令集体系结构。可以使用计算机处理器,由一或多个客户机、服务器、PC、移动计算机、游戏机、PDA、机顶盒、器具、数字电视以及其它的设备来形成多处理器计算机系统。
如果希望,多个计算机系统可以是网络的成员。一致的模块化结构使多处理器计算机系统能够有效、高速地处理应用和数据,而且如果使用网络,则能够使应用和数据在网络上快速传输。这一结构还简化了各种大小和处理能力的网络成员的建造、以及由这些成员所处理的应用的准备。
基本处理模块是处理器元件(PE)。优选的是,PE包括通过公共内部地址和数据总线耦接的处理单元(PU)、直接存储访问控制器(DMAC)以及多个子处理单元(SPU),诸如4个SPU。PU和SPU与具有交叉开关(cross-bar)结构的共享的动态随机存取存储器(DRAM)交互。PU调度并协调SPU对数据和应用的处理。SPU按并行和独立的方式执行这一处理。DMAC控制PU和SPU对存储在共享DRAM中的数据和应用的存取。
根据这一模块化结构,具体计算机系统所使用的PE的数目基于该系统所要求的处理能力。例如,服务器可以使用4个PE,工作站可以使用2个PE,PDA可以使用1个PE。分配至处理具体软件信元的PE的数目,依赖于信元内程序和数据的复杂度与大小。
可以把多个PE与共享DRAM相关联,可以把DRAM分隔成多个段(section),并且把这些段中的每个段分隔成多个存储体(bank)。可以由体控制器控制DRAM的每个段,PE的每个DMAC可以存取每个体控制器。在这一配置中,每个PE的DMAC可以存取共享DRAM的任何部分。
这一新的计算机体系结构还使用了一种新的程序设计模型,这种新的程序设计模型提供了通过网络对数据和应用的传输、以及在网络成员之间对数据和应用的处理。这一程序设计模型使用了通过网络传输的、由任意网络成员处理的软件信元。每个软件信元具有相同的结构,并且可以既包含应用也包含数据。由于该模块化计算机体系结构所提供的高速的处理和传输速度,可以对这些信元进行快速处理。优选的是,应用的代码基于相同的公共指令集和ISA。优选的是,每个软件信元包含全局标识(全局ID)和描述信元的处理所需的计算资源量的信息。由于所有的计算资源具有相同的基本结构,并且使用了相同的ISA,所以可以把执行这一处理的具体资源定位在网络上的任何位置,并且动态地加以分配。
根据此处结合附图所进行的描述,这一技术领域中的技术人员将会明显意识到本发明的其它方面、特性以及优点。
附图说明
为了描述,优选的是介绍图中所示出的表格,然而,应该认识到,本发明并不局限于所示出的精确设置与机制。
图1图示了软件程序和软件程序运行在其上的处理系统的设计方面的发展过程,包括根据本发明的处理或多处理设置;
图2A图示了根据本发明的实施例的处理器元件(PE)的示例性结构;
图2B图示了根据本发明的各个方面的PE的多处理系统的示例性结构;
图3图示了根据本发明的示例性子处理单元(SPU)的结构;
图4是适合实现根据本发明的一或多个方面的多处理器系统的可选配置;
图5是流程图,图示了根据本发明的一或多个方面,为了变更其处理能力,可至少部分地由处理系统执行的过程步骤;
图6是根据本发明的一或多个方面的整体计算机网络的方框图;
图7是流程图,图示了与图5的过程步骤相关的进一步的过程步骤;
图8是根据本发明的一或多个方面由处理元件所使用的变更表;
图9是根据本发明的一或多个方面的能够进行网络通信并且可操作以变更其处理能力的处理系统的方框图;
图10是流程图,图示与图7的过程步骤相关的进一步的过程步骤;
图11是把软件程序、软件程序和/或数据模块分布至一或多个用户的系统的方框图;
图12是概念性方框图和流程图,图示了由图11的系统的某些部分加以执行的某些过程步骤;
图13是进一步的概念性方框图和流程图,图示了由图11的系统的某些部分加以执行的进一步的步骤;
图14是流程图,示出了按图13所示加以执行的某些过程步骤;
图15是进一步的流程图,图示了例如由图11的管理服务器601所执行的某些过程步骤;
图16是方框图,图示了某些数据库内容;
图17是进一步的概念方框图和流程图,图示了由图11的系统的部分所执行的某些过程步骤;
图18是流程图,图示了根据图17所执行的进一步的过程步骤;
图19是进一步的概念方框图和流程图,图示了例如由图11的客户机终端设备604所执行的一或多个进一步的过程步骤;
图20是流程图,图示了根据图19所执行的进一步的过程步骤;
图21是概念方框图和流程图,图示了进一步的过程步骤;
图22是流程图,图示了与图21的过程步骤相关的进一步的细节;
图23是概念方框图和流程图,图示了可加以执行的替代过程步骤;
图24是流程图,图示了与图23的过程步骤相关的进一步的细节;
图25是概念方框图和流程图,图示了根据图23的替代概念的进一步的过程步骤;
图26是流程图,图示了与图25的过程步骤相关的进一步的细节;
图27是把软件程序、软件程序和/或数据模块分布至一或多个用户的进一步的系统的方框图;
图28是概念性方框图和流程图,图示了由图27的系统的某些部分加以执行的某些过程步骤;
图29是进一步的概念性方框图和流程图,图示了由图27的系统的某些部分加以执行的进一步的步骤;
图30是流程图,图示了如图29所示加以执行的某些过程步骤;
图31是概念性方框图和流程图,图示了例如由图27的管理服务器和客户机终端所执行的某些过程步骤;
图32是流程图,图示了根据图31的设备所执行的进一步的过程步骤;
图33是方框图,图示了某些数据库内容;
图34是进一步的概念方框图和流程图,图示了由图27的系统的部分所执行的某些过程步骤;
图35是流程图,图示了根据图34的设备所执行的进一步的过程步骤;
图36是方框图,图示了某数据库内容;
图37是流程图,图示了来自租用程序内容的分布器的程序内容的安全分布过程的例子步骤;
图38是流程图,图示了图37的过程的进一步的步骤;
图39是流程图,图示了图38的过程的进一步的步骤;以及
图40是流程图,图示了图39的过程的进一步的步骤。
具体实施方式
参照这些图,在各图中,以相同的数字表示相同的元件,图1中描述了根据本发明一或多个方面的处理设备118。处理设备118可用于执行利用诸如微处理系统的软件程序,以下将对其详细地加以论述。使用显示器120和音频能力(未示出),以使用户能够有多媒体体验。
可以以多种方式,例如通过把含有软件程序的存储媒体插入处理设备118中,并把软件程序读入随机存取存储器(RAM),来加载软件程序。存储媒体可以为光媒体、磁媒体、电子媒体等。根据本发明的某些方面,可以通过经由诸如因特网124的网络下载软件程序的方式,把软件程序加载至处理设备118。
已发现:利用功能十分强大的多处理系统来实现根据本发明的处理设备118,可以实现很好的处理特性。优选的是,处理设备118可用于判断其处理能力是否与适当地执行软件程序的版本不兼容。这样的不兼容性可能包括处理设备118的处理能力过高。优选的是,处理设备118还可用于至少部分地修改软件程序的版本,以获取当判断为肯定时将适当执行的软件程序的适当版本。以下,将论述如何能够实现这一功能及其众多修改的各种细节和例子。关于这一点,现在将对处理设备118的内部结构的某些方面的例子进行详细的论述。
现在参照图2A,图2A为基本处理模块或处理器元件(PE)200的例子的方框图.如该图中所示,PE 200包括I/O接口202、处理单元(PU)204、直接存储访问控制器(DMAC)206、以及多个SPU 208,即SPU 1(208A)、SPU 2(208B)、SPU 3(208C)以及SPU 4(208D)。本地(或内部)PE总线212在PU 204、SPU 208、DMAC 206以及存储器接口210之间传输数据和应用。例如,本地PE总线212可以具有传统的体系结构,也可以作为包交换网络加以实现。作为包交换网络加以实现,尽管需要更多的硬件,但增加了可用的带宽。
可以使用各种用于实现数字逻辑的方法构造PE 200。然而,优选的是,把PE 200构建为使用硅衬底上的互补金属氧化物半导体(CMOS)的单个集成电路芯片。衬底的替代材料包括砷化镓、镓铝砷以及使用种类广泛的掺杂物的所谓III-B化合物。也可以使用超导材料来把PE 200实现为例如高速单通量量子(RSFQ)逻辑。
通过高带宽存储器连接216把PE 200与动态随机存取存储器(DRAM)214紧密地相关联。DRAM 214用作PE 200的主(或共享)存储器。尽管优选的是DRAM 214为动态随机存取存储器,但也可以使用例如静态随机存取存储器(SRAM)、磁随机存取存储器(MRAM)、光存储器、或全息存储器等其它装置来实现DRAM 214。DRAM 214或它的其它实现可以并入与PE200相同的集成电路芯片中,或者,替代地,也可以提供为独立的、外部的存储器。当把DRAM214并入与PE 200相同的芯片中时,DRAM 214可以放置在芯片上独立的位置,也可以与包含该PE的一或多个处理器集成在一起。DMAC 206和存储器接口210便利于DRAM 214与PE 200的SPU 208和PU 204之间的数据的传送。注意,DMAC 206和/或存储器接口210可以相对于SPU 208和PU 204集成地或独立地加以放置。实际上,取代所示出的独立配置,也可以把DMAC 206功能和/或存储器接口210功能与一或多个(最好为全部)SPU 208和PU 204相集成。
例如,PU 204可以为能够单独处理数据和应用的标准处理器。在操作过程中,PU 204调度和协调由SPU 208进行的数据和应用的处理。在替代的配置中,PE 200可以包括多个PU 204。每个PU 204可以控制一个、全部SPU 208或SPU 208的某指定的组。优选的是,SPU 208为单个指令、多数据(SIMD)处理器。在PU 204的控制下,SPU 208以并行和独立的方式执行对这些数据和应用的处理。DMAC 206控制PU 204和SPU对存储在共享DRAM 214中的数据和应用的存取。注意,可以通过一或多个发挥主处理单元作用的子处理单元208实现PU 204。
可以把诸如PE 200的多个PE结合在一起或者封装在一起,以提供增强的处理能力。可以把这一配置称为宽带引擎(BE)。
图2B图示了由多个可以根据本发明的方面操作的PE 250(PE 1、PE 2、PE 3以及PE 4)构成的处理体系结构的例子。优选的是,PE 250处于单个芯片上。PE 250可以包括,也可以不包括子系统,诸如以上针对图2A的PE 200所论述的PU和/或SPU。取决于所要求的处理的类型,PE 250可以为相同的类型,也可以为不同的类型。例如,一或多个PE 250可以为一般微处理器、数字信号处理器、图形处理器、微处理器等。
优选的是,把PE 250与共享总线252相连。可以通过存储器总线254把存储控制器或DMAC 256连接至共享总线252。DMAC 256连接至存储器258,存储器258可以为以上关于存储器230所论述的类型之一.也可以通过I/O总线260把I/O控制器262连接至共享总线252.I/O控制器262可以连接至一或多个I/O设备264,诸如帧缓冲器、盘驱动器等.应该认识到,以上所描述的处理模块和体系结构仅为示例性的,也可以使用其它结构来实现本发明的各个方面,所述结构包括,但不局限于2003年2月25日发布的、美国专利号为6,526,491、发明名称为“Memory Protection Syatem and Methodfor Computer Architecture for Broadband Networks(宽带网络计算机体系结构的存储器保护系统与方法)”的美国专利和2001年3月22日提交的、美国申请号为09/816,004、发明名称为“Computer Architecture and Software Cellsfor Broadband Networks(宽带网络的计算机体系结构与软件信元)”的美国专利申请中所公开类型的多处理器系统,将这两个专利文献并入此处作为参考。
图3图示了SPU 208的结构与功能的例子。SPU 208包括本地存储器270、寄存器272、一或多个浮点单元274以及一或多个整数单元276。然而,再次依据所要求的处理能力,可以使用数目或多或少的浮点单元274和整数单元276。在优选实施例中,本地存储器270包括128K字节的存储量,而寄存器272的容量为128×128比特。优选的是,浮点单元274以每秒320亿浮点运算(32GFLOPS)的速度操作,而且,整数单元276以每秒320亿运算(32GOPS)的速度操作。
在优选实施例中,本地存储器270包括256K字节的存储量,而寄存器272的容量为128×128比特。应该加以注意的是,不使用共享存储器214来执行处理器任务。而是,任务拷贝到给定的子处理单元208的本地存储器270中,并且本地地加以执行。
本地存储器270可以是,也可以不是高速缓冲存储器。优选的是,把本地存储器270构造为静态随机存取存储器(SRAM)。PU 204可以要求高速缓冲存储器连贯性,以支持PU 204所启动的直接存储器存取。然而,对于SPU208所启动的直接存储器存取、或者对于从外部设备的存取和对外部设备的存取,均不要求高速缓冲存储器连贯性的支持。
SPU 208还包括用于从SPU 208传输应用和数据以及向SPU 208传输应用和数据的总线289。子处理单元208还包括从子处理单元208传输应用和数据以及向子处理单元208传输应用和数据的总线接口(I/F)278。在优选实施例中,总线I/F 278耦接至DMAC(未示出),该DMAC集成地放置在子处理单元208中。注意,可以把DMAC 206外部地放置(如图3中所示)。总线对(pair)与总线I/F 278和本地存储器270之间集成放置的DMAC互联。优选的是,该总线对为256比特宽。在优选实施例中,总线289为1024比特宽。
SPU 208还包括内部总线281、283以及285。在优选实施例中,总线281具有256比特的宽度,并且提供本地存储器270和寄存器272之间的通信。总线283和285分别提供在寄存器272和浮点单元274之间以及在寄存器272和整数单元276之间的通信。在优选实施例中,从寄存器272到浮点或整数单元的总线283和285的宽度为384个比特,从浮点单元274或整数单元276到寄存器272的总线283和285的宽度为128个比特。这些从寄存器272到浮点单元274或整数单元276的总线的宽度大于从这些单元到寄存器272的宽度,因而容纳了处理期间来自寄存器272的较大的数据流。对于每个计算,最多需要3个字。然而,每一计算的结果通常仅是1个字。
应该加以注意的是,尽管优选的是使用图2的PE 200实现本发明,但也可以使用替代的单个处理器或多处理器系统.例如,可以使用图4的多处理器系统300来实现本发明的一或多个方面.多处理器系统300包括通过总线308耦接至存储器接口304的多个处理器302(可以使用任何数目).存储器接口304通过另一总线310与诸如DRAM的共享存储器306通信.如果希望的话,可把存储器接口304在处理器302之间分布,并且还可以与DMAC结合加以运作.可以利用与图3的结构相同或相类似的结构、或任何其它已知或今后所开发的技术,来实现处理器302.
现在参照图5,图5是描述了过程步骤的流程图,该过程步骤使用例如PE 200(图2),可以至少部分地由处理设备118执行,以根据本发明的一或多个方面,获取软件程序的修改版本。应该认识到,可以通过与PE 200集成的、或PE 200外部的软件、硬件或者它们的组合,实现图5中所图示的某些或全部过程步骤(以及随后的过程步骤)。
例如,在动作400,把软件程序从存储媒体读至处理设备118(可以是软件播放器控制台)的随机存取存储器(RAM)中。在这一情况下,PE 200是能够从诸如光存储媒体122(图1)、磁存储媒体、或者电子存储媒体的存储媒体中读取软件程序的整个软件播放器控制台的一部分。例如,当存储媒体是光存储媒体时,存储媒体可以是CD、DVD或蓝光盘,并且可以被配置为“只读”、“可写”或“可重写”设备。或者,即除了这些能力之外,处理设备118还可用于通过诸过因特网124的网络,下载软件程序。
再次转向图5,在动作402,处理设备118获取指示软件程序的版本的标识信息。当从存储媒体读取软件程序时,标识信息可以是位于光存储媒体122上的程序ID。或者,软件程序可以是文件头的一部分,也可以包含在同样位于光存储媒体122上的软件程序表中。在许多情况下,用户把软件程序从光存储媒体122拷贝至包含在处理设备118中的另一存储媒体,诸如硬盘驱动器、电子存储媒体等。在这样的情况下,获取软件程序ID的步骤可以取代从外部存储媒体获取软件程序ID,而是从处理设备118中的内部存储媒体提取该ID。
当例如经由因特网124下载软件程序时,标识信息可以为程序ID、用户ID等。优选的是,标识信息包含在所下载的软件程序中,但,或者也可以存储在处理设备118中,或者由用户输入处理设备或另一设备中。
还应该注意,当把软件程序存储在诸如硬盘的处理设备118的内部存储媒体上时,不要求步骤400实施本发明,尽管很可能在步骤402之前执行该步骤。另外,也可以在步骤400之前,例如当在下载或读取软件程序之前对用户进行验证时,执行步骤402。
在动作404,判断是否因处理设备118的处理能力实质超过了开发软件程序时所考虑的处理能力,而造成处理设备118的处理能力不兼容。更具体地讲,如果处理设备118的处理能力远超过开发软件程序时软件设计者所考虑的能力,以致运行处理设备118上的软件程序将得到所不希望的结果,则可能需要处理设备118执行特别的过程。在这一点,优选的是,处理设备118利用软件ID或其它标识信息,以判断软件程序的版本,和/或以获取对适当运行软件程序所需的处理能力的指示。于是,处理设备118可以把运行软件程序所需的处理能力与处理设备118的处理能力进行比较。
过去,可能远超过软件开发商所考虑的处理能力的处理设备118的处理能力的例子是:处理器利用时钟频率来处理数据和应用。例如,给定的SPU 208(图2)通常可以按大约4GHz的时钟频率操作,其可能实质高于传统的处理系统。这可能产生下列重大影响:在给定时间单位内执行的浮点运算数将会减少,在给定时间单位内执行的整数计算数将会减少,在给定时间单位内执行的指令数将会减少,等等。而且,在处理器元件200中执行许多管理功能的PU 204,为执行其功能,也依赖于时钟频率。另外,总线212可能也要根据时钟频率操作,其可以享有比传统系统实质更快的操作。
可能远远超过标准处理系统的其它方面与参数的处理设备118的其它方面与参数,可能包括本地存储器250和/或共享存储器214的存储器映射、总线212的总线利用率(例如由PU 204利用的)、总线212的带宽(例如128比特、64比特、32比特等)。处理设备118的其它参数可能包括:本地存储器250和/或共享存储器214的高速缓冲存储器的大小、它们的高速缓冲存储器的组成;处理设备118的PU 204的一或多个SPU 208的指令延迟、它们的指令吞吐量;本地存储器250和/或共享存储器214的存储器延迟,以及它们的存储吞吐量。
再者,处理设备118的字节存储次序(endian)可以不是最佳的,例如,小字节存储次序(最低有效字节位于串的结尾处)较之大字节存储次序(最高有效字节位于串的结尾处)。可能不是最佳的另一个参数是指令类型,例如MIPS较之powerPC。
如果处理设备118的处理能力低于运行软件程序所需的处理能力达导致不希望的结果的程度,则动作404处的判断结果可以为否定的,过程流可以前进到动作406。在动作406,处理设备118可以在不采取任何特别步骤以应对与处理能力的任何失配的情况下,执行软件程序。执行软件程序后,处理流可以终止。
然而,如果处理设备118的处理能力远在运行软件程序所需的处理能力之上,则动作404处的判断结果可以为肯定的,从而过程可以转向节点A(图7)。注意,对处理设备118处理能力的判断,可能需要考虑可用于处理设备118的PE 200的数目。实际上,可以把一或多个PE 200包含在处理设备118中,同时可以把一或多个其它处理器元件定位在远离处理设备118的位置。在这一点,参照图6,图6是根据本发明的一或多个方面的整个计算机网络的方框图。此处,可以把PE 200和/或宽带引擎(由多个PE构成)用于实现计算机系统500的整个分布式体系结构。系统500包括可以连接多个计算机和/或计算设备的网络504。网络504可以为局域网(LAN)、诸如因特网的全球网、或者任何其它计算机网络。连接至网络504的计算机和计算设备(网络的“成员”)包括例如客户机计算机506、服务器计算机508、个人数字助理(PDA)510、数字电视(DTV)512以及其它有线或无线计算机和计算设备。优选的是,网络504的成员所使用的处理器由PE 200或其它合适的多处理器系统构成。
由于与客户机506相比,系统500的服务器508执行对数据和应用的更多的处理,因此服务器508比客户机506包含更多的计算模块(例如,PE 200)。另一方面,在本例子中,PDA 510执行最小量的处理。因此,PDA 510包含最小数目的PE 200,例如单个的PE 200。DTV 512执行处理的水平实质上在客户机506和服务器508的处理水平之间。因此,DTV 512包括的处理器元件数目在客户机506和服务器508的处理器元件数目之间。
因此,应该加以注意的是,在动作404处(图5)执行的处理设备118的处理能力的判断、以及对是否调整其处理能力的判断,可能涉及对诸如处理设备118中或处理设备118外部的PE 200的数目的判断。
在返回到对图5中所图示的处理步骤的描述之前,将给出对图6的分布式系统500的更进一步的描述.系统500的同构(homogenous)配置有助于提高适应性、处理速度、以及处理效率.由于系统500的每一成员均使用一或多个(或某一部分)相同的计算模块来进行处理,所述计算模块例如处理器元件200,所以执行数据和/或应用的处理的具体计算机或计算设备并不重要,因为可以在网络的成员之间共享这样的数据和应用的处理.通过唯一地标识包括系统500所处理的数据和应用的软件信元,可以把处理结果传输至请求处理的计算机或计算设备,而不管这一处理发生于何处.因为执行这一处理的模块具有共同的结构,并且使用了共同的指令集体系结构,所以避免了为实现处理器之间的兼容性所添加的软件层所带来的计算负担.这一体系结构和程序设计模型有助于提高执行诸如实时、多媒体应用所需的处理速度.
为了进一步利用系统500所提高的处理速度与效率,可以把这一系统所处理的数据和应用封装至唯一标识的、一致格式的软件信元502。每个软件信元502包含或者能够包含应用以及数据。每个软件信元还包含在整个网络504和系统500上全局标识信元的ID。软件信元的结构的此一致性、以及在整个网络上软件信元的唯一标识,有助于对网络504的任何计算机或计算设备上的应用和数据的处理。例如,客户机506可以构建软件信元502,但由于客户机506的处理能力有限,所以把软件信元502传输至服务器508加以处理。因此,软件信元502可以在整个网络504上迁移,以根据网络504上的处理资源的可用性进行处理。
系统500的处理器和软件信元502的同构结构还避免了目前异构(heterogenous)网络所存在的许多问题。例如,避免了使用任何指令集、旨在允许在任何ISA上处理应用的、低效率的程序设计模块,例如,诸如Java虚拟机的虚拟机。因此,系统500可以实现远比传统网络更有效和更高效的宽带处理。
再次返回到图5,处理设备118享有的处理能力是显著的(特别是,如图6中所示,利用外部设备的处理能力时)。在某些情况下,这可能反过来会影响其被设计来运行于很不先进的系统上的软件程序的执行。因此,当在动作404处断定处理设备118的处理能力(可以包括外部能力)超过为执行软件程序的版本所考虑的处理能力,从而不兼容时,优选的是,过程流前进到节点A(图7)。
在动作408,启动变更可适当地在处理设备118上执行的软件程序的版本的序列。当断定处理设备118的处理能力不兼容(例如过高)时,优选的是,参照变更表,以确定把多个预先确定的软件模块中的哪个用于修改或取代软件程序的版本。注意,这些软件模块可以是程序的一部分或整个软件程序。在这一点,现在参照图8,图8图示了根据本发明的一或多个方面的变更表550。一般情况下,变更表550把相应的标识信息(例如软件程序ID)与一或多个软件程序和/或数据模块相关联。作为例子,沿垂直行552的方向示出标识信息,其中,每个表项(0010、0020、0030...N)表示一段给定的标识信息,例如软件程序ID。与每段标识信息相关联的是软件程序和数据模块P1、P2、P3等。根据本发明的某些实施例,可能存在多于一个与每段标识信息相关联的模块。本发明的进一步的实施例可以规定根据一或多个模块形成软件程序的完整的、适当的(或新的)版本。
例如,标记为0040的标识信息可相应于将在处理设备118上执行的软件程序的给定版本,并且可能已断定处理设备118的处理能力远超过了开发软件程序时所考虑的处理能力.还可以进一步断定处理设备118的处理能力非常高,以致如果按处理设备118的全部能力执行给定的软件程序,则将会得到所不希望的结果.因此,变更表550可以包括与标识信息0040相关联的一或多个软件程序模块,P2.优选的是,软件程序和数据模块P2代表适当的软件程序的一部分或全部,其可以增强或取代信息0040所标识的软件程序的现存版本,以获取软件程序的适当版本.当在处理设备118上执行时,与软件程序的原始版本相比,优选的是,软件程序的这一版本展示所希望的结果.
根据本发明的其它方面和实施例,优选的是,变更表550包括进一步的维度,该维度准许把相应的软件程序和/或数据模块(或模块集合)与一段给定的标识信息相关联。在这一点,优选的是,变更表550包括维度556,沿其设置多个处理标识符S001、S002、...S00X。把每个处理标识符与软件程序和/或数据模块的超集(super-set),即维度556的给定单位中的多个模块,相关联。于是,把沿列552的每个软件程序标识符与沿维度556的每个处理标识符相关联。同样,对于给定的标识符,例如标识符0040,把每个软件程序和数据模块与处理标识符S001、S002、...、S00X的相应一个相关联。
在图8中所图示的例子中,也把与标识符0040相关联的软件程序和数据模块P2与处理标识符S001相关联。存在与标识符0040相关联的多个潜在地会不同的软件程序和/或数据模块,即,与标识符0040和处理标识符S001、S002、...、S00X相关联的那些。有利的是,就如何建立和维护软件程序和/或数据模块而言,这一设置提高许多自由度,特别是当可以在具有明显不同的处理能力的处理单元上执行软件程序的给定版本时,例如,在图6的系统500中的情况下。
再次转向图7,在动作410,判断变更表550是本地地存储在处理设备118中,还是远离处理设备118加以放置,例如在网络124的节点处(网络124可以是与图6的网络504相同的网络)。在这一点,可以把变更表550本地地存储在一或多个本地存储器250中(图3)和/或一或多个处理器元件200的共享存储器214中(图2)。具有本地存储的变更表550的优势在于,可以减少访问远程放置的变更表所需的时间与努力。另一方面,为了确保变更表550的内容精确及更新,有益的是,把变更表550远程地存储在管理实体可以对其加以控制和维护的位置。
在这一点,参照图9,图9是处理系统380的方框图,处理系统380包括可操作地连接至诸如因特网124的网络的多个处理设备118A~C。也把用作管理实体的管理器382连接至因特网124。优选的是,管理器382包括可操作地耦接至数据库386的网络和/或数据库服务器384。数据库386可以驻留在与服务器384相同的位置,或者也可以经由另一网络连接远程地连接至该服务器。所述多个处理设备118A~C可以具有不同的处理能力,因此,可以包含软件程序130A~C的不同版本,和/或用于执行软件程序130A~C的不同版本。然而,有益的是,处理设备118A~C本身可利用管理器382所提供的服务,这将确保即使当处理设备118A~C的处理能力远超过开发和经销软件程序130A~C时所考虑的处理能力时,软件程序130A~C将适当地执行,并且达到所希望的结果。
当未把变更表550本地地存储在诸如处理设备118的一或多个处理单元上(或甚至是本地地存储其版本)时,优选的是,把变更表550的相当精确的、更新的版本存储在管理器382的数据库386中.再次转向图7,如果没有本地地存储变更表550,则优选的是,过程流前进到动作412,在动作412,给定的处理单元,诸如处理设备118,经由因特网124建立与管理器382的通信链接.应该认识到,尽管因特网124提供了适当的链接,但也可以在不背离本发明的构思与范围的情况下,使用任何已知的通信技术来建立链接.该建立与管理器382的通信链接的动作的部分可以包括对处理设备118或其用户的验证.实际上,管理器382所提供的服务不需要由那些不愿意付费的用户、或者通过其它途经补偿的用户享用.因此,验证过程可能涉及根据从处理设备118到管理器382的已知技术,传输一些实质上唯一的信息,或者以其它方式控制信息.此信息可以包括用户名和/或口令、成员号码、某种类型的序列号、软件的购买证明等.
一旦建立了处理设备118和管理器382之间的通信链接,优选的是,过程前进到动作414,在动作414,通过因特网124,至少把与软件程序相关的标识信息(例如软件程序ID或其它标记)从处理设备118传输至管理器382。尽管不要求,但优选的是,变更表550包括维度556,维度556指示可以通过因特网124把处理标识符从处理设备118传输至管理器382,例如,所述处理标识符诸如播放器ID号码或指示处理能力的其它指标。
接下来,优选的是,管理器382利用服务器384来处理流入的数据,并且访问变更表550(动作416)。具体地,优选的是,服务器384利用标识信息(以及处理标识符,如果利用的话)来获取一或多个软件程序和/或数据模块,所述一或多个软件程序和/或数据模块可增强或取代软件程序的现存版本,以在处理设备118上运行软件程序时得到所希望的结果。此后,优选的是,服务器384以适当的形式(例如,以上所论述的信元格式)对一或多个模块进行封装,并且通过因特网124将其传输至处理设备118。然后,优选的是,过程流前进到节点B,图10中图示了节点B,现在参照图10。
在动作418,优选的是,处理设备118采取利用从变更表550所接收的软件程序和/或数据模块(无论这样的模块是从本地存储的版本接收的,还是从管理实体接收的)来修改软件程序的步骤。假设处理设备118处于操作系统或其它系统级控制程序的控制下,优选的是,把一或多个软件程序和/或数据模块提供至这样的程序,使得可以采取动作变更或盖写存储在处理设备118中的软件程序的现存版本。另一方面,如果采取全硬件方案和/或如果采取软件和硬件的组合方案,则优选的是,把模块路由传输至适当的目的地,例如存储单元等,以对软件程序进行修改。
在动作420,优选的是,处理设备118根据所提供的一或多个模块变更或盖写软件程序的现存版本。例如,当把软件程序的版本存储在诸如CD、DVD或蓝光盘的光设备中,而且不配置为“只读”时,变更或盖写存储在该光设备中的信息。当所述设备为“只读”时,可以把修改结果写至另一个设备,诸如硬盘或例如快闪存储器的外部存储卡。在动作422,处理设备118可以执行软件程序的适当版本,与因处理能力失配而由软件程序的原始版本所得到的结果相比,这有利于产生所希望的结果。执行了软件程序之后,可以终止过程流。
根据本发明的进一步的方面的替代的例子,分布式系统500(图6)的某些部分或全部可用于执行游戏标题(软件应用)。可以从管理实体把扩展的功能模块下载至客户机设备。扩展的功能模块可用于修改(变为存储于)客户机设备的存储媒体(例如,存储器,光设备或硬盘),从而可由用户对其加以执行和享用。例如,当存储媒体为光存储媒体时,存储媒体可以为CD、DVD或蓝光盘,并且可以配置为“可写”或“可重写”设备。相类似,可以把基本功能模块下载至客户机设备。如果不能够使用扩展功能模块所需的处理器元件,则可以取代基本功能模块。可以通过把这样的模块下载至客户机设备,使得能够执行,来实现更佳模块的取代。
根据本发明的其它方面,取代从服务器下载软件程序和/或数据模块,服务器广播多流数据,其中封装了软件程序和/或数据模块的某些版本,该处理设备可以从多流数据中选择一或多个合适的软件程序和/或数据模块.当客户机终端设备到与因特网相连的路由器(未示出)之间的带宽受到限制时,路由器可以选择合适的软件程序和/或数据模块.因此,能够减少服务器的处理负载.希望根据包括在多流数据中的用户ID或软件ID,确定从多流数据对合适的软件程序和/或数据模块的选择.
希望在考虑诸如服务器或客户机终端设备的处理能力以及带宽的某些条件的情况下,确定应如何从服务器获取软件程序和/或数据模块。
图11示出了系统610的例子,系统610可用于以例如防止未经授权的拷贝或者使未经授权的拷贝无用的安全方式,准许处理设备118下载程序内容,例如上述的软件程序和/或软件程序和/或数据模块。2002年12月11日提交的美国申请号为10/316,675、发明名称为“METHOD AND APPARATUSFOR SECURE DISTRIBUTION OF PROGRAM CONTENT(安全分布程序内容的方法与设备)”的美国专利申请中描述了这样的系统,将其中所公开的内容并入此处,以作参考。
优选的是,系统610包括管理服务器601、第三方服务器602、加密服务器603、以及诸如处理设备118的多个客户机终端设备604,全部耦接至网络605,诸如因特网。注意,系统610可以包括多个管理服务器601、多个第三方服务器602以及多个加密服务器603。为了清楚简洁,此处将仅详细描述每个这样的服务器中的仅一个。
优选的是,由实体或个人对服务器601、602、603中的每个服务器进行维护、控制、和/或否则将服务器601、602、603中的每个与该实体或个人相关联。注意,此处可以互换地参照服务器和与该服务器相关联的实体。
优选的是,把管理服务器601,诸如以上所描述的服务器384,耦接至个人化数据库606,例如以上所描述的数据库386,并且优选的是,由负责执行某些管理功能的实体对其进行维护、控制、和/或否则将其与该实体相关联。可以利用任何已知的适合于实现网络服务器功能和数据库功能的硬件来实现管理服务器601和个人化数据库606。
优选的是,第三方服务器602由除管理服务器601的实体以外的其它实体,例如软件程序和/或软件程序和/或数据模块的开发商,进行控制、维护、和/或否则将其与该实体相关联。例如,第三方服务器602可以为计算机应用程序、计算机系统程序等的开发商。然而,应该加以注意的是,与第三方服务器602相关联的实体不需要不同于管理服务器601的实体,而实际上,可以为相同的实体。例如,第三方服务器602所实现的功能可以由管理服务器601加以实现。可以利用用于执行服务器相关功能的任何已知的硬件,来实现第三方服务器602。
优选的是,加密服务器603由与管理服务器601的实体相同的实体进行控制、维护、和/或否则将其与该实体相关联。例如,可以把加密服务器与服务器384共同放置在管理器382中。但应该加以注意的是,可以把加密服务器603与另一实体相关联。可以利用用于执行服务器相关功能的任何已知的硬件,来实现加密服务器603。可以把管理服务器601、第三方服务器602以及加密服务器603所执行的相应功能在一或多个服务器和/或一或多个控制、维护、和/或否则与这些服务器相关联的实体之间分布,尽管优选的是,这样的分布与图11所图示的相一致。
总体下,优选的是,可把每个客户机终端设备604可操作地耦接至硬盘驱动器607,例如任何已知的硬盘驱动器硬件,以及耦接至存储器卡608,例如索尼记忆棒.或者,也可以把客户机终端设备耦接至光设备,例如按以上描述进行操作的CD驱动器、DVD驱动器、或蓝光盘驱动器.尽管把硬盘驱动器607、存储器卡608和/或光设备(优选的是,可拆卸地耦接至客户机终端设备604)示为独立于设备604的设备,但应理解为可以将它们与设备604集成地定位.可以利用任何已知的硬件,例如个人计算机、索尼游戏站602等实现客户机终端设备604.
优选的是,客户机终端设备604包括一或多个处理设备118,并且优选的是,其可用于在网络605上通过下载接收源加密的程序或者接收源加密的程序和/或数据模块,例如,以上所描述的计算机程序或模块。尽管可以从任何授权的实体获取源加密的程序或源加密的模块,但优选的是,客户机终端设备604从第三方服务器602(例如,通过网络605下载)或者从管理服务器603接收源加密的程序或源加密的模块。
因此,最终用户可以按如下形式(即源加密)来接收计算机程序和/或程序和/或数据模块:其中,在未首先获取解密密钥并未对源加密的程序和/或源加密的模块进行解密的情况下,不能够用于执行或修改客户机终端设备604上的程序。仅可通过授权的客户机终端设备604获取解密密钥。
现在,参照图12,图12是概念性方框图和流程图,图示了加密服务器603和第三方服务器602所执行的某些过程步骤。该图提供了如何生成源加密的计算机程序或源加密的模块的例子。在这一例子中,把第三方服务器602与软件开发商相关联,该软件开发商本身或者与另一实体相结合而获取程序和/或获取软件和/或数据模块。如图12中所示,第三方服务器602可以包括至少一个程序,例如系统程序或应用程序、和/或至少一个软件程序和/或数据模块。通过网络605,把一或多个这样的程序或模块传输至加密服务器603。
优选的是,加密服务器603对软件程序或软件程序和/或数据模块进行加密,并且把加密的程序或加密的模块返回第三方服务器602。加密过程可以使用任何已知的加密技术,例如公共密钥加密、对称密钥加密等,以产生加密的程序或加密的模块。另外,加密服务器603还可向第三方服务器602提供能够对加密的程序或加密的模块进行解密的解密密钥。第三方服务器602可以通过经由网络605的电子下载,把加密的程序和/或加密的模块分布至客户机终端设备604。然而,不管如何分布源加密的程序或源加密的程序和/或数据模块,优选的是,最终用户都不能在不执行某些登记步骤的情况下执行程序和/或修改程序。
现在,参照图13,图13为概念性方框图和流程图,图示了为处理源加密的计算机程序和/或源加密的模块最好应加以执行的某些过程步骤。优选的是,客户机终端设备604已通过经由网络605的下载操作,接收了源加密的计算机程序和/或源加密的模块。然而,为了执行源加密的计算机程序或为了修改现存的程序,客户机终端设备604必须对源加密的计算机程序或源加密的模块进行登记,优选的是,通过网络605并使用管理服务器601。
图14的流程图中图示了登记过程中的至少某些步骤。在步骤S20中,客户机终端设备604接收源加密的计算机程序或源加密的模块,并且如以上所论述的对其存储。在步骤S22中,优选的是,用户提供指令,该指令指示他或她希望安装所下载的计算机程序,并且使其就绪以执行,或者指示希望修改现存的程序。在这一点,优选的是,客户机终端设备604包括响应于用户的安装指令而调用其它计算机程序。该其它程序提示用户登记源加密的计算机程序或源加密的模块,并且调用通信功能(步骤S24)。
注意,优选的是,客户机终端设备604包括网络接口,该网络接口可用于如本技术领域中已知的那样提供通过网络605的通信.可以使用任何已知的网络接口硬件来达到这一目的.在步骤S26,优选的是,通信信道由客户机终端设备604启动,并且在设备604和管理服务器601之间建立.优选的是,客户机终端设备604的网络接口能够有助于通过网络605把与设备604相关的至少某些标识信息传输至管理服务器601.具体地讲,优选的是,标识信息包括机器ID,例如以上所描述的播放器ID,该机器ID对客户机终端设备604来说实质上是唯一的.标识信息还可以包括媒体ID,该媒体ID指示客户机终端设备604用于存储源加密的计算机程序的存储器的类型.
优选的是,客户机终端设备604包括:第一存储设备,例如硬盘驱动器607、存储器卡608等,可用于把源加密的计算机程序和/或源加密的模块随以下将加以论述的某些其它信息一起加以存储;以及第二存储设备,例如只读存储器(ROM),可用于存储机器ID。优选的是,客户机终端设备604的网络接口还可用于通过网络605把机器ID(从ROM)传输至管理服务器601(动作S28)。还可以把媒体ID从客户机终端设备604传输至管理服务器601。
参照图15,管理服务器601通过网络605从客户机终端设备604接收标识信息,例如机器ID(并可能还接收媒体ID)(步骤S30)。在这一点,优选的是,管理服务器601包括网络接口,该网络接口可用于改进与网络605的通信,使得可以通过网络605从客户机终端设备604接收标识信息。在步骤S32,管理服务器601分配此处称为虚拟ID的另一ID,该ID相应于从客户机终端设备604所接收的机器ID。注意,可以从多个预先存在的ID中选择虚拟ID,可以通过对机器ID或某其它操作数进行数值运算来导出虚拟ID,或者可以使用任何其它已知的或今后所开发的技术来生成虚拟ID。
在步骤S34中,管理服务器601在个人化数据库606搜索与从客户机终端设备604所接收的机器ID相匹配的现存机器ID(即,存储在其第二存储设备(ROM)中的机器ID)。参照图16,优选的是,个人化数据库606可用于存储相应的登记信息,每组登记信息与相应的一个客户机终端设备604相对应。把客户机终端设备604的至少某些标识信息,例如机器ID,包括在登记信息中。如图16中所图示的,把多个机器ID预先存储在个人化数据库606中,如图16的左列中所示。优选的是,这些机器ID的中每个机器ID对应于给定的一个客户机终端设备604,并且优选的是,这样的机器ID对于相应的客户机终端设备604来说实质上是唯一的。优选的是,管理服务器601还包括数据处理器,该数据处理器可用于搜索个人化数据库606,以找出与通过网络605从客户机终端设备604所接收的机器ID相匹配的登记信息(例如机器ID)。可以使用任何已知的或今后开发的数据处理硬件达到这一目的。
再次转向图15,在步骤S36,把虚拟ID与存储在个人化数据库606中的机器ID相关联,即,把虚拟ID与把所接收的机器ID传输至管理服务器601的具体的客户机终端设备604相关联。优选的是,通过以与所存储的机器ID相对应的方式把虚拟ID存储在个人化数据库606中,以实现这一关联。
如以上所指出的,通过网络605从客户机终端设备604传输至管理服务器601的标识信息(图14,步骤S28)可以包括对与客户机终端设备604所使用的存储设备的类型相对应的媒体ID(或媒体ID)的传输,以存储源加密的计算机程序或源加密的程序和/或数据模块.例如,媒体ID可以指示客户机终端设备604把源加密的计算机程序或源加密的模块存储在硬盘驱动器607中、存储器卡608中或某其它类型的存储媒体中.作为响应,管理服务器601可以通过把所接收的媒体ID存储在个人化数据库606中与所存储的机器ID相对应的位置,来把虚拟ID与所存储的机器ID和所接收的媒体ID相关联.
参照图17和18,优选的是,管理服务器601可用于产生加密的解密密钥和加密的虚拟ID,其中,解密密钥可用于在客户机终端设备604处对源加密的计算机程序或源加密的模块进行解密。注意,管理服务器601可以访问任何数目的可用于对加密服务器603所产生的相应的源加密的计算机程序进行解密的解密密钥(图11~12)。可以通过加密服务器603和/或通过第三方服务器602把这些解密密钥提供至管理服务器601。而且,解密密钥可以通过网络605、通过另一网络而传输至管理服务器601,或者可以通过存储媒体等人工地加以提供。
在步骤S40,优选的是,管理服务器601使用与客户机终端设备604相关联的虚拟ID对解密密钥进行加密。另外,优选的是,管理服务器601使用与客户机终端设备604的相关联的机器ID对虚拟ID进行加密,优选的是从个人化数据库606获取每个机器ID(步骤S42)。
优选的是,管理服务器601的网络接口还可用于改进加密的解密密钥和加密的虚拟ID通过网络605向客户机终端设备604的传输(步骤S44)。在步骤S46,优选的是,客户机终端设备604通过网络605接收加密的解密密钥和加密的虚拟ID,并且将其存储在第一存储设备(例如,硬盘驱动器607、存储器卡608等)中。
仅把加密的解密密钥提供至授权的客户机终端设备604,例如,已提供了有效机器ID并且登记了与用于对解密密钥进行加密的虚拟ID相关联的这样的机器ID的客户机终端设备604。而且,对加密的解密密钥的任何截取,例如通过网络盗取或未经授权的复制,将不能提供对源加密的计算机程序进行解密所需的信息(即,可用的解密密钥)。实际上,以实质上唯一的虚拟ID对这样的解密密钥进行加密。相类似,仅在登记过程已经完成且客户机终端设备604已视为授权之后,才把加密的虚拟ID提供至客户机终端设备604。当以加密的方式(即,使用客户机终端设备604的机器ID加密)把虚拟ID从管理服务器601传输至客户机终端设备604时,任何对加密的虚拟ID的未经授权的获取将不能得到对加密的解密密钥进行解密所需的信息。
现在,参照图19和20,图19和20图示了为了把源加密的计算机程序和/或源加密的模块加载/安装在客户机终端设备604中所执行的某些过程。图19图示了与诸如硬盘驱动器607、存储器卡608等第一存储设备相分离的客户机终端设备604。然而,如以上所论述的,这些元件可以为集成的或半集成的。注意,在过程的这一阶段,客户机终端设备604包括存储在诸如ROM的第二存储设备中的机器ID,第一存储设备607、608包括下列项目:机器ID、加密的虚拟ID、加密的解密密钥、以及源加密的计算机程序。
在步骤S50,用户可以向客户机终端设备604提供指令,以加载/安装源加密的计算机程序,或者使用源加密的程序和/或数据模块修改已安装/已加载的软件程序.作为响应,客户机终端设备604使用适当的硬件和软件过程,从第一存储设备607、608读取机器ID,并且从诸如ROM的第二存储设备读取机器ID(步骤S52).在步骤S54,判断这些机器ID是否匹配.如果它们不匹配,则过程终止,和/或进入替代的过程.然而,如果它们匹配,则过程流前进到步骤S56,其中使用机器ID(优选的是存储在ROM中的机器ID)对加密的虚拟ID进行解密.一旦获取了虚拟ID,则使用虚拟ID对加密的解密密钥进行解密(步骤S58).接下来,使用解密密钥对源加密的计算机程序或源加密的模块进行解密(步骤S60).在步骤S62,可以使用在步骤S56获取的虚拟ID对计算机程序或程序和/或数据模块重新加密,以获取客户机加密的计算机程序或客户机加密的模块.把客户机加密的计算机程序或客户机加密的模块存储在第一存储设备607、608中(步骤S64).在这一阶段,既不需要把加密的解密密钥、源加密的计算机程序保留在第一存储设备607、608中,也不需要把源加密的模块保留在第一存储设备607、608中.
优选的是,客户机终端设备604包括解密设备和加密设备,以执行以上所论述的加密和解密功能。可以把解密设备和加密设备集成在一起,并且简单起见,将它们称为解密设备。根据本发明,可以使用任何已知的或今后开发的硬件和/或软件进行这样的加密和解密。例如,可以使用解密库和加密库等。
客户机加密的计算机程序和/或客户机加密的模块是安全的,因为其未经授权的拷贝不能由不同客户机终端设备604上的未经授权的最终用户执行。实际上,必须首先对客户机加密的计算机程序和/或客户机加密的模块进行解密,如以下将加以解释的,不能在除在管理服务器601中登记了计算机程序的客户机终端设备604之外的任何其它客户机终端设备604上执行客户机加密的计算机程序和/或客户机加密的模块。
参照图21和22,现在,将论述由客户机终端设备604执行或修改计算机程序的过程。在过程的这一阶段,客户机终端设备604包括:含有机器ID的诸如ROM的第二存储设备;以及含有机器ID、加密的虚拟ID和客户机加密的计算机程序的第一存储设备607、608。
在步骤S70,用户可以向客户机终端设备604提供指令以执行或修改计算机程序。作为响应,在适当计算机程序的控制下,操作的客户机终端设备从第一存储设备607、608读取机器ID,并从第二存储设备(ROM)读取机器ID(步骤S72)。在步骤S74,判断机器ID是否互相匹配。如果机器ID匹配,则过程流前进到步骤S76,在步骤S76,客户机终端设备604的解密设备使用机器ID(优选的是包含在ROM中的机器ID)对加密的虚拟ID进行解密。在步骤S78,客户机终端设备604的解密设备使用在步骤S76所得到的虚拟ID对客户机加密的计算机程序或客户机加密的程序和数据模块进行解密。此时,客户机终端设备604可以执行或修改驻留在RAM中的计算机程序。
仅可以使用与用于对客户机加密的计算机程序进行加密的虚拟ID相关联的客户机终端设备604,来对客户机加密的计算机程序或客户机加密的模块进行解密。于是,如果把客户机加密的计算机程序或客户机加密的模块的未经授权的拷贝提供至未经授权的最终用户,则这样的未经授权的最终用户试图在其上执行或修改计算机程序的设备,将不能对客户机加密的计算机程序或客户机加密的模块进行解密。另外,如果把第一存储设备607、608提供至未经授权的最终用户(例如,以致可把存储设备607、608耦接至不同的客户机终端设备604),则由于存储在ROM中的任何机器ID都与包含在第一存储设备607、608中的机器ID不相匹配,所以不能对加密的虚拟ID进行解密。因此,不能对客户机加密的计算机程序或客户机加密的程序和/或数据模块进行解密。计算机程序和/或模块的安全分布的这一方案确保了使未经授权的拷贝归于无用,并且仅特定的客户机终端设备604能够执行或修改计算机程序。
尽管以上所论述的方面考虑到通过网络605把解密密钥提供至客户机终端设备604,但替代方面考虑到可以通过存储媒体(例如CD-ROM等)把解密密钥提供至客户机终端设备604,以进行人工分布.现在,将参照图23和24描述本发明的这些方面.如图23中所示,客户机终端设备604通过存储媒体609A接收加密的第一解密密钥.优选的是,第一解密密钥可用于对客户机终端设备604上的源加密的计算机程序或源加密的程序和/或数据模块进行解密.优选的是,管理服务器601可用于产生加密的第二解密密钥和加密的虚拟ID,其中,第二解密密钥可用于对加密的第一解密密钥进行解密.注意,管理服务器601可访问任何数目的可用于对相应的加密的第一解密密钥进行解密的第二解密密钥.可以由加密服务器603和/或由第三方服务器602把这些第二解密密钥提供至管理服务器601.而且,可以通过网络605、或通过另一网络把这些第二解密密钥传输至管理服务器601,或者可以通过存储媒体等人工地提供这些第二解密密钥.
在步骤S40A,优选的是,管理服务器601使用与客户机终端设备604相关联的虚拟ID对第二解密密钥进行加密。另外,优选的是,管理服务器601使用与客户机终端设备604的相关联的机器ID来对虚拟ID进行加密,优选的是,从个人化数据库606中获取客户机终端设备604的每个相关联的机器ID(步骤S42)。优选的是,管理服务器601的网络接口还可用于改进加密的第二解密密钥和加密的虚拟ID通过网络605向客户机终端设备604的传输(步骤S44A)。在步骤S46A,优选的是,客户机终端设备604通过网络605接收加密的第二解密密钥和加密的虚拟ID,并且将其存储在第一存储设备(例如,硬盘驱动器607、存储器卡608等)中。
仅把加密的第二解密密钥提供至授权的客户机终端设备604,例如,已提供了有效机器ID并已把这样的机器ID与用于对第二解密密钥进行加密的虚拟ID相关联地加以登记的客户机终端设备604。对加密的第二解密密钥的任何截取,例如通过网络盗取或未经授权的复制,将不能提供对加密的第一解密密钥进行解密所需的信息(即,可用的第二解密密钥)。实际上,使用实质上唯一的虚拟ID对这样的第二解密密钥进行加密。相类似,仅在登记过程已完成且客户机终端设备604被视为授权之后,才把加密的虚拟ID提供至客户机终端设备604。当以加密的方式(即,使用客户机终端设备604的机器ID加密)把虚拟ID从管理服务器601传输至客户机终端设备604时,对加密的虚拟ID的任何未经授权的获取都将不会得到对加密的第二解密密钥进行解密所需的信息。
现在参照图25和26,图25和26图示了为了把源加密的计算机程序或源加密的程序和/或数据模块加载/安装于客户机终端设备604中所执行的某些过程。图25图示了在过程的这一阶段,客户机终端设备604包括存储在第二存储设备(ROM)中的机器ID,第一存储设备607、608包括下列项目:机器ID、加密的虚拟ID、加密的第二解密密钥、加密的第一解密密钥、以及源加密的计算机程序或源加密的程序和/或数据模块。
在步骤S50,用户可以向客户机终端设备604提供加载/安装源加密的计算机程序或源加密的模块以备将来使用的指令.作为响应,客户机终端设备604使用适当的硬件和软件过程来从第一存储设备607、608读取机器ID,并且从诸如ROM的第二存储设备读取机器ID(步骤S52).在步骤S54,判断这些机器ID是否相匹配.如果它们不匹配,则过程终止和/或进入替代的过程.然而,如果它们匹配,则过程流前进到步骤S56,在步骤S56,使用机器ID(优选的是存储在ROM中的机器ID)对加密的虚拟ID进行解密.一旦获取了虚拟ID,则使用虚拟ID对加密的第二解密密钥进行解密,并且使用第二解密密钥对加密的第一解密密钥进行解密(步骤S58A).接下来,使用第一解密密钥对源加密的计算机程序或源加密的模块进行解密(步骤S60A).在步骤S62,使用在步骤S56所获取的虚拟ID对计算机程序或模块重新加密,以得到客户机加密的计算机程序.把客户机加密的计算机程序或客户机加密的模块存储在第一存储设备607、608中(步骤S64).在这一阶段,无论是加密的第一解密密钥、加密的第二解密密钥、源加密的计算机程序,还是源加密的程序和/或数据模块,均不需要保留在第一存储设备607、608中.
一旦获取客户机加密的计算机程序或客户机加密的程序和/或模块,并且将其存储在第一存储设备607、608中,则可利用关于图21和22所论述的过程来执行计算机程序。
图27示出了另一系统710,该系统710可用于以诸如防止程序和/或程序和/或数据模块的未经授权的拷贝或者使该未经授权的拷贝归于无用的安全方式,来准许处理设备118下载以上所描述的程序,和/或下载程序和/或数据模块。2002年12月1日提交的美国申请号为10/316,309、发明名称为“METHODS AND APPARATUS FOR SECURE DISTRIBUTION OFCONTENT(安全分布内容的方法与设备)”的美国专利申请中描述了这样的系统,将该专利申请所公开的内容并入此处,以作参考。
优选的是,系统710包括第三方服务器701、加密服务器702、分布服务器703、管理服务器704、以及例如处理设备118的多个客户机终端设备705,它们全部耦接至网络706,例如因特网。注意,系统710可以包括多个第三方服务器701、多个加密服务器702、多个分布服务器703和/或多个管理服务器704。清楚简洁起见,此处将论述每一这样的服务器中的仅一个服务器。优选的是,由实体或个人维护、控制服务器701、702、703、704中的每一服务器,和/或否则使服务器701、702、703、704中的每个与该实体或个人相关联。注意,此处可以互换地参照服务器和与该服务器相关联的实体。
优选的是,由实体控制、维护第三方服务器701,和/或否则把第三方服务器701与该实体相关联,该实体例如为软件程序和/或软件程序和/或数据模块的开发商,如以上参照图11所描述的。
优选的是,由负责管理功能的实体控制、维护加密服务器702,和/或否则把加密服务器702与该实体相关联。优选的是,这一实体为与管理服务器704的实体相同的实体。然而,应该加以注意的是,可以把加密服务器702与另一实体相关联。可以利用用于执行服务器相关功能的任何已知硬件来实现加密服务器702。
优选的是,由负责向客户机终端设备705,例如通过网络706,来分布软件程序和/或软件程序和/或数据模块的实体控制、维护分布服务器703,和/或否则把分布服务器703与该实体相关联。优选的是,把分布服务器703耦接至个人化数据库707,例如以上所描述的数据库386,后面将对此详细地加以论述。可以利用适合于执行网络服务器功能和数据库功能的任何已知的硬件来实现分布器服务器703和个人化数据库707。
优选的是,由负责执行某些管理功能的实体维护、控制管理服务器704,例如以上所描述的服务器384,和/或否则将管理服务器704与该实体相关联。可以利用适合于执行网络服务器功能和数据库功能的任何已知的硬件来实现管理服务器704。
可以把第三方服务器701、加密服务器702、分布服务器703以及管理服务器704所执行的相应功能在一或多个服务器和/或控制、维护这些服务器、和/或否则与这些服务器相关联的一或多个实体之间加以分布。实际上,不要求针对每个服务器的分别的实体,例如,可以把一个实体与分布服务器703和管理服务器704相关联。然而,优选的是,这一分布与图27中所图示的分布相一致。
总体上,每个客户机终端设备705包括一或多个处理设备118,优选的是,把每个客户机终端设备705耦接至例如任何已知的硬盘驱动器硬件的硬盘驱动器708以及例如索尼记忆棒的存储器卡709。或者,也可以把客户机终端设备耦接至光设备,例如CD驱动器、DVD驱动器或蓝光盘驱动器,它们按以上所描述的方式操作。尽管把硬盘驱动器708、存储器卡709和/或光设备(优选的是,可拆卸地耦接至客户机终端设备705)示为与设备705相分离的设备,但应该认识到也可以把它们与设备705集成地定位。可以利用任何已知的硬件,例如个人计算机、索尼游戏站702等来实现客户机终端设备705。
优选的是,客户机终端设备705可用于按以上针对图11的客户机终端设备604所描述的方式,通过经由网络706下载,来接收源加密的程序和/或源加密的程序模块和/或数据模块。
现在参照图28,图28是概念性方框图和流程图,图示了由加密服务器702和第三方服务器701所执行的某些过程步骤。该图提供如何生成源加密的计算机程序或源加密的模块的例子。在这一例子中,把第三方服务器701与软件开发商相关联,该软件开发商本身或者与另一个实体相结合而获取通过网络706传输至加密服务器702的程序或模块。然而,应该加以注意的是,可以人工地把程序或模块提供至加密服务器702,例如,通过存储媒体。
优选的是,加密服务器702对程序或程序和/或数据模块进行加密,并且把加密的程序或加密的模块返回至第三方服务器701。加密过程可以使用任何已知的加密技术,例如公共密钥加密、对称密钥加密等,以产生加密的程序或加密的模块。例如,加密服务器702返回加密的系统程序(源加密的系统程序)和加密的应用程序(源加密的应用程序)或者把源加密的模块返回至第三方服务器701。另外,加密服务器702还可以向第三方服务器701提供能够对加密的程序或加密的模块进行解密的解密密钥。优选的是,按非激活状态,即按可能不易用于对源加密的计算机程序或源加密的模块进行解密的方式,把解密密钥提供至分布服务器703。例如,可以由实体,例如由加密服务器702,对解密密钥进行初始加密,使得其为非激活的。如此处后面将加以论述的,这提供了更高水平的安全。
现在参照图29,图29是概念性方框图和流程图,图示了优选在分布服务器703和管理服务器704之间加以执行的某些过程步骤。优选的是,分布服务器703建立通过网络706与管理服务器704的通信链接。优选的是,管理服务器704通过网络706把密钥分布程序711、密钥管理数据712以及密钥登记程序713传输至分布服务器703。如后面将加以论述的,由分布服务器703执行密钥分布程序711,以允许把解密密钥向最终用户分布。优选的是,密钥管理数据是信息的安全集合,包括分布ID,优选的是,该分布ID对于每一分布服务器703实质上唯一。优选的是,由分布服务器703执行密钥登记程序713,以把非激活解密密钥转换为激活解密密钥(即,可用于对源加密的计算机程序进行解密)。
现在参照图30,图30是流程图,图示了优选在分布服务器703和管理服务器704之间加以执行的进一步的过程步骤。总体上,分布服务器703可以通过网络706向管理服务器704进行激活请求,并且作为响应而从管理服务器704接收激活许可信息。更具体地讲,在动作S1中,优选的是,分布服务器703通过网络706连接至管理服务器704。在动作S2,分布服务器703把密钥管理数据(其中包括分布器ID)传输至管理服务器704。
在动作S3,优选的是,管理服务器704利用合适的验证过程对分布服务器703进行验证.例如,管理服务器704可以请求分布服务器703提供用户ID、口令等、或某些其它核实信息,以使得能够验证.然而,优选的是,管理服务器704从密钥管理数据712抽取分布器ID,以对分布服务器703进行验证.在动作S4,判断验证是否成功.如果验证不成功,则过程前进到动作S5,在动作S5,不准许激活,并且过程终止.如果验证成功,则优选的是,过程流前进到动作S6,在动作S6,通过网络706把激活许可信息从管理服务器704传输至分布服务器703.
在动作S7,优选的是,分布服务器703激活与源加密的计算机程序或与源加密的模块相关联的解密密钥。更具体地讲,优选的是,分布服务器703执行密钥登记程序713,密钥登记程序713要求激活许可信息作为输入。作为响应,密钥登记程序713激活解密密钥,使得可以用于对源加密的计算机程序进行解密。作为例子,激活许可信息可以包括适合于对初始加密的解密密钥进行解密的解密密钥。在这一情况下,密钥登记程序713包括利用激活许可信息对初始加密的解密密钥进行解密的解密能力。
不管如何或是否激活解密密钥,优选的是,分布服务器703把解密密钥存储在个人化数据库707中。在这一阶段,分布服务器703包含(或已经访问)源加密的计算机程序和源加密的模块以及能够对其进行解密的解密密钥。
现在参照图32,图32是概念性方框图和流程图,图示了为了处理源加密计算机程序或源加密的模块而最好加以执行的某些过程步骤。然而,为了使用源加密的模块执行源加密的计算机程序或修改现存的程序,客户机终端设备705必须执行某些登记步骤。优选的是,通过网络706上的管理服务器704来图示这些步骤。
图32的流程图中图示了登记过程中的至少某些步骤。步骤S20、S22、S24、S26以及S28类似于图16中具有相同参考标号的步骤。
接下来,在动作S30,优选的是,管理服务器704生成登记数据,并且通过网络706把该登记数据传输至客户机终端设备705。例如,优选的是,可以根据机器ID和分布器ID形成登记数据,使得以后可以通过对登记数据的适当分析来识别这些ID。当接收到登记数据时,客户机终端设备存储登记数据,优选的是存储在第一存储设备,例如HDD和/或存储器卡709中。
参照图33,注意,可以把管理服务器704,例如服务器384,耦接至数据库707A,例如数据库386。数据库707A可以包含在登记过程的以上所描述的阶段期间所接收的任何设备ID和/或分布器ID。优选的是,把设备ID和分布器ID互相关联地加以存储,使得可以获得有用的历史数据和对它们的分析。例如,可以根据这样的分析判断某客户机终端设备705已从某分布服务器703接收到源加密的计算机程序或源加密的程序和数据模块。与从分布服务器703所获取的数据相结合,可以把设备ID、分布器ID和/或它们之间的关联性用于确保满足分布服务器703方面的任何义务(例如,通过合同)。
现在参照图34和35,图34和35分别是概念性方框图和流程图,图示了为了登记计算机程序或程序和/或数据模块、以及为了准许终端用户执行或修改程序,最好加以执行的进一步的过程步骤。优选的是,用户向客户机终端设备705提供指令,指示希望获取适合于对源加密的计算机程序进行解密的解密密钥。在步骤S21,客户机终端设备705通过网络706建立与分布服务器703的通信链接。接下来,客户机终端设备705把登记数据(先前从管理服务器704获取)传输至分布服务器703(动作S22)。
在动作S23,分布服务器703通过网络706从客户机终端设备705接收登记数据,例如包括机器ID(可能还包括分布器ID).在这一点,优选的是,分布服务器703包括网络接口,该网络接口可用于改进与网络706的通信,以使得可以通过网络706从客户机终端设备705接收登记数据.在步骤S23,管理服务器704还分配另一ID,此处称为虚拟ID,优选的是,该ID相应于从客户机终端设备705所接收的机器ID.注意,可以从多个预先存在的ID中选择虚拟ID,可以通过对机器ID、分布器ID和/或某其它操作数进行数值操作来导出虚拟ID,或者也可以使用任何其它已知的或今后开发的技术来生成虚拟ID.
分布服务器703搜索个人化数据库707,以搜索出与从客户机终端设备705所接收的机器ID相匹配的现存的机器ID(即,存储在其第二存储设备(ROM)中的机器ID)。参照图36,优选的是,个人化数据库707可用于存储各机器ID,每个ID对应于相应的一个客户机终端设备705。可以把多个机器ID预先存储在个人化数据库707中,例如,图36的左列中。优选的是,这些机器ID中的每个机器ID与给定的一个客户机终端设备705相对应,并且优选的是,这样的机器ID对于各客户机终端设备705实质唯一。优选的是,分布服务器703还包括数据处理器,该数据处理器可用于搜索个人化数据库707,以搜索出与通过网络706从客户机终端设备705所接收的机器ID相匹配的登记信息(例如,机器ID)。可以使用任何已知的或今后开发的数据处理硬件达到这一目的。
再次参照图35,在步骤S23,把虚拟ID与存储在个人化数据库707中的机器ID相关联,即,把虚拟ID与把所接收的机器ID传输至分布服务器703的特定客户机终端设备705相关联。优选的是,通过以与所存储的机器ID相对应的方式把虚拟ID存储在个人化数据库707中,来实现这一关联。
如以上所提到的,通过网络706从客户机终端设备705传输至分布服务器703的登记数据(图35,步骤S22)可以包括与从其获取源加密的计算机程序或源加密的模块的分布服务器703相对应的分布器ID的传输。或者,也可以把包含在登记数据中的分布器ID与机器ID相关联地存储在个人化数据库707中。
参照图38,优选的是,分布服务器703可用于产生加密的解密密钥和加密的虚拟ID,其中,解密密钥可用于对客户机终端设备705的源加密的计算机程序或源加密的模块进行解密。注意,分布服务器703可以访问可用于对由加密服务器702所产生的各源加密的计算机程序或源加密的模块进行解密的任何数目的解密密钥(图27~28)。可以通过加密服务器702和/或任何其它适当的实体,把解密密钥提供至分布服务器703。而且,解密密钥可以通过网络706、通过另一网络传输至分布服务器703,或者也可以通过存储媒体等人工地提供。
在步骤S24,优选的是,分布服务器703使用与客户机终端设备705相关联的虚拟ID,对解密密钥进行加密。另外,优选的是,分布服务器703使用客户机终端设备705的相关联的机器ID对虚拟ID进行加密,优选的是,从个人化数据库707获取每个该机器ID。
优选的是,分布服务器703的网络接口还可用于改进加密的解密密钥和加密的虚拟ID通过网络706向客户机终端设备705的传输(步骤S25).在步骤S26,优选的是,客户机终端设备705通过网络706接收加密的解密密钥和加密的虚拟ID,并且将其存储在第一存储设备(例如,硬盘驱动器708、存储器卡709等)中.在动作S27,优选的是,分布服务器703记录(作为历史数据)传输至客户机终端设备705的具体的解密密钥.优选的是,以后把该信息通过例如网络706提供至管理服务器704.优选的是,分布服务器703不能够访问包含在历史数据中的数据.该数据可用于计费、追踪义务等.
仅把加密的解密密钥提供至授权的客户机终端设备705,例如,已提供了有效机器ID并且已与用于对解密密钥进行加密的虚拟ID相关联地登记了这样的机器ID的客户机终端设备705。另外,对加密的解密密钥的任何截取,例如通过网络盗取或未经授权的复制,都将不能提供对源加密的计算机程序进行解密所需的信息(即可用的解密密钥)。实际上,使用实质唯一的虚拟ID来对这样的解密密钥进行加密。相类似,仅在登记过程已完成且客户机终端设备705已视为授权之后,才把加密的虚拟ID提供至客户机终端设备705。当以加密的方式(即,使用客户机终端设备705的机器ID进行加密)把虚拟ID从分布服务器703传输至客户机终端设备705时,对加密的虚拟ID的任何未经授权的获取,都将不能得到对加密的解密密钥进行解密所需的信息。
以上,参照图19和20描述了把源加密的计算机程序或源加密的模块加载/安装于客户机终端设备705中所执行的过程。
以上,参照图21和22论述了客户机终端设备705执行或修改计算机程序的过程。
现在,参照图37,图37是过程流程图,图示了程序内容的安全分布的例子,例如,来自租用程序内容的分布器的软件程序。上文所参照的美国申请号为10/316,309和10/316,675的美国专利申请中描述了这样的分布。
租用程序内容的分布器可以是管理服务器601、704、第三方服务器602、701、分布服务器703、或某其它服务器(未示出)。当用户希望租用程序内容时,优选的是,要求该用户首先成为租用系统的成员。在这一点,在步骤S70,用户例如通过客户机终端设备604、705的激活机制,指示他或她希望成为系统的成员。例如,客户机终端设备604、705可以是用户将在其中运行租用的程序内容的同一设备,也可以是分别的设备。另外,客户机终端设备604、705还包含并执行改进成员身份过程的适当的计算机程序。
在步骤S72,客户机终端设备604、705建立与管理服务器601、704的通信链接,优选通过网络605、706。在步骤S74,客户机终端设备604、705发送表示用户希望成为租用系统的成员的请求。客户机终端设备604、705可以例如当用户将仅使用当前客户机终端设备来租用和执行内容时,通过网络605、706把机器ID传输至管理服务器601、704;或者例如当用户还将经由其它设备租用程序内容时,可以传输专门针对该用户的其它ID信息。作为响应,管理服务器601、704产生电子成员身份证书,当用户仅使用同一客户机终端设备来租用和执行程序内容时,电子成员身份证书对于客户机终端设备604、705实质唯一。管理服务器601、704还可以,例如使用以上所描述的数据库关联技术,把客户机终端设备604、705的机器ID或用户信息与电子成员身份证书相关联。在步骤S80,优选的是,管理服务器601、704通过网络605、706把电子成员身份证书传输至客户机终端设备604、705。如以下将加以描述的,在租用过程中使用电子成员身份证书。
一旦用户已成为租用系统的成员,则优选的是,准许用户租用程序内容,例如应用程序和系统程序.优选的是,程序内容是视频游戏计算机程序.参照图38,优选的是,运行在客户机终端设备604、705上的计算机软件准许用户表示他或她希望租用计算机程序.此处,用户希望在其中租用程序内容的客户机终端设备可以是用于建立成员身份的同一设备,也可以是另一个设备,或者两者均不是.例如,用户可以租用在游戏控制台上使用的软件程序,但可以通过传输来自诸如用户的移动电话、PDA或其它设备的另一设备的成员身份证书或者其它数据,来启动用户验证.可以通过人工输入数据,刷磁卡或智能卡,或者读取已经存储在设备中的数据,来把成员身份证书或其它数据输入该设备.
在这一点,响应于来自用户的指示(步骤S82),优选的是,客户机终端设备604、705建立与分布器的通信链接(步骤S84),用户通过该通信链接把租用请求传输至该分布器。在步骤S86,优选的是,例如,通过诸如当设备是用户用来成为成员的同一设备时分析客户机终端设备604、705的机器ID,和/或通过分析电子成员身份证书,分布器对客户机终端设备604、705进行验证。可以通过要求客户机终端设备604、705向分布器提供机器ID和/或电子成员身份证书,以及分布器已访问了其中可以核实此信息的数据库,来实现这一点。
当已经对用户进行了验证时,优选的是,分布器通过网络605、706向客户机终端设备604、705提供用于租用的可用标题的列表或菜单(步骤S88)。优选的是,运行在客户机终端设备604、705上的计算机软件改进所述标题的列表或菜单向用户的显示,使得用户可以选择标题并指定租用时间(步骤S90)。优选的是,把用户的选择和指定的租用时间通过网络605、706传输至分布器。
在步骤S92,优选的是,分布器要求用户提供支付指定时间内计算机程序租用费用的汇款。可以利用任何已知的技术,例如通过传输信用卡号码、活期存款账户号码、通过记账等,使用客户机终端设备604、705或其它设备来完成这一要求。一旦已经汇款,则优选的是,分布器产生电子支付票(ticket),指示已针对所指示的标题和租用时间进行了汇款(步骤S94)。在步骤S96,优选的是,分布器通过网络605、706向客户机终端设备604、705或另外的设备传输电子支付票。
优选的是,电子支付票向用户(或当接收到电子支付票时向客户机终端设备604、705)提供一定级别的租用权,作为向分布器提供汇款的交换。例如,可以把租用权限制于特定的计算机程序标题、租用时间、汇款额等。另外,电子支付票还可以包括额外的信息,例如能够对计算机程序进行解密的解密密钥。不要求电子支付票包括解密密钥,其包括仅仅作为例子而给出。还考虑到:电子支付票可以按加密的形式包括解密密钥,例如,通过使用机器ID或者利用可以是电子成员身份证书的一部分的其它信息(例如,虚拟ID等),来对其加密。在任何情况下,在该过程的这一时刻,优选的是,用户已接收到一定级别的租用权,但还没有接收到计算机程序或计算机程序的加密的版本。
在过程的这一阶段,客户机终端设备604、705或其它设备已具有表明已针对某标题的一段给定时间而汇款的电子支付票,而且还可以持有用户的电子成员身份证书。参照图39,优选的是,客户机终端设备604、705或其它设备通过网络605、706建立与管理服务器601、704的通信链接(步骤S98)。在步骤S100,优选的是,管理服务器601、704通过机器ID和/或电子成员身份证书对客户机终端设备604、705或其它设备进行验证。注意,可以通过访问适当的数据库,例如,个人化数据库606、707,实现这一点。在步骤S102,优选的是,客户机终端设备604、705或其它设备通过网络605、706把电子支付票传输至管理服务器601、704。作为响应,优选的是,管理服务器601、704产生电子租用票(步骤S104),并且通过网络605、706把电子租用票传输至客户机终端设备604、705或其它设备(步骤S106)。
优选的是,电子租用票向用户(或者客户机终端设备604、705)提供一定级别的租用权,这一级别的租用权等于或大于电子支付票所提供的租用权.例如,电子租用票可以指定计算机程序标题、租用时间、汇款额,并且还可以包括额外的信息,例如能够对加密的计算机程序进行解密的解密密钥(假设解密密钥不包含在电子支付票中).不要求电子租用票包括解密密钥,其包括仅仅作为例子而给出.还考虑到:电子租用票可以按加密的形式包括解密密钥,例如,通过使用机器ID或者利用可以是电子成员身份证书的一部分的其它信息(例如,虚拟ID等),来对其加密.在任何情况下,在过程的这一时刻,优选的是,用户已接收到一定级别的租用权,但还没有接收到计算机程序或计算机程序的加密的版本.
参照图40,优选的是,客户机终端设备604、705通过网络605、706建立与分布器的通信链接(步骤S108)。作为响应,例如,分布器可以通过机器ID和/或以上所论述的电子成员身份证书的分析来对客户机终端设备604、705进行验证(步骤S110)。接下来,例如,优选的是,客户机终端设备604、705或其它设备通过网络605、706把电子租用票(或至少其一部分)传输至分布器(步骤S112)。优选的是,其向分布器指示:客户机终端设备604、705或其它设备已经完成了所有先前必须的步骤,使得可授权客户机终端设备接收用于租用的计算机程序的加密的版本(步骤S114)。在过程的这一时刻,优选的是,客户机终端设备604、705或其它设备已经具有机器ID、电子支付票、电子租用票、加密的解密密钥、以及加密的计算机程序。
用户可以利用以上针对本发明的先前实施例所描述的过程,加载、安装和执行计算机程序,以及调整客户机终端设备的处理能力。因此,该租用系统使得能够通过网络605、706,使用任何客户机终端设备604、705,向用户安全分布租用的程序内容。
本发明还适合于这样的应用,即用户购买运行某具体软件程序的权利、或者这样的程序的特定版本,以独立于任何具体的设备加以运行。例如,用户可以购买在任何控制台,例如用户自己的控制台、另一个用户所拥有的控制台、或位于游乐场的娱乐厅游戏机上运行特定游戏程序或其它软件程序的权利。
用户还可以拥有存储在诸如盘或其它存储设备等可移动软件媒体上的游戏程序或其它软件程序的特定版本的拷贝,并且可以把该程序从存储媒体拷贝至用户的控制台、另一个用户的控制台、或者娱乐厅游戏机。或者,用户可以仅具有运行游戏程序或其它软件程序的某特定版本的权利。在这两种情况中的每一种情况下,用户还可以具有用户ID、或者其它验证信息,例如电子证书(虚拟ID等)。
当这样的用户希望在诸如用户的控制台、另一个用户的控制台、或者娱乐厅游戏机的设备上执行游戏程序或其它软件程序,以及已经把该程序的拷贝存储在控制台中时,可以要求用户验证信息,以在控制台上执行该程序,和/或以准许控制台获取准许程序在控制台上适当执行的必须的软件和/或数据模块。或者,当没有把游戏程序或其它软件程序存储在用户的控制台、另一个用户的控制台、或者娱乐厅控制台上时,可以要求验证信息,以准许控制台下载用户已购买了权利的程序的版本,和/或以接下来获取为获取针对所述控制台的适当软件版本所需的软件和/或数据模块。
可以按以上参照图37~40所描述的方式执行用户验证。即,通过传输来自另一个设备,例如来自用户的移动电话、PDA或其它设备的验证信息,来执行用户验证。或者,通过传输通过人工输入数据、刷磁卡或智能卡、或者当控制台为用户的控制台时读取已经存储于用户的控制台中的数据,而输入控制台的成员身份证书、或其它数据,来执行用户验证。
如以上参照图11和27所描述,可以把用户验证信息传输至一或多个管理服务器601、704、第三方服务器602、701,分布服务器703、或某其它服务器(未示出).此外,还可以经由一或多个服务器,按以上参照图5~36所描述的方式,下载其权利为用户所拥有的游戏程序或其它软件程序、以及控制台上的游戏程序或其它软件程序的适当操作所需的软件和/或数据模块.
在这一方式下,运行游戏程序或其它软件程序的权利的拥有者可以在任何设备上执行该程序,所述设备诸如拥有者的控制台、另一个拥有者的控制台、或者使用最适合该控制台的软件的版本的公共(娱乐厅)控制台。
以下为根据本发明的替代方面的诸如娱乐厅游戏机的硬件设备的例子。总体上,娱乐厅游戏机的性能高于家庭游戏控制台。存在着某些这样的游戏程序:仅当把游戏程序加载在显示尺寸大于家庭游戏控制台并且视频/声音性能高于家庭游戏控制台的娱乐厅游戏机上时,玩游戏的人才能享受到充分的真实感。于是,可以把以上所解释的系统并入诸如娱乐厅游戏机的硬件设备。在这一情况下,用户可以根据用户的关于家庭游戏控制台的软件包的许可证,把软件包的视频游戏计算机程序加载到诸如娱乐厅游戏机的硬件设备中。从而,所述硬件设备可以经由网络获取适合处理器的处理能力的软件程序的版本。因此,用户可以在另一个硬件设备以及用户的家庭游戏控制台中享用软件包的游戏程序。
分布器服务器从连接至网络的硬件设备接收用户ID。分布器服务器根据用户的购买历史或验证历史,来验证用户将加载的软件程序是否由用户正当购买。替代地,或者另外,分布器服务器从硬件设备接收软件ID,并且通过与存储在数据库中的ID进行匹配,来验证该软件ID。在这两种情况中的任何一种情况下,当验证成功时,分布器服务器把用户将加载的部分程序或整个软件程序分布至硬件设备。
当传送预先确定的项目或者切断验证会话时,可以自动删除存储在硬件设备中的高速缓冲存储器或硬盘驱动器中的所下载的软件程序。
只要把针对用户ID或软件ID的验证系统并入硬件设备中,或者可以通过经由网络连接至分布器服务器来进行针对用户ID或软件ID的验证,则可以使用任何类型的硬件设备。在这一情况下,用户通过控制器把用户ID或软件ID输入到硬件设备中。即使硬件设备本身不具有用于加载用户所购买的软件包的媒体的驱动器,如果硬件设备可以验证用户ID或软件ID,则硬件设备也可以通过经由网络下载完整的软件程序来加载软件程序。
取代由用户人工地输入软件ID,也可以通过非接触型ID读取器来读取软件包上所示的软件ID。取代通过用户ID进行验证,也可以使用高度安全的生物统计学验证,例如指纹验证或者视网膜验证。
当用户所购买的软件包是可触型包媒体,例如CD-ROM、DVD-ROM或者蓝光盘时,可以取代软件ID,把软件包特有的媒体ID用于验证。具体地讲,当软件包是具有大存储容量的RAM型或可重写型蓝光盘时,可以把验证后从分布器服务器所下载的软件程序和/或数据模块存储在盘的空存储空间中,致使无需进一步的验证。
当用户通过网络购买软件包时,可以把存储所下载的软件程序的硬盘ID用作媒体ID。
当通过具有用户识别功能和支付功能的电子货币或信用卡输入用户ID时,可以立即完成验证和支付。
除视频游戏之外,软件包的内容可以包括娱乐内容,例如电影.在这一情况下,通过下载用于播放娱乐厅游戏机上的电影或来自分布器服务器的戏剧的更新软件,可以设置更好的播放环境.
尽管此处已参照具体的实施例描述了本发明,但应该认识到,这些实施例仅示例性地描述了本发明的原理与应用。因此,应理解为:在不背离所附权利要求所限定的本发明的构思与范围的情况下,可以对这些示例性实施例进行多方面的修改,并且可以设计其它的配置。
工业实用性
本发明适合于存在与支持一整套软件程序相关联的一些问题的、具有多处理器的处理单元。

Claims (24)

1.一种在具有多个处理设备的系统中使得能够执行软件程序的方法,其中每个处理设备包括不同数目的处理器,每个处理器可用于执行处理器任务,所述方法包括:
获取指示软件程序的版本的标识信息;
获取指示所述处理设备的处理能力的处理标识符;
基于所述标识信息和所述处理标识符,判断软件程序将在其上执行的所述处理设备的处理能力是否与该软件程序的版本的适当执行不兼容;以及
至少部分地修改软件程序的版本,以得到将在所述处理设备上适当执行的软件程序的更适当版本。
2.根据权利要求1所述的方法,其中,当下列处理条件的至少一个与软件程序的所述版本的适当执行所需的条件不兼容时,所述处理设备的处理能力与软件程序的所述版本的适当执行不兼容:时钟频率、存储器映射、总线利用率、总线带宽、高速缓冲存储器大小、高速缓冲存储器构成、指令延迟、指令吞吐量、存储器延迟、存储器吞吐量、字节存储次序、以及指令类型。
3.根据权利要求1所述的方法,其中,所述标识信息是软件程序的一部分,并且所述获取步骤包括从软件程序中获取标识信息。
4.根据权利要求1所述的方法,其中,所述获取步骤包括从存储媒体中获取标识信息,并且所述存储媒体是光盘媒体、磁媒体以及电子媒体中的至少一个。
5.根据权利要求1所述的方法,其中,所述判断步骤包括判断在执行软件程序的过程中是否所述处理设备能够使用来自一或多个外部处理器的处理资源。
6.根据权利要求1所述的方法,还包括:
使用标识信息和处理标识符来访问表,以得到软件程序的其它版本,所述表与下列相关联:(i)多个软件程序的分别的标识信息,(ii)处理标识符,以及(iii)具有可用于至少部分地修改软件程序的版本的软件程序和数据中的至少一个的模块;以及
使用至少一个相关联的模块,以至少部分地修改软件程序的版本,来得到软件程序的更适当版本。
7.根据权利要求6所述的方法,其中,所述修改步骤包括至少部分地盖写存储媒体中的软件程序的版本。
8.根据权利要求6所述的方法,其中,按下列方式中的至少一个来存储所述表:本地存储在具有所述处理设备的公共位置,存储在远程定位的管理实体中,或者存储在由远程定位的管理实体访问的其它的位置。
9.根据权利要求8所述的方法,还包括:
使用通信信道,建立所述处理设备和管理实体之间的链接;以及
通过通信信道,把标识信息和处理标识符从所述处理设备传输至管理实体。
10.根据权利要求9所述的方法,其中,所述管理实体使用标识信息和处理标识符来访问所述表,以获取至少一个相关联的模块。
11.根据权利要求10所述的方法,还包括:
通过通信信道,在所述处理设备,从管理实体接收至少一个相关联的模块;以及
使用至少一个相关联的模块来修改软件程序的版本,以得到软件程序的更适当的版本。
12.根据权利要求11所述的方法,还包括:
响应于标识信息,通过通信信道,从管理实体接收加密的解密密钥;
对加密的解密密钥进行解密;以及
使用解密密钥对至少一个相关联的模块进行解密。
13.根据权利要求11所述的方法,还包括:
响应于标识信息,通过通信信道,从管理实体接收登记数据;
通过通信信道,把登记数据传输至分布器;
响应于登记数据,通过网络,从分布器接收处理设备处的加密的解密密钥和加密的虚拟ID;
使用虚拟ID对加密的解密密钥进行解密;以及
使用解密密钥对至少一个相关联的模块进行解密。
14.根据权利要求11所述的方法,还包括:
从管理器接收非激活的解密密钥;
通过通信信道,把激活请求传输至管理实体;
响应于激活请求,通过通信信道,从管理实体接收激活许可信息;
响应于激活许可信息,把非激活的解密密钥转换成激活的解密密钥;以及
使用激活的解密密钥对至少一个相关联的模块进行解密。
15.根据权利要求1所述的方法,其中,所述软件程序包括游戏程序。
16.根据权利要求1所述的方法,其中,所述标识信息指示用户执行多个处理设备中任何一个上的软件程序的权利。
17.根据权利要求1所述的方法,还包括在至少部分地修改软件程序的版本的所述步骤之前,使用标识信息来获取软件程序的版本。
18.根据权利要求17所述的方法,其中,按下列方式中的至少一个来存储软件程序的版本:本地存储在与所述处理设备公共的位置,存储在远程定位的管理实体中,或者存储在由远程定位的管理实体访问的其它位置。
19.根据权利要求18所述的方法,还包括:
使用通信信道,建立所述处理设备和管理实体之间的链接;
通过通信信道,把标识信息从所述处理设备传输至管理实体,所述管理实体使用标识信息来获取软件程序的版本;以及
通过通信信道,在所述处理设备,从管理实体接收软件程序的版本。
20.根据权利要求19所述的方法,还包括:
使用通信信道,建立其它设备和管理实体之间的链接;
通过通信信道,把标识信息从其它设备传输至管理实体,所述管理实体使用标识信息来获取软件程序的版本;以及
通过通信信道,在所述处理设备,从管理实体接收软件程序的版本。
21.一种系统,包括:
多个处理设备,每个包括:
不同数目的子处理单元,每个可用于执行处理器任务;
主处理单元,可用于对子处理单元执行至少某些管理处理任务;以及
数据总线,可操作地耦接主处理单元和子处理单元;
其中,所述多个处理设备中的一个处理设备可用于:(i)获取指示软件程序的版本的标识信息,(ii)获取指示所述处理设备的处理能力的处理标识符,并基于所述标识信息和所述处理标识符,判断将在其上执行软件程序的所述处理设备的处理能力是否与软件程序的版本的适当执行不兼容,以及(iii)至少部分地修改软件程序的版本,以得到将适当执行的软件程序的更适当版本。
22.如权利要求21所述的系统,还包括:
远程定位的管理实体;以及
通信信道,可用于提供所述多个处理设备中的每个与管理实体之间的通信链接;
所述多个处理设备中的一个处理设备可用于执行所述任务(i)到(ii),以及(iii)通过通信信道,把标识信息和与该处理设备相关联的所述处理标识符传输至管理实体;
所述管理实体可用于:(i)使用标识信息和所述处理标识符,以获取具有可用于至少部分地修改软件程序的版本的软件程序和数据中的至少一个的、至少一个相关联的模块,以及(ii)把至少一个模块传输至相关联的处理设备;
所述相关联的处理设备还可用于至少部分地修改软件程序的版本,以得到将适当执行的软件程序的更适当版本。
23.一种在具有多个处理设备的系统中使得能够执行软件程序的设备,其中每个处理设备包括不同数目的处理器,每个处理器可用于执行处理器任务,所述设备包括:
装置,用于获取指示软件程序的版本的标识信息;
装置,用于获取指示所述处理设备的处理能力的处理标识符;
装置,用于基于所述标识信息和所述处理标识符,判断将在其上执行软件程序的所述处理设备的处理能力是否与该软件程序的版本的适当执行不兼容;以及
装置,用于至少部分地修改软件程序的版本,以得到将在所述处理设备上适当执行的软件程序的更适当版本。
24.一种在具有多个处理设备的系统中使得能够执行软件程序的方法,其中每个处理设备包括不同数目的处理器,每个处理器可用于执行处理器任务,所述方法包括:
提供软件程序的版本;
获取指示软件程序的版本的标识信息;
获取指示所述处理设备的处理能力的处理标识符;
基于所述标识信息和所述处理标识符,判断将在其上执行软件程序的所述处理设备的处理能力是否与软件程序的版本的适当执行不兼容;
至少部分地修改软件程序的版本,以得到将在所述处理设备上适当执行的软件程序的更适当版本;以及
把软件程序的更适当版本存储在记录媒体上。
CN2005800019469A 2004-09-20 2005-09-16 分布软件应用的方法与设备 Expired - Fee Related CN1906576B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US61147704P 2004-09-20 2004-09-20
US60/611,477 2004-09-20
PCT/JP2005/017547 WO2006033419A1 (en) 2004-09-20 2005-09-16 Methods and apparatus for distributing software applications

Publications (2)

Publication Number Publication Date
CN1906576A CN1906576A (zh) 2007-01-31
CN1906576B true CN1906576B (zh) 2010-05-12

Family

ID=35431977

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005800019469A Expired - Fee Related CN1906576B (zh) 2004-09-20 2005-09-16 分布软件应用的方法与设备

Country Status (6)

Country Link
US (1) US8176481B2 (zh)
EP (1) EP1803062A1 (zh)
JP (1) JP4578366B2 (zh)
CN (1) CN1906576B (zh)
TW (1) TWI292880B (zh)
WO (1) WO2006033419A1 (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006099411A (ja) * 2004-09-29 2006-04-13 Oki Electric Ind Co Ltd ソフトウェアの使用制限方法
JP4886428B2 (ja) * 2005-09-15 2012-02-29 株式会社東芝 情報提供システムとコンテンツ情報複製装置、ユーザ端末装置及びユーザ管理装置
US20080071617A1 (en) * 2006-06-29 2008-03-20 Lance Ware Apparatus and methods for validating media
US8112508B1 (en) * 2006-09-08 2012-02-07 Dell Products L.P. Delivering data from device management services to devices using bulletin system
US20080270913A1 (en) * 2007-04-26 2008-10-30 Howard Singer Methods, Media, and Devices for Providing a Package of Assets
CN101682506B (zh) 2007-05-18 2013-10-16 美国唯美安视国际有限公司 用于确定在保护数据时应用的可编程处理步骤的系统和方法
US8171536B2 (en) * 2007-05-23 2012-05-01 Sony Computer Entertainment America Inc. Method and apparatus for authenticating users in a network
JP5064943B2 (ja) * 2007-09-05 2012-10-31 株式会社リコー 情報処理装置、情報処理方法及び情報処理プログラム
US8832552B2 (en) * 2008-04-03 2014-09-09 Nokia Corporation Automated selection of avatar characteristics for groups
JP2011238007A (ja) * 2010-05-10 2011-11-24 Canon Inc 配信装置、プログラム配信システム、配信方法及びプログラム
US8620914B1 (en) 2010-05-18 2013-12-31 Google Inc. Ranking of digital goods in a marketplace
US20110302390A1 (en) * 2010-06-05 2011-12-08 Greg Copeland SYSTEMS AND METHODS FOR PROCESSING COMMUNICATIONS SIGNALS fUSING PARALLEL PROCESSING
KR101885133B1 (ko) * 2011-02-01 2018-08-03 삼성전자주식회사 디지털 디바이스에서 어플리케이션 자동 인스톨 기능을 제공하기 위한 장치 및 방법
CN102790753B (zh) * 2011-05-20 2015-11-04 腾讯科技(深圳)有限公司 一种查询即时通讯客户端能力信息的方法及装置
KR101850817B1 (ko) 2011-11-17 2018-04-23 삼성전자주식회사 서로 다른 단말에 어플리케이션을 자동으로 설치하는 장치 및 방법
CN103136003A (zh) * 2011-11-22 2013-06-05 周忠信 用于移动装置的一次性应用程序产品及其操作方法
CN103176805B (zh) * 2011-12-21 2017-09-19 富泰华工业(深圳)有限公司 可执行程序安装的方法及系统
DE102013021158A1 (de) * 2013-12-10 2015-06-11 Fresenius Medical Care Deutschland Gmbh Verfahren zum Update und/oder Upgrade der Betriebssoftware eines elektronischen Gerätes
US9830141B2 (en) * 2013-12-23 2017-11-28 Google Llc Providing a software update to computing devices on the same network
US10140110B2 (en) * 2014-04-02 2018-11-27 Ford Global Technologies, Llc Multiple chunk software updates
US9760113B2 (en) 2015-02-20 2017-09-12 Sony Interactive Entertainment America Llc Backward compatibility through use of spoof clock and fine grain frequency control
CN104657186A (zh) * 2015-03-20 2015-05-27 南通国芯微电子有限公司 一种新型编程方法
CN112384913A (zh) * 2018-05-09 2021-02-19 环汇系统有限公司 终端硬件配置系统
CN110244976A (zh) * 2019-05-21 2019-09-17 深圳壹账通智能科技有限公司 应用程序版本切换方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5577232A (en) * 1991-06-17 1996-11-19 Sun Microsystems, Inc. Method and apparatus for allowing computer circuitry to function with updated versions of computer software
US6487723B1 (en) * 1996-02-14 2002-11-26 Scientific-Atlanta, Inc. Multicast downloading of software and data modules and their compatibility requirements

Family Cites Families (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4688169A (en) 1985-05-30 1987-08-18 Joshi Bhagirath S Computer software security system
US5046090A (en) 1990-03-29 1991-09-03 Gte Laboratories Incorporated Recorded medium for video control system
JPH04195634A (ja) * 1990-11-28 1992-07-15 Fujitsu Ltd 異常検出方式
US5537529A (en) * 1993-04-22 1996-07-16 Apple Computer, Inc. Apparatus and method for creating versions of computer models and creating communications incorporating created versions therefrom
BR9402027A (pt) * 1993-05-28 1994-12-13 Xerox Corp Processo para gerenciar uma configuração e assegurar compatibilidade entre componentes num sistema de computação, e, processo para eliminar incompatibilidades entre software residente e software de migração num sistema de computador automatizado
US5835911A (en) * 1994-02-08 1998-11-10 Fujitsu Limited Software distribution and maintenance system and method
US5805551A (en) 1994-04-18 1998-09-08 Matsushita Electric Industrial Co., Ltd. Method and apparatus for preventing illegal copy or illegal installation of information of optical recording medium
US5598470A (en) 1994-04-25 1997-01-28 International Business Machines Corporation Method and apparatus for enabling trial period use of software products: Method and apparatus for utilizing a decryption block
US5757907A (en) 1994-04-25 1998-05-26 International Business Machines Corporation Method and apparatus for enabling trial period use of software products: method and apparatus for generating a machine-dependent identification
JP3507594B2 (ja) 1995-07-31 2004-03-15 株式会社東芝 コンピュータ
US7191154B2 (en) 1995-10-09 2007-03-13 Matsushita Electric Industrial Co., Ltd. Apparatus for encrypting and recording received content information on a recording medium using both medium identification information and a cipher key for encryption
US5812883A (en) * 1995-11-22 1998-09-22 Mitsubishi Chemical America, Inc. System for reading and storing formatting information after formatting a first storage medium and using the stored formatting information to format a second storage medium
JP3176030B2 (ja) 1996-01-08 2001-06-11 株式会社東芝 複製制御方法及び複製制御装置
US5862325A (en) 1996-02-29 1999-01-19 Intermind Corporation Computer-based communication system and method using metadata defining a control structure
GB2321322B (en) * 1996-10-28 2001-10-10 Altera Corp Remote software technical support
US6115471A (en) 1996-11-28 2000-09-05 Fujitsu Limited Member-exclusive service system and method through internet
US6006190A (en) 1997-04-28 1999-12-21 Tartaroukos Llc Computer implemented method and a computer system for enforcing software licenses
US20010010046A1 (en) * 1997-09-11 2001-07-26 Muyres Matthew R. Client content management and distribution system
JP3660815B2 (ja) 1997-12-10 2005-06-15 株式会社日立製作所 ディジタル放送信号の受信装置及び記録再生装置
US5982892A (en) 1997-12-22 1999-11-09 Hicks; Christian Bielefeldt System and method for remote authorization for unlocking electronic data
US6571206B1 (en) 1998-01-15 2003-05-27 Phoenix Technologies Ltd. Apparatus and method for emulating an I/O instruction for the correct processor and for servicing software SMI's in a multi-processor environment
US7171662B1 (en) 1998-03-18 2007-01-30 Microsoft Corporation System and method for software licensing
US6189146B1 (en) 1998-03-18 2001-02-13 Microsoft Corporation System and method for software licensing
JP3239842B2 (ja) 1998-05-08 2001-12-17 日本電気株式会社 ソフトウェアの不正利用防止システム
DE69940281D1 (de) 1998-07-22 2009-02-26 Panasonic Corp Digitale Datenaufzeichnungsvorrichtung und Verfahren zum Urheberrechteschutz und zur leichteren Wiedergabe von verschlüsselten Daten und rechnerlesbares Aufzeichnungsmedium zur Programmaufzeichnung
US6226618B1 (en) 1998-08-13 2001-05-01 International Business Machines Corporation Electronic content delivery system
US6983371B1 (en) 1998-10-22 2006-01-03 International Business Machines Corporation Super-distribution of protected digital content
US6607136B1 (en) 1998-09-16 2003-08-19 Beepcard Inc. Physical presence digital authentication system
US6567915B1 (en) 1998-10-23 2003-05-20 Microsoft Corporation Integrated circuit card with identity authentication table and authorization tables defining access rights based on Boolean expressions of authenticated identities
JP2000242604A (ja) 1999-02-19 2000-09-08 Fujitsu Ltd コンテンツ配布システム、端末装置および記録媒体
CN1168304C (zh) 1999-03-15 2004-09-22 汤姆森许可公司 数字本地网络的一种全球拷贝保护系统
US7124938B1 (en) 1999-03-24 2006-10-24 Microsoft Corporation Enhancing smart card usage for associating media content with households
JP3763702B2 (ja) 1999-05-27 2006-04-05 富士通株式会社 データ運用方法
US6971022B1 (en) 1999-06-15 2005-11-29 Matsushita Electric Industrial Co., Ltd. Cryptographic apparatus for performing cryptography on a specified area of content data
US7100195B1 (en) 1999-07-30 2006-08-29 Accenture Llp Managing user information on an e-commerce system
US6427132B1 (en) 1999-08-31 2002-07-30 Accenture Llp System, method and article of manufacture for demonstrating E-commerce capabilities via a simulation on a network
US7213005B2 (en) 1999-12-09 2007-05-01 International Business Machines Corporation Digital content distribution using web broadcasting services
US6889321B1 (en) 1999-12-30 2005-05-03 At&T Corp. Protected IP telephony calls using encryption
JP3508680B2 (ja) 2000-02-24 2004-03-22 日本電気株式会社 コンテンツ不正コピー防止方法およびシステム
TW550477B (en) 2000-03-01 2003-09-01 Passgate Corp Method, system and computer readable medium for Web site account and e-commerce management from a central location
US6677951B2 (en) * 2000-03-03 2004-01-13 Sony Computer Entertainment, Inc. Entertainment apparatus having compatibility and computer system
US6952770B1 (en) 2000-03-14 2005-10-04 Intel Corporation Method and apparatus for hardware platform identification with privacy protection
US7080039B1 (en) 2000-03-23 2006-07-18 David J Marsh Associating content with households using smart cards
US6668331B1 (en) * 2000-03-24 2003-12-23 Advantest Corp. Apparatus and method for successively generating an event to establish a total delay time that is greater than can be expressed by specified data bits in an event memory
US20020032905A1 (en) 2000-04-07 2002-03-14 Sherr Scott Jeffrey Online digital video signal transfer apparatus and method
AU2001255264B2 (en) 2000-04-07 2006-11-09 Blockbuster Inc. System and process for delivery of content over a network
US20020032584A1 (en) * 2000-04-10 2002-03-14 Jonathan Doctor Health care payment compliance management
US20010051928A1 (en) 2000-04-21 2001-12-13 Moshe Brody Protection of software by personalization, and an arrangement, method, and system therefor
US6779066B2 (en) * 2000-05-01 2004-08-17 Matsushita Electric Industrial Co., Ltd. Module having application-specific program stored therein
JP3964142B2 (ja) * 2000-08-15 2007-08-22 株式会社ソニー・コンピュータエンタテインメント エミュレート装置及び部品、情報処理装置、エミュレーション方法、記録媒体、プログラム
JP2002073421A (ja) 2000-08-31 2002-03-12 Matsushita Electric Ind Co Ltd ライセンス発行装置、コンテンツ再生装置、ライセンス発行方法、およびコンテンツ再生方法
US6732106B2 (en) 2000-12-08 2004-05-04 Matsushita Electric Industrial Co., Ltd. Digital data distribution system
US20020077988A1 (en) 2000-12-19 2002-06-20 Sasaki Gary D. Distributing digital content
US7143406B2 (en) * 2001-01-23 2006-11-28 Wildtangent, Inc. Asynchronous software update
US6993664B2 (en) 2001-03-27 2006-01-31 Microsoft Corporation Method and system for licensing a software product
US20020157090A1 (en) * 2001-04-20 2002-10-24 Anton, Jr. Francis M. Automated updating of access points in a distributed network
US7735080B2 (en) 2001-08-30 2010-06-08 International Business Machines Corporation Integrated system and method for the management of a complete end-to-end software delivery process
US7483433B2 (en) 2001-09-17 2009-01-27 Foundry Networks, Inc. System and method for router data distribution
AU2002354094B2 (en) 2001-12-13 2006-10-19 Sony Interactive Entertainment Inc. Methods and apparatus for secure distribution of program content
EP1456995B1 (en) * 2001-12-21 2012-01-18 Sony Computer Entertainment Inc. Methods and apparatus for secure distribution of program content
CA2369228A1 (en) * 2002-01-24 2003-07-24 Alcatel Canada Inc. System and method for managing configurable elements of devices in a network element and a network
JP2003256225A (ja) * 2002-03-06 2003-09-10 Mitsubishi Electric Corp コンピュータシステム、障害対応方法及びコンピュータシステムを機能させるためのプログラム
JP2004287818A (ja) * 2003-03-20 2004-10-14 Nec Corp 計算機の評価システム、計算機及び評価プログラム
US7644404B2 (en) * 2003-06-04 2010-01-05 Hewlett-Packard Development Company, L.P. Network having customizable generators and electronic device having customizable updating software
EP1505797B1 (en) * 2003-08-04 2005-05-11 Alcatel A method, a communication network and a computer software product for distributing software packages or updates
US20050066324A1 (en) 2003-09-22 2005-03-24 Microsoft Corporation Method and system for distributing and installing software
US7389505B2 (en) * 2004-07-30 2008-06-17 Extreme Networks, Inc. Method and apparatus for modifying software

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5577232A (en) * 1991-06-17 1996-11-19 Sun Microsystems, Inc. Method and apparatus for allowing computer circuitry to function with updated versions of computer software
US6487723B1 (en) * 1996-02-14 2002-11-26 Scientific-Atlanta, Inc. Multicast downloading of software and data modules and their compatibility requirements

Also Published As

Publication number Publication date
US8176481B2 (en) 2012-05-08
TW200632744A (en) 2006-09-16
WO2006033419A1 (en) 2006-03-30
US20060075397A1 (en) 2006-04-06
CN1906576A (zh) 2007-01-31
EP1803062A1 (en) 2007-07-04
JP4578366B2 (ja) 2010-11-10
JP2006092541A (ja) 2006-04-06
TWI292880B (en) 2008-01-21

Similar Documents

Publication Publication Date Title
CN1906576B (zh) 分布软件应用的方法与设备
US8751793B2 (en) Trusted infrastructure support systems, methods and techniques for secure electronic commerce transaction and rights management
US7415617B2 (en) Trusted infrastructure support systems, methods and techniques for secure electronic commerce, electronic transactions, commerce process control and automation, distributed computing, and rights management
US8190528B2 (en) Trusted infrastructure support systems, methods and techniques for secure electronic commerce, electronic transactions, and rights management
EP0974129B1 (en) Trusted infrastructure support systems, methods and techniques for secure electronic commerce, electronic transactions, commerce process control and automation, distributed computing, and rights management
US20080120240A1 (en) Trusted infrastructure support systems, methods and techniques for secure electronic commerce, electronic transactions, commerce process control and automation, distributed computing, and rights management
KR20110045104A (ko) 라이센스 중심의 콘텐츠 소비를 위한 방법, 시스템, 및 장치
KR101213913B1 (ko) 라이센스 중심의 콘텐츠 소비를 위한 방법, 시스템, 및장치
US20070005644A1 (en) Method of protecting copyright of digital publication and the system therefor
CN115210736A (zh) 用于在分布式账本网络中对内容进行安全对等传输的系统和方法
Fairfield Property as the law of virtual things
KR20230165101A (ko) 메타버스 공간에 적용되는 nft 기반의 고유 계정 및 암호화를 이용한 음원 및 nft id 서비스 제공 방법 및 장치
KR101213818B1 (ko) 라이센스 중심의 콘텐츠 소비를 위한 방법, 시스템, 및장치
Brennan Music Copyright Management using Smart Contracts and Tokenization on the Ethereum Blockchain
CN101901324B (zh) 许可证中心的内容消费的方法、系统和设备
US20240086915A1 (en) Systems and Methods for Token-based Asset Ownership
Kraft Horizontal scalability of blockchain games using the GSP model
TW202349303A (zh) 資訊處理系統、資訊處理方法及程式
CN103353927B (zh) 许可证中心的内容消费的方法、系统和设备

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100512

Termination date: 20130916