基于声明和同意的访问代理的制作方法

文档序号:6376785阅读:234来源:国知局
专利名称:基于声明和同意的访问代理的制作方法
基于声明和同意的访问代理相关申请
这个申请涉及由Ganapathy等人于2011年5月2日提交且题为“BINDINGAPPLICATIONS TO DEVICE CAPABILITIES” 的美国申请第 13/099,260 号。
背景技术
安装在计算系统上的硬件提供各种能力(capability),诸如打印、设备管理、位置服务、消息传递、视频捕获等等。所安装的应用访问这些与其他能力来给计算系统提供功能。但是,应用有可能未经用户同意或在用户不知道的情况下访问潜在风险的能力。例如,具有现有的以位置服务、消息传递服务以及其他服务为目标的利用(exploit)。这些利用能够损害用户的隐私或者在用户不知道的情况下或未经用户同意而导致用户被其网络服务供应商收取费用。甚至在应用开发人员方面没有邪恶意图的情况下,应用访问潜在风险能力也能够无意地损害计算系统的安全或用户的隐私。并且,甚至在用户被允许同意利用应用进行的能力访问的情况下,用户也可能难以明白一并且可能难以向用户解释一该应用将在什么上下文中访问该能力。用户可能没有意识到允许应用访问特别能力的衍生物(ramification)。用户可能因此或者欠许可(under-permit)或者过许可(over-permit)应用访问能力,从而潜在地破坏用户体验或损害用户的隐私与安全。

发明内容
提供这个发明内容部分,以便介绍下面在详细描述部分中进一步描述的能力代理服务的简化概念。这个发明内容部分并不打算标识所请求保护的主题的基本特性,也打算用于确定所请求保护的主题的范围。访问代理(broker)控制应用访问计算系统能力,诸如硬件设备能力。访问代理从应用接收对于访问能力的请求,并应用策略来确定是否准许(grant)该访问。为了该应用被准许访问该能力,该策略可能要求该应用具有声明(declare)该能力的应用清单(manifest)。并且,为了该应用被准许访问该能力,该策略可能要求用户同意该请求。用户界面组件提供包括应用特定的能力设置以及改变这些设置的可选选项的用户界面。这些用户界面在用户与应用交互期间被启动,从而给用户提供单独的位置来查看和配置用于特别应用的能力设置。因为这些用户界面是操作系统界面,所以给用户提供更大的操作系统正在控制针对潜在风险能力的应用访问的置信度(measure ofconfidence)。


参考附图来阐述详细描述部分。在附图中,参考数字最左侧的(一个或多个)数字标识该参考数字首次出现在其中的附图。在不同的附图中相同的参考数字的使用指示相似或相同的项。
图1是可用于提供访问代理服务的示例系统的示意图。图2是根据实施例的可用于提供访问代理服务的示例计算设备的框图。图3是显示用于基于应用声明和用户同意来代理能力访问的示例处理的流程图。图4是显示用于提供应用内(in-application)能力界面设置配置的示例处理的流程图。图5是显示用于查看和配置能力特定的设置的示例处理的流程图。图6示出用于针对敏感能力的应用请求而获得用户同意的示例用户界面显示。图7示出包括能力的显示的示例应用获取用户界面显示。图8示出用于显示应用内能力设置信息的示例用户界面显示。图9示出用于显示能力特定的设置信息的示例用户界面显示。
具体实施例方式综述
如上所述,应用访问各种能力,以便给用户提供功能。这些能力之中的一些能力诸如设备位置、消息传递、视频捕获、因特网接入和其他能力是潜在有风险的,并且用户可能想控制或禁止对它们的访问。并且,用户必须能够确定应用被配置成访问什么能力,以便用户能够确定是否获取或执行该应用。在实施例中,访问代理控制针对诸如设备能力之类的能力的应用访问。在受保护的应用容器内运行的应用通过访问代理来请求访问能力。基于应用于被请求的能力的策略的类型,访问代理在每个应用的基础上采取措施来实施该策略。例如,访问代理的策略可以指示为了应用被准许访问能力,应获得用户同意。该策略可以指示为了应用被准许访问能力,该能力要求该应用在其应用清单中声明该能力。该策略可以要求以便应用被准许访问特别能力,该应用在特许(privileged)许可记录中应被明确地标识为被允许访问该特别能力(至于有关使用特许许可记录的访问代理的细节,参见由Ganapathy等人于2011年 5 月 2 日提交且题为“BINDING APPLICATIONS TO DEVICE CAPABILITIES”的美国申请第13/099,260 号)。因而,取决于应用于特别能力的策略类型,访问代理可以导致具有同意该能力的可选选项的用户界面元素被显示。这个用户界面元素由操作系统在用户与应用交互的上下文中进行显示。这使得用户更容易明白何时和为什么该应用将访问该能力。在实施例中,当在与应用交互的上下文中的同时,给用户提供调用操作系统用户界面元素的选项。操作系统用户界面元素显示应用能够访问的能力。用户界面元素允许用户启用或禁用针对各种能力的访问。这个应用特定的视图(view)给用户提供单个位置来查看该应用能够访问的所有能力,诸如设备能力,而不必打开多个配置页面来确定该应用能够访问什么能力。在实施例中,操作系统设置模块给用户提供能够访问特别能力的所有应用的视图。这个能力特定的视图允许用户在每个应用或全局的基础上控制访问,从而进一步增强用户体验。这些特性即用户同意、应用清单中的能力声明、应用特定的能力配置以及能力特定的配置设置的组合给用户提供更大的应用访问潜在风险能力被充分地控制的置信度。遍及这个详细描述部分,术语“被配置”当被用于描述应用的能力功能时意味着该应用被编程而具有访问特别能力诸如硬件设备的设备能力的功能。遍及这个详细描述部 分,术语“被启用”当被用于描述应用的能力功能时意味着该应用被允许或被许可访问该 能力。应用因此可以被配置成访问某个能力,而同时没有“被启用”来访问该同一能力。
本文描述的处理、系统和设备可以采用许多方式来实现。下面参考以下附图来提 供示例实现方式。
用于提供访问代理服务的示例环境图1是可用于提供访问代理服务的示例系统100的示意图。系统100可以在能够实 现访问代理服务的各种合适的计算设备类型上进行实现。一个或多个合适的计算设备可 以包括下列各项或者可以是下列各项的一部分一个或多个个人计算机,服务器,服务器群 (farm)、数据中心,专用计算机、平板计算机,游戏机,智能电话,这些的组合或任何其他的 能够存储和执行设备代理服务的全部或其中一部分的(一个或多个)计算设备。
在图1的说明性示例中,系统100包括访问代理102。访问代理102包括策略104, 其中策略包括属于(falI under)各种访问级别的能力的列表。示例的访问级别包括“始终 允许(always allow)”、“声明(declare)”、“敏感 / 限制(sensitive/restricted)”和 / 或 “特许/未知(privileged/unknown)”。这些示例级别为了讨论的方便而在本文进行使用, 并且不应被视为具有限制意义。在各个实施例中,访问级别可以是其他访问级别的子级别。 在一个非限制示例中,能力可能属于“声明”和“敏感/限制”二者。在另一非限制示例中, 能力可能属于“敏感/限制”和“特许” 二者。
应用容器组件106提供能力来在控制应用访问各种系统资源的安全执行模式中 实施应用的执行,其中系统资源诸如是存储器、应用、应用编程接口(API)或设备。应用108 和110被配置成在由应用容器组件106实施的安全模式中执行。这些应用包括被配置成与 诸如设备112和设备114之类的系统100的各个设备交互的各种功能。设备112被启用来 提供各种能力,诸如设备能力116-1到116-N。并且,设备114被启用来提供各种能力,诸如 设备能力118-1到118-N。设备能力的非限制示例包括位置服务(诸如全球定位系统(GPS) 服务)、消息传递服务(诸如短消息服务(SMS))、视频捕获服务以及其他服务。
策略104根据各种访问级别列出设备112和114的各种能力。例如,设备能力 116-1,116-2和118-1被列在“始终允许”之下,设备能力116-3和118-2被列在“声明”之 下,设备能力118-3和116-4被列在“敏感/限制”之下,以及设备能力118-4被列在“特 许”之下。
访问代理102被配置成接收来自应用108和110的访问设备112和114的各种能 力的请求。在第一示例中,应用Iio请求访问设备112的设备能力116-1。访问代理102针 对策略104执行查找操作,并且确定设备能力116-1属于“始终允许”级别。结果,访问代 理102向应用110提供设备句柄(handle),以访问设备能力116-1。应用110随后能够利 用该句柄来与设备能力116-1交互,这包括发送和接收数据和命令。属于“始终允许”级别 的能力被视为最少风险的。在一个非限制示例中,打印服务可以被列在“始终允许”或等效 访问级别之下。
在第二示例中,访问代理102接收来自应用108的访问能力诸如设备114的设备 能力118-2的请求。访问代理102针对策略104执行查找操作,并且确定设备能力118-2 属于“声明”访问级别。访问代理102因此确定与应用108相关联的应用清单112内的设备声明120是否包括应用108被启用来访问设备114的设备能力118-2的声明。设备声明120可以包括用于诸如“SMS消息传递”或“视频捕获”之类的能力的“友好”名称以及用于该能力的唯一标识符,诸如全局唯一标识符(⑶ID)。一旦确定该声明出现在应用清单122中,访问代理102将给应用108提供可用于访问设备114的设备能力118-2的设备句柄。一旦确定该声明没有出现在应用清单122中,访问代理向应用108返回例外句柄(或某种其他的错误消息或代码),从而拒绝该访问请求。规定应用在其清单包括某些能力,以便允许该应用访问这些能力,这要求该应用预先知晓(up-front about)它被配置成访问这些能力的事实。这转而允许用户在知晓应用被配置成访问的能力一包括设备能力一的情况下确定是否访问、获得、下载、安装和/或执行该应用。在第三示例中,应用108请求访问能力,诸如设备112的设备能力116-4。访问代理102针对策略104执行查找操作并确定设备能力116-4属于“敏感/限制”级别。结果,访问代理102导致用户界面同意模块124显示具有同意访问请求的可选选项的用户界面。一旦接收到指示用户同意该请求的输入(或者一旦确定先前提供过用户同意),访问代理102给应用108提供可用于与设备能力116-4的实例交互的设备句柄。在实施例中,策略104可以规定属于“敏感/限制”级别的能力也应在应用清单中被声明(除了用户同意之外),以便提供针对这些能力的访问。在第四示例中,应用110请求访问能力,诸如设备114的设备能力118-4。访问代理102针对策略104执行查找操作并确定设备能力118-4属于“特许”级别。结果,访问代理102针对特许许可记录126执行查找,以确定是否应用110在其中明确地被列为被允许访问设备能力118-4。(至于有关使用特许许可记录的访问代理的细节,参见由Ganapathy等人于 2011 年 5 月 2 日提交且题为 “BINDING APPLICATIONS TO DEVICE CAPABILITIES”的美国申请第13/099,260号)。在上述的示例中,访问能力的请求是针对特定设备的特定能力的。在实施例中,应用可以请求访问通用能力,并且访问代理102可以确定哪些设备(若有的话)提供通用能力。例如,在用户的计算设备上可能安装一个以上的网络摄像头,并且访问代理102在接收到来自应用的访问网络摄像头的请求之后代理针对一个网络摄像头或另一个网络摄像头(有可能提示用户选择其中一个)的访问。访问代理102在继续进行之前也检查以确保计算系统包括网络摄像头。系统100包括应用获取组件128,其为在线或离线商店提供界面来获取诸如应用108和应用110之类的应用。例如,在呈现选项以获取应用108时,应用获取组件128被配置成导致在与应用108相关联的应用清单122内的能力声明120的显示。因而,用户能够部分基于应用108被配置成访问的那些能力来确定是否获取该应用。系统100包括操作系统设置模块130,其包括应用内能力设置界面模块132以及能力特定的用户界面模块134。操作系统设置模块130被配置成接受用户输入,以便在用户与应用交互的上下文中显示应用内能力设置界面模块132。应用内能力设置界面模块132提供能力访问设置的可配置列表。应用内能力设置界面模块132列出该应用被配置成访问的能力,而不论这些能力当前针对那个应用是否被启用,并且也列出针对该应用启用或禁用这些能力的可选选项。例如,在与应用108交互的上下文中,用户可以请求显示应用内能力设置界面模块132。应用内能力设置界面模块132可以随后接收用户输入,以禁用应用108访问设备114的设备能力118-3。因而,即使用户先前已同意允许应用108访问设备114的设备能力118-3,访问代理102也可以撤销当前访问并且拒绝来自应用108的对于设备能力118-3的进一步请求,或者作为选择,访问代理102可以要求用户同意来自应用108的访问设备能力118-3的未来请求。操作系统设置模块130被配置成导致能力特定的用户界面模块134显示。能力特定的用户界面模块134导致列出被配置成访问特别能力的应用的用户界面元素的显示。用户界面元素也包括可选选项,以便针对被配成访问该能力的所有或任何应用禁用或启用该能力。在实施例中,一个或多个能力对于操作系统而言在其实现的时间可能是已知的。在实施例中,操作系统可以借助于一个或多个声明处理来启用所支持的能力的集合的扩展。在一些情况中,添加到能力集合上的能力可能被限制到操作系统,而在其他情况中,操作系统可以允许诸如第三方设备之类的第三方供应商声明新的能力。(至于有关扩展能力集合的细节,参见由Ganapathy等人于2011年5月2日提交且题为“BINDING APPLICATIONSTO DEVICE CAPABILITIES” 的美国申请第 13/099,260 号)。在各个实施例中,设备能力通常根据在其中实现这些设备能力的设备来表示。这样的实施例使得用户能够选择被允许由应用使用的设备。通过这样做,用户同意应用使用设备的所有能力。例如,连接到用户的计算机的多功能设备可以是支持SMS能力、地理定位能力以及由手机制造商定义的定制能力的手机。在基于设备的模型中,给用户提供许可应用访问设备的所有能力的机会。替代的实施例可以提供用于添加与特定能力相关联的用户体验元数据的模型,以便允许用户启用设备的个别能力而非设备的所有能力。因而,在一个实例中,用户能够选择允许该应用访问SMS能力以及定制能力(例如,诸如在制造商提供了用户界面元素来描述定制能力的情况下),但是不允许访问地理定位功能。在访问代理的非限制示例中,用户获取媒体播放器应用,并且应用获取组件128导致该媒体播放器被配置成访问的能力诸如音频和视频捕获、短消息传递服务(SMS)等等的显示。这些能力被列在与媒体播放器应用相关联的应用清单(诸如应用清单122)中。利用应用获取组件128呈现的界面因此允许用户部分基于媒体播放器应用被配置成访问的能力来选择是否获取媒体播放器应用。这些能力可以利用各个设备诸如网络摄像头、麦克风和/或手机来提供。作为选择,这些能力中的一个或多个能力可以利用基于web的服务或利用在用户的计算设备上执行的软件模块来提供。继续非限制示例,用户可以稍后选择被配置成经由在短消息传递服务(SMS)消息中向另一个用户发送播放列表的媒体播放器应用的功能。如果策略104规定SMS消息传递能力要求用户同意(例如,诸如因为SMS消息传递属于“敏感/限制”级别),那么访问代理120导致用户界面同意模块124显示可选选项,以同意允许媒体播放器应用访问SMS能力。因为同意的可选选项的显示在经由SMS发送播放列表的上下文期间发生(come),所以用户能够更佳地告诉何时以及为什么媒体播放器应用将访问SMS能力。相比之下,如果在应用被启动的时间、在应用被安装时提示用户允许媒体播放器访问SMS能力或者根本不提示的话,那么用户可能对于何时以及为什么媒体播放器访问SMS变得困惑。因为用户界面同意模块124是操作系统元素(而不是媒体播放器应用的元素),所以用户能够更加相信如果未经用户的同意、知晓和控制,媒体播放器应用将不会访问如同SMS之类的潜在风险的能 力。
如果访问代理102接收到来自不同应用的访问SMS能力的后续请求,那么用户先 前的对于媒体播放器应用访问SMS消息的同意将不适用,并且访问代理102将提示用户同 意其他应用对于SMS消息的访问。如果媒体播放器应用请求访问不同的能力,例如,诸如位 置服务,那么用户先前的允许媒体播放器访问SMS能力的同意将不适用,并且访问代理102 将提示用户同意媒体播放器的访问位置服务的请求。
进一步继续非限制示例,应用内能力设置模块132在与媒体播放器应用交互的上 下文中的同时导致应用特定的能力设置的显示。用户能够使用这个应用特定的视图来控制 媒体播放器的SMS能力访问。能力特定的用户界面模块134给用户提供查看诸如媒体播放 器应用之类的那些应用的能够在单个列表中访问SMS能力的选项,并且接通或关闭针对用 户希望的任何和所有应用的SMS能力访问。因而,目前的详细描述部分的实施例给用户提 供更大的置信度,即更加相信用户的计算系统正在恰当控制媒体播放器应用对于诸如设 备能力之类的能力的访问。
示例计算设备图2是根据实施例的可用于提供访问代理服务的示例计算系统的框图。计算系统200 可以被配置成任何的能够实现访问代理服务的合适计算设备。根据各个非限制示例,合适 的计算设备可以包括个人计算机(PC)、服务器、服务器群、数据中心、专用计算机、平板计算 机、游戏机、智能电话、这些的组合或能够存储和执行所有或部分的代理服务的任何其他的 (一个或多个)计算设备。
在一个示例配置中,计算系统200包括一个或多个处理器202和存储器204。计 算系统200也可以包含允许与各种其他系统通信的(一个或多个)通信连接206。计算系统 200也可以包括一个或多个输入设备208诸如键盘、鼠标、笔、语音输入设备、触摸输入设备 等等以及一个或多个输出设备210诸如显示器、扬声器、打印机等等,其中这些设备通信耦 合至(一个或多个)处理器202和存储器204。
存储器204可以存储在(一个或多个)处理器202上是可加载的和可执行的程序 指令以及在这些程序的执行期间生成的数据和/或与这些程序结合可使用的数据。在所示 出的示例中,存储器204存储操作系统212,其中操作系统提供计算系统200的基本系统功 能,并且尤其规定计算系统200的其他程序和模块的操作。
存储器204包括可以与图1的访问代理102相同或相似的访问代理214。访问代 理214被配置成代理针对设备216的应用访问,其中设备216可以与图1的设备112和114 中的一个或二者相同或相似。
存储器204包括可以与图1的应用容器组件106相同或相似的应用容器组件218。 应用容器组件218被配置成实施对应用访问诸如设备112之类的系统资源进行控制的安全 执行模式。
存储器204包括可以与图1的应用清单120相同或相似的应用清单220。存储器 204也包括用户界面同意模块222以及操作系统设置模块224,其可以分别地与图1的用户 界面同意模块124以及操作系统设置模块130相同或相似。用户界面同意模块222和操作 系统设置模块224可以是操作系统212内的组件,但是为了讨论的方便而在图2中单独地显不。存储器204包括可以与图1中的特许许可记录126相同或相似的特许许可记录226。存储器204也包括可以与图1的应用获取组件128相同或相似的应用获取组件228。用于代理能力访问的示例操作
图3是显示用于基于应用声明和用户同意来代理能力访问的示例处理300的流程图。计算系统的访问代理接收来自应用的访问诸如安装在计算系统上的硬件设备的设备能力之类的能力的请求,方框302。应用可能正在控制针对系统资源诸如存储器、其他应用以及安装的硬件设备的访问的安全执行环境中执行。 访问代理针对策略执行查找操作以确定所请求的能力的访问级别,方框304。一旦确定策略指示被请求的能力是“特许”能力或者该能力是未知能力,方框306,那么访问代理针对许可记录执行查找操作,方框308。许可记录可以存储在存储器的安全区域中。许可记录可以包括被设备驱动器登记为被许可访问特许能力的应用。一旦确定应用在许可记录中被列为被允许访问所请求的能力,方框310,那么访问代理给该应用提供可用于与被请求的能力交互的句柄,方框312。一旦确定该应用在许可记录中没有被列为被许可访问被请求的能力,那么访问代理向该应用返回错误代码,从而拒绝该应用的请求,方框314。(至于有关使用特许许可记录的访问代理的细节,参见由 Ganapathy 等人于 2011 年 5 月 2 日提交且题为 “BINDING APPLICATIONS TO DEVICECAPABILITIES” 的美国申请第 13/099,260 号)。访问代理确定被请求的能力是否属于“声明”能力级别,方框316。声明能力规定为了针对该应用准许能力访问请求,该能力应被包括在该应用的清单中。一旦确定被请求的能力属于“声明”能力级别,访问代理确定该应用的应用清单是否包括被请求的能力的声明,方框318。该确定可以包括针对应用清单的查找,或者应用清单声明可以在启动该应用时或在某个其他时间被加载到访问代理策略(或某个其他位置)。一旦确定应用清单声明所请求的能力,访问代理给该应用提供句柄,方框312。一旦确定被请求的能力属于“敏感/限制”访问级别,方框320,那么访问代理确定是否用户先前已同意由该应用访问被请求的能力的先前请求,方框322。在实施例中,访问代理进一步确定是否先前请求被该应用的相同实例接收到。如果这是该应用新的实例,那么先前的同意可以被视为无效。在替代的实施例中,访问代理策略可以规定用户应同意请求同意的应用的每一个实例,而无论由该应用的相同或不同实例的先前同意。一旦确定具有先前的同意,那么访问代理给该应用提供句柄,方框312。一旦确定没有先前的同意,那么访问代理导致具有可选选项来同意能力访问请求的操作系统的界面元素的显示,方框324。用户界面元素包括有关被请求的能力的信息。因为用户界面元素在用户与应用交互的上下文中出现,所以用户能够更好地明白何时以及为什么该应用将访问该能力。一旦接收到指示用户同意的输入,方框326,那么在方框312提供句柄之前,访问代理确定应用清单是否声明被请求的能力,方框318。在替代的示例中,访问代理返回句柄而不首先确定应用清单是否声明被请求的能力。在其他的实施例中,访问代理可以被配置成调用其他的操作系统元素来确定是否访问应被准许,而不是导致同意用户界面被显示或除了导致同意用户界面被显示之外。—旦在方框328确定被请求的能力属于“始终允许”访问级别,那么在方框312访问代理给应用提供句柄。
在实施例中,策略可以指示一个或多个能力属于多个访问级别。在一个非限制示 例中,特别能力可以在策略中被指示为属于“特许”和“声明”访问级别二者。在这样的情况 下,在给应用提供句柄以访问该能力之前,访问代理可以执行与方框308和方框318相关的 功能。除非在目前的详细描述部分中或在权利要求书中以别的方式加以指示,否则图3所 示的操作的确切顺序和流程不应被视为限制。
用于提供应用内能力配置的示例操作图4是显示用于提供应用内能力界面设置配置的示例处理400的流程图。应用在(例 如由应用容器组件提供的)安全执行模式中执行,方框402。安全执行模式针对应用访问系 统资源提供控制。
访问代理在应用的执行期间接收来自用户输入设备的输入,其中该输入指示显示 包括改变应用的能力访问设置的可选选项的应用特定的操作系统用户界面元素的命令,方 框404。因为用户界面元素是操作系统元素,所以用户将具有更大的操作系统正在恰当地控 制针对诸如设备能力之类的能力的应用访问的保证和置信度。
应用内用户界面模块接收指示改变用于应用的能力访问设置的命令的用户输入, 方框406。该命令可以是禁用或启用该应用对于该能力的访问。接收到改变能力设置的命 令推翻(override)用户可能已提供的允许该应用访问该能力的任何先前同意。用于该应用 的能力访问设置的状态因此在访问代理中以及在能力特定的操作系统设置模块中被更新, 以便反映该变化,方框408。在稍后的某个时间,如果应用请求访问那个特别能力,访问代理 可以拒绝该请求或提示用户同意,如在这个详细描述部分中的其他位置所描述的。
用于提供能力特定的设置配置的示例操作图5是显示用于查看和配置诸如设备能力特定的设置之类的能力特定的设置的示例 处理500的流程图。计算系统启动操作系统设置模块,方框502。这可以提供“控制面板” 类型界面,其提供针对各种系统设置诸如包括设备能力设置的能力访问设置的访问。
操作系统设置模块接收用户输入以查看能力访问设置,方框504。作为响应,操作 系统设置模块显示能力的列表,方框506。特别能力可以按照默认来选择。
操作系统设置模块接收指示用户命令以选择特别能力的输入,方框508。响应于该 输入,操作系统设置模块显示被配置成访问所选择能力的应用的列表,方框510。
操作系统设置模块也在这些应用的旁边显示指示符,以显示是否这些应用当前被 启用来访问该能力,方框512。这些应用由于先前的用户同意、由于应用声明、因为在特许许 可记录中列出应用或由于某一其他原因而可以被启用来访问该能力。
操作系统设置模块接收指示命令来对于特别应用启用或禁用该能力的输入,方框 514。该输入可以经由与操作系统设置模块的显示交互的用户输入设备来接收。例如,该输 入可以在与被显示来表明是否该应用当前被启用来访问该能力的指示符进行交互的过程 中进行接收。指示符的非限制示例包括两个按钮指示符(启用/禁用、开/关或其他)、滑动 控制器、旋钮或某一其他交互式指示符。
响应于能力访问设置的变化,操作系统设置模块导致针对计算系统的访问代理的 更新,方框516。如果用户输入指示对于那个特别应用禁用该能力,那么访问代理或拒绝该 应用访问那个能力的进一步请求或提示用户同意,如在这个详细描述部分内的其他位置所描述的。图3-5描述显示根据各种实施例的示例处理的流程图。这些处理的操作在个别方框中示出并且参考这些方框来综述。这些处理被说明为逻辑流程图,其中的每一个操作可以代表一组能够以硬件、软件或其组合来实现的操作。在软件的上下文中,这些操作代表存储在一个或多个计算机存储媒体上的计算机可执行指令,其中这些指令当由一个或多个处理器执行时使得一个或多个处理器能够执行所叙述的操作。通常,计算机可执行指令包括执行特别功能或实现特别抽象数据类型的例程、程序、对象、模块、组件、数据结构等等。用以描述这些操作的顺序并不打算被解释成限制,并且任何数量的所描述的操作可以按照任何顺序进行组合、被分成子操作和/或被并行执行来实现该处理。根据本公开内容的各个实施例的处理可以只包括在逻辑流程图中叙述的操作中的一些或所有操作。示例用户界面
图6示出用于针对诸如敏感设备能力之类的敏感能力的应用请求获得用户同意的示例用户界面显示。应用界面600代表可以在计算系统的用户界面内运行的任何应用(在这种情况下,应用“FooApp”)。一旦从应用接收到访问在其策略中被列为“敏感”的能力的请求,访问代理将导致同意用户界面元素602的显示。同意用户界面元素602包括应用正在请求的能力的描述604以及同意该请求的可选选项(“允许”按钮606)。在图6所示的示例中,应用“FooApp”正在请求访问位置能力。在各个实施例中,位置能力可以利用计算系统的硬件设备诸如GPS设备来提供。在其他的实施例中,位置能力可以利用web (网络)服务或除了计算系统的设备之外的某个其他服务来提供。在图6所示的示例中,用户可以选择“允许”按钮606或“拒绝”按钮608来同意或拒绝该请求。因为同意用户界面元素602在从应用接收到访问“敏感”能力(在这个示例中,位置服务)的请求时并且在用户与应用交互的上下文中进行显示,所以用户能够更好地确定该应用何时以及为什么将使用位置服务。例如,这可能是因为用户已启动该应用的已导致该应用请求针对位置服务能力的句柄的某个功能。并且,用户因此能够更好地将其针对该功能的启动与他或她的被请求同意该应用的位置服务的访问相链接。例如,该应用可以允许用户在某个位置上“签到(check in)”,以使得他的位置在社交网站上是可获得的。因而,当用户选择应用的“签到”功能时,他或她将能够更好地明白该应用正在请求访问位置服务,以促进该应用的“签到”功能。图7示出包括能力的显示的示例应用获取用户界面显示,其中能力包括设备能力。用户界面显示700利用应用获取服务来显示,其中应用获取服务被启用来给用户提供选项来获得、下载和/或安装应用。用户界面显示700包括一个或多个特性,诸如应用名称702、应用图标图形704和可选选项706,以下载或购买应用。用户界面显示700包括能力列表708,其中该列表显不该应用被启用来访问的一个或多个能力。能力列表708可以显不应用功能,其包括设备能力以及其他的非设备能力,诸如访问用户的照片库的功能。能力列表708可以只包括能力的子集。因此,能力列表708包括查看所有能力的列表712的可选选项710。用户界面显示700在用户购买、下载、安装和/或执行应用之前允许用户更好地确定应用被启用来执行什么能力。所有能力的列表712在应用的清单(未显示)中被声明,并且用户界面显示700从应用的清单中拉(pull)列表712。在稍后的某个时间,在用户已获得和执行该应用之后,该应用可以请求访问能力。这个请求被访问代理接收。如在这个详 细描述部分中的其他位置所描述的,除非在应用清单中声明该能力,否则访问代理不可以 允许该应用访问该能力。
在获得应用的时间呈现应用清单中包括设备能力声明的能力声明以及实施要求 应用在其清单中声明能力以便该应用赢得对于那个能力的访问的策略在被披露给用户的 那些能力与该应用被允许使用的那些能力之间保持连续性。这样一来,应用不能向用户隐 藏访问能力的功能。
图8示出用于显示应用内能力设置信息的示例用户界面显示。应用界面800部分 地被应用内能力设置显示窗口 802覆盖。应用内能力设置显示窗口 820是操作系统用户界 面。应用内能力设置显示窗口 820列出能力804 (其中的一些或所有能力可以是设备能力) 以及启用或禁用能力804的可选控制器806。应用内能力设置显示窗口 802也显示该应用 被配置成使用或访问的包括各种设备能力的各种能力的列表808。列表808从应用清单中 进行提取。
应用内能力设置显示窗口 802允许用户在单个位置中查看应用被配置成访问的 所有能力。这样一来,用户不需要打开多个配置设置窗口来查看这个信息。并且,因为能够 在与应用交互的过程中访问应用内能力设置显示窗口 802,所以用户能够更容易地控制应 用对能力的访问。一旦借助于应用内能力设置显示窗口 802改变应用的设置,则访问代理 将被更新,以反映应用对于那个能力的访问的当前状态。
图9示出用于显示能力特定的设置信息的示例用户界面显示。操作系统设置显示 900包括能够诸如在“隐私/设备同意”设置窗口 904中查看的各种设置的可选列表902。 “隐私/设备同意”设置窗口 904包括能力的可选列表906 (以虚线圆圈来显示)。在图9 所示的示例中,当前选择“SMS”能力,从而导致被配置成访问“SMS”功能的所有应用的列表 908 (呈现)。例如,如果选择“位置”能力,将呈现显示被配置成访问位置服务的所有应用的 不同列表(其可以包括或不可以包括与列表908相同的应用)。列表908中的能力的列表可 以包括由设备提供的能力或利用除了设备之外的服务提供的能力。
在用于禁用或启用特别应用访问该能力的可选控制器910的旁边呈现列表908中 的应用。“隐私/设备同意”设置窗口 904也可以包括全局选项912 (以虚线圆圈来显示), 其中该选项可选择来针对所有的应用启用或禁用所选择的能力。“隐私/设备同意”设置窗 口 904因此可以允许用户控制特别应用对于特别能力的访问,或者作为选择,针对所有的 应用接通或关闭那个能力。一旦借助于操作系统设置显示900改变应用的设置,访问代理 被更新来反映该应用对于那个能力的访问的当前状态。
图6-9示出各个用户界面。这些用户界面为了说明的目的而被呈现,并且其确切 的布局和内容不应被视为限制。在不脱离这个详细描述部分的范围的情况下,能够使用替 代的布局和内容。
计算机可读媒体取决于所使用的计算设备的配置和类型,图2中的计算设备200的存储器204可以 包括易失性存储器(诸如随机存取存储器(RAM))和/或非易失存储器(诸如只读存储器 (ROM)、闪存等等)。存储器204也可以包括附加的可移除存储设备和/或不可移除存储设 备,其包括但不限于可以为计算系统200提供计算机可读指令、数据结构、程序模块以及其他数据的非易失性存储的闪存、磁存储设备、光存储设备和/或磁带存储设备。存储器204是计算机可读媒体的示例。计算机可读媒体包括至少两种类型的计算机可读媒体,即计算机存储媒体和通信媒体。计算机存储媒体包括在任何的处理或技术中实现的、用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的易失性和非易失性、可移除和不可移除的媒体。计算机存储媒体包括但不限于相变存储器(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPR0M)、闪存或其他存储技术、紧凑型只读存储器(CD-ROM)、数字多用途碟片(DVD)或其他的光存储设备、磁带盒、磁带、磁盘存储设备或其他的磁存储设备或任何其他的能够用于存储信息以供计算设备访问的非传输介质。相比之下,通信媒体可以将计算机可读指令、数据结构、程序模块或其他数据包括在诸如载波之类的调制数据信号或其他传输机制中。如在本文所定义的,计算机存储媒体不包括通信媒体。结论
虽然本公开内容使用特定于结构特性和/或方法动作的语言,但是本发明并不限于所描述的具体特性或动作。相反,这些具体特性和动作被披露为实现本发明的说明形式。
权利要求
1.一种方法,包括 由计算系统(100,200)的访问代理(102,214)从所述计算系统的应用(108,110)接收(302)对于访问所述计算系统的可用功能的能力的请求; 由所述访问代理响应于所述请求而访问(304)与所述应用的应用清单(122,220)相关联的能力声明(120);以及 由所述访问代理至少部分基于所述能力声明包括指示所述应用包括被配置成访问所述能力的功能的声明的确定来准许(312)所述请求。
2.权利要求1的方法,进一步包括 由所述访问代理确定(320)所述访问代理的策略(104)包括对于访问能力的准许要求用户同意的指示; 由所述访问代理响应于所述确定而导致(308)所述计算系统的操作系统(212)的用户界面元素(602)的显示,所述用户界面元素具有可选选项(606)来同意所述请求;以及 其中所述准许进一步至少部分基于指示用户同意所述请求的输入的接收。
3.权利要求1的方法,进一步包括 由所述访问代理确定(320)所述访问代理的策略(104)包括对于访问能力的准许要求用户同意的指示; 其中所述请求的准许进一步至少部分基于经由操作系统设置模块(224,130)接收到指示用户同意访问所述能力的输入的确定。
4.一种计算系统,包括 一个或多个处理器(202); 安装在所述计算系统上的硬件设备(216); 由一个或多个处理器可执行的并被配置成显示用户界面元素的用户同意组件(124);以及 访问代理(102,214),其由一个或多个处理器可执行并被配置成响应于从所述计算系统的应用接收到访问所述硬件设备的设备能力的请求,导致所述用户同意组件显示具有可选选项的用户界面元素,以便一旦由所述访问代理确定所述计算系统的代理策略(104)包括对于所述硬件设备的能力的访问要求用户同意的指示,同意所述请求。
5.权利要求4的计算系统,其中所述访问代理进一步被配置成至少部分基于指示用户同意所述请求的输入的接收而给所述应用提供可用于访问所述能力的界面句柄。
6.权利要求4的计算系统,其中所述访问代理被配置成一旦确定在接收所述请求之前接收到指示用户同意访问硬件设备能力的先前请求的输入,准许所述请求。
7.权利要求4的计算系统,进一步包括存储在所述计算系统的存储器中的所述应用的应用清单(122,220),以及其中所述访问代理被配置成基于指示用户同意所述请求的输入的接收和所述应用清单包括指示所述应用包括用于访问所述能力的功能的声明(120)的确定,向所述应用返回界面句柄。
8.权利要求7的计算系统,进一步包括应用获取模块(128),其由一个或多个处理器可执行并被配置成显示具有可选选项(706)的应用获取界面(700)以获取所述应用,其中所述应用获取界面显示包括指示所述应用包括用于访问所述能力的功能的声明的所述应用清单中的一个或多个声明。
9.权利要求4的计算系统,进一步包括应用容器组件(106),其被配置成在安全执行模式中实施由一个或多个处理器进行的所述应用的执行,其中所述安全执行模式规定对于访问某些能力的请求将由所述访问代理来代理。
10.一种方法,包括 在响应于来自用户输入设备的输入而执行应用期间,显示(404)应用特定的操作系统用户界面元素(802),其中所述应用特定的操作系统用户界面元素包括可选选项(806)来改变所述应用的能力访问设置;以及 一旦从用户输入设备接收到指示所述可选选项被选择的输入,更新(408)访问代理,以改变所述应用的能力访问设置。
11.一种计算机可读媒体,其包括多个编程指令,所述编程指令由计算系统的一个或多个处理器可执行,以执行权利要求1、2、3或10的方法。
全文摘要
实施例包括用于代理应用访问诸如设备能力之类的能力的处理、系统和设备。访问代理接收来自应用的访问能力的请求。访问代理至少部分基于应用清单是否声明所述能力来确定是否准许访问。访问代理也可以导致请求用户同意访问请求的用户界面元素被显示。并且,提供显示用于特别应用的能力访问设置的应用内用户界面元素。应用内用户界面元素包括用于改变这些设置的可选选项。借助于用户界面的这些设置的改变更新访问代理中的设置。
文档编号G06F21/45GK102999715SQ20121033588
公开日2013年3月27日 申请日期2012年9月12日 优先权日2011年9月12日
发明者M.G.莫里斯, N.加纳帕蒂, D.R.戴维斯, D.A.戈尔, P.斯利沃维奇, G.埃文格罗斯, R.J.门东卡 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1