解锁应用程序的补充功能组件的方法、装置及相关设备的制作方法

文档序号:6599932阅读:254来源:国知局

专利名称::解锁应用程序的补充功能组件的方法、装置及相关设备的制作方法
技术领域
:本发明涉及数字产品的分发,并且尤其涉及基于网络的数字产品的分发。
背景技术
:当今,在线媒体商店,诸如iTimes媒体商店,允许顾客(S卩,在线用户)通过因特网购买或者租用诸如音乐或者视频的媒体项目。通常可以从在线媒体商店获得大量媒体项目,并且这些大量媒体项目是由各种不同的内容提供商诸如musiclabel(音乐标签管理工具)或电影公司提供的。软件工具,诸如可从加利福尼亚库珀蒂诺的苹果公司获得的iProducer和LabelConnect,可以帮助内容提供商将媒体内容在线提交给iTunes媒体商店。还可以在零售店以及从在线商店购买软件程序或发放软件程序许可。通常,软件程序主要以包含软件程序的压缩盘(⑶)被购买。可替换地,购买者经常可以从在线零售商或软件提供商的站点购买并且下载软件程序。然而,当在线零售商销售各独立方的软件程序时,在向在线零售商提供数字程序文件和支持信息/文件方面存在困难。由于通常想与在线零售商合作的小软件提供商的数量巨大,加剧了这个问题。结果,由于关于提交的各种变化,接收在线提交的在线零售商面临巨大负担以及困难。通常,在计算设备上购买、下载并安装软件程序之后,该软件程序实质上是一个静态产品。尽管一些软件程序可以接收更新以便修复错误或故障或病毒保护,但是这些更新是免费提供的并且用于维护现有功能。不幸的是,一些软件提供商需要方便增强原始软件程序的继续购买。然而,一旦已经在线购买、下载并且安装了软件程序,则对于该软件程序本身而言,通常没有便利的手段方便购买软件程序的附加功能、部件等的使用权或特权。
发明内容本发明涉及一种用于借助产品分发站点访问数字产品的锁定(被保护)功能组件(feature)的系统、设备以及方法。数字产品可被提交给产品分发站点以便进行基于网络的分发。可以最初这样提供数字产品,使得数字产品提供基本功能,但是包含一个或多个锁定功能组件,如果被解锁,这些锁定功能组件能够补充基本功能。如果批准了已提交的数字产品,则可以在产品分发站点处获得所述数字产品,使得用户可以搜索、浏览以及购买所述数字产品。一旦所述数字产品已被购买、下载并且安装在用户的计算设备上,用户就能够使用所述数字产品。然而,由于所述数字产品本身包括一个或多个锁定功能组件,因此用户不能使用这些功能组件,直到执行了后续购买为止。有利地,可以从数字产品中启用后续购买。在这样做的时候,数字产品与远程服务器(例如,产品分发站点)进行(直接或间接)交互,以便购买对所述数字产品内的一个或多个锁定功能组件的访问或者使用。一旦已经购买了对所述一个或多个锁定功能组件的访问或使用,就可以解锁并且然后使用所述数字产品内的所述一个或多个锁定功能组件。在一个实施例中,所述数字产品是计算机程序产品(例如,计算机软件程序)。产品分发站点也可以被称作在线产品托管(hosting)站点。尽管数字产品的功能组件可以根据实现而改变,但是功能组件的一些示例包括模块、工具、特性、功能、内容或数据。功能组件也可以被称作部件。本发明可被以多种方式实现,包括实现为一种方法、系统、设备、装置(包括计算机可读介质以及图形用户界面)。下面讨论本发明的几种实施例。作为一种操作于计算设备上的用于解锁应用程序的补充功能组件的方法,本发明的一种实施例至少包括如下操作在所述计算设备上执行应用程序,所述应用程序是以前从基于远程网络的应用分发系统获取的,所述应用程序包括至少一个补充功能组件,所述补充功能组件当前被锁定并位于所述应用程序中但可对其进行解锁;在所述计算设备处,确定所述应用程序的用户希望获得对当前被锁定的至少一个补充功能组件的使用;请求所述基于远程网络的应用分发系统批准解锁所述至少一个补充功能组件;从所述基于远程网络的应用分发系统接收批准解锁所述至少一个补充功能组件的授权;以及此后在所述计算设备处解锁所述应用程序的所述至少一个补充功能组件,由此允许所述应用程序利用所述至少一个补充功能组件。作为一种操作于计算设备上的用于解锁应用程序的补充功能组件的方法,本发明的另一种实施例至少包括如下操作在所述计算设备上执行应用程序,所述应用程序是以前从基于远程网络的应用分发系统获取的;通过所述应用程序,向所述计算设备的用户提供至少一个补充功能组件,所述至少一个补充功能组件当前被锁定并位于所述应用程序中但可对其进行解锁;接收所述计算设备的用户希望获取当前被锁定的至少一个补充功能组件的使用的标识;响应于所接收到的标识,请求来自所述基于远程网络的应用分发系统的补充功能组件信息,所述补充功能组件信息包括关于所述至少一个补充功能组件的至少一个描述信息;随后,在计算设备上接收来自所述基于远程网络的应用分发系统的补充功能组件信息;在所述计算设备上呈现所述补充功能组件信息;在所述计算设备上确认用户希望获取当前被锁定的所述至少一个补充功能组件的使用;请求所述基于远程网络的应用分发系统批准解锁所述至少一个补充功能组件;从所述基于远程网络的应用分发系统接收批准解锁所述至少一个补充功能组件的授权;以及此后在所述计算设备处解锁所述应用程序的所述至少一个补充功能组件,由此允许所述应用程序利用所述至少一个补充功能组件。作为一种用于管理对以前从基于远程网络的应用分发系统获取的应用程序的补充功能组件的解锁的计算机实现的方法,本发明的一种实施例至少包括如下操作从计算设备接收对来自所述基于远程网络的应用分发系统的补充功能组件信息的请求;检索与所述应用程序的补充功能组件相关联的补充功能组件信息,所述补充功能组件信息至少包括关于以前从所述基于远程网络的应用分发系统获取的应用程序的补充功能组件的描述信息;向所述计算设备发送检索到的补充功能组件信息;接收来自所述计算设备的解锁应用程序的补充功能组件的请求;确定所述基于远程网络的应用分发系统是否批准解锁所述补充功能组件;以及如果确定所述基于远程网络的应用分发系统已经批准解锁所述补充功能组件,则向所述计算设备发送解锁所述补充功能组件的授权。作为一种用于管理对以前从基于网络的应用分发系统获取的应用程序的补充功能组件的解锁的计算机实现的方法,本发明的另一种实施例至少包括如下操作从所述计算设备接收解锁以前从所述基于网络的应用分发系统获取的应用程序的补充功能组件的请求;确定所述基于网络的应用分发系统是否批准解锁所述补充功能组件;以及如果确定所述基于网络的应用分发系统已经批准解锁所述补充功能组件,则向所述计算设备发送解锁所述补充功能组件的授权。作为一种移动计算设备,本发明的一种实施例至少包括具有至少一个被锁定功能组件的至少一个应用程序;以及驻留在所述移动计算设备上的商业服务器。所述商业服务器被配置为与远程服务器交互,以便实现在所述至少一个应用程序运行在所述移动计算设备上的同时,访问所述至少一个应用程序的至少一个被锁定功能组件。作为一种计算机可读介质,所述计算机可读介质至少包括存储于其上的可由计算设备执行以便解锁程序产品的补充功能部件的计算机程序代码,本发明的一个实施例至少包括用于在所述计算设备上执行程序产品的计算机程序代码,所述程序产品是以前从基于远程网络的应用分发系统获取的,所述程序产品包括至少一个补充功能部件,所述补充功能部件当前被锁定并定位于所述程序产品中但可对其进行解锁;用于在所述计算设备上确定所述程序产品的用户希望获得对所述当前被锁定的至少一个补充功能部件的使用的计算机程序代码;用于请求所述基于远程网络的应用分发系统批准解锁所述至少一个补充功能部件的计算机程序代码;用于从所述基于远程网络的应用分发系统接收批准解锁所述至少一个补充功能部件的授权的计算机程序代码;以及用于在所述计算设备处解锁所述至少一个补充功能部件由此允许所述程序产品利用所述至少一个补充功能部件的计算机程序代码。作为一种计算机可读介质,所述计算机可读介质至少包括存储于其上的可由计算设备执行以便管理对以前从基于网络的应用分发系统获取的应用程序的补充功能部件的解锁的计算机程序代码,本发明的一个实施例至少包括用于从所述计算设备接收解锁以前从所述基于网络的应用分发系统获取的程序产品的补充功能部件的请求的计算机程序代码;用于确定所述基于网络的应用分发系统是否批准解锁所述补充功能部件的计算机程序代码;以及用于如果确定所述基于网络的应用分发系统已经批准解锁所述补充功能部件,则向所述计算设备发送解锁所述补充功能部件的授权的计算机程序代码。结合以示例方式示出本发明的原理的附图,将从下面的详细说明中明了本发明的其它方面和优点。通过下面结合附图进行的详细说明,将会容易地理解本发明,其中类似的附图标记指示类似的元件,并且其中图1是根据本发明的一个实施例的产品提交和分发系统的方块图。图2是根据本发明的一个实施例的客户端或者客户端设备的方块图。图3A-图3C是根据本发明的一个实施例的示出了访问补充功能组件的图。图4是根据本发明的一个实施例的数字产品提交处理的流程图。图5是根据本发明的一个实施例的补充功能组件客户端处理的流程图。图6A和图6B是根据本发明的一个实施例的补充功能组件客户端处理的流程图。图7是根据本发明的一个实施例的补充功能组件服务器处理的流程图。具体实施例方式本发明涉及一种用于借助产品分发站点访问数字产品的锁定(被保护)功能组件(feature)的系统、设备以及方法。数字产品可被提交给产品分发站点以便进行基于网络的分发。可以最初这样提供数字产品,使得数字产品提供基本功能,但是包含一个或多个锁定功能组件,如果被解锁,这些锁定功能组件能够补充基本功能。如果批准了已提交的数字产品,则可以在产品分发站点处获得这些数字产品,使得用户可以搜索、浏览以及购买所述数字产品。一旦所述数字产品已被购买、下载并且安装在用户的计算设备上,用户就能够使用所述数字产品。然而,由于所述数字产品本身包括一个或多个锁定功能组件,因此用户不能使用这些功能组件,直到执行了后续购买为止。有利地,可以从数字产品中启用后续购买。在这样做的时候,数字产品与远程服务器(例如,产品分发站点)进行(直接或间接)交互,以便购买对所述数字产品内的一个或多个锁定功能组件的访问或者使用。一旦已经购买了对所述一个或多个锁定功能组件的访问或使用,就可以解锁并且然后使用所述数字产品内的所述一个或多个锁定功能组件。在一个实施例中,所述数字产品是计算机程序产品(例如,计算机软件程序)。产品分发站点也可以被称作在线产品托管站点。尽管数字产品的功能组件可以根据实现而改变,但是功能组件的一些示例包括模块、工具、特性、功能、内容、或数据。功能组件也可以被称作部件。下面参照图1-7讨论本发明的各个方面的实施例。然而,本领域技术人员将很容易理解,由于本发明可以扩展到这些有限的实施例之外,所以此处以这些附图给出的详细说明是出于说明的目的。图1是根据本发明的一个实施例的产品提交和分发系统100的方块图。产品提交和分发系统100包括产品分发站点102。产品分发站点102提供分发各种数字产品的在线接入点。例如,产品分发站点102可以被称作在线商店。产品提交和管理系统104操作以便接收来自各种数字产品提交者的数字产品的提交。产品提交和管理系统104可以处理数字产品的提交,并且授权被批准的数字产品的分发。数字产品可被存储在产品存储库106中。在一个实施例中,产品存储库106包括大容量数据存储库和/或一个或多个数据库。产品存储库106提供可以用于分发(例如,购买)的大量数字产品的大容量存储装置。例如,可以借助于产品分发站点102通过数据网络108从产品存储库106访问已经购买的数字产品。数字产品的例子是计算机程序产品,诸如应用(或应用程序)、动画或者演示。产品提交和分发系统100还包括第一客户端110和第二客户端112。典型地,产品提交和分发系统100可以包括多个不同的客户端110、112。第一客户端110包括网络访问程序114。第二客户端112包括产品提交程序116。一些客户端也可以包括网络访问程序114和产品提交程序116两者。网络访问程序114是在第一客户端110上运行的应用程序(例如,软件应用),第一客户端110是一种计算设备。适合的网络访问程序的一个例子是网络浏览器(例如,MicrosoftExplorer或Safari)。适合的网络访问程序的另一个例子是由苹果公司提供的iTimes。第一客户端110可以通过数据网络108耦接到产品分发站点102。因此,任何第一客户端110都可以与产品分发站点102交互,以便查看、购买和/或管理数字产品。产品提交程序116也是在第二客户端112上运行的应用程序(例如,软件应用),第二客户端112是一种计算设备。产品提交程序116用于向产品提交和管理系统104提交数字产品以供媒体分发站点102最终分发。尽管在图1中将网络访问程序114和产品提交程序116示为单独的程序,但是应当理解,这些程序可以被集成到单个程序中或者驻留在同一客户端机器上。在图1所示的产品提交和分发系统100中,借助于产品提交程序116将数字产品提交给产品提交和管理系统104。已经被提交(例如,通过第二客户端112)的数字产品被处理,并且然后如果被接受,则被保存在产品存储库106中以供分发。此后,存储的数字产品可用于从产品分发站点102被购买。产品提交和分发系统100允许客户端110的用户利用网络访问程序114在可从产品分发站点102购买的多个数字产品中浏览、搜索或者分类。网络访问程序114也可以允许所述用户预览或演示部分或全部数字产品。在网络访问程序114的用户希望购买特定数字产品的情况下,所述用户(通过网络访问程序114)和产品分发站点102可以进行在线商业交易,其中用户为特定数字产品的访问权支付费用。在一个实施例中,使用与所述用户相关联的信用卡支付特定数字产品的购买或租用金额。一旦购买了特定数字产品,产品分发站点102允许从产品存储库106中检索该特定数字产品的数字数据,并且然后通过数据网络108从产品分发站点102将所述数字数据传递给进行请求的客户端110。在这点上,产品分发站点102或者一些其它传递服务器(未示出)从产品存储库106中获取相应于特定数字产品的数字数据,并且通过数据网络108将该数字数据下载到客户端110。然后,可将下载的数字数据存储在客户端110上。在一个实施例中,当被在客户端110接收时,下载的数字数据是被加密的,但是在永久存储在客户端110上之前,被解密并且然后可能被重新加密。此后,客户端110可以在客户端110上使用(或者执行)该数字产品的数字数据。可以在数据网络108上实现数字产品的提交和购买。换言之,数字产品的提交和购买可被在线实现。媒体项目的在线购买也可以被称作电子商务(电子商务e-commerce)。在一个实施例中,数据网络108使用因特网的至少一部分。在一个实施例中,产品分发站点102和客户端110、112之间通过数据网络108的连接可以是安全连接,诸如加密套接字协议层(SSL)。客户端110、112可以根据应用而变化,但是通常是具有存储器储存设备的计算设备。通常,客户端110、112是个人计算机或能够存储并向其用户呈现媒体的其它计算设备。在一个实施例中,一个或多个客户端可以是便携计算设备(例如,膝上计算机或网络计算机)或手持计算设备(例如,PDA、智能电话、多功能电子设备或媒体播放器)。数字产品可以包括一个或多个补充功能组件。补充功能组件可作为相应数字产品的补充或扩充。如图1中所示,通过数据网络108从产品分发站点102获得并下载的数字产品118可被存储在客户端110上。在一个实施例中,数字产品118可以包括补充功能组件120。然而,当最初获得数字产品118时,补充功能组件120是未激活或被锁定的,从而它不能被数字产品118使用。然而,在数字产品118在客户端110上的运行过程中,数字产品118可以发起对补充功能组件120的使用的获取。在这种情况下,数字产品118(本身或者借助于操作系统)可以与产品分发站点102的功能组件获取管理器122通信。通常,事先从产品分发站点102获取数字产品118。功能组件获取管理器122管理对访问补充功能组件的进入请求的处理。例如,功能组件获取管理器122接收访问补充功能组件的进入请求,确定该请求是否有效并且允许被处理,如果有的话,处理针对这种访问的支付,并且向进行请求的客户端设备110发送授权响应。一旦接收到授权响应,数字产品118可以使得补充功能组件120可以访问(即,被解锁)。在此实施例中,随同最初被下载到客户端110的数字产品118,提供补充功能组件,并且此后,只需将授权传递给客户端110,以便使补充功能组件120被激活。然而,在替换实施例中,可以只有在被授权之后,补充功能组件120才可被传递给客户端110(并且因此,与数字产品118的传递分离地提供)。尽管图1中将产品分发站点102、产品提交和管理系统104以及产品存储库106示为单独的部件,但是应当理解,这些部件中的任意部件都可以被组合到一个或多个装置内。例如,产品提交和管理系统104可以被结合到产品分发站点102中。作为另一个例子,产品存储库106可以被结合到产品分发站点102或产品提交和管理系统104中。为了利于客户端110与产品分发站点(例如,功能组件获取管理器122)就获取应用程序118的补充功能组件120的使用进行通信,产品分发站点102可以支持应用编程接口(API)。例如,在一个实施例中,用于产品分发站点102的API可以包括下面在附件A中示出的下述API。图2是根据本发明一个实施例的客户端200或客户端设备的方块图。例如,客户端200可适合于用作图1中所示的客户端110。客户端200包括操作系统(OS)202,所述操作系统(OS)202运行在客户端200上,以便给可在客户端200上执行的应用程序提供基本计算服务。此外,操作系统202包括商业服务器204。在客户端200上运行的应用程序使用商业服务器204,以便执行关于远程服务器诸如远程数字产品分发服务器的商业操作。例如,该远程服务器可以属于图1中所示的产品分发服务器102。客户端200还可包括安装在客户端200上并且可以由客户端200执行的一个或多个应用程序。通常,这些应用被从远程服务器(例如,产品分发服务器102)中获取并被下载到客户端200。可以用应用程序A206和应用程序B208表示驻留并安装在客户端200上的应用。如图2所示,应用程序A206包括补充功能组件X210和补充功能组件Y212。通常,当最初从远程服务器获取应用程序A206时,给出了补充功能组件210和212,但是它们“被锁定了”,并且因此当前不能使用。类似地,当被获取时,应用程序B208包括最初“被锁定的”补充功能组件Z214。此外,应用程序A206和应用程序B208可以借助于商业服务器204与远程服务器(例如,远程数字产品分发服务器)交互,以便使得所希望的一个或多个补充功能组件210、212和214“被解锁”。一旦补充功能组件变为“被解锁”,此后相关应用程序就可以使用该补充功能组件。为了便于应用程序206、208与商业服务器204之间的通信,商业服务器204可以支持应用编程接口(API)。例如,在一个实施例中,用于商业服务器204的API可以包括下面在附件B中示出的下列API。附件B还包含关于如何使用产品分发站点102(例如,托管基于网络的应用存储库)修改应用程序以便支持和分发补充功能组件的信息。图3A-3C是示出了根据本发明一个实施例访问补充功能组件的图。图3A示出了按照一个实施例的示例性数字产品300。可以从远程服务器,诸如图1中所示的产品分发站点102获取示例性数字产品300。示例性数字产品300不仅包括应用程序302,还包括补充功能组件X304和补充功能组件Y306。如图3A所示,补充功能组件X304和补充功能组件Y306都处于“被锁定”状态。如此处进一步讨论的,当被授权时,可以解锁应用程序的补充功能组件。通常,补充功能组件可以被单独解锁,并且在某些情况下,可以使得大量(多于1个)类似功能组件可用。在图3B中,示例性数字产品300的补充功能组件X304已经“被解锁”,使得其可被结合应用程序A302使用。然而,图3B中,补充功能组件Y306仍保持为“被锁定”。在图3C中,示例性数字产品300的补充功能组件X304和补充功能组件Y306都已经“被解锁”,使得它们可被结合应用程序A302使用。如上所述,应用程序(或数字产品)的补充功能组件(或补充部件)可以根据实现而改变。补充功能组件可以属于模块、工具、特性、功能、内容或数据。对于基于游戏的应用程序,补充功能组件可以是新武器、新角色、续命(exendedlives)、附加游戏等级等。对于产品应用,补充功能组件可以是附加模块(例如,年度模块、地理模块、基于内容的模块等)、附加或增强的功能(无线通信、打印、存储等)等。对于信息应用,补充功能组件可以是附加内容或数据、附加学习或信息模块等。图4是根据本发明一个实施例的数字产品提交处理400的流程图。例如,可由客户端设备(诸如客户端112)或服务器设备(诸如产品提交和管理系统104)执行数字产品提交处理400。数字产品提交处理400可以接收402关于数字产品的产品信息。该产品信息可以根据提交的数字产品的类型而改变。在一个实施例中,可以通过数字产品提交处理400提交给在线仓库的一种类型的数字产品是数字程序产品,诸如计算机程序产品。用于计算机程序产品的产品信息的例子可以包括如下中的一个或多个产品名称、所支持的设备类型标识(indication)、类型标识、版本号、产品标识符、支持信息以及许可证协议信息。此夕卜,当数字程序产品结合有一个或多个补充功能组件时,数字产品提交处理400还可以接收404所述一个或多个补充功能组件的补充信息。接着,可以上传406关于所述数字产品的至少一个电子文件。数字产品可以具有与其相关的一个或多个电子文件。例如,该数字产品可以包括二进制文件、支持或帮助文件和/或一个或多个示例性屏幕图示说明。此外,可以接收408与该数字产品一起使用的至少一个分发参数。分发参数是可用于控制或影响数字产品可被分发的方式的参数。分发参数的一个例子是定价参数(pricingparameter)。作为一个例子,定价参数可以指出与该数字产品相关的价格或价格等级。其它分发参数可以与分发该数字产品的数字店面有关。另外,分发参数还可以与预览适格性(eligibility)、许可证类别(类型)等有关。此后,数字产品可被提交410到在线仓库。例如,在线仓库可以对应于产品提交和管理系统104。在线仓库可以接收一个或多个电子文件、相关的产品信息、补充功能组件信息以及一个或多个分发参数。然后,根据产品信息和所述一个或多个分发参数,在线仓库可以操作以便允许从产品分发站点(例如,在线商店)分发包含在一个或多个电子文件中的数字产品。然后,在线仓库还可以操作以便帮助实现对该数字产品的一个或多个补充功能组件的后续访问。在数字产品被提交410给在线仓库后,可以结束数字产品提交处理400。图5是根据本发明一个实施例的补充功能组件客户端处理500的流程图。例如,可以在客户端(即,客户端设备),诸如图1中所示的客户端110上执行补充功能组件客户端处理500。补充功能组件客户端处理500可以执行502以前从基于远程网络的应用分发系统获取的应用程序。例如,基于远程网络的应用分发系统可以例如属于图1中所示的产品提交和分发系统100。此处,在客户端执行502以前从基于远程网络的应用分发系统获取的应用程序。在执行过程中的某个时刻,可以在客户端处给出判断504。判断504确定是否执行对补充功能组件的获取。在一个实施例中,判断504可以基于指示客户端的用户是否希望获取该应用程序的补充功能组件的用户输入来得以确定。例如,在执行该应用程序的过程中,该应用程序可以向用户给出补充功能组件提议(offer),并且用户可以响应该提议,由此指示用户是否希望该补充功能组件。在任何情况下,当判断504确定不需要获取补充功能组件时,判断506可以确定应用程序是否应当退出(即,结束)。当判断506确定应用程序不应退出时,则应用程序继续并且补充功能组件客户端处理500返回以便重复判断504。可替换地,当判断506确定应用程序应当退出时,则补充功能组件客户端处理500可以结束。在另一方面,当判断504确定需要获取补充功能组件时,可以向基于远程网络的应用分发系统发出请求508。请求508可以是基于远程网络的应用分发系统批准解锁该补充功能组件的请求。然后,判断510可以确定基于远程网络的应用分发系统是否已经批准解锁该补充功能组件。当判断510确定基于远程网络的应用分发系统已经批准了解锁该补充功能组件时,可以解锁512应用程序的补充功能组件。此处,在一种环境中,基于远程网络的应用分发系统可以通知客户端该补充功能组件被批准解锁,并且然后该应用程序可以操作以解锁该补充功能组件。可替换地,当判断510确定基于远程网络的应用分发系统尚未批准(即,拒绝)解锁该补充功能组件时,拒绝514解锁该补充功能组件的请求。此处,通过通知客户端该补充功能组件未被批准解锁,应用程序不能操作以便解锁该补充功能组件,由此该补充功能组件保持被锁定。在块512或块514之后,补充功能组件客户端处理500可以结束。图6A和图6B是根据本发明一个实施例的补充功能组件客户端处理600的流程图。例如,可以由客户端(客户端设备),诸如图1中所示的客户端110执行补充功能组件客户端处理600。补充功能组件客户端处理600可以从基于网络的应用分发系统下载602应用程序开始。例如,客户端的用户可以与基于网络的应用分发系统交互,以便识别、购买和下载应用程序。一旦被下载,应用程序可以被安装在客户端上。此后,判断604可以确定是否执行该应用程序。当判断604确定不执行该应用程序时,补充功能组件客户端处理600有效地等待,直到该应用程序被执行为止。一旦判断604确定该应用程序将被执行,则执行606该应用程序。接着,判断608可以确定是否在客户端处提议补充功能组件。当判断608确定不提议补充功能组件时,判断610可以确定是否应当退出(结束)补充功能组件客户端处理600。当判断610确定补充功能组件客户端处理600应当结束时,补充功能组件客户端处理600在不使得补充功能组件可用的情况下结束。可替换地,当判断610确定补充功能组件客户端处理600不应结束时,补充功能组件客户端处理600返回以便重复判断608。在另一方面,当判断608确定将提议补充功能组件时,可以呈现612补充功能组件提议。此处,运行该应用程序的客户端的用户可以看到或听到所呈现612的补充功能组件提议。在一种实现中,由在客户端上执行的应用程序呈现612补充功能组件提议。然后,判断614可以确定用户是否接受补充功能组件提议。当判断614确定用户不接受补充功能组件提议时,补充功能组件客户端处理600返回以便重复判断610,由此补充功能组件客户端处理600可以继续或者退出。可替换地,当判断614确定用户已经接受补充功能组件提议时,可以从基于网络的应用分发系统请求616补充功能组件信息。判断618确定是否已经接收到对补充功能组件信息请求的响应。当判断608确定尚未接收到响应时,补充功能组件客户端处理600可以等待这种响应。在另一方面,一旦判断618确定已经接收到对补充功能组件信息请求的响应,则可以呈现620补充功能组件信息。呈现620补充功能组件信息,以便向运行在客户端上的应用程序的用户提供关于所提议的补充功能组件的信息。例如,可以由客户端诸如应用程序或由操作系统显示补充功能组件信息。接着,判断622可以确定用户是否已经确认补充功能组件的获取。按照一种实现,除了应用程序之外,操作系统可以要求用户确认他们希望获取补充功能组件。判断622用于以受控方式管理补充功能组件的获取,使得应用程序不会为用户不经意地或者不适当地获取补充功能组件。当判断622确定补充功能组件的获取尚未被确认时,补充功能组件客户端处理600可以等待这种确认。当在预定时间段内没有发生确认的情况下,判断622可以可替换地使补充功能组件客户端处理600结束。可替换地,当判断622确定用户已经确认了补充功能组件的获取时,可以请求624访问补充功能组件的授权。此处,例如,可以向基于网络的应用分发系统做出对授权访问补充功能组件的请求。然后,判断626确定是否已经接收到访问补充功能组件的授权。可以作为授权响应或在授权响应内提供该授权。如果被提供了,则由客户端接收该授权响应。因此,判断626确定是否已经接收到授权响应。当判断626确定尚未接收到授权响应时,判断628可以确定是否发生了超时。当判断628确定已经发生了超时时,补充功能组件客户端处理600可以结束。在另一方面,当判断628确定尚未发生超时时,补充功能组件客户端处理600可以返回以便重复判断626,以便等待接收授权响应。一旦判断626确定已经接收到授权响应,则可以解锁630应用程序的补充功能组件。通常,如果授权响应被提供给客户端,则应用程序本身可以解锁补充功能组件。在块630之后,补充功能组件客户端处理600可以结束。图7是根据本发明一个实施例的补充功能组件服务器处理700的流程图。例如,可以由服务器(服务器设备)诸如图1中所示的产品分发站点102执行补充功能组件服务器处理700。补充功能组件服务器处理700可以判断702开始。判断702可以确定是否已经接收到补充功能组件信息请求。通常,可以从客户端接收补充功能组件信息请求。作为一个例子,补充功能组件信息请求可以由图6A和图6B中所示的补充功能组件客户端处理600的块616发起。当判断702确定已经接收到补充功能组件信息请求时,可以在704检索与该补充功能组件相关的补充功能组件信息。例如,服务器访问可以存储用于多个不同补充功能组件的补充功能组件信息的数据存储设备。作为特定的例子,补充功能组件信息可以是存储在产品存储库106中的产品信息的一部分,产品存储库106可以是数据库。然后可以发送706已经检索704到的补充功能组件信息。通常,补充功能组件信息被发送706给发起补充功能组件信息请求的客户端。可替换地,当判断702确定尚未接收到补充功能组件信息请求时,可以绕过块704和706。在块706之后,或者在绕过块706之后,补充功能组件服务器处理700可以执行与解锁补充功能组件相关的处理。特别地,判断708可以确定是否已经接收到解锁请求。通常,可以从客户端接收该解锁请求。作为一个例子,解锁请求(也是一种授权请求)可以由图6A和图6B中所示的补充功能组件客户端处理600的块624发起。当判断708确定已经接收到解锁请求时,补充功能组件服务器处理700可以确定710是否批准该解锁请求。在一种实现中,该批准可能需要满足一个或多个要求。该要求可以根据实现而改变,该要求可以包括对补充功能组件的支付、对应用程序的在先购买、存在用户账户等中的一个或多个。当判断712确定该解锁请求未被批准时,补充功能组件服务器处理700可以向做出解锁请求的客户端发送714拒绝响应。拒绝响应可以指出拒绝的理由。可替换地,当判断712确定批准了该解锁请求时,解锁该补充功能组件的授权响应被发送716给提出该解锁请求的客户端。该授权响应可以包括可用于解锁已被请求解锁的特定补充功能组件的一个或多个授权码。在一种实现中,该授权响应被发送716给在该客户端上运行的应用程序,并且然后,该应用程序可以解锁该补充功能组件(例如,图6A和图6B中所示的补充功能组件客户端处理600的块630)。在另一方面,当判断708确定尚未接收到解锁请求时,可以绕过块710-716。在块714或716(或绕过这些块)之后,补充功能组件服务器处理700可以返回以便重复判断702。此处,通过引用将2009年3月16日提交的、发明名称为“APPLICATIONPRODUCTSWITHIN-APPLICATIONSUBSEQUENTFEATUREACCESSUSINGNETffORK-BASEDDISTRIBUTIONSYSTEM”的美国临时专利申请No.61/160,640结合在本文中。本申请还引用和/或结合了(1)2003年10月15日提交的发明名称为“METHODANDSYSTEMFORSUBMITTINGMEDIAFORNETffORK-BASEDPURCHASEANDDISTRIBUTION”的美国专利申请No.10/687,534,通过引用将其结合在本文中;(2)2007年2月27日提交的发明名称为“PROCESSINGOFMETADATACONTENTANDMEDIACONTENTRECEIVEDBYAMEDIADISTRIBUTIONSYSTEM”的美国专利申请No.11/712,303,通过引用将其结合到本文中;(3)2006年12月12日提交的发明名称为“TECHNIQUESANDSYSTEMSFORELECTR0NICSUBMISSI0NOFMEDIAFORNETffORK-BASEDDISTRIBUTION"的美国专利申请No.11/609,815,通过引用将其结合到本文中;(4)2007年1月12日提交的发明名称为“COMPUTER〗ZEDMANAGEMENTOFMEDIADISTRIBUTIONAGREEMENTS”的美国专利申请No.11/622,923,通过引用将其结合到本文中;(5)2008年9月26日提交的发明名称为“ELECTRONICSUBMISSIONANDMANAGEMENTOFDIGITALPRODUCTSFORNETffORK-BASEDDISTRIBUTION”的美国专利申请No.12/286,076,通过引用将其结合到本文中;(6)2008年9月26日提交的发明名称为“NETWORK-BASEDDISTRIBUTION0FAPPLICATI0NPRODUCTS,,的美国专利申请No.12/286,075,通过引用将其结合到本文中;(7)2008年9月26日提交的发明名称为“ELECTRONICSUBMISSIONOFAPPLICATIONPR0GRAMSF0RNETWORK-BASEDDISTRIBUTION”的美国专利申请No.12/286,092,通过引用将其结合到本文中;(8)2009年2月2日提交的发明名称为“INTELLIGENTDOWNLOAD0FAPPLICATI0NPROGRAMS”的美国专利申请No.12/368,111,通过引用将其结合到本文中。根据本发明的第一方面,提供了一种用于在计算设备上解锁应用程序的补充功能组件的方法,所述方法包括在所述计算设备上执行应用程序,所述应用程序是以前从基于远程网络的应用分发系统获取的,所述应用程序包括至少一个补充功能组件,所述补充功能组件当前被锁定,并且位于所述应用程序内,但可对其进行解锁;在所述计算设备处,确定所述应用程序的用户希望获得对当前被锁定的所述至少一个补充功能组件的使用;请求所述基于远程网络的应用分发系统批准解锁所述至少一个补充功能组件;从所述基于远程网络的应用分发系统接收批准解锁所述至少一个补充功能组件的授权;和此后在所述计算设备处解锁所述至少一个补充功能组件,从而允许所述应用程序利用所述至少一个补充功能组件。优选地,所述方法还包括在所述确定之前,从所述基于远程网络的应用分发系统请求补充功能组件信息,所述补充功能组件信息至少包括属于所述至少一个补充功能组件的描述信息;随后在所述计算设备处从所述基于远程网络的应用分发系统接收所述补充功能组件信息;和在所述确定之前,在所述计算设备处呈现所述补充功能组件信息。优选地,所述方法在所述应用程序保持执行的同时操作。优选地,所述请求包括向所述基于远程网络的应用分发系统发送请求,所述请求至少包括(i)所述至少一个补充功能组件的功能组件标识符,和(ii)所述应用程序的应用标识符。优选地,所述计算设备是至少能够执行应用程序的手持电子设备。优选地,所述计算设备包括操作系统,并且其中通过所述操作系统处理应用程序和基于远程网络的应用分发系统之间的通信。其中在所述应用程序仍然运行时,由所述操作系统执行所述确定、所述请求和所述接收。其中由所述应用程序执行所述解锁。根据本发明的另一方面,提供了一种用于管理对应用程序的补充功能组件的解锁的方法,所述应用程序是以前从基于远程网络的应用分发系统获取的,所述方法包括从计算设备接收对来自所述基于远程网络的应用分发系统的补充功能组件信息的请求;检索与所述应用程序的补充功能组件相关联的补充功能组件信息,所述补充功能组件信息至少包括属于以前从所述基于远程网络的应用分发系统获取的应用程序的补充功能组件的描述信息;向所述计算设备发送检索到的补充功能组件信息;接收来自所述计算设备的解锁应用程序的补充功能组件的请求;确定所述基于远程网络的应用分发系统是否批准解锁所述补充功能组件;和如果确定所述基于远程网络的应用分发系统已经批准解锁所述补充功能组件,则向所述计算设备发送解锁所述补充功能组件的授权。优选地,以应用标识符标识所述应用程序,并且其中以功能组件标识符标识所述补充功能组件。其中对补充功能组件信息的所述检索基于所述功能组件标识符和应用标识符。其中对补充功能组件信息的所述检索包括验证所述功能组件标识符与所述应用程序的应用标识符相关联。优选地,所述补充功能组件信息至少包括解锁所述补充功能组件的费用信息;和其中所述确定包括在所述基于远程网络的应用分发系统处启动针对所述补充功能组件的支付处理。根据本发明的再一个方面,提供了一种用于管理对以前从基于网络的应用分发系统获取的应用程序的补充功能组件的解锁的方法,所述方法包括从所述计算设备接收解锁以前从所述基于网络的应用分发系统获取的应用程序的补充功能组件的请求;确定所述基于网络的应用分发系统是否批准解锁所述补充功能组件;和如果确定所述基于网络的应用分发系统批准解锁所述补充功能组件,向所述计算设备发送解锁所述补充功能组件的授权。优选地,以应用标识符标识所述应用程序,并且其中以功能组件标识符标识所述补充功能组件。根据本发明的再一个方面,提供了一种移动计算设备,包括具有至少一个被锁定的功能组件的至少一个应用模块;和驻留在所述移动计算设备上的商业服务器,所述商业服务器配置为与远程服务器交互,以便实现在所述至少一个应用模块运行在所述移动计算设备上的同时,访问所述至少一个应用模块的所述至少一个被锁定的功能组件。优选地,所述移动计算设备是手持多功能电子设备,和所述手持多功能电子设备提供执行所述至少一个应用模块和支持无线语音和数据通信的能力。优选地,所述移动计算设备还包括操作系统,并且其中所述商业服务器是所述操作系统的一部分。优选地,所述至少一个应用模块通知用户所述至少一个被锁定的功能组件的可用性,并且其中如果用户请求解锁所述被锁定的功能组件,所述至少一个应用模块与所述商业服务器交互,以便确定是否应当解锁所述被锁定的功能组件。其中所述商业服务器配置为确定所述至少一个应用程序的用户是否希望获取对被锁定的功能组件的使用;和其中所述商业服务器配置为与远程服务器交互,以便(i)请求所述远程服务器批准解锁被锁定的功能组件,和(ii)从远程服务器接收批准解锁被锁定的功能组件的授权。其中所述至少一个应用程序配置为如果来自远程服务器的授权指示批准解锁被锁定的功能组件,则在所述计算设备处解锁所述应用程序的被锁定的功能组件。根据本发明的再一个方面,提供了一种便携式客户端计算设备,包括包括商业服务器的操作系统,所述商业服务器配置为通过网络与远程服务器通信,以便获取或激活应用程序或其补充功能组件;和数据存储设备,配置为存储具有至少一个补充功能组件的应用程序,所述应用程序至少包括与所述商业服务器通信的器件,以便(i)获取对所述至少一个补充功能组件的访问权,和(ii)如果已经获得了对所述至少一个补充功能组件的访问权,则提交所述应用程序可访问的至少一个补充功能组件。根据本发明的再一个方面,提供了一种用于在计算设备上解锁应用程序的补充功能组件的装置,所述装置包括用于在所述计算设备上执行应用程序的器件,所述应用程序是以前从基于远程网络的应用分发系统获取的,所述应用程序包括至少一个补充功能组件,所述补充功能组件当前被锁定,并且位于所述应用程序内,但可对其进行解锁;用于在所述计算设备处,确定所述应用程序的用户希望获得对当前被锁定的所述至少一个补充功能组件的使用的器件;用于请求所述基于远程网络的应用分发系统批准解锁所述至少一个补充功能组件的器件;用于从所述基于远程网络的应用分发系统接收批准解锁所述至少一个补充功能组件的授权的器件;和用于此后在所述计算设备处解锁所述至少一个补充功能组件,从而允许所述应用程序利用所述至少一个补充功能组件的器件。优选地,所述装置还包括用于在所述确定之前,从所述基于远程网络的应用分发系统请求补充功能组件信息的器件,所述补充功能组件信息至少包括属于所述至少一个补充功能组件的描述信息;用于随后在所述计算设备处从所述基于远程网络的应用分发系统接收所述补充功能组件信息的器件;和用于在所述确定之前,在所述计算设备处呈现所述补充功能组件信息的器件。优选地,所述装置在所述应用程序保持执行的同时操作。优选地,用于请求的器件包括用于向所述基于远程网络的应用分发系统发送请求的器件,所述请求至少包括(i)所述至少一个补充功能组件的功能组件标识符,和(ii)所述应用程序的应用标识符。优选地,所述计算设备是至少能够执行应用程序的手持电子设备。优选地,所述计算设备包括操作系统,并且其中通过所述操作系统处理应用程序和基于远程网络的应用分发系统之间的通信。其中在所述应用程序仍然运行时,由所述操作系统执行所述确定、所述请求和所述接收。其中由所述应用程序执行所述解锁。根据本发明的再一个方面,提供了一种用于管理对应用程序的补充功能组件的解锁的装置,所述应用程序是以前从基于远程网络的应用分发系统获取的,所述装置包括用于从计算设备接收对来自所述基于远程网络的应用分发系统的补充功能组件信息的请求的器件;用于检索与所述应用程序的补充功能组件相关联的补充功能组件信息的器件,所述补充功能组件信息至少包括属于以前从所述基于远程网络的应用分发系统获取的应用程序的补充功能组件的描述信息;用于向所述计算设备发送检索到的补充功能组件信息的器件;用于接收来自所述计算设备的解锁应用程序的补充功能组件的请求的器件;用于确定所述基于远程网络的应用分发系统是否批准解锁所述补充功能组件的器件;和用于如果确定所述基于远程网络的应用分发系统已经批准解锁所述补充功能组件,则向所述计算设备发送解锁所述补充功能组件的授权的器件。优选地,以应用标识符标识所述应用程序,并且其中以功能组件标识符标识所述补充功能组件。其中用于检索补充功能组件信息的器件所进行的检索基于所述功能组件标识符和应用标识符。其中用于检索补充功能组件信息的的器件包括用于验证所述功能组件标识符与所述应用程序的应用标识符相关联的器件。优选地,所述补充功能组件信息至少包括解锁所述补充功能组件的费用信息;和其中用于确定的器件包括用于在所述基于远程网络的应用分发系统处启动针对所述补充功能组件的支付处理的器件。根据本发明的再一个方面,提供了一种用于管理对以前从基于网络的应用分发系统获取的应用程序的补充功能组件的解锁的装置,所述装置包括用于从所述计算设备接收解锁以前从所述基于网络的应用分发系统获取的应用程序的补充功能组件的请求的器件;用于确定所述基于网络的应用分发系统是否批准解锁所述补充功能组件的器件;和用于如果确定所述基于网络的应用分发系统批准解锁所述补充功能组件,向所述计算设备发送解锁所述补充功能组件的授权的器件。优选地,以应用标识符标识所述应用程序,并且其中以功能组件标识符标识所述补充功能组件。其中,应当理解,根据本发明的应用模块可以是诸如应用程序的软件、或可以是承载应用程序的硬件或者是软件和硬件的组合。以上描述的本发明的各个方面、特征、实施例或实施方式可以单独或以各种不同组合方式使用。例如,本发明的实施例可以由软件、硬件或硬件和软件的组合来实现。本发明的实施例也可以被表达为计算机可读介质上的计算机可读代码。该计算机可读介质是可以存储数据然后可由计算机系统读取的任意数据存储设备。计算机可读介质的例子一般包括只读存储器和随机存取存储器。计算机可读介质的更特定的例子是有形存储器,并且包括闪存、EEPROM存储器、存储卡、⑶-ROM、DVD、硬盘驱动器、磁带以及光学数据存储设备。计算机可读介质还可以分布在联网的计算机系统上,使得以分布式方式存储和执行所述计算机可读代码。从上述描述中将明了本发明的许多特征和优点。另外,由于本领域技术人员容易想到许多修改和改变,本发明不应当被限定为所示出的以及描述的精确构造和操作。因此,可以使用落在本发明的范围内的所有适合的修改和等同物。附件Aitem-id提议(即,功能组件)标识符(即,adamid)app-item-id应用的标识符(艮口,applicationadamid)version-external-identifier应用的夕卜部版本idoffer-name测试模式的提议标识符bid测试模式的应用包idbvrs测试模式的应用包版本在所有4个API中都需要dsid,guid和xtoken。inAppBuy产品中要求:salableAdamId,appAdamld,禾口appExtVrsId.测试中要求:salableAdamId,appAdamld,appExtVrsId,offerName,bid,禾口bvrs.其它buyParams(购买参数)包括productType(产品类型),price(价格),quantity(^M),禾口salablePricingParameters(H^^^iiit^WL)■响应(如果可以使用bid,bvrs和offerName)<key>appList</key><array><dict><key>item-id</key><integer>lll</integer)<key>app-item-id</key><integer)1234</integer)<key>version-external-identifier</key><integer>222</integer)<key>offer-name</key><string>sword</string)<key>bid</key><string>444</string><key>bvrs</key><string>555</string)<key>download-id</key><string>1234568453979</string><key>purchase-date</key><string>2009-02-1323:40:53Etc/GMT</string><key>quantity</key><integer)1</integer)</dict></array>inAppCheckDownloadQueue产品中要求使用appAdamld,appExtVrsId,salableAdamld(可选,如果不存在,则可以返回用于此应用的所有未下载提议和外部id).测试中要求使用bid,bvrs,OfferName(可选,如果不存在,则可以返回用于此应用的所有未下载提议和外部id).响应<key>download-queue-item-count</key><integer>0</integer)inAppPendingTransactions产品中要求使用appAdamld,appExtVrsId,salableAdamld(可选,如果不存在,则可以返回用于此应用的所有未下载提议和外部id).测试中要求使用bid,bvrs,OfferName(可选,如果不存在,则可以返回用于此应用的所有未下载提议和外部id).响应<key>appList</key><array><dict><key>item-id</key><integer>lll</integer)<key>app-item-id</key><integer)1234</integer)<key>version-external-identifier</key><integer>222</integer)<key>offer-name</key><string>sword</string)<key>bid</key><string>444</string><key>bvrs</key><string>555</string)<key>download-id</key><string>1234568453979</string><key>purchase-date</key><string>2009-02-1323:40:53Etc/GMT</string><key>quantity</key><integer)1</integer)</dict><dict><key>item-id</key><integer>222</integer><key>app-item-id</key><integer)1234</integer)<key>version-external-identifier</key><integer>222</integer)<key>offer-name</key><string>shield</string)<key>bid</key><string>666</string)<key>bvrs</key><string>777</string)<key>download-id</key><string>1234568453980</string><key>purchase-date</key><string>2009-02-1323:40:53Etc/GMT</string><key>quantity</key><integer>2</integer)</dict></array>inAppTransactionDone产品和测试中要求downloadld请求和响应的例子cur1-L-v“http://michaelchu.apple.com/WebObjects/MZFinance.woa/wa/inAppBuy?salableAdamld=11l&appAdamld=222&appExtVrsId=333&bid=444&bvrs=555&quantity=l&offerName=offer"_H〃X-Dsid:38398162〃_H〃User-Agent:iTunes-iPhone/2.1"<?xmlversion="1.0〃encoding="UTF—8"standalone="no"><!D0CTYPEplistPUBLIC"-//AppleComputer//DTDPLIST1.0//ΕΝ"〃http://www.apple.com/DTDs/PropertyList-LO.dtd">〈plistversion="1.0〃><dict><key>/jingleDocType</key><string>inAppSuccess</string)<key>jingleAction</key><string>inAppBuyAction</string)<key>dsid</key><string>38398162</string><key>download-queue-item-count</key><integer)1</integer)<key>app-list</key><array><dict><key>item-id</key><integer>lll</integer)<key>app-item-id</key><integer>222</integer)<key>version-external-identifier</key><integer>333</integer)<key>bid</key><string>444</string><key>bvrs</key><string>555</string)<key>offer-name</key><string>offer</string)<key>download-id</key><string>1235424182908</string><key>purchase-date</key><string>2009-02-2321:23:02Etc/GMT</string><key>quantity</key><integer)1</integer)</dict></array><key>set-prefs</key><dict><key>preferred-audio-format</key><string>256</string)</dict></dict></plist>cur1-L-v"http://michaelchu.apple.com/ffebObjects/MZFinance,woa/wa/inAppTransactionDone?downloadld=111"_H〃X-Dsid:38398162〃_H〃User-Agent:iTunes-iPhone/2.1"<?xmlversion="1.0〃encoding="UTF-8"standalone="no"><!D0CTYPEplistPUBLIC"-//AppleComputer//DTDPLIST1.0//ΕΝ"〃http://www.apple.com/DTDs/PropertyList-LO.dtd">〈plistversion=〃1.0〃><dict><key>jingleDocType</key><string>inAppSuccess</string)<key>jingleAction</key><string>inAppTransactionDoneAction</string)<key>dsid</key><string>38398162</string><key>set-prefs</key><dict><key>preferred-audio-format</key><string>256</string)</dict></dict></plist>附件B用于商业服务器的程序接口(被称为StoreKit)包括一种协议,该协议必须由你的应用(YourApplication)以及用于向应用商店(ApplicationStore)传达用户希望购买项目的一些类实现。SKPaymentRequest(SK支付请求)每件事都以支付请求开始。当用户决定购买可在你的应用中使用的项目时,你的应用创建支付请求,所述支付请求详细列出要购买的项目以及要购买的项目的数量(如果适用的话)。在你的应用内采用productldentifier(产品标识符)字符串标识将要购买的项目。这是应用商店和你的应用达成一致用于表示特定项目的字符串。SKPaymentQueue(SK支付队列)支付队列是与应用商店的接口。支付队列负责将应用的支付请求传送给商业服务器。商业服务器会将这些请求传递给应用商店,并且向用户显示任何必要的提示。一旦验证了用户的凭证并且批准了支付,支付队列则通知你的应用已经处理了该请求。SKPaymentTransaction(SK支付交易)当你的应用将支付请求添加到支付队列上时,该请求被封装到交易中。该交易告诉你请求的状态——是否仍旧等待处理或者是成功了还是失败了。尽管你的应用可以向支付队列请求给出待交易列表,但是对于应用而言,更普遍的是等待,直到支付队列以更新的交易列表调用它为止。SKTransactionObserver(SK交易观察器)为了对支付队列起作用,你的应用增加一个对象,该对象实现SKTransactionObserver作为支付队列的观察器。该交易观察器被支付队列调用,以便当交易被更新或者被从队列中删除时通知它。你的应用应当在初始化时将观察器与支付队列相关联。在添加观察器之前,不用等待直到用户试图购买项目。用户可能已经试图购买项目,但在交易完成之前退出你的应用。通过在初始化时添加观察器,这些交易将被在下次你的应用运行时转发到你的观察器。观察器的主要职责是检查所有完成的购买,并且使得可以获得用户已经购买的内容。商业服务器API只是将商店添加到你的应用的处理的一小部分。你需要决定如何跟踪你希望销售的功能组件、如何将它们显示给用户以及当用户从你的商店购买了一些内容时如何解锁这些内容。在处理较重大的设计问题之前,理解将商店添加到你的应用所必须遵守的基本步骤是有帮助的。一步一步的操作当建立项目时,要确保链接到StoreKit.framework.然后,按照一个实施例,你可以通过遵循以下这些步骤将商店添加到你的应用1.决定你希望在你的应用内销售的项目的列表。对于游戏,你可以用它向用户销售新的内容。对于产品应用,你可以提供解锁你的应用内的新功能组件的能力。可能存在对你能够提议的功能组件的类型的限制。尽管你可以解锁已经创建在你的应用中的代码,但是StoreKitAPI当前未给你的应用提供修补其本身或者下载附加代码库的能力。应用商店购买必须解锁现有代码,或者必须能够被完全以数据实现。如果你的功能组件要求附加代码,则你必须发送你的应用的新版本。2.为要在你的应用内销售的每个项目注册一个产品标识符字符串。每次你想添加要销售的新项目时,你都将回到这个步骤。你商店里的要销售的每个项目都需要有唯一的产品标识符字符串。应用商店使用这种字符串查找功能组件的名称及其价格。这些产品标识符对于每个应用而言都是特定的,并且被注册到应用商店,数目与你的应用一样多。3.添加显示用于销售的项目并且允许用户对其选择的用户界面。StoreKit不提供用户界面。你向你的客户销售物品的外观和感觉取决于你自己。要点=StoreKit重点在支付交易上。它不为你的应用提供检索包括价格在内的有关要购买的可能项目的信息的机制。你的应用需要本地存储这种数据,或者从你自己的专有服务器中取得这种数据。4.当用户选择要购买的项目时,你的应用将创建新的支付请求,并且将它添加到支付队列。SKPaymentRequest氺request=[SKPaymentRequestrequestForProductldentifierkMyFeatureldentifier];[[SKPaymentQueuesharedQueue]addRequestrequest];如果可以多于一次地购买特定项目,你可以创建包括要购买的项目的数量的单个请求。SKMutablePaymentRequest^request=[SKMutablePaymentRequestrequestForProductldentifierkMyFeatureldentifier];request,quantity=3;[[SKPaymentQueuesharedQueue]addRequest:request];5.在一个类上实现SKTransactionObserver协议。你应当在你的观察器中实现paymentQueue:updatedTransactions方法。没有这个方法,你的应用将永远不会从应用商店接收到关于已处理交易的信息。-(void)paymentQueue(SKPaymentQueue*)queueupdatedTransactions(NSArraytransactions{for(SKPaymentTransaction氺transactionintransactions){switch(transaction,state){caseSKPaymentTransactionStatePurchased:[self_completeTransaction:transaction];break;caseSKPaymentTransactionStateFailed:[self_faiIedTransaction:transaction];break;default:break;}}}6.将交易观察器注册到支付队列。你的应用应当实例化交易观察器对象,并且将其作为观察器添加到支付队列。MyStoreObserver水observer=[[MyStoreObserveralloc]init];[[SKPaymentQueuesharedQueue]addTransactionObserver:observer];你的应用应当在初始化过程中添加观察器。StoreKit允许在将来的一个时刻传递在你的应用的先前调用中放入队列的交易。例如,用户可能已经退出你的应用以便接电话。7.完成成功购买的交易-(void)_completeTransaction(SKPaymentTransactiontransaction{[self_recordTransactionIdentifier:transaction,transactionldentifier];[self_provideContent:transaction,request,productldentifier];[[SKPaymentQueuesharedQueue]finishTransaction:transaction];}transactionldentifier是处理了用户的支付之后由应用商店生成的字符串。不要求你的应用程序利用此信息做任何操作,但是你可能想要记录它作为对你的应用的审计跟踪的一部分。关键是你的应用要能采取任何必要的步骤以便提供用户购买的内容。已经接收到针对该项目的支付,所以用户希望可以获得该项目。一旦你已向用户提供了他们的内容,你的应用必须调用finishTransaction以便完成该操作。这将从交易队列中去除该交易。一旦你的应用调用finishTransaction:,则该交易就不再被发送到你的应用的交易观察器。出于这个原因,这应当是你执行的最后步骤。8.完成失败的购买的交易-(void)_faiIedTransaction(SKPaymentTransaction*)transaction{[[SKPaymentQueuesharedQueue]finishTransaction:transaction];}对于失败的购买的唯一要求是你要从队列中将其去除。你可以选择采取其它必要的措施。权利要求一种用于在计算设备上解锁应用程序的补充功能组件的方法,所述方法包括在所述计算设备上执行应用程序,所述应用程序是以前从基于远程网络的应用分发系统获取的,所述应用程序包括至少一个补充功能组件,所述补充功能组件当前被锁定,并且位于所述应用程序内,但可对其进行解锁;在所述计算设备处,确定所述应用程序的用户希望获得对当前被锁定的所述至少一个补充功能组件的使用;请求所述基于远程网络的应用分发系统批准解锁所述至少一个补充功能组件;从所述基于远程网络的应用分发系统接收批准解锁所述至少一个补充功能组件的授权;和此后在所述计算设备处解锁所述至少一个补充功能组件,从而允许所述应用程序利用所述至少一个补充功能组件。2.如权利要求1所述的方法,其中所述方法还包括在所述确定之前,从所述基于远程网络的应用分发系统请求补充功能组件信息,所述补充功能组件信息至少包括属于所述至少一个补充功能组件的描述信息;随后在所述计算设备处从所述基于远程网络的应用分发系统接收所述补充功能组件信息;和在所述确定之前,在所述计算设备处呈现所述补充功能组件信息。3.如权利要求1所述的方法,其中所述方法在所述应用程序保持执行的同时操作。4.如权利要求1所述的方法,其中所述请求包括向所述基于远程网络的应用分发系统发送请求,所述请求至少包括(i)所述至少一个补充功能组件的功能组件标识符,和(ii)所述应用程序的应用标识符。5.如权利要求1所述的方法,其中所述计算设备是至少能够执行应用程序的手持电子设备。6.如权利要求1所述的方法,其中所述计算设备包括操作系统,并且其中通过所述操作系统处理应用程序和基于远程网络的应用分发系统之间的通信。7.如权利要求6所述的方法,其中在所述应用程序仍然运行时,由所述操作系统执行所述确定、所述请求和所述接收。8.如权利要求7所述的方法,其中由所述应用程序执行所述解锁。9.一种用于管理对应用程序的补充功能组件的解锁的方法,所述应用程序是以前从基于远程网络的应用分发系统获取的,所述方法包括从计算设备接收对来自所述基于远程网络的应用分发系统的补充功能组件信息的请求;检索与所述应用程序的补充功能组件相关联的补充功能组件信息,所述补充功能组件信息至少包括属于以前从所述基于远程网络的应用分发系统获取的应用程序的补充功能组件的描述信息;向所述计算设备发送检索到的补充功能组件信息;接收来自所述计算设备的解锁应用程序的补充功能组件的请求;确定所述基于远程网络的应用分发系统是否批准解锁所述补充功能组件;和如果确定所述基于远程网络的应用分发系统已经批准解锁所述补充功能组件,则向所述计算设备发送解锁所述补充功能组件的授权。10.如权利要求9所述的方法,其中以应用标识符标识所述应用程序,并且其中以功能组件标识符标识所述补充功能组件。11.如权利要求10所述的方法,其中对补充功能组件信息的所述检索基于所述功能组件标识符和应用标识符。12.如权利要求10所述的方法,其中对补充功能组件信息的所述检索包括验证所述功能组件标识符与所述应用程序的应用标识符相关联。13.如权利要求9所述的方法,其中所述补充功能组件信息至少包括解锁所述补充功能组件的费用信息;和其中所述确定包括在所述基于远程网络的应用分发系统处启动针对所述补充功能组件的支付处理。14.一种用于管理对以前从基于网络的应用分发系统获取的应用程序的补充功能组件的解锁的方法,所述方法包括从所述计算设备接收解锁以前从所述基于网络的应用分发系统获取的应用程序的补充功能组件的请求;确定所述基于网络的应用分发系统是否批准解锁所述补充功能组件;和如果确定所述基于网络的应用分发系统批准解锁所述补充功能组件,向所述计算设备发送解锁所述补充功能组件的授权。15.如权利要求14所述的方法,其中以应用标识符标识所述应用程序,并且其中以功能组件标识符标识所述补充功能组件。16.一种移动计算设备,包括具有至少一个被锁定的功能组件的至少一个应用模块;和驻留在所述移动计算设备上的商业服务器,所述商业服务器配置为与远程服务器交互,以便实现在所述至少一个应用模块运行在所述移动计算设备上的同时,访问所述至少一个应用模块的所述至少一个被锁定的功能组件。17.如权利要求16所述的移动计算设备,其中所述移动计算设备是手持多功能电子设备,和其中所述手持多功能电子设备提供执行所述至少一个应用模块和支持无线语音和数据通信的能力。18.如权利要求16所述的移动计算设备,其中所述移动计算设备还包括操作系统,并且其中所述商业服务器是所述操作系统的一部分。19.如权利要求16所述的移动计算设备,其中所述至少一个应用模块通知用户所述至少一个被锁定的功能组件的可用性,并且其中如果用户请求解锁所述被锁定的功能组件,所述至少一个应用模块与所述商业服务器交互,以便确定是否应当解锁所述被锁定的功能组件。20.如权利要求19所述的移动计算设备,其中所述商业服务器配置为确定所述至少一个应用程序的用户是否希望获取对被锁定的功能组件的使用;和其中所述商业服务器配置为与远程服务器交互,以便(i)请求所述远程服务器批准解锁被锁定的功能组件,和(ii)从远程服务器接收批准解锁被锁定的功能组件的授权。21.如权利要求20所述的移动计算设备,其中所述至少一个应用程序配置为如果来自远程服务器的授权指示批准解锁被锁定的功能组件,则在所述计算设备处解锁所述应用程序的被锁定的功能组件。22.一种便携式客户端计算设备,包括包括商业服务器的操作系统,所述商业服务器配置为通过网络与远程服务器通信,以便获取或激活应用程序或其补充功能组件;和数据存储设备,配置为存储具有至少一个补充功能组件的应用程序,所述应用程序至少包括与所述商业服务器通信的器件,以便(i)获取对所述至少一个补充功能组件的访问权,和(ii)如果已经获得了对所述至少一个补充功能组件的访问权,则提交所述应用程序可访问的至少一个补充功能组件。23.一种用于在计算设备上解锁应用程序的补充功能组件的装置,所述装置包括用于在所述计算设备上执行应用程序的器件,所述应用程序是以前从基于远程网络的应用分发系统获取的,所述应用程序包括至少一个补充功能组件,所述补充功能组件当前被锁定,并且位于所述应用程序内,但可对其进行解锁;用于在所述计算设备处,确定所述应用程序的用户希望获得对当前被锁定的所述至少一个补充功能组件的使用的器件;用于请求所述基于远程网络的应用分发系统批准解锁所述至少一个补充功能组件的器件;用于从所述基于远程网络的应用分发系统接收批准解锁所述至少一个补充功能组件的授权的器件;和用于此后在所述计算设备处解锁所述至少一个补充功能组件,从而允许所述应用程序利用所述至少一个补充功能组件的器件。24.如权利要求23所述的装置,其中所述装置还包括用于在所述确定之前,从所述基于远程网络的应用分发系统请求补充功能组件信息的器件,所述补充功能组件信息至少包括属于所述至少一个补充功能组件的描述信息;用于随后在所述计算设备处从所述基于远程网络的应用分发系统接收所述补充功能组件信息的器件;和用于在所述确定之前,在所述计算设备处呈现所述补充功能组件信息的器件。25.如权利要求23所述的装置,其中所述装置在所述应用程序保持执行的同时操作。26.如权利要求23所述的装置,其中用于请求的器件包括用于向所述基于远程网络的应用分发系统发送请求的器件,所述请求至少包括(i)所述至少一个补充功能组件的功能组件标识符,和(ii)所述应用程序的应用标识符。27.如权利要求23所述的装置,其中所述计算设备是至少能够执行应用程序的手持电子设备。28.如权利要求23所述的装置,其中所述计算设备包括操作系统,并且其中通过所述操作系统处理应用程序和基于远程网络的应用分发系统之间的通信。29.如权利要求28所述的装置,其中在所述应用程序仍然运行时,由所述操作系统执行所述确定、所述请求和所述接收。30.如权利要求29所述的装置,其中由所述应用程序执行所述解锁。31.一种用于管理对应用程序的补充功能组件的解锁的装置,所述应用程序是以前从基于远程网络的应用分发系统获取的,所述装置包括用于从计算设备接收对来自所述基于远程网络的应用分发系统的补充功能组件信息的请求的器件;用于检索与所述应用程序的补充功能组件相关联的补充功能组件信息的器件,所述补充功能组件信息至少包括属于以前从所述基于远程网络的应用分发系统获取的应用程序的补充功能组件的描述信息;用于向所述计算设备发送检索到的补充功能组件信息的器件;用于接收来自所述计算设备的解锁应用程序的补充功能组件的请求的器件;用于确定所述基于远程网络的应用分发系统是否批准解锁所述补充功能组件的器件;和用于如果确定所述基于远程网络的应用分发系统已经批准解锁所述补充功能组件,则向所述计算设备发送解锁所述补充功能组件的授权的器件。32.如权利要求31所述的装置,其中以应用标识符标识所述应用程序,并且其中以功能组件标识符标识所述补充功能组件。33.如权利要求32所述的装置,其中用于检索补充功能组件信息的器件所进行的检索基于所述功能组件标识符和应用标识符。34.如权利要求32所述的装置,其中用于检索补充功能组件信息的的器件包括用于验证所述功能组件标识符与所述应用程序的应用标识符相关联的器件。35.如权利要求31所述的装置,其中所述补充功能组件信息至少包括解锁所述补充功能组件的费用信息;和其中用于确定的器件包括用于在所述基于远程网络的应用分发系统处启动针对所述补充功能组件的支付处理的器件。36.一种用于管理对以前从基于网络的应用分发系统获取的应用程序的补充功能组件的解锁的装置,所述装置包括用于从所述计算设备接收解锁以前从所述基于网络的应用分发系统获取的应用程序的补充功能组件的请求的器件;用于确定所述基于网络的应用分发系统是否批准解锁所述补充功能组件的器件;和用于如果确定所述基于网络的应用分发系统批准解锁所述补充功能组件,向所述计算设备发送解锁所述补充功能组件的授权的器件。37.如权利要求36所述的装置,其中以应用标识符标识所述应用程序,并且其中以功能组件标识符标识所述补充功能组件。全文摘要公开了解锁应用程序的补充功能组件的方法、装置及相关设备。方法包括在计算设备上执行应用程序,该应用程序是以前从基于远程网络的应用分发系统获取的并包括至少一个补充功能组件,该补充功能组件当前被锁定并位于应用程序内但可对其解锁;确定应用程序的用户希望获得对当前被锁定的补充功能组件的使用;请求应用分发系统批准解锁该补充功能组件;从应用分发系统接收批准解锁该补充功能组件的授权;和解锁该补充功能组件,从而允许应用程序利用该补充功能组件。有利地,可以从数字产品中启用后续购买。一旦已经购买了对一个或多个锁定的功能组件的访问或使用,则可以解锁并且之后使用数字产品内的一个或多个锁定的功能组件。文档编号G06Q30/00GK101840556SQ20101013577公开日2010年9月22日申请日期2010年3月16日优先权日2009年3月16日发明者E·M·维罗萨伯,K·姆法达,M·K·楚,S·贾拉巴丽,三辻博之,帕亚姆·米拉施迪申请人:苹果公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1