详细描述
总览
一实施方式将软件激活旁路机制纳入到批量许可环境中。激活旁路机制无需客户联系软件厂商。根据这一实施方式,向软件应用程序提供一种策略。该策略指定需要出现在客户网络上以便进行该软件应用程序的正确激活旁路的最少机器数。将网络内的一台计算机指定为绑定服务机。要安装软件应用程序的其它计算机作为客户机。将该软件应用程序的副本安装在每台计算机(即,例如绑定服务机和客户机)上,并且在某一时刻(例如登陆时),每一客户机尝试执行该软件的激活旁路。为此,该客户机生成含有机器标识符、时间戳和与该软件应用程序相关的信息的激活旁路消息,并将这一消息发送给绑定服务机。
在收到激活旁路消息时,绑定服务机对照含有所有这些已收到的机器标识符的列表的信任存储来校验该机器标识符。如果该机器标识符未在信任存储中出现,则对其进行添加。绑定服务机对信任存储中的唯一机器标识符的数量进行计数,并将该计数输入到发送给客户机的绑定服务消息中。在收到该绑定服务消息时,客户机判定该计数是否满足策略(即是否达到最少机器数)。如果是,则该机器能够启用该软件的激活旁路。否则,该软件保持未激活,并且在适用时继续在“试用”期内操作。
使用满足法定要求的特性对本发明的主题进行描述。然而,描述本身并不旨在限制本专利的范围。相反,发明人已经想到,结合其它现有或未来的技术,要求保护的主题也可通过其它方式实施,以包含不同与本申请中所述的类似的不同步骤或元素。此外,虽然在本文中,属于“步骤”可用于标识所使用方法的不同方面,但是该属于不应被解释为暗示本文所公开的各个步骤之间的任何特定次序,除非明示了各个步骤的次序。
示例计算环境
图1示出其上可实现本发明的合适计算系统环境100的示例。计算系统环境100只是合适计算环境的一个示例,并不旨在对本发明的使用范围或功能提出任何限制。计算系统环境100不应被解释为具有与在示例计算系统环境100中描述的组件中任一个或组合相关的任何依赖或要求。
本发明可在许多其它通用或专用计算系统环境或配置中操作。适用于本发明的公知计算系统、环境和/或配置的示例包括,但不局限于:个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子设备、网络PC、小型计算机、大型计算机、包括以上系统或设备中任一个的分布式计算环境等。
本发明可在由计算机执行的诸如程序模块的计算机可执行指令的通用上下文中描述。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。通常可按照各个实施方式中所述的,对程序模块的功能进行组合或分布。本发明还可以在其中由通过通信网络链接的远程处理设备执行任务的分布式计算环境中实施。在分布式计算环境中,程序模块位于包括存储器存储设备的本地和远程计算机存储介质中。
参照图1,用于实现本发明的示例系统包括计算机110形式的通用计算设备。计算机110的组件可包括,但不局限于:处理单元120、系统存储器130以及将包括系统存储器在内的各种系统组件耦合到处理单元120的系统总线121。系统总线121可以是若干类型总线结构中的任一种,包括存储器总线或存储器控制器、外围总线和使用各种总线架构中任一种的局域总线。作为示例而非限制,这些架构包括工业标准架构(ISA)总线、微信道架构(MCA)总线、增强的ISA(EISA)总线、视频电子技术标准协会(VESA)局域总线以及也被称为Mezzanine(夹层)总线的外围组件互连(PCI)总线。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是可由计算机110访问的任何可用介质,并且包括易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现的用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不局限于:RAM、ROM、EEPROM、闪存或其它存储技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、盒式磁带、磁带、磁盘存储或其它磁性存储设备、或可用于存储所需信息并可由计算机110访问的任何其它介质。通信介质通常具体化为诸如载波或其它传输机制的调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据,并可包括任何信息传输介质。术语“调制数据信号”表示以在信号中编码信息的方式设置或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接接线连接的有线介质,以及诸如声学、RF、红外线的无线介质和其它无线介质。以上中任一种的组合也应包含在计算机可读介质的范围内。
系统存储器130包括诸如只读存储器(ROM)131和随机存取存储器(RAM)132的易失性和/或非易失性存储器形式的存储介质。包含在诸如启动期间帮助在计算机110内元件之间传递信息的基本例程的基本输入/输出系统133(BIOS)通常存储在ROM 131中。RAM 132通常包含可由处理单元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输入命令和信息。其它输入设备(未示出)可包括话筒、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等。这些和其它输入设备通常由耦合到系统总线的用户输入接口160连接到处理单元120,但是也可由诸如并行端口、游戏端口或通用串行总线(USB)之类的其它接口和总线结构连接。监视器191或其它类型的显示设备也可经由诸如视频接口190的接口连接到系统总线121。除了监视器之外,计算机还可包括可以通过输出外围接口195连接的诸如扬声器197和打印机196的其它外围输出设备。
计算机110可在使用到诸如远程计算机180的一个或多个远程计算机的逻辑连接的网络化环境中操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它公共网络节点,并且通常包括以上相关于计算机110描述的元件中的多个或全部,但在图1中仅仅示出了存储器存储设备181。在图1中所描绘的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但是也可以包括其它网络。这种网络环境在办公室、企业内部计算机网络、内联网和因特网中十分常见。
当在LAN网络环境中使用时,计算机110通过网络接口或适配器170连接到LAN 171。当在WAN网络环境中使用时,计算机110通常包括调制解调器172或用于在诸如因特网的WAN 173上建立通信的任何装置。或为内置或为外置的调制解调器172可经由用户输入接口160或其它适当机制连接到系统总线121。在网络化环境中,相关于计算机110描述的程序模块或其部分可存储在远程存储器存储设备中。作为示例而非限制,图1示出驻留在存储器设备181上的远程应用程序185。应该理解,所示网络连接是示例性的,且可以使用在计算机之间建立通信链路的其它装置。
示例分布式计算框架或体系结构
由于个人计算技术和因特网的结合,已经和正在开发各种分布式计算框架。向个人和企业用户提供应用程序和计算设备的可无缝共同操作和启用web的接口,从而使计算活动日益面向web浏览器或面向网络。
例如,的.NET平台包括服务器、诸如基于web的数据存储的构建块服务以及可下载设备软件。一般而言,.NET平台提供(1)使计算设备的全体一起工作并自动更新和同步全部设备上的用户信息的能力,(2)通过更多地使用XML而非HTML实现web站点交互能力增加,(3)以定制访问以及从管理诸如电子邮件的各种应用程序或诸如Office.NET的软件的中央起始点到用户的产品和服务传送为特色的在线服务,(4)集中式数据存储,增加访问信息的效率和便捷以及用户和设备之间的信息同步,(5)集成诸如电子邮件、传真和电话的各种通信媒介的能力,(6)对于开发者,创建可再使用的模块的能力,从而增加生产率并减少编程差错的数量,以及(7)许多其它交叉平台集成特征。
虽然在本文中相关于驻留在计算设备上的软件来描述示例实施方式,但是本发明的一个或多个部分也可通过操作系统、API或协处理器与请求对象之间的中间软件来实现,使得可由.NET语言和服务的全部以及其它分布式计算框架来执行、支持或经由其访问服务。
示例实施方式
在以下讨论中,假设与在软件激活上下文中在计算机网络中的计算机之间实现安全通信相关的细节是本领域技术人员已知的。因此,为简洁起见,在此省略这些细节。
在一实施方式中,提供具有关联策略的批量许可软件。该策略指定需要在客户网络上出现以便进行软件的正确激活旁路的机器数目。该策略数据可被写进例如可由客户网络中的机器进行认证的已签名的可扩展权限标记语言(XrML)文件。将网络中的一台计算机指定为绑定服务机。这一指定可由例如客户、软件厂商、软件应用程序自身等作出。要安装软件应用程序的其它计算机作为客户机。将该软件应用程序的副本安装在每台计算机(即例如绑定服务机和客户机)上,并且在某一时刻(例如登陆时),每一客户机尝试激活该软件。
除了任何其它安全措施之外,可将诸如处理器标识符之类的唯一机器属性用作机器标识符,以保护寻求软件激活旁路的计算机与提供启用这种激活旁路的绑定服务的计算机之间的通信路径。寻求激活其软件副本的客户机生成包含其机器标识符、时间戳、与该软件应用程序相关的信息以及机器认证码(MAC)的激活旁路信息,并将该消息发送给绑定服务机。通过使用MAC,一实施方式使客户机和绑定服务的消息(以下详细描述)能够通过消息自身而得到认证。以这种方式,这些消息的认证可以是自备的,而不需要依赖于客户机与绑定服务之间的通信层。一旦消息被传输到绑定服务,绑定服务就检查该消息以确保时间戳和MAC有效。
在收到并验证该消息的真实性时,绑定服务对照已知机器队列校验该机器标识符,并且如果未发现该机器标识符则将其添加到该队列。随后,绑定服务对队列中的唯一机器标识符的数量进行计数,并向该客户机发送包含计数的已认证回复消息。该客户机判定该计数是否满足策略(即是否已达到最少机器数)。如果是,则该机器能够启用软件激活旁路。否则,该软件保持未激活,并且在适用时继续在“试用”期中操作。
因此,应该意识到,一实施方式在允许进行批量许可软件应用程序的激活旁路之前要求客户有效地验证该软件应用程序实际上是在计算机网络中使用。一实施方式要求网络具有特定的最少机器数(软件在这些机器上进行激活旁路),并使用机器专用标识符来获取准确计数。虽然一实施方式并不要求软件安装在特定一组机器上,但是在网络上出现特定数量的机器的要求有效地阻止了大多数软件盗版者的企图。即,软件盗版者不大可能只是为了非法运行软件应用程序的目的就建立具有所要求机器数的网络,特别是在所要求机器数相当多的情况下。这对不知情或其它购买盗版的软件应用程序副本的任何个人尤其有效。应该意识到,如果将最少机器数被设置为固定数字,则需要在安全和用户友好性之间作出某种折衷。例如,该数字设置得过小则不大可能会实现有益的安全效果,而如果该数字设置得过大则对合法客户造成麻烦。
通过使用绑定服务机生成机器计数,客户机无法伪造计数来绕过激活要求。此外,计数的使用是判定软件应用程序是否按需在计算机网络中使用的轻便和可靠方法。如上所述,一实施方式简单地校验目标网络内有特定数量的不同计算机。结果,软件厂商可向不同客户销售同一软件,而无需更新或修改该软件,如同将该软件针对特定网络进行了剪裁的情形一样。因此,在一实施方式中,在高安全性和阻止盗版与在合法客户部分上安装和激活的简易性上达到可感知的平衡。应该意识到,该平衡可根据厂商和/或客户需要而更改。
图2A是根据一实施方式的其中软件盗版可被阻止的示例网络的框图。网络内的客户机220a-c可以是任何类型的计算设备。每个客户机220a-c包括软件230的副本以及各自的机器属性222a-c。软件厂商可在诸如但不限于CD-ROM的某种介质上或者直接通过诸如以上相关于图1所描述的网络向批量许可持有者提供软件230的副本。软件230所附带的可以是企业专用或者批量许可持有者专用的批量许可密匙(VLK)(未示出)。在一实施方式中,可将VLK嵌入到称为许可文件的相对较大的文件中。相应客户机220a-c的机器属性222a-c可以是标识与客户机220a-c相关联的硬件设备的任何类型的数据。例如,机器属性222a可以是客户机220a的处理器标识符等等。在一实施方式中,对每个客户机220a-c使用的机器属性222a-c的类型相同(例如每个客户机220a-c使用其处理器标识符作为其机器属性222a-c)。在其它实施方式中,每个客户机220a-c可使用不同的机器属性222a-c。
如上所述,可将网络内的一台计算机指定为绑定服务机210。绑定服务机210可以是独立的机器,或者还可以是客户机220。换言之,诸如客户机220a的客户机与绑定服务机210可以主宿在同一机器中,或者可以在不同机器上。绑定服务机210包含绑定服务212,该服务可以是例如在绑定服务机210内运行以执行软件激活旁路的进程。此外绑定服务机210包含策略216,该策略指定必须在网络中存在以进行软件激活旁路的最少唯一机器数。术语“机器”可以指代网络中要安装软件230的任何设备。虽然“机器”通常指某种类型(例如台式、膝上型等)的计算机,但是“机器”还可以指服务器、诸如PDA的设备等。此外,这一机器无需一直连接到网络(例如膝上型设备)。
策略216中设置的数字可被任意设置、在逐个情况的基础上变化、根据特定客户类型(例如公司客户)设置、根据网络大小设置等。例如,可将该策略设置成要求在允许软件激活旁路之前在网络中存在25个唯一机器。信任存储214包含已尝试激活软件的全部机器的队列。该队列可将机器表示成机器标识符(如以下所述),或者例如表示成包括机器标识符和附加信息的条目。这种附加信息可以是例如时间戳等。信任存储214可以是信任存储文件,该文件是包含一个或多个加密密匙的密匙数据库文件。密匙可作为签名人证书存储并且可用于各种目的,诸如使包含其中的数据生效。因此,信任存储214可以是机器标识符和任何附加信息的安全“可信”位置。
如上所述,为了激活其软件230的副本,客户机220a-c向绑定服务机210发送激活旁路消息。任何类型的活动都可触发这种激活旁路,诸如事件发生(例如登陆、启动软件230等)、用户引导、时间流逝之后等。在成功完成软件230的激活旁路之前,软件230可在“试用”期中操作,其中在软件230的激活旁路之前全部或部分功能将对用户可用。在一实施方式中,使用试用期是有用的,因为在客户机激活旁路的数量尝试将信任存储214中的队列填充到所需机器数之前可能需要一段时间。因此,在将队列构建到所需机器数期间,客户的用户仍然能够使用软件230。因为在一实施方式中激活旁路进程可完全自动化,所以试用期的使用可将激活旁路进程有效地呈现为对客户机220a-c之一的用户不可见。
图2B是可根据一实施方式使用的示例激活旁路消息240的框图。可根据任何适当安全消息收发格式对激活旁路消息240进行格式化。激活旁路消息240包括指定需要激活旁路的软件的软件标识符242。在一实施方式中,软件标识符242可包含软件标识符、版本号等。因此,如果多个软件应用程序根据一实施方式执行激活旁路,则可将每个应用程序的激活旁路进程保持独立,以避免与其它激活旁路进程干扰。
激活旁路消息240还可包括机器标识符244,例如,该标识符可从如上参照图2A所述的机器属性222a-c形成。例如,机器属性222a-c可以是散列的、加密的等,以形成机器标识符224。或者,机器标识符244可简单地包括机器属性222a-c而不作进一步处理或更改。激活旁路消息240还可包括时间戳246。时间戳246可用于保护软件免受“重放”攻击等,因为由机器标识符244推进的软件绑定很流行。最后,激活旁路消息240可包括可以例如通过消息认证码(MAC)等执行的认证248。虽然为清楚起见在图2B中未示出,但是激活旁路消息240还可包括诸如与策略216相关的信息的附加字段。
图2C是可根据一实施方式使用的示例绑定服务消息250的框图。与以上参照图2B所述的激活旁路消息240类似,绑定服务消息250包含软件标识符242、机器标识符244(标识客户机)、时间戳246(例如在激活旁路消息240中使用的时间戳)和认证248。认证248可以与激活旁路消息240的认证248相同的方式执行,或者可根据不同的协议执行。此外,绑定服务消息250包括计数252,如上参照图2A所述,该计数对应于在信任存储214的队列中列出的唯一机器标识符的数量。虽然为清楚起见在图2C中未示出,但是绑定服务消息250可包括其它字段,诸如与策略216相关的信息。
图3是示出根据一实施方式的激活软件的示例客户机方法的流程图。应该意识到,方法300在安装过程中启动和/或执行,或者可在后来(例如登陆)执行。方法300可在例如无人照管文件的帮助下进行。无人照管文件是与软件安装例程结合使用以绕过正常安装提示(以执行无人照管安装)的文本文件。例如,无人照管文件可自动输入VLK,配置代理设置以及代表终端用户通过目标机器的局域网(LAN)或经由因特网等来自动激活系统。激活旁路还可以在安装之后使用命令行脚本执行。
在步骤301,由客户机生成客户机激活旁路消息,诸如以上参照图2B所述的激活旁路消息240。在软件最初安装时,或者在客户机判定已安装软件应用程序的当前批量许可不再有效时等等,可生成客户机激活旁路消息。在步骤302,将激活旁路消息发送到绑定服务机。步骤302可在步骤301之后立即进行,或者一段延时之后进行。例如,如果客户机是当前从网络断开的膝上型计算机,则可在用户启动该计算机时生成激活旁路消息。一旦用户将客户端膝上型计算机重新连接到网络,则激活旁路消息可被发送到绑定服务机。因此,以上参照图2B所述的时间戳可对应于例如生成或发送激活旁路消息的时刻。在步骤303,由客户端机器接收绑定服务消息,诸如以上参照图2C所述的绑定服务消息250。以下参照图4讨论涉及绑定服务消息创建的示例方法。
在步骤305,在任何必要的消息认证处理之后,从绑定服务消息提取计数(诸如计数252),并将其与关联于客户端的软件应用程序副本的预定计数进行比较。应该意识到,预定计数可对应于以上参照图2A所述的策略216。在步骤307,对所收到的计数是否等于或大于预定计数作出判定。应该意识到,该策略可以指定需要匹配还是超过预定计数。
如果所收到的计数并不适当地大于或等于预定计数,则在步骤309,方法300结束。应该意识到,没有进行客户机软件副本的激活旁路,因为绑定服务还未收到软件策略所要求的最少数量的唯一机器标识符。如果例如该软件包括允许在给定时段中使用该软件而无需激活旁路的“试用期”,则用户仍然可以使用该软件。
如果收到的计数大于或等于预定计数,则在步骤311,软件允许使用与绑定机制协作的旁路标记而进行的激活旁路。该绑定机制确保激活旁路标记无法被简单地拷贝并在另一机器上使用。在一实施方式中,绑定机制专用于每个单独计算机。在一实施方式中,一旦步骤311完成,则客户机就无需再为认证软件应用程序的目的而联系绑定服务机。在一替换实施方式中,方法300还能够以设定或可变的间隔重复。例如,如果包含在信任存储队列中的机器标识符可以具有指定的使用期限,在该期限之后就将机器标识符从队列中删除。在这一实施方式中,方法300可以以某一间隔重复以保持队列(及其相应计数)是当前的。
应该意识到,当第一次安装该软件时,在信任存储的队列中可能没有所列出机器。例如,当第一客户机尝试执行其软件副本的激活旁路时,绑定服务会访问信任存储以判定该客户机是否被列在包含其中的队列内。因为先前没有客户机尝试对其软件副本执行激活旁路,所以在信任存储中没有列出客户机直到第一客户机被添加。如果预定计数未达到,则客户端机器可继续在试用期中工作。超过试用期,客户端机器可在功能减少的模式下工作,或者终端用户可以向软件厂商请求延长。
图4是示出根据一实施方式的执行软件激活旁路的示例绑定服务方法400的流程图。在步骤401,接收激活旁路消息,诸如以上参照图2B所述的激活旁路消息240。在任何适当的消息认证处理完成之后,在步骤403,将包含在激活旁路消息内的机器标识符与包含在绑定服务机器的信任存储的队列内的任何机器标识符进行比较,以查看在该队列中是否存在该机器标识符。如果该机器标识符已经存在,则方法400进行到步骤407,随后马上描述。或者,在使用时间戳的实施方式中,在进行到步骤407之前,可用刚收到的机器标识符替换存储在列表中的机器标识符。以这种方式,列表将包含最近收到的机器标识符。如果机器标识符并未存在,则在步骤405,将该机器标识符添加到该队列。在某些实例中,可将附加信息连同机器标识符一起存储在队列中。例如,可以存储时间戳以避免来自潜在软件盗版者的重放攻击。
在步骤407,对队列中的机器标识符的数目进行计数。应该意识到,因为方法400只在机器标识符并未存在的情况下将该机器标识符置于队列中,所以队列持有唯一的机器标识符(即每个机器标识符被存储一次,不管特定客户机已发送多少次激活旁路消息)。在步骤409,向发送在步骤401接收的激活旁路消息的客户机发送包含计数的消息。在一实施方式中,可在预定时间之后将机器标识符从队列中删除(未在图4中示出)。例如,软件应用程序的策略可以规定,与一次性启用软件激活旁路不同,该软件应该周期性地重复激活旁路进程以确保该用户仍然是客户网络的一部分。因此,通过周期性地删除机器标识符,计数值可能会落到策略所要求的机器标识符数之下,除非网络上仍然存在足够数量的客户机(并发送激活旁路消息)。
应该意识到,在这一实施方式中,客户端机器应当被配置成周期性地尝试重复激活旁路进程以确保机器标识符计数保持足够高。此外,如果客户机从不尝试重复激活旁路进程,则即使机器标识符计数落到阈值以下该软件也可保持激活。
注意,以上示例仅为说明目的而提供,完全不能被解读为对本发明的限制。同样注意,存在根据本发明使应用程序和服务能够获取许可信息的各种实现本发明的方式,例如适当的API、工具箱、驱动代码、动态链接库(DLL)、操作系统、控件、独立或可下载软件对象等。本发明的各个实施方式从API(或其它软件对象)的角度、以及从结合本文所述的VLK许可技术进行通信的软件或硬件对象的角度构想本发明的使用。因此,本文所述的本发明的各种实现可能具有完全硬件、部分硬件和部分软件以及软件的多个方面。
如上所述,虽然结合各种计算设备和网络架构描述了示例实施方式,但是根本概念可应用于期望阻止盗版的任何计算设备或系统。因此,根据一实施方式编码/解码数据的技术可用于各种应用程序和设备。例如,一实施方式的算法和硬件实现可应用于计算设备的操作系统,作为该设备上的独立对象、另一对象的一部分、可重新使用的控件、可从服务器下载的对象、设备或对象与网络之间的“中间人”、分布式对象、硬件、在存储器中、上述任一种的组合而提供。虽然本文中选择示例编程语言、名称和示例作为各种选择的代表,但是这些语言、名称和示例并不旨在作为限制。对于涉及使用控件实现本发明的实施方式,本发明不限于提供.NET控件,相反,应该在根据本发明实现盗版阻止目的的任何一个软件(和/或硬件)的更宽泛上下文中考虑。本领域技术人员应该意识到,存在提供实现由本发明的各个实施方式实现的相同、类似或等效功能的对象代码和命名的许多方法。实施方式可结合在线拍卖或投标站点实现。
如上所述,本文所述的各种技术可结合硬件或软件或者在适当时结合两者的组合来实现。因此,本发明的各个实施方式的方法和设备或其某些方面或部分可采用在诸如软盘、CD-ROM、硬盘驱动器或任何其它机器可读存储介质的有形介质上具体化的程序代码的形式,其中当将程序代码加载到诸如计算机的机器中并由其执行时,该机器变成用于实施本发明的设备。在可编程计算机上执行程序代码的情形中,计算设备通常包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备和至少一个输出设备。可例如通过使用数据处理API、可重用控件等使用本发明的盗版阻止技术的一个或多个程序较佳地采用高级过程或面向对象编程语言实现,以与计算机系统通信。然而,程序可以按需采用汇编或机器语言实现。在任一情形中,语言可以是已编译或已解释语言,并与硬件实现相结合。
本发明的各个实施方式的方法和设备还可经由以通过某种传输介质(诸如通过电配线或敷设缆线、通过光纤、或经由任何其它形式的传输)发送的程序代码形式具体化的通信来实施,其中当该程序代码被接收并加载到机器(诸如EPROM、门阵列、可编程逻辑设备(PLD)、客户端计算机、摄像机等)中并由其执行时,具有如上在示例实施方式中描述的信号处理能力的接收机器变成用于实现本发明的设备。当在通用处理器上实现时,该程序代码与该处理器结合以提供用于调用本发明的功能的独特设备。此外,结合本发明使用的任何存储技术可以始终是硬件和软件的组合。
虽然结合各个附图的较佳实施方式对本发明进行描述,但是应该理解,可使用其它类似的实施方式,或者可对所述实施方式进行添加以执行本发明的相同功能而不与其相背离。例如,虽然在诸如对等网络化环境的网络化环境中对本发明的示例网络环境进行了描述,但是本领域技术人员应该认识到,本发明并不限于此,并且在本发明中描述的方法可应用于无线的或有线的任何计算设备或环境,诸如游戏操纵台、手持式计算机、便携式计算机等,并且可用于经由通信网络连接并在网络上交互的任何数量的这种计算设备。此外,要强调的是,包括手持式设备操作系统和其它应用程序专用操作系统的各种计算机平台都是可以预期的,尤其是随着无线网络化设备的数量不断激增。此外,本发明还可以跨多个处理芯片或设备或者在其中实现,并且存储可类似地跨多个设备实施。因此,本发明不应局限于任何单个实施方式,相反应该以根据所附权利要求书的宽度和范围来解读。