与背景和基于任务的计算环境的交互的制作方法

文档序号:6442439阅读:179来源:国知局
专利名称:与背景和基于任务的计算环境的交互的制作方法
与背景和基于任务的计算环境的交互
背景技术
软件包传统上作为功能包和/或功能类型包销售,软件或应用开发者相信这些功能包和/或功能类型包将是有用的和/或受用户欢迎的。这些软件包典型地包括向软件包的用户提供仔细调适的(tailor)用户体验(“UX”)的硬编码用户界面(“UI”)。软件包的UI 和因此UX经常区分一个软件包与另一个软件包,因为两个或更多个软件包的潜在功能可能是相似的。更特别地,软件包经常致力于提供特定类型的功能。在任何特定时间,可能存在多个致力于特定类型的任务或功能的软件包,其中该软件包可以由任意数量的开发者提供。 由此,与软件包相关联的UI和UX可能变化很大,但是这两个软件包潜在功能可以具有许多相似点。例如,特定功能可以在两个或更多软件包中获得。然而,与该特定功能相关联的UI 控制器可以位于相应UI的不同位置,可以具有变化的外观,并且/或者否则可以在各种软件包之间变化。在基于任务的计算环境中,与软件包的一个或多个功能相关联的任务经由适当接口被提供给用户。软件开发者不控制向用户提供该任务的UI。由此,UX可能变化很大,并且对用户而言,可能难以通过呈现给用户的UI访问某些任务。因为可能没有存储在设备处的潜在数据直到任务执行完成,所以中断的任务必须在它们的实体中被更新和完成。鉴于这些和其他理由,提出了本文作出的公开。

发明内容
本文描述了用于与背景(contextual)和聚焦于任务的计算环境进行交互的概念和技术。根据本文所公开的概念和技术的一些实施例,发现引擎收集指示由应用提供的功能的应用数据。该发现引擎被配置成识别对应于所述应用的特定功能的可以按需要单独提供给用户并/或以批量任务形式提供的任务。在一些实施例中,这些应用被配置成声明由这些应用提供的任务,这可以允许将所述任务以更具流线型的方式暴露于用户。UI可以基于被识别为与在客户端设备处发生的活动有关的任务来定制。所述UI 可以包括一个或多个任务和对应于批量任务的工作流。所述工作流可以经由客户端设备来执行并且在执行期间可能被中断。当被中断时,所述工作流与指示工作流执行中的进程的数据、与发起工作流执行的设备相关联的背景信息、用于访问工作流的UI以及其他信息一起存储。本文被称为“工作流”的该信息可以被存储和/或被其他用户共享。当工作流的执行恢复时,相同的UI可以被提供,或者如果用于恢复执行工作流的设备和/或与该设备相关联的其他背景数据不同于所存储的背景数据,则可以生成并提供不同UI。因此,多个设备和用户可以并行访问工作流以提供协作的任务执行。而且,如果需要,用户可以开始、中断以及恢复执行一个或多个工作流。根据一个方面,生成对应于应用和/或软件的应用数据。该应用数据被提供给发现引擎或由该发现引擎获得(retrieve)。该发现引擎分析该应用数据以识别由应用提供的功能。该发现引擎还生成、组织、分类和存储描述并识别与应用相关联的任务的任务数据,所述任务对应于应用的识别功能。该任务数据被存储在对任务引擎而言是可访问的数据存储装置,比如数据库或服务器。根据另一个方面,所述任务引擎获取指示在一个或多个客户端设备处的活动的背景数据。基于该背景数据,该任务引擎搜索或查询任务数据以识别预期与所述一个或多个客户端设备有关的任务。所述任务的关联(relevancy)可以基于发生在客户端设备处的活动、在客户端设备处访问的文件、与客户端设备相关联的活动历史、客户端设备之间的交互等等来确定。该任务引擎也可以获取或访问与客户端设备的用户相关联的社交网络数据。 除了或取代用于识别基于用户的社交网络的成员的使用、评述、评论或评级被认为与客户端设备的用户有关的任务的背景数据,可以使用该社交网络数据。根据另一个方面,所述有关任务由任务引擎识别,并且被封装以用于呈现给客户端设备或由客户端设备使用。该任务引擎被配置成生成与任务和/或对应于批量任务的工作流进行交互的UI,并且提供该UI以供设备处的消耗。该任务引擎也被配置成基于与客户端设备相关联的使用历史、任务和/或工作流的普及性、由与任务相关联卖方支付的广告费、社交网络成员对任务的使用、对任务的明确搜索的数量、对访问所述任务的实体的其他搜索或使用历史等等来确定对任务和/或工作流的评级和/或广告方案。用于访问所确定的任务和/或工作流的UI控制器可以以确定的格式提供给客户端设备。与任务、工作流和UI相关联的度量(metrics)可以被跟踪并且如果需要可以被提供给一个或多个与任务相关联的卖方和/或用于其他目的。根据各种实施例,所述客户端设备被配置成执行基于网络的操作系统(OS)。因此, 客户端设备可以执行操作系统或其他被配置成访问基于网络或其他远程执行的应用和服务以在客户端设备处提供特定功能的其他基本程序。因此,客户端设备可以经由简单操作系统或与标准网络浏览器相当的应用提供各种应用和服务。应当理解,客户端设备可以执行其他基于网络和非基于网络的操作系统,如下文更详细解释的。应当了解,上述主题可以实现为计算机控制的装置、计算机进程、计算系统或制造品,比如计算机可读存储介质。这些和各种其他特征将通过阅读下述具体实施方式
和对相关联的附图的评论而清楚明白。该发明内容被提供以通过简化形式引入在下文的具体实施方式
中进一步描述的概念的选择。该发明内容不旨在标识要求保护的主体的关键特征或必要特征,也不预期该发明内容用于限制要求保护的主题的范围。而且,要求保护的主题不限于本公开的任何部分中记录的解决任何或所有缺点的实现方式。


图1是图示用于本文所公开的各种实施例的示范性操作环境的系统图。图2A-2C是示出根据各种实施例用于与背景和聚焦于任务的计算环境交互的示范性用户界面的各方面的用户界面图。图3是示出根据一个示范性实施例的用于向客户端提供任务的一种方法的各方面的流程图。图4是示出根据一个示范性实施例的用于向客户端提供任务的另一种方法的各方面的流程图。
图5是示出根据一个示范性实施例的用于持续执行工作流的一种方法的各方面的流程图。图6是图示用于能够实现本文所呈现的实施例的各方面的计算系统的示范性计算机硬件和软件架构的计算机架构图。
具体实施例方式下面的详细描述针对用于与背景和聚焦于任务的计算环境交互概念和技术。与应用相关联的一个或多个任务被识别,并且描述任务的任务数据被以可搜索的格式和位置存储。任务引擎可以搜索该任务数据以识别与发生在客户端处的活动有关的任务和/或批量任务。该任务引擎还可以被配置成基于被识别为与发生在客户端设备处的活动有关的任务来定制UI。所述UI可以包括一个或多个任务和对应于批量任务的工作流。所述工作流可以经由客户端设备来执行并且可以在执行期间被中断。当被中断时,所述工作流与指示工作流执行中的进程(progress)的数据、与发起工作流执行的设备相关联的背景信息、用于访问工作流的UI以及其他信息一起存储。工作流可以被存储和/ 或与其他用户共享。当工作流的执行恢复时,相同的UI可以被提供,或者如果用于恢复执行工作流的设备和/或与该设备相关联的其他背景数据不同于所存储的背景数据,则可以生成并提供不同UI。因此,多个设备和用户可以并行访问工作流以提供协作的任务执行。 而且,如果需要,用户可以开始、中断以及恢复执行一个或多个工作流。词语“应用”及其变形在本文中用于指用于向用户提供功能的计算机可执行文件。 根据各种实施例,所述应用可以由设备执行,该设备例如计算机、智能电话等等。此外,计算机、智能电话或其他设备可以执行被配置成访问远程执行的应用和/或服务的网络浏览器或操作系统,所述远程执行的应用和/或服务比如是基于网络和/或其他远程执行的应用、 网络页面、社交网络服务等等。在一些实施例中,所述应用、网络页面和/或社交网络服务由远程和本地执行的组合来提供,例如通过扭^&1^ 丨、0!^1^、4从乂、43 等等的执行来提供。根据其他实施例,所述应用包括被建立用于访问远程或本地数据的运行时应用。这些运行时应用可以使用来自华盛顿雷蒙德的微软公司的SILVERLIGHT族产品、来自加利福尼亚州圣何塞的Adobe系统股份有限公司的A^和FLASH族产品和/或其他产品和技术来建立。词语“任务”及其变形在本文中用于指功能和/或与应用、例程或软件包相关联的功能的集合、子集或类别。因此,应用可以包括任意数量的任务,其中这些任务定义了这些应用的单独功能和/或与这些应用相关联的功能的类型、集合或子集。例如,任务可以包括应用的特定特征,比如在媒体回放应用的情况下用于回放音频文件的任务。类似地,任务可以包括与应用相关联的多个特征,比如与应用相关联的宏指令和/或其他自动化任务。这些示例是说明性的,并且不应当被解释为以任何方式限制。尽管在结合操作系统和应用程序在计算机系统上的执行而执行的程序模块的一般背景下呈现了本文所述的主题,但是本领域技术人员将会认识到其他实现方式可以结合其他类型的程序模块来执行。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。而且,本领域技术人员将会了解,本文所述的主题可以与包括手持式设备、多处理器系统、基于微处理器或可编程消费型电子设备、微型计算机、大型计算机等等的其他计算机系统配置一起实践。在下面的详细描述中,参考形成所述详细描述的一部分的附图,并且在附图中通过图示示出特定的实施例或示例。现在参考附图,其中贯穿这几个附图相同的数字表示相同的元件,将呈现计算系统、计算机可读存储介质和用于与背景和聚焦于任务的计算环境交互的计算机实现的方法的各个方面。现在参考图1,将描述用于本文所呈现的各种实施例的一个操作环境100的各方面。图1所示的操作环境100包括在网络104上操作或与之通信的服务器计算机102。根据各种实施例,服务器计算机102的功能由在因特网上操作或与之通信的网络服务器提供, 但这种情况不是必需的。服务器计算机102被配置成执行用于提供与服务器计算机102相关联的功能的应用106。根据各种实施例,应用106提供用于提供地图、导航指令、基于位置的服务等等的地图制作(mapping)应用。应用106还可以提供多媒体功能,比如视频和音频流、视频和音频回放功能等等。应用106还可以提供工具,比如照片、视频和音频编辑以及创建应用、文字处理功能、数据备份和存储功能、日程表制作应用、消息传送应用(比如电子邮件、文本消息传送、即时消息传送和实时消息传送应用)、购物应用、搜索应用等等。应用106还可以提供评级和/或评论应用、游戏等等。上述列表不是详尽的,因为应用106可以提供与服务器计算机102相关联的任何功能。尽管本文所述的实施例包括在服务器计算机102上执行的应用106,但是应当理解,客户端-中心的方法也是可能的,其中客户端设备执行访问数据的应用和/或由服务器计算机102托管(host)的应用,如下文更详细所述。而且,应当理解, 应用106可以部分地在服务器计算机102上执行并且部分地在客户端设备上执行。因此, 上述示例是示范性的并且不应当被解释为以任何方式限制。操作环境100进一步包括在网络104上操作或与之通信的发现引擎108。发现引擎108可以包括用于发现诸如应用106的应用并且识别由应用提供的一个或多个任务的硬件和软件的组合。在一些实施例中,发现引擎108识别或接收对应于应用106的应用数据 110。应用数据110描述应用106和/或与其相关联的功能。应用数据110可以例如经由计算机可执行指令而由应用106生成,该计算机可执行指令在被服务器计算机102执行时致使服务器计算机102自我描述应用106并且提供应用数据110或使之可用。在其他实施例中,发现引擎108或其他设备或软件(比如搜索引擎(未示出))识别并描述于服务器计算机102和/或应用106相关联的功能。应用数据110在一些实施例中对应于描述应用 106和/或与其相关联的功能的元数据。在一些实施例中,发现引擎108分析应用数据110并识别由应用106提供的一个或多个任务,如由应用数据110所定义或描述。所述任务描述了应用106的特定功能。例如,如果应用106提供照片编辑功能,则由应用106提供的任务可以包括但不限于,红眼移除任务、颜色平衡任务、特殊效果任务、锐度调整任务、污点(blemish)移除任务、图像尺寸调整和裁剪(crop)任务、模糊任务、文本编辑任务、对比度、色调和亮度调整任务、其他任务、其组合等等。应当理解,该实施例是示范性的并且不应当被解释为以任何方式限制。发现引擎108可以生成识别与应用106相关联的任务的数据并且将该数据存储为任务数据112。在一些实施例中,发现引擎108还被配置成根据任务数据112所描述的任务组织并分类任务数据112。在用于照片编辑的应用106的上述示例中,发现引擎108可以创建图像编辑任务的类别,其中图像编辑任务不仅对应于应用106,而且对应于由任意数量的服务器计算机102或其他设备提供的其他应用106。例如,发现引擎108可以将用于应用 106的照片编辑任务分类和/或组织成图像编辑类别。发现引擎108还可以被配置成将对应于编入目录的、分类的和组织的用于应用106的任务的任务数据112存储在数据存储位置,比如数据存储装置114。在一些实施例中,应用或任务开发者公布具有应用106的任务数据112。例如,开发者可以生成描述任务、通过任务辨识(recognize)的输入或输入类型、由任务生成的输出或输出类型、关键词、任务的限制和/或能力等的文本描述和/或元数据。此外,应用106 可以由开发者配置以自我声明任务。因此,应用数据110可以由应用106生成,而无需由发现引擎108或其他设备或软件执行的分析或数据耕耘(farming)。如果需要,任务数据112 可以以可搜索格式存储,比如可扩展标记语言(“XML”)、文本和其他格式。任务数据112可以由设备查询以基于搜索查询项识别任务。数据存储装置114的功能可以由一个或多个数据库、存储器设备、服务器计算机、 台式计算机、移动电话、膝上型计算机、其他计算系统等等来提供。在所示的实施例中,数据存储装置114的功能由在与网络104通信中操作的数据库提供。在这些实施例中,数据存储装置114被配置成接收由被配置成与网络104通信的设备进行的任务数据112的查询并且对此做出响应。应当理解,这些实施例是示范性的。操作环境100包括在网络104上操作或与之通信的社交网络服务器116(“SN服务器”)。该SN服务器116执行社交网络应用118 (“SN应用”)以提供社交网络服务。示范性社交网络服务包括但不限于,MYSPACE社交网络服务、FOURSQUARE地理网络服务、TffITTER 实时消息传送服务、FACEB00K社交网络服务、LINKEDIN专业网络服务、YAMMER办公室同事网络服务等等。在其他实施例中,社交网络功能由其他服务、站点和/或未明确地被称为社交网络提供商的提供商来提供。例如,一些网络站点允许用户经由电子邮件、评述、评级和评论、实时消息、聊天服务、玩游戏和/或其他手段来相互交互,而不明确支持“社交网络服务”。这样的服务的示例尤其包括但不限于,来自华盛顿州雷蒙德的微软公司的WINDOWS LIVE服务。因此,应当了解,社交网络服务的上述列表不是详尽的,因为多种社交网络服务在本文中没有被提及。SN服务器118生成与一个或多个用户相关联的社交网络数据120 (“SN数据”)。 该SN数据120描述了例如与用户相关联的社交网络图(graph)、用户内容(比如状态更新、 照片、评论、链接等等)、与用户相关联的联系人和简历信息等等。SN数据120可以包括例如描述由社交网络服务的用户访问的应用或任务、与应用和任务有关的链路和状态更新、其组合等等的信息。SN数据120还可以包括其他信息,比如好恶、用户评述、用户连接请求等寸。操作环境100还包括在网络104上操作或与之通信的任务引擎122。任务引擎122 被配置成基于一个或多个输入搜索、识别并提供任务。在一些实施例中,任务引擎122执行搜索用于与在与任务引擎122的通信中操作的客户端1 有关的任务的任务数据112的搜索应用124。根据各种实施例,搜索应用IM至少部分地基于与客户端1 相关联的背景数据126来搜索任务数据112。
根据各种实施例,客户端1 是个人计算机(“PC”),比如台式、平板或膝上型计算机系统。客户端1 可以包括其他类型的计算系统,所述计算系统包括但不限于服务器计算机、手持式计算机、上网本计算机、嵌入式计算机系统、个人数字助理、移动电话、智能电话或其他计算设备。尽管客户端128与网络104之间的连接未在图1中图示,但是应当理解,客户端1 可以经由网络104与任务引擎122通信。而且,尽管图1中仅图示了一个客户端128,但是应当理解,用户或用户的组合可以使用两个或更多个客户端1 与任务引擎
122 ^iMfp ο客户端1 被配置成执行操作系统130。根据各种实施例,由客户端1 执行的操作系统130是基于网络的操作系统。在一些实施例中,客户端1 未被配置成或装配成在客户端侧处执行传统的原生应用和/或程序,而是访问远程执行的应用(比如网络应用和/ 或其他远程应用)并且再现用于在客户端1 处呈现的应用数据。在其他实施例中,客户端 1 被配置成访问远程执行的应用并且执行一些本地码,比如脚本、本地搜索等等。由此,客户端1 可以被配置成访问或利用基于云、基于网络和/或其他远程执行的应用并且在客户端1 处再现与应用相关联的数据。在一些实施例中,客户端1 被进一步配置成执行应用程序132。应用程序132可以包括网络浏览器或基于网络的操作系统,其被配置成访问基于网络的或运行时应用并且再现由在客户端1 处使用的基于网络的或运行时应用生成的数据。因此,应用程序132 可以包括一个或多个用于访问并再现网络页面、访问应用、再现与应用相关联的数据、访问服务、再现与服务相关联的数据、其组合等等的程序。在一些实施例中,客户端1 也被配置成执行独立的或运行时应用,其被配置成经由公有或私有的应用编程接口(“API”)访问基于网络的或远程的应用。因此,尽管词语“应用,,及其变形在本文中被广泛使用,但是应当理解,所述应用可以包括本地执行的和/或远程执行的应用。背景数据1 描述了与客户端1 相关联的背景信息。背景数据1 识别正被客户端1 访问的一个或多个应用106、正被客户端1 访问或执行的一个或多个应用程序 132、和/或描述正被访问、编辑、创建、保存或以其他方式与OS 130、应用106和/或应用程序132—起工作或由其处理的数据的内容数据134。内容数据134可以描述文档、音频文件、视频文件、网络页面、程序、脚本、图像、社交网络内容、电子表格、应用106、其他文件和软件、其组合等等。因此,内容数据134可以指示由客户端1 对一个或多个基于网络的或其他远程执行的应用的使用或访问,并且指示什么类型的数据正被所述一个或多个基于网络的或其他远程执行的应用处理。内容数据134可以被表面化(surface)或作为背景数据 126的一部分而被提供给任务引擎122。背景数据1 还可以描述完全在客户端1 处采取的一个或多个动作。例如,背景数据126可以指示客户端1 处光标或指针的移动、在客户端1 处的字母数字文本输入、在与客户端1 相关联的显示器的特定位置或区域处的点击和/或与客户端1 相关联的其他移动或输入。这些和其他输入可以提示例如客户端1 处的脚本和/或代码的本地执行。这些动作和其他动作可以由背景数据1 捕获并且被传递到任务引擎122。在一些实施例中,这些和其他动作由远程或本地应用相对于客户端1 来调停(mediate),并且因此可以被背景数据1 不仅作为特定动作、而且此外或可替代地作为与远程或本地应用、脚本或代码执行相关联的特定功能的特定调用而捕获。
搜索应用IM被配置成使用背景数据1 搜索用于预期基于背景数据1 与客户端1 有关的任务的任务数据112。如前所述,搜索应用IM可以被配置成查询任务数据 112,但是可以使用搜索包括任务数据112的内容的其他方法。在示范性实施例中,如果背景数据126指示客户端128正在访问图像,则搜索应用IM查询任务数据112以识别与用户在访问图像时经常使用的图像和/或任务有关的任务(比如观看任务、编辑任务、打印任务等等)。类似地,如果背景数据126指示客户端1 正在访问音频文件,则搜索应用IM可以查询任务数据112以识别与音频文件有关的任务,例如记录任务、编辑任务、转换任务、 音频处理任务等等。这些示例是说明性的并且不应当被解释为以任何方式限制。尽管图1中未图示搜索引擎,但是搜索引擎也可以用于利用搜索历史、与用户相关联的偏好等等生成或补充背景数据126。因此,除了揭示与客户端1 相关联活动之外, 背景数据1 可以指示在某时间周期上与客户端1 相关联的活动,所述时间周期例如是在会话期间、一天、一星期、一个月、一年等等。因此,背景数据1 可以涉及客户端1 处的一些、没有或所有交互,包括网络搜索、应用或任务使用、电子邮件消息传送使用、地图使用等。在一些实施例中,除了或取代背景数据126,搜索应用IM接收或获得SN数据 120。此外或可替代地,搜索引擎可以获得SN数据120并利用SN数据120补充背景数据 126。搜索应用IM可以使用SN数据120识别由与特定用户(例如与客户端1 相关联的用户)相关联的社交网络的一个或多个成员使用、消费、评论、贴出、评述或以其他方式参考的任务或应用106。因此,搜索应用IM可以查询任务数据112以不仅基于与客户端1 相关联的背景数据126而且基于对应于客户端128的用户的一个或多个社交网络来识别任务。响应于对任务数据112的搜索或查询,任务引擎122可以接收基于明确的搜索项识别预期与客户端1 有关的任务的有关的任务数据136、背景数据1 和/或SN数据 120。有关任务数据136可以通过一个或多个地址、名称、应用、类别、功能描述等等来识别任务或应用。在一些实施例中,应用任务通过一个或多个与托管与该任务相关联的应用106 的服务器计算机102相关联的因特网协议(“IP”)地址、一个或多个与有关于应用任务的应用106相关联的统一资源定位符(“URL”)地址和/或用于识别任务的身份和/或位置的其他信息来识别。在一些实施例中,任务引擎122包括界面模块138。界面模块138被配置成确定如何向客户端1 呈现由有关任务数据136识别的任务。例如,界面模块138被配置成确定一个或多个用于在客户端1 或其他设备处呈现任务的用户界面(“UI”)的布局。该界面模块138确定例如如何相对于一个或多个UI布置任务、如何对任务编组、应当呈现什么类型的UI,等等。由界面模块138确定的UI的类型可以包括但不限于移动UI (比如智能电话网络浏览器UI或智能电话基于网络的OS UI)、台式PC网络浏览器UI或台式PC基于网络的OS UI、与应用106相关联UI、平板UI、其他UI、其组合等等中的一个或多个。界面模块138还可以确定如何评级任务和/或呈现经评级的任务的布置或顺序。 界面模块138还可以识别针对利用UI呈现的广告以及用于广告和/或UI的其他方面的布置、评级、布局和/或其他选项。在一些实施例中,界面模块138、搜索应用IM和/或其组合识别、配置、提供用于呈现的数据并且管理一个或多个工作流140。工作流140对应于批量任务和/或与批量任务和/有关任务相关联的数据。工作CN 102542410 A
流140可以包括识别批量任务的数据、与工作流140相关联的背景数据126、与工作流140 相关联的用户或客户端1 和/或与工作流140相关联的其他信息。一个示范性工作流 140包括出行计划工作流140。出行计划工作流140可以包括一个或多个用于搜索和预订航班或其他运输的任务、用于搜索和预定旅馆或其他住所的任务、用于搜索饭店和与饭店相关联的评论的任务、用于预订饭店的任务、用于搜索预订的出租车的任务和/或其他旅行有关任务。根据实施例,工作流140由用户调适(tailor)以包括期望的任务,由搜索应用IM和/或界面模块138调适,由用户保存和/或以另外方式配置。工作流140可以被用户中断或共享。用户因此可以共享工作流140以使得一个或多个设备或用户能够与工作流140同时交互。工作流140还可以被中断和保存以允许用户中断工作流140的执行且稍后恢复执行工作流140。对工作流140中的任务编组还可以提供使所使用的、消耗的、提交的或另外相对于一个任务生成的关联数据被传播到作为相同的工作流140的一部分或有关工作流140的其他任务的能力。例如,用户可以访问工作流140以规划旅行或假期。在执行工作流140 的中间,用户可以改变旅行日期。取代必须搜索具有新日期的航班、旅馆、汽车出租、饭店、 事件等等,工作流140可以用于通过其他任务传播所述改变,由此允许用户避免重复工作。 如果工作流140被中断,则任务引擎122可以存储与工作流140的特定示例相关联的背景数据1 和/或其他信息,比如识别工作流140中的执行点的数据、用于执行工作流140的设备等等。因此,当工作流140的执行恢复时,任务引擎122可以确定由任务引擎122确定的UI在工作流140执行时是否应当用于工作流140执行的其余部分,或者确定新UI是否应当被呈现给恢复执行工作流140的设备。在另一个实施例中,用户可以与其他用户或设备共享工作流140。任务引擎122可以被配置成实现工作流140共享。例如,任务引擎122可以用于生成可以与其他用户或设备共享的访问编码或链接以访问工作流140。因此,一个或多个用户和/或设备可以并行地和/或接连地访问和执行工作流140。尽管搜索应用IM和界面模块138被图示为任务引擎122的组件,但是应当理解, 这些组件的每一个或其组合可以体现为或体现在在网络104和/或客户端1 上操作或与之通信的独立设备或其组件中。因此,所示的实施例是示范性的,并且不应当被解释为以任何方式限制。此外,尽管图1图释了一个服务器计算机102、一个网络104、一个发现引擎 108、一个数据存储装置114、一个SN服务器116、一个任务引擎122和一个客户端128,但是应当理解,操作环境100的一些实现方式包括多个服务器计算机102、多个网络104、多个发现引擎108、多个数据存储装置114、多个SN服务器116、多个任务引擎122和/或多个客户端128。因此所示的实施例应当被理解为是示范性的而不应当被解释为以任何方式限制。现在转到图2A,将描述用户界面图,其示出在一个实施例中用于在客户端128处呈现任务的用户界面(UI)的各方面。特别地,图2A示出由根据本文所呈现的一个特定实现方式由客户端1 执行的操作系统130和/或应用程序132的一个或多个生成的屏幕显示 200A。应当了解,图2A所示的UI图是示范性的。而且,应当理解,对应于图2A所示的UI 图的数据可以由可用于或传输到客户端128的界面模块138生成并且由客户端1 再现, 但是这种情况不是必需的。在所示的实施例中,屏幕显示200A包括应用窗口 202A。在一些实现方式中,应用窗口 202A被显示在显示在屏幕显示200A上的其他信息(未示出)上面或下面。此外或可替代地,应用窗口 202A可以填充屏幕显示200和/或可被设定尺寸以适应屏幕显示200A的期望部分或百分比。应当理解,所示的应用窗口 202A的所示布局、比例和内容是示范性的, 并且不应当被解释为以任何方式限制。示范性应用窗口 202A对应于用于网络浏览器的应用窗口,但是该实例是说明性的。应当理解,应用窗口 202A可以对应于用于其他应用的应用窗口,包括本地应用,比如应用程序132、网络应用、应用106和/或由操作系统130显示或再现的界面。在所图示的实施例中,应用窗口 202A正在显示内容204A。应当理解,该实施例是示范性的,并且不应当被解释为以任何方式限制。应用窗口 202A还在显示两个菜单区206 (“菜单”)。尽管菜单206被图示为应用窗口 202A右侧和左侧上的区域,但是应当理解,一个或多个菜单区可以被显示为应用窗口 202A中的浮动窗口和/或被显示为停靠到显示窗口 202A的一侧、顶部和/或底部中的一个或多个,置于应用窗口 202A的工具栏或状态栏中的区域,等等。而且,所示的菜单206的尺寸、形状和配置是示范性的,并且不应当被解释为以任何方式限制。在一些实施例中,应用窗口 202A被叠加在内容204A的“前面”。菜单206可以在应用窗口 202A被再现时被再现, 和/或可以响应于按键、动作、语音命令、触摸命令和/或另一个输入设备(比如鼠标)的操作而被再现。菜单206可以被配置成仅部分不透明的,使得内容202A和菜单206是同时可见的。菜单206被配置成显示用于访问任务、工作流140和/或与内容204A有关的资源或链接的UI控制器。在所示的实施例中,内容204A对应于新闻文章。因此,菜单206可以包括用于与新闻文章相关联的各种任务和/或工作流140的UI控制器,所述各种任务和/ 或工作流140比如出版任务、打印任务、研究任务、文本提取任务、评论任务等等。如本文将更详细解释的,菜单206中显示的控制器可以基于评级和/或广告方案来排序,其中与任务或工作流140相关联的UI控制器至少部分地基于预期关联、评级或广告程序等等来排序。 屏幕显示200A还包括用于显示广告内容的广告区208(“广告”)。如果需要,该广告内容可以对应于一个或多个任务或工作流140,和/或可以是基于内容204A、与客户端1 相关联的一个或多个用户和/或其他因素的目标广告。根据实施例,菜单206和广告208中的UI控制器和广告的内容、尺寸、配置、布局和排序由任务引擎122基于背景数据126、SN数据120、与客户端1 相关联的能力和/或其他信息来确定。在一些实施例中,任务引擎122被配置成在屏幕显示200A上在指定位置中呈现某些任务、工作流140和/或任务和工作流140的类型。因此,界面模块138可以向用户提供相对于内容(比如内容204A)的特定类型一致的UX,而不管与任务和/或工作流 140相关联的一个或多个源如何。现在转到图2B,将描述在另一个实施例中示出用于在客户端1 处呈现任务的用户界面(UI)的各方面的用户界面图。特别地,图2B示出根据本文呈现的一个特定实现方式由客户端1 执行的操作系统130和/或应用程序132的一个或多个多生成的屏幕显示 200B。应当了解,图2B中图示的UI图是示范性的。如上文相对于图2A所解释,应当理解对应于图2B所示的UI图的数据可以由界面模块138生成,可被用于或被传输到客户端128, 以及由客户端1 再现,但是这种情况不是必需的。
屏幕显示200B包括应用窗口 202B,其可以根据各种尺寸、形状和配置来设定尺寸并且不限于图示的内容、尺寸或配置。在所示的示范性实施例中,应用窗口 202B包括显示在应用窗口 202A中的内容204B。内容204B对应于图像。应当理解,该实施例是示范性的, 并且不应当被解释为以任何方式限制。如图2B所示,菜单206显示在内容204B前面。菜单206的显示可以例如通过按键、鼠标移动、鼠标点击、动作、触摸命令、语音命令和/或其他动作来触发。菜单206包括 UI控制器210A-210F,其在本文中共同称为UI控制器210。UI控制器210的选择可以触发相关联的任务或工作流140。如图2B所示,UI控制器210可以对应于用于编辑图像的各种任务和工作流140,但是诸如共享任务、打印任务、评述和评论任务等等之类的其他任务是预期的。在所示的实施例中,UI控制器210C对应于用于从照片中移除红眼的“修理红眼” 任务。在所示的实施例中,UI控制器210C以指示该任务不可用或与内容204B不相关的格式显示。应当理解,在一些实施例中,UI控制器210C被用于触发可用任务的UI控制器取代,并且指示任务是不可用或不必要的的其他方法是预期的。因此,可以从图2B 了解到,任务引擎122可以从背景数据1 认识到,一些任务和/或工作流140不与在客户端1 和 /或其他设备处的活动有关。屏幕显示200B还显示了对应于菜单206的次菜单212。在所示的实施例中,次菜单212显示用于触发任务或工作流140的UI控制器214A-214C。UI控制器214A-214C对应于用于裁剪图像的三个任务或工作流,并且次菜单212的显示可以通过选择UI控制器 210A来触发。对应于UI控制器214A-214C的三个任务或工作流140可能在潜在功能方面基本相似,但是可能与三个开发者、提供者、站点、接口等等相关联。如图所示,可以向用户针对对对应于UI控制器214C的任务或工作流140的访问收费。因此,UI控制器214C可以以向用户传达必须针对访问任务或数据流140付费的方式显示。应当理解,用于识别受限任务或工作流140的所示方案可以依赖于任何期望标准改变。因此,应当理解,所示的实施例是示范性的,并且不应当被解释为以任何方式限制。如图2B所示,屏幕显示200B还可以显示广告208。在所示的实施例中,次菜单212 包括广告208。应当理解,该实施例是示范性的,并且不应当被解释为以任何方式限制。广告 208可以在屏幕显示200B上的任何期望位置中显示。此外,如果需要,UI控制器214A-214C 可以包括广告。尽管在图2B中未示出,如果需要,用于访问任务或工作流140的付款的界面可以响应于接收UI控制器214C的选择而被呈现。还应当理解,UI控制器210A-F和UI 控制器214A-C可以根据各种广告和评级方案以及其他因素来选择、排序和布置,所述其他因素比如用户搜索和使用历史、SN数据120、组合等等。现在参考图2C,将描述在另一个实施例中示出用于在客户端1 处呈现任务的用户界面(UI)的各方面的用户界面图。特别地,图2C示出根据一个实施例由客户端1 执行的操作系统130和/或应用程序132的一个或多个所生成的屏幕显示200C。应当了解, 图2C中所示的UI图是示范性的。如上面所解释,图2C所示的UI图可以由界面模块138 生成,可被用于或被传输到客户端128,以及由客户端1 再现,但是这种情况不是必需的。在图2C所示的实施例中,屏幕显示200C包括应用窗口 202C,其可以被定尺寸并被配置成各种尺寸和布局,并且不限于所示的内容、尺寸或配置。应用窗口 202C内容204C。在所示的实施例中,内容204C对应于经由应用106的执行生成的输出,其中应用106提供地图制作应用。在所示的实施例中,内容204C图示两个点之间的路线(route)。应当理解, 该实施例是示范性的,并且不应当被解释为以任何方式限制。屏幕显示200C可以包括用于访问与内容204C相关联的任务和/或工作流140的任何数量的UI控制器。在所示示范性实施例中,屏幕显示200C包括位置任务区220 (“位置任务”)、旅行计划任务区222 (“旅行计划任务”)和社交网络任务区2 ("SN任务”)。应当理解,该实施例是示范性的,并且不应当被解释为以任何方式限制。位置任务220可以由界面模块138配置,并且可以包括用于访问与对应于内容 204C中显示的地图的位置有关的一个或多个任务或工作流140的UI控制器。示范性任务和工作流包括但不限于,用于搜索所显示的商业区的任务、用于在显示区中生成商店的产品价格报告的任务、用于识别显示区内社交网络方向的任务、用于生成导航连接的任务、其他任务等等。位置任务220还可以包括一个或多个工作流140,比如饭店预定工作流140,其可以包括批量任务,比如用于轮询用于烹饪的类型和/或用餐时间的一个或多个连接的任务、用于评论匹配通过所述轮询识别的烹饪的类型和/或用餐时间的饭店的评级的任务、 用于进行预定的任务、用于生成与所述任务有关的日程表提醒的任务、其他任务、等等。应当理解,该实施例是示范性的,并且不应当被解释为以任何方式限制。旅行计划任务222可以包括与旅行计划有关的任务和/或工作流140。示范性旅行计划任务包括但不限于,用于预订航班或其他旅行安排的任务、用于预定旅馆房间或其他住所的任务、用于识别吸引力的任务、其他任务等等。此外,旅行计划任务222可以包括如上所解释的一个或多个工作流140。应当理解,这些任务是示范性的,并且不应当被解释为以任何方式限制。SN任务2M可以包括与社交网络服务有关的各种任务和/或工作流140。SN任务2M可以包括例如用于搜索对应于社交网络连接的显示区的区域的任务、用于向社交网络服务公布位置信息的任务、用于搜索从显示区列举的社交网络或实时消息传送更新的任务等等。SN任务2 还可以包括与社交网络服务有关的工作流140。应当理解,这些任务是示范性的,并且不应当被解释为以任何方式限制。上述示例仅仅是对对应于任务和/或工作流140的UI控制器可以如何为用户显示的例示,并且不应当被解释为以任何方式限制。如果需要,任务和/或工作流140的附加的和/或可替代的类别可以相对于内容204C和/或其他内容而被显示。现在转到图3,将详细描述用于提供任务的方法300的各方面。应当理解,本文公开的方法的操作不必以任何特定顺序呈现并且以可替代顺序执行一些或所有操作是可能的并预期的。为了描述和图示容易起见,这些操作已经以所展示的顺序呈现。操作可以被同时添加、省略和/或执行,而不脱离所附权利要求的范围。还应当理解,所示的方法可以在任何时间结束并且不必以它们各自的整体执行。 本文所公开的方法的一些或所有操作和/或基本等价的操作可以通过如上文所定义的计算机存储介质上包括的计算机可读指令的执行来执行。如说明书和权利要求中使用的术语 “计算机可读指令”及其变形在本文中可扩展地用于包括例程、应用、应用模块、程序模块、 程序、组件、数据结构、算法等等。计算机可读指令可以在各种系统配置上实现,包括单个处理器或多处理器系统、微型计算机、大型计算机、个人计算机、手持式计算设备、基于微处理器的设备、可编程消费型电子设备、其组合等等。因此,应当了解,本文所述的逻辑操作被实现为(1) 一系列计算机实现的动作或在计算系统上运行的程序模块,和/或(2)计算系统内的互连的机器逻辑电路或电路模块。 该实现方式是根据计算系统的性能和其他需求选择的问题。因此,本文所述的逻辑操作被不同地称为状态、操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以在软件中、在固件中、在专用数字逻辑中以及在其任意组合中实现。为了图示并描述本公开的概念,本文所公开的方法被描述为由任务引擎122来执行。应当理解,这些实施例是示范性的,并且不应当被视为以任何方式限制。附加的和/或可替代的设备可以提供本文所述的功能。方法300开始于操作302处,其中任务引擎122 检测与客户端1 相关联的交互。由任务引擎122检测的交互可以包括在客户端1 处的交互、在客户端1 处执行的与一个或多个应用程序132的交互、在客户端1 与一个或多个远程执行的或基于网络的应用(比如应用106)之间的交互、和/或由客户端1 对基于网络的或其他远程执行的应用的访问或利用。应当理解,任务引擎122的功能可以通过由客户端1 执行的应用程序132的一个或多个来提供。此外,任务引擎122的功能可以由客户端128的操作系统130和/或通过执行客户端1 处执行的一个或多个应用程序132来提供。在其他实施例中,任务引擎 122与客户端1 通信并且检测客户端1 处的交互。无论如何,任务引擎122可以被配置成检测与客户端1 相关联的交互。从操作302,方法300前进到操作304,其中任务引擎122获取背景数据126。如上文参考图1所解释,背景数据126描述在客户端1 处发生的一个或多个交互的各方面,比如正被客户端1 访问或利用的一个或多个应用106或资源、客户端1 处发生的操作、正在客户端1 处执行或由其访问的特定的应用程序1 或其类型、正被客户端1 使用、消耗或操作的内容、其组合等等。因此,背景数据1 描述在客户端1 处发生的交互的类型和由客户端1 与其交互的内容的类型。从操作304,方法300前进到操作306,其中任务引擎122识别与关联于客户端1 的背景数据126有关的一个或多个任务。如上所解释,任务引擎122基于背景数据1 搜索或查询任务数据112以识别与关联于客户端128的活动有关的任务。例如,如果客户端 128正与视频文件交互,则背景数据1 可以指示该交互以及与该视频文件相关联的文件类型和/或其他信息,比如视频文件的尺寸、分辨率、长度、帧速率等等。至少部分地基于该背景数据126,任务引擎122可以识别与客户端1 有关的任务。从操作306,方法300前进到操作308,其中任务引擎122配置UI以用于与所述有关任务交互。如上文参考图1-2C所解释,任务引擎122填充菜单和/或在菜单上显示的UI 控制器,确定什么任务可用或不可用,确定用于UI控制器的一个或多个评级和/或广告方案,以及基于这些和/或其他确定配置UI。而且,任务引擎122可以配置并生成用于呈现用于访问工作流140的一个或多个UI控制器的数据。根据各种实施例,任务引擎122基于这些和其他确定配置UI并且构建描述对客户端1 而言可用的UI的数据。从操作308,方法 300前进到操作310。方法300在操作310处结束。现在转到图4,将详细描述用于提供任务的另一个方法400的各方面。方法400开始于操作402处,其中任务引擎122检测与工作流400的交互。如上文所解释,工作流140可以包括识别批量任务的数据、以及指示与工作流140相关联的执行点的数据、与执行工作流140的设备相关联的背景数据126、其他信息等等。尽管在图4中未示出,但是应当理解,工作流140可以由用户、应用或任务开发者、发现引擎108、搜索应用124、任务引擎122 和/或界面模块138来生成。因此,应当理解,工作流140的内容可以基于用户偏好、背景数据126、与设备和/或用户相关联的历史、SN数据120、开发者信息、其他信息、其组合等等中的一个或多个。从操作402,方法400前进到操作404,其中任务引擎122确定与工作流140的交互是否已被中断。工作流140的执行可以由于各种原因而被中断。例如,正用于执行工作流140的设备可能丢失网络连接或能力,用户可能退出经由其控制与工作流140交互的会话,用户可能明确地停止或暂停执行工作流140以改变设备或与其他用户或设备共享工作流的执行,等等。在一些实施例中,工作流140的一些任务可能不可在正用于执行工作流 140的智能电话上执行。因此,当在工作流140的执行期间遭遇这些任务时,任务引擎122 可以通知用户并中断工作流140的执行。工作流140可以由于其他原因而被中断。如果任务引擎122在操作404中确定了工作流140的执行已被中断,则方法400前进到406,其中任务引擎122存储工作流进程信息和与工作流140执行相关联的其他信息。 该其他信息可以包括但不限于,与开始执行工作流140的设备相关联的背景数据126、在工作流140中的下一个任务、配置并呈现给用户的UI、其他信息等等。因此,任务引擎122可以存储允许工作流140在另一个时间、由另一个用户、由另一个设备、在另一个位置等恢复的各种信息。下面参考图5描述用于恢复执行工作流140的示范性方法。如果任务引擎I22在操作404中确定了工作流140的执行尚未被中断,方法400 前进到操作408,其中任务引擎122确定工作流140的执行是否已经完成。根据实现方式, 任务引擎122可以确定与工作流140相关联的所有任务是否已被执行,工作流140的执行是否已被用户明确地结束,等等。如果任务引擎122在操作408中确定了工作流140的执行尚未被完成,则方法400返回到操作404。在一些实施例中,操作404-408可以被重复直到工作流140被中断或完成。如果任务引擎122在操作408中确定工作流140的执行已经完成,或者从操作406,方法400前进到操作410。该方法在操作410处结束。现在转到到图5,将详细描述用于恢复执行工作流140的方法500的各方面。方法 500在操作502处开始,在操作502处,恢复工作流140的执行。如根据本文的图1_4的描述将会了解的,工作流140可以在被中断或共享之后恢复。任务引擎122可以通过检测与工作流140相关联的登录、通过检测与工作流相关联的链路的访问代码或链路的访问的提交或者通过其他手段来检测工作流140的恢复。在一些实施例中,工作流140由两个或更多个用户并行执行。由此,操作502不仅包括恢复执行中断的工作流140,而且包括经由访问共享的访问代码或访问共享工作流140的其他方法访问工作流140。从操作502,方法500前进到操作504,其中任务引擎122确定与工作流140相关联的背景数据126是否和与恢复执行工作流140的设备相关联的背景数据1 相同。如上所述,用户或设备可以中断正在用第一设备访问的工作流140的执行,并且利用第二设备恢复工作流140的执行。任务引擎122可以被配置成访问与恢复执行工作流140的设备相关联的背景数据126,并且将该数据与对应于发起工作流140的执行的设备的背景数据1 进行比较。
如果任务引擎在操作504中确定与恢复执行工作流140的设备相关联的背景数据 126和与工作流140相关联的背景数据1 不相同,则所述方法500前进到操作506,其中任务引擎122生成用于向与恢复工作流140的执行的设备相关联的用户呈现的新UI。应当理解,在操作506中生成UI可以但不必基本相似于上文参考图3描述的操作308中生成 UI。如果任务引擎122在操作504中确定与恢复执行工作流140的设备相关联的背景数据1 和与工作流140相关联的背景数据1 相同,则所述方法500前进到操作508, 其中任务引擎122召回(recall)与工作流140相关联的UI。从操作506和操作508,方法 500前进到操作510,其中恢复工作流140的执行。从操作510,方法500前进到操作512。 方法500在操作512处结束。应当理解,根据本文所公开的概念和技术,可以不再强调特定应用和/或任务的源或标记(brand),并且可以强调与特定任务和/或应用相关联的功能。换言之,UI可以基于与任务和/或工作流140相关联的功能来调适,并且不能由应用和/或任务开发者硬编码。类似地,UI可以基于功能而不必基于用于提供功能的应用、任务和/或工作流140 的源来配置。因此,UI控制器在UI中的位置和/或配置可以基于潜在功能,比如关联的任务和工作流140,并且因此可以甚至在与特定源相关联的任务不可用的情况下是一致的。因此,例如,用于观看流式传输的视频内容的UI可以包括用于流式传输电影的UI控制器。根据被搜索和/或选择用于流式传输的电影,该电影的一个或多个源可能不是可用的。因此, 用于流式传输视频的UI控制器可以位于UI上的一致的位置中,但是可以与用于流式传输内容的任务的一个或多个源相关联。该示例是说明性的,并且不应当被解释为以任何方式限制。在一些实施例中,应用或任务开发者可能擅长于任务,而不擅长特定应用且/或除了擅长特定应用之外还擅长于任务。例如,存在用于提供图像编辑的多个应用。一些图像编辑应用包括相似的特征,但是一些特征可以在这些应用之间变化。用户可以基于功能的子集购买一个应用而不是另一个应用。根据本文所公开的概念和技术,用户可以访问与多个应用开发者相关联的任务。因此,应用开发者可以在需要时聚焦于设置它们的服务和 /或产品(除其他应用开发者之外)的任务。在一些实施例中,工作流140的一些任务可以是自动化的,并且/或者与这些任务相关联的数据可能被自动填充(populate)。例如,用户可以指定偏好,或者任务引擎122可以随时间确定这些偏好,以及这些偏好可以用于驱动与任务的执行相关联的数据生成和/ 或任务的执行。由此,用户可以指定针对几乎任何任务的偏好,其中这些偏好用于驱动任务的执行和/或用于执行这些任务的数据。一些工作流140和/或工作流140的任务可以被配置成在长时间周期执行和/或执行直到中断为止。例如,用户可以指定用于产品搜索、历史数据生成和/或跟踪等等的工作流140,并且工作流140可以执行直到它期满和/或直到被用户中断。在一些实施例中, 可以使与工作流140相关联的数据对与用户相关联的任何其他任务和/或工作流140而言可用,使得这些数据可以用于驱动与用户相关联的其他任务或工作流140的执行。在一些实施例中,对应于与用户的受信的社交网络连接或其他实体相关联的工作流140和/或任务执行的数据可以用于与用户相关联的任务或工作流执行。因此,例如,用户可以将工作流140或任务与受信实体相关联,并且与受信实体相关联的数据可以相对于任务或工作流140的执行来使用。图6图示了用于能够执行本文所述的用于与背景和基于任务的计算环境交互的软件组件的设备的示范性计算机架构600。因此,图6所示的计算机架构600图示了用于服务器计算机、移动电话、PDA、智能电话、台式计算机、上网本计算机、平板计算机和/或膝上型计算机的架构。计算机架构600可以用于执行本文所呈现的软件组件的任何方面。图6所示的计算机架构600包括中央处理单元602(“CPU”)、包括随机存取存储器 606 (“RAM”)和只读存储器(“ROM”)608的系统存储器604、以及将存储器604耦合到CPU 602的系统总线610。包含有助于诸如在启动期间在计算机架构600内的元件之间传输信息的基本例程的基本输入/输出系统被存储在ROM 608中。计算机架构600进一步包括用于存储操作系统614、搜索应用124、界面模块138和工作流140的大容量存储设备612。尽管未在图6中示出,但是在需要时该大容量存储设备612还可以被配置成存储任务数据112。大容量存储设备612通过连接到总线612的大容量存储控制器(未示出)而连接到CPU 602。该大容量存储设备612和它的关联的计算机可读介质为计算机架构600提供非易失性存储。尽管本文所包含的计算机可读介质的描述是指大容量存储设备,比如硬盘或CD-ROM驱动器,但是本领域技术人员应当了解,计算机可读介质可以是可被计算机架构 600访问的任何可用的计算机存储介质或通信介质。通信介质包括以诸如载波和其他传输机构之类的已调制的数据信号中的计算机可读指令、数据结构、程序模块或其他数据并且包括任何传送介质。术语“已调制的数据信号”意指一种信号,其特性的一个或多个以一定方式被改变或设置以便在信号中编码信息。 为了举例而非限制,通信介质包括诸如有线网络或直接布线连接之类的有线介质和诸如声学、RF、红外和其他无线介质之类的无线介质。上述任意组合还应当包括在计算机可读介质范围内。为了举例而非限制,计算机存储介质可以包括以用于存储诸如计算机可读指令、 数据结构、程序模块或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、 可移除和不可移除介质。例如计算机介质包括但不限于,RAM、ROM、EPROM、EEPR0M、闪存或其他固态存储器技术、CD-ROM、数字通用盘(“DVD ”)、HD-DVD、BLU-RAY或其他光存储装置、 磁带盒、磁带、磁盘存储装置或其他磁性存储设备、或可以用于存储期望的信息并且可以被计算机架构600访问的任何其他介质。为了权利要求的目的,短语“计算机存储介质”及其变化本身不包括波、信号和/或其他暂时和/或无形通信介质。根据各种实施例,计算机架构600可以使用通过诸如网络104之类的网络到远程计算机的逻辑连接在联网环境中操作。计算机架构600可以通过连接到总线610的网络接口单元616而连接到网络104。应当了解,网络接口单元616还可以被用于连接到其他类型的网络和远程计算机系统,例如服务器计算机102、发现引擎108、数据存储装置114、SN服务器116和/或其他设备和/或网络。计算机架构600还可以包括用于接收和处理来自多个其他设备的输入的输入/输出控制器618,所述其他设备包括键盘、鼠标或电子笔(图6中未示出)。类似地,输入/输出控制器618可以提供到显示屏、打印机或其他类型的输出设备(图6中也未示出)的输出。
18
应当了解,本文所述的软件组件可以在加载到CPU 602并被执行时将CPU 602和整个计算机架构600从通用计算系统变换成专用计算系统,其被定制用于促进本文呈现的功能。CPU 602可以根据任意数量的可以单独或共同地假设任意数量的状态的晶体管或其他分立电路元件构成。更特别地,CPU 602可以作为有限状态机器响应于本文所公开的软件模块内包含的可执行指令而操作。这些计算机可执行指令可以通过指定CPU 602如何在状态之间转变来变换CPU 602,从而变换构成CPU 602的晶体管或其他分立的硬件元件。对本文所呈现的软件模块进行编码还可以变换本文所呈现的计算机可读介质的物理结构。在本说明书的不同实现方式中,物理结构的特定变换可以依赖于各种因素。这样的因素的示例可以包括但不限于,用于实现计算机可读介质的技术、计算机可读介质被表征为主要还是次要存储装置,等等。例如,如果计算机可读介质被实现为基于半导体的存储器,则本文所公开的软件可以通过变换半导体存储器的物理状态而在计算机可读介质上被编码。例如,软件可以变换晶体管、电容器或构成半导体存储器的其他分立电路元件的状态。所述软件还可以变换这样的组件的物理状态,以便将数据存储于其上。作为另一个示例,本文所公开的计算机可读介质可以使用磁或光技术来实现。在这样的实现方式中,本文所呈现的软件可以在软件在其中编码时变换磁或光介质的物理状态。这些变换可以包括改变给定磁介质内的特定位置的磁特性。这些变换还可以包括改变给定光介质内的特定位置的物理特征或特性,以改变这些位置的光特性。物理介质的其他变换是可能的,而不脱离本发明的范围和精神,其中上述示例仅被提供用于促进该讨论。鉴于上文,应当了解,许多类型的物理变换发生在计算机架构600中,以便存储并执行本文呈现的软件组件。还应当了解,计算机架构600可以包括其他类型的计算设备,包括手持式计算机、嵌入式计算机系统、个人数字助理和本领域技术人员所知的其他类型的计算设备。还设想,计算机架构600可以不包括图6所示的所有组件,可以包括图6中没有明确示出的其他组件,或者可以利用完全不同于图6所示的架构。基于上文所述,应当了解,本文已经公开了用于背景和聚焦于任务的计算的技术。 尽管本文所呈现的主题已经以特定于计算机结构特征、方法和变换动作、特定计算机器和计算机可读介质的语言来描述,但是应当理解,所附权利要求中限定的本发明不必限于本文所述的特定特征、动作或介质。相反,这些特定特征、动作和介质是作为实现权利要求的示例形式而被公开的。上述主题仅作为例示提供并不应当解释为限制。可以对本文所述主题进行各种修改和改变,而不遵循所图示和描述的示例实施例和应用并且不脱离在随后的权利要求中阐述的本发明的真实精神和范围。
权利要求
1.一种用于聚焦于任务的计算的计算机实现的方法,该计算机实现的方法包括执行计算机实现的操作,以用于检测客户端(1 )与应用(106)之间的交互;获取与客户端(128)相关联的背景数据(1 ),背景数据(1 )描述交互、应用(106)以及与所述交互相关联的内容;查询任务数据(112)以基于背景数据(126)识别包括预期与客户端(128)有关的任务的有关任务;以及配置用户界面以用于向客户端(128)呈现所述有关任务,其中用户界面包括对应于所述有关任务的用户界面控制器,并且其中用户界面控制器的选择致使客户端(128)访问对应的有关任务。
2.权利要求1的方法,其中所述用户界面控制器包括工作流用户界面控制器,其选择致使客户端访问工作流,其中该工作流包括批量任务。
3.权利要求2的方法,进一步包括接收指示所述工作流用户界面控制器的选择的数据; 开始工作流的执行; 确定工作流的执行是否被中断;以及响应于确定工作流的执行被中断,存储工作流进程数据。
4.权利要求3的方法,其中所述工作流进程数据包括用于以下的数据 识别工作流,识别工作流的执行中的进程, 描述与工作流相关联的背景数据,以及描述用于与工作流交互的用户界面。
5.权利要求4的方法,进一步包括 恢复工作流的执行;确定与恢复工作流的执行的设备相关联的背景数据是否基本相似于与工作流相关联的背景数据;以及配置用户界面以用于恢复工作流的执行。
6.权利要求5的方法,其中配置用户界面包括下述至少一个响应于确定与恢复工作流的执行的设备相关联的背景数据基本相似于与工作流相关联的背景数据,提供由工作流进程数据描述的用户界面;或响应于确定与恢复工作流的执行的设备相关联的背景数据基本不相似于与工作流相关联的背景数据,生成新的用户界面。
7.权利要求1的方法,其中收集应用数据包括获取应用数据,该应用数据对应于所述应用并且描述于该应用相关联的任务; 生成描述与所述应用相关联的任务的任务数据;以及以可搜索的格式存储任务数据,该任务数据被存储在数据存储设备处。
8.权利要求1的方法,其中所述背景数据包括下述至少一个 与客户端的用户相关联的社交网络数据;或与客户端的用户相关联的任务使用历史。
9.权利要求1的方法,进一步包括确定用于所述有关任务的广告方案和评级方案,该广告方案包括指示广告是否应当在用户界面上显示的数据,并且该评级方案包括指示用户界面控制器被布置在用户界面上的顺序的数据。
10.一种在其上存储有计算机可读指令的计算机可读存储介质,当该计算机可读指令被计算机执行时,致使该计算机向任务引擎(122)提供指示在客户端(1 )处的交互的数据,该交互包括客户端(1 ) 访问应用(106);将背景数据(126)暴露给任务引擎(122),背景数据(126)包括描述与所述交互相关联的活动并且描述与所述交互相关联的内容的数据、社交网络数据(120)和与客户端(1 ) 相关联的任务使用历史;从任务引擎(122)接收包括用于访问有关任务的用户界面控制器的用户界面,该有关任务包括与所述活动和内容有关的工作流(140)和任务; 在客户端(128)处显示所述用户界面; 接收至少一个用户界面控制器的选择;响应于所述选择,访问与所述至少一个用户界面控制器相关联的有关任务; 开始所述有关任务的执行,该有关任务包括工作流(140); 确定工作流(140)的执行是否被中断;响应于确定工作流(140)的执行被中断,存储工作流进程数据,其包括识别工作流 (140)的数据、识别工作流(140)的执行中的进程的数据、描述与工作流(140)相关联的背景数据(1 )的数据以及描述用于与工作流(140)交互的用户界面的数据;以及恢复工作流(140)的执行。
全文摘要
本文描述了用于与背景和聚焦于任务的计算环境进行交互的概念和技术。与应用相关联的任务由任务数据来描述。识别与发生在客户端处的活动有关的任务和/或批量任务,并且生成用于呈现所述任务的UI。该UI可以包括任务和对应于批量任务的工作流。工作流可以按照需要而被执行、中断和恢复。中断的工作流与指示进程、背景信息、UI信息和其他信息的数据一起被存储。工作流被存储和/或共享。当恢复工作流的执行时,可以基于用于恢复工作流的执行的设备提供相同或不同的UI。因此,多个设备和用户可以并行访问工作流以提供协作的任务执行。
文档编号G06Q10/06GK102542410SQ20111043225
公开日2012年7月4日 申请日期2011年12月21日 优先权日2010年12月21日
发明者B.W.瓦尼克, O.E.马里洛 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1