CN103207793B - 链接预安装的软件与在线商店的用户帐户的系统和方法 - Google Patents

链接预安装的软件与在线商店的用户帐户的系统和方法 Download PDF

Info

Publication number
CN103207793B
CN103207793B CN201210241398.9A CN201210241398A CN103207793B CN 103207793 B CN103207793 B CN 103207793B CN 201210241398 A CN201210241398 A CN 201210241398A CN 103207793 B CN103207793 B CN 103207793B
Authority
CN
China
Prior art keywords
application
user account
client terminal
server
terminal device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210241398.9A
Other languages
English (en)
Other versions
CN103207793A (zh
Inventor
P·R·帕德普什
C·M·费得里吉
D·I·费德曼
G·T·奎克
J·R·马修
J·力-康
J-P·西大德
M·E·格洛梅克
T·K·布克霍德
D·E·普
S·贾拉巴丽
E·M·维罗苏比
Y·S·黄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Computer Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US13/181,424 external-priority patent/US9319406B2/en
Priority claimed from US13/436,609 external-priority patent/US20130019237A1/en
Application filed by Apple Computer Inc filed Critical Apple Computer Inc
Priority to CN201610704211.2A priority Critical patent/CN106096456B/zh
Publication of CN103207793A publication Critical patent/CN103207793A/zh
Application granted granted Critical
Publication of CN103207793B publication Critical patent/CN103207793B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0609Buyer or seller confidence or verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/128Restricting unauthorised execution of programs involving web programs, i.e. using technology especially used in internet, generally interacting with a web browser, e.g. hypertext markup language [HTML], applets, java
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6272Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database by registering files or documents with a third party
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3672Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes initialising or reloading thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • G06Q50/40
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2117User registration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Abstract

本公开涉及链接预安装的软件与在线商店的用户帐户的系统和方法。公开了将用于安装在计算机上的应用与在线商店上的用户帐户相关联的系统、方法和非暂时性计算机可读存储介质。被配置为实施该方法的系统给出可用于下载的应用、从客户端装置接收包括与用户帐户相关联的标识符和与软件包或用户帐户相关联的权利证据的软件认领请求,通过比较权利证据与数据库来验证该权利证据,并且,如果权利证据被验证,则认领软件包作为用户帐户的一部分。

Description

链接预安装的软件与在线商店的用户帐户的系统和方法
相关申请的交叉引用
本申请是在2011年7月12日提交的发明名称为SYSTEMANDMETHODFORLINKINGPRE-INSTALLEDSOFTWARETOAUSERACCOUNTONANONLINESTORE的美国专利申请No.13/181,424的部分继续;本申请也是在2011年9月29日提交的发明名称为SYSTEMANDMETHODFORLINKINGPRE-INSTALLEDSOFTWARETOAUSERACCOUNTONANONLINESTORE的美国专利申请No.13/248,942的部分继续;本申请还要求2012年2月9日提交的发明名称为SYSTEMANDMETHODFORLINKINGPRE-INSTALLEDSOFTWARETOAUSERACCOUNTONANONLINESTORE的美国临时专利申请No.61/596,928的优先权;它们的全部内容通过引用结合于此。
技术领域
本公开一般涉及数字产品的分发,更特别地,涉及用于链接软件应用与在线商店上的用户帐户的技术。
背景技术
电子装置的制造商常常向顾客提供各种可用的选项以在购买之前个性化和定制电子装置。例如,可通过选择处理器、存储器、硬盘驱动器或附件来定制诸如计算机的个人计算装置。制造商还与各种软件卖主协作以提供可连同计算机一起被购买并在顾客提取计算机之前被预安装的软件应用或程序。例如,一般由制造商创作但也可包括第三方应用的一些软件应用可以以手动的方式或者作为缺省工厂映像(image)的一部分被免费预安装在计算装置上。因此,硬件部件和预安装的软件可由顾客进行个性化,以确保购买的产品满足顾客的要求。
在顾客接收到电子装置之后,顾客可能将来有时希望重新安装或更新预安装的软件。例如,软件提供者可能已发行预安装于电子装置上的软件的更新版本。这一般被称为软件更新。为了获得软件更新,顾客访问软件提供者的实体商店或在线商店,并且购买或获取软件的更新版本。但是,该过程是耗时的并且有时令人糊涂。类似地,当购买者将电子装置的存储器重新格式化时,购买者一般必须重新安装软件。在重新安装时,会提示购买者提供各种光盘(CD)或包含预安装的软件的其它介质。但是,购买者可能会放错CD,由此使得重新安装过程相当麻烦。
发明内容
将在以下的描述中阐述本公开的附加的特征和优点,从描述,这些特征和优点将部分地变得明显,或者可通过实践这里公开的原理而掌握这些特征和优点。可通过特别在所附的权利要求中指出的手段和组合实现和获得本公开的特征和优点。从以下的描述和所附的权利要求,本公开的这些和其它特征将变得更加明显,或者,可以通过实践这里阐述的原理而掌握这些特征。
公开的是用于使应用(即,软件包)、预安装的应用或单独购买的应用与用户帐户相关联的系统、方法和非暂时性计算机可读存储介质。用户帐户可被关联或被存储于在线商店。该过程可被称为认领(adoption)。认领可向用户帐户提供某些特权,诸如应用的下载、重新下载和更新。在其它的例子中,认领可配置用户帐户以允许关于所认领的应用的其它特权,诸如赠送所认领的应用或出售所认领的应用。在一种常见的情况中,新的计算机包括某些预安装的软件。用户可运行并使用新计算机上的预安装的软件。但是,为了接收和/或有资格进行更新、备份和/或其它软件相关联的内容或服务,用户可“认领”预安装的软件。通过认领预安装的软件,预安装的软件与特定的用户帐户(诸如在线电子商店帐户)相关联。然后,在线电子商店可处理更新、备份、恢复、应用内购买(in-applicationpurchase)等。但是,用户可能决定使用预安装的软件,而不“认领”具有完全功能的预安装的软件——除了依赖于用户帐户或对于在线电子商店帐户的访问的特征。当用户认领预安装的软件时,在线电子商店可修改帐户、数据库和/或软件自身,使得该预安装的软件没有资格被另一用户认领。在另一常见的情况中,已被购买、赠送或通过其它方式被用户获取的软件包或应用被安装于用户的计算装置上。计算装置可向服务器发送软件认领请求,以通过用户帐户认领软件包或应用。软件认领请求可包括对于软件包的指示和与用户帐户相关联的标识符。在一些例子中,还在认领请求中包括权利证据作为软件包的真实性(authenticity)的证据。权利证据可以是可仅从软件包的占有导出的值。例如,权利证据可与软件包的序列号相关联或从中导出。权利证据也可以是可从软件包和与电子装置相关联的元数据导出的值。例如,与电子装置相关联的元数据可以是可从与电子装置相关联的硬件导出的值。一旦应用被认领,对于用户来说,更新、备份和/或其它软件相关的内容或服务就是可用的。
被配置为实施该方法的系统给出可用于下载的应用,接收将应用下载到计算装置的请求,并且确定该应用是预安装的应用。然后,系统给出被配置为请求用户授权以链接应用与用户帐户的授权提示,接收用户授权,并且,响应于接收到用户授权,产生唯一硬件标识符或检索与计算装置相关联的权利证据。系统基于该唯一硬件标识符或权利证据确定该应用是可链接的,并且,当可认领的应用可链接时,将该可认领的应用与用户帐户链接。系统可通过接收对于更新页面的请求并响应于接收到该请求而收集与应用相关联的存根收据(stubreceipt),来给出可用于下载的应用。存根收据可包括与应用相关联的版本号和名称。然后,系统基于版本号和名称确定应用的更新在服务器上可用于下载,并且给出应用的名称。
作为替代方案,系统可通过接收对于购买页面的请求、接收与计算装置相关联的清单并基于清单呈现预安装的应用的列表,来给出可用于下载的应用。清单可包括可用于从服务器下载的预安装的应用的列表,这里,预安装的应用的列表包括该应用。系统可通过搜索应用数据库并比较存储于计算装置上的该应用的版本号与存储于应用数据库上的该应用的版本号,来确定该应用在服务器上具有可用的更新。基于版本号的比较,可确定在应用数据库上是否存在对于应用的更新。系统可通过确定应用与存根收据相关联而确定该应用是预安装的应用。系统可通过接收与计算装置相关联的包括预安装的应用的列表的清单并确定该应用包括于预安装的应用的列表内,来确定该应用是预安装的应用。系统可通过将唯一硬件标识符或购买证据发送给服务器并确定该预安装的应用是否与另一用户帐户链接,来确定该预安装的应用是可链接的。在另外的例子中,系统通过使预安装的应用与用户帐户相关联,并更新唯一性表以包括该唯一硬件标识符或购买证据,来将该预安装的应用与用户帐户链接。唯一性表可包括与具有另一预安装的应用的另一电子装置相关联的另一唯一硬件标识符或购买证据,并且,该另一预安装的应用可与另一用户帐户相链接。
在另一种变型中,系统接收对于链接预安装的应用与在线商店上的用户帐户的请求,该在线商店被配置为向与用户帐户相关联的一个或多个计算装置发送与该用户帐户相关联的应用。然后,系统产生与计算装置相关联的唯一硬件标识符或购买证据,并且基于该唯一硬件标识符或购买证据确定该预安装的应用是可链接的。当该预安装的应用是可链接的时,系统链接该预安装的应用与该用户帐户。唯一硬件标识符可基于电子装置的一个或多个硬件部件,诸如MAC地址、通用装置标识符(UDID)、逻辑板序列号、或以太网硬件地址。在其它的例子中,可以使用购买证据。购买证据可基于电子装置的硬件部件,与应用的赠送、购买或获取相关联的元数据。确定预安装应用是可链接的可包括向服务器发送唯一硬件标识符或购买证据并确定预安装的应用或购买证据是否已经与另一用户帐户相链接。系统可通过确定计算装置的原始配置包括该预安装的应用,来确定该预安装的应用是可链接的。链接预安装的应用与用户帐户可包括:将预安装的应用与用户帐户相关联、更新唯一性表以包括唯一硬件标识符或购买证据,该唯一性表包括与具有另一预安装的应用的另一电子装置相关联的另一唯一硬件标识符或购买证据,该另一预安装的应用已与另一用户帐户链接。在又一例子中,链接预安装的应用与用户帐户还包括从清单中去除与该预安装的应用相关联的元数据,该清单被配置为列出尚未与用户帐户链接的预安装的应用。系统可将该预安装的应用下载到计算装置。
附图说明
为了描述可以获得本公开的上述和其它优点和特征的方式,将参照在附图中示出的具体实施例给出以上简要描述的原理的更特定的描述。应当理解,这些附图仅示出本公开的示例性实施例,因此不应视为其范围的限制,通过使用附图以附加的特征和细节描述和解释这里的原理,其中:
图1示出示例性的系统实施例;
图2示出示例性的应用分发系统;
图3示出示例性的客户端-服务器系统;
图4示出用于处理更新页面请求的示例性的方法;
图5示出与更新页面请求相关联的HTML页面的例子;
图6示出请求用户授权认领预安装的应用的HTML页面的例子;
图7示出请求用户授权认领预安装的应用的HTML页面的另一例子;
图8示出用于处理购买页面请求的示例性的方法;
图9示出当用户未登录时与购买页面请求相关联的HTML页面的例子;
图10示出当用户已登录时与购买页面请求相关联的HTML页面的另一例子;
图11示出与包括授权提示的购买页面请求相关联的HTML页面的另一例子;
图12示出用于链接预安装的应用与用户帐户的示例性的方法;
图13示出认领警告的例子;
图14示出认领警告的另一例子;
图15示出用于电子装置上的恢复模式的示例性的处理;以及
图16是根据本发明的一些实施例的服务器的示例性功能框图。
具体实施方式
以下详细描述本公开的各种实施例。虽然讨论了特定的实现,但是,应当理解,这仅出于解释性的目的。本领域技术人员可以认识到,在不背离本公开的精神和范围的情况下,可以使用其它的部件和配置。
本公开针对本领域中对于使电子装置上的预安装的软件与分发中心或在线商店上的用户帐户相关联的需要。本公开还针对本领域中对于使预安装的软件以外的其它类型的软件与用户帐户相关联的需要。例如,购买的软件、作为礼物接收的软件、从软件制造商免费或以额定费用分发的软件、或使用其它方法获取的软件可与在线商店或店铺上的用户帐户相关联。该过程可被称为由在线商店中的用户帐户对软件进行“认领”。通过使软件与在线商店上的用户帐户相关联,可从在线商店下载软件更新和重新安装,由此提供更简单、更方便的管理电子装置上的软件的方式。并且,与该用户帐户相关联的其它计算装置也可从在线商店接收软件更新和重新安装。图1-15中的以下的描述适用于预安装的应用、软件包和通过其它方式获取的(诸如赠送的、购买的或以其它的方式分发或获取的)应用。因而,这里使用的术语“预安装的应用”可以与赠送的应用、购买的应用、分发的应用、获取的应用等互换使用。换句话说,“预安装的应用”可以是用户具有所有权的任何应用。类似地,“唯一硬件标识符”可以是被配置为为安装于计算装置上的应用提供购买证据或所有权的任何唯一标识符。例如,购买证据可以是所创建的每个该应用的拷贝所特有的值。购买证据也可以是用于兑换应用的兑换代码。在其它的例子中,购买证据可以是唯一值与不唯一值的组合,诸如将兑换代码(可能不唯一)与跟用户帐户相关联的唯一标识符(这是唯一的)进行组合。在图1中示出可用于实施这些概念的基本通用系统或计算装置的简要导引描述。然后阐述的是预安装的软件如何与用户帐户相关联的更详细的描述,包括作为各种实施例的几种变型。本公开现在转到图1。
参照图1,示例性的系统100包括通用计算装置100,该计算装置100包括处理单元(CPU或处理器)120和将包括诸如只读存储器(ROM)140和随机存取存储器(RAM)150的系统存储器130在内的各种系统部件耦合到处理器120的系统总线110。系统10可包括直接与处理器120连接、接近处理器120、或者作为处理器120的一部分被集成的高速存储器的高速缓存122。系统100将数据从存储器130和/或存储装置160复制到高速缓存122,以供处理器120快速存取。以这种方式,高速缓存提供性能提升,其避免处理器120在等待数据时延迟。这些和其它的模块可控制或被配置为控制处理器120以执行各种动作。其它的系统存储器130可能也是可用的。存储器130可包括具有不同的性能特性的多种不同类型的存储器。可以理解,本公开可工作在具有多于一个的处理器120的计算装置100上或被联网在一起的计算装置群组或集群上,以提供更强的处理能力。处理器120可包括任何通用处理器和硬件模块或软件模块,诸如存储于存储装置160中的模块1162、模块2164和模块3166,其被配置为控制处理器120以及软件指令被结合到实际处理器设计中的专用处理器。处理器120本质上可以是包含多个芯或处理器、总线、存储器控制器、高速缓存等的完全自包含的计算系统。多芯处理器可以是对称的或不对称的。
系统总线110可以是几种类型的总线结构中的任一种,包括使用各种总线构架中的任一种的存储器总线或存储器控制器、外设总线、和局部总线。存储于ROM140等中的基本输入/输出(BIOS)可提供帮助诸如在启动过程中在计算装置100内的元件之间传送信息的基本程序。计算装置100还包括诸如硬盘驱动器、磁盘驱动器、光盘驱动器或磁带驱动器等的存储装置160。存储装置160可包括用于控制处理器120的软件模块162、164、166。可以设想其它的硬件或软件模块。存储装置160通过驱动器接口与系统总线110连接。驱动器和相关联的计算机可读存储介质提供用于计算装置100的计算机可读指令、数据结构、程序模块和其它数据的非易失性存储。在一个方面中,执行特定功能的硬件模块包括存储于非暂时计算机可读介质中的与诸如处理器120、总线110、显示器170等执行该功能所必需的硬件部件相关联的软件部件。基本部件是本领域技术人员所知道的,并且,根据装置的类型,诸如装置100是小型手持的计算装置、桌上型计算机还是计算机服务器,可以设想适当的变型。
虽然这里描述的示例性实施例使用硬盘160,但是,本领域技术人员可以理解,在示例性的操作环境中,也可使用可存储可被计算机访问的数据的其它类型的计算机可读介质,诸如盒式磁带、闪存卡、数字万用盘、编码磁带、随机存取存储器(RAM)150、只读存储器(ROM)140、包含位流的线缆或无线信号,等等。非暂时计算机可读存储介质明确地排除诸如能量、载波信号、电磁波和信号本身之类的介质。
为了使得用户能够与计算装置100交互,输入装置190代表任意数量的输入机构,诸如用于语音的麦克风、用于手势或图形输入的触摸敏感屏、键盘、鼠标、运动输入、语音,等等。输出装置170也可以是本领域技术人员已知的大量输出机构中的一个或多个。在一些实例中,多模式系统使得用户能够提供多种类型的输入以与计算装置100通信。通信接口180通常掌握和管理用户输入和系统输出。对于在任何特定的硬件配置上操作没有限制,因此,可很容易地用开发出的改进的硬件或固件配置代替这里的基本特征。
为了使得解释变得清楚,解释性的系统实施例被给出为包括各个单独的功能块,包括标为“处理器”或处理器120的功能块。可通过使用共享或专用的硬件,包括但不限于能够执行软件的硬件和被有意构建为作为在通用处理器上执行的软件的等同物而工作的硬件(诸如处理器120),来提供这些块所代表的功能。例如,可通过单个共享的处理器或多个处理器提供图1给出的一个或多个处理器的功能。(术语“处理器”的使用不应被解释为专门指的是能够执行软件的硬件。)解释性的实施例可包括微处理器和/或数字信号处理器(DSP)硬件、用于存储执行以下讨论的操作的软件的只读存储器(ROM)140、和用于存储结果的随机存取存储器(RAM)150。也可设置超大规模集成电路(VLSI)硬件实施例以及与通用DSP电路组合的定制的VLSI电路。
各种实施例的逻辑操作被实现为:(1)在通用计算机内的可编程电路上运行的一系列计算机实现的步骤、操作或过程;(2)在特定用途可编程电路上运行的一系列计算机实现的步骤、操作或过程;和/或(3)可编程电路内的互连的机器模块或程序引擎。图1所示的系统100可实施所记载的方法的全部或一部分,可以是所记载的系统的一部分,和/或可以根据所记载的非暂时计算机可读存储介质中的指令而操作。这些逻辑操作可被实现为被配置为控制处理器120以根据模块的编程执行特定的功能的模块。例如,图1示出作为被配置为控制处理器120的模块的三个模块Mod1161、Mod2164和Mod3166。这些模块可被存储于存储装置160上,并且在运行时被加载到RAM150或存储器130中,或者可如本领域已知的那样被存储于其它的计算机可读存储器位置。
已公开了计算系统的一些部件,本公开现在返回用于将诸如个人计算机、膝上型计算机、游戏控制器、智能电话、移动电话或平板PC等计算装置上的预安装的软件与在线应用分发商店或市场中的用户帐户进行关联(类似于链接或认领)的技术的讨论。这里阐述的方法可通过链接预安装的软件与诸如在线商店或分发中心的在线分发站点上的用户帐户,来改善将预安装的软件升级或重新安装到计算装置上的效率和便利性。在线分发站点将与用户帐户相关联的预安装软件发送到与该用户帐户链接的一个或多个计算装置。预安装的软件和该预安装的软件的更新均可被发送到该一个或多个计算装置。在一些例子中,分发站点可规定对于与可接收与给定用户帐户相关联的软件的、与该给定用户帐户相关联的计算装置的数量的限制。在其它的例子中,预安装的软件是一次产生并被复制到一组装置中的每一个装置的标准“映像”的一部分。例如,标准装置“映像”可包括操作系统、驱动程序、程序、设置等。因此,每个被映像的装置具有相同的软件配置,包括预安装的软件,并且,在最终用户(或其它的实体)设置了装置之后,预安装的软件可被认领并且与在线商店或市场中的用户帐户相关联。
图2示出示例性的应用分发系统。在本例子中,分发系统200包括分发中心210、应用数据库220、配置服务器230、因特网250或其它的网络、计算装置260、计算装置270和便携式装置280。分发中心210、应用数据库220和配置服务器230一起可代表客户端-服务器模型的服务器侧240的不同的独立的部件。类似地,计算装置260、计算装置270和便携式装置280可代表客户端-服务器模型的客户端侧290的不同的独立的部件。因此,分发系统200的宽泛概览包括服务器侧240通过因特网250与客户端侧290通信。作为例子,服务器侧240对于用户可表现为用于应用的销售和分发的在线商店或多个云服务器。来自客户端侧290的装置可使用存储于装置上的应用管理计算机程序与在线商店通信。在其它的例子中,因特网250可被诸如计算机网络、电话网络、以太网、局域网、有线网络和无线网络等的其它通信网络替代。
计算装置260可包括应用261。应用261可包括已预安装于计算装置260上的、作为套装的一部分被提供的、或者提供了其某种类型的安装介质的应用。在一种常见的情况中,计算装置260的所有者从制造商购买已安装了这些应用的计算装置260。应用261还可包括通过其它手段由计算装置260获取了的应用(或软件包),举例而言,诸如被赠送、购买或自由分发的应用。应用261还可包括由计算装置260的用户从分发中心210购买了的应用。为了从分发中心210购买所希望的应用,用户登录到用户帐户291,用户帐户291包含与用户已购买的应用相关联的元数据和与用于为交易所希望的应用向分发中心210进行支付的支付信息相关联的元数据。一旦登录,用户就可选择所希望的应用进行购买。当用户同意支付该应用的购买价格时,使用用户的支付信息以完成交易。一旦完成交易,所希望的应用就与用户帐户291相关联,由此允许用户下载所希望的应用以及所希望的应用的更新。与用户帐户291相关联的应用也可被更新或重新下载到与用户帐户291相关联的其它装置上。
在一些例子中,用户可具有不在该时间点使应用与用户帐户相关联的选项。例如,接收作为礼物的应用的用户可能不具有用户帐户,或者可能希望使应用与他的用户帐户相关联。在第一情况中,计算装置260可允许用户在不需要用户设置用户帐户的情况下安装该应用。如果用户希望在他拥有的其它电子装置上接收更新或安装应用,那么用户可选择用户帐户并将该应用与他的用户帐户相链接(即,认领)。在本例子中,计算装置260、计算装置270和便携式装置280均与用户帐户291相关联,因此被配置为接收已与用户帐户291相关联的所有应用的更新和重新下载。并且,便携式装置280可与计算装置270通信以在两个装置之间传送数字数据和应用。在一个例子中,计算装置270可被配置作为包含与用户帐户291相关联的所有应用的中心库,并将选择的应用传送到便携式装置280。在本说明书中,术语“应用”指的是由软件提供者提供的软件程序或应用的拷贝。在其它的例子中,除了初始预安装于计算装置上的软件应用和软件程序(诸如系统软件、企业软件、多媒体文件、视频文件、音频文件和图像文件)以外,其它的数字产品,诸如用户具有所有权的软件应用,也可与用户帐户291相关联并由分发中心210分发/重新分发。
与应用数据库220耦合的分发中心210被配置为出售、递送和保持来自应用数据库220的应用。应用数据库220可被配置为存储可用于从服务器侧240分发的应用中的一些或全部。可通过因特网250向客户端侧290的装置出售、更新和递送(即,发送)应用。因而,分发中心210代表应用的在线商店。例如,应用数据库220可从应用的分发中心210接收请求,并且,响应于该请求,向分发中心210发送所请求的应用,该分发中心210随后向请求的装置发送该应用。请求的应用可以是可用于购买的应用或先前与用户帐户相关联的应用(即,已被认领的单独获取或预安装的应用)。在其它的例子中,应用数据库220可直接向请求的装置发送所请求的应用。在另一些例子中,应用数据库220可驻留于客户端侧290,其中,服务器侧240可基于与用户帐户相关联的应用,准许访问应用数据库220的特定应用。
客户端侧290的装置可发送软件认领请求,以请求将装置上的预安装的应用或以其它方式获取但没有认领的应用与用户帐户相链接(即,关联或认领)。链接应用允许用户将该应用与用户帐户相关联,由此允许用户将应用下载到也与该相同用户帐户相关联的其它装置。该过程可被称为“链接”、“认领”或“关联”应用。例如,计算装置260可请求链接应用261中的应用与用户帐户291。可通过因特网250将该请求连同与应用或计算装置260相关联的唯一标识符(例如,唯一硬件标识符)发送到分发中心210,以确定该应用是否可与用户帐户291相关联。唯一硬件标识符是被用于区分特定的装置与所有其它的装置的基于装置的硬件的唯一标识符。例如,制造商可确保制造的每个装置包括特有的并因此与任何其它装置的唯一硬件标识符不同的唯一硬件标识符。作为例子,唯一硬件标识符可基于装置的逻辑板序列号和/或以太网硬件地址。在一个例子中,这两个值可以串接并混编(hash)以产生唯一硬件标识符。在其它例子中,可使用各种数据操作算法来串接、混编或以其它方式组合该装置所特有的其它元数据,以形成唯一硬件标识符。在其它的例子中,用于确定应用是否可与用户帐户291相关联的唯一标识符可基于可用作证明与唯一标识符相关联的应用(即,软件包)是合法地从软件制造商获取的证据的任何其它购买或权利证据。在一个实例中,可从与应用相关联的元数据或属性导出唯一标识符。在另一实例中,可从与应用、客户端装置、用户帐户、与该用户帐户相关联的其它客户端装置、或以上一个或多个的组合相关联的元数据来导出唯一标识符。
在一个实施例中,分发中心210接收唯一标识符,并且处理或分析该唯一标识符以确定应用是否可与用户帐户相关联。在某些情况中,应用不能与用户帐户相关联。例如,装置的应用可能不能与用户帐户相关联,如果该应用先前已与另一用户帐户相关联的话。作为另一例子,如果应用不是授权的拷贝,那么,该应用可能不能与用户帐户相关联。这可能在用户手动地将原始安装于一个装置上的应用复制到另一装置上时出现。作为又一例子,为了使得应用与用户帐户链接,关联过程可能要求用户登录到电子装置上的用户的帐户。
在另一实施例中,分发中心210接收唯一标识符,并且处理或分析该唯一标识符以确定应用是否可与用户帐户相关联。作为例子,处理唯一标识符可包括通过比较唯一标识符与数据库来验证唯一标识符。数据库可具有分别存储与应用的授权拷贝相关联的唯一标识符的多个条目。比较的结果可被用于确定应用的认领状态,诸如应用是否是有效的拷贝、应用是否是无效的拷贝、或者应用是否已与用户帐户关联。作为另一例子,处理唯一标识符可包括将唯一标识符输入到散列表(hashtable)中以确定应用的认领状态。在又一例子中,唯一标识符可被接收作为验证引擎的输入,该验证引擎确定应用的该安装是否是有效的并且还没有被认领。在其它的例子中,可以向唯一标识符应用其它的数据处理技术以确定应用是否可与用户帐户相关联。应用可能在最近由用户获取。换句话说,应用可能已经在从分发或制造方购买和接收电子装置之后由用户获取。作为替代方案,可在购买电子装置时获取应用。一旦已由分发中心210确定认领状态,就可向电子装置发送根据该认领状态的确认。该确认可被发送以向电子装置通知认领过程的状态。基于该确认,电子装置可请求下载软件包或软件包的更新。在其它的例子中,分发服务器210可根据认领状态自动地开始下载软件包或软件包的更新到电子装置的过程。
服务器侧240可加入大量的服务器和表以确定链接请求是否应被授权。例如,分发中心210包括被配置为处理唯一标识符以确定链接请求的有效性或合法性的唯一性服务器211。唯一性服务器211可包括被配置为保持数据库的唯一性表或已具有与用户帐户链接的一个或多个预安装的应用的电子装置的表。作为例子,唯一性表可被配置为存储已将其预安装的应用与用户帐户链接的装置(即,已认领与装置相关联的预安装的应用的装置)的唯一硬件标识符。唯一性表也可被配置为存储与已与用户帐户相关联的应用相关联的元数据。当装置以一用户帐户认领该装置的应用中的一些或全部(即,将二者链接)时,装置的唯一硬件标识符或认领的应用的唯一标识符被存储于唯一性表中。这防止将来的对于链接已认领的应用的请求。例如,执行唯一标识符是否处于唯一性表中的查询来确定与唯一硬件标识符相关联的装置是否已将其预安装的应用与用户帐户链接。类似地,该查询也可确定与唯一标识符相关联的应用是否已与用户帐户链接。作为另一例子,唯一性表可被配置为将电子装置的唯一硬件标识符连同与先前已认领(即,已与用户帐户链接)的电子装置的一个或多个预安装的应用相关联的元数据一起存储。换句话说,唯一性表被配置为装置的唯一硬件标识符与跟已选择性地认领的装置的预安装的应用相关联的一个或多个元数据之间的一对多映射。如果在唯一性表中不存在唯一硬件标识符,针对唯一硬件标识符查询唯一性表可以什么也不返回,而如果在唯一性表中存在唯一硬件标识符,那么可返回与已选择性地认领的预安装的应用相关联的元数据。这可使得能够选择性地以第一用户帐户认领装置上的某一预安装的应用,而以第二用户帐户认领装置上的另一预安装应用。在其它的例子中,唯一性表可被配置为保持已与用户帐户链接的应用的数据库或表。已链接的应用可具有存储于唯一性表中的唯一标识符,由此保持已认领的应用的最新数据库。
在一个例子中,配置服务器230可通过检查电子装置的原始配置来验证链接请求的有效性,以便验证或确定当装置离开制造商时特定的应用被预安装到了电子装置上。配置服务器还可验证或识别用户具有所有权的应用,不管应用是否已被安装于用户装置上或与用户帐户相关联。因此,也可识别用户具有所有权但还没有被关联或安装的应用。配置服务器230包括存储由制造商创建的电子装置的原始配置的数据库。原始配置可包括与电子装置一起交付的操作系统的版本和应用的版本(如果有的话)。例如,通过在线商店订购电子装置的用户可在购买时利用一个或多个应用来配置该装置。基于购买时的配置,制造方将应用安装于电子装置上。制造方将电子装置的配置告知配置服务器230,以供随后的查找。当配置服务器230从电子装置接收到包含唯一硬件标识符的查找请求时,配置服务器230在数据库上执行搜索或查询,并且返回安装于装置上的操作系统的版本和/或包含安装于电子装置上的应用的版本的列表。配置服务器230可比较已安装应用的列表与用户正在尝试与用户帐户相关联的应用,以确定用户正在尝试关联的应用是否是授权的安装或者先前已与另一用户帐户相关联。作为替代方案,配置服务器230可将预安装的应用的列表转送到分发中心210,以确定是否应准许该链接请求。该检查可防止用户尝试通过从一个装置复制预安装的应用到另一装置来回避分发系统200。
一旦服务器侧240的一个或多个元件证实了该链接请求,预安装的应用就与用户帐户相关联(即,应用认领)。并且,唯一性服务器211或配置服务器230可被更新以考虑到该应用认领。例如,由于已认领与电子装置相关联的预安装应用中的一些或全部,因此,可以将新的条目添加到唯一性服务器211的唯一性表中。在一些例子中,分发中心210可在预安装的应用与用户帐户相关联之后将预安装的应用的更新发送到计算装置260。在其它例子中,分发中心210可将预安装的应用发送到诸如计算装置270的与用户帐户相关联的其它装置,即使计算装置270原始没有配置该预安装的应用。通过对于应用认领的类似的请求,存储于应用271中的计算装置270的预安装的应用和存储于应用281中的便携式装置280的预安装的应用可与用户帐户291相关联,并最终被分发到计算装置260、计算装置270和/或便携式装置280。
图3示出示例性的客户端-服务器系统。客户端-服务器系统300包括客户端装置350和服务器360。服务器360可被配置为响应来自客户端装置350的请求,并且可包括来自图2的服务器侧240的一个或多个元件。客户端装置350可通过向服务器360提交页面请求来关联应用(预安装的或以其它方式获取的)与用户帐户。客户端装置350也可如预安装的应用的情况那样通过向服务器360提交相同或类似的页面请求来关联其它的应用与用户帐户。
一种类型的页面请求是更新页面请求301。更新页面请求301可以是被发送到服务器360以执行对可用的应用更新的查询的请求。响应于更新页面请求301,服务器360可返回超文本标记语言(“HTML”)页面303,其被配置为向用户通知存储于客户端装置350中的具有可用更新的应用。在一些例子中,服务器360可将元数据返回到客户端装置350,该客户端装置350又产生呈现给用户的HTML页面。更新页面请求301可包括针对存储于客户端装置350中的每个应用的数字收据。收据包含用于证明软件的购买或所有权的与应用有关的元数据。一种类型的收据是与购买的应用或已被认领的应用相关联的真实收据。真实收据可包括应用的描述、应用的版本号、什么时候购买的应用、与购买应用的人有关的信息、和与初始安装应用的装置有关的信息等。换句话说,真实收据是购买者和/或购买应用的电子装置特有的购买证据。另一种类型的收据是存根收据。存根收据包含真实收据中的信息的子集,并且是应用还没有通过用户帐户被认领时的应用的一部分。在一个例子中,存根收据唯一地识别应用的该拷贝以区别于其它拷贝。这可允许服务器确定是否可由用户认领应用的该特定拷贝(其可被赠送给用户或以其它方式由用户获取)。在另一例子中,存根收据作为与预安装的应用相关联的收据由制造商产生。为了加速和简化制造商对于应用的安装,存根收据可包括比真实收据少的最少量的信息。例如,存根收据可包括向服务器识别该应用的应用标识符以及识别应用版本的版本号。应用标识符可以是与应用相关联的名称。存根收据可能不包括特定于购买者的信息,诸如什么时候购买的应用,以及涉及是谁购买的应用或者在什么装置上安装了该预安装的应用的信息。换句话说,存根收据可能不包含用户帐户、用户帐户信息或涉及客户端装置、计算装置或其它装置的信息。应用标识符可以是与预安装的应用相关联的名称。在一些例子中,当应用在被预安装于装置上或者当装置在被准备交付时,存根收据由制造商产生。在其它的例子中,存根收据可由服务器260产生并随后被发送到客户端装置350以与预安装的应用相关联。服务器360可响应于客户端装置350的请求或服务器360和客户端装置350之间的周期性调度的通信而产生存根收据。一旦预安装的应用被认领,就可由真实收据替代存根收据。在另一例子中,产生存根收据,作为要与当获取应用时未与客户端装置相关联的所购买、赠送或以其它方式获取的应用相关联的收据。可由制造商、应用分发者或在线商店等产生该存根收据。在一些情况下,存根收据可被批处理并被指派给应用以供分发。存根收据被保存于服务器上并被用于鉴定认领请求。如在先前的例子中那样,在应用认领过程中,存根收据可被真实收据替代。可由客户端装置350、服务器360或客户端-服务器系统300中的其它元件产生真实收据。
在本例子中,更新页面请求301包括与预安装的应用310相关联的存根收据A311、与预安装的应用320相关联的存根收据B321和与应用330相关联的真实收据331。应用330是在购买客户端装置350之后从服务器360购买的,因此包括真实收据。响应于更新页面请求310,服务器360产生HTML303,其通知用户预安装的应用310、预安装的应用320或应用330是否具有可从服务器360下载的可用更新。在预安装的应用被认领到用户帐户之前,不能下载与没有被认领(即,没有与用户帐户链接或关联)的预安装的应用相关联的可用更新。一旦可用更新被下载并被安装到客户端装置350,存根收据就可被包括诸如什么时候购买的应用(即,安装可用的更新的日期)、购买它的用户和初始安装该应用的电子装置的其它元数据的真实收据所替代。
另一种类型的页面请求是购买页面请求302。购买页面请求302可被发送到服务器360,以请求已由客户端装置350的用户购买的应用的列表。响应于该请求,服务器360可返回HTML页面303,其被配置为通知用户已由客户端装置350的用户购买的应用以及——作为可选项——已被安装于客户端装置350中的应用。未存储于客户端装置350中的已购买的应用可被下载和安装。HTML页面303还可包括可用于认领(即,链接用户帐户或与其关联)的应用。可通过更新页面请求301或购买页面请求302来选择计算装置上的尚未与用户帐户相关联的应用以进行认领。未被认领的应用可在用于请求在计算装置上安装该应用或希望的应用的请求中发送收据或权利证据的其它形式。
购买页面请求302可包括清单340。清单340可被配置为存储与预安装的应用或以其它方式获取的应用相关联的信息。该信息可被服务器360使用以通知用户可用于认领的应用。清单340包括被配置为存储客户端装置350中的应用的版本号的列表、表或其它数据结构。可在存根收据或与应用相关联的其它的元数据中找到应用的版本号。在一个例子中,在客户端装置350第一次启动时产生清单340。例如,可通过利用客户端装置上的聚光(spotlight)(即,搜索)功能在计算机上搜索存根收据(其随后用于产生清单),来在客户端装置的第一启动期间产生清单。清单可被存储于配置服务器中以便在应用与用户帐户的链接期间或在电子装置的恢复模式期间被访问,如下面将讨论的那样。
在本例子中,客户端装置350被查询以定位随后用于产生清单340的存根收据311和存根收据321。在客户端装置350的重新格式化或恢复期间,预安装的和以其它方式获取的应用均可能从客户端装置350被删除。已与用户帐户链接的应用可被重新下载到客户端装置350。但是,未与用户帐户链接的预安装的应用存在完全丢失的风险。如后面进一步详细地描述的那样,清单340用作防止丢失没有被认领的应用的机制。在预安装的应用与用户帐户链接或关联之前,不能下载可用于认领的应用。一旦可用的更新被下载并被安装于客户端装置350上,清单340就可被编辑以移除与当前认领的应用相关联的存根收据。并且,已安装的应用包含真实收据。在一些例子中,通过安装于客户端装置350中的应用管理程序(未示出)来管理和操作更新页面请求301和购买页面请求302的产生以及HTML页面303的处理和检索。该应用管理程序可以是制造商专有的,并且可被配置为特别地与属于制造商的服务器通信。
客户端-服务器系统300也可认领由客户端装置350获取但不与用户帐户相关联的应用(例如,被赠送的、被购买但不与用户帐户链接的、或通过其它的手段被分发给客户端装置的)。作为例子,获取的应用可通过更新页面请求、购买页面请求或其它的页面请求与用户帐户链接。请求可包括存根收据或与存根收据相关联或从中导出的元数据。作为另一例子,清单340可在由客户端装置350获取未认领的应用(即,还没有与用户帐户链接的应用)时被更新。
图4示出用于处理更新页面请求的示例性的方法。示出由客户端和服务器执行的动作的方法400可被配置为管理更新页面请求期间客户端与服务器之间的通信。由服务器执行的动作可由存储于分发中心的分发程序或位于服务器侧的其它部件执行,而由客户端执行的动作可由存储于客户端的电子装置上的应用管理程序执行。方法400可从用户在由客户端装置提供的图形用户界面中选择更新标签链接开始。示例性的更新标签链接可以是图5中的链接451。一旦客户端接收了对于更新页面的用户请求(401),客户端就查询或搜索客户端装置关于与安装于客户端装置中的应用相关联的收据或权利证据的其它形式(403)。在其它的例子中,查询可以自动地开始而无需用户交互。例如,服务器可通过以预定的时间间隔或时间点与客户端通信来发起查询。可通过使用与客户端装置的操作系统相关联的功能或替代性地通过使用存储于客户端装置上的应用或程序来执行搜索。找到的收据或收据的拷贝被发送到服务器(405)。可在诸如以太网、互联网和局域网络等任何通信网络上传送收据。服务器接收收据并处理它们以确定与收据相关联的应用是否具有更新(407)。这可包括访问诸如图2中的应用数据库220的应用数据库以及比较收据的版本号与存储于应用数据库中的应用的版本号。这还可包括,通过确定安装于客户端装置上的应用被配置为由服务器分发,来验证该应用有资格被认领。在一些实施例中,服务器还可验证该应用在该时间点之前没有被认领,这可包括(从服务器或客户端)检索唯一地识别该已安装应用的拷贝的唯一标识符和验证该唯一标识符没有与任何用户帐户相关联的步骤。可在产生HTML页面(408)或操作诸如桌面应用或智能电话应用的一些其它用户界面时使用具有更新的应用的列表。HTML页面可包括与具有可用的更新的应用相关的信息。该信息可包括应用的原始购买日期、对应用的描述、和对更新的应用中的变化或修改的描述。HTML仅是可被发送到客户端以通知客户端一个或多个应用具有更新或可用于认领的通知的一个例子。服务器可然后将HTML页面发送到客户端(409)。在一些例子中,服务器可在客户端发送收据的相同信道上发送HTML页面。作为替换,服务器可以向客户端发送足以使客户端更新本地安装的客户端应用的信息,而不是预封装HTML页面并将其发送到客户端。
图5示出与针对已被认领的预安装的应用的更新页面请求相关联的或者与在线商店或市场中的用户帐户相关联的HTML页面的例子。HTML页面450包括可由用户选择以请求更新页面的更新链接451。更新链接451可位于菜单栏上,该菜单栏具有诸如“特色”、“畅销目录”、“类别”和“购买”的其它链接以提供使得用户便利快捷地访问应用管理程序的不同特征的方法。在一些例子中,代表更新链接451的图标可包括数字,其表明存储于客户端装置中具有可用更新的应用的数量。可在用户选择更新标签链接451之前通过服务器与客户端装置之间的周期性通信而产生图标中的该数字。
例如,客户端装置可周期性地与服务器通信,并检索具有可用更新的所存储应用的最新的版本号。在本例子中,更新链接451已被选择,并且,在HTML页面450内给出包括可用更新的一个应用。这一个应用被呈现为具有描述该应用的应用描述457。应用描述457可包括应用的名称、应用的作者、应用的版本号、应用的发行日期、或与应用相关联的其它信息。应用描述457还可包括提供应用的身份的图标455和在应用的该更新版本中实现的变化的概要459。这可向用户提供信息,使得用户可关于是否希望升级进行有根据的决定。如果用户希望接收应用更新,那么HTML页面450还包括可由用户选择的可选择链接461。在标题453处显示可用的更新的数量。标题453被配置为提供用户可迅速地确定可用的更新的数量的另一方便的位置。在一些例子中,HTML页面450还可包括在标题453旁边的用于更新具有可用更新的所有应用的可选择链接。
返回图4,客户端接收所发送的HTML页面并向用户呈现HTML页面(411)。如图5讨论的那样,HTML页面呈现图形用户界面,其列出具有可用的更新的应用、应用的描述、和可由用户选择以授权应用的更新的一个或多个链接。客户端可接收更新应用的用户授权(413)。如果用户授权已被接收,那么客户端可在应用可被更新之前确定应用是否需要认领(415)。这可包括检查安装于客户端上的应用的收据以确定该收据是否是存根收据。如果收据是存根收据,那么与存根收据相关联的应用是可能还没有被认领到用户帐户的预安装的应用。因此,需要用户授权,并且客户端可向用户呈现请求用户授权以将该应用认领或关联到用户帐户的HTML页面(417)。用户授权可涉及通过通信网络发送个人信息。出于隐私的原因,HTML页面通知用户,个人信息将在授权过程中被发送,并请求允许通过通信网络发送该个人信息。
图6示出请求用户授权以认领应用的HTML页面的例子,该应用可随着计算装置的购买被附带和/或预安装。HTML页面470是向用户呈现具有可用的更新的四个应用的更新页面。因而,更新链接471的图标包括数字“4”。在本例子中,用户通过“更新全部”链接475而选择了更新所有的应用。但是,在其它的例子中,用户也可通过更新链接476、477、478或479之一而选择更新单个应用。具有可用的更新的应用包括预安装的应用472和购买的应用473。在一些例子中,在该阶段,预安装的应用和购买的应用的呈现不存在区别。但是,一旦用户选择更新被预安装的或别的未与用户帐户链接的应用,HTML页面470就可向用户呈现提示480。在图7中更详细地描述提示480。
图7示出请求用户授权以认领应用的HTML页面的另一例子。当用户选择更新在计算机上被预安装了并且可能没有与用户帐户相关联的应用或者仅仅是更新没有与用户帐户相关联的所获取的应用时,向用户呈现提示480,其也被称为授权提示。在本例子中,提示480包括图标481、登录名482、密码483、密码帮助484、描述485、帮助链接486、帐户创建487、取消488和登录489。如果用户希望更新应用,那么描述485提供文本信息以通知用户在该电子装置上预安装(即,附带)的应用将与用户帐户相关联。描述485还可通知用户,为了认领应用,将向服务器发送与电子装置相关联的唯一硬件标识符以确定是否应授权该应用认领。可以使用图标481以标记该应用管理程序的应用更新功能。登录名482和密码483可规定用户希望与预安装的应用相关联的用户帐户。需要关于密码的帮助的用户可选择密码帮助484。一旦键入希望的用户帐户并且键入正确的密码,用户就可通过选择登录489开始认领过程。如果用户不具有用户帐户或者用户希望使预安装的应用与新的帐户相关联,那么用户可选择帐户创建487。如果用户希望取消并且不更新应用,那么用户可选择取消488。而如果用户希望关于上述的任何要素的更详细的描述,那么用户可选择帮助链接486。在HTML页面请求用户授权以关联没有预安装于电子装置上而是另外由电子装置获取的应用的其它例子中,描述485可被更改以向用户传达适当的消息。例如,描述485可陈述“要接收将来的更新,应用‘X’、‘Y’和‘Z’将被指定给该appleID。存储于您的计算机上的唯一标识符必须被发送到Apple以验证资格”。
返回图4,客户端可接收认领应用的用户授权(419)。可通过用户将用户帐户和密码键入如图7所示的由客户端给出的提示中来接收该用户授权。一旦用户授权被客户端接收,客户端就可继续认领应用(421)。以下在图12中描述认领应用到用户帐户的示例性的过程。在一些例子中,所有的预安装的应用必须同时与用户帐户相关联。因此,用户不能选择性地链接与电子装置相关联的一个预安装的应用与一个用户帐户并选择性地链接与该电子装置相关联的另一个预安装的应用与另一个用户帐户。由于与电子装置相关联的唯一硬件标识符可能足以通知服务器预安装的应用已被认领,因此,同时认领一个电子装置上的所有预安装的应用可简化管理认领过程的计算开销。在其它的例子中,电子装置上的预安装的应用可选择性地与多个帐户相关联。因此,第一预安装的应用可与第一电子装置相关联,而第二预安装的应用可与第二电子装置相关联。但是,服务器上对预安装的应用的管理可能要求存储电子装置的唯一硬件标识符加上已被认领的预安装的应用。这些例子也适用于与电子装置的购买分开获取的应用。例如,赠送并安装在电子装置上的一组应用可单个地或作为群组与用户帐户相关联。
图8示出用于处理购买页面请求的示例性的方法。示出由客户端和服务器执行的动作的方法500可被配置为管理购买页面请求期间的客户端和服务器之间的通信。由服务器执行的动作可由存储于分发中心上的分发程序或位于服务器侧的其它部件执行,而由客户端执行的动作可由存储于客户端侧的电子装置上的应用管理程序执行。在一些例子中,存储于分发中心上的分发程序和存储于电子装置上的应用管理程序可被配置为也在更新页面请求期间执行图4的方法400。方法500可从用户选择由客户端装置提供的图形用户界面中的购买标签链接开始。示例性的购买标签链接可以是图9中的链接551。在客户端接收到对购买页面的用户请求(501)时,客户端可执行对于应用信息的搜索或查询。在本示例性的方法中,应用信息可包括清单和/或收据(503)。在其它的例子中,应用信息可包括未与用户帐户相关联的应用或软件包,这里,用户帐户对于软件包具有所有权。所有权可以是诸如数字收据之类的权利证据。在一些例子中,清单可与图3的清单340类似或基本上类似。可通过客户端上可用的一个或多个程序或功能执行搜索或查询。可包括清单、收据(真实和存根)、用户帐户信息和其它(诸如对于还没有认领的应用的权利证据或所有权)的应用信息可在一些情况下作为软件认领请求被发送到服务器(505)。出于产生用于通知用户已安装的应用、可用于安装的应用和可被认领的应用的购买页面的目的,将应用信息发送给服务器505。发送的应用信息可取决于用户是否已在客户端上登录。例如,如果用户已在客户端上登录,那么用户帐户信息是可访问的并可作为应用信息的一部分被发送。如上面讨论的那样,用户帐户信息可包括涉及与用户帐户相关联的应用的信息。类似地,收据可包含涉及与运行客户端的电子装置相关联的应用的信息。清单可包括原始预安装于电子装置上的应用的信息或者用户具有所有权但还没有安装于用户装置上或与用户帐户相关联的应用的信息。这仅是应用信息的示例性的类型,因为为了产生购买页面也可向服务器发送其它类型的应用信息。
服务器接收所发送的应用信息(即,清单、收据、用户帐户和其它的用户帐户信息)并基于接收的信息产生一个或多个应用列表(507)。应用列表和用于产生应用列表的过程可根据接收的信息改变。第一应用列表可包括安装于客户端的电子装置上的应用。第二应用列表可包括与用户帐户相关联并可安装于客户端的电子装置上的应用。第三应用列表可包括可能与用户帐户链接的应用。第三列表中的应用可包括预安装于客户端的电子装置上的应用和/或客户端具有所有权但没有被认领或安装的应用。也可产生其它的应用列表,诸如购买的或以其它方式获取的还没有与用户帐户相关联的应用。根据由服务器接收的应用信息,可以产生上述的应用列表中的一个或多个。在一些例子中,应用列表的产生可涉及访问诸如图2中的应用数据库220的应用数据库。服务器可基于产生的应用列表产生HTML页面(508)。HTML页面的产生可包括访问应用数据库以接收与应用列表中的应用相关联的元数据。例如,元数据可包括应用的名称、应用的描述、应用的版本号、应用的购买数据和与应用相关联的图像等。一旦产生HTML页面,服务器就将HTML页面发送给客户端(509)。客户端随后向用户呈现HTML页面(511)。根据用户是否已在客户端上登录,向用户呈现不同的信息。
图9示出当用户未登录时与购买页面请求相关联的HTML页面的例子。在本例子中,HTML页面550向用户呈现可用于认领的应用557的列表。在可用于认领的三个应用中,分别如文本558和559所示的那样,应用“iMovie”和“GarageBand”具有可用的更新。HTML页面550包括购买链接551。在一些例子中,购买链接551可具有与图5的更新链接451相同或基本上相同的功能。HTML页面550还包括通知用户可用于认领的应用的数量的标题553。描述555向用户提供认领过程的解释,以期帮助用户确定他/她是否希望认领应用。HTML页面550还包括向用户通知用户必须登录到其用户帐户以接收关于与其用户帐户相关联的购买的信息的指示552。在本例子中,HTML页面550还包括当被用户选择时启动认领过程的一个接受链接554。在其它的例子中,HTML页面550可为每个可用于认领的应用包括一个接受链接,由此允许用户选择接受单个可用于认领的应用、多个可用于认领的应用、或所有可用于认领的应用。用户可通过触摸屏、鼠标点击、键盘或其它的用户输入装置来选择接受链接554。
图10示出当用户登录时与购买页面请求相关联的HTML页面的另一例子。HTML页面560向用户呈现两个应用列表。在本例子中,应用列表562的呈现包括可用于认领的应用,而应用列表564的呈现包括先前已购买的应用。在HTML页面560的单独并且分开的部分中呈现这两个应用列表。应用列表564的呈现包括与先前购买的应用相关联的元数据,诸如应用的名称、与应用相关联的图像、软件卖主、购买日期和状态566。状态566可被配置为显示所购买应用的当前状态。例如,当应用当前被安装于客户端的电子装置上时,状态566可处于“已安装状态”。当处于这种状态时,状态566可被配置为显示文本“INSTALLED”。在本例子中,四个购买的应用均被安装于客户端的电子装置中。作为另一例子,当应用被购买但没有被安装于客户端的电子装置中时,状态566可处于“安装状态”。例如,应用可能还没有被下载到该装置,或者,应用可能已选择性地从装置被删除。当处于这种状态时,状态566可被配置为显示文本“INSTALL”。并且,当处于“安装状态”时,状态566可包括用户可选择的链接。选择该用户可选择的链接导致应用被下载到电子装置并被安装。
返回图8,客户端可接收作为认领应用的请求的用户输入(513)。在一些例子中,用户输入可以是选择图9的接受链接554。客户端可请求用户授权以链接该应用与用户帐户(515)。在图11中示出包含对于请求用户授权链接应用与用户帐户的授权提示的HTML页面的例子。
图11示出与包括授权提示的购买页面请求相关联的HTML页面的另一例子。当用户选择接受预安装的应用的认领时,HTML页面570可包括授权提示575。授权提示575可被包括作为从服务器被发送并在用户选择接受预安装的应用的认领之后呈现给用户的HTML页面的一部分。在一些例子中,授权提示575可以与图7的授权提示480相同或基本上类似。
返回图8,客户端可接收用户授权以链接应用与用户帐户。用户帐户是在用户授权的过程中被键入的用户帐户。例如,用户可键入要与该应用相关联的用户帐户的用户名和密码。在通过客户端接收用户授权之后,客户端可继续认领应用(519)。在后面在图12中描述认领应用到用户帐户的示例性的过程。在一些例子中,所有预安装的应用必须同时与用户帐户相关联。因此,用户不能选择性地链接与电子装置相关联的一个预安装的应用与一个用户帐户,并且选择性地链接与电子装置相关联的另一个预安装的应用与另一个用户帐户。由于与电子装置相关联的唯一硬件标识符可能足以通知服务器预安装的应用已被认领,因此,同时认领电子装置上的所有预安装的应用可简化管理认领过程的计算开销。在电子装置上的预安装的应用可选择性地与多个帐户相关联的其它例子中,在电子装置的唯一硬件标识符以外,服务器上对预安装的应用的管理还可能需要存储已被认领的预安装的应用。
图12示出用于链接预安装的应用与用户帐户的示例性的方法。示出在客户端与服务器之间执行的通信协议的方法600可被配置为管理链接预安装的应用与用户帐户的过程。由服务器执行的动作可由分发中心上的程序或服务器侧的其它部件执行,而由客户端执行的动作可由存储于客户端的电子装置上的应用管理程序执行。该应用管理程序可被配置为安装、删除、保持或以其它方式管理存储于客户端上的软件应用。在一些例子中,存储于分发中心上的分发程序和存储于电子装置上的应用管理程序可被配置为还执行图4的方法400和/或图5的方法500。在一些例子中,可在图4的“继续应用认领”(421)或图8的“继续应用认领”(519)之后执行方法600。
方法600可产生唯一硬件标识符(620)。唯一硬件标识符可用作应用的有效所有权或权利的数字收据。可通过组合电子装置特有的一个或多个标识符产生该唯一硬件标识符。例如,唯一硬件标识符可基于与电子装置的硬件部件相关联的一个或多个标识符。由于硬件部件的标识符是唯一的,因此,没有两个唯一硬件标识符是相同的。作为例子,可通过组合装置的逻辑板序列号与装置的以太网硬件地址来产生唯一硬件标识符。可通过使用串接、混编、编码方案或其它的数据操作算法组合逻辑板序列号和以太网硬件地址。唯一硬件标识符可作为关联预安装的应用与用户帐户的请求的一部分从客户端被发送到服务器(630)。在预安装的应用可被选择性地认领的其它例子中,与预安装的应用相关联的元数据也从客户端被发送到服务器。元数据向服务器提供允许服务器识别用户正在尝试认领到用户帐户中的所选择的预安装的应用的细节。在服务器接收唯一硬件标识符和可选的元数据之后,服务器可通过确定预安装的应用是否已与用户帐户链接来验证权利证据(640)。服务器可通过针对唯一硬件标识符检查唯一性表来确定应用是否已被链接。由于唯一性表存储包含已认领预安装的应用的电子装置的唯一硬件标识符的条目,因此,没有在表中找到唯一硬件标识符意味着电子装置还没有关联任何其预安装的应用。如果方法600允许选择性地认领预安装的应用,那么确定操作可包括查询唯一性表以寻找与唯一硬件标识符相关联的条目。如果找到该唯一硬件标识符,那么确定操作可评估具有预安装的应用的元数据的条目,以确定所选择的预安装的应用是否已在先前被认领。
如果从搜索(即,查询)唯一性表确定该应用已在先前被认领,那么向客户端回送错误(641)。客户端接收错误并向用户给出应用已被认领的警告(642)。图13示出认领警告的例子。警告700通知用户,由于预安装的应用已被指派给另一用户帐户,因此用户希望与其用户帐户相关联的一个或多个应用不能被指派。另一方面,如果从搜索唯一性表确定应用在先前未被认领,那么服务器可执行完整性检查(sanitycheck)以确定预安装的应用是否是电子装置的原始或缺省配置的一部分(650)。换句话说,服务器确定电子装置在从制造商被配置并被交付时是否安装了该预安装的应用。该完整性检查防止用户将原始安装于一个电子装置上的预安装应用复制到另一电子装置并尝试将该非法的拷贝与用户帐户相关联。服务器可利用唯一硬件标识符查询配置服务器,以接收与该唯一硬件标识符相关联的电子装置的原始配置。原始配置可被检查以确定预安装的应用的列表。该预安装的应用的列表可与用户正在尝试认领的应用相比较,以确定应用是否可用于认领。在其它的例子中,用于查询原始配置的数据库的拷贝可被存储于分发中心,由此允许对唯一硬件标识符的评估完全在分发中心执行。这可减少到配置服务器的网络通信量。
如果确定用户希望认领的应用不是电子装置的原始配置的一部分,那么可向客户端发送错误消息(651)。一旦客户端接收到错误消息,客户端就可向用户给出电子装置无资格认领的警告(642)。图14示出认领警告的另一例子。警告750通知用户,由于电子装置(这里的名字是“Mac”)无资格关联预安装的应用与用户帐户,因此不能将应用指派给用户帐户。在其它的例子中,警告750可包括出于通知用户电子装置原始未配置有预安装的应用的目的而提供的图画或其它语句。另一方面,如果确定用户希望认领的应用是电子装置的原始配置的一部分,那么可以执行附加的完整性检查(如果有的话)。一旦服务器验证预安装的应用可与用户帐户链接,服务器就可更新存储于服务器上的唯一性表和用户帐户(660),以表明该电子装置的预安装的应用已被认领(并由此不能被另一用户帐户认领)。如上面讨论的那样,已认领的预安装的应用是现在与用户帐户相关联的电子装置的预安装的应用,因此,与应用相关联的更新和重新下载可被下载到与用户帐户相关联的电子装置。服务器可将批准消息发送到客户端以通知客户端该请求被批准(670)。由于链接请求已被评估并被认为是真正的请求,因此,批准消息通知或告知客户端,预安装的应用现在与服务器上的用户帐户相关联。客户端接收批准消息并链接预安装的应用与存储于客户端上的用户帐户(680)。在一些例子中,客户端还可通过从清单移除与已与用户帐户链接的预安装的应用相关联的元数据,来更新存储于电子装置上的清单。移除与预安装的应用相关联的元数据可通过使得为了确定应用是否可被认领而执行的检查最小化来简化认领过程。客户端可然后向分发中心或服务器的其它部件发送请求以下载应用(690)。
方法600也可被配置为认领后安装的(post-installed)应用(即,由用户安装的应用)。后安装的应用包括在装置离开制造商之后或在装置由用户购买之后被安装于用户的装置上的赠送、购买、兑换或以其它方式获取的应用。例如,方法600可产生与应用相关联的唯一标识符而不是产生唯一硬件标识符(620)。唯一标识符可以是用于表示权利证据或应用的购买证据的与应用相关联的元数据。唯一标识符可被存储于应用的元数据中,并随后由客户端装置检索。作为替代方案,可基于应用的元数据产生唯一标识符。例如,可从应用的唯一或非唯一收据、与接收应用有关的元数据(诸如获取应用的日期和/或地点)、与客户端装置相关联的唯一标识符、和/或与应用或客户端装置相关联的其它元数据,来导出唯一标识符。
在一些例子中,通信协议可取决于唯一标识符是与预安装的应用(即,由制造商安装的应用)还是与后安装的应用(即,由用户安装的应用)相关联。例如,当从客户端接收的唯一标识符与后安装因而不是电子装置的原始配置的一部分的应用相关联时,通信协议可跳过确认应用是电子装置的原始配置的一部分这一步骤(650)。作为替代,服务器可通过比较该唯一标识符与有效唯一标识符的数据库来验证权利证据或应用的所有权。这可使得服务器能够区分和辨别应用的有效和无效拷贝。一旦权利证据被验证,就认领应用作为用户帐户的一部分。为了确定应用是预安装的还是后安装的,服务器可分析与唯一标识符相关联的标志或其它元数据。
在其它的例子中,通信协议可取决于从客户端接收的唯一标识符是否基于与客户端电子装置相关联的元数据。例如,由服务器访问以确定应用是否已被链接的数据库或表可取决于该唯一标识符。对于与客户端电子装置相关联的唯一标识符,可以由服务器访问和更新第一数据库。第一数据库可以基于电子装置的硬件被上锁(key)和可搜索。对于不与客户端装置相关联的唯一标识符,可以由服务器访问和更新第二数据库。换句话说,这些唯一标识符完全基于与应用相关联的权利证据,因此,搜索第二数据库将基于权利证据或权利证据的某种变体。
图15示出电子装置上的恢复模式的示例性的过程。一般地,恢复模式可允许电子装置解决应用或者甚至操作系统的内部致命错误。在恢复整个操作系统的极端例子中,该方法甚至可能重新格式化存储单元并重新安装操作系统。根据恢复模式的具体实现方式,被重新安装的操作系统可能不同。作为例子,重新安装的操作系统可以是原始安装于电子装置上的操作系统,该操作系统可然后被手动和/或自动更新。作为另一例子,重新安装的操作系统可加入自原始安装的操作系统以来已发布的一个或多个更新。在其它的例子中,可以重新安装来自制造商的最新的可用的操作系统。一般地,恢复模式仅重新安装操作系统而不重新安装预安装的应用。出于这种原因,没有与用户帐户相关联或链接的预安装的应用可能会丢失。过程800通过在恢复模式期间从配置服务器检索清单来解决该问题。
过程800可开始于进入恢复模式(820)。进入恢复模式可触发来自制造商的基本操作系统的下载。基本操作系统可被配置为产生唯一硬件标识符(830)。可通过使用上述方法之一来产生唯一硬件标识符。一旦产生了唯一硬件标识符,基本操作系统就可向配置服务器发送唯一硬件标识符(840)。基于接收的唯一硬件标识符,配置服务器可返回包括曾经预安装于电子装置上的应用和这些应用的版本号的清单。该清单还可包括电子装置的所有者具有所有权的其它应用。在一些例子中,通信服务器可与分发服务器通信以确定电子装置是否已认领了这些应用。如果在分发中心的唯一性表中找到该唯一硬件标识符,那么电子装置的预安装的应用中的一个或多个已被认领。因此,通信服务器可返回空的清单或不包括已认领的具体的预安装的应用的清单。这可使得当预安装的应用已被认领时,购买页面请求向用户呈现要认领的预安装应用的出现次数最少。在分发中心存储配置数据库的本地拷贝的其它例子中,唯一硬件标识符可被发送到分发中心而不是配置服务器。通过使用唯一硬件标识符,分发中心可确定预安装的应用以及这些应用中已与用户帐户相关联的那些。
配置服务器(或分发中心)可返回与电子装置一起的操作系统的版本号和基于电子装置的预安装的应用的清单(850)。在其它的例子中,清单还可包括没有与用户帐户链接的电子装置的后安装的应用(850)。当电子装置安装没有与用户帐户相关联的应用时,存储于配置服务器上的清单可被周期性地更新。出现这种情况可有多种原因,诸如网络故障、服务器故障、或用户选择了在该时间点不关联应用与用户帐户的选项。操作系统的版本号被发送到操作系统服务器(860),该操作系统服务器又向电子装置发送原始操作系统。电子装置接收该原始操作系统(870)并可选地安装原始操作系统。电子装置现在包括原始操作系统的新的拷贝和基于电子装置的预安装应用的清单。如果用户还没有关联预安装的应用与用户帐户,那么用户可通过如上面描述的那样选择购买页面链接来完成这一点。
根据一个实施例,图16示出根据上面描述的本发明原理的一种服务器1600的示意性功能框图。服务器1600的功能单元可以由执行本发明原理的硬件、软件、或硬件和软件的组合来实现。本领域技术人员可以理解,图16描述的功能单元可以被组合或分成子单元来实现上面描述的本发明原理。因此,这里的描述可以支持这里描述的功能单元的任何可能的组合或分解或进一步限定。
如图16所示,服务器1600可包括第一验证单元1010,第二验证单元1020和传送单元1030。第一验证单元1010可被配置用于通过确定已安装在第一客户端装置上的应用被配置为由服务器1600分发,验证第一客户端装置上的该已安装的应用有资格被认领。第二验证单元1020可被配置用于验证该应用先前没有被认领,并且可进一步包括检索单元1022和第三验证单元1024,其中检索单元1022被配置用于自动地从与该已安装的应用相关联的元数据中检索唯一地识别该已安装的应用的单个拷贝的唯一标识符,而第三验证单元1024被配置用于验证该唯一标识符没有与任何用户帐户相关联。传送单元1030被配置用于向第一客户端装置传送该已安装的应用有资格被认领的通知。
根据一个实施例,服务器1600还可包括认领单元1040,其被配置用于将应用认领到用户帐户,其中,该认领配置该用户帐户,以对于与该用户帐户相关联的一个或多个客户端装置允许与认领的应用有关的特权。
根据一个实施例,所述特权可包括应用的下载、重新下载和更新。
根据一个实施例,服务器1600还可包括被配置用于向所述用户帐户注册第二客户端装置的注册单元1050,和被配置用于将认领的应用发送到第二客户端装置的发送单元1060。
根据一个实施例,所述唯一标识符可以是所述单个拷贝的权利证据。
根据一个实施例,所述应用可以在先前已被安装在与所述用户帐户相关联的一个或多个客户端装置上。
根据一个实施例,服务器1600可以响应于用户请求而操作。
根据一个实施例,服务器1600还可包括被配置用于向客户端装置通知可用于认领的多个应用的通知单元1070,和被配置用于接受选择所述多个应用中要认领的至少一个应用的输入的接受单元1080。
根据一个实施例,自动检索唯一标识符可以包括针对该唯一标识符查询服务器上的数据库。
根据一个实施例,所述认领可以包括基于所述应用的权利证据更新数据库。
根据一个实施例,所述唯一标识符可以包括能够从与客户端装置相关联的硬件导出的值。
本公开的范围内的实施例还可包括用于承载或存储有计算机可执行指令或数据结构的有形和/或非暂时性的计算机可读存储介质。这种非暂时性计算机可读存储介质可以是可由包括上述的任何特殊用途处理器的功能设计的通用或特殊用途计算机访问的任何可用的介质。作为例子而不是限制,这种非暂时性计算机可读介质可包括可用于以计算机可执行指令、数据结构或处理器芯片设计的形式承载或存储需要的程序代码手段的RAM、ROM、EEPROM、CD-ROM或其它光盘存储器、磁盘存储器或其它的磁存储装置、或任何其它的介质。当信息通过网络或另一通信连接(硬连线、无线、或它们的组合)被传送或提供给计算机时,计算机适当地将该连接视为计算机可读介质。因此,任何这种连接被适当地称为计算机可读介质。以上的组合也应被包括在计算机可读介质的范围内。
计算机可执行指令包括例如导致通用计算机、特殊用途计算机或特殊用途处理装置执行一定的功能或一组功能的指令和数据。计算机可执行指令还包括由独立式或网络环境中的计算机执行的程序模块。一般地,程序模块包括执行特定的任务或实现特定的抽象数据类型的例程、程序、部件、数据结构、对象和特殊用途处理器的设计固有的功能等。计算机可执行指令、相关联的数据结构和程序模块代表用于执行这里公开的方法的步骤的程序代码手段的例子。这种可执行指令或相关联的数据结构的特定序列代表用于实现在这些步骤中描述的功能的相应的动作的例子。
本领域技术人员可以理解,可以在具有包括个人计算机、手持装置、多处理器系统、基于微处理器的或可编程的消费电子设备、网络PC、微计算机和大型计算机等的许多类型的计算机系统配置的网络计算环境中实施本公开的其它的实施例。也可在由通过通信网络链接(通过硬连线链接、无线链接或它们的组合)的本地和远程处理装置执行任务的分布式计算环境中实施实施例。在分布式的计算环境中,程序模块可位于本地和远程存储装置二者中。
根据一个实施例,提供一种方法,包括:通过确定已安装在第一客户端装置上的应用被配置为由服务器分发,验证第一客户端装置上的该已安装的应用有资格被认领;验证该应用先前没有被认领,包括:自动地从与该已安装的应用相关联的元数据中检索唯一地识别该已安装的应用的单个拷贝的唯一标识符,和验证该唯一标识符没有与任何用户帐户相关联;以及,向第一客户端装置传送该已安装的应用有资格被认领的通知。
根据一个实施例,该方法还包括将应用认领到用户帐户,其中,该认领配置该用户帐户,以对于与该用户帐户相关联的一个或多个客户端装置允许与认领的应用有关的特权。
根据一个实施例,提供一种方法,包括:通过确定已安装在第一客户端装置上的应用被配置为由服务器分发,由服务器验证第一客户端装置上的该已安装的应用有资格被认领;由服务器验证该应用先前没有被认领,包括:自动地从与该已安装的应用相关联的元数据中检索唯一地识别该已安装的应用的单个拷贝的唯一标识符,和验证该唯一标识符没有与任何用户帐户相关联;以及,从服务器向第一客户端装置传送该已安装的应用有资格被认领的通知。
根据一个实施例,所述方法还包括由服务器将应用认领到用户帐户,其中,该认领配置该用户帐户,以对于与该用户帐户相关联的一个或多个客户端装置允许与认领的应用有关的特权。
根据一个实施例,提供一种系统,包括:处理器;存储装置;被配置为存储用于控制处理器执行包括以下的步骤的指令的存储器:通过确定已安装在客户端装置上的应用被配置为由服务器分发,由服务器验证客户端装置上的该已安装的应用有资格被认领;由服务器验证该应用先前没有被认领,包括自动地从与该已安装的应用相关联的元数据中检索唯一地识别该已安装的应用的单个拷贝的唯一标识符,和验证该唯一标识符没有与任何用户帐户相关联;和从服务器向客户端装置传送该已安装的应用有资格被认领的通知。
根据一个实施例,所述存储器还包括用于由服务器将应用认领到用户帐户的指令,其中,该认领配置该用户帐户,以对于与该用户帐户相关联的一个或多个客户端装置允许与认领的应用有关的特权。
根据一个实施例,所述特权包括应用的下载、重新下载和更新。
根据一个实施例,所述存储器还包括用于向所述用户帐户注册另一客户端装置以及将认领的应用发送到该另一客户端装置的指令。
根据一个实施例,所述应用先前已被安装在与所述用户帐户相关联的一个或多个客户端装置上。
根据一个实施例,所述存储器还包括用于向客户端装置通知可用于认领的多个应用和接受选择所述多个应用之一的输入的指令。
仅作为解释给出上述的各种实施例,并且这些实施例不应被解释为限制本公开的范围。本领域技术人员很容易理解,可以在不跟随这里示出和描述的示例性实施例和应用并且不背离本公开的精神和范围的情况下对于这里描述的原理提出各种修改和变化。

Claims (28)

1.一种用于应用认领的方法,包括:
通过确定已安装在第一客户端装置上的应用被配置为由服务器分发,验证第一客户端装置上的该已安装的应用有资格被认领;
验证该应用先前没有被认领,包括:
自动地从与该已安装的应用相关联的元数据中检索唯一地识别该已安装的应用的单个拷贝的唯一标识符;和
验证该唯一标识符没有与任何用户帐户相关联;和
向第一客户端装置传送该已安装的应用有资格被认领的通知。
2.根据权利要求1的方法,还包括将应用认领到用户帐户,其中,该认领配置该用户帐户,以对于与该用户帐户相关联的一个或多个客户端装置允许与认领的应用有关的特权。
3.根据权利要求2的方法,其中,所述特权包括应用的下载、重新下载和更新。
4.根据权利要求2的方法,还包括:
向所述用户帐户注册第二客户端装置;和
将认领的应用发送到第二客户端装置。
5.根据权利要求1-4中的任一项的方法,其中,所述唯一标识符是所述单个拷贝的权利证据。
6.根据权利要求2-4中的任一项的方法,其中,所述应用先前已被安装在与所述用户帐户相关联的一个或多个客户端装置上。
7.根据权利要求1-4中的任一项的方法,其中,所述方法是响应于用户请求而执行的。
8.根据权利要求1-4中的任一项的方法,还包括:
向客户端装置通知可用于认领的多个应用;和
接受选择所述多个应用中要认领的至少一个应用的输入。
9.根据权利要求1-4中的任一项的方法,其中,自动检索唯一标识符包括:针对该唯一标识符查询服务器上的数据库。
10.根据权利要求1-4中的任一项的方法,其中,所述认领包括:基于所述应用的权利证据更新数据库。
11.根据权利要求1-4中的任一项的方法,其中,所述唯一标识符包括能够从与客户端装置相关联的硬件导出的值。
12.一种用于应用认领的系统,包括:
用于通过确定已安装在客户端装置上的应用被配置为由服务器分发,验证客户端装置上的该已安装的应用有资格被认领的部件;
用于验证该应用先前没有被认领的部件,包括:
用于自动地从与该已安装的应用相关联的元数据中检索唯一地识别该已安装的应用的单个拷贝的唯一标识符的部件;和
用于验证该唯一标识符没有与任何用户帐户相关联的部件;和
用于向客户端装置传送该已安装的应用有资格被认领的通知的部件。
13.根据权利要求12的系统,还包括用于将应用认领到用户帐户的部件,其中,该认领配置该用户帐户,以对于与该用户帐户相关联的一个或多个客户端装置允许与认领的应用有关的特权。
14.根据权利要求13的系统,其中,所述特权包括应用的下载、重新下载和更新。
15.根据权利要求13的系统,还包括用于向所述用户帐户注册另一客户端装置以及将认领的应用发送到该另一客户端装置的部件。
16.根据权利要求12-15中的任一项的系统,其中,所述应用先前已被安装在与所述用户帐户相关联的一个或多个客户端装置上。
17.根据权利要求12-15中的任一项的系统,还包括用于向客户端装置通知可用于认领的多个应用和接受选择所述多个应用之一的输入的部件。
18.一种服务器,包括:
第一验证单元,用于通过确定已安装在第一客户端装置上的应用被配置为由服务器分发,验证第一客户端装置上的该已安装的应用有资格被认领;
第二验证单元,用于验证该应用先前没有被认领,包括:
检索单元,用于自动地从与该已安装的应用相关联的元数据中检索唯一地识别该已安装的应用的单个拷贝的唯一标识符;和
第三验证单元,用于验证该唯一标识符没有与任何用户帐户相关联;和
传送单元,用于向第一客户端装置传送该已安装的应用有资格被认领的通知。
19.根据权利要求18的服务器,还包括认领单元,用于将应用认领到用户帐户,其中,该认领配置该用户帐户,以对于与该用户帐户相关联的一个或多个客户端装置允许与认领的应用有关的特权。
20.根据权利要求19的服务器,其中,所述特权包括应用的下载、重新下载和更新。
21.根据权利要求19的服务器,还包括:
注册单元,用于向所述用户帐户注册第二客户端装置;和
发送单元,用于将认领的应用发送到第二客户端装置。
22.根据权利要求18-21中的任一项的服务器,其中,所述唯一标识符是所述单个拷贝的权利证据。
23.根据权利要求19-21中的任一项的服务器,其中,所述应用先前已被安装在与所述用户帐户相关联的一个或多个客户端装置上。
24.根据权利要求18-21中的任一项的服务器,其中,所述服务器是响应于用户请求而操作的。
25.根据权利要求18-21中的任一项的服务器,还包括:
通知单元,用于向客户端装置通知可用于认领的多个应用;和
接受单元,用于接受选择所述多个应用中要认领的至少一个应用的输入。
26.根据权利要求18-21中的任一项的服务器,其中,自动检索唯一标识符包括:针对该唯一标识符查询服务器上的数据库。
27.根据权利要求18-21中的任一项的服务器,其中,所述认领包括:基于所述应用的权利证据更新数据库。
28.根据权利要求18-21中的任一项的服务器,其中,所述唯一标识符包括能够从与客户端装置相关联的硬件导出的值。
CN201210241398.9A 2011-07-12 2012-07-12 链接预安装的软件与在线商店的用户帐户的系统和方法 Active CN103207793B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610704211.2A CN106096456B (zh) 2011-07-12 2012-07-12 链接预安装的软件与在线商店的用户帐户的系统和方法

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US13/181,424 US9319406B2 (en) 2011-07-12 2011-07-12 System and method for linking pre-installed software to a user account on an online store
US13/181,424 2011-07-12
US13/248,942 2011-09-29
US13/248,942 US10158635B2 (en) 2011-07-12 2011-09-29 System and method for linking pre-installed software to a user account on an online store
US201261596928P 2012-02-09 2012-02-09
US61/596,928 2012-02-09
US13/436,609 US20130019237A1 (en) 2011-07-12 2012-03-30 System and method for linking pre-installed software to a user account on an online store
US13/436,609 2012-03-30

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201610704211.2A Division CN106096456B (zh) 2011-07-12 2012-07-12 链接预安装的软件与在线商店的用户帐户的系统和方法

Publications (2)

Publication Number Publication Date
CN103207793A CN103207793A (zh) 2013-07-17
CN103207793B true CN103207793B (zh) 2016-08-03

Family

ID=47625486

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201610704211.2A Active CN106096456B (zh) 2011-07-12 2012-07-12 链接预安装的软件与在线商店的用户帐户的系统和方法
CN201210241398.9A Active CN103207793B (zh) 2011-07-12 2012-07-12 链接预安装的软件与在线商店的用户帐户的系统和方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201610704211.2A Active CN106096456B (zh) 2011-07-12 2012-07-12 链接预安装的软件与在线商店的用户帐户的系统和方法

Country Status (8)

Country Link
JP (1) JP5595451B2 (zh)
KR (1) KR101439604B1 (zh)
CN (2) CN106096456B (zh)
AU (1) AU2012203903B2 (zh)
BR (1) BR102012017289B1 (zh)
MX (1) MX2012008138A (zh)
NL (1) NL2009157B1 (zh)
TW (1) TWI599973B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10325298B2 (en) * 2013-01-22 2019-06-18 General Electric Company Systems and methods for a non-destructive testing ecosystem
CN104468637B (zh) * 2013-09-12 2018-08-31 阿里巴巴集团控股有限公司 一种下载以及安装客户端的方法和设备
KR102124330B1 (ko) * 2013-11-19 2020-06-18 에스케이텔레콤 주식회사 어플리케이션 업데이트 방법 및 이를 지원하는 단말
US9626720B2 (en) 2013-11-25 2017-04-18 Apple Inc. Linked user accounts
TWI602066B (zh) * 2014-05-30 2017-10-11 宏碁股份有限公司 自動化程式下載方法與系統
US10255449B2 (en) 2014-05-30 2019-04-09 Apple Inc. Permission request
CN104468514B (zh) * 2014-10-31 2018-08-31 联想(北京)有限公司 信息处理方法、电子设备及服务器
JP6403583B2 (ja) * 2015-01-21 2018-10-10 キヤノン株式会社 アップデートされたアプリケーションを配信する配信管理サーバーおよび配信管理方法
CN105893071A (zh) * 2015-11-30 2016-08-24 乐视云计算有限公司 应用的在线调优方法及系统
JP6419143B2 (ja) * 2016-12-20 2018-11-07 株式会社ミロク情報サービス 共通プログラム、データベース管理装置、及びデータベース管理方法
US10365931B2 (en) * 2017-02-27 2019-07-30 Microsoft Technology Licensing, Llc Remote administration of initial computer operating system setup options
JP6608878B2 (ja) * 2017-07-19 2019-11-20 ファナック株式会社 アプリケーション販売管理サーバシステム
US11544357B2 (en) * 2018-11-02 2023-01-03 Google Llc Systems and methods for authentication
CN109710284A (zh) * 2018-11-16 2019-05-03 中天昱品科技有限公司 一种具有安全加密和数据压缩的充电桩远程升级方法
US20230177190A1 (en) * 2021-12-03 2023-06-08 Dell Products L.P. Systems and methods for transferring information handling systems

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102057354A (zh) * 2008-06-08 2011-05-11 苹果公司 获取对应用程序的更新的技术

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324649B1 (en) * 1998-03-02 2001-11-27 Compaq Computer Corporation Modified license key entry for pre-installation of software
JP2002091595A (ja) * 2000-09-11 2002-03-29 Hitachi Ltd ライセンス管理方法及びライセンス管理システム
US20030084165A1 (en) * 2001-10-12 2003-05-01 Openwave Systems Inc. User-centric session management for client-server interaction using multiple applications and devices
JP2005284506A (ja) * 2004-03-29 2005-10-13 Matsushita Electric Ind Co Ltd ダウンロードシステム及びダウンロードシステムを構成する機器、管理局、リムーバブルメディア
US20060064488A1 (en) * 2004-09-17 2006-03-23 Ebert Robert F Electronic software distribution method and system using a digital rights management method based on hardware identification
CN100589096C (zh) * 2004-12-02 2010-02-10 现时技术控股有限公司 在专用网络中管理未受保护和受保护的内容的设备和方法
JP2007265071A (ja) * 2006-03-29 2007-10-11 Jordan Kk アプリケーション管理方法およびアプリケーション管理システム
EP1901192A1 (en) * 2006-09-14 2008-03-19 British Telecommunications Public Limited Company Mobile application registration
ATE531183T1 (de) * 2008-02-08 2011-11-15 Ericsson Telefon Ab L M Verfahren und vorrichtung zur autorisierung der bereitstellung von mit einer presentity eines präsenzdienstes assoziiertem indirected content
US8495190B2 (en) * 2008-06-25 2013-07-23 International Business Machines Corporation Providing access by a client application program over an internet protocol (IP) network to a server application program instance
JP2010049643A (ja) * 2008-08-25 2010-03-04 Sourcenext Corp 情報処理システム、情報処理方法及びプログラム
US8725839B2 (en) * 2009-12-22 2014-05-13 International Business Machines Corporation Imposing pre-installation prerequisite checks on the install user to ensure a higher rate of installation success

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102057354A (zh) * 2008-06-08 2011-05-11 苹果公司 获取对应用程序的更新的技术

Also Published As

Publication number Publication date
AU2012203903A1 (en) 2013-01-31
JP5595451B2 (ja) 2014-09-24
BR102012017289A2 (pt) 2018-02-27
TWI599973B (zh) 2017-09-21
KR20130008480A (ko) 2013-01-22
MX2012008138A (es) 2013-09-03
CN103207793A (zh) 2013-07-17
CN106096456A (zh) 2016-11-09
NL2009157B1 (en) 2017-11-08
BR102012017289B1 (pt) 2020-12-01
AU2012203903B2 (en) 2015-03-12
NL2009157A (en) 2013-01-15
KR101439604B1 (ko) 2014-09-12
TW201308237A (zh) 2013-02-16
JP2013020621A (ja) 2013-01-31
CN106096456B (zh) 2019-04-02

Similar Documents

Publication Publication Date Title
CN103207793B (zh) 链接预安装的软件与在线商店的用户帐户的系统和方法
US11025622B2 (en) System and method for linking pre-installed software to a user account on an online store
CN102057354B (zh) 获取对应用程序的更新的技术
KR101361313B1 (ko) 네트워크 기반 분배 시스템을 사용하여 인-애플리케이션 후속 특징을 액세스하는 애플리케이션 제품들
US20130019237A1 (en) System and method for linking pre-installed software to a user account on an online store
KR101212904B1 (ko) 네트워크 기반 배포를 위한 어플리케이션 프로그램들의 전자 제출
KR100974459B1 (ko) 서비스 제공장치 및 서비스 제공방법
US20100235889A1 (en) Application products with in-application subsequent feature access using network-based distribution system
US20080172300A1 (en) Purchasing of individual features of a software product
US20100228647A1 (en) Process for implementing a method for the on-line sale of software product use licenses through a data network, and software component which allows carrying out said process
US20040039705A1 (en) Distributing a software product activation key
JP2004500649A (ja) ネットワークを介して提供されるソフトウェアプロダクツの利用方法
JP2016521887A (ja) サード・バーティ製品に対するストア間ライセンシング
US20130124696A1 (en) Application products with in-application subsequent feature access using network-based distribution system
AU2012258433B2 (en) Application products with in-application subsequent feature access using network-based distribution system
WO2013188244A2 (en) Application products with in-application subsequent feature access using network-based distribution system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant