远程执行的应用的发现的制作方法

文档序号:6443405阅读:129来源:国知局
专利名称:远程执行的应用的发现的制作方法
远程执行的应用的发现背景技术
本地应用可以包括软件或应用开发者由于察觉到其有用性或流行性而捆绑在一起的多个功能和/或功能类型。本地应用通常是经由在线或物理店面被售卖的。用户可以在线或者亲自购买本地应用,并携带回家或者接收存储应用的盘或其它介质,或者发起从在线源下载应用。一旦应用被下载或者接收,应用被安装在诸如计算机、智能电话等的计算设备上。
基于ffeb、基于云和/或其它远程执行的应用通常不会按照与本地应用相同的方式被安装在计算设备上。相反,应用典型地经由已安装的本地应用被访问或执行,所述本地应用例如是用于呈现和显示应用数据和/或其它内容的web浏览器或者运行时(runtime) 应用,其经由公共或专用应用编程接口(API)访问web服务器或其它位置提供的数据。
远程访问的应用通常必须被明确地搜索和/或在其它搜索期间被发现。虽然一些卖主提供他们的应用的基于web的和本地的版本,但是许多没有。这样,识别并使用基于 web的、基于云的和/或远程访问的应用可能给出许多挑战,即使对于经验丰富的计算机用户也是如此。
此处做出的公开就是关于这些和其它考虑而提出的。
概沭此处描述了用于基于web的、基于云的和/或远程执行的应用的发现以及应用的呈现的原理和技术。根据此处公开的原理和技术,搜索引擎搜索并识别应用。搜索引擎被配置成在诸如存储器、服务器或数据库之类的数据存储设备中生成、分类(categorize)和/或组织描述应用的数据。描述应用的数据能够以可搜索的格式被存储,并且能够使其在任意时刻对于搜索引擎都是可用的。搜索引擎能够提供相应于所识别的应用的搜索结果,并在搜索结果页面中和/或以web商店格式将搜索结果提供给搜索实体,该web商店格式提供用于购买、安装、访问和/或使用应用的界面。与应用使用相关联的数据能够被跟踪和使用以改善搜索结果和/或用于其它目的。应当理解搜索引擎也能够被配置成识别、分类、搜索、 呈现搜索结果和/或跟踪与应用的子特征相关联的数据。如此处使用的,词语“子特征”和其变形被用于指应用的特征、应用的插件和/或特征、插件、特征组的打包或组等。
根据一个方面,与搜索引擎通信的客户端生成查询并提交该查询至搜索引擎。该查询由搜索引擎执行以生成对搜索索引或者存储描述应用的数据的其它数据存储设备的查询。搜索引擎识别一个或多个应用,其满足查询或者与查询相关,并基于该应用生成搜索结果。
根据另一个方面,搜索引擎被配置成获取指示客户端处的活动(activity)、与客户端关联的活动历史、客户端处发生的一个或多个操作等的上下文数据。搜索引擎被配置成基于该上下文数据修改查询。搜索引擎还能够获取或访问与客户端的用户关联的社交网络数据。社交网络数据能够结合或者替代上下文数据而使用,从而基于用户社交网络的成员的使用、注释、评论或打分(rating)而修改查询。
根据另一个方面,由搜索引擎识别应用,识别应用或应用的子特征的数据被呈现给客户端作为搜索结果。搜索引擎被配置成提供识别信息给客户端,例如超链接等,以及还提供描述应用的信息。搜索引擎还被配置成生成与搜索结果一起呈现的广告,并基于查询、 上下文数据和/或社交网络数据对搜索结果分级(ranking)。应用的分级能够基于应用的流行度、应用的使用和其它信息。
根据另一个方面,搜索引擎被配置成跟踪搜索引擎和/或客户端的活动,并将该活动报告至诸如应用开发者的被授权实体。搜索引擎跟踪的数据能够涉及应用的性能、使用应用的时间和日子、应用的流行度和/或其它信息。搜索引擎跟踪的数据可以在被分析和/或提供给被授权实体之前被匿名。
根据各种实施方式,客户端设备被配置成执行传统的操作系统,在其它实施方式中,客户端设备被配置成执行基于Web的操作系统。因此,客户端设备可以执行操作系统或者其它基本程序,其被配置成访问基于web或其它远程执行的应用和服务以在客户端设备处提供特定的功能。客户端设备因此可以经由简单的操作系统或者类似于标准web浏览器的应用而提供多种应用和服务。
应当意识到上述主题可以被实现为计算机控制的装置、计算机进程、计算系统或者实现为诸如计算机可读存储介质之类的制造产品。通过阅读随后的详细描述和查看附图,这些和各种其它特征将变得明显。
提供这个概述以便按照简化的形式引入对原理的选择,其将在下面的详细描述中被进一步描述。这个概述其意不在识别所要求保护的主题的关键特征或必要特征,也不打算使用本概述来限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决此处公开的任意部分中提到的一些或全部缺点的实现。
附图简述

图1是图示用于此处公开的多种实施方式的示例性操作环境的系统图。
图2是示出用于根据示例性实施方式识别并分类应用的方法的多个方面的流程图。
图3是示出根据示例性实施方式用于搜索应用的方法的多个方面的流程图。
图4是示出根据示例性实施方式跟踪和报告应用度量信息的方法的多个方面的流程图。
图5是图示用于有能力实现此处提出的实施方式的多个方面的计算系统的示例性计算机硬件和软件架构的计算机架构图。
详细描述随后的详细描述针对用于远程执行的应用的发现的原理和技术。根据此处描述的原理和技术,搜索引擎搜索、识别并标引(index)应用。根据多种实施方式,搜索引擎标引基于 web的、基于云的和/或其它远程访问的应用,而不是本地应用,或者除了本地应用之外还标引所述引用。搜索引擎将描述应用的数据存储在搜索索引中,该搜索索引可由搜索引擎在执行查询期间访问。
根据一些实现,搜索引擎接收来自客户端的查询。搜索引擎被配置成确定描述与该客户端关联的上下文的上下文数据是否可用,并且如果可用,则接收该上下文数据。搜索引擎还被配置成确定与客户端的一个或多个用户相关联的社交网络数据是否可用,并且如果可用则接收该社交网络数据。基于查询、上下文数据和/或社交网络数据,搜索引擎识别一个或多个应用并生成相应于所识别的应用的搜索结果。搜索引擎还被配置成生成与搜索结果一起呈现的广告,并基于上下文数据、社交网络数据和/或查询项(term)对搜索结果分级。
搜索引擎提供搜索结果给客户端设备,带有用于访问应用的信息,并且如果有的话,带有由搜索引擎确定的广告。根据多种实施方式,搜索引擎被配置成跟踪使用、分级和广告数据并基于这些数据生成应用度量。搜索引擎提供该应用度量给被授权实体,以针对可靠性、性能、广告、分级和/或与应用关联的其它相关事项使用。
词语“应用”和其变形在此次被使用以指代用于为用户提供功能的计算机可执行文件。根据多种实施方式,应用能够由例如计算机、智能电话等设备执行。另外地,计算机、 智能电话或其它设备能够执行web浏览器或操作系统,其被配置成访问诸如基于web和/ 或其它远程执行应用之类的远程执行的应用和/或服务。在一些实施方式中,应用通过远程和本地执行的组合来提供,例如通过执行JavaScript、DHTML、AJAX、. ASP等。根据其它实施方式,应用包括建立以访问远程或本地数据的运行时(runtime)应用。这些运行时应用能够使用来自位于华盛顿雷德蒙德的微软公司的SILVERLIGHT产品族,来自位于加利福尼亚圣何塞的Adobe系统公司的A^和FLASH产品族,和/或其它产品和技术而建立。应用还能够包括web应用。
为了说明书和权利要求书的目的,短语“web应用,,和其变形被用来指代被配置成在web服务器和客户端上完整或部分地执行的应用。Web应用能够包括多层应用,其包括但不限于用于存储和/或供应(serve)由多层应用使用的数据的数据层,用于执行指令以提供应用的功能的逻辑层,用于再现和显示应用输出和/或用于与应用交互的界面的呈现层。应当理解此处提供的层的名称是示例性的,并且不应当以任何方式被解释成限制。
虽然该描述图示并描述了应用,但是应当理解此处图示和描述的原理和技术能够被应用于应用的子特征,如上面所描述的。这样,应当理解应用能够被定义为一个应用和/ 或应用的一个或多个子特征的集合或组。为了清楚的目的,描述一般提及应用,而没有明确地提及子特征等。因此,应当理解此处描述的应用能够包括完整的应用以及如此处定义的一个或多个应用子特征。
在一些实施方式中,服务器、计算机和/或数据库提供逻辑和数据层的功能,生成被提供给呈现层以用于再现的应用数据。在一些web应用的实现中,客户端通过再现从逻辑和/或数据层接收到的应用数据而提供与呈现层关联的功能。在一些实现中,web应用能够被封装以由客户端离线使用或者安装在客户端上。在这些实施方式中,客户端能够提供与逻辑、数据和呈现层关联的功能。应当再次注意到此处使用的词语“应用”和其变形包括但不限于web应用的上述定义。
虽然此处描述的主题在连同计算机系统上的操作系统和应用程序的执行一起执行的程序模块的一般性上下文中提出,但是本领域技术人员将认识到其它实现可以与其它类型的程序模块相结合地被执行。通常,程序模块包括例程、程序、组件、数据结构和执行特定任务或实现特定抽象数据类型的其它类型的结构。而且,本领域技术人员将意识到此处描述的主题可以使用其它计算机系统配置实施,包括手持设备、多处理器系统、基于微处理器或可编程消费电子设备、微型计算机、大型计算机等。
在下面的详细描述中,参考形成它的一部分的附图并且其中通过图示示出了特定实施方式或例子。现在参考附图,其中在多个附图中同样的数字代表同样的元件,用于发现远程执行的应用的计算系统、计算机可读存储介质和计算机实现的方法的多个方面将被提出。
现在参考图1,用于此处提出的多种实施方式的一个操作环境100的多个方面将被描述。在图1中示出的操作环境100包括服务器计算机102,在网络104上或者与网络 104相通信地操作。根据多种实施方式,由在互联网或者与互联网相通信地操作的web服务器提供服务器计算机102的功能,虽然这不是必须的情况。
服务器计算机102被配置成执行或存储应用106。在一些实施方式中,应用106是服务器应用,其可由服务器计算机102执行以提供与服务器计算机102相关联的功能。在其它实施方式中,服务器计算机102存储应用106并且允许其它设备和/或网络节点访问、 下载和/或修改该应用106。因此应当理解服务器计算机102能够包括但不限于应用服务器和/或数据服务器。
在一个示例性实施方式中,应用106可执行以提供地图应用,用于提供地图、导航指令、基于定位的服务等。应用106还能够提供多媒体功能,诸如视频和音频流、视频和音频回放功能等。应用106还能够提供工具,诸如相片、视频和音频编辑和创建应用、文字处理功能、数据备份和存储功能、日历应用、诸如电子邮件、文本消息、即时消息之类的消息应用、银行和财务应用、实时消息应用、购物应用、搜索应用等。上面的列表不是穷举的,因为应用106能够提供其它类型的功能。因此,上面的例子是示例性的,并且不应当以任何方式解释成限制。
根据多种实施方式,应用106由服务器计算机102执行。在应用106的执行期间, 服务器计算机102能够生成应用数据108。应用数据108能够包括与应用106相关联的输出。这样,应用数据108能够包括计算机可执行指令,其在由计算机或其它设备执行时使得计算机或其它设备显示与应用106相关联的输出。因此,应用106能够被执行,与应用106 相关联的输出能够被再现和显示在距离服务器计算机102远程的设备处。
根据多种实施方式,操作环境100还包括社交网络服务器110(“SN服务器”),其在网络104上或者与网络104相通信地操作。SN服务器110被配置成执行社交网络应用112 (“SN应用”)以提供社交网络服务给一个或多个用户。示例性社交网络服务包括但不限于 FACEB00K社交网络服务、LINKEDIN职业网络服务,YAMMER企业同事网络服务等。在其它实施方式中,社交网络功能由不是明确地称为社交网络提供商的其它服务、站点和/或提供商而提供。例如,一些网站允许用户经由电子邮件、聊天服务、游戏和/或其它方式而彼此交互,但没有明确地支持“社交网络服务”。这种服务的例子包括但不限于来自位于华盛顿雷德蒙德的微软公司的WINDOWS LIVE服务,此外还有别的。因此,应当意识到上面的社交网络服务的列表不是穷举的,为了简短的缘故多种社交网络服务在此处没有提及。
根据多种实施方式,SN应用112生成与社交网络服务相关联和/或与SN应用112 的一个或多个用户相关联的社交网络数据114 (“SN数据”)。因此,SN数据114能够描述例如与一个或多个用户相关联的社交网络图、团体和/或网络、诸如状态更新、相片、评论、 链接、视频等之类的用户内容,与一个或多个用户相关联的联系信息和传记信息等等。SN数据114还能够包括例如描述由社交网络服务的用户访问的应用106的信息,与由社交网络服务的用户访问的应用106相关联的链接和状态更新,其组合,等等。例如,SN数据114能够指示一个或多个用户是否已经访问应用106,如果需要的话。SN数据114还可以包括其它信息,诸如与一个或多个用户关联的喜好或讨厌,与一个或多个用户关联或由一个或多个用户生成的评论,与一个或多个用户关联或由一个或多个用户生成的连接请求,等等。应当意识到SN数据114能够包括任意类型的社交网络信息,所提供的例子是阐释性的。
根据多种实施方式,操作环境100包括搜索引擎116,其在网络104上或与网络 104相通信地操作。搜索引擎116的功能能够由一个或多个应用提供,其能够由一个或多个设备和/或设备组合执行。在一些实施方式中,搜索引擎116的功能由被配置成执行多种应用的一个或多个服务器计算机提供,虽然这不是必须的情况。
在图示的实施方式中,搜索引擎116的功能由web服务器提供,web服务器被配置成执行搜索应用118、分级应用120、广告应用122、分析应用IM和其它应用(未示出)。其它应用能够包括例如用于发现和标引应用106的发现应用,用于向搜索引擎116验证用户的验证应用,用于为搜索引擎116和/或应用106的使用而记账和/或计费的记账和/或计费模块或应用,以及其它应用和/或模块。
虽然搜索应用118、分级应用120、广告应用122和分析应用IM被图示为搜索引擎116的组件,但是应当理解这些组件中的每一个或其组合可以被具体实现为独立设备或其组件或在其中具体实现,该独立设备或其组件在网络104上或者与网络104相通信地操作。因此,图示的实施方式是示例性的,并且不应当以任何方式解释成限制。
搜索应用118被配置成为搜索引擎116提供搜索功能。例如,搜索应用118能够提供用于接收、解析、解释和执行搜索查询或其它请求的功能。搜索应用118被配置成识别一个或多个文档、文件、应用106和/或其它资源,其中的一些或全部能够作为搜索结果 126被呈现给搜索者或其它实体,或者全部不能够呈现。搜索结果1 能够经由搜索结果页面、至文档、文件、应用106和/或其它资源的链接等被传送给搜索者或其它实体,如通常已知的。在一些实施方式中,搜索结果1 相应于应用106并且以web商店格式(web store format)被呈现,应用106能够经由该web商店被访问和/或购买。因此,搜索结果1 能够包括数据用于在web商店界面中显示与应用106关联的信息。因此,搜索结果1 能够包括应用106的描述,与应用106的一个或多个版本和/或特征关联的价格,与应用106相关联的打分或评论等等。这些和其它数据能够由观看或访问搜索结果126的设备和/或呈现搜索结果126的web商店呈现或显示。用于呈现搜索结果126的这些和其它实施方式在此处被更详细地描述。
搜索结果126能够识别应用106,并能够通过一个或多个地址、名称、分类、功能描述等等识别应用。在一些实施方式中,应用106的位置通过与应用106关联的一个或多个统一资源定位符(URL)地址而识别。识别应用106或者网络上其他资源的位置的其它方法是公知的并且为了简短的缘由而未在此处示出。
搜索应用118还被配置成为搜索引擎116提供发现功能。根据多种实施方式,搜索应用118被配置成发现应用106,并存储描述应用106的数据。更特别地,搜索应用118 能够识别应用106以及与应用106相关联的功能。根据多种实施方式,应用106能够被配置成自我声明应用106的功能。例如,应用106能够包括计算机可执行指令,当由服务器计算机102执行时,该计算机可执行指令使得服务器计算机102自我声明应用106并提供描述应用106和/或其功能的数据或使得该数据可用。在其它实施方式中,搜索应用118被配置成在搜索或网络爬行(crawl)期间识别应用106,并生成描述与应用106关联的功能的数据。
在一些实施方式中,搜索应用118被进一步地配置成组织并分类描述应用106和 /或其功能的数据。描述应用106的数据可以被编目录、分类、组织并存储在搜索索引1 中。搜索索引1 的功能能够由一个或多个数据存储设备提供,诸如一个或多个数据库、服务器计算机、大容量存储设备、存储器设备、其组合,等等。
附加于或者代替搜索应用118识别、分类和/或组织描述应用106的数据,应用开发者被允许或请求封装并提交应用106给搜索引擎116和/或用于标引、分类、组织等等的其它设备。在一些实施方式中,开发者作者描述和/或描述应用106的功能的元数据、应用 106接受的输入的类型、应用106生成的输出的类型、与应用106关联的关键词或标签、应用 106的限制和/或能力、其组合等等。
分级应用120被配置成在搜索结果1 被提供给搜索者或其它实体之前,期间或之后提供搜索应用118所识别的搜索结果126的分级。根据多种实施方式,分级应用120 基于搜索结果126对于搜素者或其它实体的预期的相关性和/或基于其它考虑而分级搜索结果126。搜索结果1 还可以根据性能度量、用户打分和/或与应用106关联的其它信息而被分级。例如,搜索结果126可以基于与应用106关联的电量消耗被分级,其可以相应于执行应用106的处理器、计算机和/或服务器所消耗的能量。搜索结果还可以基于与应用 106关联的下载或访问的数量或频率、与应用106关联的用户打分或评论、开发者打分和评论等等而被分级。搜索结果126还可以基于与应用106关联的趋势而被分级。例如,由于与关联于搜索结果126的一个或多个应用106相关联的流行度有向上的趋势,可以增加搜索结果126的分级。类似地,基于与相应于搜索结果126的应用106相关联的否定趋势的评论、打分、注释等,能够减少搜索结果126的等级。这些例子是示例性的,并且不应当以任何方式解释成限制。此外,应当注意,根据用户或操作的需要和/或偏好,可以使用上述和 /或可替换的分级方法的任意组合。
搜索结果1 可以至少部分地基于一个或多个分级或广告方案而被分级。在一些实施方式中,应用开发者可以支付费用以增加相应于该应用开发者所创作的或与其关联的应用106的搜索结果126的分级。在其它实施方式中,实体可以付费或以其它方式参与程序以修改搜索结果126的分级。例如,在搜索结果页面、web商店界面或其它呈现界面中, 特定应用106和/或与该应用106相关的搜索结果126的放置可以被改善。为了这个应用的目的,“改善”搜索结果126的放置包括移动搜索结果126的位置以将搜索结果1 移动到增加了搜索结果126将被查看或选择的可能性的位置。如果搜索结果1 被呈现在列表中,例如,改善的搜索结果126的放置能够包括将搜索结果1 移动到搜索结果1 的列表的顶端。用于改善搜索结果126的放置和/或分级的这些和其它途径能够由分级应用118 管理和支配。这些例子是示例性的,并且不应当以任何方式解释成限制。
广告应用120被配置成生成广告130,以便与搜索结果1 一起或嵌入其中而呈现,并且管理广告130的位置和呈现。在一些实施方式中,广告应用120管理应用开发者和 /或其它实体(“广告客户(advertiser)”)的签订和/或广告活动(campaign) 0例如,广告客户能够支付费用或以其它方式参与广告服务,其被设计以根据市场营销计划选择和呈现广告130和/或增强或改善搜索结果126的呈现。例如,如果需要,与搜索结果1 相关7/21 页的屏幕截图或图标能够被包括在搜索结果126的列表中,其可以增加搜索者将点击搜索结果126的可能性。附加地或者可替换地,与特定搜索结果1 相关的文本或图像能够通过如下各项来装饰标签、窗口小部件(widget)、带有引起对搜索结果126的注意的颜色的高亮、在搜索结果页面或者在线商店上置于广告栏和/或以其它方式置于静态和/或显著位置等。
另外,广告应用120能够访问和/或管理广告130的储存库,诸如图像、文本、窗口小部件、视频、音频等。基于搜索和/或搜索引擎116感应到的其它活动,能够依靠广告应用120以选择、生成和/或呈现相关广告。此外,如果需要的话,广告应用120能够被用来在访问或执行应用106期间生成和呈现广告130。选择和呈现广告130的这些和其它途径能够由广告应用120管理并应用于搜索结果1 或者应用106。应当理解上述例子是示例性的,并且不应当以任何方式解释成限制。
应当理解搜索结果126的分级和放置、广告130的选择和放置能够是相关的和/ 或可以是统一的市场营销活动的一部分。这样,在一些实施方式中,分级应用118和广告应用120 —致地工作以根据市场营销计划分级并放置搜索结果1 以及选择并放置广告130。
分析应用IM被配置成跟踪应用度量并将应用度量报告给一个或多个实体。应用度量可以包括例如与应用106相关的搜索信息、与应用106相关的分级信息和与应用106 相关的广告信息。应用度量还能够包括指示应用106的使用、应用106的性能的数据以及指示应用106如何运行的信息。根据多种实施方式,用户能够起动或停用分析应用124的功能以解决察觉到的隐私和/或安全性的考虑。
如果用户选择进入(opts-in)分析应用IM的度量跟踪功能,则分析应用IM能够跟踪应用106的使用和/或其它活动,诸如搜索、查询、购物、登录、社交网络服务等等。所有这些信息能够由分析应用1 存储和/或分析,由分析应用IM匿名化,并报告给诸如与应用106的一个或多个相关联的应用开发者之类的实体。因此,应用开发者或其它被授权实体能够访问与应用106的使用和访问相关的多种信息。可以由分析应用IM跟踪的示例信息包括指示何种类型的用户访问应用106、应用106如何被使用、导致应用106的使用的搜索或其它活动的类型、应用106被使用是在一天中的什么时间、在一周中的周几、在一年中的哪个月等、与应用106的用户相关联的搜索历史、重复使用应用106的次数、访问或使用应用106的用户或设备的位置、应用106的用户的语言、应用106的使用持续时间、用户使用或访问的应用106的版本、其它信息等等的数据。这些例子是示例性的,并且不应当以任何方式解释成限制。
根据多种实施方式,操作环境100进一步包括客户端132。客户端132可以包括个人计算机(PC),诸如桌面电脑、平板电脑或膝上型计算机系统。客户端132可以包括其它类型的计算系统,包括但不限于服务器计算机、手持计算机、上网本计算机、嵌入式计算机系统、个人数字助理、移动电话、智能电话或其它计算设备。虽然未在图1中图示出,应当理解客户端132能够经由网络104与搜索引擎116通信。
客户端132被配置成执行操作系统134。根据多种实施方式,由客户端132执行的操作系统134是传统的操作系统,诸如来自华盛顿雷德蒙德的微软公司的WINDOWS操作系统族和/或基于web的操作系统。因此,应当理解根据多种实施方式,客户端132被配置或装备以执行位于客户端侧的传统的本地应用和/或程序,和/或访问应用106,其包括诸如10CN 102542039 Aweb应用和/或其它远程应用之类的远程执行的应用。客户端132能够接收应用数据108, 其能够由客户端132执行的操作系统134或应用程序136来呈现。在又另一个实施方式中,客户端132被配置成访问远程执行的应用并执行诸如脚本的一些本地代码、本地搜索等等。这样,客户端132能够被配置成访问或利用基于云、基于web和/或其它远程执行的应用,并在客户端132处呈现与那些应用相关的应用数据108。
在一些实施方式中,客户端132执行的应用程序136包括web浏览器或者用于访问基于web或运行时应用,并呈现由基于web的或运行时应用生成的数据以在客户端132 处使用的独立应用。因此,应用程序136能够包括一个或多个程序用于访问和呈现web页面、访问和呈现应用和/或访问和呈现服务。在一些实施方式中,应用程序136还包括独立或运行时应用,其被配置成经由公共或专用应用编程接口(API)和/或公共或专用网络连接来访问基于web的或者远程的资源和/或应用。因此,词语“应用”及其变形应当理解为包括本地执行的应用、远程执行的应用和/或部分在本地并部分在远程执行的应用。
根据一些实施方式,搜索引擎116被配置成接收或检索与客户端132相关联的上下文数据138。上下文数据138能够描述与客户端132关联的上下文信息。上下文信息能够指示例如由客户端132访问或执行的一个或多个远程或本地应用106。上下文数据138 能够由客户端132生成并且由搜索引擎116接收或检索。附加地或者可替换地,搜索引擎 116能够被授权以访问客户端132并基于在客户端132发生的一个或多个活动生成上下文数据138。
除了确定什么类型的活动在客户端132发生,上下文数据138能够指示在某个时间段上与客户端132关联的活动,所述时间段例如是在一天期间、前一个星期、前一个月等等。上下文数据138能够使客户端132处的一些或全部交互联系起来,包括web搜索、应用 106使用、电子邮件消息使用、地图使用等。
上下文数据138还能够描述完全在客户端132处进行的一个或多个动作 (action)。例如,上下文数据138可以指示在客户端132处光标或指示器的移动、在客户端 132处接收的文字与数字文本输入、在客户端132处特定位置或区域的点击、和/或在客户端132处接收到的其它移动或输入。这些和其它输入能够提示例如在客户端132处脚本和 /或代码的本地执行。这些动作能够被上下文数据138捕获并传送至搜索引擎116。这些和其它动作能够由相对于客户端132远程地或本地执行的应用居中处理(mediate)并因此不仅作为特定动作被上下文数据138捕获,还附加地或可替换地作为与远程或本地应用、 脚本或代码执行相关联的特定功能的专门调用被上下文数据138捕获。
在搜索期间和/或在分级、广告和/或搜索结果126的呈现和/或搜索期间生成的广告130期间,能够由搜索引擎116使用上下文数据138。在一些实施方式中,搜索应用 118在搜索功能期间使用上下文数据138以基于上下文数据138识别与客户端132相关的应用106和/或其它资源。搜索应用118能够基于上下文数据138包括搜索项或限制,这可以改善搜索结果126的相关性。在示例性实施方式中,上下文数据138指示客户端132 正在访问本地或远程音频文件。基于该上下文数据138,搜索应用118可以修改搜索或查询以识别与音频文件相关的应用106。这个例子是示例性的,并且不应当以任何方式解释成限制。
在一些实施方式中,附加于或者代替上下文数据138,搜索应用118接收或检索SN数据114。搜索应用118能够使用SN数据114识别被与特定用户(例如与客户端132关联的用户)相关联的社交网络的一个或多个成员使用、消费、评论、发表、注释,或者以其它方式提及的应用106。因此,搜索应用118能够基于与客户端132相关联的一个或多个上下文数据138和/或相应于客户端132的用户的一个或多个社交网络而修改搜索或查询。
根据多种实施方式,搜索引擎115识别应用106并在搜索引1 处存储描述应用 106的分类和/或以其它方式组织的数据。搜索引擎116从客户端132或其它实体接收搜索查询140。搜索引擎116执行查询140并查询搜索索引1 以识别满足所接收到的查询 140的一个或多个应用106。搜索引擎116还能够识别相应于应用106的一个或多个建议, 该应用106可能满足或者可能不满足查询140,但是无论如何相信对于搜索者是相关的或者有关系的。所识别的应用106能够由分级应用120分级,并由广告应用132生成广告130。
搜索应用118输出识别应用106的数据作为搜索结果126,如果需要,其能够带有广告130输出。搜索结果1 被提供给客户端132和/或其他设备。搜索结果126的分级以及与搜索结果126 —起提供的广告130被分析应用IM跟踪。这种信息能够被报告给一个或多个实体和/或用来影响所感知到的应用106与特定搜索查询的相关度,以分级搜索结果1 和/或生成广告130。分级的搜索结果1 被提供给客户端132。
客户端132能够接收来自客户端132的用户的输入,例如,在搜索结果1 和/或广告130中的一个上的点击。这种输入也被分析应用1 跟踪,被分析应用130匿名化和报告给一个或多个实体。如果来自客户端132的输入相应于对与到应用106的链接相对应的搜索结果126和/或广告130点击,则客户端132能够访问应用106。与应用106关联的应用数据108能够被客户端132访问,例如应用106能够被访问或远程执行,应用数据108 能够被传输至客户端132或由客户端132检索。
图1图示了一个服务器计算机102、一个网络104、一个SN服务器110、一个搜索引擎116、一个搜索索引1 和一个客户端132。然而,应当理解,操作环境100的一些实现包括多个服务器计算机102、多个网络104、多个SN服务器110、多个搜索引擎116、多个搜索索引1 和/或多个客户端132。因此,所图示的实施方式应当被理解为是示例性的,并且不应当以任何方式解释成限制。
现在转向图2,将详细地描述用于识别和分类应用106的方法200的方面。应当理解此处描述的方法的操作不是必须以任何特定次序存在,以可替换的次序执行操作中的一些或全部是可能的,也是已预期的。为了易于描述和图示,操作已经按照示范的次序被给出,这不是为了以任何方式限制该公开的目的。操作可以被增加、忽略和/或同时执行,而不脱离所附权利要求的范围。
还应当理解所图示的方法能够在任何时刻终止并且不需要各自全部执行。方法的一些或全部操作和/或基本等同的操作能够通过执行包括在计算机存储介质上的计算机可读指令的执行而执行,如此处定义的。术语“计算机可读指令”及其变形,如在说明书和权利要求书中所使用的,在此处被扩大地使用,包括例程、应用、应用模块、程序模块、程序、 组件、数据结构、算法等等。计算机可读指令能够在各种系统配置上实现,包括单处理器或者多处理器系统、小型计算机、大型计算机、个人电脑、手持计算设备、基于微处理器的可编程消费电子设备及以上的组合等等。
因此,应当意识到此处描述的逻辑操作被实现为(1)在计算系统上运行的计算机实现的动作或程序模块的序列和/或(2)在计算系统中的互连的机器逻辑电路或电路模块。该实现是根据计算系统的性能和其它要求而选择的主题。因此,此处描述的逻辑操作可不同地称之为状态、操作、结构设备、动作或模块。这些状态、操作、结构设备、动作和模块可以按照软件、固件、专用数字逻辑及其任意组合而实现。
为了图示和描述本公开的原理的目的,方法200被描述为由搜索引擎116经由执行诸如应用118、120、122、1M之类的一个或多个应用而执行。应当理解这个实施方式是示例性的并且不应当被看做以任何方式的限制。特别地,一个或多个附加的或者可替换的设备能够执行这些和/或其它应用,而不脱离本公开的范围。
方法200开始于操作202,其中搜索引擎116搜索应用106。根据多种实施方式, 搜索引擎116对与网络104通信的设备和软件执行周期性搜索以识别可经由网络104访问的应用106。在其它实施方式中,与网络104通信的设备和软件周期性地生成描述可经由网络104访问的应用106的数据,并将该数据传输至搜索引擎116。在再其它的实施方式中, 描述可经由网络104访问的应用106的数据由应用开发者提供并且与识别应用106的信息一起提交给搜索引擎116。
从操作202,方法200前进至操作204,其中搜索引擎116识别一个或多个应用 106。如上面提到的,搜索引擎116能够在搜索或者网络爬行过程中识别应用106。附加地或者可替换地,实体可以经由一种格式或者其它用户界面、电子邮件和/或其它方式提交识别应用106的信息给搜索引擎116。在一些实施方式中,应用106是web应用和/或按照诸如HTML、XHTML、JavaScript,DHTML, AJAX等之类的一种或多种基于web的语言和/或格式被编写。应用106能够使用扩展标签、META标签和/或其它标签或文本而修饰。在一些实施方式中,搜索引擎116至少部分地通过识别这些和/或其它标签或文本而识别应用 106。应当理解这些实施方式是示例性的,并且应用106能够以其它方式被识别。
从操作204,方法200前进至操作206,其中搜索引擎116确定应用特性并生成描述应用106的数据。描述应用106的数据能够包括例如与应用106关联的功能的描述和/ 或与应用106关联的一个或多个网络位置,例如识别应用106的位置的一个或多个URL。描述应用106的数据还能够包括计算要求、注册信息和/或要求、应用106版本号、可用性信息、容量或文件大小限制和/或要求及以上的组合等等。
如上面所提到的,在一些实施方式中,应用106是web应用并且能够使用扩展标签、META标签和/或其它标签和/或文本而修饰。在一些实施方式中,搜索引擎116至少部分地基于这些和/或其它标签和/或文本而生成描述应用106的数据。描述应用106的数据能够指示应用106如何被调用、应用106所要求的输入、应用106所产生的输出、用于访问或执行应用106和/或呈现应用数据108的计算、带宽和/或网络要求、应用106的可用性信息及以上的组合等等。描述应用106的数据还能够指示访问和/或执行应用106而调用的其它应用106、服务和/或资源。因为描述应用106的数据能够包括几乎任何与应用106相关或描述应用106的信息,所以应当理解,上面的数据的例子是示例性的,并且不应当以任何方式解释成限制。
从操作206,方法200前进至操作208,其中搜索引擎116组织描述应用106的数据。搜索引擎116能够根据数据的任何期望方面而组织描述应用106的数据。在一些实施方式中,例如,描述应用106的数据被基于与应用106关联的功能而分类和/或组织。例如,描述多媒体应用106的数据能够被存储在专用于多媒体应用106的一个数据类别中。类似地,多媒体应用能够基于多媒体的类型、应用的类型等等被组织在多个子类别或者其它区分中,诸如音乐应用、视频应用、幻灯片应用、重放应用、录制应用、编辑应用等等。这些例子应当被理解为是示例性的,并且不应当以任何方式解释成限制。
描述应用106的数据的类别和/或子类别可以基于广义或狭义的定义。例如,描述应用106的数据能够被组织到音频处理应用类别中,相对于音频应用类别和/或多媒体应用类别,该音频处理应用类别可以被认为是狭义类别。因此应当理解数据能够基于期望、 需要和/或偏好被组织到任意数量的类别、子类别和/或其它区分中。例如,描述应用106 的数据能够以一种或多种方式被组织或分类。例如,描述特定应用106的数据可以基于应用106的功能、以及应用106的带宽要求、应用106的花费、与应用106关联的作者身份、与应用106关联的评论、分级和/或打分、和/或其它特性而被组织或分类。因此,此处提供的例子应当被理解为是示例性的,并且不应当以任何方式解释成限制。
从操作208,方法200前进至操作210,其中搜索引擎116使用所组织的描述应用 106的数据更新搜索索引128。根据多种实现,搜索引擎116能够通过将数据添加至搜索索引1 而存储所组织的描述应用106的数据和/或能够更新搜索索引1 中的数据以将描述应用106的数据与存储在搜索索引1 中的数据合并在一起。在一些实施方式中,搜索索引128由索引服务器(未图示出)提供,该索引服务器被配置成将来自搜索索引1 的数据提供给搜索引擎116。在再其它的实施方式中,搜索索引1 被存储在与搜索引擎116关联的存储器设备中。该方法299结束于操作212。
现在转向图3,根据示例性实施方式,具体描述了用于搜索应用106的方法300。为了图示而非限制的目的,方法300被描述为由搜索引擎116执行。应当理解这个实施方式是示例性的,并且不应当以任何方式解释成限制。
方法300开始于操作302,其中搜索引擎116接收查询140。在所描述的实施方式中,搜索引擎116接收到的查询140与客户端132相关联,虽然这不是必须的情况。例如, 客户端132能够经由在客户端132执行的web浏览器或者其它应用程序或者经由OS 134 提交查询140至搜索引擎116,如通常已知的。
从操作302,方法300前进至操作304,其中搜索引擎116确定与客户端132关联的上下文数据138是否可用。上下文数据138描述在客户端132处发生的交互和/或与客户端132关联的使用历史。例如,上下文数据138可以描述由客户端132访问或利用的文件、资源和/或应用106、在客户端132处进行的操作等等。附加地或者可替换地,上下文数据138可以描述与客户端132关联的历史使用信息,诸如搜索历史、应用106访问历史、 使用时间等等。因此,上下文数据138描述在客户端132处正在发生的交互和/或在客户端132处已经发生的交互。如果搜索引擎116确定上下文数据138可用,方法300前进至操作306,其中搜索引擎116获得该上下文数据138。
从操作306,或者如果在操作304搜索引擎116确定上下文数据138不可用,则方法300前进至操作308,其中搜索引擎116确定SN数据114是否可用。虽然在图3中未示出,应当理解操作306能够包括识别与查询140关联的实体,消除实体的标识的歧义,并确定对于该识别并消除歧义性的用户而言SN数据114是否可用。
根据一些实施方式,客户端132在启动和/或当使用利用搜索引擎116的浏览器或其它应用程序136时执行登录过程或序列。根据一个实现,客户端132被配置成在启动时向搜索引擎116验证并登录到搜索引擎116。这样,在客户端132和搜索引擎116之间发生的所有活动能够与客户端132相关联。这样,搜索引擎116可能不需要消除客户端132 的用户的歧义,因为那些信息由于上面提出的登录/验证过程可能是已知的。应当意识到其它方法能够被用来将活动关联到特定用户或客户端132。例如,cookie或设备标识符可以被使用,以代替或附加于登录或其它验证方法以将活动关联到特定用户或设备。类似地, 一些唯一标识符能够与客户端132相关联并被传送至搜索引擎116,不需要任何来自用户的输入。同样地,图示的实施方式应当被理解为是示例性的。
在再另外的实施方式中,客户端132执行基于web的0S,其提供基于web的和/或其它远程访问的应用106。在一些基于web的OS的实施方式中,客户端132经由搜索引擎 116和/或其执行的模块或应用来访问应用106。在基于web的OS的一些实现中,用户在启动时登录到客户端132和/或向客户端132进行验证,客户端132使得身份信息可用于授权应用106和/或诸如搜索引擎116之类的授权搜索平台。这样,虽然未在图1中示出, 应当理解搜索引擎116和/或客户端132能够包括验证和/或登录模块或应用,用于验证和/或允许客户端132的用户登录。
如果搜索引擎116在操作308确定SN数据114可用,则方法300前进到操作310, 其中搜索引擎116从SN服务器110获得SN数据114。应当理解SN数据114能够与两个或多个社交网络相关。这样,操作310能够包括从一个或多个SN服务器110获得SN数据 114。此外,如上面提到的,SN数据114能够从其它源获取,所述其它源不是显式提供社交网络服务但是提供类似或者结合了典型地与社交网络服务相关联的某些方面(例如聊天、 状态更新、张贴链接等等)的服务。因此,应当理解搜索引擎116能够从任何期望的源获得 SN数据114。
如上面提到的,SN数据114能够包括指示一个或多个社交网络的一个或多个成员的数据、与客户端132的用户关联的一个或多个连接,以及相应于社交网络的其它数据。根据示例性实施方式,SN数据114相应于与客户端132的用户相关联的一个或多个社交网络。 SN数据114不仅能够指示与用户关联的社交网络的成员,还能够指示与社交网络的成员关联的注释、多媒体内容、链接、照片、状态更新、评论、打分、喜欢和反感、应用106、自传信息等。根据多种实施方式,SN数据114指示与客户端132的用户关联的社交网络的一个或多个成员所使用、访问或制作的应用106。
SN数据114能够被搜索引擎116用来按照该SN数据114搜索预期是客户端132 的用户所感兴趣的应用106。例如,搜索引擎116能够基于SN数据114确定与客户端132 的用户相关联的社交网络连接已经使用或访问特定应用106。基于这种使用或访问,搜索引擎116能够推断客户端132的用户将有兴趣使用或访问相同或类似的应用106。在一些实施方式中,应用106的打分或评论能够被用来识别用户的社交网络的成员喜爱或发现有用的应用106,能够由搜索引擎116使用的指示包括、排除和/或影响搜索结果1 中的应用 106的分级。这些和其它类型的SN数据114能够被搜索引擎116获得、访问、下载和/或使用。
从操作310,或者如果搜索引擎116在操作308确定SN数据114不可用,方法300 前进至操作312,其中搜索引擎116识别满足查询140的一个或多个应用106。搜索引擎116基于查询140搜索或查询搜索索引128,该查询140能够由搜索引擎116补充和/或修改以根据在操作304和308中确定的其可用性而不包括或包括上下文数据138和/或SN 数据114的一个或二者。
在一些实施方式中,搜索引擎116通过搜索在搜索索引1 中的数据以识别满足查询140中的项的应用,从而识别应用106。例如,如果搜索查询140包括“免费音频重放应用”,搜索引擎116能够查询搜索索引1 以识别应用106,该应用160是免费的,被设计以访问音频文件,并被配置成提供重放功能。搜索引擎116能够生成查询140的搜索结果 126,其中搜索结果1 满足查询140的一些或全部项或者不满足任何项。在搜索引擎116 没有识别完全满足查询140的任何应用的情况中,搜索引擎116能够呈现满足查询140的一些项和/或预期与查询140相关的搜索结果126,如果这种应用106存在的话。为了提供这种功能,搜索引擎116能够被配置成执行对查询140进行的自然语言处理和解析,以识别搜索项和/或应用所识别的项的层级。
在一些实现中,搜索引擎116基于上下文数据138修改查询140和/或搜索结果 126。因此,相应于上下文数据138的隐含信息能够被包括在查询140中以改善查询140的结果。在一个示例性实施方式中,客户端132正在使用相片编辑应用以观看照片。搜索引擎116从客户端132接收对于“红眼”的查询140。在特定环境下,由搜索引擎116执行这个查询140可以产生关于凌晨航班和/或滴眼液的结果。给定相片观看的上下文,这可以在上下文数据138中被提供,搜索引擎116能够使用诸如“相片”、“消除”、“编辑”等项补充搜索项,或者通过识别应用106,其被配置成编辑相应于正在客户端132处显示的相片的文件类型。将从此处公开中意识到,在这个例子中的搜索引擎116还能够识别红眼消除插件或者其它类型的应用106的子特征,并附加于或代替由应用开发者制作的完整应用提供与那些子特征相关的链接或其它结果。这个例子仅仅是阐释搜索引擎116如何基于上下文数据138补充搜索,并且不应当以任何方式解释成限制。此外,应当理解虽然该例子描述了基于上下文数据138缩窄查询140,但是上下文数据138还能够被用来扩展搜索,如果合适。
类似地,搜索引擎116能够使用SN数据114以通过增加项到查询140和/或通过移除或替代查询140中的项来修改查询140。例如,搜索引擎能够使用SN数据114以基于用户的社交网络的用户的选择、使用和/或评论而搜索预期是客户端132的用户感兴趣的任务。例如,如果查询140包括短语“红眼去除”,搜索引擎116可以访问SN数据114以确定客户端132的用户的连接是否使用过特定的相片编辑应用。如果特定的应用在用户的社交网络的成员中是流行的,搜索引擎116可以假设客户端132的用户同样地将会喜爱、喜欢应用106或发现其有用。类似地,搜索引擎116能够通知客户端132的用户社交网络连接已使用过特定应用106并且向客户端132的用户建议该应用106。
应当理解搜索引擎116能够基于上下文数据138和SN数据114产生多个推论和/ 或基于上下文数据138和SN数据114建议或修改搜索结果126。在上面的搜索“红眼”的例子中,其中上下文数据138和SN数据114的上述例子是存在的,搜索引擎可以将查询140 从“红眼”修改为包括由与客户端132的用户关联的连接使用、喜欢或高评分的相片编辑应用。应当理解上下文数据138和SN数据114的上述例子是示例性的,并且不应当以任何方式解释成限制。
从操作312,方法300前进至操作314,其中搜索引擎116分级搜索结果126。搜索引擎116能够基于上下文数据138和SN数据114以及其它要素中的一个或多个进行应用 106的分级。附加地,搜索引擎116能够确定如何基于其它用户对应用106的使用而分级应用106。例如,搜索引擎116能够监视应用106在时间上的使用,能够存储数据在搜索索引 128中,该数据不仅指示用于描述应用106的功能的描述信息,还指示统计信息或指示应用 106的使用的其它信息、在应用106被使用之前和之后的搜索或应用使用活动、应用106的使用次数和其它信息。
附加地,应用106的分级能够基于其它考虑。例如,实体或公司能够支付费用以便让特定应用106在搜索结果126中被首先列出的或者以升高的等级列出,用于与应用106 相关的搜索。例如,公司可以支付费用以便让视频重放应用在响应于关于视频重放的查询而生成的搜索结果126的顶部或接近顶部处列出。
从操作314,方法300前进至操作316,其中搜索引擎116生成广告130与搜索结果1 一起呈现。搜索引擎116能够确定广告是否应当与应用106—起被显示,如果是,则确定应当呈现什么类型的广告130。类似地,实体或公司能够支付费用以便让相应于一个或多个应用106的广告130在搜索结果页面上被列出或广告,该搜索结果页面相应于与应用 106相关的查询的搜索结果126。
从操作316,方法300前进至操作318,其中搜索引擎116呈现分级的搜索结果1 和广告130。搜索结果1 能够基于需要、要求和/或偏好以几乎任何期望的格式被呈现。 在一些实施方式中,搜索结果1 被呈现为命中的列表,其相应于所识别的应用106和/或其链接。命中的列表能够以搜索结果页面或其它格式被呈现。在其它实施方式中,所识别的应用106以web商店格式被呈现,其中应用106被提供有购买选项。用户可以具有访问应用106的试用版本、访问或付费应用106的受限功能版本和/或访问或付费应用106的完整功能版本的选择。因此,搜索引擎116能够与每个搜索结果1 一起呈现多个选项,如果希望的话。其它呈现格式和方法是可能的并且是已预期的。
类似地,搜索引擎116能够确定如何呈现广告130,如果合适的话。搜索引擎116 能够不仅确定与搜索结果1 一起呈现的广告130的内容,还确定广告的位置、广告的格式和广告130的呈现方法。广告130可以被呈现为文本、横幅广告、弹出(popup)窗口、视频、 音频、隐形弹出(popimder)窗口、新窗口、链接、赞助商链接等。这样,搜索引擎116能够在呈现搜索结果126和广告130之前确定用于呈现搜索结果1 和广告130的屏幕的布局。 方法300结束于操作320。
现在转向图4,根据示例性实施方式,详细描述了用于跟踪和报告应用度量的方法 400。为了阐释而非限制的目的,方法400被描述为由搜索引擎116执行。应当理解搜索引擎116能够通过执行分析应用IM和/或其它应用来提供此处描述的功能。这样,所描述的实施方式应当被理解为是示例性的,并且不应当以任何方式解释成限制。
如上面提到的,搜索引擎116和/或客户端132的一些实施方式支持统一的登录和/或验证。这样,搜索引擎116能够被配置成跟踪与客户端132关联的活动,如果被客户端132的用户授权的话。附加地,应当意识到搜索引擎116能够被配置成在多个客户端设备上面跟踪与特定用户或其它实体关联的活动,所述多个客户端设备包括但不限于客户端132。特别地,如此处公开的,此处公开的原理和技术支持统一的登录和/或其它授权方法,其能够被用于将多个设备中的活动与一个或多个实体关联起来。这样,搜索引擎116能17够被配置成跟踪与一个或多个实体关联的使用、偏好等,包括应用106的使用、应用的子特征、搜索引擎116的使用和/或其它活动。此外,搜索引擎116能够使用识别何种类型的客户端设备被用于访问搜索引擎116、应用106、应用的子特征等的数据,以作为用于与上下文数据138 —起考虑或包含在上下文数据138中的上下文信息。因此,这种上下文信息还能够被用于进一步改进查询140和/或搜索结果126。
在图4中所图示的实施方式中,假设搜索引擎116被配置成检测在客户端132处应用106的使用以及在客户端处的其它交互。例如,搜索引擎116可以检测在客户端132 处的交互,例如应用106的执行或访问、对搜索结果126的点击、对广告130的点击、在客户端132处的文本输入等等。由搜索引擎116检测到的交互还能够包括在客户端132处与一个或多个搜索结果126的交互、客户端132处与搜索结果1 提供的广告130的交互、与客户端132关联的搜索活动以及在客户端132与一个或多个基于web的或其它由客户端132 远程执行的应用106之间的交互。这些交互是示例性的。其它交互是可能的,并且是已预期的,在客户端132和/或搜索引擎116处的任何类型的交互能够促使或者从属于在下面描述的搜索引擎116的功能。
方法400开始于操作402,其中搜索引擎116跟踪与客户端132处的交互相关联的使用数据、广告数据和分级数据。搜索引擎116跟踪的使用数据指示客户端132处应用 106的使用。更特别地,使用数据能够指示在客户端132处何时使用应用106、与应用106 的使用相关联的一个或多个身份或用户,等等。使用数据还能够指示当应用106被访问或执行时在客户端132处执行的其它处理,与客户端132关联的搜索历史,用于访问应用106 的客户端132的地理和/或网络位置,与客户端132的用户关联的人口统计学信息和/或应用106被访问的地理位置,应用106被访问的一天、一周、一月或一年中的时间,其组合等等。使用数据还能够包括应用106被访问或执行的频率、为了相同或类似功能而由客户端 132访问的其它应用106,客户端132使用或访问的应用106的版本,等等。这些使用数据的例子是示例性的,并且不应当以任何方式解释成限制。
广告数据能够指示呈现给客户端132的广告130的类型。如上面参照图3所解释的,广告130能够由搜索引擎116响应于查询、上下文数据138和/或SN数据114而生成。 在一些实施方式中,搜索引擎116在生成时存储描述生成的广告130的数据。此外,广告数据能够指示在客户端132处广告130如何被显示和/或客户端132如何与生成和/或呈现的广告130相交互。广告数据能够指示例如特定类型的广告130的点击量。这样,与广告 130关联的被授权实体能够更精确地确定特定市场营销活动和/或特定类型的广告130的有效性,因为特定广告130图像的点击量可以指示广告130获得客户端132的用户的注意的程度。这些广告数据的例子是示例性的,并且不应当以任何方式解释成限制。
分级数据能够指示应用106怎样被搜索引擎116分级。例如,在一些实施方式中, 应用106基于应用106的相关度和/或流行度而被分级。跟踪的指示这个信息的数据对于应用开发者来说是有价值的,因为这种信息能够为开发者指示应用的什么项目或特征影响了应用的分级。
分级数据能够指示可能对于被授权方有用的其它分级信息。例如,通过名称或诸如URL、作者、版本号等之类的其它识别信息搜索特定应用106的次数能够由搜索引擎116 记录日志并可以被解释成指示应用106的相对流行度。此外,分级数据可以指示其它应用106分级高于该应用106,因为竞争者付费以使得他们的应用106分级更高等等。这种信息可以被呈现给被授权方以生成被授权方提高销售(upsell)的机会,例如通过诱使被授权方为他们的应用106购买改进的分级和/或放置。分级数据的这些例子是示例性的,并且不应当以任何方式解释成限制。
从操作402,方法400前进至操作404,其中搜索引擎116基于使用数据、广告数据和/或分级数据生成应用度量。在一些实施方式中,使用数据、广告数据和/或分级数据被直接提供给被授权方。在其它实施方式中,这些和/或其它数据被概括,该概括后的数据被呈现给被授权实体,例如应用开发者。虽然在图4中未图示出,都是应当理解度量能够以适合于各种系统或实体的多种格式被报告。这样,在报告度量至合适的一方之前,相应于度量的数据可以被导出至多种格式中。
从操作404,方法400前进至操作406,其中搜索引擎116提供应用度量至被授权实体。如上面解释的,用户能够被给予选择加入或选择退出应用度量的报告的能力。这样, 在将关于用户的任何信息包括在应用度量中之前,应用度量的生成和输出能够以用户批准为条件。方法400结束于操作414。
根据多种实施方式,搜索引擎116和/或与其关联的一个或多个模块使用SN数据 114以支持分享客户端132的特征。在一些实现中,客户端132的用户能够激活在客户端 132处的应用使用106的视频播送(vediocasting)。例如,客户端132的用户可以与SN数据114所指示的他的或她的社交网络的成员分享他的或她的游戏活动。社交网络的成员能够访问用户活动的第一人或第三人流视频馈送(feed),如果希望的话。
在其它实现中,用户使得能够实现应用活动的周期截图,其以规则的或不规则的间隔和类似方式被张贴,流传输指示在客户端132处的活动的即时新闻(news ticker)等。 在再其它实现中,客户端132生成社交网络服务或实时消息服务的状态更新,其中状态更新或实时消息指示客户端132处的活动或应用使用。在一些实施方式中,当使得能够分享时诸如横幅或闪烁指示符之类的警告在客户端132处被激活,以防止与客户端132相关联的活动的意外的分享。
用户能够访问这个和其它社交联网功能以确定他们的社交网络连接正在做什么, 如果这种信息被分享的话。在一些实施方式中,在客户端132处,“看看我的朋友在做什么” 的选项被呈现给用户。响应于选择这个选项,客户端132直接地或者经由搜索引擎116检索 SN数据114,并被提供一个或多个流视频窗口、即时新闻、音频文件、更新截图、列表等等, 其中多个图像、视频、文本和/或音频相应于与用户关联的多个连接。这样,用户能够同时地观看他的或她的社交网络连接中的一些、全部或不观看任何一个,并确定社交网络连接在进行何种活动。
如上面提到的,搜索引擎116能够被配置成检查应用更新或者命令其它设备或网络节点检查应用更新。如果应用106被更新,搜索引擎116能够标引和/或呈现应用106 的新版本和旧版本中的一个或二者。因此,根据用户的偏好、系统要求、设备能力和/或限制、需要等,搜索引擎116能够允许用户访问应用106的一个或多个版本。搜索引擎116能够周期性地或者基于请求检查应用106的更新,和/或当应用106的新版本发布时能够自动地通知,由此使得搜索引擎116能够快速地标引和访问应用106的新版本。
根据一些实施方式,此处公开的原理和技术还支持应用106的版本控制功能。特别地,在一些实施方式中,应用开发者出售应用106的功能受限版本或者使其可用,其可以是免费提供、名义上免费提供和/或相对于应用106的完整功能版本减少费用而提供。在一些实施方式中,上下文数据138指示用户具有应用106的功能受限版本。搜索引擎116 能够被配置成建议应用106的完整版本,例如,通过返回相应于应用106的完整版本的搜索结果U6。
搜索引擎116能够被配置成在应用106的新版本被发布或识别时更新搜索索引 128。在一些实例中,搜索引擎116使用应用106的新版本替代应用106的现有版本。在其它实例中,搜索引擎116标引应用106的新版本而不将应用106的旧版本从搜索索引1 中移除,由此允许访问应用106的一个或多个版本。如果应用106或应用106的版本不再得到支持,或者由搜索引擎116或者另一个设备确定为不可靠或可代替,搜索引擎116能够从搜索索引128中移除相应于应用106和/或应用106的版本的数据。
在一些实施方式中,与应用106关联的功能和/或功能组合能够附加于或代替应用106的完整版本而被搜索、标引、购买、测试、安装、访问、执行和/或使用。因此,除了应用 106之外,搜索引擎116还可以在搜索结果126中呈现功能。例如,如果由搜索引擎116执行关于文字处理的搜索,搜索结果126可以包括补充文字处理应用的功能(诸如拼写检查、 翻译、语法检查等等的功能)以及文字处理应用。这个实施方式是示例性的,并且不应当以任何方式解释成限制。
搜索引擎116还能够被配置成跟踪和报告关于应用106版本和特征升级和/或降级的度量。例如,可以向用户通知应用106的新版本是可用的。在购买新版本之后、自动地跟随链接等,应用106的新版本可以被安装。如果希望的话,这种升级可以被跟踪。类似地, 降级可以被跟踪。更特别地,用户或其它实体可以升级到应用106的新版本,可以被跟踪的事件如上面所解释的。在一些时候,用户或其它实体可以通过卸载应用106的新版本、访问应用106的旧的链接、明确选择降级选项等等回复到应用106的较旧版本。
这些降级能够被跟踪并报告给应用开发者或其它被授权实体,因为这种降级可以指示应用106的新版本存在的问题、对应用106的旧版本的偏好等等。虽然单个的降级可能具有很小的意义,但是降级的趋势可以向应用开发者或其它实体指示应用106的新版本具有一些需要被改正的问题。如上面关于应用106的新版本所解释的,搜索引擎116还能够标引并呈现应用特征更新,当这种更新可用时通知用户或其它实体,跟踪和报告特征升级, 以及跟踪和报告特征降级。
根据一些实施方式,客户端132的启动过程包括被传输至搜索引擎116的一系列搜索。该搜索由搜索引擎116执行以识别客户端132所使用的应用106的更新。该一系列搜索能够被保持为当前的以反映由客户端132使用或在其处安装的应用106,如果希望的话。
如上面提到的,搜索引擎116和/或客户端132支持统一的登录功能。根据多种实施方式,用户通过单个登录而登入客户端132和/或搜索引擎116。如果希望的话,单个登录能够被用于向一些或全部访问的应用106验证用户或者不能向任何访问的应用106验证用户。如上面提到的,客户端132的一些实施方式执行基于web的OS。在一些基于web 的OS的实现中,用户通过登录登入客户端132,客户端132在用户会话期间管理向应用106 和/或其它实体的登录。如果用户选择进入此处描述的应用度量功能,该统一的登录能够被用于将客户端132处的活动与用户相关联。在云计算场景中这个特征是尤其有用的,其中多于一个用户能够通过登录到共享的计算机而访问账户或计算环境。这样,搜索引擎116 可以被配置成区分与用户关联的活动和与特定客户端132或其它机器相关联的活动。类似地,搜索引擎116可以被配置成识别与同一个用户相关联的跨多种机器的活动,如上面解释的。
在一些实施方式中,一个或多个应用106在特定实体的控制下被提供(host),以允许该实体限制对应用106的访问,管理应用106的用户体验,保证足够的计算和网络资源对于应用106可用,保证关于应用106的隐私和安全限制和策略,等等。在一些实施方式中, 相同的实体控制搜索引擎116。这样,此处公开的跟踪和度量报告能够被简化,因为提供应用的实体还提供搜索引擎116,由此避免了在客户端132、服务器计算机102和/或搜索引擎116之间的通信。附加地或可替换地,客户端132能够执行经由搜索引擎116供应应用 106、服务和/或资源的web OS,由此允许跟踪客户端132活动,不需要在客户端132和搜索引擎116之间密集的通信。
搜索引擎116还能识别或维护应用106的黑名单。能够基于恶意活动、不准确或误导的描述等等而将应用106置于黑名单中。即使由搜索引擎116识别为满足查询140,也能够从客户端132处拒绝、由搜索引擎116阻止和/或以其他方式限制访问黑名单中的应用106。附加地或可替换地,黑名单中的应用106在搜索结果1 中的出现能够提示搜索引擎116生成警告或报告给客户端132等等。根据一些实施方式,搜索引擎116被配置成访问病毒警报和/或其它源以识别与恶意活动相关联的应用106。在一些实施方式中,不合适的应用106、具有不准确或误导的描述的应用106等等能够经由一种或多种接口或形式被报告给搜索引擎116。
根据一些实施方式,访问应用106能够基于执行历史、带宽限制、订户费用等等而被限制或改进。例如,应用106可以由搜索引擎116标引为免费的。虽然应用106可以被标引为免费的,但是访问应用106可以被限制,除非与应用106关联的实体支付额外费用。 限制访问应用106的方法包括对如下各项施加限制允许同时执行或者在规定的时间段期间执行的应用106的实例的数目、允许在规定的时间段期间访问应用106的用户的数目、支持应用106或应用数据108的传输所专用的或对其可用的带宽量、应用106在搜索结果1 中被提供的次数等等。这些例子是示例性的,并且不应当以任何方式解释成限制。
根据多种实施方式,搜索引擎116或诸如记账/计费模块或其它软件和/或硬件之类的另一个设备被配置成提供计费和/或记账功能。因此,搜索引擎116能够因访问、下载和/或使用应用106而对用户计费或记账。根据一些实施方式,搜索引擎116被配置成提供与应用106关联的微计费(microcharge)功能。例如,如果用户点击与特定应用106关联的链接或广告130,提供搜索功能和/或分级和广告功能的实体能够跟踪该点击并产生费用,该费用对与该链接或广告130关联的实体计费或记账。在一些实施方式中,该计费是在每次点击搜索结果126或广告130、每次显示广告130等等时而生成的微计费。微计费能够包括例如以部分的分、分和/或元的量级被计费。如果希望的话,微计费能够根据任何期望的日程表和/或时间间隔被跟踪并记账。
在一些实施方式中,应用106能够被置于赠品登记或期望列表。因此,应用106能够为他人购买和/或被赠送,如果期望的话。此外,搜索引擎116能够基于跟踪到的或已知的关于客户端132的信息而定制购买选项,如果希望的话。例如,价格点可以基于购买者被变动。例如,应用开发者可以授权某些数量的降价出售。搜索引擎116能够基于搜索引擎 116已知的购买趋势、使用历史等等提供降价给特定的用户。
类似地,搜索引擎116能够基于购买信息定制应用106的呈现和/或购买选项。 如果例如客户端132的用户具有已建立的趋势为应用106支付不多于5美元,则搜索引擎 116可以首先呈现低于5美元价格点的应用106,即使基于所接收到的查询140、SN数据114 和/或上下文数据138而相信其它应用106是与用户更相关的。此外,应用开发者可以设置基于购买活动自动和/或递增的价格上升或降低。因此,当应用106的流行度开始向上的趋势时,自动的价格上升或降低可以被应用至应用106。基于用户、购买趋势、流行度和相关度而改变价格的其它方法是可能的并且是已预期的。因此,上述例子应当被看做是示例性的并且无论如何不能被看作是限制。
在一些实施方式中,记账和计费功能被用于提供多种现买现付(pay-as-you-go) 应用106。例如,期刊的应用106可以是免费的,但是用户可以被要求为文章付费。在一些实施方式中,期刊的一部分可以是一个价格或者是免费的,而诸如特辑的其它部分或其它文章需要支付费用和/或较高价格。在期刊应用106中广告130的产生和放置能够由搜索引擎116管理并可以考虑在客户端132处或在别处进行的活动,如果希望的话。
在此处公开的多种实施方式中,已经讨论了度量的跟踪和报告。应当强调的是所有与应用106和/或客户端132关联的度量的跟踪和报告可以服从于用户选择进入和/或以其它方式授权这个功能。类似地,用户能够在任何时刻选择退出或停用跟踪和报告功能。 同样地,应当理解跟踪和/或报告的所有信息能够在存储和/或报告之前被匿名。能够采取这些和其它安全和/或隐私措施以解决察觉到的隐私和/或安全考虑。
在一些实施方式中,客户端132执行应用106的一些方面,而应用106的其它方面能够被远程地执行。客户端132能够被配置成将在客户端132处计算的数据与远程提供或执行应用106的设备(诸如服务器计算机102)同步。在一些实施方式中,客户端132进一步被配置成传输数据至提供或执行应用106的设备,带有识别什么计算已经在客户端132 处完成的信息,如果希望的话。
图5图示了能够执行此处描述的软件组件以便发现远程执行的应用106的设备的示例性计算机架构500。因此,在图5中示出的计算机架构500图示了用于服务器计算机、 移动电话、PDA、智能电话、服务器计算机、桌面计算机、上网本电脑、平板电脑和/或膝上型电脑的架构,例如搜索引擎116。计算机架构500可以被用于执行此处提出的软件组件的任何方面。
在图5中示出的计算机架构500包括中央处理单元502(CPU)、包括随机存取存储器506 (RAM)和只读存储器(ROM) 508的系统存储器504、将存储器504耦合至CPU 502的系统总线510。在ROM 508中存储包含基本例程的基本输入/输出系统,该基本例程诸如在启动期间帮助在计算机架构500中的单元之间传输信息。计算机架构500进一步包括大容量存储设备512,用于存储操作系统514、搜索应用118、分级应用120、广告应用122和分析应用124。虽然在图5中未示出,但应当理解,大容量存储设备512能够存储搜索索引1 和/或其它数据(未示出)。
大容量存储设备512通过连接至总线510的大容量存储控制器(未示出)而连接至CPU 502。大容量存储设备512和与其关联的计算机可读介质为计算机架构500提供了非易失存储。虽然此处包含的计算机可读介质的描述涉及诸如硬盘或CD-ROM驱动器之类的大容量存储设备,本领域技术人员应当意识到计算机可读介质可以是能够由计算机架构 500访问的任何可用的计算机存储介质。
作为例子而非限制,计算机可读存储介质可以包括以用于存储信息的任何方法或技术实现的易失和非易失、可移除和非可移除的介质,所述信息例如是计算机可读指令、 数据结构、程序模块或其它数据。例如,计算机可读介质包括但不限于RAM、ROM、EPROM、 EEPR0M、闪存或其它固态存储器技术、⑶-ROM、数字多功能盘(DVD)、HD-DVD、蓝光或其它光储存器、盒式磁带、磁带、磁盘存储或其它磁存储设备、或者能够被用于存储期望信息并且能够被计算机架构500访问的任何其它媒介。为了说明书和权利要求的目的,短语“计算机可读存储介质”及其变形不包括通信介质。
根据多种实施方式,使用通过诸如网络104之类的网络连接至远程计算机的逻辑连接,计算机架构500可以操作在联网环境中。计算机架构500可以通过连接至总线510 的网络接口单元516而连接至网络104。应当意识到网络接口单元516还可以被用于连接至其它类型的网络以及远程计算机系统,例如客户端设备132。计算机架构500还可以包括输入/输出控制器518,用于接收和处理来自多个其它设备的输入,所述多个其它设备包括键盘、鼠标、或电子笔(在图5中未示出)。类似地,输入/输出控制器518可以提供输出至显示屏、打印机或其它类型的输出设备(也未在图5中示出)。
应当意识到此处描述的软件组件当被载入至CPU 502并执行时,可以将CPU 502 和整个计算机架构500从通用计算系统转变为专用计算系统,其被定制以便促进此处提出的功能。CPU 502可能由可以个别地或集合地表现任意数量的状态的任意数量的晶体管或其它分离电路元件构造。更具体地,CPU 502可以作为有限状态机操作,以响应于包含在此处公开的软件模块中的可执行指令。这些计算机可执行指令可以通过规定CPU 502如何在状态间转换而转换CPU 502,由此转换组成CPU 502的晶体管或其它分离硬件元件。
编码此处提出的软件模块也可以转换此处提出的计算机可读介质的物理结构。在该描述的不同实现中,物理结构的具体转换可以依赖多种因素。这种因素的例子可以包括但不限于用于实现计算机可读介质的技术,计算机可读介质被表征为主要还是次要存储器,等等。例如,如果计算机可读介质被实现为基于半导体的存储器,此处公开的软件可以通过转换半导体存储器的物理状态而被编码在计算机可读介质上。例如,软件可以转换晶体管、电容器或组成半导体存储器的其它分离电路元件的状态。软件还可以转换这种组件的物理状态以在其上存储数据。
作为另一个例子,此处公开的计算机可读介质可以使用磁或光技术被实现。在这种实现中,当在其中编码软件时,此处提出的软件可以转换磁或光介质的物理状态。这些转换可以包括改变给定磁介质中的特定位置的磁特征。这些转换还可以包括改变给定光介质中的特定位置的物理特性或特征,以改变那些位置的光学特征。其它物理介质的转换也是可能的,不脱离本描述的范围和精神,提供前述例子只是为了便于讨论。
按照上述内容,应当意识到在计算机架构500中发生多种类型的物理转换以存储和执行此处提出的软件组件。应当意识到计算机架构500可以包括其它类型的计算机设备,包括手持计算机、嵌入式计算机系统、个人数字助理和本领域技术人员已知的其它类型的计算设备。还预期到计算机架构500可以不包括图5中示出的全部组件,可以包括没有在图5中明确示出的其它组件,或者可以利用与图5中所示出的完全不同的架构。
基于前述内容,应当意识到用于发现远程执行的应用106的技术已经在此处被公开。虽然此处提出的主题已经以特定于计算机结构特征、方法和转换动作、特定计算机机器和计算机可读介质的语言被描述,但是应当理解在所附权利要求中定义的发明不必受限于此处描述的特定特征、动作或介质。相反,该特定特征、动作和介质被公开为实现权利要求的示例形式。
上面描述的主题仅仅是通过图示而被提供,不应解释成限制。可以在不遵循所图示和描述的示例实施方式和应用且不脱离在随后的权利要求中阐述的本发明的真正精神和范围的情况下对此处描述的主题做出各种变形和改变。
权利要求
1.一种用于搜索web应用(106)的计算机实现的方法,该计算机实现的方法包括执行计算机实现的操作以在搜索引擎(116)处接收查询(140);在搜索引擎(116)处执行查询(140)以识别满足该查询(140)的一个或多个web应用 (106),该web应用(106)包括web应用(106)的一个或多个子特征; 生成相应于该一个或多个web应用(106)的搜索结果(1 );以及使得该搜索结果(126)可用于在与搜索引擎(116)通信的客户端(132)处呈现,该搜索结果(126)包括识别一个或多个web应用(106)的数据、识别与一个或多个web应用(106) 相关联的位置的数据以及用于在客户端(132)可见的web商店中呈现搜索结果(1 )的数据。
2.权利要求1的方法,进一步包括确定与客户端关联的上下文数据是否可用,该上下文数据指示在客户端处发生的一个或多个交互;响应于确定该上下文数据可用,获取该上下文数据;以及修改查询以反映该上下文数据。
3.权利要求2的方法,近一步包括确定相应于客户端的用户的社交网络数据是否可用,该社交网络数据包括指示由社交网络的成员访问的web应用的信息;响应于确定该社交网络数据可用,获取该社交网络数据;以及修改查询以反映该社交网络数据。
4.权利要求1的方法,进一步包括 对web应用分级;以及根据web应用的分级呈现搜索结果。
5.权利要求3的方法,进一步包括至少部分地基于社交网络数据对web应用分级;并根据web应用的分级呈现搜索结果。
6.权利要求1的方法,进一步包括 生成与搜索结果一起呈现的广告;以及与搜索结果一起呈现广告。
7.权利要求1的方法,其中执行查询包括访问搜索索引以识别web应用。
8.权利要求7的方法,进一步包括 在搜索web应用期间识别一个或多个应用; 生成描述web应用的数据;基于与web应用关联的一个或多个应用特性组织描述web应用的数据;以及在搜索索引中存储描述web应用的数据,描述web应用的数据以可搜索的格式被存储在搜索索引中。
9.权利要求1的方法,进一步包括 跟踪反映在客户端处的活动的数据; 生成与客户端处的活动相关的度量;以及报告该度量给至少一个被授权实体, 其中跟踪的数据包括使用数据,其包括描述与客户端关联的web应用的使用的信息, 广告数据,其包括描述与搜索结果一起呈现的广告的信息,和分级数据,其包括描述搜索结果被如何分级的信息。
10. 一种计算机可读存储介质,其上存储有计算机可读指令,当由计算机执行时,该计算机可读指令使得计算机在搜索引擎(116)处接收查询(140),该查询(140)是从与搜索引擎(116)通信的客户端(132)处接收到的;确定与客户端(132)关联的上下文数据(138)是否可用,该上下文数据(138)指示在客户端(132)处发生的一个或多个交互;响应于确定上下文数据(138)可用,获取该上下文数据(138); 确定相应于客户端(132)的用户的社交网络数据(114)是否可用,该社交网络数据 (114)包括指示由与客户端(132)的用户关联的社交网络的成员访问的一个或多个web应用(106)的信息;响应于确定该社交网络数据(114)可用,获取该社交网络数据(114); 修改查询(140)以反映该上下文数据(138)和该社交网络数据(114); 在搜索引擎(116)处执行修改后的查询(140)以识别满足该修改后的查询(140)的一个或多个web应用(106);生成相应于一个或多个web应用(106)的搜索结果(1 ),该搜索结果(126)包括识别一个或多个web应用(106)的数据和识别与一个或多个web应用(106)相关联的位置的数据;和传输该搜索结果(126)至客户端(132)以在客户端(132)处呈现。
全文摘要
本发明涉及远程执行的应用的发现。搜索引擎发现并在搜索索引中标引应用,并且接收来自设备的查询。搜索引擎被配置成获取描述与设备关联的上下文的上下文数据和/或与设备的一个或多个用户关联的社交网络数据。基于上下文数据和/或社交网络数据,搜索引擎修改查询并执行查询以识别应用。搜索引擎生成相应于所识别的应用的搜索结果。搜索引擎还被配置成生成与修改后的查询相关的广告以及根据查询、上下文数据和/或社交网络数据对搜索结果分级。分级的搜索结果和广告作为搜索结果和/或以web商店的格式被呈现给客户端。客户端和搜索引擎的行为能够被跟踪并报告给被授权实体。
文档编号G06F17/30GK102542039SQ201110443678
公开日2012年7月4日 申请日期2011年12月27日 优先权日2010年12月27日
发明者B.W.瓦尼克, D.E.沃尔瑟二世, G.穆尔, M.B.麦克劳林, O.E.马里洛 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1