JAVA商店的制作方法

文档序号:12733155阅读:247来源:国知局
JAVA商店的制作方法与工艺

相关申请的交叉引用

本申请要求在35U.S.C.§119(e)下于2009年5月29日在Bernard A.Traversat、Jonathan I.Schwartz、James A.Gosling、Joshua M.Marinacci、Michael J.Duigou、Henry Jen、Mohamed M.Abdelaziz、Brian Goetz、Anant K.Mithal、Dusan Palvica、Jean Yao、Gemma Watson、Eric N.Klein、Jr.,Octavian Tanase、John E.Muhlner、Aurelio Garcia-Ribeyro、及Thomas V.Ng的名下提交的标题为“Java商店”的美国临时专利申请No.61/182,303的优先权,该临时专利申请的全部内容在此通过引用而并入。

技术领域

本申请涉及JAVA商店。具体而言,涉及用于发布应用程序的方法和系统。



背景技术:

软件开发人员在全国、甚至在全世界正在不断地创建新的应用程序。软件开发可以使用各种平台来完成,这些平台包括但不限于JavaTM和JavaFXTM(和是由Sun Microsystems,Inc.,Mountain View,CA.拥有的注册商标)。当开发新的应用程序时,开发人员必须寻找一种途径,使得所述应用程序可用于对它感兴趣的那些用户。这可以例如通过征求可能对这样一种应用程序感兴趣的用户来完成。开发人员例如可以经由可拆卸存储设备,如CD-ROM,来分发应用程序的拷贝。



技术实现要素:

一般地,在一个方面,本发明涉及一种计算机可读介质,该计算机可读介质包括使计算机系统执行一种方法的计算机可读代码。所述方法包括:接收应用程序;接收应用程序的应用信息;及部分地基于应用信息来确定对应用程序的访问特权。所述方法还包括:使用应用程序和访问特权来生成应用程序的部署软件包,并发布所述应用程序。

一般地,在一个方面,本发明涉及一种用于发布应用程序的系统。所述系统包括处理器和存储器,该存储器包括能够由处理器执行的计算机可读代码,该计算机可读代码被配置成接收应用程序和应用程序的应用信息。所述计算机可读代码还被配置成:部分地基于应用信息来确定对应用程序的访问特权;和使用应用程序和访问特权来生成应用程序的部署软件包。计算机可读代码还被配置成发布所述应用程序,以使部署软件包可用于从包含下列的组中选择的至少一个:安装在客户设备上和在客户设备上预览。

本发明的其它方面根据如下描述和附属权利要求书将是显然的。

附图说明

图1示出按照本发明一个实施例的系统。

图2示出按照本发明一个实施例的仓库的体系结构。

图3-6示出按照本发明一个或多个实施例的方法。

图7-20示出根据本发明一个或多个实施例的例子。

图21示出按照本发明一个或多个实施例的计算机系统。

具体实施方式

现在将参照附图详细地描述本发明的具体实施例。在各个附图(也称作图)中的类似元素为了一致性由类似附图标记指示。

在本发明的实施例中,陈述了多个具体细节以便提供本发明的更彻底理解。然而,对于本领域的技术人员来说,显然可以实践本发明而不用这些具体细节。在其它实例中,不再详细地描述已知特征以避免使本发明模糊。

一般地,本发明的实施例涉及发布和分发应用程序。更明确地说,本发明的实施例涉及应用程序(例如,Java或JavaFX应用程序)的发布和检查,这些应用程序能够在Java运行环境(JRE,Java Runtime Environment)中执行,而与JRE在其上执行和分发应用程序的计算平台无关。根据本发明的一个或多个实施例,这涉及:确定所述应用程序是适当的应用程序;和确定所述应用程序的访问特权。

在本发明的一个实施例中,应用程序一旦被编译,就处于字节-代码格式。编译后的应用程序被配置成在Java虚拟机(JVM,Java Virtual Machine)上执行。更明确地说,JVM包括启动JRE的执行和允许应用程序在JRE内执行的功能。应用程序的执行包括读取和验证字节-代码、确定相应的本机-平台机器代码、以及将相应的本机-平台机器代码发给客户设备OS和/或硬件。在本发明的一个实施例中,JVM可以实施一个或多个“沙箱”,其中,每个沙箱是JRE内的隔离执行环境。在沙箱内执行的应用程序可仅与JVM和沙箱内的其它应用程序进行交互;然而,应用程序可与在沙箱外执行的应用程序进行交互。而且,JVM可对应用程序可如何在给定沙箱内执行设置进一步的限制。

图1示出按照本发明一个实施例的系统。该系统包括一个或多个应用程序开发人员(110)、仓库(120)、以及一个或多个客户设备(140)。下面讨论这些组件的每一个。

在本发明的一个实施例中,开发人员(110)生成、创建、或获得应用程序(150)。根据本发明的一个或多个实施例,所述应用程序可以是但不限于Java(任何版本、样式)和JavaFX应用程序。开发人员然后将这些应用程序(150)提供给仓库(120)以便分发。另外,根据本发明的一个或多个实施例,开发人员(110)向仓库(120)提供应用信息(155)(即,与应用程序有关的数据)。关于应用信息的更多细节将在图8-11中提供。

根据本发明的一个或多个实施例,开发人员(110)也从仓库(120)接收关于已经提交的应用程序(即,应用程序(150))的数据。根据本发明的一个或多个实施例,这种数据可以包括客户使用数据(170)和应用度量(175)。据本发明的一个或多个实施例,客户使用数据(170)可相应于详细说明给定应用程序在一个或多个客户设备(140)上如何使用的数据(例如,没有任何个人身份信息)。根据本发明的一个或多个实施例,客户使用数据(170)可以包括诸如用户多么频繁地启动和/或停止应用程序(150)、用户访问了什么页面、用户按哪种顺序在应用程序中的各个页面中导航、页面被如何访问、用户如何与用户接口进行交互(例如,用户点击了哪些按钮、等等)、以及访问页面花费的时间之类的信息。另外,开发人员(110)可以接收应用度量(175)。

根据本发明的一个或多个实施例,应用度量(175)可以包括应用程序已被安装或再安装的次数、应用程序已被观看的次数、应用程序已被用户除去的次数、以及应用程序已导致灾难性错误(即,应用程序“崩溃”)的次数。根据本发明的一个或多个实施例,应用度量(175)由仓库(120)生成,如下面描述的那样。

在本发明的一个实施例中,仓库相应于一个或多个计算机系统(例如,服务器),这些计算机系统被配置成与开发人员和客户设备对接。一般地,根据本发明的一个或多个实施例,仓库(120)从开发人员(110)接收应用程序,并且通过将它们提供给客户设备(140)来将它们提供给用户。根据本发明的一个或多个实施例,将应用程序(150)提供给仓库(120),该应用程序(150)打包在标准Java存档(JAR,Java Archive)文件中。仓库被配置成存储一个或多个应用程序。而且,仓库可以存储同一个应用程序的不同版本(例如,版本1、版本1.1、版本2、等等),其中,每个版本包括不同特征和/或内容。例如,根据本发明的一个或多个实施例,应用程序的不同版本可被存储用于各种屏幕尺寸和输入能力(例如,触摸屏、物理键盘输入、跟踪球输入、等等)。另外,仓库可以存储应用程序的给定版本的多个实例,其中,应用程序的每个实例被配置成部署在不同类型的客户设备上(例如,一个实例用于桌面部署、一个实例用于部署在移动设备上、等等)。而且,在本发明的一个实施例中,仓库包括支持在图3-6的一个或多个中描述的实施例的功能。仓库的实施例在图2中描述。

根据本发明的一个或多个实施例,仓库(120)被配置成使用客户使用数据来生成关于应用程序(150)如何被使用的趋势,并且随后将生成的趋势发送给开发人员。可选择地或者除了上述之外,仓库(120)可被配置成将客户使用数据发送给开发人员。在本发明的一个实施例中,客户使用数据是从执行所述应用程序的多个个别客户设备获得的客户使用数据的集合。在本发明的一个实施例中,所述应用度量除了客户使用数据之外,还包括由仓库跟踪的其它信息。例如,所述应用度量可以指示给定应用程序被预览的次数(下面在图5中描述)、给定应用程序被安装在客户设备上的次数、当前在其上存储了所述应用程序的客户设备的类型、等等。

仓库被配置成在有线网络上、无线网络上、或其任何组合上与开发人员(110)和客户设备(140)通信。而且,仓库(120)和客户设备(140)可在有线网络、无线网络、或其任何组合上通信。根据本发明的一个或多个实施例,在收到应用程序(150)和应用信息(155)后,仓库(120)可将应用程序打包在用户可得到的部署软件包(160)中。根据本发明的一个或多个实施例,开发人员(110)和客户设备(140)上的用户可以使用界面与仓库(120)进行交互。

在本发明的一个实施例中,客户设备(140)被配置成从仓库(120)接收作为部署软件包(160)的应用程序。在本发明的一个实施例中,部署软件包与Java网络启动协议(JNLP,Java Network Launch Protocol)相符,使得可以使用JNLP的Web Start特征来执行所述应用程序。在本发明的一个实施例中,客户设备也支持JavaFX,JavaFX被用来获得与应用程序在客户设备上的JRE中的执行相关联的客户使用数据。

在本发明的一个实施例中,客户设备(140)是可在其上执行JRE的任何设备。换句话说,每个客户设备(140)包括Java运行环境(130)。根据本发明的一个或多个实施例,用户使用客户设备(140)来访问来自仓库(120)的应用程序。客户设备的例子包括但不限于连接到有线网络的计算机、连接到无线网络的计算机、2G移动设备、3G移动设备、个人数字助理、智能电话(即,提供高级能力的移动电话,常常具有PC状功能,例如,iPhone、Blackberry、执行Android移动设备平台的移动电话)、机顶盒(即,连接到电视(或其它显示设备)和外部信号源的设备,将信号转换成然后在电视屏幕(或显示设备的屏幕)上显示的内容)、等等。

图2示出按照本发明一个实施例的仓库(即,图1的仓库(120))的体系结构。所述仓库包括操作系统(OS)(240),例如,SolarisTM、LinuxTM、UnixTM、WindowsTM、或任何其它操作系统(是由Sun Microsystems,Inc.,Mountain View,CA.拥有的注册商标;是由Linus Tourvalds,Santa Clara,CA.拥有的注册商标;是由The Open Group拥有的注册商标;及是由Microsoft Corporation,Redmond,WA拥有的注册商标)。OS执行应用程序服务器(230)(例如,Glassfish),该应用程序服务器(230)被配置成宿主对仓库所提供的服务的应用程序接口(API)。

在本发明的一个实施例中,仓库包括管理服务(205)、开发人员服务(210)、应用程序检查员服务(215)、内容传送服务(220)、及数字权利管理服务(225)。下面描述这些服务的每一个。

在本发明的一个实施例中,管理服务(205)提供仓库管理服务(经由通用资源定位器(URL)访问),这些仓库管理服务包括仓库硬件和软件的配置。例如,根据本发明的一个或多个实施例,管理服务被配置成跟踪正在将内容提交给仓库(即,图1的仓库120)的开发人员。根据本发明的一个或多个实施例,管理服务(205)被配置成跟踪应用程序的购买事务和/或应用程序的部署。根据本发明的一个或多个实施例,管理服务(205)被配置成管理应用程序在目录中对消费者的显示。最后,根据本发明的一个或多个实施例,管理服务(205)管理对仓库提交的内容的状态(例如,已提交、已批准、在检查中、已发布、或已隔离)。

在本发明的一个实施例中,开发人员服务(210)向开发人员提供入口(经由URL访问),以将应用程序和相应的应用信息发送/装载到仓库。另外,开发人员可向开发人员服务注册,以接收针对开发人员(或提交了应用程序的其它第三方)所提交的应用程序的应用度量和客户使用数据(以上描述)。这样一种入口的例子示出在图8-11中。

在本发明的一个实施例中,应用程序检查员服务(215)向应用程序检查员提供入口(经由URL访问),以检查和批准由开发人员(经由开发人员服务)提交的应用程序以便向用户发布。根据本发明的一个或多个实施例,可以从入口直接执行应用程序(即,不用安装或购买应用程序)。根据本发明的一个或多个实施例,应用程序检查员服务(215)也可以使检查员能够设置对应用程序的访问特权。根据本发明的一个或多个实施例,检查服务提供验证如下的能力:应用程序的内容是适当的(例如,如果应用程序是针对小学生的,那么检查应用程序的内容以保证它是年龄适当的);应用程序的内容与描述相匹配;以及当应用程序运行时没有病毒或恶意行为(例如,应用程序进行用户个人文件的未授权访问)。而且,根据本发明的一个或多个实施例,检查服务提供验证如下的能力:应用程序具有访问用户文件夹或网络的合适许可集;以及应用程序与应用程序将部署在其上的各种操作系统(例如,Windows Mobile、Android、Linux、等等)兼容。

在本发明的一个实施例中,内容传送服务(220)向用户提供入口(经由URL访问),以便:(i)观看仓库中的应用程序(245);(ii)打包用于传送到客户设备的应用程序,以便使用JNLP安装或预览;(iii)管理应用程序版本和实例;(iv)管理记账和发票(如果需要);(v)响应确认给定客户设备包括给定应用程序的最新版本的请求;(vi)跟踪哪些应用被每个用户安装在他们的客户设备上(例如,用户A将应用程序1加载在他们的移动设备上);及(vii)维护用户账户信息(例如,用户名、口令、等等)。内容传送服务入口的例子示出在图15-20中。

在本发明的一个实施例中,数字权利管理服务(225)包括为给定应用程序、特定用户、特定客户设备类型、或其任何组合设置数字权利管理(DRM)设定的功能。例如,DRM设定可以规定,但不限于规定:(i)在何处应用程序可以执行(例如,在什么系统上应用程序可以执行);(ii)应用程序的给定实例是否可被拷贝到多个客户设备;(iii)用户可以访问应用程序的什么特征;及(iv)可获得应用程序(或应用程序的给定特征)的持续时间。而且,根据本发明的一个或多个实施例,DRM设定可以提供跟踪消费者已经购买的许可证的类型的能力。例如,消费者可能购买永久许可证、预订许可证、及按内容访问许可证。根据本发明的一个或多个实施例,DRM服务(225)禁止用户在没有购买有效许可证的情况下拷贝应用程序和在不同系统上使用它。根据本发明的一个或多个实施例,DRM管理服务还验证用户对特定应用程序可得到的访问级别(例如,应用程序是包括5级的游戏,但用户只有访问级1-3的许可证,那么DRM可以实施这种限制)。

在本发明的一个实施例中,应用程序(245)、应用信息(250)、以及事务日志(255)的可执行代码被存储在仓库中的数据仓库(235)中。在本发明的一个实施例中,数据仓库中的数据由文件系统管理,诸如ZFS、Network File System(NTFS)、Universal Disk Format(UDF)、或任何其它文件系统(或其组合)。另外,作为选择例,应用程序(245)、应用信息(250)、以及事务日志(255)的可执行代码的一个或多个可以存储在内容传送网络(即,地理分布式存储网络)中,以便利应用程序等等到消费者的高效传输。在这样的实施例中,仓库包括如下功能:访问内容传送网络;和管理在内容传送网络中存储的数据。

在本发明的一个实施例中,应用信息(250)被存储在数据仓库中作为可扩展标记语言(XML)文件。本领域的技术人员将认识到,应用信息可按除了XML之外(或与其相组合)的格式存储。根据本发明的一个或多个实施例,应用程序开发人员(110)也向仓库(120)提供与提交的应用程序(150)有关的应用信息(155)。根据本发明的一个或多个实施例,应用信息(155)可以包括但不限于应用程序名称、子标题、描述、类别、许可证要求(例如,永久的、预订的、或免费的)、以及价格。根据本发明的一个或多个实施例,子标题是伴随应用程序名称的应用程序的简短描述。根据本发明的一个或多个实施例,描述可以是弹出描述或完整描述。而且,根据本发明的一个或多个实施例,应用信息可以包括弹出描述以及完整描述。根据本发明的一个或多个实施例,当用户在显示器中悬停在与应用程序相关联的图标上时,弹出描述将出现。关于完整描述,根据本发明的一个或多个实施例,将使得请求关于应用程序的更多信息的用户能够获得完整描述。关于类别,根据本发明的一个或多个实施例,开发人员(110)将从预存列表中选择描述应用程序的描述性术语(即,“社交网络”、“运动”、“财经”、等等)。根据本发明的一个或多个实施例,应用信息可以包括其它信息,如帮助页面通用资源定位器(“URL”)、与应用程序(150)相关联的一个或多个图标、以及应用程序(150)的屏幕截图。

图3示出按照本发明一个或多个实施例的方法。更明确地说,图3示出用来将应用程序提供给仓库的方法。尽管顺序地呈现和描述了流程图中的各个步骤,但本领域的技术人员将认识到,步骤的一些或全部可以按不同顺序执行、可被组合或省略,以及步骤的一些或全部可以并行地执行。

在步骤100中,用于应用程序的一个或多个Java归档文件(Java Archives,JAR)由开发人员(或将应用程序提供给仓库的第三方)获得(产生、创建、等等)。在步骤102中,获得应用程序的应用信息。在本发明的一个实施例中,可使用现有技术中的任何已知机制来获得(产生、或创建)应用信息,这些已知机制包括完成基于web的表格、提供文本文档、提供XML文档、等等。在步骤104中,将JAR(一个或多个)和相应的应用信息提供给仓库。根据本发明的一个或多个实施例,应用程序和应用信息通过跨越网络发送它们而被提供给仓库。在本发明的一个实施例中,可使用开发人员服务来进行图3中的一个或多个步骤。

图4示出按照本发明一个或多个实施例的方法。更明确地说,图4示出用来检查在图3中(或通过另一种机制)提供给仓库的应用程序的方法。尽管顺序地呈现和描述了流程图中的各个步骤,但本领域的技术人员将认识到,步骤的一些或全部可以按不同顺序执行、可被组合或省略,以及步骤的一些或全部可以并行地执行。

在步骤200中,接收JAR和相应的应用信息。在步骤202中,检查应用程序的内容(例如,文本、图形和/或声频内容)。在本发明的一个实施例中,可由检查员经由应用程序检查员服务来检查应用程序的内容。根据本发明的一个或多个实施例,手动检查内容提交的文本,并且自动地检查JAR,以检查病毒以及验证代码。根据本发明的一个或多个实施例,可以手动地或自动地(例如使用模拟器)来验证JAR和相应的应用信息。

在步骤204中,确定对应用程序的访问特权。访问特权可以部分地根据应用信息来确定。而且,可部分地使用由应用程序检查员服务规定(或应用程序检查员服务可访问)的规则,来确定访问特权。在本发明的一个实施例中,访问特权可以规定任何粒度级。例如,访问特权可以是:(i)仅沙箱执行(即,应用程序仅在沙箱内执行);(ii)在沙箱外在客户设备上的限制访问执行(即,应用程序可以访问沙箱外的资源/数据/外围设备的规定子集);以及(iii)在客户设备上的完全访问执行。

在步骤206中,设置用于应用程序的DRM设定。DRM设定可以规定对于应用程序的任何类型的DRM限制。例如,根据本发明的一个或多个实施例,对于应用程序可以施加DRM限制,这些DRM限制允许用户在购买应用程序之前仅仅访问应用程序的预览。另一个例子是,对于应用程序可以施加DRM限制,这些DRM限制限定应用程序可被访问的次数,或者设置应用程序多长时间是可访问的时间限制。在本发明的一个实施例中,步骤206可由DRM服务执行。

在步骤208中,使用JNLP打包JAR(一个或多个)、访问特权以及DRM设定以便部署。在本发明的一个实施例中,仓库包括执行步骤208中要求的全部必要动作的功能。本领域的技术人员将认识到,打包可以包括创建部署软件包的多个实例,其中,对于具体类型的客户设备创建部署软件包的每个实例(例如,用于桌面部署的一个实例、用于第一类型移动设备上的部署的一个实例、用于第二类型的移动设备上的部署的一个实例、等等)。在步骤210中,在仓库中发布应用程序(即,应用程序可由客户设备安装或预览)。根据本发明的一个或多个实施例,发布的应用程序可通过仓库的内容传送服务访问。在本发明的一个实施例中,步骤208-210可由内容传送服务执行。

图5示出按照本发明一个或多个实施例的方法。更明确地说,图5示出用来在客户设备上预览或安装应用程序的方法。尽管顺序地呈现和描述了流程图中的各个步骤,但本领域的技术人员将认识到,步骤的一些或全部可以按不同顺序执行、可被组合或省略,以及步骤的一些或全部可以并行地执行。

在步骤300中,用户例如使用内容传送服务登入仓库。在本发明的一个实施例中,用户可经由web浏览器(例如,FirefoxTM、Google ChromeTM、Internet ExplorerTM、或任何微型浏览器、小型浏览器、或无线因特网浏览器)和/或经由客户设备上安装的另一个应用程序来访问仓库(FirefoxTM是由Mozilla,Inc.,Mountain View,CA.拥有的注册商标;Google ChromeTM是由Google,Inc.,Mountain View,CA.拥有的注册商标;及Internet ExplorerTM是由Microsoft Corporation,Redmond,WA拥有的注册商标)。

在步骤302中,由用户经由客户设备来选择应用程序。在步骤304中,进行关于用户是想安装应用程序还是预览应用程序的确定。如果要安装应用程序,那么方法转到步骤306。如果要预览应用程序,那么方法转到步骤318。在步骤306中,将由内容传送服务(经网页浏览器或在客户设备上的其它应用程序)提供的用户界面中的代表应用程序的图标拖到客户设备的桌面(或主屏幕)上(或者否则选择)。本领域的技术人员将认识到,可使用其它公知方法/机制将部署软件包传输到客户设备。

在步骤308中,相应于应用程序的图标到客户设备桌面的“拖动”(或选择应用程序)启动使用JNLP将部署软件包(它可以是客户设备类型专用的)传输到客户设备。在步骤310中,将部署软件包存储在客户设备上的持久存储器中。在步骤312中,在客户机上的JRE中按照在图4中规定的访问特权和DRM设定来执行应用程序。

在步骤314中,从客户设备(使用例如JavaFX)获得客户使用数据,该客户使用数据与应用程序在客户设备上的使用有关。客户使用数据可以包括个人身份信息(即,识别客户设备的用户的信息、或客户设备的用户的任何其它个人/机密信息)。在将数据发送到仓库之前,可以从客户使用数据中除去个人身份信息(或其部分)。可选择地,将带有个人身份信息的客户使用数据发送到仓库,在这时,在将客户使用数据发送到开发人员(或将应用程序提供给仓库的其它第三方)之前,由仓库除去个人身份信息。在步骤316中,将客户使用数据发送到仓库。

在步骤318中,如果要预览应用程序,则使用JNLP将部署软件包(它可以是客户设备类型专用的)传输到客户设备。在步骤320中,将部署软件包存储到客户设备上的临时存储器中(或按临时方式存储)。例如,将部署软件包存储到易失性存储器中,并且仅在关闭JRE以前和/或如在DRM设定中规定的那样在客户设备上可用。本领域的技术人员将认识到,对于被预览的应用程序的DRM设定可能比关于安装的应用程序的DRM设定限制性更强。方法然后转到步骤312。在本发明的一个实施例中,当预览应用程序时,可以发送完整的应用程序供预览,或者可选择地,可以将比完整的应用程序功能少的版本(即,“预览版本”)发送给客户设备。而且,一旦完成预览,例如,用户已经将应用程序使用了规定时段,就关断设备,执行JVM,然后可使应用程序对于设备的用户不可访问。

图6示出了按照本发明一个或多个实施例的方法。更明确地说,图6示出了用来执行先前安装在客户设备上的应用程序的方法。尽管顺序地呈现和描述了流程图中的各个步骤,但本领域的技术人员将认识到,步骤的一些或全部可以按不同顺序执行、可被组合或省略,以及步骤的一些或全部可以并行地执行。

在步骤400中,使用启动应用程序的任何已知方法(例如,双击与应用程序相对应的图标、输入命令行指令、等等),在客户设备上启动应用程序的执行。在步骤402中,确定(或者获得)客户设备上的应用程序的当前版本。在步骤404中,然后进行关于客户设备上的应用程序的版本是否是最新版本的确定,其中,最新版本可在仓库中得到。如果客户设备上的应用程序是最新版本,那么方法转到步骤410;否则,方法转到步骤406。在本发明的一个实施例中,使用校验和函数(例如,SHA1、MD5、等等)对应用程序的每个版本计算校验和。在这样的实施例中,通过比较客户设备上的应用程序的版本的校验和与应用程序的最新版本的校验和,来进行步骤404中的确定。

在步骤406中,使用JNLP将包括应用程序的最新版本的部署软件包(它可以是客户设备类型专用的)传输到客户设备。

在步骤408中,将部署软件包存储到客户设备上的持久存储器中。在步骤410中,按照在图4中规定的访问特权和DRM设定,在客户机上的JRE中执行所述应用程序。

在步骤412中,从客户设备(使用例如JavaFX)获得客户使用数据,该客户使用数据与应用程序在客户设备上的使用有关。客户使用数据可以包括个人身份信息(即,识别客户设备的用户的信息、或客户设备的用户的任何其它个人/机密信息)。根据本发明的一个或多个实施例,客户使用数据可以本地高速缓存在客户设备上,并且仅定期地传输。在将数据发送到仓库之前,可以从客户使用数据中除去个人身份信息(或其部分)。可选择地,将带有个人身份信息的客户使用数据发送到仓库,在这时,在将客户使用数据发送到开发人员(或将应用程序提供给仓库的其它第三方)之前,由仓库除去个人身份信息。在步骤414中,将客户使用数据发送到仓库。本领域的技术人员将认识到,在图3-6中示出的上述方法的两个或更多个可以并行地执行。

在本发明的一个实施例中,用户可以使用不同的客户设备来访问仓库。在这样的情况下,用户可在仓库处具有跨越他们的全部客户设备的共用用户账户,并这样具有在他们的每一个客户设备上安装同一个应用程序的权力。例如,如果用户A购买了应用程序1并将应用程序1安装在他们的移动电话上,并且随后从他们的膝上型电脑访问仓库,则用户A可将应用程序1安装在他们的膝上型电脑上,而不用购买应用程序1的另外拷贝。

如下讨论示出了本发明的各种实施的例子。这些例子不打算限制本发明的范围。

图7-14示出了根据本发明一个或多个实施例的示范截屏。明确地说,根据本发明的一个或多个实施例,图7-14示出由仓库提供给开发人员的示范截屏,这些示范截屏方便将应用程序和应用信息从开发人员发送到仓库。

图7示出了开发人员在将应用程序提交给仓库时可能最初遇到的的一种实施。更明确地说,图7示出了开发人员在通过开发人员入口将应用程序发送到仓库时最初可能遇到的显示的截屏。根据本发明的一个或多个实施例,开发人员可能需要注册以便访问入口。在图7中示出的界面允许开发人员通过选择注册图标(705)进行注册,或者通过选择登录图标(710)登录到开发人员入口。

图8示出根据本发明一个或多个实施例,开发人员在提交新应用程序时遇到的显示的截屏。明确地说,该截屏示出了提示开发人员输入应用信息的页面。根据本发明的一个或多个实施例,开发人员已向仓库注册,并且已经将登录信息提供给仓库,从而仓库可以识别和鉴定开发人员。在这个例子中,开发人员可以提供应用信息,该应用信息包括应用程序名称(805)、简短描述(810)、以及完整描述(815),如上所述。另外,开发人员可以提供类别(820)(即,应用程序所属类别的列表)、帮助页面URL(825)(即,到网页的地址,在该网页处,用户可以找到应用程序的支持信息)、以及应用程序价格(830)(即,购买应用程序的成本)。根据本发明的一个或多个实施例,开发人员可以选择免费提供应用程序,或者可以选择提供应用程序的价格。根据本发明的一个或多个实施例,开发人员也可以选择自动发布选项(835),该自动发布选项(835)当被选中时,允许应用程序在批准后发布,而不需要通过开发人员同意。尽管在图8中没有示出,但可以提示开发人员输入提交应用程序的国家。国家信息以及应用程序的描述可被用来确定关于应用程序是否存在需要解决的任何进口/出口控制问题。另外,开发人员也可以经由图8中示出的GUI来规定应用程序的演示版本的位置,其中,演示版本包括有限的功能。应用程序的演示版本可被发布,并且随后被用作针对潜在消费者的销售工具,以确定他们是否想最终购买应用程序的完整版本。

图9示出根据本发明一个或多个实施例的界面的另一个例子,开发人员可以使用该界面来提交新应用程序。在这个例子中,界面提示开发人员输入应用信息,该应用信息包括应用程序名称(905)、应用程序的简短描述(910)、应用程序的完整描述(915)、以及描述应用程序的一个或多个类别(920)。而且,在这个例子中,界面向开发人员提供如下能力:上载包括应用程序的JAR文件(925)、以及包括应用程序的预览的文件(930)。在这个例子中,开发人员也能够提交URL(935),在该URL(935)处,用户可以找到与应用程序相对应的帮助页面。这个例子表明:根据本发明的一个或多个实施例,可能要求开发人员将数据输入到一定字段中,以便提交应用程序用于批准(即,应用程序名称(905)、简短描述(910)、完整描述(915)、类别(920)、从(925)上载JAR、以及帮助页面URL(935)),而其它字段是可选的(即,从(930)上载预览)。一旦输入了以上信息,可使用提交报批按钮(955)来提交应用程序以便批准。此外,这张图表明:根据本发明的一个或多个实施例,开发人员可使用被标记为“打开商店视图”的按钮(940)来观看入口,用户将在该入口处访问应用程序。另外,开发人员可使用现在运行(955)按钮来确认应用程序的JAR(例如在从(925)上载JAR中规定的)适当地执行。

根据本发明的一个或多个实施例,选择这个图标向开发人员呈现一种显示,这种显示示出当应用程序被发布时在入口中将是什么样子。根据本发明的一个或多个实施例,开发人员可以选择被标记为“保存草稿”的图标(945),该图标(945)允许用户悬置提交过程,并在以后返回完成它。根据本发明的一个或多个实施例,当已经填充要求的字段时,开发人员可以选择“下一步”(950),以观看提交过程中的下个界面。根据本发明的一个或多个实施例,界面包括“提交报批”图标,该图标如所示那样不能被选择,因为要求关于应用程序的更多信息。最后,在任何时刻,开发人员可以选择“取消”(960)提交过程。根据本发明的一个或多个实施例,取消提交过程导致丢失已经关于应用程序输入的任何信息。

图10示出跟随图9的界面,在该界面,开发人员可以上载与应用程序相对应的图像。在这个例子中,在图9中示出的界面中存在的一些项保留在图10中,这些项包括打开商店视图(940)、保存草稿(945)、下一步(950)、提交报批(955)、以及取消(960)。另外,根据本发明的一个或多个实施例,界面现在包括“上一步”按钮(1005),该“上一步”按钮(1005)当被选中时,允许开发人员返回到图9中示出的界面。

在这个例子中,向开发人员提供上载与应用程序相对应的多个图像的机制。这些机制包括目录图标(1010)、展示图标(1015)、详细页面图像(1025)、桌面图标(1020)、溅射图像(1030)、及多个截屏(1035A-1035N)。根据本发明的一个或多个实施例,开发人员可以在这时提交应用程序,或者可以在提交应用程序之前,在用户界面的另一个页面处继续包括关于应用程序的更多细节。

图11示出跟随图10的界面,该界面便于将应用程序发送到仓库。同样,如图9和10所示,界面的这个页面也包括来自界面的先前页面的一定项,这些项包括打开商店视图(940)、保存草稿(945)、上一步(1005)、下一步(950)、提交报批(955)、以及取消(960)。在界面的这个页面中,开发人员可以输入应用程序ID(1110)(即,识别应用程序的单独字母、单独数字、或字母-数字序列)、版本号(1115)(即,识别应用程序版本的单独字母、单独数字、或字母-数字序列)、及版本描述(1120)(即,应用程序的特定版本的描述)。开发人员发送到仓库的应用程序可以是先前提交的应用程序的更新版本。界面的这个页面允许开发人员包括关于当前应用程序与先前提交的应用程序的关系的重要信息,使得将在仓库中进行连接。例如,先前提交的应用程序可由同一个应用程序号(但用不同版本号)识别,并且通过将这种信息提供给仓库来进行这种连接。图11还允许开发人员规定要求哪个JRE版本(1125)、以及规定关于Java沙箱的信息(1130)(即,当应用程序在Java沙箱内执行时,Java沙箱应当与什么许可相关联)。

在发布应用程序后,开发人员可能希望检查和/或编辑关于应用程序的信息,和/或编辑应用程序本身。例如,如果新版本简单地是为了解决在应用程序的先前版本的执行期间产生的关于JAR的问题,则开发人员可能希望向应用程序的新版本提供原始应用信息。根据本发明的一个或多个实施例,仓库可以提供与在图9-11中示出的那些相似的界面,以允许开发人员检查关于他们已经提交(或要提交)的应用程序的信息。图12示出了根据本发明一个或多个实施例的界面,该界面允许开发人员看到已经提交给仓库的全部应用程序(1205)、以及应用程序的最新版本的状态(1210)。根据本发明的一个或多个实施例,这包括已经发布的应用程序、以及仅仅已经提交或批准的那些应用程序。另外,这个界面可以包括还未被提交的应用程序。换句话说,该界面允许开发人员观看处理中的全部阶段的应用程序。另外,该界面允许开发人员选择创建新的应用程序(1215)、或显示发布的应用程序的统计数字(1220)。根据本发明的一个或多个实施例,开发人员也可以观看来自应用程序的检查员的检查内容。例如,检查员可能要求开发人员确定关于应用程序的各种问题,这些问题包括但不限于在应用程序中使用的图标、应用程序的描述、应用程序中的编码问题、等等。根据本发明的一个或多个实施例,检查内容可以是交互的(例如,可能要求开发人员回答关于正在检查的应用程序的问题)。

图13示出了允许开发人员观看关于发布的应用程序的统计数字的界面。根据本发明的一个或多个实施例,统计数字实时地呈现,并且随着用户使用应用程序而更新。明确地说,在图13中示出的界面的这个页面表明了与提交的应用程序有关的用户活动的曲线图。根据本发明的一个或多个实施例,该界面允许开发人员打开存储视图(1305)(即,观看应用程序,如它在入口中被发现的那样)。界面还允许开发人员撤回应用程序(1310),使得它不再可被用户访问,或者返回到应用程序的列表(1315)(即,如图12所示的应用程序的列表)。

如以上解释的那样,仓库收集关于应用程序的使用的信息,并且生成关于该数据的统计数字和图表。在这个例子中,该界面允许用户看到关于计数滴答(即,事件发生的次数)和日期滴答(即,记录计数滴答的日期)的两维曲线图(1325)的信息。这个例子包括对于应用程序的全部版本,关于全部事件(1320)的信息。这些包括正面事件,如详细观看(即,用户已经请求观看关于应用程序的详细信息的次数)、预览(即,用户已经预览应用程序的次数)、安装(即,用户已经安装应用程序的次数)、以及运行次数(即,用户已经运行应用程序的次数)。界面还包括关于负面事件的信息,这些负面事件包括失败的安装(即,用户已经尝试安装应用程序,且未能安装应用程序的次数)、重新安装(即,用户在第一次之后已经安装应用程序的次数)、崩溃(即,应用程序已经到达不可恢复的错误状态的次数)、以及除去(即,用户已经卸载应用程序的次数)。另外,该界面允许开发人员基于应用程序的版本(1320)来观看关于应用程序的统计数字。

图14示出了界面的另一个页面,其中,开发人员可以更新应用程序。明确地说,图14示出这样一种界面,该界面允许开发人员提交应用程序的新版本以便批准。在图14中示出的界面包括与在图12-13中示出的那些相似的选项,这些选项包括打开存储视图(1305)的选项、和返回到应用程序的列表(1315)的选项。在这个例子中,界面允许开发人员输入版本号(1415)和版本描述(1420)、以及上载用于应用程序的新版本的JAR文件(1425)、上载应用程序的新版本的预览(1430)、以及输入帮助页面URL(1435)的功能。尽管未示出,这个界面还可以包括关于应用程序的先前发布版本的信息,并且允许开发人员在仓库上撤回那些版本而不可用于用户(1455)(排除开发人员-他保持对版本的访问)。根据本发明的一个或多个实施例,这个界面可以示出关于应用程序的信息,这些应用程序已经由于消费者抱怨而被隔离。

在本发明的一个实施例中,使由开发人员提交并由仓库发布的应用程序可用于用户。根据本发明的一个或多个实施例,通过内容传送服务(即,Java商店界面)使应用程序可用于用户。图15-20表明了可用于用户以便在仓库中检索应用程序的几个界面。

图15示出了Java商店界面的概况。如图所示,该界面允许用户通过部门(1505)来选择应用程序。根据本发明的一个或多个实施例,应用程序所处的部门由开发人员已赋予的类别来确定。而且,该界面可包括在Java商店内受欢迎的应用程序(即,“顶级应用程序”)的列表(1515)、以及用户最近已经观看的那些应用程序(1520)。根据本发明的一个或多个实施例,用户可具有账户(1530),该账户(1530)跟踪和存储关于用户在商店内的活动的信息。另外,该界面允许用户观看他或她已经购买的应用程序(1525)(即,如图12所示)。

根据本发明的一个或多个实施例,Java商店可以包括用于浏览应用程序的其它选项(1510)。在示出的例子中,这些选项包括“最新(What’s New)”、“顶级社交应用程序(Top Social Apps)”、“我们的挑选(Our Picks)”、“今天流行(Popular Today)”以及“顶级品牌(Top Brands)”。根据本发明的一个或多个实施例,选择标题为“最新”的图标向用户提供专用于最新发布的应用程序的页面。根据本发明的一个或多个实施例,用户也可以从最经常预览的应用程序中选择。根据本发明的一个或多个实施例,选择“顶级社交应用程序”向用户提供指向已被特征化为“社交网络”应用程序的应用程序的页面(即,社交网络类别由开发人员选择,或者应用程序在社交网络部门中找到)。根据本发明的一个或多个实施例,选择“我们的挑选”向用户提供专用于由Java商店的管理人员或Java商店团体的其它成员选择的应用程序的页面。根据本发明的一个或多个实施例,选择“今天流行”向用户提供专用于当天被使用最多的应用程序的页面。根据本发明的一个或多个实施例,选择“顶级品牌”向用户提供专用于由最受欢迎的开发人员(即,其应用程序被使用最多的开发人员)提供的应用程序的页面。

图16示出了当用户已经从图15的界面中选择了“今天流行”时提供给用户的界面。相应地,该界面现在示出来自类别“今天流行”的应用程序的选择(1610)。而且,根据本发明的一个或多个实施例,在图16中的具体截屏示出了其中用户已把光标放置在用于“Blocko”应用程序的图标上的界面。根据本发明的一个或多个实施例,当用户把光标放置在具体应用程序上时,关于该应用程序的细节(1615)可出现在屏幕上。如上所述,这些细节可由开发人员在提交应用程序时输入。

图17示出了其中用户已经浏览部门的界面。根据本发明的一个或多个实施例,用户可把光标放置在浏览时感兴趣的部门上,这提供了类别和子类别的分级列表(1705)。例如,当用户把光标放置在词“游戏”上时,游戏类型的列表出现在用户界面中作为“游戏”的子类别。当用户把光标放置在子类别之一(即,“体育”)上时,另一个列表出现(即,体育的子类别)。尽管未示出,但分级列表可以包括应用程序以及类别。在这个例子中,用户已经选择了作为体育和游戏的子类别的棒球。

图18示出了当选择了棒球时可向用户呈现的一个界面。在这个例子中,向用户呈现用于浏览棒球-有关应用程序的几种方法。这些包括“特色应用程序”(1805)、“最流行”(1810)、以及“顶级挑选”(1815)。另外,可向用户呈现过滤器(1820),该过滤器(1820)允许用户减少可用应用程序的数量。图19示出了当用户选择观看“全部结果”(1905)时向他或她呈现的界面。该界面向用户提供了关于应用程序的基本信息(即,不是关于由开发人员提供的应用程序的全部信息)。在这个例子中,示出的信息包括图标(1910)、应用程序标题(1915)、应用程序的评级(1920)、以及应用程序的价格(1925)。根据本发明的一个或多个实施例,在这个界面中显示的内容可取决于用户而变化。例如,可向高级用户提供比标准用户多的信息。

图20示出了提供关于选择的应用程序的详细信息的界面。明确地说,在这个例子中,用户已经选择了“棒球’09”应用程序(2005)。这时,该界面显示发布该应用程序的公司(2010)、应用程序的发行日期(2015)、以及应用程序所属的类别(2020)。而且,该界面包括应用程序的概况(2025)。根据本发明的一个或多个实施例,在应用程序的概况中发现的文本可以包括由开发人员作为“详细信息”输入的信息。而且,该界面示出了应用程序的图像(2030),并且为用户提供预览应用程序(2034)或者购买应用程序(2040)的功能。根据本发明的一个或多个实施例,这个界面还可以包括开发人员信息。明确地说,这个界面可以包括关于同一开发人员的其它应用程序的信息。

本发明的实施例实际上可以在任何类型的计算机上实施,而与使用的平台无关。例如,如图21所示,计算机系统(2100)包括一个或多个处理器(2102)、相关存储器(2104)(例如,随机存取存储器(RAM)、高速缓冲存储器、闪存、等等)、存储设备(2106)(例如,硬盘、诸如紧致盘驱动器或数字视频盘(DVD)驱动器的光学驱动器、闪存棒、等等)、以及当今计算机典型的多个其它元件和功能(未示出)。计算机(2100)还可以包括输入装置,诸如键盘(2108)、鼠标(2110)、或麦克风(未示出)。而且,计算机(2100)可以包括输出装置,如监视器(2112)(例如,液晶显示器(LCD)、等离子显示器、或阴极射线管(CRT)监视器)。计算机系统(2100)可以经网络接口连接(未示出)连接到网络(2114)(例如,局域网(LAN)、诸如互联网之类的广域网(WAN)、或任何其它相似类型的网络)上。本领域的技术人员将认识到,多种不同类型的计算机系统存在,并且以上提到的输入和输出装置可以采取其它形式。例如,计算机系统(2100)可以是具有多个刀片的服务器系统。一般而言,计算机系统(2100)至少包括实践本发明的实施例所必需的最少的处理、输入和/或输出装置。

完成本发明的实施例的计算机可读代码可以存储在计算机可读介质上,如在紧致盘(CD)、软盘、磁带、物理存储器、或任何其它物理计算机可读存储介质上,该物理计算机可读存储介质包括存储计算机可读程序代码以完成本发明实施例的功能。在本发明的一个实施例中,计算机可读程序代码当由处理器执行时,配置成完成本发明的实施例。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1