首页 / 专利库 / 空中管制 / 许可 / 基于激励的应用程序执行

基于激励的应用程序执行

阅读:556发布:2024-01-11

专利汇可以提供基于激励的应用程序执行专利检索,专利查询,专利分析的服务。并且提供了用于向关联用户提供个人辅助的、作为后台 进程 在移动计算设备上执行的个人守护程序的系统和方法。还在移动计算设备上执行的是调度管理器。个人守护程序代表关联用户执行一个或多个个人辅助动作。调度管理器对支持个人守护程序的事件做出响应。更特别地,响应于接收到事件,调度管理器确定响应于接收到的事件的应用程序的集合,且从该应用程序的集合中,至少标识出用于在移动计算设备上执行的应用程序的第一子集。调度管理器接收关于应用程序的第一子集中的所执行的应用程序的可用性的反馈信息,并且更新应用程序的第一子集中的应用程序中的每个应用程序的关联得分。,下面是基于激励的应用程序执行专利的具体信息内容。

1.一种移动计算设备,其被配置为向关联用户提供个人辅助,所述计算设备包括处理器和存储器,其中,所述处理器在所述移动计算设备上执行指令以与附加组件相结合向所述关联用户提供个人辅助,所述附加组件包括:
个人守护程序,其是可执行组件且被配置为:
在所述移动计算设备的后台中操作和执行;以及
响应于接收到的事件的通知且根据所述个人守护程序所维护的个人信息,代表所述关联用户执行个人辅助动作;
其中,所述个人守护程序被进一步配置为不将所述关联用户的个人信息与除了所述关联用户之外的任何其它实体共享,除了在由所述关联用户确立的规则的条件下之外;以及调度管理器,其是所述移动计算设备上的可执行组件,管理所述移动计算设备上的应用程序的执行,以使得仅执行被判定为最有用的可执行应用程序,其中,所述调度管理器被配置为:
接收所述移动计算设备上的事件的通知;
确定响应于所述事件的可执行应用程序的集合;
根据与所述可执行应用程序的集合中的应用程序中的每个应用程序相关联的得分来确定所确定的可执行应用程序的集合的应用程序的第一子集,其中,所述应用程序的第一子集包括具有满足或超过预定阈值的关联得分的应用程序;
使得在所述移动计算设备上执行所述应用程序的第一子集中的应用程序;
获得关于所述应用程序的第一子集中的应用程序的所述执行的有用性的反馈信息;以及
基于所获得的关于所述应用程序的第一子集中的应用程序的所述执行的有用性的反馈信息来更新所述应用程序的第一子集中的应用程序中的每个应用程序的所述关联得分。
2.如权利要求1所述的移动计算设备,其中,所述调度管理器进一步被配置为:
根据与所述可执行应用程序的集合中的应用程序中的每个应用程序相关联的得分来确定所确定的可执行应用程序的集合中的应用程序的第二子集,其中,所述应用程序的第二子集包括具有满足或超过第二预定阈值的关联得分的应用程序;
使得在一个或多个远程计算设备上执行所述应用程序的第二子集中的应用程序;
获得关于所述应用程序的第二子集中的所执行的应用程序的有用性的反馈信息;以及基于所获得的关于所述应用程序的第二子集中的应用程序的所述执行的有用性的反馈信息来更新所述应用程序的第二子集中的应用程序中的每个应用程序的所述关联得分。
3.如权利要求2所述的移动计算设备,其中,根据与所述可执行应用程序的集合中的应用程序中的每个应用程序相关联的得分来确定所述可执行应用程序的第一子集包括:对于给定的一组当前上下文因素,根据与所述应用程序的集合中的应用程序中的每个应用程序相关联的得分来确定应用程序的第一子集。
4.如权利要求3所述的移动计算设备,其中,根据与所述应用程序的集合中的应用程序中的每个应用程序相关联的得分来确定所述应用程序的第二子集包括:对于所述一组当前上下文因素,根据与所述应用程序的集合中的应用程序中的每个应用程序相关联的得分来确定应用程序的第二子集。
5.如权利要求4所述的移动计算设备,进一步包括机器学习引擎,所述机器学习引擎是所述移动计算设备的可执行组件且被配置为:
获得关于所述应用程序的第一子集中的所执行的应用程序的有用性的所述反馈信息;
以及
对于给定的一组当前上下文因素,根据所获得的反馈来更新所述可执行应用程序的第一子集中的应用程序中的每个应用程序的所述关联得分的得分。
6.如权利要求5所述的移动计算设备,其中,所述机器学习引擎进一步被配置为:
获得关于所述应用程序的第二子集中的所执行的应用程序的有用性的所述反馈信息;
以及
根据所获得的反馈以及所述一组当前上下文因素来更新所述应用程序的第二子集中的应用程序中的每个应用程序的所述关联得分的得分。
7.一种用于向关联用户提供个人辅助的移动计算设备实现的方法,所述方法包括在移动计算设备上实现的以下中的每一项:
在所述移动计算设备的后台中执行个人守护程序,其中,所述个人守护程序代表所述关联用户执行一个或多个个人辅助动作;以及
在所述移动计算设备上执行调度管理器,其中,所述调度管理器对支持所述个人守护程序的一个或多个事件做出响应,并且响应于接收到事件,所述调度管理器管理所述移动计算设备上的应用程序的执行,以使得仅执行被判定为最有用的可执行应用程序,其中,所述调度管理器:
确定响应于接收到的事件的应用程序的集合;
根据与所述应用程序的集合中的应用程序中的每个应用程序相关联的得分来确定所确定的应用程序的集合中的应用程序的第一子集,其中,所述应用程序的第一子集包括具有满足或超过预定阈值的关联得分的应用程序;
在所述移动计算设备上执行所述应用程序的第一子集中的应用程序;
获得关于所述应用程序的第一子集中的所执行的应用程序的有用性的反馈信息;以及更新所述应用程序的第一子集中的应用程序中的每个应用程序的所述关联得分。
8.如权利要求7所述的计算设备实现的方法,其中,所述调度管理器进一步:
根据与所述应用程序的集合中的应用程序中的每个应用程序相关联的得分来确定所确定的应用程序的集合中的应用程序的第二子集,其中,所述应用程序的第二子集包括具有满足或超过第二预定阈值的关联得分的应用程序;
使得在一个或多个远程计算设备上执行所述应用程序的第二子集中的应用程序;
获得关于所述应用程序的第二子集中的所执行的应用程序的有用性的反馈信息;以及更新所述应用程序的第二子集中的应用程序中的每个应用程序的所述关联得分。
9.如权利要求8所述的计算设备实现的方法,其中,所述调度管理器进一步:
根据与所述应用程序的集合中的应用程序中的每个应用程序相关联的得分来确定所述应用程序的第一子集包括:对于一组当前上下文因素,根据与所述应用程序的集合中的应用程序中的每个应用程序相关联的得分来确定应用程序的第一子集;以及根据与所述应用程序的集合中的应用程序中的每个应用程序相关联的得分来确定所述应用程序的第二子集包括:对于所述一组当前上下文因素,根据与所述应用程序的集合中的应用程序中的每个应用程序相关联的得分来确定应用程序的第二子集。
10.一种承载计算机可执行指令的计算机可读介质,当在具有至少处理器和存储器的移动计算设备上执行时,所述计算机可执行指令实施权利要求7-9所述的方法中的任一方法。

说明书全文

基于激励的应用程序执行

背景技术

[0001] 越来越多的人正在表达和展示他们在使计算机理解他们且提供针对它们的特定需要和上下文而调整的个性化辅助方面的兴趣。当然,为了提供针对人的特定需要和上下文而调整的个性化的辅助,辅助进程必须知道人的很多方面,即,他或她的个人信息。事实上,进程知道的人的方面越多,该进程在个性化用于该人的信息方面越好。
[0002] 经常,个人最常拥有的计算设备是移动计算设备,例如,智能手机、平板计算设备、或所谓的“平板手机”——是作为智能手机和平板计算设备的混合的计算设备分类。一般而言,移动计算设备具有较少的处理能且以有限的功率资源进行操作。虽然一个人经常认为他/她可以一次在台式计算机上运行很多的服务和应用程序,但是在移动计算设备的上下文中这是不可行的。因此,在移动计算设备上执行的服务和应用程序必须被管理,尤其在提供个性化辅助的上下文中。发明内容
[0003] 提供下述发明内容以便以简化形式来引入下文在详述部分中进一步描述的构思的选择。该发明内容不意在确定所要求保护的主题的关键特征或主要特征,也不意在该发明内容用来限定权利要求主题的范围。
[0004] 根据公开的主题的各方面,提供了用于向关联用户提供个人助理的、作为后台进程在移动计算设备上执行的个人守护程序的系统和方法。还在移动计算设备上执行的是调度管理器。个人守护程序代表关联用户执行一个或多个个人辅助动作。调度管理器对支持个人守护程序的事件做出响应。更特别地,响应于接收到事件,调度管理器确定响应于接收到的事件的应用程序的集合,并且根据该组应用程序,至少标识出用于在移动计算设备上执行的应用程序的第一子集。调度管理器接收关于应用程序的第一子集的所执行的应用程序的有用性的反馈信息并且更新所述应用程序的第一子集中的每个应用程序的关联得分。
[0005] 根据公开的主题的另外的方面,提供了被配置为向与设备关联的用户提供个人辅助的移动计算设备。计算设备包括处理器和存储器,其中处理器执行指令以与附加的组件相结合地向关联用户提供个人辅助。这些附加的组件包括个人守护程序和调度管理器。个人守护程序被配置为在移动计算设备的后台中操作且代表关联用户执行一个或多个个人辅助动作。调度管理器被配置为:在接收到事件的通知时,确定响应于事件的应用程序的集合。另外,调度管理器标识出且执行移动计算设备上的所确定的应用程序的集合中的应用程序的第一子集。应用程序的第一子集是根据与该组应用程序中的每个应用程序相关联的得分来确定/标识的,其中应用程序的第一子集包括具有满足或超过预定阈值的关联得分的应用程序。除了执行应用程序的第一子集中的应用程序之外,调度管理器获得关于移动计算设备上的所执行的应用程序的有用性的反馈信息。基于该反馈,与应用程序的第一子集中的每个应用程序相关联的得分被更新以便进一步参考。附图说明
[0006] 公开的主题的前述的方面以及许多伴随的优点将变得更易于理解,这是由于在结合以下附图时参考下面的具体实施方式将更好地理解这些,在附图中:
[0007] 图1示出了向多个订阅者提供个人辅助/个性化的第三方、整体系统所共用的个人信息安全作为增加的个性化(具有对个人信息的相称增量的访问)的函数的关系的示例性的图表;
[0008] 图2是图示出适当地配置有个人守护程序的计算设备可以在其中操作的示例性的网络环境的图;
[0009] 图3是示出包括与同一用户相关联的多个计算设备的示例性的网络环境的图;
[0010] 图4是示出被适当地配置为通过个人守护程序来提供个人辅助的示例性的计算设备的框图
[0011] 图5是示出根据本公开的主题的方面的个人守护程序的示例性的处理阶段的框图;
[0012] 图6是示出通过个人守护程序提供个人辅助的流程图
[0013] 图7是示出对用户活动进行分析以学习和适应关联用户的附加个人信息的示例性的例程的流程图;
[0014] 图8是示出根据公开的主题的各方面所配置的调度管理器的示例性的组件的框图;
[0015] 图9是示出了在计算设备上执行应用程序的简化模式的绘图;以及
[0016] 图10是用于代表关联用户执行应用程序的示例性的例程的流程图。

具体实施方式

[0017] 为简要的目的,该文档中的术语“示例性的”应当解释为充当某事物的示例或实例,而不应解释为该事物的理想的和/或主要的图示。术语“个人信息”对应于关联用户的信息、数据、元数据、偏好、行为以及用于与用户交互的规则。一般而言,个人信息是代表了用户的某方面的关于关联用户的信息。个人信息可以包括诸如(通过示例而不是限制的方式)性别、年龄、教育、人口统计数据、居住地、公民身份等数据。个人信息还可以包括偏好和兴趣、技能、能力等。此外,个人信息可以包括在提供个人辅助时用于与关联用户交互的规则(包括由关联用户所确立的规则以及通过分析而学习和/或推断的规则,如下文所述)。
[0018] 通过下文描述的On{Event}架构所接收到和作用于其上的术语事件(event)是指通过源自硬件传感器软件指令、远程设备、检测到的条件等的由执行服务(诸如On{Event}架构)进行的拾取(picked up)。
[0019] 提供个性化辅助的一个解决方案可以是部署在线服务,该在线服务通过部署用于采集、存储、核对、分析和操纵从全世界采集到的大量数据的大量的计算机和/或处理器来为大量的订阅者提供个性化辅助。在该整体模型中,希望接收个性化辅助和/或建议的订阅者向在线服务提供各项个人信息,并且通常进一步允许在线服务监视订阅者生活的多个方面以学习关于他们的附加的个人信息。订阅者可能进行的几乎每一个活动(尤其是关于他们的计算机)被捕获和分析以识别附加的个人信息,这些活动包括但不限于在线行为、购买、偏好、从属关系、金融信息等。基于其采集和维护的其订阅者的聚集的个人信息,在线服务随后部署各种进程以提供个性化辅助。
[0020] 当然,如上所述运行大规模的整体在线服务是昂贵的。为了保持这样的大的在线服务可运行,在线服务必须具有收益流。然而,一般而言,订阅者/个体想要个性化辅助免费。不是直接对订阅者收取个性化服务的费用,在线服务转而将其订阅者的个人信息货币化。该货币化的常用短语是“广告资助”或“销售商资助”。在线服务将其订阅者的个人信息货币化,是通过识别出其订阅者中具有各种性格、兴趣、人口统计学和属性(如通过在线服务已经接收且学习的其订阅者的个人信息所确定的)的个体以及代表广告商通过将广告置于那些个体中将所识别的信息货币化。当然,销售引导至其订阅者的广告仅仅是整体在线服务(如上所述)能够将其订阅者的个人信息货币化的一种方式。可替代地,在线服务可以仅销售通讯录列表和/或信息。
[0021] 订阅者经常如此乐于接收到个性化辅助以至于他们忍受频繁呈现给他们的广告。而且,对于在线服务拥有多少他们的个人信息以及将其货币化/透露给第三方(例如,广告商、销售商、组织等),他们大多不知道且将是极其不安。当然,在线服务可能通过告诉说它不伤害其订阅者来安抚它的订阅者,而在线服务是矛盾的:在线服务通过将其订阅者的个人信息提供给第三方(无论是通过广告,销售通讯录列表等)来产生收益。而且,提供给第三方的个人信息越具体,在线服务所得到的金钱回报越大。不幸的是,所透露的个人信息越具体,险越大且一个人或多个人的透露的个人信息被滥用的可能性越大。
[0022] 当然,即使不考虑将个人信息透露给已知的第三方的风险,通过对于大量的订阅者简单地存储大量的个人信息,在线服务创建了对于身份盗窃的引诱的、诱人的目标。因此,虽然个性化辅助的平能够直接与已知的一个人的个人信息量相关,但是该人的个人安全性(由于透露的风险或者误用个人信息所带来的)也是在线服务所拥有的个人的个人信息量的函数。如图1所示,虽然理想的是高的个人安全性(即,个人信息的安全性)以及高个性化,但是实际上,通过整体在线服务,个人安全性(关于其个人信息的)的水平随着个性化水平增加而下降。
[0023] 与整体在线服务相比且根据公开主题的各方面,提供了操作在一个人的自己的计算设备上的个人守护程序。通过定义的方式,“守护程序”是运行于在计算设备上的执行的进程或线程,其在计算设备的后台中执行,而不是在计算机用户的直接控制下执行。然而,虽然守护程序在计算设备的后台中执行,但是计算机用户能够与守护程序交互,并且通过交互引导守护程序的活动。“个人守护程序”是在提供个性化辅助时对计算机用户的个人信息具有访问权、获取、推断、维护和作用于该个人信息的守护程序。个人守护程序监视关联用户的活动的很多方面以识别、推断和/或学习关于用户的附加的个人信息(何时以及何处可用)以及推断和学习用于代表用户作用的规则,即,向用户提供个性辅助。另外,个人守护程序可以学习和/或确认个人信息,尤其是关于代表用户作用的推断的信息和/或规则,通过对话和/或与用户的其它交互与用户相关,包括确认先前得到的关于用户的推断,请求用户偏好以及其它个人信息,等等。
[0024] 在向关联用户提供个人辅助的个人守护程序的上下文中,短语“个人辅助”应当解释为代表所基于的用户而实施一个或多个动作。典型地,虽然不是排他性的,个人辅助是通过与用户当前上下文的各方面有关的一个或多个事件触发的。通过示例而不是限制的方式,个人辅助的一个或多个动作可以包括:向用户提供用户采取特定动作的建议;代表用户获得数据和/或服务;根据对用户活动的分析向用户确认个人信息的推断;向用户确认个人守护程序代表用户所采取动作的授权;向用户提供关于一个或多个事件的通知;向当前用户活动提供替选项;推荐地点;在计算设备上代表用户来执行动作;推荐可替代的和/或有关的活动或项目;等等。如下文更详细论述的,个人守护程序基于规则、用户的个人信息和/或用户的当前上下文来向用户提供个人辅助。
[0025] 不同于采集和货币化其订阅者的个人信息的整体在线服务选项,根据公开的主题的各方面,个人守护程序不将关联用户的个人信息与其它的第三方实体共享,除了用户明确引导以及根据用户的明确引导。第三方实体对应于不为关联用户所有和/或仅对关联用户负责的任何实体。
[0026] 根据公开的主题的各个实施例,个人守护程序仅为了用户的利益而操作于用户的计算设备上。有益地,个人守护程序不会由于将用户个人信息货币化来支持其运作或外部的第三方实体的其它目的的需要而冲突。因此,个人守护程序享受用户亲密信任的位置且能够被视为用户的基于计算机的扩增。事实上,在真实的意义上,关联用户可将该关系称为“我们”关系,即我和我自己的个人守护程序。作为该高级信任的结果,用户更倾向于为个人守护程序提供对与关联用户和/或移动设备的他/她的使用有关的全部信息的较大程度的访问权,包括个人信息和/或机密信息。例如(为示例而不是限制),因为个人守护程序不将关联用户的个人信息与其它人共享,所以用户可能愿意允许个人守护程序读/扫描用户的电子邮件,对社交网络上的用户交互具有访问权且监视社交网络上的用户交互,跟踪用户的在线购买历史,维护用户的密码,分析移动设备上的全部的文件和数据流,等等。通过将该更高级别的信任灌输到关联用户中,并且获得对更大程度的个人信息的访问权,个人守护程序增强了能够提供给用户的个性化辅助的水平。如下文进一步详细阐述的,基于对个人信息的增强水平的访问权,通过推断关联用户的偏好和选择的强化循环,以及学习给定情形下的行为的规则,以及还验证那些推断,个人守护程序变成关联用户的扩增,反映关联用户的个性且提供赞赏的个人辅助。事实上,个人守护程序随着时间“成长”,变得更熟悉,理解和知道关于关联用户的更多的细节,并且能够更好地提供个人辅助。
[0027] 转到图2,图2是示出示例性的网络环境200的框图,适当地根据公开的主题的方面配置有个人守护程序的计算设备可在其中运行。更特别地,网络环境200包括适当地配置为代管个人守护程序204的用户的计算设备202。个人守护程序204代表个人/用户201在计算设备202上执行以向用户提供个人辅助。如将易于理解的,可配置有个人守护程序204的适当的计算设备通过示例而不是限制的方式包括:平板计算设备,诸如平板计算设备202;智能手机设备(未示出);所谓的“平板手机”计算设备(即,兼有典型的平板计算设备和智能手机设备的功能的计算设备);膝上型计算机;台式计算机;可佩戴计算设备;个人数字助理;等等。
[0028] 网络环境200还包括网络210,通过该网络,用户的计算设备202(通过组件、应用、应用程序等的方式)能够与连接到网络的网络可访问设备和/或在线服务通信以及访问它们,包括(通过示例而不是限制的方式):一个或多个其它用户计算设备,诸如与用户211相关联的计算设备212;社交网站,诸如社交网站218;在线网络服务,诸如搜索引擎216;购物和/或商务站点,诸如购物站点214,等等。
[0029] 根据公开的主题的各方面,个人守护程序204被配置为操作在“边”,意思是个人守护程序操作于用户的计算设备202上,与网络210连接或者不连接。当与网络210的连接可用(经由计算设备202与网络连接)时,执行在计算设备上的个人守护程序204能够访问数据和服务,用于将个人辅助提供给用户201。
[0030] 易于理解的是,许多用户具有多于一个的计算设备。事实上,通过示例的方式,常见的是用户具有智能手机、平板计算设备、膝上型计算机和/或台式计算机。因此,根据公开的主题的各方面,操作于诸如计算设备204的计算设备上的个人守护程序,可被配置为将关于关联的计算机用户201的个人信息与“同级(sibling)”个人守护程序共享,“同级”个人守护程序即与操作于另一计算设备上的同一用户相关联的个人守护程序。换言之,由于个人守护程序是一个人的自我的扩展,通过第一计算设备上的个人守护程序的一个实施例维护的个人信息能够将相同的和全部的个人信息与另一设备上的个人守护程序(同级个人守护程序)的另一实施例共享。此外,如下文所论述的,同级个人守护程序可被配置为进行协作以便于向关联的用户提供个人辅助。
[0031] 图3是示出包括与同一用户301相关联的多个计算设备302和306的示例性的网络环境300的图。能够看出,每个计算设备302和306被配置有个人守护程序304A和304B。这些个人守护程序304A和304B是同级个人守护程序,因为它们与同一用户301相关联。作为同级个人守护程序,它们可以(根据用户301授权)将关联用户的个人信息彼此共享,共享高速缓存的数据,共享和/或分布用户行为分析以识别个人信息,等等。数据、信息和活动的共享可以包括以分布方式的共享,即,在具有第一同级个人守护程序的计算设备上托管一些数据,将对监视到的用户事件的处理卸载到具有最佳的进行相应分析的能力的同级个人守护程序,等等。同级个人守护程序之间的相互通信可以按需发生(即,恰好及时的方式)、以安排的间隔发生,根据来自用户的明确的指示而发生等等。当然,当诸如处理容量、带宽、功率水平、数据访问等考虑可以是关于在同级个人守护程序之间分配任务的因素时,这些相同的考虑可用于确定单个的个人守护程序何时执行对用户活动的分析,生成关于用户个人信息的推断,确定对各事件做出响应的规则、以及链接。事实上,个人守护程序204可被配置为(或者可自配置为)对用户的计算设备具有最小的影响。
[0032] 现在转到图4,图4是示出适当地被配置为通过个人守护程序提供个人辅助的示例性的计算设备400的框图。示例性的计算设备400包括处理器402(或处理单元)和存储器404,它们通过系统总线410来互连。如易于理解的,存储器404典型地(但不总是)包括易失性存储器406和非易失性存储器408二者。易失性存储器406保持或存储信息,只要存储器被供电。相反,非易失性存储器408能够在甚至电源不可用时也存储(或保持)信息。一般而言,RAM和CPU高速缓存是易失性存储器406的示例,而ROM、固态存储器设备、存储器存储设备和/或存储卡是非易失性存储器408的示例。
[0033] 处理器402在实施各种功能时,尤其是关于执行向关联用户提供个人辅助的个人守护程序204时,执行从存储器404取回的指令。处理器402可由诸如单处理器、多处理器、单核单元和多核单元的各种商业可用处理器中的任一种构成。而且,本领域技术人员将意识到,公开的主题的新颖的方面可通过其它计算机系统配置来实施,包括但不限于:个人数字助理、可佩戴计算设备、智能手机设备、平板计算设备、平板手机计算设备、膝上型计算机、台式计算机等。
[0034] 系统总线410提供移动设备的各组件相互通信的接口。系统总线410可以是能够将各组件(包括内部组件和外部组件)互连的多种类型的总线结构中的任一种。计算设备400进一步包括用于将计算设备400与其它网络可访问计算机、在线服务和/或网络实体以及计算机网络210上的其它设备互连的网络通信组件412。网络通信组件412可被配置为经由有线连接、无线连接或者两者在网络108上与各计算机和设备通信。
[0035] 计算设备400还包括可执行应用程序/应用416。本领域技术人员将意识到,应用对应于在诸如计算设备400的计算设备上实施(通过指令在处理器上的执行)一个或多个任务的可执行指令的集合。应用典型地但不排他地在计算设备的用户的引导下执行。应用在实施各任务(如应用的组成部分所设计的)时组合计算设备上可用的特征。虽然术语“应用程序”有时用作应用的缩写名,在可替代方案中,应用程序类似地对应于用于实施一个或多个任务的可执行指令的集合。然而,与应用相比,应用程序典型地但非排他地涉及到经常聚焦于窄的话题/特征的有限的任务集合。由于应用程序的范围典型地比应用的范围更受限制,所以应用程序典型地要求关于系统资源有更小的印迹并且经常更适合于由有限资源的计算设备来执行。虽然应用程序/应用418典型地存储在存储器404中,仅为示例的目的,它们从存储器404单独地调出。
[0036] 示例性的计算设备400还包括传感器418。典型地,传感器对应于感测与计算设备400有关的特定事件的各种硬件设备。通过示例而不是限制的方式,传感器418可以包括加速度计、触觉传感器、电容传感器、音频传感器、光学传感器定时器温度传感器、电力传感器(AC对DC传感器、电压传感器等)、无线信号传感器、地理位置传感器磁传感器、测高计、气压传感器等。传感器可基于通信信息,诸如互联网路由数据、HTTP请求/响应检查、MAC地址、蜂窝/无线三测量学,等等。本领域技术人员将意识到,适当配置的计算设备400可以是硬件传感器418的各种组合。而且,这些硬件传感器以及软件传感器(如下文要论述的)用于经由On{Event}架构来监视用户上下文。
[0037] 示例性的计算设备400进一步包括个人守护程序组件420以及On{Event}架构440。个人守护程序420是可执行组件,当被执行时,该可执行组件是向用户提供个人辅助的个人守护程序204。如图4所示,个人守护程序420包括实施各功能的子组件/模,子组件/模块包括基于用户的当前上下文向关联用户提供个人辅助的个人辅助模块422。用户感测模块
424与On{Event}架构440交互以跟踪/感测用户当前内容的方面。数据分析模块426分析用户相关信息以做出和确认关于用户的推断,包括推断用户的附加个人信息。用户接口模块
428提供接口,通过该接口,用户能够与计算设备400上的个人守护程序204交互。个人守护程序组件420维护个人守护程序数据库430中的关于用户的个人信息,以及其它用户有关信息。
[0038] 关于On{Event}架构440,On{Event}架构(“架构”)是可扩展事件/动作架构,即架构检测关于一个或多个传感器(包括传感器418以及其他应用、应用程序、服务、远程信号等的事件)所发生的事件,并且作为响应执行与计算设备400上的检测的事件相关联的动作。其是可扩展的是因为,传感器能够被添加,包括软件传感器,并且订阅者能够订阅感测到的事件。
[0039] 根据公开的主题的各方面,传感器注册有架构440。通过缺省或者作为初始化进程的部分,全部或一些传感器418可注册架构440。另外地,应用程序和/或应用(包括应用程序/应用416)能够作为软件传感器注册有架构440,其中软件传感器识别出其将用信号发送的事件(或多个事件)以及可与发信号的事件相关联的数据。软件传感器通过公布器接口448来注册架构440。传感器,包括传感器418和软件传感器,通过传感器输入接口442用信号发送感测到的事件。如所指示,在接收到感测的事件时,规则执行器444执行与感测到的事件相关联的计算设备400上的一个或多个动作,如在On{Event}数据库450中确立的。应用程序和应用能够通过订阅接口446而注册作为架构440中的感测到的/用信号发送的事件的订阅者。在订阅感测到的事件时,应用程序或应用以及在计算设备400上执行的个人守护程序
204指示订阅应用程序、应用或守护程序希望被通知的事件。
[0040] 关于On{Event}架构440,虽然本领域技术人员将意识到可存在多个实现该架构的可替代方案,但是在一个实施例中,架构440被实现为根据来自Node.js开发者的Node.js技术构建的后台服务。Node.js技术是可扩展的且鲁棒的,使得其能够与诸如传感器418的硬件传感器以及软件传感器相接。类似地,个人守护程序组件420可以实现于Node.js技术上。应用程序和应用,包括应用程序/应用416,通过 代码与Node.js进程相接。虽然On{Event}架构440和个人守护程序组件420二者均可利用除了Node.js之外的其它技术来实现,但是Node.js可以有益地使用,因为其享受在诸如计算设备400的主计算设备上的相对小的印迹,具有用于部署在多个各操作系统平台上的配置,并且 编程语言享受广泛的支持。
[0041] 此外,示例性的计算设备400还包括调度管理器460。如下文将要进一步详述的,调度管理器460协调应用程序和应用416以及可供计算设备400使用但是由另一外部设备或服务提供的其它服务的执行。根据各个实施例,调度管理器460响应于检测到的来自各个传感器418(包括硬件传感器和软件传感器二者)的事件以及在提供个人守护程序420在向关联用户提供个性化辅助时可能需要的上下文信息/因素、服务和数据时与On{Event}架构420相结合地操作或者实现为On{Event}架构420的部分。在其它可替代的实施例中,调度管理器460可以实现为个人守护程序420的组件,或者独立地与个人守护程序420配合。
[0042] 关于示例性的计算设备400的各组件,本领域技术人员将意识到这些组件可以实现为存储在计算设备的存储器中的可执行软件模块,实现为硬件模块(包括SoC-片上系统)或两者的组合。而且,各种组件中的每一个可实现为独立的、协作的进程或设备,其与一个或多个计算机设备联合操作。当然,应当进一步理解,上文关于示例性的计算设备400所描述的各种组件应当视为用于实施各种所描述的功能的逻辑组件。本领域技术人员将易于意识到,逻辑组件和/或子系统可以或者可以不直接以一对一的方式对应于实际的离散的组件。在实际的实施例中,每台计算机系统的各组件可以组合在一起或者在多个实际的组件间分解,和/或实现为计算机网络上的协作进程。
[0043] 关于示例性的计算设备400,应当意识到,虽然个人守护程序被配置为经由计算设备的组件与关联用户交互,一般而言,个人守护程序独立于计算设备的任何特定配置。事实上,个人守护程序可以实现在任何适合的计算设备上并且可经由显示组件显示的消息、文本消息、音频和/或语音通信、触觉信号及其组合来进行通信。
[0044] 除了实现在一个计算设备上或者经由同级个人守护程序实现在多个计算设备之间之外,个人守护程序可被进一步配置为公共掩码以便在向关联用户提供个人辅助和/或执行对用户活动的分析以便于学习和/或推断关于用户的附加个人信息时以与其它服务和/或进程联合计算的方式协作地操作。然而,个人守护程序根据关联用户的许可而在该配置(联合计算)中操作并且在根据关联用户如此做的规则而将个人信息与联合的进程/服务共享方面受限制。根据公开的主题的各方面,除了根据关联用户的明确的规则将个人信息与其它第三方实体(例如,进程和/或服务)共享之外,个人守护程序可被配置为跟踪向这些其它实体公开了何种个人信息。在跟踪向其它实体公开个人信息时,个人守护程序能够通知关联用户已经公开了什么,使得用户可以标识出对可公开的个人信息量的限制。事实上,关联用户可以确立在个人守护程序对于任何一个实体或一组实体所请求的任何附加的个人信息感到迷惑之后可以公开对个人信息的限制。
[0045] 现在转到图5,图5是示出关于用户有关的活动的诸如个人守护程序204的个人守护程序的示例性的处理阶段的框图500。这些处理阶段代表了个人守护程序的强化循环,即,学习/推断关于关联用户的信息以及然后为关联用户的利益而应用该信息的过程。在讨论之前,假设个人守护程序接收到订阅事件501的通知。通过示例而不是限制的方式,事件可以指示用户的计算设备正在接收呼入的电话呼叫,或者关联的用户已经改变了他/她的位置(如计算设备上的地理位置传感器所感测到的)。
[0046] 在接收到订阅事件501的通知以及根据与事件关联的信息,个人守护程序判定是否针对事件而将个人辅助提供给关联的用户,如圆圈502所指示的。该判定基于关于关联用户的当前上下文的信息,包括用户的个人信息,以及之前为事件和上下文的特定组合所预先确立的规则。例如,假设关联的用户当前正在工作,且根据个人守护程序数据库432中的规则和个人信息,个人守护程序根据关于用户智能手机/计算设备的地理位置而接收到的事件得知此。另外,作为规则(个人守护程序已经通过推断而学习到的该规则、来自用户的明确的指导、或两者的组合),用户典型地不在工作的同时用他或她的智能手机打电话。然而,利用个人守护程序(也是通过推断、明确的指示或两者)确立了另外的规则,如果在午餐期间或者来自特定的个体(诸如配偶),则关联的用户将应答他或她的智能手机。因此,在圆圈502处,当订阅事件501关于呼入的电话呼叫时,个人守护程序接收事件并且根据其关于用户和用户当前上下文的规则来向用户提供个人辅助。因此,如果与事件相关联的信息表明呼入的电话呼叫来自熟人,则个人守护程序204可根据其内部规则来立即将呼入的电话呼叫引导到应答服务。可替代地,如果与事件501相关联的信息表明,呼入的电话呼叫来自配偶,则个人守护程序204能够通过允许呼入的呼叫在用户的智能手机上响铃而向关联用户提供个人辅助。
[0047] 除了提供立即的个人辅助之外,如圆圈504所指示的,个人守护程序204的另一部分关于用户信息数据库503中的接收到的事件501而记录信息/数据。根据公开的主题的各方面,个人守护程序204记录和登记事件、上下文和与用户和用户活动相关联的数据。该信息随后在分析用户信息时使用,如圆圈506所指示,用于学习并关于与用户有关的附加个人信息做出推断,并且还学习关于各事件和上下文向用户提供个人辅助的规则。该学习活动关于图7的例程700描述于下文中。当然,事件信息不是唯一地存储在用户信息数据库503中的数据。个人守护程序204,由于其可信的位置,也关于其它应用程序、应用、在线活动等监视用户活动以获得附加的个人信息。提交的搜索查询、浏览历史、社交网站交互、取回的新闻文章等记录在用户信息数据库中,使得分析活动(如圆圈506所指示)能够细化和扩增个人守护程序关于关联用户所维护的个人信息。虽然用户信息数据库503被指示为与个人守护程序数据库432分离的实体,但是这是为了示例的目的,而不应解释为限制公开的主题。根据各实施例,用户信息数据库503是个人守护程序数据库432的部分。
[0048] 在分析活动中,如圆圈506所指示,个人守护程序204分析用户信息数据库503中发现的关于关联用户的信息,连同且根据个人守护程序数据库432中的关于关联用户已知的个人信息。分析活动使用神经网络、机器学习模型、模式识别等来推断关于关联用户的信息。分析活动可以进一步通过确认对话来验证其对关联用户的推断,但是不一定与在得到各推断之时同步进行。该推断可以包括静态个人信息(例如,关联用户在哪工作,用户在社交网站上的用户名/密码,等)或者动态个人信息(例如,响应特定事件的规则,等)。基于分析的结果,关于关联用户的个人信息被细化和/或扩增于个人守护程序数据库432中。关于确认对话,虽然该“对话”可能涉及到经常称为“对话”或“对话控件”的用户接口控件,实际上,对话可以呈现为任意数量的形式的人与个人助理的交互,通过示例而不是限制的方式,包括口语指令和/或确认、触反馈、姿态,等等。
[0049] 应当意识到,如圆圈506所指示的分析活动经常包括与关联用户的确认对话。典型地,推断与一定的置信水平相关联。除了分析活动产生具有近似确定性的置信的推断的情形之外,个人守护程序经常需要在确认型对话中与用户交互,其中对个人信息的推断呈现给用户,以用于确认或拒绝。关于确定关联用户工作的地点的示例,根据第一推断,个人守护程序可以使关联用户参与诸如“这是你的工作地点吗”的对话。关联用户可以确认或拒绝该推断。例如,关联的用户可以表明,推断的地点不是工作地点,而是关联用户所就读的学校的地点。通过确认对话,以及推断的个人信息和规则的显式的阅览,用户掌握了对他/她的个人信息的完全的控制。
[0050] 作为学习/推断关于用户的附加个人信息的部分或者其结果,以及作为向关联用户提供个人辅助(圆圈502)的部分,个人守护程序可以采取主动步骤,诸如下载可能与用户相关的数据。例如,作为学习关联用户工作的地点的部分以及基于关于用户的他或她喜欢特定烹调法的个人信息,个人守护程序可以主动下载用户工作地点周围的餐厅信息以便将来参考。基于关于关联用户的工作地点和通勤习惯的个人信息,个人守护程序可以将规则与定时器事件相关联以检查通勤的交通情况并且当存在差的通勤状况时为用户提供建议。
[0051] 个人守护程序204所具有的相对于整体在线服务的不同的优点在于,个人守护程序仅需要维护与关联用户相关的数据。与关联用户相关的地图、餐厅、事件日历等以及记录诸如搜索查询、浏览历史、社交网络简档等用户相关信息,实质上需要比捕获和存储用于服务大量的用户的全部信息较少的存储容量。事实上,虽然与用户相关的信息的量很重要,但是在当前计算设备的容量的背景下,在计算设备上维护这些信息是可管理的。另外,由于个人守护程序位于“云边”,在信息当前不可用、是临时的或者超过其主计算设备的容量的程度上,个人守护程序204能够在线访问这些信息。例如,在获得关于关联用户的通勤的交通信息的上述示例中,个人守护程序可被配置为访问来自外部源的交通信息,而不是取回信息且将信息存储在用户信息数据库503中。
[0052] 如上所表明,个人守护程序204不将关于关联用户的个人信息与除了用户明确指导的实体之外的其它实体共享。例如,用户可以订阅社交网站,其中对网站的访问是通过提供密码来获得的。此外,个人守护程序可以确立每当特定用户将内容张贴在社交网站上就向关联用户提供通知的规则。虽然个人守护程序204可以关联定时器规则以便定期地检查社交网站上的这些贴文,但要访问该信息,个人守护程序需要提供用户的密码和账户信息给网站以获得访问权。当然,该活动是泄漏用户的个人信息。然而,基于个人守护程序所确立的规则以及根据关联用户的明确或推断的授权,个人守护程序可被授权以在向用户提供个人辅助时泄漏个人信息。当然,由于个人守护程序204提高了其向用户提供个人辅助的效率,所以当基于开发的模式和信任水平的置信度高时个人守护程序可以代表用户来采取动作。
[0053] 当然,在之前的示例中,网站可以捕获关于用户的一些个人信息,例如,用户偏好、人口统计信息、地理信息等。而且,网站还可以是销售商资助的,使得当访问该网站时向用户呈现广告。然后,这说明,虽然个人守护程序204不共享关于关联用户的个人信息,但是关联用户通过披露个人信息而访问销售商资助的网站,包括上述的整体在线网站,以及与其交互未受限制。
[0054] 图6是示出作为与用户有关的事件的响应在向关联用户提供个人辅助时,通过个人守护程序204所实现的示例性的例程600的流程图。从框602开始,个人守护程序204接收订阅事件501的通知。如上所说明的,订阅事件可以对应于硬件和软件传感器所感测到的任意数量的事件。在框604处,个人守护程序针对对应于接收到的事件的个人辅助规则来咨询个人守护程序数据库432。在决策框606处,对是否存在与接收到的事件相关联的任何规则做出判定。如果不存在与接收到的事件501相关联的规则,则例程600结束。可替代地,如果存在与接收到的事件501相关联的规则,则例程600进行到框608。
[0055] 在框608处,个人守护程序识别关于接收到的事件所要采取的个人辅助动作。在决策框610处,如果不采取任何动作,则例程600结束。然而,如果要采取动作,则在框612处,根据当前的约束来配置动作。一般而言,根据当前约束配置动作包括根据关联用户的当前上下文来适配动作的执行。针对来自个人守护程序数据库432的当前上下文,可以确定用于适配动作的个性化规则。例如,如果接收到的事件是关于关联用户的典型的回家路线的交通拥堵,则动作可以是将交通拥堵通知给用户且建议可替代方案。此外,用户的当前上下文可以是,他/她当前正在开会且他/她不应在会议期间被通知非紧急事项。因此,根据当前约束来配置动作将意味着,推迟所建议的可替代路线的递送,直至会议结束。在框614处,如果有任何约束,则配置的动作是根据来自框612的各约束来执行的。此后,例程600结束。
[0056] 如上所表明,个人守护程序的可信本质的优点之一在于,其能够利用其对关联用户个人信息的访问权来通过分析活动(参见图5的圆圈506)来学习附加个人信息,包括数据和行为规则二者,从而更充分地变成用户的扩展。图7是示出用于对用户活动进行分析以学习和适配关联用户的附加个人信息的示例性的例程700的流程图。从框702开始,分析用户的动作。该分析是在关联用户的当前和历史信息以及动作、当前确立的规则以及用户的个人信息(如通过个人守护程序在个人守护程序数据库430中维护的)来进行的。
[0057] 在框704处,根据框702的分析活动来生成一个或多个推断。这些推断产生关联用户的附加的和/或细化的个人信息,以及用于向用户提供个人辅助的附加的和/或细化的规则。如本文所使用,产生关于关联用户的推断对应于推断关于用户的信息,用于向用户提供个人辅助的规则,等等。如上所表明的,生成的推断是在各种事件以及关于用户的当前的和过去的关联上下文、关于事件的用户的交互和行为、用户的个人信息、以及先前推断的用于向用户提供个人辅助的规则上做出的。本领域技术人员将意识到,推断能够用来识别具体的上下文或动作,或者能够生成候选状态的概率分布。推断是概率性的,即,推断可与基于数据和事件的考虑而关于给定的感兴趣状态的发生的概率或可能性相关联。可采用推断技术来产生更高级事件,例如,根据一组记录的事件和/或已知或假设的数据来提供个人辅助的规则。因此,推断可以根据一组观察的事件和/或存储的事件数据来得到新信息或动作/规则的构造。有益地,推断可以根据不一定时间上密切相关的事件和数据而生成,和/或根据来自一个或多个源的事件和数据生成。
[0058] 假设生成的推断被确定为概率推断,在决策框706处,对所生成的任意推断是否足够“强”而无需由关联用户来确认它们做出判定。在一个示例性的实施例(为示例而不是限制)中,如果发生的可能性大于预定阈值,例如在给定相同(或基本相似)的事件、上下文和数据的情况下95%的估计的发生可能性,则推断足够强。在可替代的实施例中,在分析活动中生成的关于用户的个人信息或者用于向用户提供个人辅助的规则的全部推断在实现之前经用户确认。此外可替代地,当概率可能性超过预定阈值,例如75%的估计的发生可能性,则推断的个人信息和规则的实现和使用可以是有条件地等待进一步确认而发生。
[0059] 在一个或多个生成的推断不足够强的情形下,或者在全部的推断都应确认的情形下,在框708处,推断经用户确认。确认推断典型地涉及到用户交互来确认推断的个人数据和/或用于提供个人辅助的规则。在确认所生成的推断时,推断的依据可呈现给用户,即据此做出推断的事件、个人信息和上下文。通过个人守护程序所维护的全部的个人信息(包括用于提供个人辅助的数据和规则),关联用户对该数据具有完全的控制,使得他/她可以删除、修改、确认这些个人信息中的任意或全部部分。这是重要的,因为推断的规则可涉及到向另一服务或实体披露关于用户的个人信息,在该情况下,重要的是关联用户能够对该数据行使控制权(包括停止数据的散播、允许在特定上下文中披露,等等)。
[0060] 确认推断可涉及到个人守护程序与关联用户之间的对话(在用户的移动设备上),其中个人守护程序迭代遍历未经确认的推断,迭代地呈现每个未经确认的推断(以及可能的,其生成的依据)以及请求来自用户的反馈,包括接受、修改、推迟决策或拒绝。作为该对话方法的替选方案,或者除了该迭代对话方法,当在未经确认的推断可用于向用户提供个人辅助的条件下,特别引导至当前争议的未经确认推断的对话(即,在移动设备上向用户的呈现,这可涉及到在显示屏上显示信息、音频呈现、以某方式向用户发信号等)可以呈现给用户。例如,假设个人守护程序认识到关联用户正准备结束工作而去往他/她的家庭住址,则可以从个人守护程序向用户生成通知,表明守护程序检查用户的典型回家路线的交通状况。
[0061] 在框710处,在已经确认了生成的推断或者生成的推断足够强而使得用户不希望确认它们之后,关联用户的个人信息,包括用于提供个人辅助的数据和规则被更新。此后,例程700结束。
[0062] 如本领域技术人员将易于意识到的,通过对用户活动和数据的该分析过程,关于用户的推断的生成以及推断的确认,个人守护程序持续地使其自身适应于提供不断改进的个人辅助。持续的应用这些步骤(分析、推断、确认以及当然还有经由个人辅助的信息的应用)细化个人守护程序达到其不夸张地变成一个人自我的扩展的程度,反映关联用户的偏好和习惯。
[0063] 关于例程600和700,以及下文要描述的例程1000以及其它进程,虽然这些例程/进程是关于离散的步骤来表达的,但是这些步骤应当被视为本质上是逻辑的,并且可以或者可以不对应于特定实现方式的任何实际的和/或离散的步骤。这些步骤在各例程中呈现的顺序也不应解释为可实施步骤的唯一的顺序。而且,虽然这些例程包括公开的主题的各种新颖的特征,但在执行例程时也可以实施其它步骤(未列出)。此外,本领域技术人员将意识到,这些例程的逻辑步骤可以组合在一起或者由多个步骤构成。例程600、700和1000的步骤可以并行地或者串行地来实施。经常但不是排他地,各例程的功能以被具体实施在如关于图4所描述的计算设备上执行的软件(例如,应用、系统服务、库等)中。在各实施例中,各例程中的全部或一些还可以用硬件模块在计算机系统上来具体实施,包括但不限于片上系统、特别设计的处理器和或逻辑电路,等等。
[0064] 这些例程/进程典型地通过包括例程、函数、循环结构、诸如如果-那么以及如果-那么-否则语句的选择器、指定、算术运算等的可执行代码来实现。每个例程的确切的实现方式基于各实现配置和决策,包括编程语言、汇编器、目标处理器、操作环境和链接。本领域技术人员将易于意识到,在这些例程中标识的逻辑步骤可以通过任意数量的方式来实现,并且因此,上文阐述的逻辑描述足以使能达到类似的结果。
[0065] 虽然公开的主题的许多新颖的方面是通过在应用(也称为计算机程序)、应用程序(小的、通常为单一的或窄用途的应用)和/或方法中具体实施的例程来表达,但是这些方面还可以具体实施为由计算机可读介质存储的计算机可执行指令,也称为计算机可读存储介质。本领域技术人员将认识到,计算机可读介质能够代管计算机可执行指令以用于之后取回和执行。当存储在计算机可读存储设备上的计算机可执行指令被执行时,它们执行各步骤、方法和/或功能,包括那些上文结合各例程所描述的步骤、方法和例程。计算机可读介质的示例包括但不限于:光存储介质,诸如蓝光光盘、数字视频盘(DVD)、压缩盘(CD)、光盘盒等;磁存储介质,包括硬盘驱动器软盘、磁带等;存储器存储设备,诸如随机存取存储器(RAM)、只读存储器(ROM)、存储卡、拇指驱动器等;云存储(即,在线存储服务);等等。然而,为了本公开的目的,计算机可读介质明确地排除了载波和传播信号。
[0066] 根据公开的主题的各方面,若干技术益处是通过在替选方案上使用个人守护程序来实现的。通过示例的方式,这些技术益处包括在个人守护程序驻存且执行在“云边”时提供个人辅助的改进的等待时间,从而消除了与远程服务的通信时间;相应地,本地执行最小化网络的带宽使用;个人守护程序的元素(诸如通过分析来确定个人信息和推断)可以在非峰值处理时间内执行,即当用户对计算设备的需求低时;甚至当计算设备不具有网络连接时也能提供个人辅助;基于预测的需求来利用先发制人的信息高速缓存,该高速缓存可以在网络连接时完成;低的实现成本,因为个人守护程序操作于关联用户的自己的计算设备的界限内;提供实质上改进的数据安全性,因为在没有明确的规则应这样做时个人信息不与其它人共享;以及在没有第三方监督的情况下提供个人数据和个人辅助的主动扩增。
[0067] 利用可用于向关联用户提供个性化辅助的全部可能的应用程序、应用和服务,当个人守护程序204实现在通常计算资源(诸如处理带宽、可用功率、当前处理负荷、资源可用性等)上受限的移动计算设备(诸如计算设备202)上时,有益的是应当仅执行那些最可能为关联用户提供相关数据或特征的服务(或者应用程序或应用)。当然,最可能提供相关数据或功能的移动计算设备上的服务或应用程序或应用不是固定的集合——渲染的服务、数据和功能的重要性可根据当前上下文而变化。例如,在用户通勤时段期间以及在用户通勤往返工作的日子里,用于确定关联用户的往返工作的路线上的高速路拥堵的服务是重要的。在关联用户未通勤往返工作的时段或者在关联用户不去工作的日子里,这些服务不是特别有用。然而,甚至在关联用户通常不通勤的日子或时段,当个人守护程序204能够确定关联用户实际上正在通勤去工作时,执行用于确定高速路拥堵的服务对于个人守护程序向关联用户提供个性化辅助是有用的。
[0068] 根据公开的主题的各方面,调度管理器460用于协调在本地设备(例如,移动计算设备202)上以及在包括同级计算设备的远程设备上的应用程序、应用和服务(或者更适当地表述为在获得服务时)的执行。调度管理器460以提高的得分来奖励被确定为对于给定当前上下文提供有用数据的那些应用程序(通常用于应用程序、应用和/或服务),而以降低的得分来惩罚被确定为对于给定当前上下文未提供有用数据的应用程序。一般而言,使用调度管理器406,对于给定与较低(降低的)得分相关联的那些应用程序相同或相似的一组上下文条件,与较高(提高的)得分相关联的应用程序更加频繁地执行。
[0069] 根据通常能够分类为反馈和上下文的各种标准,对应用程序是否提供有用数据(或服务或功能)做出判定。反馈的要素包括但不限于:应用程序的显式的用户执行,以及用户执行的频率;用户与应用程序交互的类型和量;通过个人守护程序204执行应用以及执行的频率;通过个人守护程序反馈的显式评估,等等。上下文包括诸如一天中的时间、一周中的天、一年中的天、节日和节假日、地理位置、当前天气状况、关联用户是否当前正参加会议、关联用户是否在电话通话中、关联用户是否被判定为驾驶中、被配置为感测用户情感的可佩戴设备等项目。此外,上下文可以基于多于上下文标准列表的项目。上下文项目可基于推断:例如,由于其它事件的一个或多个应用程序的同时执行可以是当前未“列出”的上下文标准的强的指示。当然,随着个人守护程序204标识出这些推断,对于已知的上下文标准集合的添加可以扩增。这些标准是通过调度管理器460内(或者与调度管理器460一起操作)的机器学习引擎来评估的。将标识出执行的应用程序(或服务)的信息、反馈信号(可获得多于一个的反馈源)以及上下文信息提供给机器学习引擎,并且适当地更新与应用程序相关联的得分。包括反馈和上下文信息的信息存储有用于进一步参考的关于所执行的应用程序的信息。如本领域技术人员将意识到的,机器学习技术、算法和系统,还指的是神经网络,在本领域是公知的。
[0070] 转到图8,图8是示出了根据公开的主题的各方面而配置的调度管理器460的示例性的组件的框图。如图所示,示例性的调度管理器460包括应用程序/服务执行器804。应用程序/服务执行器804获得与计算设备202相关联的当前上下文,包括从定时器802获得当前的日期、时间、一年中的天以及一周中的天,并且根据调度管理器460所维护的应用程序/服务数据库808中所存储的应用程序、应用和服务来确定要执行的初始的应用集合。应用程序/服务执行器804根据在给定当前上下文信息的情况下的它们的得分来对应用程序(以及服务)进行排序。另外,应用程序/服务执行器804获得关于计算设备202的当前能力的信息,诸如(但不限于)设备的处理负荷、设备的处理能力、计算设备的电源的当前容量、网络连接的可用性和带宽、执行应用程序所需的数据/资源的可用性,等等。基于该信息,应用程序/服务执行器标识出初始集合的应用程序的第一子集并且为关联用户的利益而执行应用的第一子集中的应用程序。根据公开的主题的各方面,在该应用程序的第一子集中的应用程序的数量可以为零,表明当前不应采取任何动作。根据公开的主题的另外的方面,仅当与在给定当前上下文的情况下与应用程序相关联的得分满足或超过预定阈值时,才将应用程序包含在应用程序的第一子集中。
[0071] 可选地,以及除了标识出在计算设备202上执行的应用程序的第一子集之外,为了本地计算设备202的关联用户201的利益,应用程序/服务执行器804还可以标识出可由其它设备执行的初始集合的应用程序的第二子集,包括同级计算设备,诸如同级计算设备206。这些也是代表关联用户201而执行的。
[0072] 当然,应当意识到,除了应用程序的第一子集和第二子集之外,调度管理器460的应用程序/服务执行器804可进一步将处理资源分配给其它各种任务(包括由执行于本地计算设备上的应用程序、服务和/或各守护程序所提供的任务——称为服务处理)。事实上,应用程序/服务执行器804可以预算或分配用于服务处理的时间,尤其在这些处理需求落在执行应用程序的典型需求之外的情况下。例如,对大的数据集的分析或挖掘可能需要很大量的处理,但是能够作为后台服务执行且随时间推移而完成。当然,应用程序/服务执行器804可以在预算服务处理时考虑当前的处理负荷和需求。
[0073] 除了执行应用程序之外,应用程序/服务执行器804监视和/或接收上述的反馈。该反馈包括但不限于:应用程序的显式的用户执行以及用户执行的频率;用户与应用程序交互的类型和量;个人守护程序204对应用的执行以及执行频率;个人守护程序反馈的显式的评估,等等。上下文包括诸如一天中的时间、一周中的天、一年中的天、地理位置、关联用户是否当前正参加会议、关联用户是否在电话通话中、关联用户是否被判定为驾驶中等项目。当然,将应用程序的反馈和执行的上下文(包括应用是在本地还是远程地执行)提供给学习引擎806,在学习引擎806中,适当地更新在给定当前上下文的情况下与执行的应用程序相关联的得分。
[0074] 通过考虑到给定上下文来更新应用程序的得分,调度管理器对提供有用的数据、特征和/或服务的应用程序进行奖励,并且当由应用程序提供的数据、特征和/或服务不太有用时惩罚应用程序,并且利用该信息来高效地管理本地计算设备202上的应用程序的执行。典型地,模式将关于应用程序的执行而发展。图9是示出了在诸如计算设备202的计算设备上执行应用程序的简化模式900的绘图。仅为了图示的目的,简化的模式是循环的,分成8个时间段,P1-P8。应用程序,包括应用程序App1-App22,在各时间段期间执行。在简化模式900的各个时间段中所示出的应用程序之中表明应用程序是在本地还是远程地执行。为了图示的目的,那些在远程执行的应用程序通过双轮廓做出如此指示,诸如时间段P1的App2或者时间段P2的App5。从该简化模式中能够看出,存在应用程序在本地执行(这是由调度管理器460所确定的)的时间以及同一应用在远程执行的时间。例如,在时间段P1期间,应用程序App3在本地执行(如单个边界所指示的),而同一应用在时间段P4期间远程地执行。
[0075] 如上所述以及从图9中能够看出,不同数量的应用程序被执行(或者不被执行),取决于时间段以及计算设备的当前上下文。例如,假设时间段P6-P8与夜间相关,则代表关联用户执行的应用程序的数量与用户醒着的时候相比显著较低。
[0076] 现在转到图10,图10示出了用于代表用户执行应用程序的示例性的例程1000的流程图,如上文参考调度管理器460所描述的。在框1002处开始,调度管理器460接收事件的通知。该事件可对应于特定的时间(例如,一天中的时间,一周中的一天或者一年中的一天)或者对应于来自计算设备上的一个或多个传感器418的特定的事件。在框1004处,对可以与检测到的事件相关联或者响应于检测到的事件或者可以在给定当前上下文的情况下执行的应用程序做出判定,得到如上文结合图8所论述的应用程序的初始集合。在框1006处,开始迭代循环以迭代经过应用程序的初始集合中的每个应用程序。作为该迭代的部分,在框1008处,确定当前迭代的应用程序的得分(给定当前上下文和事件)。在确定了当前迭代的应用程序的得分之后,例程1000或者重复(返回框1006)以迭代到应用的初始集合中的另一应用程序,或者当没有更多要进行计分的应用程序时进行到框1010。
[0077] 在框1010处,确定应用程序的第一子集。如上所表明的,该应用程序的第一集合是根据那些具有最高得分以及考虑到本地计算设备202的当前的能力而满足或超过预定阈值的应用程序来确定的。在框1012处,执行第一子集中的应用程序。
[0078] 如上所表明,不是必须在本地计算设备202上执行全部的应用程序,而是相反应用程序可以在远程计算设备(诸如同级计算设备)上执行。相应地,在框1014处,可选地标识出应用程序的第二子集以便执行。如同应用程序的第一子集,这些是满足或超过预定阈值的应用程序——但是可能是特定于在远程设备上执行的应用程序的、不同于在应用程序的第一子集中的应用程序必须满足的那些阈值的不同的阈值。在框1016处,应用程序的第二子集中的应用程序在远程计算设备上执行。更具体地,使得应用程序的第二子集中的应用程序在远程计算设备上执行,因为调度管理器可以或者可以不能够直接执行远程设备上的应用程序。
[0079] 在框1018处,调度管理器460获得关于所执行的应用程序的成功或有用性的反馈。换言之,调度管理器460对于所执行的应用程序的反馈关于它们对于给定的当前上下文是否提供了有用的数据(成功)或者它们对于给定的当前上下文是否没有提供有用的数据(没有成功)而具有降低的得分。将该反馈信息提供给学习引擎806,并且在框1020处,更新对于给定当前执行上下文(包括执行应用程序的位置)的与应用程序(适当地)关联的得分。此后,例程1000进行到框1022,在框1022处,例程等待下一事件并且重复上述步骤。
[0080] 如将意识到的,奖励那些对于给定的上下文因素的集合提供了有用的信息、数据或功能的应用程序、应用和/或服务的迭代过程将开始对全部可用的应用程序、应用和/或服务的子集相对于全部其它的子集更有好感。然而,那些具有关联的较低得分或者可能根本无得分的应用程序实际上可能在某些时候对于关联用户具有极大的价值。为了确保调度管理器460持续地尝试改善调度用于执行的应用程序的总体表现,可以实现各种措施。当然,第一措施是,关联用户可以显式地引起可能的应用程序的执行。对于显式的用户执行的反馈可以足以使得应用程序的关联的得分升高至其能够对于给定的一组上下文因素满足预定阈值的水平。
[0081] 确保调度管理器460持续地尝试改善调度应用程序的总体表现的第二措施是,包括不满足用于在本地设备上执行的预定阈值的响应应用程序(被标识为对触发事件做出响应的应用程序),当计算设备的处理负荷充足时允许响应应用程序与满足预定阈值的其它应用程序一起执行。
[0082] 又一措施是与作为应用程序的关联得分的函数的待延迟的时间长度相关联。在这方面,应用程序(其关联得分落到预定阈值以下)在被认为可由调度管理器460执行之前将被延迟关联的时间长度。此外,类似的措施可以通过远程执行的应用程序来实现。因此,框1010和1014的确定可以根据上面的说明来修改以包括不满足关联的预定阈值的其它应用程序。
[0083] 虽然已经描述了公开主题的各新颖的方面,应当意识到,这些方面是示例性的,不应解释为限制。各方面的变型例和改动可以在不偏离公开主题的范围的情况下做出。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈