用于基于网络的分发的应用程序的电子提交的制作方法

文档序号:6594003阅读:197来源:国知局
专利名称:用于基于网络的分发的应用程序的电子提交的制作方法
技术领域
本发明涉及数字产品的提交,更具体地,涉及为了基于网络的分发而进行的数字产品的电子提交。
背景技术
现在,诸如iTimes 媒体商店之类的在线媒体商店允许客户(即在线用户)通过互联网购买或租赁诸如音乐或视频等媒体项目。通常,在在线媒体商店中,众多媒体项目可以被获得并且由诸如音乐标记(music label)或电影公司等各种不同的内容提供者提供。 可从加州库珀蒂诺的Apple公司获得的诸如iProducer 和Label Connect 等软件工具可以帮助内容提供者将媒体内容在线提交到iTimes 媒体商店。软件程序也可以在零售商店以及在线商店购买或被许可。传统地,软件程序主要以包含该软件程序的致密盘(CD)的形式购买。或者,购买者常常可以从在线零售商或者软件提供者的网站购买并下载软件程序。但是,当在线零售商操作以销售各种独立方的软件程序时,在向在线零售商提供数字程序文件和支持信息/文件时存在困难。这一问题由于大量通常期望与在线零售商合作的小软件提供者而加剧。结果,接收在线提交的在线零售商由于在提交方面的广泛变化而面临实质的负担和困难。而且,较大尺寸的软件程序的提交不仅产生系统挑战,也为用户带来潜在的复杂化。因此,需要改进的方法以方便向在线零售商提交软件程序。

发明内容
本发明涉及一种用于针对产品分发站点提交、分发和/或管理数字产品的改进的系统和方法。数字产品向产品分发站点的提交能够由许多提交者以统一的、计算机辅助的方式执行。然后所提交的数字产品能够以非常自动化的方式管理,并且可以在产品分发站点处在线购买和分发。一旦提交了数字产品,则用户可以访问数字产品提交的状态以获取数字产品是被批准还是被拒绝的信息。在一个实施例中,数字产品是计算机程序产品(例如,计算机软件程序)。在一个实施例中,本发明涉及一种用于在客户端-服务器环境中的数字产品的受控提交的方法和系统。该受控提交可以帮助用户正确地提交数字产品并且可以使用用户帐户来限制未授权的访问。在允许提交之前可以对用户进行验证(verify)并且可以证实 (validate)要提交的数据。在提交之后,可以评估所提交的数字产品以用于质量控制。虽然至少质量控制的一部分可以自动化,但是在从产品分发站点分发数字产品之前仍可以执行对提交的人工检查。另外,一旦提交了数字产品,则提交者可以在线访问提交的状态,并且在较早的提交被认为不完善的情况下还可以重新提交在先提交的一部分或所有内容。产品分发站点也可以称为在线产品托管(hosting)站点。本发明可以以许多方式实施,包括作为方法、系统、设备、装置(包括计算机可读介质和图形用户界面)。下面讨论本发明的几个实施例。
作为一种用于向在线仓库提交应用程序的方法,本发明的一个实施例可以例如至少包括对用户进行认证(authenticate);确定所述用户是否被批准向所述在线仓库提交应用程序;在所述用户已被认证并被批准提交应用程序的情况下,确定是否存在要由所述用户向所述在线仓库上载的任何合格的应用程序;以及接收用于所述合格的应用程序中所选择的一个或多个应用程序的应用程序文件的提交。 作为一种用于向在线仓库提交应用程序的方法,本发明的另一个实施例可以例如至少包括接收用户的登录信息;显示所述用户被验证并被批准向在线仓库提交应用程序的指示;随后显示有资格由所述用户上载到所述在线仓库的一个或多个应用程序的列表; 接收对所述一个或多个应用程序的列表中的至少一个应用程序的选择;指定与至少一个所选择的应用程序相对应的电子应用程序文件;以及开始所指定的电子应用程序文件向所述在线仓库的上载。作为一种至少包括有形地存储在其上的、用于向在线仓库提交应用程序的可执行计算机程序代码的计算机可读介质,本发明的一个实施例可以例如至少包括用于对用户进行认证的计算机程序代码;用于确定所述用户是否被批准向所述在线仓库提交应用程序的计算机程序代码;用于在所述用户已被认证并被批准提交应用程序的情况下,确定是否存在要由所述用户向所述在线仓库上载的任何合格的应用程序的计算机程序代码;以及用于接收用于所述合格的应用程序中所选择的一个或多个应用程序的应用程序文件的提交的计算机程序代码。作为一种至少包括存储在其上的、用于向在线仓库提交应用程序的可执行计算机程序代码的计算机可读介质,本发明的另一个实施例可以例如至少包括用于接收用户的登录信息的计算机程序代码;用于显示所述用户被验证并被批准向在线仓库提交应用程序的指示的计算机程序代码;用于显示有资格由所述用户上载到所述在线仓库的一个或多个应用程序的列表的计算机程序代码;用于接收对所述一个或多个应用程序的列表中的至少一个应用程序的选择的计算机程序代码;用于指定与至少一个所选择的应用程序相对应的电子应用程序文件的计算机程序代码;以及用于开始所指定的电子应用程序文件向所述在线仓库的上载的计算机程序代码。作为一种用于向在线仓库提交应用程序的计算机系统,本发明的一个实施例可以例如至少包括用于对用户进行认证的装置;用于确定所述用户是否被批准向所述在线仓库提交应用程序的装置;用于在所述用户已被认证并被批准提交应用程序的情况下,确定是否存在要由所述用户向所述在线仓库上载的任何合格的应用程序的装置;以及用于接收用于所述合格的应用程序中所选择的一个或多个应用程序的应用程序文件的提交的装置。作为一种用于向在线仓库提交应用程序的计算系统,本发明的另一个实施例可以例如至少包括用于接收用户的登录信息的装置;用于显示所述用户已被验证并被批准向在线仓库提交应用程序的指示的装置;用于随后显示有资格由所述用户上载到所述在线仓库的一个或多个应用程序的列表的装置;用于接收对所述一个或多个应用程序的列表中的至少一个应用程序的选择的装置;用于指定与至少一个所选择的应用程序相对应的电子应用程序文件的装置;以及用于开始所指定的电子应用程序文件向所述在线仓库的上载的装置。从以下结合通过示例示出本发明的原理的附图进行的详细描述中,本发明的其他方面和优点将变得明显。


本专利的文件包含至少一个彩色绘制的图。在提出请求和支付必要费用后,本专利的带有彩图的副本将由专利和商标局(Patent and Trademark Office)提供。通过以下 结合附图的详细描述将容易理解本发明,在附图中,相同的参考标号代表相同的元素,且其中图1是根据本发明的一个实施例的产品提交和分发系统的框图;图2是根据本发明的一个实施例的数字产品提交处理的流程图;图3是根据本发明的一个实施例的产品提交和管理系统的框图;图4是根据本发明的一个实施例的产品提交和管理处理的流程图;图5是根据本发明的一个实施例的项目管理系统的框图;图6A和6B是根据本发明的一个实施例的产品管理处理的流程图;图7A-7D是根据本发明的一个实施例的关于与在线产品分发站点进行基本用户交互的代表性屏幕截图;图8A-8E是根据本发明的一个实施例的关于一个或多个文件的上载的代表性屏幕截图;图9A-9D是根据本发明的一个实施例的关于设置定价参数的代表性屏幕截图;图10A-10D是根据本发明的一个实施例的关于设置本地化(localization)参数的代表性屏幕截图;图11是根据本发明的一个实施例的代表性的产品提交页面的屏幕截图;图12A和12B是根据本发明的一个实施例的代表性的产品管理基页(base page) 的屏幕截图;图13A是示出了支持向产品提交和分发系统提交包的示例性程序提交系统的简化框图;图13B是示出了支持向产品提交和分发系统提交包的示例性程序提交系统的框图;图14A和14B是根据本发明的一个实施例的程序提交处理的流程图;图15A-15C是根据本发明的一个实施例的客户端提交处理的流程图;图16A和16B是根据本发明的一个实施例的服务器端提交处理的流程图。
具体实施例方式本发明涉及一种用于针对产品分发站点提交、分发和/或管理数字产品的改进的系统和方法。向产品分发站点提交数字产品能够由许多提交者以统一的、计算机辅助的方式执行。然后所提交的数字产品能够以非常自动化的方式管理并且可以在产品分发站点处在线购买和分发。一旦提交了数字产品,则用户可以访问数字产品提交的状态以获取数字产品是已经被批准还是被拒绝的信息。在一个实施例中,数字产品是计算机程序产品(例如,计算机软件程序)。在一个实施例中,本发明涉及一种用于在客户端-服务器环境中的数字产品的受控提交的方法和系统。该受控提交可以帮助用户正确地提交数字产品并且可以使用用户帐户来限制未授权的访问。在允许提交之前可以对用户进行验证并且可以证实要提交的数据。在提交之后,可以对提交的数字产品进行评估以用于质量控制。虽然质量控制的至少一部分可以自动化,但是在从产品分发站点分发数字产品之前仍可以执行对提交的人工检查。另外,一旦提交了数字产品,则提交者可以在线访问提交的状态,并且在较早的提交被认为不完善的情况下还可以重新提交在先提交的一部分或所有内容。产品分发站点也可以称为在线产品托管站点。
下面参照图1-16B讨论本发明的各个方面的实施例。但是,本领域的技术人员将容易理解,这里针对这些图给出的详细描述是用于说明的目的,而本发明超出这些有限的实施例的范围。图1是根据本发明的一个实施例的产品提交和分发系统100的框图。产品提交和分发系统100包括产品分发站点102。产品分发站点102提供在线访问点以用于各种数字产品的分发。例如,产品分发站点102可以称为在线商店。产品提交和管理系统104操作以接收来自各个数字产品提交者的数字产品的提交。产品提交和管理系统104可以处理数字产品的提交并且对批准的数字产品的分发进行授权。数字产品可以存储在产品存储库106 中。在一个实施例中,产品存储库106包括海量数据存储库(mass data store)以及一个或多个数据库。产品存储库106提供可用于分发(例如,购买或租赁)的许多数字产品的海量存储。例如,已经购买的数字产品可以通过数据网络108经由产品分发站点102从产品存储库106访问。数字产品的示例是诸如应用(或应用程序)、动画或演示等计算机程序产品。产品提交和分发系统100还包括第一客户端110和第二客户端112。通常,产品提交和分发系统100将包括多个不同的客户端110、112。第一客户端110包括网络访问程序114。第二客户端112包括产品提交程序116。一些客户端也可以包括网络访问程序114 和产品提交程序116两者。网络访问程序114是在第一客户端110上操作的应用程序(例如,软件应用),其中第一客户端110是一种计算设备。适当的网络访问程序的一个示例是网络浏览器(例如,Microsoft Explorer或Safari)。适当的网络访问程序的另一个示例是 Apple公司提供的iTimes 。第一客户端110通过数据网络108耦接到产品分发站点102。 因此,任何的第一客户端110可以与产品分发站点102交互以查看、购买和/或管理数字产
P
ΡΠ O产品提交程序116也是应用程序(例如,软件应用),其在第二客户端112上操作, 其中第二客户端112是一种计算设备。产品提交程序116用于向产品提交和管理系统104 提交数字产品以便由媒体分发站点102进行最终分发。虽然在图1中将网络访问程序114 和产品提交程序116示出为分别的程序,但是应该理解这些程序可以集成为单个程序或者存在于同一客户端机器上。在图1中示出的产品提交和分发系统100中,数字产品经由产品提交程序116提交到产品提交和管理系统104。已经提交的数字产品(例如,经由第二客户端112)被处理然后存储在产品存储库106中。其后,可以从产品分发站点102购买已存储的数字产品。在购买特定数字产品之后,产品分发站点102允许从产品存储库106检索该特定数字产品的数字数据,然后将其从产品分发站点102通过数据网络108传递(例如,下载)至进行请求的客户端110。在这一点上,产品分发站点102或一些其他传递服务器(未示出)从产品存储库106获取与该特定数字产品对应的数字数据并且通过数据网络108将这些数字数据下载至客户端110。然后所下载的数字数据可以存储在客户端110上。在一个实施例中,所下载的数字数据在客户端110处接收时被加密,而在永久存储在客户端110上之前被解密然后可能被重新加密。其后,客户端110可以使用(例如,执行)客户端110处的数字产品的数字数据。产品提交和分发系统100允许客户端110的用户使用网络访问程序114浏览、搜索或者拣选可以从产品分发站点102购买的多个数字产品。网络访问程序114还可以允许用户预览或者演示数字产品的部分或全部。在网络访问程序114的用户期望购买特定数字产品的情况下,用户(经由网络访问程序114)和产品分发站点102可以参与在线商务交易,其中用户为特定数字产品的访问权利进行支付。在一个实施例中,与用户相关联的信用卡支出特定数字产品的购买或租赁金额。数字产品的提交和购买可以通过数据网络108实现。换言之,数字产品的提交和购买可以在线实现。媒体项目的在线购买也可以称为电子商务(e商务)。在一个实施例中,数据网络108至少包括互联网的一部分。客户端110、112可以随应用而变化,但是通常是具有存储器的计算设备。通常,客户端110、112是个人计算机或者能够存储和向它们的用户呈现媒体的其他计算设备。在一个实施例中,在产品分发站点102和客户端110、112 之间通过数据网络108的连接可以通过诸如安全套接层(SSL)等安全连接来实现。虽然在图1中将产品分发站点102、产品提交和管理系统104以及产品存储库106 示出为分别的部件,但是应该理解任何这些部件可以合并为一个或多个设备。例如,产品提交和管理系统104可以并入产品分发站点102内。作为另一个示例,产品存储库106可以并入产品分发站点102或产品提交和管理系统104中。图2是根据本发明的一个实施例的数字产品提交处理200的流程图。数字产品提交处理200可以例如由诸如客户端114的客户端设备或者诸如产品提交和管理系统104的服务器设备执行。数字产品提交处理200可以接收202与数字产品有关的产品信息。产品信息可以取决于提交的数字产品的类型而变化。在一种实现中,可以通过数字产品提交处理200 提交到在线仓库的一种数字产品是数字程序产品,诸如计算机程序产品。计算机程序产品的产品信息的示例可以包括以下中的一个或多个产品名称、支持的设备类型指示、流派 (genre)指示、版本号、产品标识符、支持信息、和许可协议信息。接下来,可以上载204与数字产品有关的至少一个电子文件。数字产品可以具有与其相关联的一个或多个电子文件。例如,数字产品可以包括二进制文件、支持或帮助文件、和/或一个或多个示例性屏幕图示。另外,可以接收206要与数字产品一起使用的至少一个分发参数。分发参数是可以用于控制或者影响数字产品能够被分发的方式的参数。分发参数的一个示例是定价参数。作为示例,定价参数可以指定要与数字产品相关联的价格或者价格等级(price tier) 0 其他分发参数可以与数字产品要从其分发的数字店铺有关。另外,分发参数还可以与预览资格、许可类别(类型)等有关。其后,可以向在线仓库提交208数字产品。在线仓库可以例如对应于产品提交和管理系统104。在线仓库可以接收一个或多个电子文件、相关联的产品信息以及一个或多个分发参数。然后在线仓库可以根据产品信息以及一个或多个分发参数来操作,以允许从产品分发站点(例如,在线商店)分发包含在一个或多个电子文件中的数字产品。在将数字产品提交208到在线仓库之后,数字产品提交处理200可以结束。图3是根据本发明的一个实施例的产品提交和管理系统300的框图。产品提交和管理系统300例如可以代表图1中示出的产品提交和管理系统104的一个实施例。

产品提交和管理系统300可以要求登录302。例如,登录可以要求用户(即,数字产品提交者)提供用户名和密码。如果数字产品提交者已经成功登录到产品提交和管理系统300中,则可以向数字产品提交者呈现系统导航页面304。从系统导航页面304,数字产品提交者可以访问产品提交和管理系统300所支持的一个或多个模块。根据一个实施例, 如图3中所示,产品提交和管理系统300所支持的模块可以包括产品管理模块306、合同请求模块308、版税(royalty)模块310和帐户管理模块312。产品管理模块306可以允许数字产品提交者提交新产品和控制这些新产品的分发。产品管理模块306还可以允许数字产品提交者编辑先前的提交。合同请求模块308可以允许数字产品提交者请求与提供产品分发的实体的合同。这一合同可以使得数字产品提交者能够使用由实体提供的产品分发站点(例如,在线商店)来分发数字产品。版税模块 310可以帮助数字产品提交者监视与该数字产品提交者相关联的所有数字产品的分发,包括监视由于这些数字产品的分发将要或者已经提供给该数字产品提交者的版税。例如,数字产品提交者可以访问每月的版税报告。帐户管理模块312可以为数字产品提供集中的帐户管理,包括例如与数字产品事项相关联的访问允许、电子邮件设置、基本帐户信息。图4是根据本发明的一个实施例的产品提交和管理处理400的流程图。产品提交和管理处理400可以例如由产品提交和管理系统执行。在该实施例中,假定产品提交和管理系统是图3中示出的产品提交和管理系统300。产品提交和管理处理400可以通过访问402产品提交和管理系统开始。然后可以向试图向产品提交和管理系统提交数字产品的用户呈现登录页面。然后用户可以输入用户名和密码。其后,判定406可以确定是否成功实现了登录。当判定406确定登录还未成功时,判定408可以确定是否允许重试登录。当判定408确定不允许重试时,拒绝410对产品提交和管理系统的访问。在框410之后,产品提交和管理处理可以结束。或者,当判定408 确定允许重试时,产品提交和管理处理400可以返回以重复判定406,从而可以允许又一次登录尝试。当判定406确定已经成功实现了登录时,可以呈现412系统导航页面。从系统导航页面,可以访问多个不同的软件模块。在图4中示出的实施例中,软件模块包括产品管理模块、合同请求模块、版税模块和帐户管理模块。用户可以与系统导航页面交互以激活这些不同的软件模块中的任意一个。更具体地,下面讨论与激活任何这些不同模块相关联的处理。在呈现412 了系统导航页面之后,判定414可以确定是否接收到了产品管理模块请求。当判定414确定接收到了产品管理模块请求时,可以访问416产品管理模块。另一方面,当判定414确定没有接收到产品管理模块请求时,判定418可以确定是否接收到了访问合同请求模块的请求。当判定418确定接收到了访问合同请求模块的请求时,可以访问420合同请求模块。或者,当判定418确定没有接收到访问合同请求模块的请求时,判定422 可以确定是否接收到了版税模块请求。当判定422确定接收到了版税模块请求时,可以访问424版税模块。另一方面,当判定422确定没有接收到版税模块请求时,判定426可以确定是否接收到了帐户管理模块请求。当判定426确定接收到了帐户管理模块请求时,可以访问428帐户管理模块。 另一方面,当判定426确定没有接收到帐户管理模块请求时,判定430可以确定是否接收到了来自用户的某个其他请求。当判定430确定接收到了某个其他请求时,可以执行432其他处理。在每一个框416、420、424、428和432之后以及在判定430没有接收到某个其他请求之后,判定434可以确定产品提交和管理处理400是否应当结束。当判定434确定产品提交和管理处理400不应当结束时,处理返回以执行判定414和随后的框,从而可以处理随后的用户请求。但是,当判定434确定产品提交和管理处理400应当结束时,产品提交和管理处理400可以结束。图5是根据本发明的一个实施例的项目管理系统500的框图。工程管理系统500 包括产品管理基页502。从项目管理基页502,用户可以导航至不同的页面以便于(i)将新产品添加至项目管理系统500,(ii)预览用于分发的产品代表,以及/或者(iii)检查关于一个或多个产品的状态细节。当用户与产品管理基页502交互时,可以呈现缺省设置页面504。缺省设置页面 504允许用户配置缺省设置。在缺省设置页面504之后,可以呈现产品信息页面506。产品信息页面506允许用户输入关于新产品的产品信息。在产品信息页面506之后,可以呈现文件上载页面508。文件上载页面508允许用户指定要上载的与新产品相关联的数字文件。 在文件上载页面508之后,可以呈现分发参数页面510。分发参数页面510允许用户输入影响分发的各种参数,诸如定价信息。在分发参数页面510之后,可以呈现店铺和本地化页面 512。店铺和本地化页面512可以允许用户指定新产品可以从其分发(例如,购买)的所有或者某些店铺。另外,在某些这种店铺处于世界上不同地理区域这个意义上,用户还可以提供本地化信息。例如,本地化信息可以提供一些产品信息的外语版本。在店铺和本地化页面512之后,可以呈现产品提交页面514。产品提交页面可以允许用户确认已经为新产品提供的数据,然后促成这一信息向诸如图1中所示的产品提交和管理系统104等产品提交和管理系统的提交。图6A和6B是根据本发明的一个实施例的产品管理处理600的流程图。产品管理处理600可以由诸如图5中示出的产品管理系统500等产品管理系统执行。产品管理处理600可以呈现602产品管理基页。产品管理基页例如可以允许导航至新产品页面、预览页面和状态细节页面。接下来,判定604可以确定是否接收到了预览请求。当判定604确定接收到了预览请求时,可以呈现606预览页面。预览页面可以向用户提供如何在在线分发站点处表现数字产品以用于分发的预览。在呈现606预览页面之后,判定608可以确定是否接收到了回退请求。当判定608确定还未接收到回退请求时,产品管理处理600可以等待这一请求。 但是,一旦判定608确定接收到了回退请求,则产品管理处理600可以返回以重复框602,从而可以再一次呈现602产品管理基页。
或者,当判定604确定没有接收到预览请求时,判定610可以确定是否接收到了状态细节请求。当判定610确定接收到了状态细节请求时,可以呈现612状态细节页面。在一种实现中,状态细节页面可以向用户提供关于数字产品的提交的提交状态的细节。在呈现612状态细节页面之后,判定614可以确定是否接收到了回退请求。当判定614确定还未接收到回退请求时,产品管理处理600可以等待这一请求。但是,一旦判定614确定接收到了回退请求,则产品管理处理600可以返回以重复框602,从而可以再一次呈现602产品管理基页。 另一方面,当判定610确定没有接收到状态细节请求时,判定616可以确定是否接收到了新产品请求。当判定616确定没有接收到新产品请求时,产品管理处理600可以返回以重复判定604和后续的框,从而可以处理另外的用户请求。或者,当判定616确定接收到了新产品请求时,判定618可以确定新产品是否是用户要提供给产品提交和管理系统的第一个产品。当判定618确定新产品是第一个产品时,可以呈现620缺省设置页面。用户可以与缺省设置页面交互以提供要由产品提交和管理系统使用的一个或多个缺省设置。在框620之后,以及紧接着判定618新产品不是第一个产品之后,可以呈现622产品信息页面。用户可以与产品信息页面交互以输入产品提交和管理系统要使用的产品信息。其后,判定624可以确定用户是否提交了产品信息页面。当判定624确定用户还未提交产品信息页面时,产品管理处理600可以等待其提交。一旦判定624确定用户提交了产品信息页面,则可以呈现626文件上载页面。用户可以与文件上载页面交互以指定要上载的与新产品相关联的一个或多个数字文件。然后判定628可以确定用户是否提交了文件上载页面。当判定628确定用户还未提交文件上载页面时,产品管理处理600可以等待其提交。一旦判定628确定用户提交了文件上载页面,则可以核查634正在上载的数字文件中的至少一个以核查所要求的证明(或认证)。这里,在一个实施例中,正在上载的一个或多个数字文件中的至少一个被要求由受信任的权威方证明(或认证),以使得产品提交和管理系统可以确保文件适合于提交。在框630之后,判定 632可以确定是否批准了与数字文件相关联的证明。当判定632指示证明没有被批准时,可以呈现634出错页面。判定636可以确定是否允许用户重试数字文件的上载。当判定636 确定允许重试时,产品管理处理600可以返回以重复判定626,从而用户可以再一次尝试上载一个或多个数字文件。另一方面,当判定632确定一个或多个数字文件的证明被批准了时,可以呈现638 分发参数页面。分发参数页面使得用户能够输入要在新产品的分发过程中使用的一个或多个分发参数。例如,用户可以为新产品指定要使用的定价信息。在呈现638分发参数页面之后,判定640确定用户是否提交了分发参数页面。当判定640确定用户还未提交分发参数页面时,产品管理处理600可以等待其提交。或者,当判定640确定用户提交了分发参数页面时,可以呈现642店铺和本地化页面。店铺和本地化页面使得用户能够指定新产品可以从其分发的一个或多个特定店铺。另外,当适合于这些店铺时,诸如当它们在不同语言的国家中时,可以提供本地化信息。在呈现642店铺和本地化页面之后,判定642可以确定用户是否提交了店铺和本地化页面。当判定644确定用户还未提交店铺和本地化页面时,产品管理处理600可以等待其提交。在另一个实施例中, 可以在本地化页面中提供本地化而可以在店铺页面中提供店铺信息。从而,可以用单独的页面、组合的页面、或者其他页面的组合来提供本地化和店铺信息。例如,可以用分布参数页面提供店铺信息。或者,当判定644确定用户提交了店铺和本地化页面时,可以呈现646产品提交页面。产品提交页面可以方便用户检查之前提供的关于新产品的信息。换言之,产品提交页面可以允许用户确认关于将要提交到产品提交和管理系统的新产品的信息。然后判定648 可以确定用户是否提交了产品提交页面。当判定648确定用户还未提交产品提交页面时, 产品管理处理600可以等待其提交。或者,一旦判定648确定用户提交了产品提交页面,则产品管理处理600将与新产品有关的信息提交650至产品提交和管理系统。在提交650之后,产品管理处理600可以结束。或者,在框636不允许重试之后,产品管理处理600也可以结束,但是在这种情况下不向产品提交和管理系统提交新产品。在将数字产品提交至产品提交和管理系统之后,可以开始质量检查处理。质量检查可以具有多个状态,包括检查中(in review)、准备出售(ready for sale)、拒绝 (rejected)、或未决合同(pending contract)。“检查中”状态为初始状态,直到提交被拒绝或批准为止。“准备出售”状态是应用文件被批准后的状态。“拒绝”状态是如果质量检查发现所提交的应用不完善或者有缺陷的状态。“未决合同”状态是当提交者缺少用于分发的合同时的状态。本发明的另一个方面与图形用户界面有关。图形用户界面可以呈现包括上述那些的各种页面(或屏幕),以帮助用户与产品提交和管理系统(或在线产品分发站点)交互。 图7A-12B是与代表性的图形用户界面有关的屏幕截图。图7A-7D是根据本发明的一个实施例的关于与在线产品分发站点进行基本用户交互的代表性屏幕截图。图7A是根据本发明的一个实施例的系统导航页面700的代表性屏幕截图。系统导航页面700可以向用户提供对多个功能模块的访问,所述功能模块例如,产品管理模块 702 ( "Manage Your Content”)、合同请求模块("Contracts,Tax & Banking Information”)、版税模块 706 ( "Royalty R 印 orts”)、或帐户管理模块 708 ( "Manage Accounts”)。这些功能模块与图3中示出的模块306-312类似。系统导航页面700可以例如代表图3中示出的系统导航页面304。图7B是根据本发明的一个实施例的产品管理基页720的代表性屏幕截图。产品管理基页720可以例如代表图5中示出的产品管理基页502或者图6A中呈现602的产品管理基页。产品管理基页720可以由用户用来管理数字产品向产品提交和管理系统的提交, 以便由在线产品分发站点最终分发。产品管理基页720包括新应用窗口 722。新应用窗口 722可以列出或者以其他方式标识出任何已提交到产品提交和管理系统以便由在线产品分发站点最终分发的应用。如图7B中所示,新应用窗口是空的,这是因为用户还没有向在线产品分发站点添加任何用于提交的应用。图7C是根据本发明的一个实施例的缺省设置页面740的代表性屏幕截图。缺省设置页面740可以例如代表图5中示出的缺省设置页面504或者图6A中呈现620的缺省设置页面。缺省设置页面740由用户用来设置要与产品提交和管理系统一起使用的初始设置,以便由在线产品分发站点进行最终分发。在图7C中示出的示例中,初始设置涉及主要语言和任意公司名称。更具体地,初始设置页面740可以显示主要语言选择器742,供用户选择用于要通过在线产品分发站点分发的数字产品的主要语言。缺省设置页面740还可以显示公司名称区域744,在该处用户可以提供正在提供通过在线产品分发站点进行销售的数字产品的公司名称。图7D是根据本发明的一个实施例的产品信息页面760的代表性屏幕截图。产品信息页面760例如可以代表图5中示出的产品信息页面506或者图6A中呈现622的产品信息页面。产品信息页面760可以由用户用来为用户正在向产品提交和管理系统提交以便通过在线产品分发站点最终分发的新产品(例如,新应用)提供产品信息。产品(数字产品)的产品信息还可以称为元数据。如图7D中所示,产品信息页面760可以向用户呈现网页形式,以使得用户可以为正在提交的新数字产品提供特定产品信息。具体地,图7D中示出的网页形式请求产品信息,包括应用名称、应用注释、设备(适合的设备)、数字产品的主类别(流派)、数字产品的次类别(流派)、版权持有者、版本号、SKU号、应用网站URL、 支持URL、支持电子邮件地址、和许可协议文本(EULA文本)。从而用户可以识别适合的设备。例如,当该新数字产品是只能在某些硬件或软件应用上执行的新应用时,用户可以这样来指定适合的设备或设备类型。另外,输入的产品信息在被接受之前可以被证实,以便将适当的数据输入到网页形式中。图8A-8E是根据本发明的一个实施例的关于上载一个或多个文件的代表性屏幕截图。正在上载的一个或多个文件与提交到产品提交和管理系统以便通过在线产品分发站点最终分发的数字产品有关。图8A示出了根据本发明的一个实施例的文件上载页面800。文件上载页面800允许用户选择要与正在提交的数字产品相关联的一个或多个数字文件。该一个或多个数字文件可以包括应用文件以及与一个或多个图标和/或屏幕截图有关的文件。这些图标和/或屏幕截图可以由在线产品分发站点在提交的数字产品被提供用于分发(购买或者租赁)时使用。例如,当数字产品与计算机软件应用有关时,文件上载页面800允许用户选择要上载的应用文件(例如,可执行的程序文件),以及指定与该计算机软件应用相关联的一个或多个图标和/或屏幕截图。如图8B中所示,为了识别要上载的应用文件,用户可以选择选择文件控件801。响应于选择了选择文件控件801,可以在文件上载页面800之上呈现文件识别对话框802,如图8B中所示。用户可以使用文件识别对话框802来指定要上载的应用文件。一旦用户使用文件识别对话框802选择了要上载的特定应用文件,则可以更新文件上载页面800。图 8C示出了更新的文件上载页面800'。如图8C中所示,文件上载页面800'现在被更新以便为被选择的文件指定标识符804。另外,文件上载页面800'可以呈现上载文件控件806。 在选择了上载文件控件806之后,可以开始由标识符804指定的被选择文件的上载操作。在一种实现中,可以要求应用文件为包括应用的二进制文件和用于显示在执行程序的设备上的图标的压缩文件格式(例如,“.zip”)。另外,在一种实现中,应用文件的上载可以要求成功的代码签名检查(即,用于认证的数字签名验证)。一旦成功上载了文件,则可以再一次更新文件上载页面800',如图8D中所示。在图8D中,文件上载页面800"可以包括上载完成指示符808。上载完成指示符808表示已经上载了与标识符804相关联的被选择文件。还可以在文件上载页面800"上呈现文件大小指示符810,来指示已上载的被选择文件的大小。另外,用户还可以与文件上载页面800"交互,以使得可以类似地上载与数字产品 (例如,计算机软件应用)相关联的一个或多个图标和/或屏幕截图。图8E示出了在上载了应用、图标、主屏幕截图和一对另外的屏幕截图中的每一个的被选择文件之后的文件上载页面800'“。用于数字产品的这些上载文件最终由在线产品分发站点在分发数字产品时使用。如图8E中所示,所有这些提及的文件已上载,且文件上载页面800'‘‘显示指示符808、812、814、816和818以通知用户这些文件已成功上载。 指示符812表示已上载了指定的图标文件。指示符814表示已上载了指定的主屏幕截图。 指示符816和818说明已上载了两个另外的屏幕截图。图9A-9D是根据本发明的一个实施例的关于设置定价参数的代表性屏幕截图。定价参数关联并且用于正在向产品提交和管理系统提交以便通过在线产品分发站点最终分发的数字产品。图9A是根据本发明的一个实施例的定价参数页面900的代表性屏幕截图。定价参数页面900代表诸如图5中所示的分发参数页面510或者图6B中所示的呈现638的分发参数页面等分发参数页面的一种实现。定价参数页面900包括可用日期选择器902和定价等级选择器904。用户可以与可用日期选择器902交互以选择与正向产品提交和管理系统提交的数字产品相关联的可用日期。可用日期是授权在线产品分发站点分发数字产品的日期。另外,用户可以与定价等级选择器904交互以选择与数字产品相关联的定价等级。定价等级是在线产品分发站点在分发特定数字产品时使用的定价结构。定价参数页面900还包括可用性控件908。当用户使用定价等级选择器904考虑要选择的适当的定价等级时,用户可以通过选择定价矩阵控件906来检查关于定价结构的附加细节。选择定价矩阵控件906使得显示定价矩阵。图9B示出了在用户选择定价矩阵控件906之后的定价参数页面900'。定价参数页面900'与定价参数页面900相同,除了现在显示了定价矩阵910。在图9B中示出的实施例中,定价矩阵910基于销售数字产品的在线商店(例如,不同国家)与零售和批发价格之间的关系提供定价结构。当用户选择可用性控件908时,可以将定价参数页面900'更新为定价参数页面 900",如图9C中所示。具体地,定价参数页面900"还包括特定于商店的可用性控制表 912。使用特定于商店的可用性控制表912,用户可以使用选择器914来指定个别的商店或者可以使用“select all (选择所有)”控件916来选择所有商店。在所有商店被分别选择或者使用“select all”控件916被选择的情形下,可以将定价参数页面900"更新为定价参数页面900'“,如图9D中所示。在图9D中,特定于商店的可用性控制表912'被更新以显示可用性控制表912,其中每个单独的商店选择器914已被选中(check)特定于商店的。图10A-10D是根据本发明的一个实施例的关于设置本地化参数的代表性屏幕截图。本地化参数关联并且用于正在向产品提交和管理系统提交以便通过在线产品分发站点最终分发的数字产品。例如,当在线产品分发站点通过利用与不同国家或地区相关联的不同在线商店提供产品以供销售时,提供本地化的产品信息可能是有利的。图IOA是根据本发明的一个实施例的本地化页面1000的屏幕截图。本地化页面 1000例如可以代表图5中示出的店铺和本地化页面512或者图6B中示出的呈现642的店铺和本地化页面的一个实施例。本地化页面1000包括语言选择器1002。使用语言选择器 1002,用户可以为正在提交的数字产品提供一种或多种另外的语言,从而可以配置一些本地化产品信息。例如,如果用户使用语言选择器1002来选择“French (法语)”作为要支持的另外的语言,则可以呈现产品信息本地化页面。图IOB示出了根据本发明的一个实施例的代表性产品信息本地化页面1020。产品信息本地化页面1020包括允许用户为那些使用“French (法语),,作为适当语言的在线商店输入本地化产品信息的产品信息区域1022。如图IOB中所示,可以由用户编辑的某些产品信息字段可以由利用针对主要语言的产品信息页面(见图7D)输入的信息集预先构成。 结果,用户可以在不同国家或地理区域使用不同的应用名称、不同的应用注释、不同的URL、 不同的电子邮件地址和不同的许可协议。产品信息本地化页面1020还可以包括屏幕截图本地化区域1024。使用屏幕截图本地化区域1024,用户可以提供当供应数字产品以便在不同国家或地理区域中的不同在线商店处销售时要使用的不同屏幕截图。在新用户完成与产品信息本地化页面1020的交互后,图IOC可以呈现本地化页面 1000'。图IOC中示出的本地化页面1000'代表图IOA中示出的本地化页面1000的更新版本。如图IOC中所示,法语指示1040表示针对使用法语作为其语言的在线商店,数字产品具有某些本地化信息。这时,用户可以继续使用语言选择器1002选择另外的语言并且可以再一次提供本地化信息。在用户继续输入其他不同语言的本地化信息的情形下,作为示例,本地化页面1000'可以如图IOD中所示的进一步更新。图IOD示出了代表性的本地化页面1000"的屏幕截图。本地化页面1000"包括本地化参考区域1060,本地化参考区域 1060提供已针对其为数字产品提供了本地化信息的一个或多个不同国家或地理区域的指
7J\ ο图11是根据本发明的一个实施例的代表性的产品提交页面1100的屏幕截图。产品提交页面1100可以向用户呈现用户已经为特定数字产品提供或指定了的产品概要、上载文件、定价、本地化和其他信息。产品提交页面1100允许用户确认这些信息,且这些信息一旦确认,产品提交页面1100就使得数字产品及其所有提供的信息正式提交到在线产品分发站点。图12A是根据本发明的一个实施例的代表性的产品管理基页1200的屏幕截图。产品管理基页1200提供产品标注(designation)区域1202。产品标注区域1202可以包括产品名称1204、版本指示1206、提交日期1208、状态指示1210、和图像代表1212。产品名称1204、版本指示1206和图像代表1212是先前在提交处理过程中提供了的项目。提交日期1208是用户向产品提交和管理系统正式提交数字产品以便通过在线产品分发站点最终分发的日期。如图12A中所示,状态指示1210可以表示已提交的数字产品当前正在检查中 (in review)。由于数字产品在检查中(因而尚未被批准),因此数字产品还未由在线产品分发站点提供用于销售。图12B是根据本发明的一个实施例的代表性的产品管理基页1200'的屏幕截图。 产品管理基页1200'代表产品管理基页1200在另一个时间点处的另一个实例。具体地,产品管理基页1200'可以代表在执行了数字产品的检查之后的时间点。如图12B中所示,产品标注区域1202'示出产品名称1204、产品版本1206、状态指示1210'和图像代表1212。 这里,状态指示1210'现在指示相关联的数字产品已被在线产品分发站点拒绝。在一个实施例中,可以在产品管理基页1200'上向用户提供链接1213,以使得用户可以检索另外的信息或帮助以理解所提交的数字产品为何被拒绝以及如何可以克服该拒绝。另外,产品标注区域1202'还可以包括类别信息1214和支持的语言1216。类别信息1214源自在提供产品信息的过程中所作的流派选择,而支持的语言1216是在提供本地化信息时提供过的
那些语言。尺寸较大的诸如应用程序的数字产品可以使用更高效的网络连接提交。在一个实施例中,可以用基于浏览器的客户端应用(例如,HTTP协议)提供数字产品的描述性信息 (例如,元数据),而可以使用客户端提交应用(例如,SOAP协议)提交数字产品的较大的一个或多个数据文件。本发明的一个方面涉及一种用于通过网络向分发系统提交应用程序的系统和方法。例如,所提交的应用程序可以从产品分发站点(例如,在线商店)购买和下载。根据一个实施例,为了从在线媒体商店购买应用程序,潜在的购买者可以搜索和浏览可以购买的大量应用程序。一旦购买,应用程序可以通过网络下载至购买者。然后应用程序的文件可以被加密以供购买者使用并且存储在购买者的机器上。其后,购买者可以使用该应用程序 (例如,运行该应用程序)。但是,该应用程序的使用仍可能被限制。例如,该应用程序的使用可以被限制于单个设备,或者可替换地,被限制于最多只有预定数目的用户机器可以被授权使用该应用程序。在一个实施例中,客户端提交应用可以接受标识和/或包括要向产品提交和管理系统提交的应用程序文件的电子数字产品包。另一个实施例涉及数字产品包向产品提交和管理系统的提交。在一种实现中,提交到产品提交和分发系统的数字产品包可以包括应用程序文件以及用于定位元数据的唯一标识符,该元数据提供与该应用程序文件相关联的描述性和/或管理数据。根据一个实施例,产品分发站点可以访问已提交到产品提交和管理系统104并且存储到产品存储库106的包。在一个实施例中,证实处理可以证实已提交到产品提交和管理系统104的包。例如,证实处理可以核查在包中所标识的文件的存在(或不存在),核查存在的包的各种属性,核查包的各种属性的值,以及/或者核查所标识的文件中的一个或多个的扩展名是否正确。根据一个实施例,程序开发者可以以包的形式向产品提交和管理系统104提交应用程序。在这样的实施例中,包包括可以代表档案文件(archive file)的应用程序文件。 包还可以包括元数据文件。作为示例,元数据文件可以是XML文件。元数据文件可以与管理数据(例如,标识符、验证)和/或描述应用程序的元数据有关。一旦所提交的应用程序被批准分发,则可以使应用程序能够从产品分发站点102(例如,在线商店)购买。图13A是示出了支持向产品提交和分发系统提交包的示例性程序提交系统1300 的简化框图。程序提交系统1300支持应用程序的提交。更具体地,客户端1302可以运行支持应用程序的上载的专用提交应用。专用提交应用比采用HTTP协议提供更好的数据传输能力。专用提交应用还可以支持在提交之前对应用程序和/或媒体内容数据的证实。虽然在图13A中仅示出了单个客户端1302,但是程序提交系统1300可以支持多个客户端1302, 使得多个开发者能够将多个应用程序文件(以及可能的元数据)传递至产品提交和分发系统1300以便通过产品分发站点进行分发。
在一个实施例中,客户端1302可以访问一个或多个包1304的集合。客户端1302 可以将与一个或多个包相关联的应用程序文件和可能的元数据提交至媒体分发系统1306。 在接收到程序文件(以及可能的元数据)之后,媒体分发系统1306可以证实应用程序文件和/或元数据。例如,媒体分发系统1306可以根据元数据格式或包规范来证实应用程序文件和/或元数据。媒体分发系统1306可以将程序文件(以及可能的元数据)存储在数据库1308中。媒体分发系统1306可以包括一个或多个服务器。在一个实施例中,客户端1302可以在提交相关联的应用程序文件之前提交元数据。客户端1302在发送元数据之前可以可选地证实元数据。当在产品分发系统1306处接收到元数据时,元数据可以由媒体分发系统1306证实。如同下面将要进一步详细描述的, 证实可以包括如上所述的根据元数据规范核查元数据。如果确定元数据无效,则可以通知用户元数据无效。例如,出错消息可以指示如下理由元数据与特定的元数据规范不一致。 如果确定元数据有效,则通知可以指示已成功证实了元数据。一旦客户端接收到关于元数据已被成功证实的确认,客户端可以提交相关联的应用程序文件。客户端可以提交与元数据分开的应用程序。或者,客户端可以连同已经提交的元数据一起提交应用程序。例如,客户端可以提交包括应用程序文件和相关联的元数据的包。元数据可以在其相应的媒体内容数据之前提交。或者,元数据可以在一开始与其相应的媒体内容数据一起提交。在任意一种情况下,媒体内容数据均可以以诸如这里所述的包格式提交。当产品分发系统接收到包时,产品分发系统可以确定包是否有效。例如,产品分发系统可以确定元数据是否有效(例如,是否符合元数据规范)。如果确定包无效,则产品分发系统可以发送出错消息。如果确定包有效,则产品分发系统可以接受包。然后可以将包或其一部分存储到数据库。图13B是示出了支持向产品提交和分发系统提交包的示例性程序提交系统1350 的框图。程序提交系统1350支持应用程序的提交。如上所述,运行专用提交程序的客户端 1302可以访问和上载一个或多个包1304。更具体地,客户端1302可以上载元数据和/或媒体内容数据。提交可以通过与Web服务器1352和/或DAV服务器1354的通信来完成。 DAV服务器1354可以运行传递协议DAV。因此,如果网络连接失败或者服务器离线,则专用提交程序可以继续已经在进行的上载。客户端1302与Web服务器1352和/或DAV服务器 1354之间的通信可以使用简单对象访问协议(SOAP)完成,SOAP为应用提供开放的、可扩展的途径以便使用基于XML的消息在互联网上通信。利用SOAP消息架构和WebDAV传递架构的松散耦合,专用提交程序允许采用其他协议而不是DAV。在一个实施例中,专用提交程序是基于Java的命令行工具。客户端1302可以向Web服务器1352提交用户名、密码、内容提供者标识符、和/ 或元数据。然后Web服务器1352可以认证内容提供者的身份、用户名和/或密码。在认证之后,Web服务器1352可以证实元数据。假定已成功证实了元数据,则客户端1302可以向 Web服务器1352和/或DAV服务器1354提交与元数据相关联的应用程序文件。更具体地, 可以向Web服务器1352提交应用程序文件,然后Web服务器1352可以将应用程序文件提供给DAV服务器1104。在一个实施例中,客户端1302提交至少包括应用程序文件的包。任选地,包还可以包括关于应用程序的元数据。因此,客户端1302可以重新提交之前已证实的元数据。客户端1302可以在包提交之前对包进行证实。
在提交元数据和/或媒体内容数据之后,可以对元数据和/或媒体内容数据进行证实。可以将元数据和/或媒体内容数据的至少一部分存储至比如NFSMoimt 1356之类的仓库。导入器(importer) 1358可以检索元数据和/或应用程序文件或其一部分。导入器 1358可以将元数据和/或应用程序文件存储至数据库1360。另外,导入器1358可以将与元数据和/或媒体内容数据相关联的数据存储至数据库1360。例如,导入器1358可以存储诸如与已经提交的元数据和/或媒体内容数据相关联的时间戳等数据。客户端1302还可以选择记录由上载包(一个或多个)得到的输出信息。记录偏好例如可以通过使用各种命令或菜单选择来指示。例如,客户端1302可以指定要向其记录输出信息的目录或文件名。更具体地,客户端1302可以指定要向其记录成功上载的包和/ 或文件信息的目录或文件名。在一些实施例中,可以指定表示要记录的信息的量和/或信息的细节级别的记录级别。例如,客户端1302可能希望接收所有的出错消息。或者,客户端1302可能希望接收重要级别的记录消息、信息记录级别消息、和/或者详细的记录级别消息。用户还可以指定在客户端提交程序完成上载处理之后成功上载的和/或未成功上载的包可以移动到的目录。类似地,用户还可以指定在客户端1302上载包之前被证实的包所要移动到的目录。还可以在客户端提交程序完成上载处理之后从源目录移除(例如,删除) 成功上载的包。图14A和14B是根据本发明的一个实施例的程序提交处理1400的流程图。程序提交处理1400可以通过、针对或者使用支持诸如图1中所示的产品提交和分发系统100的产品提交系统的系统执行。程序提交处理1400可以请求1402用户的授权以分发应用程序。这里,请求可以由产品提交和管理系统处理。应用程序的分发可以通过产品分发站点,诸如图1中所示的产品分发站点102。用户通常是应用程序的开发者。在一个实施例中,用户可以先前被授权以分发应用程序,比如通过参加与产品分发站点的分发协议等。判定1404可以确定用户(开发者)是否被授权分发应用程序。当判定1404确定用户没有被授权通过产品分发站点分发应用程序时,拒绝1406对产品提交系统的访问。在框1406之后,程序提交处理1400可以结束。或者,当判定1404确定用户被授权通过产品分发站点分发应用程序时,可以接收 1408与特定应用有关的元数据。在一种实现中,用户可以提供与特定应用有关的元数据。 例如,可以显示表格并且用户可以通过输入元数据来完成该表格。还可以接收1410特定应用文件的标识。该特定应用文件是用于正在提交的应用程序的应用文件。在识别了特定应用文件之后,然后判定1412可以确定该特定应用文件的文件大小是否大于预定限制。例如,在一种实现中,预定限制可以是200兆字节(MB)。当判定1412 确定该特定应用文件的文件大小不大于预定限制时,可以将元数据和该特定应用文件提交 1414至在线仓库。产品提交系统可以被认为是在线仓库的一部分。在框1414之后,程序提交处理1400可以结束,其中应用程序已成功提交。另一方面,在判定1412确定该特定应用文件的文件大小大于预定限制时,将元数据提交1416至在线仓库。这里,在这种情形下,没有将应用文件提交至在线仓库,因为应用文件的文件大小大于预定限制。应当注意,框1414 和1416的提交操作例如通过使用HTTP协议的网络连接来执行。但是,由于HTTP协议对于大数据文件的提交较为麻烦,因此较大的应用文件不在框1416处提交。
在提交1416元数据之后,判定1418可以确定应用文件是否已经在之前被产品提交系统拒绝了。当判定1418确定之前已经拒绝了该应用文件时,应用文件的提交不可用 1420。这里,可以防止用户重新提交已经被拒绝的应用文件。或者,当判定1418确定之前没有拒绝过该应用文件时,可以创建1422包括应用文件和元数据文件的数据包。元数据文件例如可以包括针对相应的应用程序的唯一标识符以及签名(加密签名,比如使用MD5)。 虽然不是必须的,元数据文件还可以包括与该特定应用程序有关的元数据。接下来,可以将数据包提交1424至在线仓库。在框1424之后,程序提交处理1400可以结束。图15A-15C是根据本发明的一个实施例的客户端提交处理1500的流程图。客户端提交处理1510例如可以由如上所述的产品提交程序或专用提交程序执行。客户端提交处理1500可以从确定请求提交应用程序的请求用户是否是新用户的判定1502开始。当判定1502确定请求用户是新用户时,可以请求1504认证信息。然后用户可以在客户端机器处提供所请求的认证信息,诸如用户标识符和密码等。判定1506可以确定是否接收到了所请求的认证信息。当判定1506确定还未接收到所请求的认证信息时, 客户端提交处理1500等待该认证信息。一旦判定1506确定接收到了所请求的认证信息, 则客户端提交处理1500可以确定1508请求用户是否是可信的。当判定1510确定请求用户不是可信的时,客户端提交处理1500可以返回以重复框1504,从而该请求用户可以重新尝试认证他们自己。在可替换实施例中,如果判定1510确定请求用户不是可信的,则客户端提交处理1500可以结束。另一方面,当判定1510确定请求用户是可信的时,可以将认证信息存储1512在与该请求用户相关联的客户端机器上。另外,在判定1502请求用户不是新用户之后,该请求用户可以使用之前存储的信息(诸如在框1512处存储的认证信息)而被认证1513。在框1512或1513之后,可以判定1514请求用户是否被批准进行应用提交。如前所述,用户为了被批准进行应用提交,需要预先执行注册和/或鉴定(qualification)。作为示例,可以要求请求用户参与与产品分发站点的用于应用程序的分发的分发协议。判定 1516可以确定是否批准请求用户进行应用提交。当判定1516确定请求用户不被批准时,通知1518用户他们当前未被批准进行应用提交并且因而必须首先获得批准。例如,要求用户在可以执行应用提交之前获得合同批准。在框1518之后,客户端提交处理1500可以结束。另一方面,当判定1516确定请求用户被批准进行应用提交时,可以通知1520用户他们的使用已被成功批准。接下来,可以针对请求用户确定1522 —个或多个用于上载的合格的应用。判定1524可以确定是否存在任何合格的应用。在一个实施例中,合格的应用是已经提交了其元数据(而非应用文件)(比如在框1416中)的那些应用程序。当判定1524 确定针对该请求用户没有合格的应用时,可以通知1526该请求用户不存在合格的应用。在框1526之后,客户端提交处理1500可以结束。或者,当判定1524确定针对请求用户存在合格的应用时,可以通知1528用户这一个或多个合格应用。接下来,请求用户可以选择1530这一个或多个合格应用中要为其上载应用文件的一个合格应用。然后可以显示1532所选择的应用的属性。所选择的应用的属性的显示1532允许该请求用户验证或者确认该由显示的属性所标识的应用确实是用户期望为其提交应用程序文件的期望应用。从而,判定1534可以确定请求用户是否将显示的属性确认为适当的应用程序。当判定1534确定请求用户未将显示的属性确认为适当的应用程序时,客户端提交处理1510允许请求用户重复框1530和后续的框。或者,当判定1534 确定请求用户将显示的属性确认为适当的应用程序时,可以选择(或识别)1536要上载的应用文件。然后可以形成1538用于上载的数据包。数据包至少包括压缩格式的应用文件, 诸如ZIP文件。ZIP文件格式是一种普及的无损的数据压缩和档案文件格式。ZIP文件可以包含已经压缩的一个或多个文件。数据包还可以包括元数据文件,其至少包括应用程序的唯一标识符和正在提交的应用文件的数字签名。另外,可以针对应用提交的任何方面执行1540证实。然后,客户端提交处理1500可以操作以上载1542应用文件。根据图15A-15C中示出的实施例,应用文件的上载1542可以通过上载已经形成1538的数据包而进行。接下来, 判定1544可以确定是否成功上载1542 了应用文件(或包)。当判定1544确定上载1542 未成功时,向请求用户通知1546未成功的上载。或者,当判定1544确定应用文件(或数据包)的上载1542已成功时,可以向请求用户通知1548成功的上载。在框1546或1548之后,客户端提交处理1500可以结束。图16A和16B是根据本发明的一个实施例的服务器端提交处理1600的流程图。服务器端提交处理1600例如由服务器计算机执行。服务器计算机可以实现诸如图1中所示的产品提交和管理系统104的产品提交系统。服务器端提交处理1600可以从可以确定是否接收到了访问请求的判定1602开始。这里,一旦从客户端计算机(或客户端机器)接收到了访问请求,则可以考虑调用服务器端提交处理1600。因此,当判定1602确定未接收到访问请求时,服务器端提交处理1600 可以等待这样的请求。一旦判定1602确定接收到了访问请求,服务器端提交处理1600可以确定1604用户是否是认证帐户持有者。判定1606可以确定用户是否是可信用户(认证帐户持有者)。当判定1606确定用户不是可信用户时,可以通知1608客户端该用户无效。 在框1608之后,由于用户未被认证,服务器端提交处理1600可以结束。或者,当判定1606确定用户是可信用户时,服务器端提交处理1600可以确定1610 用户是否被批准进行应用程序的提交。在一种实现中,利用与用户相关联的用户帐户,产品提交系统可以访问数据库以确定用户是否被批准进行应用程序的提交。虽然用户可能被批准进行其他类型内容的提交,但是在一种实现中,产品提交系统确定针对特定类型的数据, 即应用程序,的批准。然后判定1612可以确定用户是否被批准进行应用程序的提交。当判定1612确定用户不被批准进行应用程序的提交时,可以通知1608客户端该用户无效,然后服务器端提交处理1600可以结束。另一方面,当判定1612确定用户被批准进行应用程序的提交时,可以通知1614客户端该用户有效且被授权该客户端继续进行应用程序的提交。接下来,判定1616可以确定是否接收到了合格应用请求。当判定1616确定还未接收到合格应用请求时,服务器端提交处理1600可以等待这种请求。一旦判定1616确定接收到了合格应用请求,则可以确定1618要由用户上载的合格应用。例如,当程序已经提交了它们的元数据而未提交应用程序文件时,产品提交和管理系统104可以将应用程序标记为“等待应用上载”。然后可以通知1620客户端该合格的应用。然后判定1622可以确定是否接收到了文件提交。当判定1622确定未接收到文件提交时,服务器端提交处理1600可以等待文件提交。另一方面,当判定1622确定接收到了文件提交时,可以接收1624应用程序文件。然后可以执行1626对提交的证实(validation)。这里,可以执行服务器端的处理以在产品提交系统接收/接受应用程序文件之前证实该应用程序文件的提交。执行的证实处理1626可以随实现而变化。例如,可以执行的一些证实如下。可以证实数据包,诸如证实有效的ZIP文件存在于数据包中(例如,函数 imzOpenO,如果ZIP文件有效则返回成功)。可以证实数据包内ZIP文件中图标的存在。作为示例,证实处理可以打开ZIP文件,提取Info, plist文件,实例化(instantiate)plist, 以及提取图标键值。如果指定了图标,则该证实操作确定指定的文件名是否是ZIP文件内的文件。如果未指定文件名,则该证实操作确定缺省文件名(例如,“Icon, png”或者“icon, png”)是否在该ZIP文件内。另一证实是ZIP文件的顶级目录被表示为“Payload”。又一个证实是代码签名验证。可以要求开发者用密钥对他们的应用进行数字“签名”以验证其应用的完整性。每个文件都必须被考虑到并且在签名的结果中具有正确属性。为了证实应用被签名,我们将ZIP文件解压到临时目录,然后使用代码签名验证器,诸如来自Apple SOAP 服务的代码签名验证器,对可执行文件(应用程序文件)执行代码签名检查。接下来,判定1628可以确定提交是否有效(valid)。当判定1628确定提交无效时,可以通知1630客户端证实错误。或者,当判定1628确定提交有效时,可以通知1632客户端成功提交。其后,可以与相应的一个合格应用相关联地存储1634应用程序文件。换言之,已经上载的应用程序文件存储在诸如与产品提交系统相关联的数据库或其他数据结构之类的存储设备中,以使得其被链接到相应的合格应用。作为示例,对于给定的应用程序, 这种链接用于将应用程序文件与之前提交的用于该应用程序的元数据相关联。在框1630 或1634之后,服务器端提交处理1600可以结束。该申请还参照和/或包括⑴美国专利申请公开No. 2004/0254883A1,标题为“METHOD AND SYSTEM FOR SUBMITTING MEDIA FOR NETWORK-BASED PURCHASE AND DISTRIBUTION",其通过引用合并于此;(2)美国专利申请公开No. 2007/0083471A1,标题为“TECHNIQUES AND SYSTEMS FOR ELECTRONIC SUBMISSION OF MEDIA FOR NETWORK-BASED DISTRIBUTION",其通过引用合并于此;(3)美国专利申请公开No. 2007/0265969A1,标题为〃 COMPUTERIZED MANAGEMENT OF MEDIA DISTRIBUTION AGREEMENTS",其通过引用合并于此;以及(4)美国专利申请公开No. 2007/0266028A1,标题为〃 PROCESSING OF METADATA CONTENT AND MEDIA CONTENT RECEIVED BY A MEDIA DISTRIBUTION SYSTEM",其通过引用合并于此。上述本发明的各个方面、特征、实施例或者实现可以单独使用或者以各种组合使用。本发明的实施例可以例如通过软件、硬件或软件和硬件的组合实现。本发明的实施例还可以在计算机可读介质上实施为计算机可读代码。计算机可读介质是可以存储其后可以由计算机系统读取的数据的任何数据存储设备。计算机可读介质的示例通常包括只读存储器和随机存取存储器。计算机可读介质的更具体的示例是有形的并且包括闪存、 EEPROM存储器、存储卡、CD-ROM、DVD、硬盘、磁带和光学数据存储设备。计算机可读介质还可以分布在网络耦合的计算机系统上以使得计算机可读代码以分布方式存储和执行。本发明的优点是很多的。不同的实施例或者实现可以但是不一定具有以下优点中的一个或多个。本发明的某些实施例的一个优点是,可以实现许多人(例如,开发者)具有统一性地向在线分发站点提交诸如计算机程序(应用)的数字产品。该统一性有助于由在线分发站点的代表处理、批准和分发计算机程序,以便处理数字产品。本发明的某些实施例的另一个优点是,通过与向在线分发站点的数字产品的提交一起提供的信息/授权,数字产品提交可以是用户控制的。本发明的某些实施例的又一个优点是,用户可以获得对数字产品提交的状态信息的在线访问。本发明的某些实施例的再一个优点是,大的数字产品 (例如,应用)可以高效且方便地提交至在线分发站点。 从所写的说明书来看本发明的许多特征和优点是明确的。另外,由于本领域的技术人员将容易想到许多修改和改变,本发明不应限于所示出和描述的精确结构和操作。因此,所有适当的修改和等价内容都可以被认为落入本发明的范围内。
权利要求
1.一种用于向在线仓库提交应用程序的方法,所述方法包括 对用户进行认证;确定所述用户是否被批准向所述在线仓库提交应用程序;在所述用户已被认证并被批准提交应用程序的情况下,确定是否存在要由所述用户向所述在线仓库上载的任何合格的应用程序;以及接收用于所述合格的应用程序中所选择的一个或多个应用程序的应用程序文件的提交。
2.如权利要求1所述的方法,其中所述接收提交包括通过非HTTP连接接收所述应用程序文件的上载。
3.如权利要求1所述的方法,其中所述确定所述用户是否被批准向所述在线仓库提交应用程序包括访问与所述在线仓库相关联的数据库,以确定所述用户是否与所述在线仓库具有用于分发应用程序的合同。
4.如权利要求1至3中任意一项所述的方法,其中所述确定是否存在要上载的任何合格的应用程序包括访问与所述在线仓库相关联的数据库,以确定是否存在与所述用户相关联的、正在等待应用程序文件上载的任何应用程序。
5.如权利要求4所述的方法,其中所述数据库在所述访问时存储用于所述合格的应用程序的元数据,但是不存储或链接到用于所述合格的应用程序的任何应用程序文件。
6.如权利要求1所述的方法,其中,所述合格的应用程序是已经由描述性信息元数据预先识别到所述在线仓库的一个或多个应用程序。
7.如权利要求1至6中任意一项所述的方法,其中,为所述在线仓库存储正在提交的所述应用程序文件,以便使正在提交的所述应用程序文件链接到用于相应的合格的应用程序的描述性信息元数据。
8.如权利要求7所述的方法,其中所述接收提交包括通过非HTTP连接接收所述应用程序文件的上载,并且其中所述确定所述用户是否被批准向所述在线仓库提交应用程序包括访问与所述在线仓库相关联的数据库,以确定所述用户是否与所述在线仓库具有用于分发应用程序的合同。
9.一种用于向在线仓库提交应用程序的方法,所述方法包括 接收用户的登录信息;显示所述用户已被验证并被批准向在线仓库提交应用程序的指示; 随后显示有资格由所述用户上载到所述在线仓库的一个或多个应用程序的列表; 接收对所述一个或多个应用程序的列表中的至少一个应用程序的选择; 指定与至少一个所选择的应用程序相对应的电子应用程序文件;以及开始所指定的电子应用程序文件向所述在线仓库的上载。
10.如权利要求9所述的方法,其中所述有资格由所述用户上载到所述在线仓库的一个或多个应用程序的列表由远程服务器基于用于一个或多个应用程序的元数据的在先提交来确定。
11.如权利要求9或10所述的方法,其中所述上载包括 压缩所述指定的电子应用程序文件;形成包括标记语言文档和压缩后的指定的电子应用程序文件的电子提交包;以及开始所述电子提交包向所述在线仓库的上载。
12.如权利要求11所述的方法,其中所述标记语言文档包括用于所述指定的电子应用程序文件的唯一标识符和用于所述指定的电子应用程序文件的校验和值。
13.如权利要求12所述的方法,其中所述压缩后的指定的电子应用程序文件是ZIP文件。
14.如权利要求9至13所述的方法,其中所述方法还包括如果所述指定的电子应用程序在所述在线仓库处被成功接收和证实,则显示成功上载的指示。
15.一种计算机可读介质,至少包括有形地存储在其上的、用于向在线仓库提交应用程序的可执行计算机程序代码,所述计算机可读介质包括用于对用户进行认证的计算机程序代码;用于确定所述用户是否被批准向所述在线仓库提交应用程序的计算机程序代码; 用于在所述用户已被认证并被批准提交应用程序的情况下,确定是否存在要由所述用户向所述在线仓库上载的任何合格的应用程序的计算机程序代码;以及用于接收用于所述合格的应用程序中所选择的一个或多个应用程序的应用程序文件的提交的计算机程序代码。
16.如权利要求15所述的计算机可读介质,其中所述用于确定所述用户是否被批准向所述在线仓库提交应用程序的计算机程序代码包括用于访问与所述在线仓库相关联的数据库,以确定所述用户是否与所述在线仓库具有用于分发应用程序的合同的计算机程序代码。
17.如权利要求15所述的计算机可读介质,其中所述用于确定是否存在要上载的任何合格的应用程序的计算机程序代码包括用于访问与所述在线仓库相关联的数据库,以确定是否存在与所述用户相关联的、正在等待应用程序文件上载的任何应用程序的计算机程序代码。
18.如权利要求17所述的计算机可读介质,其中,在由所述用于接收应用程序文件的提交的计算机程序代码接收所述应用程序文件的提交之前,所述数据库存储用于所述合格的应用程序的元数据,但是不存储或链接到所述合格的应用程序的任何应用程序文件。
19.如权利要求15至18中任意一项所述的计算机可读介质,其中所述合格的应用程序是已经由描述性信息元数据预先识别到所述在线仓库的一个或多个应用程序。
20.如权利要求15至19中任意一项所述的计算机可读介质,其中为所述在线仓库存储正在提交的所述应用程序文件,以便使正在提交的所述应用程序文件链接到用于相应的合格的应用程序的描述性信息元数据。
21.一种计算机可读介质,至少包括存储在其上的、用于向在线仓库提交应用程序的可执行计算机程序代码,所述方法包括用于接收用户的登录信息的计算机程序代码;用于显示所述用户被验证并被批准向在线仓库提交应用程序的指示的计算机程序代码;用于显示有资格由所述用户上载到所述在线仓库的一个或多个应用程序的列表的计算机程序代码;用于接收对所述一个或多个应用程序的列表中的至少一个应用程序的选择的计算机程序代码;用于指定与至少一个所选择的应用程序相对应的电子应用程序文件的计算机程序代码;以及用于开始所指定的电子应用程序文件向所述在线仓库的上载的计算机程序代码。
22.如权利要求21至22所述的计算机可读介质,其中所述计算机可读介质还包括 用于如果所述指定的电子应用程序在所述在线仓库处被成功接收和证实,则显示成功上载的指示的计算机程序代码。
23.如权利要求21所述的计算机可读介质,其中所述有资格由所述用户上载到所述在线仓库的一个或多个应用程序的列表由远程服务器基于用于一个或多个应用程序的元数据的在先提交来确定。
24.如权利要求21所述的计算机可读介质,其中所述用于开始上载的计算机程序代码包括压缩所述指定的电子应用程序文件;形成包括标记语言文档和压缩后的指定的电子应用程序文件的电子提交包;以及开始所述电子提交包向所述在线仓库的上载。
25.如权利要求24所述的计算机可读介质,其中所述标记语言文档包括用于所述指定的电子应用程序文件的唯一标识符和用于所述指定的电子应用程序文件的校验和值。
26.一种用于向在线仓库提交应用程序的计算系统,所述计算系统包括 用于对用户进行认证的装置;用于确定所述用户是否被批准向所述在线仓库提交应用程序的装置; 用于在所述用户已被认证并被批准提交应用程序的情况下,确定是否存在要由所述用户向所述在线仓库上载的任何合格的应用程序的装置;以及用于接收用于所述合格的应用程序中所选择的一个或多个应用程序的应用程序文件的提交的装置。
27.一种用于向在线仓库提交应用程序的计算系统,所述计算系统包括 用于接收用户的登录信息的装置;用于显示所述用户已被验证并被批准向在线仓库提交应用程序的指示的装置; 用于随后显示有资格由所述用户上载到所述在线仓库的一个或多个应用程序的列表的装置;用于接收对所述一个或多个应用程序的列表中的至少一个应用程序的选择的装置; 用于指定与至少一个所选择的应用程序相对应的电子应用程序文件的装置;以及用于开始所指定的电子应用程序文件向所述在线仓库的上载的装置。
全文摘要
公开了一种用于针对产品分发站点提交、分发和/或管理数字产品的改进的系统和方法。数字产品向产品分发站点的提交能够由许多提交者以统一的、计算机辅助的方式执行。然后所提交的数字产品可以以非常自动化的方式管理,并且可以在产品分发站点处在线购买和分发。一旦提交了数字产品,则用户可以访问数字产品提交的状态以获取数字产品被批准还是被拒绝的信息。在一个实施例中,数字产品是计算机程序产品(例如,计算机软件程序)。
文档编号G06F17/30GK102203771SQ200980123614
公开日2011年9月28日 申请日期2009年5月5日 优先权日2008年5月5日
发明者J·R·福斯巴克, M·姆勒, R·D·科特斯 申请人:苹果公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1