用于许可数字应用程序的柔性许可架构的制作方法

文档序号:6554509阅读:182来源:国知局
专利名称:用于许可数字应用程序的柔性许可架构的制作方法
技术领域
本发明涉及用于提供许可以便在计算装置等上操作数字应用程序的许可架构。更特别地,本发明涉及如此的许可架构,其中只需要发布具有多个可用特征的一个版本的电子应用程序,且其中发行给特殊用户的特殊许可指定用户可使用哪些可用特征。因此,应用程序的出版者不需要发布同一应用程序的多个版本,且获得许可的用户可以选择要许可多个可用特征中的哪些。
背景技术
在诸如数字应用程序等的数字内容方面,极需要权利管理和实施,其中这种数字应用程序将分配给一个或多个用户。分配的典型模式包括诸如磁盘(软盘)、磁带、光盘(紧致盘)(CD)等的有形装置以及诸如电子公告栏、电子网络、因特网等的无形媒体。在用户在其计算装置上接收时,这种用户能在计算装置上的合适操作系统的帮助下激活应用程序。
通常,应用程序的作者和/或出版者希望将这种应用程序分配给许多用户或接收者中的每一个,以许可费或某些其它报酬为交换。随后在这种情形中,应用程序可以是文字处理应用程序、电子表格应用程序、浏览器应用程序、游戏应用程序、媒体播放器应用程序、它们的组合等。已知选择的这种作者/出版者或其它类似的实体(以下,“出版者”)将可能希望限制每个用户能对这些出版的应用程序作些什么。例如,出版者希望限制用户不能将这种应用程序拷贝并重新分配给第二个用户,至少处于这种第二个用户不承认出版者的许可费的方式。
但是,在出版后,如果能控制该应用程序的话,这种出版者对其也只具有很少的实际控制。在考虑到实际上所有个人计算机都包括进行这种应用程序的精确数字拷贝以及下载这种精确数字拷贝到可写磁盘或光盘或者在诸如因特网的网络上将这种精确数字拷贝发送给任何目的地所必需的软件和硬件,这是特别成问题的。
当然,作为分配应用程序的交易的一部分,出版者可以要求应用程序的用户/接收者承诺不以不受欢迎的方式再分配这种应用程序。但是,这种承诺易于作出也易于破坏。出版者可以通过几种已知安全装置中的任一种尝试防止这种再分配,这通常包括加密和解密。但是,这很难防止一适度确定的用户将被加密的应用程序解密,以未加密形式保存该应用程序,随后将其再分配。
此外,出版者会希望向用户提供购买不同类型或版本的应用程序的灵活性。例如,出版者希望以高价提供全部特征版而以低价提供基本版。同样,出版者希望提供商业版和家庭版、学生版和教师版等等。但注意,在现有技术中,应用程序的每个这种版本将需要出版者分配分开的一组操作码。因此,如应理解的,提供同一应用程序的多个版本要求出版者以可观的花销分开地维护、打包和销售每一个这种版本。此外,很可能要以更可观的花销分开地支持、更新和调试每一个这种版本。同样,在发现应用程序中的错误或故障时,如果实际上错误存在于所有这些版本中的情况下,可能必需分开地检查和纠正每一个这种版本,这再一次需要可观的花销。
为了向用户提供购买不同版本的应用程序的灵活性,出版者会以不同的许可费提供不同类型的使用许可,而同时将该用户保持于实际购买的许可类型条件。例如,在应用程序包括多个可用特征的情况下,出版者希望向用户提供要许可的这些可用特征/版本的菜单,或甚至允许用户选择要许可的可用特征中的一些特殊特征。因此,购买这种许可的用户将能使用由许可启用的应用程序的可用特征,并将被限制不能使用未由许可启用的应用程序的可用特征。可假定,许可费将根据其所启用的可用特征而变化。
显然,通过提供用于应用程序的多种类型的许可或者通过提供用于应用程序的定制许可,出版者可以避免必须分配各自适合特定一组可用特征的应用程序的多个截然不同的版本。取而代之,出版者仅需分配具有所有可用特征的应用程序的单个基本拷贝,随后提供仅启用所有这些可用特征的一特定子组的许可。如可理解的,如果以在没有有效许可的情况下应用程序不可操作的形式分配应用程序的单个基本拷贝,则这种应用程序就能被自由分配和再分配,且仅在这种用户获得了来自出版者及其代理的许可的情况下可进行操作。
先前已提供了权利管理(RM)和执行架构及方法,以允许任意形式的数字应用程序的受控操作,其中这种控制是灵活的和可由这种应用程序的出版者限定的。通常,提供数字许可来操作应用程序,其中在没有这种许可的情况下该应用程序不能以有意义的方式被启动。例如,它可以是对至少一部分应用程序加密且许可包括用于解密这些加密部分的解密钥的情况。此外,它可以是许可被绑定到用户或其计算装置,且这种计算装置包括确保许可条件被兑现的安全部特征的情况。
但是,迄今未把这种RM架构用于实现许可架构,其中仅需要发布具有多个多个可用特征或版本的数字应用程序的一个拷贝,以使发行给特殊用户的特殊许可指定用户能使用哪些可用特征/版本。因此,存在对这种许可架构的需要,从而应用程序的出版者不需要发布同一应用程序的多个版本,且获得许可的用户能选择要许可这多个可用特征/版本中的哪些。

发明内容
本发明至少部分满足前述需要,其中提供了一种方法来获得用于在计算装置上使用应用程序的使用许可,其中该应用程序包括多项特征。在该方法中,与零售商进行交易以便从该零售商获得与应用程序相对应的产品许可,其中该产品许可定义基于该产品许可可以使用的应用程序的至少一项特征。此外,应用程序的基本拷贝从分配者处获得并被启动。使用许可对应于产品许可并借助启动的应用程序从许可人处获取,该启动的应用程序将产品许可连同用户、计算装置和计算装置上运行的信任组件中的至少一个的标识发送给许可人,其中使用许可包括特征策略,它准许使用产品许可中定义的每项特征的权利。


本发明的以上概述以及本发明实施例的以下详细描述将当结合附图进行阅读时得以更好地理解。出于说明本发明的目的,在附图中示出了当前优选的附图实施例。但应理解,本发明不限于所示的精确结构和手段。附图中,图1是表明可实现本发明的示例性非限制性计算环境的框图。
图2是表明可实现本发明的具有多种计算装置的示例性网络环境的框图。
图3是示出根据本发明一个实施例的包括数字许可的基于信任的系统的一个示例的执行架构的框图。
图4是示出根据本发明一个实施例的用于发行使用许可以使用图3的应用程序版本的许可架构的框图。
图5是示出根据本发明一个实施例的在获得图3和4的使用许可期间执行的关键步骤的流程图。
图6是示出根据本发明一个实施例的在获得图3和4的使用许可以使用图3应用程序时执行的关键步骤的流程图。
图7是示出根据本发明一个实施例的在返回或传递图3和4的使用许可时执行的关键步骤的流程图。
具体实施例方式
计算机环境图1和以下讨论旨在提供可实现本发明的合适计算环境的简要的一般描述。但应理解,可考虑联系本发明使用手持、便携式和其它所有类型的计算机装置。虽然以下描述通用计算机,这仅仅是一示例,且本发明仅需要具有网络服务器互用性和交互性的瘦客户机。因此,可在包含了很少或最少的客户机资源的连网主机服务的环境中实现本发明,例如其中客户机装置仅用作浏览器或与万维网的接口的连网环境中。
虽然未要求,但可通过应用编程接口(API)实现本发明,以便由开发者使用,和/或包含在诸如程序模块的计算机可执行指令的一般上下文中描述的网络浏览软件内,所述计算机可执行指令由诸如客户机工作站、服务器或其它装置的一个或多个计算机执行。通常,程序模块包括执行特殊任务或实现特殊抽象数据类型的例程、程序、对象、组件、数据结构等。通常,在各种实施例中可以按需要组合或分配程序模块的特征。此外,本领域的熟练技术人员将理解,本发明可用其它计算机系统配置实施。适于与本发明一起使用的其它公知计算系统、环境和/或配置包括,但不限于,个人计算机(PC)、自动取款机、服务器计算机、手持或膝上装置、多处理器系统、基于微处理器的系统、可编程消费电子产品、网络PC、迷你计算机、大型机计算机等。本发明还可在分布式计算环境中实施,在分布式计算环境中任务由通过通信网络或其它数据传输媒介链接的远程处理装置执行。在分布式计算环境中,程序模块可位于包含存储器存储装置的本地或远程计算机存储媒体中。
因此,图1示出了可以实现本发明的合适计算系统环境100的示例,虽然如以上所解释的,计算系统环境100仅仅是合适计算环境的一个示例并非旨在暗示关于本发明的使用或特征范围的任何限制。不应把计算机环境100不应被解释为对于示例性操作环境100中所示的组件的任何一个或组合具有任何依赖性或要求。
参考图1,用于实现本发明的示例性系统包括计算机110形式的通用计算装置。计算机10的组件可包括,但不限于,处理单元120、系统存储器130和将包括系统存储器的各种系统组件耦合到处理单元120的系统总线121。系统总线121可以是几种类型的总线架构中的任一种,包括使用各种总线架构中的任一种的存储器总线或存储器控制器、外围总线和本地总线。作为示例而非限制,这些架构包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强ISA(EISA)总线、视频电子标准协会(VESA)本地总线和外围组件互连(PCI)总线(也称作Mezzanine总线)。
计算机110通常包括多种计算机可读媒体。计算机可读媒体可以是可由计算机110访问的任何可用媒体并包括易失性和非易失性媒体、可移动和不可移动媒体。作为示例而非限制,计算机可读媒体可包括计算机存储媒体和通信媒体。计算机存储媒体包括按任何方法或技术实现的易失性和非易失性、可移动和不可移动媒体,用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息。计算机存储媒体包括,但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CDROM、数字通用盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁性存储装置或者可用于存储期望的信息并可由计算机110访问的任何其它媒介。通信媒体通常在诸如载波或其它传输机制的调制数据信号中包含计算机可读指令、数据结构、程序模块或其它数据并包括任何信息传递媒体。术语“调制数据信号”表示具有按一定方式设定或改变其一种或多种特性以对信号中的信息编码的信号。作为示例而非限制,通信媒体包括诸如有线网络或直接线连接的有线媒体以及诸如声、RF、红外线和其它无线媒体的无线媒体。以上任何组合也应包含在计算机可读媒体的范围内。
系统存储器130包括易失性和/或非易失性存储器形式的计算机存储媒体,诸如只读存储器(ROM)131和随机存取存储器(RAM)132。包含帮助在计算机110内的元件之间传递信息(诸如在启动期间)的基本例程的基本输入/输出系统133(BIOS)通常存储在ROM131中。RAM132通常包含可直接访问和/或由处理单元120当前操作的数据和/或程序模块。作为示例而非限制,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110还可包括其它可移动/不可移动、易失性/非易失性计算机存储媒体。仅作为示例,图1示出了对不可移动的非易失性磁性媒体进行读写的硬盘驱动器141、对可移动的非易失性磁盘152进行读写的磁盘驱动器151以及对诸如CD ROM或其它光学媒介的可移动的非易失性光盘156进行读写的光盘驱动器155。示例性操作环境中可使用的其它可移动/不可移动、易失性/非易失性计算机存储媒体包括,但不限于,磁带盒、闪存卡、数字通用盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器141通常通过诸如接口140的不可移动存储器接口连接到系统总线121,且磁盘驱动器151和光盘驱动器155通常通过诸如接口150的可移动存储器接口连接到系统总线121。
以上讨论并在图1中示出的驱动器和它们的相关计算机存储媒体提供了用于计算机110的计算机可读指令、数据结构、程序模块和其它数据的存储。例如,图1中,示出硬盘驱动器141为存储操作系统144、应用程序145、其它程序模块146和程序数据147。注意,这些组件可以与操作系统134、应用程序135、其它程序模块136和程序数据137相同或不同。这里向操作系统144、应用程序145、其它程序模块146和程序数据147提供不同的编号以至少说明它们是不同的拷贝。用户可以通过诸如键盘162和通常称作鼠标、轨迹球或触摸垫的定点装置161的输入装置将命令和信息输入计算机110。其它输入装置(未示出)可包括麦克风、游戏杆、游戏垫、卫星碟、扫描仪等。这些和其它输入装置常通过与系统总线121耦合的用户输入接口160连接到处理单元120,但也可以通过诸如并行端口、游戏端口或通用串行总线(USB)的其它接口和总线结构连接。
监视器191或其它类型的显示装置也通过诸如视频接口190的接口连接到系统总线121。诸如北桥的图形接口182也可连接到系统总线121。北桥是与CPU或主机处理单元120通信的芯片组,且负责用于加速图形端口(AGP)通信。一个或多个图形处理单元(GPU)184可与图形接口182通信。在这点上,GPU184通常包括片载存储器存储,诸如寄存器存储,且GPU184与视频存储器186通信。但是,GPU184仅仪是协处理器的一个示例,因此多种协处理装置可包含于计算机110内。监视器191或其它类型的显示装置也可通过诸如视频接口190的接口与系统总线121相连,所述接口可与视频存储器186通信。除了监视器191之外,计算机还可包括其它外围输出装置,诸如扬声器197和打印机196,它们通过输出外围接口195连接。
计算机110可利用与诸如远程计算机180的一个或多个远程计算机的逻辑连接而在连网环境中操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等装置或其它普通网络节点,且通常包括与计算机110有关的上述元件中的许多或全部,尽管图1中仅示出了存储器存储装置181。图1所述的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但还可包括其它网络。这种连网环境在办公室、企业范围计算机网络、内联网和因特网中是普遍的。
当在LAN连网环境中使用时,计算机110通过网络接口或适配器170连接到LAN171。当在WAN连网环境中使用时,计算机110通常包括调制解调器172或用于在诸如因特网的WAN173上建立通信的其它装置。内部或外部的调制解调器172可经由用户输入接口160或其它合适的机制连接到系统总线121。在连网环境中,相对于计算机110及其部分描述的程序模块可存入远程存储器存储装置。作为示例而非限制,图1示出了驻留在存储器装置181上的远程应用程序185。可以理解,所示的网络连接是示例性的并可使用在计算机之间建立通信链接的其它装置。
本领域的普通技术人员之一可以理解,可部署计算机110或其它客户机装置可被部署作为计算机网络的一部分。在这点上,本发明关于具有任意数量存储器或存储单元的任何计算机系统,以及在任意数量的存储单元或容量上产生的任意数量的应用程序和进程。本发明可应用于具有有远程或本地存储的网络环境中部署的服务器计算机和客户机计算机的环境。本发明也可应用于具有编程语言特征、译码和执行能力的单独的计算装置。
分布式计算通过计算装置和系统之间的直接交换而促进共享计算机资源和服务。这些资源和服务包括信息的交换、高速缓存存储和文件的盘存储。分布式计算利用网络连接,允许客户机利用它们的集体能力的杠杆作用使整个企业受益。在这点上,多种装置可具有应用程序、对象或资源,它们可交互以暗示用于信任图形管道的本发明的验证技术。
图2提供了示例性连网或分布式计算环境的示意图。分布式计算环境包括计算对象10a、10b等以及计算对象或装置110a、110b、110c等。这些对象可包括程序、方法、数据存储、可编程逻辑等。对象可包括诸如PDA、电视机、MP3播放器、电视机、个人计算机等的相同或不同装置的一些部分。每个对象都可借助通信网络14与另一对象通信。这些网络本身可包括向图2系统提供服务的其它计算对象和计算装置。根据本发明的一个方面,每个对象10或110都可包含可请求用于信任图形管道的本发明验证技术的应用程序。
还可理解,诸如110c的对象可宿于另一计算装置10或110上。因此,尽管所述物理环境可将连接的装置示作计算机,但这种说明仅仅是示例性的,且该物理环境可以可选地被表现或描述成包括诸如PDA、电视机、MP3播放器等的各种数字装置,诸如接口、COM对象的软件对象等。
存在支持分布式计算环境的多种系统、组件和网络配置。例如,通过本地网络或较宽地分布的网络,计算系统可通过有线线路或无线系统连接在一起。当前,许多网络都耦合到因特网,它提供基础结构用于宽分布计算并包含许多不同的网络。
在家庭连网环境中,存在可各自支持唯一协议的至少四种异种网络传输媒体,诸如电力线、数据(无线和有线)、语音(例如,电话)以及娱乐媒体。诸如光开关和设备的多数家庭控制装置会使用电力线来连接。数据服务可以作为宽带(例如DSL或电缆调制解调器)进入家庭并可利用无线(例如HomeRF或802.11b)或有线(例如,Home PNA,Cat 5,甚至电力线)连接,并可在家庭内访问。语音通信可作为有线(例如,Cat 3)或无线(例如,蜂窝电话)进入家庭,并且可以利用Cat 3线路在家庭内分布。娱乐媒体可通过卫星或电缆进入家庭,并且通常利用同轴电缆在家庭中分布。IEEE 1394和DVI也作为用于媒体装置组的数字互连出现。所有这些网络环境及可以作为协议标准出现的其它环境可以互连以形成内联网,它可以通过因特网连接到外界。简言之,存在用于数据的存储和传输的多种异种源,因此进一步地,计算装置将需要在数据处理管道的所有部分处保护内容的方法。
“因特网”通常指使用TCP/IP协议组的网络和网关的集合,它们是计算机连网技术领域内公知的。TCP/IP是“传输控制协议/接口程序”的简称。因特网可描述为通过执行连网协议的计算机互连的地理分布的远程计算机网络的系统,所述协议允许用户在网络上交互和共享信息。由于这种广泛的信息共享,诸如因特网的远程网络通常发展成开放系统,使得开发者能设计软件应用程序用于执行专门操作或服务而基本不受限制。
因此,网络基础结构使许多诸如客户机/服务器、对等或混合架构的网络拓扑成为可能。“客户机”是使用与其无关的另一类或组的服务的一类或组的成员。因此,在计算过程中,客户机是一进程,即一般来说是一组指令或任务,它请求另一程序提供服务。客户机进程使用所请求的服务而不必“知道”关于该其它程序或服务本身的任何工作细节。在客户机/服务器架构中,特别是在连网系统中,客户机通常是访问另一计算机(例如服务器)提供的共享网络资源的计算机。在图2的示例中,计算机110a、110b等可以被认为是客户机而计算机10a、10b等可以被认为是服务器,其中服务器10a、10b等维护随后在客户机计算机110a、110b等中被复制的数据。
服务器通常是诸如因特网的远程网络上可访问的远程计算机系统。客户机进程可以在第一计算机系统中有效,而服务器进程可以在第二计算机系统中有效,它们在通信媒介上彼此通信,因此提供分布特征并允许多个客户机利用服务器的信息收集能力。
客户机和服务器利用协议层提供的特征彼此通信。例如,超文本传输协议(HTTP)是协同万维网(WWW)使用的普通协议。通常,使用诸如统一资源定位器(URL)或因特网协议(IP)地址的计算机网络地址用于彼此识别服务器或客户机计算机。网络地址可认为是统一资源定位器地址。例如,可以在通信媒介上提供通信。特别是,客户机和服务器可经由TCP/IP连接彼此耦合,用于高容量通信。
因此,图2示出了可采用本发明的示例性连网或分布式环境,其中服务器经由网络/总线与客户机计算机通信。更详细地,根据本发明,许多服务器10a、10b等经由通信网络/总线14互连,它们可以是LAN、WAN、内联网、因特网等,具有许多客户机或远程计算装置110a、110b、110c、110d、110e等,诸如便携式计算机、手持计算机、瘦客户机、连网设备或其它装置,诸如VCR、TV、烤箱、灯、加热器等。因此,本发明可应用于任何计算装置,可以期望连同它们处理、存储或表现来自信任源的安全内容。
例如在通信网络/总线14是因特网的网络环境中,服务器10可以是Web服务器,客户机110a、110b、110c、110d、110e等经由诸如HTTP的许多已知协议中的任一个与其通信。服务器10还可以用作客户机110,这是分布式计算环境的特征。只要合适,通信可以是有线或无线的。客户机装置110可以经由或可以不必经由通信网络/总线14通信,并且可以具有与其相关联的独立通信。例如,在TV或VCR的情况下,可以存在或不存在针对其控制的连网方面。每个客户机计算机110和服务器计算机10都可具备各种应用程序模块或对象135并具备与各种类型的存储元件或对象的连接或访问,可以通过它们存储文件或者可以下载或移动部分文件。因此,本发明可用于具有能访问并与计算机网络/总线14交互的客户机计算机110a、110b等以及与客户机计算机110a、110b等和其它装置111及数据库20交互的服务器计算机10a、10b等的计算机网络环境中。
权利管理(RM)概述已知并参考图3,在要分配给用户的数字应用程序32方面,权利管理(RM)和执行是非常期望的。在由用户接收时,这种用户在合适的计算装置34等的帮助下用具体例子说明应用程序32。
通常,分配这种数字应用程序32的应用程序作者或出版者(以下“出版者”)44希望限制用户能用这种分配的应用程序32做的事。例如,出版者44会希望限制用户不能复制和再分配这种应用程序32给第二个用户,或者会希望允许分配的应用程序32仅在有限次数内、仅在特定的总时间内、仅在特定类型的机器上、仅在特定类型的表现平台上、仅由特定类型的用户等才能允许激活分配的应用程序32。
然而,在发生分配后,这种出版者44如果对应用程序32有任何控制的话,也是很小的控制力。随后,RM系统30允许应用程序32的受控启动,其中这种控制是灵活的并可由这种应用程序32的出版者44定义。通常,应用程序32借助任何合适的分配信道以分组33的形式分配给用户。分配的分组33可以包括用对称的加密/解密密钥(KD)(即(KD(AP)))加密的应用程序32或者其一部分,以及标识应用程序32的其它信息,如何获得这种应用程序32的许可等。
基于信任的RM系统30允许应用程序32的出版者44指定在允许在用户的计算装置34上启动应用程序32前必须满足的许可规则。这些许可规则可包括前述时间要求,并可包含在用户/用户的计算装置34(除非另外的情况要求否则这些术语可互换)必须从出版者44或其代理获得的数字许可或使用文档(以下“许可”)36内。这种许可36还包括解密密钥(KD),用于解密应用程序32的加密部分,它可能是根据用户的计算装置34可解密的密钥进行加密的。如图3所示,这种加密密钥可以是用户计算装置34的公钥(PU-BB),且用户的计算装置34可能具有可解密(PU-BB(KD))的相应的私钥(PR-BB)。
应用程序32的出版者44必须信任用户的计算装置34将遵守许可36中这种出版者44指定的规则和要求,即除非满足了许可36内的规则和要求否则不启动应用程序32。较佳地,随后,向用户的计算装置34提供信任组件或机制38,它除了根据与应用程序32相关并由用户获得的许可36中所包含的许可规则之外将不启动应用程序32。
信任组件38通常具有许可鉴别器40,它确定许可36是否有效,检查这种有效许可36中的许可规则和要求,尤其按寻找的方式基于所检查的许可规则和要求来确定请求的用户是否有权启动相应的应用程序32。应理解,许可鉴别器40在RM系统30中被信任以根据许可36中的规则和要求实现应用程序32的出版者44的愿望,且用户不能为了邪恶的或相反的任何目的容易地改变这种信任元素。
应理解,许可36中的规则和要求可根据以下几项因素中的任一项指定用户是否有权启动应用程序32,包括用户是谁、用户在哪里、用户正使用的计算装置34的类型是什么、调用RM系统30的操作系统是什么、日期、时间等。此外,例如,许可36的规则和要求可以将许可36限制到预定数量的启动或者预定操作时间。因此,信任组件38需要引用计算装置34上的时钟42。
可以根据任何合适的语言或语法在许可36中指定规则和要求。例如,语言可简单地指定必须满足的属性和值(例如,日期(DATE)必须晚于X),或者可以根据特定脚本(例如IF DATE大于X,THEN DO...)要求特征的执行。
在许可鉴别器40确定许可36为有效且用户满足其中的规则和要求时,则可以启动应用程序32。特别是,为了启动应用程序32,从许可36中获得解密密钥(KD),并被应用于来自分组33的(KD(AP)),从而形成实际的应用程序32,随后按许可36中阐述的方式实际地启动该实际应用程序32。
如上所述,实际上具有(PU-BB(KD))的许可36授权拥有(PR-BB)的一实体访问(KD),从而访问根据这种(KD)加密的应用程序32,当然假定该实体遵守许可36中阐述的所有条件。然而应理解,其它类型的许可36也可存在于RM系统30内。
例如,可以理解,在一种情形中,应用程序32的出版者44会通过向许可人46提供出版许可36p授权一个或多个特殊许可人46发行应用程序32的许可36。可以理解,这种出版许可36p与许可36的类似之处在于这种出版许可36p可能包括用于解密这里根据许可人46的公钥(PU-BB)加密的应用程序32的解密密钥(KD)。同样,出版许可36p可能包括用于表现内容32的规则和要求。但这里,这种规则和要求将被插入许可人46发行的许可36,而不特别地可应用于这种许可人46。
但注意,出版许可36p确定可包括确实可应用于许可人46的其它规则和要求。因此,许可人46应按与用户的计算装置34类似的方式包括具有许可鉴别器40的信任组件38。显然,通常提供的每种类型的许可36、36p等(以下“许可36”)都包括用于鉴别/验证用途的数字签名,且每个数字签名都在兑现许可36之前由信任组件38确认。当然,如果任何确认失败,则进程终止且不兑现许可36。
用于许可数字应用程序的灵活许可架构如上所述,出版者44希望向用户提供能灵活地购买不同类型或版本的应用程序32的灵活性。例如,出版者44会希望提供全部特征版、基本版、商业版、家庭版等。但是,根据现有技术,每个这种版本的应用程序32将被分开作为代码集发行(即,计算机文件或这些文件的系列等)。明显的是,支持、维护、营销和分配每一个这种分开发行的代码集都是非常复杂的,特别是与执行相对于单个共同发行的代码集的这种事务相比。
因此,在本发明的一个实施例中,出版者实际上发行了应用程序32的共用代码集,但通过发行不同的相应RM许可36而在应用程序32的版本之间进行区分。显然,把共用代码集内阐述的应用程序32定义为具有多个特征等,且每个许可36都被定义为启动所定义的特征中的某些特征和/或禁用所定义的特征中的某些特征。在RM架构30内构建和使用应用程序32的这种许可36是已知的或者对于相关公众是显而易见的,因此不需要在这里详细阐述。因此,可以使用构建和使用这种许可36的任何如此的方法而不背离联系本发明阐述的精神和范围。
例如,可以是这样一种情况,应用程序32具有例示部分,它在计算装置34上相同地用具体例子说明,且对该例示部分进行加密,并且是根据来自许可36的密钥(KD)可解密的。因此,在来自用户等的合适命令的情况下,如果该许可36如此地允许,则信任组件38检索来自许可36的这种密钥(KD)随后利用检索出的(KD)解密例示部分,且随后利用解密后的例示部分用具体例子说明应用程序32。
类似地,可以是这样一种情况,应用程序32被定义为具有几个特征部分,每一个都对应于一项特征,且每个特征部分作为使用前的条件需要信任组件38确认许可36这样允许。因此,如现在应理解的,如果应用程序36具有特征A、B和C,对应于应用程序32的第一个版本的第一许可32仅允许使用特征A,对应于应用程序32的第二个版本的第二许可32仅允许使用特征B和C,对应于应用程序32的第三个版本的第三许可32允许使用所有的特征A、B和C,等等。这里注意,版本可以通过仅提供某些类型的相应许可36而由出版者44定义,或者可在获得特殊许可36的过程中由用户定制,假定实际上出版者提供这种定制的许可36。在获得特殊类型许可36时,用户能使用由许可36使能的应用程序32的可用特征,并被限制不能使用未由许可36使能的应用程序32的可用特征。假定,在基于一定费用的购买而获得许可36的情况下,该费用将根据所使能的应用程序32中的可用特征而变化。
显然,尽管应用程序32可以如上所述地以至少三个版本提供否则更多,但所有三个版本可以基于其中包含了所有可用特征的应用程序32的单个基本拷贝。应理解,如果该许可使能这种特征或者不禁用这种特征,则每个特征都对具有特殊许可36的特殊用户可用。此外,单个基本拷贝被广泛地分配和再分配而不怕不当使用,因为只有使用合适地获得的许可36才能产生应用程序32的使用。
特别是,为了实现发行应用程序的该许可36并且在本发明的一个实施例中,提供了诸如图4所示的许可架构50。如图4所示,许可架构50包括图3的出版者44和许可人46,并还包括将应用程序32零售给用户的零售商52。当然,出版者44也可以是零售商44而不背离本发明的精神和范围。
假定,这种零售商52是与用户进行零售交易以获得应用程序32和/或获得其相应许可36的零售位置。这样,零售商52把用户引导给操作分配站点等以获得应用程序32本身的分配者54等和/或将用户引导给许可36本身的许可人46。假定,虽然非必要,但零售商52、许可人46和分配者54都借助诸如因特网的网络连接在一起,且用户借助这种网络访问零售商52并获得来自分配者54的应用程序32以及来自许可人46的许可36(以下,“使用许可36”)。
在本发明的一个实施例中,如图4所示,出版者44提供的应用程序32包括用具体例子说明的和使用应用程序32的可执行代码。显然,出版者44提供的这种应用程序32还包括许多特殊许可36,包括定义许可36、初始许可36和非网络许可36,其中这种特殊许可36不同于上述的使用许可36。
定义许可36本身不是可从许可人46处获得以使用应用程序32的使用许可36,而是一特殊许可36,它定义应用程序32中借助合适的使用许可36可用的所有特征。这种定义许可36阐述了作为可用权利的应用程序32的所有特征但未实际准许任何这些权利。取而代之,使能特殊特征的所获得的使用许可36准许相应权利。
因此,为了继续以上示例,如果应用程序32包括三种定义的特征A、B和C,定义许可36将阐述每个特征A、B和C连同与其有关的相关信息。例如,这些相关特征可包括对应用程序32中的特征的引用、描述并可能包括关于应用程序32的哪一版本包含这种特征的版本信息。因此,使能这种特征的使用许可36例如可用使用这些信息来允许用户对其加以利用。同样,如果使用许可36不使能该特征,该信息仍然可以用于向用户通知这种特征的可用性,甚至可能将用户引向许可人46以获得使能这种特征的另一使用许可36。
与定义许可36不同,初始许可36本身类似于可用于使用应用程序32的使用许可36。但是,这种使用许可36是特殊许可36,其中该使用许可36只能按初始方式被使用,诸如允许用户在定义的时间量或时间长度内试用应用程序32。这里注意,使用许可36不与用户或其计算装置34绑定。
这种初始许可36可以准许或不准许对定义许可36内阐述的应用程序32的所有特征的权利,这取决于出版者44如何构建这种初始许可36。一般,可以提供初始许可36以允许预期用户在一定的时间周期内试用应用程序32而不用购买用户许可36,从而允许用户免费访问应用程序32的基本版而不需要获得使用许可36等。在前一种情况中,初始许可36可以准许对所有特征的权利,但对应于相对较短的时间周期,而在后一种情况中,初始许可可以准许对某些特征的权利,但对应于相对较长的时间周期。因此,用户可以看情况以临时方式使用初始许可36直到该用户决定获得使用许可36或者不再使用该应用程序,或者可以使用初始许可36以使用应用程序32的基本形式。
与初始许可36类似,非网络许可36本身类似于可用于使用应用程序32的使用许可36。但是,这种非网络许可36是用户没有对许可人46的网络访问但仍希望使用应用程序32的情况下的特殊许可36。通常,在这种情况下,非网络许可36不能使用,除非用户例如通过电话或邮件获得了确认码,其中这种确认码可以费用作为交换而获得。因此,采用这种确认码,非网络许可36使应用程序32能够被使用,就好像用户从许可人46获得了某种使用许可36。这里,非网络许可36不与用户或其计算装置34绑定,至少不是直接地,尽管获得确认码确实至少间接地将非网络许可36与用户绑定,假定在获得这种确认码的过程中用户识别其本身。
如同初始许可36,非网络许可36可以准许或不准许对定义许可36内阐述的应用程序32的所有特征的权利,这取决于出版者44如何构建这种非网络许可36。注意,虽然非网络许可36可以准许对应用程序32的所有特征的权利,但这么作会是不可取的,因为所获得的特殊码会被用户传递给其它人,这些人随后就能访问应用程序32的所有这些特征。
通常,零售商52可以直接地或借助前述分配者54将具有前述特殊许可36的应用程序32提供给用户。但注意,用户也可从出版者44或者从任何其它源获得应用程序32而不背离本发明的精神和范围。实际上,如以下更详细地阐述的,用户可以从熟人或第三方获得应用程序32,随后借助零售商52获得使用许可36。
无论如何,在本发明的一个实施例中,分配给用户的应用程序32可以附加地包装包括特殊零售商52的标识的引用信息。因此,在用户从除零售商52之外的源获得应用程序32的情形,这种引用信息让该用户找到零售商52以实现交易,从而获得对应用程序32的特殊版本的使用许可36。此外,甚至在用户获得使用许可36之后,如果用户期望回到零售商52处返还该使用许可36或者获得用于应用程序32的另一版本的不同使用许可36,也可使用这种引用信息。
如上所述,拥有应用程序32的单个基本拷贝的用户需要某种使用许可36来使用应用程序32的特殊的相应版本,当然除非用户使用前述初始许可36或非网络许可36。但应理解,这种使用许可36包含用于访问应用程序的加密部分的解密密钥(KD)并与用户或其计算装置34绑定,因此通常不随应用程序32传播。
随后,在本发明的一个实施例中,记住应用程序32包括前述定义许可36,获得这种使用许可36的过程中的用户首先从零售商52等获得产品许可36,它指定定义许可36中阐述的至少一些特征。在该实施例中,产品许可36本身不是可用于使用应用程序32的使用许可36。取而代之,由零售商52等提供的产品许可36定义用户已经获得应用程序32的哪种版本,或用户请求的定义许可36中阐述的特征,并因此是使用许可请求交易过程中用户向许可人46呈现的令牌或授权以便向该许可人46表示该用户被授权了特殊版本的应用程序32的相应使用许可36。
简言之,用户与零售商52交互以获得使用许可36的权利,但实际上未从该零售商52接收到使用许可36。相反,用户接收作为呈现给许可人46的令牌的产品许可36,且许可人46作为响应实际向用户发行一相应的使用许可36,使用户能实际上用于使用相应版本的应用程序32。所发行的使用许可36对应于产品许可36,这在于使用许可36中对照的权利对应于产品许可36中阐述的版本或特征。
可以理解,虽然可以通过使用户在与许可人46的直接交易过程中获得使用许可36而省却产品许可36,但许可人46优选不处理这种直接交易的零售方面。此外,通过按这里所述的方式使用产品许可36,可以利用多个零售商52来实现与用户的零售交易,同时仍只有一个或若干许可人46,每个许可人46都能发行与任何零售商52的交易有关的使用许可36。最后,通过使许可人46进行的使用许可36的发行与同零售商52的零售交易相分离,出版者44可以实施对这种发行的更强控制,并还可以实现更高的安全性。
大概,零售商52向用户提供的产品许可36包括关于用户能在哪里找到许可人46以发行与产品许可36相对应的使用许可36的合适信息。此外,在本发明的一个实施例中,零售商52提供给用户的产品许可36可以包装有引用信息,它包括可以从其获得应用程序32的分配者54的标识。因此,在用户在应用程序32之前获得产品许可36的情形,这种引用信息使该用户找到分配者54以获得该应用程序32的基本拷贝。此外,即使在用户获得应用程序32之后,如果用户期望为了该应用程序32的基本拷贝的另一拷贝或者甚至是为了该应用程序32的基本拷贝的新的或更新的版本而回到分配者54,也可使用该引用信息。
总之,随后,用户可以在其产品许可36之前或之后获得应用程序32。如果是之前,则使用用应用程序32包装的引用信息对特殊零售商52进行定位,用户可以从该特殊零售商52获得使用许可36。如果是之后,则用产品许可36包装的引用信息被用于定位特殊分配者54,用户可以从该特殊分配者54获得应用程序32的基本拷贝。
现在转到图5,在一个典型的情形中,购买或获得应用程序32和相应使用许可36的用户将访问零售商52并在交易中与其接洽,从而用户将选择应用程序32中期望的特殊特征或者特殊版本的应用程序32(步骤501)。作为这种交易的一部分,用户可以向零售商52提供一定的费用。通常,尽管非必要,零售商52控制该交易并确定与应用程序32有关的信息和选项的介绍以及可接受的支付形式,并在用户确认时进行该交易。
同样作为该交易的一部分,零售商52从用户收集构建或获得与用户选择相对应的合适的产品许可36所必需的信息,并实际上构建或获得这种产品许可36(步骤503)。如上所述,这种产品许可36可包装包括特殊分配者54的引用信息,其中可以从该特殊分配者54获得应用程序32的基本拷贝。无论如何,将产品许可36从零售商52传递给用户(步骤505)。此外,零售商52可以将交易确认消息发送给用户,确认该交易。如果这样,且如果产品许可36不自动发送给用户,则该消息可包括可以获得产品许可36的位置。
在从零售商52接收到产品许可36时,用户可以安装它(步骤507)或者可以保留产品许可36用于以后的检索和安装。通常如以下更详细地描述的,安装包括确认包括其签名的出版许可36以及将它存储在用户的计算装置34上。虽然可以此刻获得与产品许可36相对应的使用许可36,但首先确保已安装相应应用程序32是较明智的。注意,如果保存产品许可36用于以后的检索,则产品许可36应按加密形式保存,特别是如果产品许可36由另一用户获得并使用。
一旦已接收产品许可36,用户的计算装置34确定是否已安装相应的应用程序32(步骤509)。该检查例如可以通过在计算装置34上的登记表中查找合适的值来实现。如果已安装,则随后启动应用程序32以完成获取使用许可36的过程(步骤511)。如果未安装,从产品许可36所包含的引用信息中阐述的分配者54或者从计算装置34可用的存储媒介获得应用程序32,并在该计算装置34上安装所获得的应用程序32(步骤513),随后如在步骤511处启动所安装的应用程序32。
注意,此刻,计算装置34上可能已存在另一个获得的使用许可36,在这种情况下,要获得的使用许可36是附加使用许可34。无论如何,在启动安装的应用程序32时并基于产品许可36的存在,计算装置34获得与其相对应的使用许可36(步骤515)。特别是,产品许可36以及可能来自应用程序32的定义许可36连同用户和/或其计算装置34和/或其信任组件38等的标识被发送给产品许可36内标识的许可人46(步骤517)。
许可人46确认所有许可36和标识,且假定这种确认成功,许可人46基于其构建合适的使用许可36(步骤519)并将其返回给请求的用户(步骤521)。值得注意的是,在构建使用许可36时,许可人46从诸如用户公钥(PU)的至少一个标识中获得密码密钥,用这种(PU)加密应用程序32的前述解密密钥(KD)以形成(PU(KD)),并在构建和返回的使用许可36中包括该(PU(KD))。同样值得注意的是,标识可包括与用户的计算装置34相对应的硬件ID(HWID)且这种HWID也可包含在构建和返回的使用许可36中。还值得注意的是,许可人46可以在合适的数据库中通知产品许可36已提交以及相应的使用许可36已发行,并还可以通知与其有关的零售商。
用户的计算装置34可以将返回的使用许可36存储在合适位置,诸如许可存储装置,且存储的使用许可36随后可用于使用应用程序的某些特征。特别是,现在转到图6,在请求使用应用程序32的特殊特征(步骤601)时,应用程序32的这种特征实际上可以请求信任组件38确定计算装置34上的使用许可36是否允许特征的使用(步骤603)。作为响应,信任组件38可以在许可存储装置中定位获得的使用许可36(步骤605),确认它(步骤607),并确定该确认的使用许可36是否允许特征的使用(步骤609)。
假定被确认的使用许可36实际上允许特征的使用,则该确认的信任组件38从使用许可36中检索(PU(KD))并将相应的私钥(PR)应用于其上以形成解密密钥(KD)(步骤611),且该解密密钥(KD)随后按合适的方式应用于解密应用程序32的合适部分(步骤613)。此后,可以使用所请求的特征(步骤615)。
可以理解,出于任何理由,在获得使用许可36后的某点上用户可确定将它返回。关键地,如果允许用户返回该使用许可36,该用户不应被允许保留该使用许可36的拷贝。因此,现在转到图7,在本发明的一个实施例中,这种返回通过包括提供的相应产品许可36的向零售商52的请求来实现(步骤701)。作为响应,零售商52将一可执行指令或命令返回给用户的计算装置34(步骤703),其中该可执行指令/命令实际上按信任方式从用户的计算装置中删除使用许可36。特别是,该计算装置34上的信任组件38执行该可执行指令/命令,以删除使用许可36(步骤705),随后将一消息发送给零售商52表示删除已成功(步骤707)。此后,零售商52向许可人46通知相应的产品许可36无效(步骤709),且许可人46注意到其数据库中的产品许可36无效,从而不再兑现基于该产品许可36的使用许可36的任何将来的请求。。
还可理解,且回忆使用许可36通过包括该使用许可36中的计算装置34的HWID而与特殊计算装置34绑定,可以理解用户会出于任何理由希望将使用许可36传递给具有不同HWID的另一计算装置34。与先前类似,如果允许用户将该使用许可36从第一装置34传递给第二装置34,则该用户不应被允许保留与第一装置34绑定的该使用许可36的拷贝。因此,再转到图7,在本发明的一个实施例中,按与返回相类似的方式实现该传递。特别是,这种传递是借助包含零售商52提供的相应产品许可36的对许可人46的请求来实现的(步骤701)。作为响应,许可人46将一可执行指令/命令返回给用户的计算装置34(步骤703),其中该可执行指令/命令实际上以信任方式从用户的计算装置中删除了使用许可36。再一次地,该计算装置34上的信任组件38执行可执行指令/命令以删除发行的使用许可36(步骤705),随后将一消息发送给许可人46表示删除成功(步骤707)。
显然,在传递环境中,在这种情况下,许可人46应该能向不同的用户计算装置34发行与产品许可36相对应的另一使用许可36。因此,在传递环境中,许可人46注意到相应的产品许可36可以再次使用(步骤709),并且实际上兑现基于该产品许可36的使用许可36的任何将来的请求。
在本发明的一个实施例中,出版者44可以借助许可文件等定义一许可36,随后可以将该许可文件提供给零售商52用于销售。此外,出版者44可以创建应用程序32的基本拷贝并将其提供给分配者54。零售商52随后可以将该许可36销售给用户并借助操作网页等的许可人46传递它。如果用户需要从其获得应用程序32,许可36可以包装将用户引向分配者54的信息。如果用户需要从其获得许可36,应用程序32可以包装将用户引向许可人46的信息。因此,拥有应用程序32的用户可以找到许可人46以获得许可36,且拥有许可36的用户可以找到分配者54以获得应用程序32。
结论实现联系本发明执行的过程所必需的编程相当简单,且对于相关编程人员应该是显而易见的。因此,这里不附上这种编程。于是,任何特殊的编程都可用于实现本发明而不背离其精神和范围。
本发明中,RM架构30被用于实现许可架构50,其中只需要发布具有多个可用特征或版本的数字应用程序32的一个拷贝,以使发行给特殊用户的特殊使用许可36指定用户可使用哪个可用特征/版本。因此,应用程序32的出版者44不需要发布同一应用程序32的多个版本,且获得使用许可36的用户可以选择要许可多个可用特征/版本中的哪一个。
应理解,可以对上述实施例进行改变而不背离其创造性概念。因此,应理解,本发明不限于所揭示的特殊实施例,其旨在覆盖所附权利要求书限定的本发明的精神和范围内的修改。
权利要求
1.一种获得用于使用计算装置上的应用程序的使用许可的方法,所述应用程序包括多项特征,该方法包括参与与零售商的交易以便从该零售商获得与应用程序相对应的产品许可,所述产品许可定义可基于该产品许可而使用的应用程序的至少一项特征;从分配者获得所述应用程序的基本拷贝并启动该应用程序;以及通过启动的应用程序发送产品许可连同用户、计算装置和计算装置上运行的信任组件中的至少一个的标识给许可人,从许可人获取与产品许可相对应的使用许可,所述使用许可包括特征策略,它许可权利以使用所述产品许可中定义的每项特征。
2.如权利要求1所述的方法,其特征在于,包括参与与零售商的交易以获得定义零售商提供的应用程序的至少一项特征并表示应用程序的可用版本的产品许可。
3.如权利要求1所述的方法,其特征在于,包括参与与零售商的交易以获得定义这种产品许可的获得者所选择的应用程序的至少一项特征的产品许可。
4.如权利要求1所述的方法,其特征在于,包括参与与零售商的交易以获得包装引用信息的产品许可,所述引用信息包括从其获得应用程序的基本拷贝的特殊分配者。
5.如权利要求1所述的方法,其特征在于,根据密钥(KD)对所述应用程序的至少一部分加密,并且是可解密的,该方法包括从加密密钥(KD)的标识获取包括密码密钥的使用许可,从而信任组件可以检索该密钥(KD)并使用它对应用程序的所述至少一部分解密。
6.如权利要求1所述的方法,其特征在于,所述计算装置包括与计算装置34相对应的硬件ID(HWID),该方法包括获取包括HWID的使用许可,从而所述信任组件可检索该HWID并使用它来确定打算将该许可用于具有该HWID的计算装置上。
7.如权利要求1所述的方法,其特征在于,根据密钥(KD)对应用程序的每个特征的至少一部分加密,并且是可解密的,该方法包括从加密密钥(KD)的标识获取包括密码密钥的使用许可,该方法还包括接收使用应用程序的特殊特征的请求;定位所获取的使用许可;确定所定位的使用许可中的特征策略允许所请求的特殊特征的使用;从所定位的使用许可中检索加密的密钥(KD);对该加密的密钥(KD)解密并使用它来对应用程序的特殊特征的至少一部分进行解密;以及使用应用程序的特殊特征。
8.如权利要求7所述的方法,其特征在于,还包括确认所定位的使用许可。
9.如权利要求1所述的方法,其特征在于,还包括在已获取使用许可后将它返还以颠倒获得铲平许可的交易,返还该使用许可包括将返还请求发送给零售商,它包括因此提供的相应产品许可;从零售商接收以信任方式从计算装置中删除使用许可的可执行指令和命令之一;执行该可执行指令/命令以删除使用许可并将一消息发送给零售商,表示使用许可删除成功;使得零售商向许可人通知产品许可无效,且许可人注意到在其数据库中产品许可无效,从而不再兑现基于该产品许可的对使用许可的任何将来的请求。
10.如权利要求1所述的方法,其特征在于,所获取的使用许可与计算装置绑定,该方法还包括在已获取使用许可后将它返还以获取与另一计算装置绑定的另一使用许可,返还该使用许可包括将一传递请求发送给许可人,它包括零售商提供的相应产品许可;从许可人接收以信任方式从计算装置中删除使用许可的可执行指令和命令之一;执行该可执行指令/命令以删除使用许可并将一消息发送给许可人,表示使用许可删除成功;使得产品许可保持有效,且许可人注意到该产品许可可再次用于获得与另一计算装置绑定的另一使用许可。
11.一种用于在计算装置上使用的应用程序以及用于使用该应用程序的使用许可,所述应用程序具有多项特征并包括例示部分,用于在计算装置上例示该应用程序,根据密钥(KD)对所述例示部分加密,并且是可解密的;以及多个特征部分,每个特征部分对应于一特征,所述使用许可包括例示策略,用于确定所述例示部分是否可用于例示该应用程序;特征策略,用于确定是否可以使用应用程序的每项特征;以及根据计算装置的信任组件可用的密钥对密钥(KD)加密,并且是可解密的,从而如果使用许可的例示策略确定所述例示部分实际上可用于例示该应用程序,则所述信任组件从使用许可中检索该密钥(KD),并利用检索出的(KD)对该例示部分解密,使用被解密的例示部分来例示所述应用程序;以及从而作为其使用之前的条件,每个特征部分都要求信任组件确定使用许可的特征策略允许特征部分的使用。
12.如权利要求11所述应用程序和使用许可,其特征在于,计算装置包括与计算装置34相对应的硬件ID(HWID)且使用许可包括所述HWID,其中信任组件可检索该HWID并用它确定打算将该许可用于具有该HWID的计算装置上。
全文摘要
一种应用程序包括多项特征。参与同零售商的交易以获得与该应用程序相对应的产品许可。该产品许可定义可以使用的应用程序的至少一项特征。从分配者获得并启动该应用程序的基本拷贝。借助启动的应用程序从许可人处获取与产品许可相对应的使用许可,该启动的应用程序将产品许可连同用户、计算装置和计算装置上运行的信任组件中的至少一个的标识发送给许可人,其中使用许可包括特征策略,它准许使用产品许可中定义的每项特征的权利。
文档编号G06F21/22GK1825329SQ20061000691
公开日2006年8月30日 申请日期2006年1月23日 优先权日2005年2月4日
发明者C·古恩亚可迪, C·R·布鲁克斯, J·R·基洛托, T·豪根 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1