基于开发者简档的许可证信息访问转让专利

申请号 : CN201380053946.8

文献号 : CN104737173B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : S·M·诺维克A·辛哈

申请人 : 微软技术许可有限责任公司

摘要 :

本文公开了用于促进应用许可的系统、方法和软件。在至少一个实现中,至少部分基于与应用相关联的开发者简档来标识应用的许可证信息,并且从许可证信息的至少一部分中标识应用的许可证状态。随后可发起与应用的许可证状态相对应的应用呈现。

权利要求 :

1.一种用于促进应用许可的方法,所述方法包括:

在具有安装在其上的多个应用的通信设备中,所述多个应用中的应用将请求从所述应用传递给工具应用以识别存储在密钥链数据结构中的所述应用的许可证信息,其中所述密钥链数据结构是基于由与所述应用相关联的开发者简档指示的开发者的标识可访问的;

所述应用启动并且作为响应地从所述许可证信息的至少一部分中识别所述多个应用的许可证的状态;

所述应用基于所述许可证的状态来确定应用模式;以及所述应用按照所述应用模式来发起所述应用的呈现;

其中,所述工具应用包括密钥链服务。

2.如权利要求1所述的方法,其特征在于,所述许可证包括所述应用所属的应用套件的套件许可证,其中所述应用套件包括文字处理应用和电子表格应用,并且所述许可证状态包括多个许可证状态中的一个,所述多个许可证状态包括完全支付状态、免费状态、以及最近过期状态。

3.如权利要求1所述的方法,其特征在于,所述应用模式包括多个模式中的一个,所述多个模式包括不受限访问模式、受限访问模式、以及临时不受限访问模式。

4.一种用于促进应用许可的方法,所述方法包括:

通过工具应用来访问密钥链数据结构,其中,所述密钥链数据结构是针对所述应用被本地存储并与所述应用的开发者相关联的;

将所述应用的许可证信息存储在所述密钥链数据结构中;

当所述应用启动时,经由所述工具应用来从所述密钥链数据结构中读取所述许可证信息,基于套件许可证的状态来确定应用模式,以及

按照所述应用模式来呈现所述应用。

5.如权利要求4所述的方法,其特征在于,将所述许可证信息写到所述密钥链数据结构中包括向工具应用发起第一请求以访问所述密钥链数据结构,并且从所述密钥链数据结构中读取所述许可证信息包括向所述工具应用发起第二请求以访问所述密钥链数据结构。

6.如权利要求5所述的方法,其特征在于,所述工具应用包括密钥链服务应用。

7.如权利要求4所述的方法,其特征在于,还包括响应于程序应用传递的访问所述密钥链数据结构的第一请求,将所述许可证信息写到所述密钥链数据结构,并且响应于所述程序应用传递的访问所述密钥链数据结构的第二请求,从所述密钥链数据结构中读取所述许可证信息;以及其中所述程序应用包括与程序应用套件相关联的生产力应用,并且所述工具应用包括密钥链服务应用。

8.一种用于促进应用许可的装置,所述装置包括:

计算机可读存储介质;

存储在所述计算机可读存储介质上的程序指令,在由处理系统执行时,所述程序指令指示所述处理系统执行以下操作:响应于应用套件中的应用启动,将请求从所述应用传递给工具应用以访问存储在密钥链数据结构中的所述应用的许可证信息,其中所述密钥链数据结构是基于由与所述应用相关联的开发者简档指示的开发者的标识可访问的;

从所述许可证信息中识别所述应用套件的套件许可证的状态;

基于所述套件许可证的状态来确定应用模式;以及

按照所述应用模式来呈现所述应用;

其中,所述工具应用包括密钥链服务。

说明书 :

基于开发者简档的许可证信息访问

技术领域

[0001] 本公开的各方面涉及计算机硬件和软件技术,尤其涉及软件许可技术。技术背景
[0002] 可采用各种许可模型来对软件应用进行许可。许可信息(有时被本地存储、远程存储、或存储在其它地方)通常被参考以确定软件许可证的状态。许可证信息可指示例如许可证是当前的、过期的、未支付的、等等。基于许可证的状态,可随后呈现或者在某些情况下完全不呈现主应用。
[0003] 在一类似示例中,许多生产力应用被编程为在启动之际处理本地存储的许可证信息以便确定它们各自的许可证状态。全部支付的许可证可授权用户对于特定应用的完全访问,而针对该应用的未支付许可证可将用户降低至受限的应用体验。在后一种情况下,许多应用提示用户通过网站、应用商店、或其它支付环境来获得许可证。
[0004] 实际上,越来越多的应用本身是通过应用商店来获得的,以下载到移动设备上并在其上执行,所述移动设备包括诸如蜂窝电话、平板、膝上型计算机、以及其它移动设备。在通过应用商店获得应用许可证之后,许可信息随应用一起被传达给目标设备并且存储在分配给该应用的隔离的存储器位置中。启动该应用可触发对许可证信息的分析使得可根据其许可证状态来呈现该应用。
[0005] 概述
[0006] 本文提供了用于促进应用许可的系统、方法和软件。在至少一个实现中,至少部分基于与应用相关联的开发者简档来标识应用的许可证信息,并且从许可证信息的至少一部分中标识应用的许可证状态。随后可发起基于应用的许可证状态的应用呈现。
[0007] 提供本概览以便以简化形式介绍将在以下的技术公开中进一步描述的概念选择。本概览并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。

附图说明

[0008] 参照以下附图可更好地理解本公开的许多方面。虽然结合这些附图描述了几种实现,但所述公开并不局限于在此所述的这些实现。相反,意图是要覆盖所有的替换方式、修改和等价物。
[0009] 图1示出了一实现中的应用环境。
[0010] 图2示出了一实现中的应用过程。
[0011] 图3示出了一实现中的计算系统。
[0012] 图4示出了一实现中的通信设备。
[0013] 图5示出了一实现中的操作序列。
[0014] 图6示出了一实现中的软件的详细视图。
[0015] 图7示出了一实现中的操作情景。
[0016] 图8示出了一实现中的应用环境。
[0017] 详细描述
[0018] 本文所描述的实现提供用于基于与应用相关联的开发者简档来访问许可信息。以此方式,可访问代表多个应用的许可证信息,每个应用具有与其它应用共同的开发者简档。例如,可获得用于应用套件的许可证并且保存的许可证信息指示许可证的状态。在启动应用套件中的一个应用之际,可基于与该应用相关联的开发者简档来访问许可证信息。由此,当启动套件中的另一应用时,可访问相同的许可证信息。事实上,这一配置允许访问针对要基于应用的开发者的身份或简档来管理的任意应用的许可证信息,无论其是否属于应用套件。
[0019] 在访问应用的许可证信息之后,可根据其许可证状态来呈现应用。在一些情景中,可基于许可证状态来确定应用模式,并且以所确定的应用模式来呈现应用。许可证状态的示例包括完全支付状态、免费状态和最近过期状态,以及其它合适的许可证状态。示例应用模式包括不受限访问模式、受限访问模式和临时不受限访问模式,以及其它应用模式。
[0020] 在一些实现中,许可证信息可被存储在可基于开发者简档所指示的应用的开发者的身份来访问的数据结构中,并且可从该数据结构检索该许可证信息。为了检索该许可证信息,应用可将请求传递给工具应用以访问该数据结构。一个示例性工具应用是密钥链服务应用。
[0021] 在涉及一个这样的密钥链服务应用或密钥链工具的各个情景中,应用可将许可证信息传递给密钥链工具,使得许可证信息可被存储在可基于与应用相关联的开发者简档来访问的密钥链数据结构中。该应用或与同一开发者相关联的另一应用也可与密钥链工具通信来访问该许可证信息。
[0022] 例如,为了发起将许可证信息写入密钥链数据结构,应用可发起对密钥链工具或其它工具应用的第一请求以访问密钥链数据结构。密钥链工具随后可发起将许可证信息写到密钥链数据结构。为了从密钥链数据结构中读取许可证信息,应用可发起对工具应用的第二请求以访问密钥链数据结构。密钥链工具随后可从密钥链数据结构中读取许可证信息。注意到,此处所用的变量第一和第二仅仅为了区分各请求,而不旨在标记次序或顺序,或以其它方式限制本公开的范围。
[0023] 参照各附图,图1示出了一实现中的示例性应用环境,其中应用过程被用来促进应用许可。图2示出了一个这类应用过程,而图3示出了适合用于至少实现该应用过程并且可选地实现该应用环境的计算系统。图4示出了在其中可实现另一应用环境的示例性通信设备。图5示出了包含图4的通信设备的操作情景,而图6示出了在通信设备中使用的软件的详细视图。图7示出了包含通信设备的操作情景。图8示出了包括密钥链应用工具的示例性应用环境。
[0024] 下面参考图1,示出了一实现中的应用环境100。应用环境100包括应用101、应用103以及应用105。应用101、103和105分别与开发者简档102、104和106相关联。出于说明目的,应用101和应用103都与一个开发者(开发者A)相关联,而应用105与一不同开发者(开发者B)相关联。应用环境100还包括许可证信息107和许可证信息109,两者还分别与开发者简档108和110相关联。出于说明目的,许可证信息107与开发者A相关联,而许可证信息109与开发者B相关联。
[0025] 应用101、103和105可各自是能够根据从许可证信息(诸如许可证信息107或许可证信息109)中标识的相关联许可证的状态来被呈现的任意程序应用。程序应用的示例包括生产力应用、游戏应用、企业应用、和通信应用,以及任何其它合适的程序应用。
[0026] 可至少部分基于与特定应用相关联的开发者简档来访问许可证信息。例如,可从许可证信息107中标识应用101的状态和应用103的状态,因为应用101和103都与同一开发者相关联,而应用105的状态可从许可证信息109中标识。开发者简档102、104和106可代表标识与应用101、103和105相关联的开发者的任何信息。该信息可由应用101、103和105来传递,或者可由某个其它应用来传递。信息可被本地存储、远程存储、或以某种其它形式来存储。
[0027] 应用呈现111代表应用101在一种许可证状态下的呈现,而应用呈现113代表应用101在另一种许可证状态下的呈现,通过改变填充图案来标记。应用呈现111和113展示了应用的外观、功能、特征或其它方面可根据应用的许可证状态而改变。可以由各种许可证状态,诸如已支付、未支付、免费和最近过期,以及任何其它合适的许可证状态,应用可根据这些许可证状态来被呈现。例如,一个许可证状态下可用的特征、功能和其它应用方面可能与另一许可证状态下可用的特征、功能和其它应用方面不同。
[0028] 图2示出一实现中的应用过程200,出于清楚的目的,对图2的讨论沿用对于应用环境100的参照。应用过程200代表可被用来实施或以其它方式支持应用许可的任何过程、子过程、或过程集。
[0029] 作为开始,基于与应用101相关联的开发者简档来标识应用101的许可证信息(步骤201)。这可发生在例如响应于应用101被启动、被开始、或以其它方式被调用时,使得检验其许可证状态的尝试被触发。取决于与应用101相关联的开发者简档,或者访问许可证信息107或许可证信息109。在这一示例中,应用101与开发者A相关联,如开发者简档102所指示的。相应的,因为其共享的与开发者A的关联,许可证信息107被访问,如开发者简档108所指示的。
[0030] 随后从许可证信息107中确定应用101的许可证的状态(步骤203)。如以上所提到的,许可证信息可指示各种许可证状态中的任意一种,诸如已支付、未支付、免费和最近过期,以及任何其它合适的许可证状态。例如,一个许可证状态下可用的特征、功能和其它应用方面可能与另一许可证状态下可用的特征、功能和其它应用方面不同。
[0031] 确定了许可证状态之后,根据该许可证状态呈现应用101(步骤205)。应用呈现111代表应用101在一种许可证状态下的呈现,而应用呈现113代表应用101在一不同许可证状态下的呈现。例如,应用呈现111可包括一些特征、功能、或其它应用方面,由于应用呈现111和应用呈现113各自的许可证状态,这些特征、功能、或其它应用方面可能经由应用呈现113不可用。
[0032] 同样可对应用103和105来执行应用过程200。例如,在发起应用103之际,可访问许可证信息107来确定应用103的许可证的状态。随后可根据许可证状态来呈现应用103。类似地,还可访问许可证信息确定应用105的许可证的状态。然而,应用105与开发者B相关联,而不是开发者A,因此访问的是许可证信息109,而不是许可证信息107。随后可根据其许可证状态来呈现应用105。
[0033] 虽然应用过程200一般涉及标识许可证信息、标识许可证状态、以及呈现应用,但是应用过程200的变型也是可能的。例如,应用过程200的一种变型可涉及发起以上提到的步骤的每一个,作为实际执行以上提到的步骤的每一个的补充或替代。例如,应用过程200的一种变型可包括发起对许可证信息的标识、发起对许可证状态的标识、以及发起根据其许可证状态呈现应用中的一些或全部。
[0034] 图3中提及的计算系统300可表示在其上可合适地实现应用过程200或其变化的任何一个或多个计算系统。可选地,计算系统300还可适用于实现应用环境100的全部或一部分。计算系统300的各示例包括移动计算设备,诸如蜂窝电话、平板计算机、膝上型计算机、笔记本计算机和游戏设备,以及任何其它类型的移动计算设备以及以上的任意组合或变型。计算系统300的各示例还包括台式计算机、服务器计算机和虚拟机,以及任何其他类型的计算系统以及它们的变型或组合。
[0035] 计算系统300包括处理系统301、存储系统303、软件305、通信接口307、和用户接口309。处理系统301操作地与存储系统303、通信接口307和用户接口309耦合。处理系统301从存储系统303加载并执行软件305。当概括而言由计算系统300执行时,且具体而言由处理系统301执行时,软件305指导计算系统300针对应用过程200或其变型如本文所述地那样操作。计算系统300可任选地包括此处出于简化和清楚的目的没有被讨论的附加的设备、特征或功能。
[0036] 仍然参考图3,处理系统301可以包括从存储系统305中检索并执行软件305的微处理器以及其他电路。处理系统301可以在单个处理设备中实现,但也可以跨在执行程序指令中协作的多个处理设备或子系统分布。处理系统301的示例包括通用中央处理单元、专用处理器、和逻辑设备、以及任何其他类型的处理设备,处理设备的组合或其变型。
[0037] 存储系统303可以包括可由处理系统301读取并能存储软件305的任何计算机可读存储介质。存储系统303可包括易失性和非易失性、可移动和不可移动介质,它们以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据这样的信息的任意方法或技术来实现。除了存储介质,在一些实现中,存储系统303还可包括通过其可传递软件305的通信介质。存储系统303可以被实现为单个存储设备,但也可以跨同地的或彼此分布式的多个存储设备或子系统来实现。存储系统303可以包括附加元件,诸如能够与处理系统301通信的控制器。
[0038] 存储介质的示例包括随机存取存储器、只读存储器、磁盘、光盘、闪存、虚拟存储器,和非虚拟存储器、磁带盒、磁带、磁盘存储或其它磁存储设备、或可被用于存储想要的信息并可被指令执行系统访问的任何其他介质,以及它们的任何组合或变型,或任何其它类型的存储介质。存储介质在任何情况下都不是被传播的信号。
[0039] 软件305可以程序指令来实现,并且除了其它功能,软件305可在由计算系统300执行时指导计算系统300基于应用的开发者简档来标识许可证信息、从许可证信息中确定应用的许可证状态、以及根据许可证状态呈现应用。软件305还可包括附加过程、程序或组件,诸如操作系统软件或其他应用软件。软件305还可包括固件或可被处理系统301执行的某些其它形式的机器可读处理指令。
[0040] 在至少一个实现中,程序指令可包括指导处理系统301发起将许可证信息存储在密钥链数据结构中的第一程序指令和指导处理系统301发起从密钥链数据结构读取许可证信息的第二程序指令。在一个情景中,受许可证管理的应用可包括该第一和第二程序指令,而在另一情景中,应用与其通信的工具应用可包括该第一和第二程序指令。
[0041] 一般而言,软件305在被加载到处理系统301中并被执行时,可将处理系统301和计算系统300整体上从通用计算系统变换成被定制以促进在此针对每个实现描述的应用许可的专用计算系统。事实上,存储系统303上的编码软件305可变换存储系统303的物理结构。在本说明书的不同实现中,物理结构的具体变换可取决于各种因素。这样的各因素的示例可以包括,但不仅限于:用于实现存储系统303的存储介质以及计算机存储介质是作为主存储还是辅存储的技术。
[0042] 例如,如果计算机存储介质被实现为基于半导体的存储器,则当在其中编码程序时,软件305可以变换半导体存储器的物理状态。例如,软件305可以变换构成半导体存储器的晶体管、电容器或其它分立电路元件的状态。一种类似的变换可以相对于磁性或光学介质发生。在没有偏离本说明书的范围的情况下,物理介质的其他变换也是可能的,前面提供的示例只是为了便于这一讨论。
[0043] 应理解,计算系统300一般旨在表示用于部署和执行软件305以便实现应用过程200(及其变型)以及可选的应用环境100的全部或部分的计算系统。然而,计算系统300还可表示其上可展现软件305并且软件305可以从其分发、传输、下载或以其他方式提供至又一计算系统以供部署和执行或又一附加分发的任何计算系统。
[0044] 再次参考图1,通过采用软件305的计算系统300的操作,可针对应用环境100执行变换。作为示例,应用101可以被认为在经历应用过程200或其变型时从一种状态变换成另一状态。在第一状态下,由于应用101的许可证的状态,计算系统300可提供应用呈现111。在发生相对于该许可证状态的变化之后,由于应用101的改变后的许可证状态,计算系统300可提供应用呈现113。在另一示例中,应用101可以其许可证状态在未知或初始状态下启动。在基于与应用101相关联的开发者简档访问许可信息107之际,应用101的许可证状态可被确定或更新,并且相应地呈现应用101。
[0045] 再次参考图3,通信接口307可包括允许在计算系统300和其它计算系统(未示出)之间通过通信网络或网络集合(未示出)的通信的通信连接和设备。一起允许系统间通信的连接和设备的示例可包括网络接口卡、天线、功率放大器、RF电路系统、收发机以及其它通信电路系统。连接和设备可在通信介质上通信以与其它计算系统或系统网络交换通信,通信介质诸如金属、玻璃、空气、或任何其它合适的通信介质。上述通信介质、网络、连接和设备是公知的且无需在此处详细讨论。
[0046] 用户接口309可包括,鼠标、声音输入设备,用于接收来自用户的姿势的触摸输入设备、用于检测用户的非接触姿势和其它运动的运动输入设备,以及其它类似的输入设备以及能够接收来自用户的用户输入的相关联的处理元件。输出设备,诸如显示器、扬声器、触觉设备、和其它类型的输出设备,也可以被包括在用户接口309中。上述用户输入设备在本领域中公知且无需在此处详细讨论。用户接口309还可包括可由处理系统301执行以支持以上所讨论的各种用户输入和输出设备的相关联的用户接口软件。结合彼此以及其它硬件和软件元件或单独地,用户接口软件和设备可提图形用户接口、自然用户接口、或任何其它类型的用户接口。
[0047] 图4分别示出了一实现中的通信设备400的两个视图。视图4A示出通信设备400的内部组件,而视图4B示出通信设备400的外部方面。具体来说,视图4A示出处理系统401、存储系统403、软件405、通信接口407、和用户接口409。软件405包括操作系统406和应用408。通信设备400通过通信网络413与应用商店415通信。视图4B示出控制元件417、显示器419、应用菜单421、以及应用图标423、425和427。应用图标423、425和427表示可对应于应用408的图标。通信设备400可任选地包括此处出于简化和清楚的目的没有被讨论的附加的设备、特征或功能。
[0048] 通信设备400表示能够促进针对其上运行的应用的应用许可的任何类型的计算系统或设备。通信设备400的示例包括蜂窝电话、平板计算机、膝上型计算机、笔记本、超级本、个人数字助手、电子阅读器、游戏设备、媒体播放机、互联网设备、台式计算机、以及任何其它类型的合适的计算系统。具体来说,处理系统401从存储系统403加载并执行包括操作系统406和应用408的软件405。当概括而言由通信设备400执行时,且具体而言由处理系统401执行时,软件405指导通信设备400如本文结合图5-8所描述地那样操作。
[0049] 例如,通信系统400可执行操作系统406的全部或部分来呈现应用菜单421。操作系统406的示例包括Android、iOS、Mac、Linux以及 操作系统。用户接口409可包括显示器419或与显示器419操作地耦合以接收和处理用户输入,诸如触摸、多点触摸、划扫、手势、或其它合适的输入。响应于各种用户输入,应用408中的一个或多个可被启动,并且在启动之后,可在显示器419上呈现该一个或多个应用。类似地,用户接口409可包括控制元件417或与控制元件417操作地耦合,并且能够接收和处理来自控制元件417的用户输入。通信设备400的一般操作和其组件间的交互是普遍公知的且无需在此处详细讨论。然而,出于说明目的提供了图5-8以说明通信设备400用来允许增强应用许可的某些能力、特征和功能。
[0050] 在这一实现中,为了说明目的假设应用图标423对应于与一个开发者相关联的应用,而应用图标425和应用图标427分别对应于两个应用,这两个应用都与一个不同的第二开发者相关联。应用图标425和应用图标427可对应于被视为属于程序应用套件(诸如生产力套件、游戏套件、通信套件等)的应用,如提供在它们左下角的图形符号所指示的。例如,生产力应用套件可包括文字处理应用和电子表格应用,以及可能地作为这些应用的补充或替代的另一个或另一些生产力应。
[0051] 应用图标423包括一不同的图形符号,指示应用图标423对应于与一不同开发者相关联的应用。要注意,这样的图形符号不必要存在或以其它方式被包括以标识与任何特定开发者相关联的应用图标或应用,而是仅出于说明目的而提供。
[0052] 图5示出了包含通信设备400的操作顺序500。最初在时间T1,应用435被启动,这可能是响应于对应于应用菜单421中的应用图标425的手势、选择、或其它适合的输入。例如,用户可触摸对应于应用图标425的显示器419的一部分,由此触发对相应的应用435的启动。
[0053] 通信设备400最初以未支付模式呈现应用435。这可能是因为例如与应用435的开发者相关联的许可信息指示该许可证处于未支付状态而发生。对应于其它许可证状态(诸如免费、已支付、和最近过期)的其它模式是可能的并且可被视为在本公开的范围内。未支付模式导致受限制的应用体验。例如,虽然应用特征436、437和439被启用(如实线所示),但是特征438被至少部分或全部禁用(如虚线和斜体字体所示)。换言之,当处于未支付状态下时,用户仅可享受受限制的应用体验。
[0054] 在稍后的时间T2,可获得套件许可证。可以数种方式获得套件许可证,诸如通过从应用商店415购买套件许可证、检验用户是否被授权给了已购买或已订阅的许可证、或者以某种其它方式。无论可能以何种方式来获得套件许可证,应用435的呈现被从未支付模式改变为已支付模式。在已支付模式下,特征438以及特征436、437和439现在对用户可用。换言之,在已支付模式下,相对于未支付模式下,用户可享受更全面的应用体验。另外,由于已获得套件许可证,因此该套件内的其它应用在已支付模式下也可用。
[0055] 例如,在时间T3,应用图标427可被选择,从而发起对对应应用445的启动。与该应用的开发者相关联的许可信息可再次被检查以确定该应用的许可证状态。在这一实现中,许可证状态是已支付状态,因为之前在步骤T2已获得了套件许可证。因此应用445被呈现为启用全部应用体验。例如,特征446、447和448全被视为启用。在未支付或其它限制模式下,应用445的其它方面的特征的一个或多个可以不同形式呈现,诸如禁用模式。
[0056] 虽然未示出,但是应当理解,可针对其它应用执行类似的情景。例如,在应用图标423被选择的情景中,可启动对应的应用。响应于启动该应用,基于该应用的开发者的身份来访问许可信息。如所讨论的,应用图标423可与不同于应用435和445的开发者的不同实体所开发的应用相关联。因此,可检查不同的许可信息。基于该许可证信息所指示的许可证状态,可确定用于该应用的呈现或操作模式。随后可相应地呈现该应用。
[0057] 虽然图5的上述讨论参照了套件许可证,但是可以理解,套件许可证仅仅是示例性的。其它类型的许可证是可能的,并且可被各种情景所考虑。例如,应用可在未支付模式下启动,之后可获得针对该应用的许可证。对该应用的后续使用或启动可导致在已支付模式下呈现该应用。在任意一种情况下,基于与给定应用相关联的开发者简档来访问指示该给定应用的许可证状态的许可证信息,以下结合图6-8给出更详细的讨论。
[0058] 现在参考图6,示出了图4的软件405的详细视图600。详细视图600包括操作系统406和应用408。操作系统406包括工具应用456,而应用408包括应用435、应用443、以及应用
445。如圆形符号所表示的,应用435和应用445都与同一开发者相关联,而应用443与一不同开发者相关联。
[0059] 在操作中,应用435、443和445与工具应用456交换许可证通信,以便获得、更新、或以其它方式与许可信息交互。工具应用456允许各个应用基于该应用的开发者的身份来访问特定许可证信息。在这一实现中,应用443访问许可证信息457,而应用435和445访问许可证信息459,因为它们与同一开发者相关联。不时地,应用435、443和445还可与应用商店415交换许可证通信,以便获得、检验、或更新许可证,或执行与许可证有关的任何其它动作。
[0060] 图7示出一实现中的一个特定操作情景700,对于图7的讨论继续参照图6。应用443与工具应用456通信以请求许可信息。工具应用456确定与应用443相关联的开发者身份。可以各种方式来实现对开发者的标识。在一些情景中,工具应用456可维护并访问安装在通信设备400上的应用列表,该列表标识与每个应用相关联的开发者。当与应用通信以访问许可证信息时,工具应用456可参照该列表来确定相关联的开发者。在其它情景中,请求访问许可证信息的应用可自己向工具应用456标识开发者。在又一些其它情景中,工具应用456可与能够标识与请求应用相关联的开发者的远程或在线服务通信。用于标识相关联开发者的其它机制也是可能的并且被构想在本公开的范围内。
[0061] 在标识与应用443相关联的开发者之后,工具应用456检索相应的许可证信息。在这一实现中,工具应用456检索许可证信息457,随后许可证信息457被提供给应用443。出于示例性目的,假设许可证信息457指示应用443的状态是已支付。随后可相应地在已支付模式下呈现应用443。
[0062] 此外,在这一示例中,可启动应用435,从而对工具应用456发起针对许可证信息的请求。工具应用456确定与应用435相关联的开发者身份并且检索对应的许可证信息459。开发者的身份可以数种方式来确定,诸如参照简档列表、接收来自应用的身份、或查询远程服务,以及任何其它合适的方式。许可证信息459被返回给应用435并被处理以确定许可证状态。随后可根据许可证状态来呈现应用435。在这一示例中,出于示例目的,假设应用435的许可证状态是未支付。应用435可自动或响应于用户交互而与应用商店415通信以完成许可证购买。许可证或许可证信息被返回给应用435,此时,应用435的呈现可被改变为已支付模式。
[0063] 应用435还可向工具应用456提供指示许可证的新近已支付状态的更新。可选地,应用商店415可将许可证、许可证信息、或更新传递给工具应用456。在又一时刻,可启动应用445,从而触发对工具应用456的许可证请求。工具应用456在标识应用445的开发者之后检索并提供新更新的许可证信息459。基于许可证信息459所指示的许可证的已支付状态,应用445以已支付模式呈现。
[0064] 图8示出一实现中的应用环境800,该应用环境800代表其中可采用基于开发者访问许可证信息的环境。应用环境800包括应用801、803和805、密钥链应用807、简档数据库809、以及密钥链数据811和813。在操作中,应用801、803和805各自与密钥链应用807通信以存储或以其他方式提供许可证信息并且读取或以其它方式获得许可证信息。密钥链应用
807与密钥链数据通信以存储许可证信息并且读取许可证信息。
[0065] 响应于针对许可证信息的请求,密钥链应用807与简档数据库809通信以确定可访问哪个密钥链数据。例如,密钥链应用807可将应用标识符或某个其它凭证传递给简档数据库809。简档数据库809返回开发者标识符,并且可选地可标识要访问哪个密钥链数据。然而,密钥链应用807可基于简档数据库809所返回的开发者身份自己确定访问哪个密钥链数据。
[0066] 不管怎样,密钥链应用807基于应用的开发者简档来访问相关密钥链数据或将相关密钥链数据提供给请求应用。例如,应用801可与开发者X相关联,并且因此赋予对密钥链数据811的访问,而应用803和805都可与开发者Y相关联并且都被赋予对密钥链数据813的访问。注意到,密钥链数据可不仅包括应用、应用、或应用套件的许可证状态,还包括其它敏感信息,诸如口令。
[0067] 各图中提供的功能框图、操作序列和流程图表示用于执行本公开的新颖方面的示例性架构、环境和方法。尽管出于解释简明的目的,此处包括的方法可以以功能图、操作系列或流程图形式示出并且可被描述为一系列动作,但是可以理解和领会,各方法不受动作的次序的限制,因为根据本发明,某些动作可以按与此处所示并描述的不同的次序和/或与其他动作并发地发生。例如,本领域的技术人员将明白并理解,方法可被替换地表示为一系列相互相关联的状态或事件,诸如以状态图的形式。此外,并非方法中所示出的所有动作都是新颖实现所必需的。
[0068] 所包括的说明和附图描述了用于教导本领域的技术人员如何做出和使用最佳模式的特定实现。出于教导创新性原则的目的,一些传统的方面被简化或忽略。本领域的技术人员将理解来自这些实现的变型也落入的本发明的范围内。本领域的技术人员还将理解如上所述的特征可以以各种方式组合以形成多个实现。因此,本发明不局限于如上所述的特定实现,仅受限于权利要求和它们的等价物。