基于能力的应用推荐的制作方法

文档序号:6436464阅读:156来源:国知局
专利名称:基于能力的应用推荐的制作方法
技术领域
本发明涉及互联网领域,尤其涉及在线应用领域。
技术背景
在线商店的用户可获益于在浏览寻找商品或服务并最终购买商品或服务时的指导。为此,常规在线零售商(例如,Amazon , Netflix⑧…)依赖于推荐技术。这些技术基于指定人口统计信息(例如,年龄、性别、位置...)的用户简档来作出推荐,换言之建议。为改进推荐,还可利用过去购买历史和用户贡献的评级。
一种特定类型的在线商店是应用商店,其正在快速地成为分发软件以及更具体的第三方软件的优选方式。这里,用户可从商店获得用于他们的计算机或包括移动电话和个人数字助理等的计算设备的软件应用。由此,用户可获益于关于探索和定位应用的指导。与其他商品和服务类似,已经采用了用户简档、过去购买历史和他人评级来协助提供推荐。另外,一种常规的技术基于应用与用户设备的硬件和/或软件的兼容性来过滤应用。例如,如果应用需要地理位置硬件(例如,全球定位系统(GPQ接收机)而设备不包括这样的硬件, 则该应用将从一个或多个推荐的应用集合中被过滤掉或被移除。另一方面,如果设备的确包括这样的硬件,则该应用可被推荐。发明内容
下面呈现了简化的发明内容,以便提供对所公开主题的某些方面的基本概念。本发明内容不是广泛性的概观。它并不旨在标识关键/重要元素,也不旨在划定所要求保护主题的范围。其唯一的目的是以简化形式呈现一些概念,作为稍后呈现的更详细描述的序 、曰ο
简言之,本发明一般涉及基于能力的应用推荐。与基于能力的安全模型相关联的一个或多个能力可用作用于在软件应用之间进行辨别的基础。更具体地,软件应用被推荐给用户作为应用能力的功能。在一个实施例中,可在应用能力和在能力方面所指定的偏好之间作出比较以尝试标识匹配。随后,可通知用户满足他们的偏好并因此尊重用户的隐私和/或安全容差的一个或多个软件应用。
为实现上述及相关目的,在此结合以下描述和附图描述了所要求保护主题的某些说明性方面。这些方面指示可实践本主题的各种方式,它们均落在所要求保护主题的范围之内。当结合附图阅读以下详细描述时,本发明的其他优点和新颖特征将变得显而易见。


图1是推荐系统的框图。
图2是代表性数据获取组件的框图。
图3是便于应用提供的系统的框图。
图4A是推荐系统体系结构的框图。
图4B是推荐系统体系结构的框图。
图5是应用管理系统的框图。
图6是应用推荐的方法的流程图。
图7是应用推荐的方法的流程图。
图8是应用推荐的方法的流程图。
图9是应用管理的方法的流程图。
图10是示出用于本发明的各方面的合适操作环境的示意性框图。
具体实施方式
以下的细节一般涉及基于能力的应用推荐。能力指的是安全概念而非例如能够或有能力做某事的一般性质。更具体地,能力是参考对象的授权机构的令牌并包括与象相关联的访问权限。
软件是比可下载的音乐、书籍和通常在线(例如,跨网络)购买的大部分其他类型的商品更复杂。具体地,软件应用正变得日益强大和复杂。例如,软件应用可公开私人信息、 访问设备传感器(GPS、麦克风...),和/或与网络或者基于云的服务等通信。结果,在选择应用时,隐私和安全问题可能是一个重要因素。
如本文所提供的,能力被用作用于在软件应用之间进行辨别以及更具体的用于软件应用推荐的基础。虽然不限于此,但在一种情况下,在能力方面所捕捉的用户偏好可用于标识感兴趣的应用。可在应用能力和感兴趣的能力之间作出比较以尝试标识匹配。随后, 可向用户通知一个或多个匹配的软件应用。在一个特定的实施例中,如果软件应用被添加到具有匹配用户偏好的能力的应用存储中,则可向该用户通知该软件应用。在任何情况下, 本发明中的推荐模型根据隐私和/或安全问题来提供软件应用推荐。
现在参考附图更详细地描述本公开的各个方面,在全部附图中用相似的标记来指示相似或相应的元素。然而应该理解,附图及其相关详细描述不旨在将所要求保护的主题限于所公开的具体形式。相反,其意图是覆盖落在所要求保护主题的精神和范围之内的所有修改、等价物和替换的方案。
最初参考图1,示出提供了关于浏览并可能获得软件应用的指导的推荐系统100。 更具体地,推荐系统100可以基于多个因素中的至少一个来向用户推荐或换言之建议一个或多个应用。根据所要求保护的主题的一个方面,推荐系统100可利用各种能力来在应用之间进行辨别。
能力,如本文所使用的,旨在指代基于能力的安全模型中的安全概念而非例如能够或有能力做某事的一般性质。更具体地,能力是参考对象的授权机构的令牌并包括与对象相关联的访问权限。对象是可由计算机编程语言的指令操纵(例如,数据结构、程序结构体、传感器…)的任何实体(例如,硬件和/或软件)。访问权限标识对一对象的可允许的和/或不允许的操作。作为示例而非限制,能力可以参考地理位置硬件(例如GPS)并指定访问被允许。换言之,对于要如预期地起作用的应用,需要授权对地理位置硬件的访问。注意,计算机或其他基于处理器的设备是否包括这样的硬件是第一层要考虑的问题。第二层要考虑的问题是是否允许对可用硬件的访问。能力的其他示例包括对其他传感器(例如, 麦克风、陀螺仪、温度计...)的访问、对特定数据(例如,联系人、用户名和通行码)的访4问、对特定通信协议(例如,Wi-Fi、3G、CDMA...)的访问、对网络数据或网络服务的访问、本地地或远程地存储特定数据等。
推荐系统100包括数据获取组件110,其一般被配置为接收、检索或以其他方式获得或获取在制定应用推荐(例如,关于或针对特定应用)时有用的数据或信息。如图1所示,推荐系统100可获取一个或多个偏好、一个或多个能力和/或上下文信息等等。
简要地转向图2,更详细地示出了代表性数据获取组件110。如图所示,数据获取组件110包括用户偏好组件210、应用能力组件220和上下文组件230。用户偏好组件210 被配置成获取与就一个或能力而言可利用应用的人或实体相关联的偏好。例如,偏好可指示对地址簿或联系人的访问是允许的还是不允许的。另外,偏好可按照能力的组合来指定。 例如,对个人信息和通信硬件两者的访问是不被准许的,因为信息可能被泄露,但仅对个人信息或通信硬件中的一个的访问是被允许的。此外,偏好获取可以是显式的或隐式的。例如,用户偏好组件210可被配置成从用户接收对能力方面的偏好的指定或者问用户问题以从响应中确定偏好。此外,用户偏好组件210可例如从安装在用户计算机上的应用来推断偏好。此外,偏好可以是静态的,但偏好也可以是依赖于上下文的。由此,在用户例如在家里与在工作时,偏好或能力可能改变。
应用能力组件220被配置成接收、检索或以其他方式获得或获取与应用相关联的一个或多个能力。根据一个实施例,应用可包括清单或与清单相关联,该清单(可以是文件 (例如,XML(可扩展标记语言)))提供信息以促进应用(包括能力)的执行。由此,应用能力组件220可以从清单中定位并获取应用能力。以此方式,可以对这些信息重新确定目的并将其用于推荐。当然,应用能力组件220还可单独地从应用本身或结合其他信息来分析并确定或推断能力。例如,应用能力组件220可定位张贴在网页或社交网络上的软件评论和其他关于应用的评价并从这些信息中推断能力。
上下文组件230被配置成接收、检索或以其他方式获得或获取上下文或上下文信息以供后续用于促进推荐。如前所述,用户偏好可以是上下文敏感的。由此,上下文组件230 可提供信息来协助对用户偏好的指定和解释。作为示例而非限制,上下文组件230可提供位置信息以使得可利用日历信息、因特网服务供应商(ISP)和/或全球定位系统(GPS)等来指定和解释关于用户是在家还是在工作的偏好。
返回图1,匹配组件120可利用至少从数据获取组件110提供的信息来标识满足用户偏好的应用。更具体地,匹配组件120可将应用的一个或多个能力与作为偏好而指定的一个或多个能力进行比较并确定一个或多个能力何时匹配。当一设定数量个能力是偏好和应用两者所共有时,可认为发生了用户和应用之间的整体匹配。此外,根据一个实施例,可利用已知或新颖的相似性搜索(也称为最近邻居搜索或邻近度搜索)算法来促进对用户感兴趣的应用的标识。此处,可产生指示偏好和应用能力之间的相似度或不相似度的分数,并且按相似度或不相似度的范围或阈值来定义匹配。换言之,匹配不必是准确匹配而可以是某种程度的相关。
通知组件130通信耦合到匹配组件120,且被配置成在确定发生匹配之后通知用户。更具体地,可将关于应用的信息提供给用户。例如,通知可指示以下信息“因为你对与你的联系人进行集成的应用感兴趣,推荐应用X和Y”。通知可用各种方式来提供。例如,计算机可用与向用户通知软件更新可用的方式相似的方式来示出通知。此外,可发送文本或电子邮件等等。在任何情况下,通知组件130寻求向用户通知用户感兴趣的一个或多个应用是可用的。
另外,可采用关于相关性的反馈来细化匹配。这在采用相似性搜索或类似搜索的情况下尤其有用。与精确清楚表达查询的准确搜索(例如,选择id = 100的员工)不同,在相似性搜索中,相关性反馈允许用户迭代查询并对查询作出小的修正直到结果令人满意。 例如,用户可用可被用来细化建议的相关性指示来标记所建议的应用。
注意,推荐系统100不要求用户偏好起作用。在一种情况下,用户可能懒惰而不提供偏好,或者用户可能不想透露任何偏好。另外,用户可能不知道设备能力并因此不能够指定偏好。宽泛地,推荐系统100可基于能力并且可任选的根据上下文信息(不包括用户偏好)来标识应用。例如,可利用阈值数量个(例如,百分之九十)用户购买或喜欢某一应用的上下文信息来包括或排除应用。
将注意力转向图3,示出便于应用提供的系统300。系统300包括存储供后续查询或探索的软件应用和能力等的应用存储310。系统300还包括被配置成插入和更新关于应用存储310的应用的存储接口组件320。此外,系统300包括如先前参考图1所述的推荐系统100,以便根据一个或多个偏好、能力和可任选的上下文来推荐或换言之来建议应用。
如所提到的,存储接口组件320提供了用于插入和更新应用存储数据的手段。例如,软件开发者可利用存储接口组件320来将应用330提交给应用存储310或更新应用存储310中的现有应用。此外,应用330可包括清单332或与清单332相关联,清单332包括应用330需要的能力等以提供其全部功能(例如,对位置硬件的访问、对联系人的访问...)。 例如,清单332可以是指定一个或多个能力的句法和语义的XML文件或其他形式。在获取应用330和清单332之后,存储接口组件320可执行某些初步检查以例如确保应用330利用这些能力并随后将应用存储在应用存储310中。此外,存储接口组件320可将从清单332 获取的能力存储在能力存储312中以便于后续交互和推荐。启用关于更新应用存储310中的现有应用的类似功能。具体地,如果能力根据更新而被添加或移除,则存储接口组件320 可更新能力存储312来反映这些改变。
推荐系统100如先前所述地进行操作。简言之,推荐系统100可从用户获取按照一个或多个能力来指定的偏好,其中的某些可以是依赖于上下文的。随后,推荐系统100可搜索能力存储312以寻找与用户有关的能力相匹配的能力并向用户通知这样的匹配应用。 用户随后可与存储交互并免费或付费(如果需要)将一个或多个匹配应用下载到计算机。
根据一个实施例,应用存储可被监视,并且推荐系统100的动作可在将应用330插入到应用存储310中之后或在存储接口组件320对应用存储310中的现有应用更新之后被触发。例如,在将应用330插入到应用存储310中以及将应用能力添加到能力存储312之后,推荐系统100可被触发以标识新添加的应用的能力与一个或多个用户作为偏好而指定的能力之间的匹配。如果具有与用户偏好匹配或以其他方式满足用户偏好的能力的新应用被添加到应用存储310,则推荐系统100可向用户通知关于该应用的可用性,从而允许用户探索新的内容。类似地,如果现有应用更新修改了应用能力,则可通知具有匹配偏好的用户。换言之,系统300可根据基于推送的模型来进行操作,其中在将例如匹配用户偏好的应用添加到应用存储310之后推荐系统100通知用户。
图1的推荐系统100的功能可在如先前所述的单个推荐系统中具体化。然而,所要求保护的主题并不限于此。具体地,根据能力来作出推荐的一般功能可按多种不同的方式来具体化或在多种不同的体系结构中具体化,其中的两种在图4A-B中示出。
将注意力转向图4A,描绘了包括两个推荐系统,即第一推荐系统410和第二推荐系统420的推荐体系结构。根据一个实施例,第一推荐系统410可基于通常与其他在线商品和/或服务相关联诸如但不限于用户人口统计信息、过去购买历史和/或用户贡献的评级之类的因素来提供应用的推荐。第二推荐系统420可采用来自第一推荐的推荐并通过标识具有匹配用户偏好的能力的应用来细化推荐。所得推荐是第一推荐系统410和第二推荐系统420所提供的功能的合并。此外,应明白,逆向配置也是可能的,其中第一推荐系统 410根据能力来提供推荐而第二推荐系统420基于包括但不限于用户人口统计信息和过去购买历史的其他因素来细化推荐。
图4B示出包括第一推荐系统410和第二推荐系统420的另一推荐体系结构。此处,第二推荐系统的功能可被嵌入到第一推荐系统410中。在一个实施例中,第二推荐系统 420可对应于基于能力作出推荐的系统,而第一推荐系统410基于诸如通常与在线商品和/ 或服务等相关联的其他因素来作出推荐。通过嵌入第二推荐系统420,推荐计算分数可反映能力匹配。换言之,第一推荐系统可被扩充以在推荐时将能力匹配考虑在内。逆向也可适用。例如,第一推荐系统410可对应于基于能力作出推荐的系统,它通过嵌入与基于其他因素作出推荐的第二组件相关联的功能来被扩充。
参考图5,示出了应用管理系统500。应用管理系统可驻留在基于处理器的设备上或作为服务(例如,web服务/云服务)来提供。更具体地,应用管理系统可与如先前所述的推荐系统100交互并管理关于特定机器的应用。
如图所示,应用管理系统500可包括添加组件520和移除组件530。添加组件520 被配置成便于添加推荐系统100所推荐的软件应用。例如,添加组件520可被配置成自动下载并安装推荐系统100根据能力所建议的应用。作为对比,移除组件530可被配置成从机器移除应用。此外,推荐系统100能够基于按照能力来指定的偏好来推荐用户将不感兴趣的应用。由此,如果这样的“不推荐”应用驻留在机器上,则移除组件530可例如经由卸载来移除应用。另外地或另选地,添加组件520和移除组件530可分别被配置成激活或停用软件。
如先前所述,能力不必是静态的,而可以是依赖于上下文的。由此,应用是否满足用户偏好可基于上下文而改变。例如,考虑家庭对比工作的上下文。在这些上下文中,偏好以及因此的能力可能是不同的。例如,特定能力在家庭中可被准许但在工作中被禁止,诸如访问特定web服务。由此,当用户在家庭中时,添加组件520可激活这样的软件,而当用户在工作中时,移除组件530可停用这样的软件。当然,软件应用可被卸载和重新安装,但这是比激活和停用多得多的工作。作为另一示例,在旅行时,与应用相关联的特定应用和/或功能可被认为是合法的或非法的。结果,如果用户行进至应用是非法的的国家,则移除组件 530可停用或卸载这些应用。如果用户行进至该软件又是合法的另一国家,则添加组件520 可激活或重新安装该应用。
参考若干组件之间的交互已经描述了上述系统、体系结构、环境等。应该理解,这样的系统和组件可以包括这些组件或其中指定的子组件,某些指定的组件或子组件,和/ 或附加的组件。子组件也可以被实现为在通信上被耦合到其他组件而不是被包括在父组件中的组件。此外,一个或多个组件和/或子组件可以结合成提供聚集功能的单个组件。系统、组件、和/或子组件之间的通信可以根据推送(push)和/或拉取(pull)模型来实现。 各组件也可以与一个或多个其他组件进行交互,出于简要考虑在此未具体描述该组件但本领域的技术人员均已知。
此外,应该明白以上公开系统以及以下方法的各个部分可以包括或包含基于人工智能、机器学习或知识或规则的组件、子组件、进程、装置、方法或机制(例如,支持向量机、 神经网络、专家系统、贝叶斯信任网络、模糊逻辑、数据融合引擎、分类器等)。这样的组件和其它组件可以自动化执行某些机制或进程,由此使得系统和方法的各部分更为自适应、高效及智能。作为示例而非限制,推荐系统100可利用这样的功能来从例如当前安装的应用等中推断偏好和/或推断能力匹配。
考虑到以上描述的示例性系统,参考图6-9的流程图将可以更好地理解依照所公开主题而实现的方法。尽管为了说明简洁起见,作为一系列框示出和描述了方法,但是,应该理解,所要求保护的主题不仅限于所描述框的顺序,一些框可以按与此处所描绘和描述的不同的顺序进行和/或与其他框并发地进行。此外,并非全部所示出的框都是实现下面所描述的方法所必需的。
参考图6,示出了应用推荐600的方法。在参考标号610,可获取用户偏好。此处, 用户偏好可按照能力来指定。在一种情况中,用户可显式地指定偏好。以此方式,用户可具体地清楚表达例如用户对于允许应用访问什么设备资源是舒适的。另选地,这些偏好可从包括诸如当前安装的应用等的上下文中推断。例如,如果用户具有与联系人交互的应用,则可推断该用户对具有允许与联系人交互的能力的应用具有偏好。
在标号620,可获取应用能力。这些能力标识应用需要准许来访问什么对象以使得该应用能够执行其全部功能。根据一个实施例,能力可从与应用相关联的清单中被定位和检索。通常,提供清单来便于安装和执行等。此外,与基于能力的安全模型相关联的能力可被包括在清单中。另选地,可基于对应用的分析来确定或推断能力。
在参考标号630,一个或多个软件应用可根据应用能力和用户偏好来标识。更具体地,可在应用能力和按能力来指定的用户偏好之间作出比较。在应用的一个或多个能力匹配一个或多个用户偏好或者在预定阈值内以某种方式相关的情况下,可认为发生了匹配。 根据一个实施例,可执行相似性搜索来标识“匹配”用户偏好的软件应用。
在标号640,可向一个或多个用户通知一个或多个软件应用。更具体地,向用户通知或以其他方式告知满足他们关于一个或多个能力的偏好的软件应用。这样的通知可以通过电子邮件、文本消息或任何其他通信介质。根据一个实施例,这样的通知可按照与关于软件更新的常规通知类似的方式来发生,例如,显示关于工具条图标的气泡。然而,这些通知可向用户通知具有感兴趣的能力的新的或更新的软件是可用的。
虽然未示出,但可以明白,应用推荐方法600不必采用用户偏好作为匹配准则。另选地,可采用上下文信息。例如,一个或多个软件应用可根据软件应用的能力和购买、应用评级或其他上下文信息来标识。以此方式,可在用户偏好不可用时作出推荐,例如当用户不期望提供这样的信息时。当然,这样的上下文信息也可与可用偏好进行组合以提供更精细粒度的或更精确的建议。
此外,可采用相关性反馈来细化应用推荐。例如,可用相关性分数或相关性的类似指示来标记初始结果。随后,可重新运行在630标识一个或多个软件应用的动作来将相关性反馈考虑在内。随后,在640向用户通知应用集合的经细化的结果并且该过程可继续直到结果是另用户满意的。
图7示出一种应用推荐的方法700。在参考标号710,接收、检索或以其他方式获得或获取软件应用。例如,开发者可能提交了要被添加到应用存储的软件应用。在标号720, 可从例如与应用相关联的清单中标识与应用相关联的能力。在730,将所获取的应用和所标识的能力存储或保存到非易失性计算机可读介质。在参考标号740,发起应用的一个或多个能力与用户偏好的匹配。例如,响应于作为监视存储的结果而检测到对存储的改变,可发起匹配。换言之,发起比较以试图基于按一个或多个能力来指定的用户偏好来标识可能对应用感兴趣的用户。在参考标号750,向其感兴趣的能力匹配或在某一程度或阈值内以其他方式相关的用户通知该应用的添加。
图8是根据特定体系结构描绘了应用推荐方法800的流程图。在参考标号810,从推荐系统获取结果,该推荐系统基于诸如用户简档、人口统计信息、过去购买历史和用户贡献的评级等这样的因素来作出推荐。在标号820,根据至少一个能力以及与能力有关的至少一个用户偏好来过滤或以其他方式细化推荐系统的结果。以此方式,方法800示出结合基于其他因素来作出建议的推荐采用基于能力的推荐的一种方式。
图9示出一种应用管理的方法900。在参考标号910,标识软件应用。例如,可基于应用的能力和用户偏好来标识这样的应用。在标号920,标识上下文或上下文信息。具体地,上下文可与按能力来指定的用户偏好有关。在参考标号930,根据上下文来将所标识的软件应用添加到计算机或其他基于处理器的设备或从计算机或其他基于处理器的设备中移除。换言之,对具有特定能力的应用的兴趣可取决于上下文。由此,应用可基于当前上下文来安装/卸载、激活/停用。
此处使用的术语“组件”和“系统”及其各种形式旨在表示与计算机相关的实体, 其可以是硬件、硬件和软件的组合、软件、或执行中的软件。例如,组件可以是但不限于是, 在处理器上运行的进程、处理器、对象、实例、可执行程序、执行的线程、程序和/或计算机。 作为说明,在计算机上运行的应用和计算机都可以是组件。一个或多个组件可以驻留在进程和/或执行线程中,并且组件可以位于一个计算机内和/或分布在两个或更多的计算机之间。
在本文中使用的词语“示例性”或其各种形式意味着用作示例、实例或说明。在此被描述为“示例性”的任何方面或设计并不一定要被解释为相比其他方面或设计更优选或有利。此外,各示例只是出于清楚和理解的目的来提供的并且并不意味着以任何方式限制或约束所要求保护主题或本发明的相关部分。可以理解,本来可呈现不同范围的多个附加或替换示例,但出于简明的目的已被省略。
如此处所使用,术语“推论”或“推断”通常指的是从经由事件和/或数据捕捉的一组观察结果来推理或推断系统、环境、和/或用户状态的过程。可以使用推断来标识特定上下文或动作,也可以生成例如状态上的概率分布。推断可以是概率性的,即,基于对数据和事件的考虑,计算在感兴趣状态上的概率分布。推断也可以是指用于从一组事件和/或数据构成较高级别的事件的技术。这样的推断导致从一组观察到的事件和/或存储的事件数据构建新的事件或动作,不管事件在时间上是否紧密相关,以及事件和数据是来自一个还是多个事件和数据源。可采用各种分类方案和/或系统(例如,支持向量机、神经网络、 专家系统、贝叶斯信任网络、模糊逻辑、数据融合引擎……)来执行关于所要求保护的主题的自动化和/或推断的动作。
而且,对于在详细描述或权利要求书中使用术语“包括”、“包含”、“具有”、“含有” 或其它形式的变型而言,这样的术语旨在以类似于术语“包括”的方式体现包含性,如同“包括”在用作权利要求书中的过渡词时所解释的那样。
为了为所要求保护主题提供上下文,图10以及以下讨论旨在提供对其中可以实现本主题的各方面的合适环境的简要、概括描述。然而,合适的环境只是示例并且并非旨在对使用范围或功能提出任何限制。
尽管能够在可以在一台或多台计算机上运行的程序的计算机可执行指令的一般上下文中描述以上公开的系统和方法,但是,本领域的技术人员将认识到,各方面也可以与其他程序模块等相结合地实现。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件和数据结构等。此外,本领域技术人员可以理解,上述系统和方法可用各种计算机系统配置实现,包括单处理器、多处理器或多核处理器计算机系统、小型计算设备、大型计算机、以及个人计算机、手持式计算设备(例如,个人数字助理(PDA)、电话、 手表……)、基于微处理器或可编程消费者或工业电子设备等。各方面也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。然而,所要求保护主题的某些方面,如果不是所有方面的话,可以在独立计算机上实施。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中的一个或两者中。
参考图10,示出了示例通用计算机1010或计算设备(例如,台式机、膝上型计算机、服务器、手持式设备、可编程消费或工业电子产品、机顶盒、游戏系统……)。计算机1010 包括一个或多个处理器1020、存储器1030、系统总线1040、大容量存储1050、以及一个或多个接口组件1070。系统总线1040与至少上述系统组件通信地耦合。然而,可以理解,在其最简单的形式中,计算机1010可包括耦合到存储器1030的一个或多个处理器1020,该一个或多个处理器1020执行存储在存储器1030中的各种计算机可执行动作、指令和或组件。
处理器1020可以用通用处理器、数字信号处理器(DSP)、应用程序专用集成电路 (ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑设备、分立门或晶体管逻辑、分立硬件组件或被设计为执行此处描述的功能的其任意组合来实现。通用处理器可以是微处理器,但在替换方案中,处理器可以是任何处理器、控制器、微控制器、或状态机。处理器1020 还可被实现为计算设备的组合,例如DSP和微处理器的组合、多个微处理器、多核处理器、 结合一个DSP核的一个或多个微处理器、或任何其它这种配置。
计算机1010可包括各种计算机可读介质或以其他方式与各种计算机可读介质交互以便于控制计算机1010来实现所要求保护主题的一个或多个方面。计算机可读介质可以是能由计算机1010访问的任何可用介质,并包含易失性和非易失性介质以及可移动、不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。
计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据这样的信息的任意方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,存储器设备(例如,随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)……)、磁存储设备(例如,硬盘、软盘、磁带10盒、磁带……)、光盘(例如,紧致盘(CD)、数字多功能盘(DVD)……)、以及固态设备(例如, 固态驱动器(SSD)、闪存驱动器(例如,卡、棒、键驱动器……)……)、或者可用于存储所需信息并且可由计算机1010访问的任何其他介质。
通信介质通常以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任何信息传送介质。术语“已调制数据信号” 是指具有以在信号中编码信息的方式被设定或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RFjl 外及其他无线介质之类的无线介质。上述的任意组合也应包含在计算机可读介质的范围内。
存储器1030和大容量存储1050是计算机可读存储介质的示例。取决于计算设备的确切配置和类型,存储器1030可以是易失性的(例如RAM)、非易失性的(例如ROM、闪存……)或是两者的某种组合。作为示例,基本输入/输出系统(BIOS),包括诸如在启动期间在计算机1010内的元件之间传输信息的基本例程,可被存储在非易失性存储器中,而易失性存储器可担当外部高速缓存存储器以便于处理器1020的处理等。
大容量存储1050包括相对于存储器1030用于存储大量数据的可移动/不可移动、易失性/非易失性计算机存储介质。例如,大容量存储1050包括但不限于,诸如磁盘或光盘驱动器、软盘驱动器、闪存存储器、固态驱动器、或记忆棒的一个或多个设备。
存储器1030和大容量存储1050可包括或其中存储有操作系统1060、一个或多个应用1062、一个或多个程序模块1064和数据1066。操作系统1060用于控制和分配计算机 1010的资源。应用1062包括系统和应用软件中的一个或两个,并且可通过存储在存储器 1030和/或大容量存储1050中的程序模块1064和数据1066来利用操作系统1060对资源的管理以执行一个或多个动作。因此,应用1062可根据由此提供的逻辑来将通用计算机 1010变成专用机器。
所要求保护主题的全部或各部分可以使用产生控制计算机以实现所公开功能的软件、固件、硬件或其任意组合的标准编程和/或工程技术来实现。作为示例而非限制,推荐系统100可以是或形成应用1062的一部分,并且包括一个或多个模块1064以及存储在在由一个或多个处理器1020执行时可被实现的存储器和/或大容量存储1050中的数据 1066。
根据一个特定实施例,处理器1020可与片上系统(SOC)或在单个集成电路基座上包括或换言之集成硬件和软件的类似体系结构相对应。此处,处理器1020可包括至少与处理器1020和存储器1030相似的一个或多个处理器以及存储器等。常规处理器包括最少量的硬件和软件并且广泛依赖于外部硬件和软件。作为对比,处理器的SOC实现更强大,因为它将硬件和软件嵌入其中以能够用最少的硬件和软件或不依赖于外部硬件和软件来启用特定功能。例如,推荐系统100或相关联的功能可被嵌入到SOC体系结构中的硬件内。
计算机1010还包括通信地耦合到系统总线1040并方便与计算机1010的交互的一个或多个接口组件1070。作为示例,接口组件1070可以是端口(例如,串行、并行、 PCMCIA、USB、火线……)或接口卡(例如,声音、视频……)等等。在一个示例实现中,接口组件1070可被具体化为用户输入/输出接口,该用户输入/输出接口使得用户能够通过一个或多个输入设备(例如,诸如鼠标等定点设备、跟踪球、指示笔、触摸垫、键盘、话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、照相机、其他计算机……)来将命令和信息输入到计算机1010中。在另一示例实现中,接口组件1070可被具体化为输出外围接口,该输出外围接口向显示器(例如,CRT、LCD、等离子……)、扬声器、打印机和/或其他计算机等提供输出。此外,接口组件1070可被具体化为网络接口,该网络接口使得能够诸如通过有线或无线通信链路与其他计算设备(未示出)通信。
以上所已经描述的内容包括所要求保护主题的各方面的示例。当然,出于描绘所要求保护主题的目的而描述每一个可以想到的组件或方法的组合是不可能的,但本领域内的普通技术人员应该认识到,所要求保护主题的许多进一步的组合和排列都是可能的。从而,所公开的主题旨在涵盖落入所附权利要求书的精神和范围内的所有这样的变更、修改和变化。
权利要求
1.一种方法,包括采用被配置来执行存储在存储器(1030)中的计算机可执行指令以执行以下动作的至少一个处理器(1020)根据至少一个应用能力来标识一个或多个软件应用。
2.如权利要求1所述的方法,其特征在于,还包括根据至少一个用户偏好来标识所述一个或多个应用。
3.如权利要求2所述的方法,其特征在于,还包括基于上下文来推断所述至少一个用户偏好。
4.如权利要求2所述的方法,其特征在于,包括执行相似性搜索来标识所述一个或多个软件应用。
5.如权利要求1所述的方法,其特征在于,还包括生成标识所述一个或多个软件应用的通知。
6.一种便于标识软件应用的系统(100),包括耦合到存储器(1030)的处理器(1020),所述处理器(1020)被配置来执行存储在所述存储器(1030)中的以下计算机可执行组件匹配组件(120),所述匹配组件被配置为标识其一个或多个能力匹配感兴趣的一个或多个能力的至少一个软件应用。
7.如权利要求6所述的系统,其特征在于,所述至少一个软件应用的一个或多个能力被保存在应用存储中。
8.如权利要求7所述的系统,其特征在于,所述匹配组件被配置为在软件应用被添加到应用存储时发起对所述至少一个软件应用的标识。
9.如权利要求6所述的系统,其特征在于,所述匹配组件被配置为采用相似性搜索来标识所述一个或多个软件应用。
10.如权利要求6所述的系统,其特征在于,还包括通知组件,所述通知组件被配置为向一个或多个用户通知其能力与所述一个或多个用户感兴趣的能力匹配的一个或多个软件应用。
全文摘要
本发明描述了基于能力的应用推荐。与基于能力的安全模型相关联的能力可用作用于在软件应用之间进行辨别的基础。更具体地,软件应用可根据能力来标识。可在软件应用能力和感兴趣的能力之间作出比较以标识匹配。随后,可向用户通知任何匹配的软件应用。
文档编号G06Q30/02GK102521754SQ20111032855
公开日2012年6月27日 申请日期2011年10月17日 优先权日2010年10月18日
发明者D·马诺列斯库, H·J·M·梅杰 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1