CN107257971B - 用于从相关应用提供数据的情境敏感框架 - Google Patents

用于从相关应用提供数据的情境敏感框架 Download PDF

Info

Publication number
CN107257971B
CN107257971B CN201680010840.3A CN201680010840A CN107257971B CN 107257971 B CN107257971 B CN 107257971B CN 201680010840 A CN201680010840 A CN 201680010840A CN 107257971 B CN107257971 B CN 107257971B
Authority
CN
China
Prior art keywords
application
data
context
computing device
service
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201680010840.3A
Other languages
English (en)
Other versions
CN107257971A (zh
Inventor
埃撒·泽内·伊文斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/623,903 external-priority patent/US10684866B2/en
Priority claimed from US14/623,913 external-priority patent/US20160239578A1/en
Priority claimed from US14/623,893 external-priority patent/US9489247B2/en
Priority claimed from US14/623,875 external-priority patent/US9740467B2/en
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN107257971A publication Critical patent/CN107257971A/zh
Application granted granted Critical
Publication of CN107257971B publication Critical patent/CN107257971B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72448User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions
    • H04M1/72454User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions according to context-related or environment-related conditions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Environmental & Geological Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

本文公开了用于使用情境敏感框架来识别当前情境的相关应用并且向用户提供从所述相关应用接收到的数据的功能。替代用户必须手动地定位和启动应用,由情境服务确定的相关应用可以响应于接收情境数据而提供数据。被识别为与情境相关的应用确定提供给情境服务的应用数据。情境服务选择所述应用数据的至少一部分以供显示在用户界面内。在一些配置中,选定的应用数据被显示在不管显示的应用数据如何均维持相同的外观和感觉的用户界面内。

Description

用于从相关应用提供数据的情境敏感框架
发明背景
如今存在大量的可供移动计算设备的用户使用的软件应用。例如,一些电子市场包括超过一百万种不同的应用。与传统的桌面软件应用相比,这些应用中的许多应用可免费或以低成本使用。用户可以通过无线连接到电子市场、浏览可用的应用和下载选定的应用来获得应用。
然而,尝试在数百万可用应用当中查找应用对于用户来说可能具有挑战性。例如,用户可能难以决定要下载的特定应用,因为可能存在数百个提供相同或类似功能的可用应用。用户可以查看客户评级来帮助确定要获取什么应用。用户也可以下载并试用应用。例如,一些用户将数百个应用下载到其移动计算设备。然而,即使在移动计算设备上安装应用之后,用户也可能并不总是记得应用可供使用。此外,在安装应用之后,用户可能仍然需要在其设备上查找所述应用,并在需要使用所述应用时启动所述应用。
关于这些和其他考虑因素,提供了本文所作出的公开。
附图简述
图1是描绘与当前情境相关的应用向用户提供数据的说明性操作环境的框图;
图2是示出了显示从不同应用接收的应用数据的说明性图形用户界面(“GUI”)的屏幕图;
图3是示出了使用用于通信的情境服务的应用的系统图;
图4是示出了响应于用户的当前情境而识别和利用应用来执行功能的系统图;
图5是示出了说明性GUI的屏幕图,其显示与情境敏感框架内的一个或多个应用的使用有关的分析;
图6是示出了说明本文所公开机构的各方面的例程的流程图,所述机构用于使用与用户相关联的情境来选择应用和组织从选定的应用接收的数据;
图7是示出了说明本文所公开机构的各方面的例程的流程图,所述机构用于向情境服务注册应用;
图8是示出了说明本文所公开机构的各方面的例程的流程图,所述机构用于提供对与用户相关联的计算设备上当前不可用的应用的访问;
图9是示出了说明本文所公开机构的各方面的例程的流程图,所述机构用于提供对与用户相关联的计算设备上不可用的应用的访问;
图10是示出了说明本文所公开机构的各方面的例程的流程图,所述机构供用于使用情境服务相互通信的应用;
图11是示出了说明本文所公开机构的各方面的例程的流程图,所述机构用于选择应用数据以提供给与用户相关联的计算设备;
图12是示出了包括服务提供商网络的本文所公开示例的一个说明性操作环境的系统和网络图;
图13是示出实施服务提供商网络的各方面的数据中心的一个配置的计算系统图,包括本文所公开的与当前情境相关的应用向用户提供数据的一些或所有概念和技术;和
图14是示出了用于实施计算设备的一个说明性计算机硬件架构的计算机架构图,所述计算设备可用于实施本文所呈现的各种示例的各方面。
详细描述
以下详细描述涉及用于使用情境敏感框架来识别当前情境的相关应用(例如最终用户程序或操作系统软件)并提供从相关应用接收的数据的技术。例如,可以为用户提供数据以供显示和/或向另一应用或计算设备提供数据以用于一些其他用途(例如,使用当前情境执行功能)。通过本文公开的技术的实施,可以响应于接收到识别用户的当前情境的情境数据而提供相关应用数据,替代用户必须手动地定位和启动应用。如本文所使用,术语“情境”可以指围绕特定事件或情况的背景、环境、框架、设置或情况。一般来说,术语“应用”可以指处理器读取以执行某一任务或操作的任何程序指令集或数据集。在一些示例中,应用可以是系统软件(例如,操作系统)的一部分,或者可以是应用软件(例如最终用户程序)。情境数据可以包括位置数据、移动数据、活动数据、用户数据、时间数据等。一些情境数据可以从与计算设备相关联的传感器确定。例如,计算设备的传感器可以用于确定计算设备的速度、计算设备的位置、天气条件、照明条件、用户附近的声音、用户(或某一其他个人)的面部表情等。情境数据还可以包括与当前活动相关的数据。例如,当前活动可能涉及用户在计算设备上执行搜索、用户驾驶汽车、用户访问特定网站、用户进入餐厅等。
情境服务使用情境数据来识别与情境相关的应用。如本文所使用,术语“相关”可以指提供适用于当前情境的数据和/或功能的应用。可以使用注册数据来确定与特定情境相关的应用。根据一些配置,响应于情境服务接收到指定的情境数据,应用和/或计算设备向情境服务注册以接收通知或被激活。在一些配置中,应用或计算设备可以接收情境数据而不进行注册。作为使用情境数据的示例,当情境数据指示用户正在步行或慢跑时,可以激活健身应用,当情境数据指示用户正在移动(例如驾驶)或用户处于可能利用GPS的位置(例如,高尔夫球场)时,可以激活全球定位系统(“GPS”)应用。类似地,当情境数据指示用户位于机场、正在进行航班预订或正在执行租赁汽车的搜索时,可以激活租车应用。在其他示例中,计算设备可以被激活和/或被配置为响应于接收情境数据而执行某一动作。例如,恒温器可以被配置为响应于接收到指示用户正在回家的情境数据而改变温度设置。作为其他非详尽性示例,情境数据可以包括关于以下各项的任何信息:(例如从GPS、蓝牙、蓝牙LE、RF或任何其他适用的位置传感器获得的)位置、时间、日期、用户正在使用什么应用、用户正在使用特定应用中的什么特征、物理环境(例如温度、高度、湿度、生物测定压力)、设备取向、具有相关数据的其他设备(例如具有合适设备的信标或朋友)的接近度、其他用户的接近度、生物测定数据(例如脉搏、心率变异性、血氧饱和度、体温、血糖、睡眠、用户正在观看什么)等。
响应于被激活,经激活的应用确定提供与情境相关的数据。换句话说,应用使用与用户相关联的情境数据来确定并提供针对当前情境进行个性化的应用数据。因此,用户不必确定要利用什么应用,而是情境敏感框架使用用户的当前情境来确定要利用什么应用。以这种方式,用户不必专门定位和启动应用。在一些示例中,情境敏感框架从一个以上应用接收应用数据、汇集应用数据并提供应用数据供使用。例如,选定的应用数据可以在用户界面中呈现。例如,情境敏感框架可以为不同应用提供的数据提供公共用户界面。以这种方式,以一致的方式向用户呈现来自不同应用的数据。此外,此公共用户界面可以作为操作系统的一部分来提供,从而允许操作系统的界面随着情境数据的改变而改变。
情境服务还可以就将提供哪些由不同应用提供的数据作出确定。例如,情境服务可以将由不同应用提供的重叠(例如,相同或类似)的数据去重复。情境服务还可以基于用户的当前情境来滤除数据。
用户或计算设备的情境也可以被更新。例如,计算设备可以周期性地与情境服务连接,以向情境服务提供进一步的或经更新的情境数据。随着用户或计算设备的情境发生变化,先前确定为相关的应用可能会发生变化。例如,与一个情境相关的应用可能与经更新的情境无关。因此,情境服务可以响应于情境的改变而更新被确定为相关的应用。
在其他示例中,情境敏感框架可以向用户呈现与当前情境相关的不同应用的选择。例如,情境敏感框架可以向用户呈现被注册以响应于当前情境而被激活的应用。在接收到来自用户的应用的选择(例如通过公共的UI)之后,情境敏感框架可能为用户启动应用。在一些示例中,当选择与情境相关的应用时,情境服务也可以使用时间数据。例如,当确定了用户最近已吃饭时,情境服务可能在某段时间内不会利用与餐馆有关的应用。
在其他示例中,当应用未安装在正由用户利用的计算设备上时,情境敏感框架可能使应用安装在计算设备上,或者可以远程地(例如在服务提供商网络内)执行应用。在一些示例中,对是否在用户的计算设备上安装应用的确定可以是基于用户是否可能将经常使用该应用。在某些情况下,可将应用下载到计算设备、在计算设备上安装应用并且然后在一段时间后将应用自动移除。例如,安装在计算设备上的应用可以在情境改变和/或下载了应用的事件结束之后被自动移除。
如简要描述,情境敏感框架提供应用与情境敏感框架之间的双向通信。根据一些配置,情境敏感框架允许两个或多个应用相互通信。例如,应用可以使用其他应用可以注册来接收的情境服务应用程序设计接口(“API”)来定义自定义事件。应用可以使用自定义事件向其他感兴趣的应用发送数据。例如,旅行应用可以定义为用户提供旅行细节的自定义事件。该信息还可以用于更新由应用接收到的情境数据,使得由应用提供的数据更适用于当前情境。
在一些示例中,移动计算设备被配置为监测用户的情境并将情境数据提供给情境服务。在一些情况下,当在移动计算设备与作为情境服务的一部分的远程计算设备之间建立网络连接时,将情境数据提供给情境服务。定期地,或者响应于情境的改变或某一其他触发,将用户的情境数据提供给情境服务。情境服务可以在计算设备上和/或在由一个或多个远程计算机提供的服务内实施。在一些示例中,情境服务由基于网络的服务(例如,服务提供商网络)提供。
软件开发者可以使用软件开发者工具包(“SDK”)开发应用,该软件开发者工具包(“SDK”)可包括指定用于将应用连接到情境服务的功能的API,或软件开发者可能用于开发应用的其他工具。例如,情境服务API可以由应用用来注册以响应于一个或多个情境而被激活或通知。应用还可以利用API来定义一个或多个自定义事件、向另一应用发送消息、请求从计算设备接收情境数据等。还可以利用SDK和/或API来改变操作系统和/或某一其他应用的操作。例如,操作系统的一个部分可以利用API来响应于接收到某些情境数据或应用数据而与操作系统的另一部分通信。
分析还可以被提供给经授权的用户,例如应用的软件开发者,这涉及情境服务对应用的使用。例如,分析可以显示在图形用户界面(“GUI”)中,并且包括诸如但不限于使用数据(例如,平均使用)、收益数据(例如,购买、使用成本)、应用内所用的功能等信息。用户可以查看分析以确定在情境敏感框架内如何利用应用。
根据一些配置,情境服务可以收集和存储可用于改进由情境服务提供的推荐和/或数据的数据。可以收集和存储的数据可以包括从不同用户和/或计算设备接收的情境数据、从各种应用接收的应用数据以及与情境服务的用户相关联的使用数据。例如,使用数据可能包括用户选择什么应用、用户利用什么应用以及用户如何针对不同情境利用应用的功能。在一些示例中,情境服务可以使用机器学习机制来改进由情境服务提供的推荐。例如,随着时间的推移,由于情境服务接收较多的数据,因此由情境服务提供的数据可以基于与所接收的情境服务的用户相关联的实际使用数据而改变。可以响应于接收附加数据而改善机器学习机制。关于上述用于基于情境选择和利用应用的各种部件和进程的附加细节将在下面关于图1-14来呈现。
应理解,本文呈现的主题可以被实施为计算机进程、计算机控制的装置、计算系统或制品,诸如计算机可读存储介质。虽然本文描述的主题在一个或多个计算设备上执行的程序模块的一般情境中呈现,但是本领域技术人员将认识到,可以结合其他类型的程序模块执行其他实施。通常,程序模块包括例程、程序、部件、数据结构和执行特定任务或实施特定抽象数据类型的其他类型的结构。
本领域技术人员还将理解,本文描述的主题的各方面可以在超出本文所描述的计算机系统配置的包括以下各项的其他计算机系统配置的情况下或与其相结合地实施:多处理器系统、基于微处理器的或可编程电子消费品、小型计算机、大型计算机、手持式计算机、个人数字助理、电子阅读器、移动电话设备、平板计算设备、专用硬件设备、网络设备等。如上文简要提到,本文描述的示例可以在分布式计算环境中实施,其中任务可以由通过通信网络链接的远程计算设备执行。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备两者中。
在下面的详细描述中,参考附图,附图形成本文的一部分,并且通过说明的方式示出了具体示例或示例。本文的附图并未按比例绘制。相同的编号在几个附图(其在本文中可称为“一个图”或“多个图”)中表示相同的元件。
现在参考图1,示出了根据本文呈现的各种示例的与当前情境相关的应用向用户提供数据的操作环境100。图1中所示的操作环境100包括计算设备102A-102B、情境服务104、应用服务106和应用执行服务108。
根据一些配置,可称为“计算设备102”的计算设备102A-102B可各自被配置为平板计算设备、智能电话、个人计算机(“PC”)、台式计算机、膝上型计算机、笔记本式计算机、其他移动计算装置、视频游戏系统、机顶盒、智能电视机或其他类似物。根据其他示例,计算设备102的功能的至少一部分可以由应用服务106、应用执行服务108或服务提供商网络110(参见图12中所示的服务提供商网络110)来提供。
情境服务104、应用服务106、应用执行服务108或服务提供商网络110可以包括一个或多个应用服务器、Web服务器、数据存储系统、网络设备、专用硬件设备和/或其他服务器计算机或用于提供不同服务的功能的计算设备。在这些示例中,计算设备102可以包括用于经由网络(未示出)连接到基于网络的计算平台的最小硬件。计算设备102可以经由网络通信以访问本文所描述的各种服务或计算资源。例如,计算设备102可以访问情境服务104、应用服务106和/或应用执行服务108。下面提供关于情境服务104、应用服务106和应用执行服务108的操作的更多细节。
计算设备102A可以被配置为执行操作系统112、应用114、情境服务API 116以及其他应用程序或部件。应用114可以包括Web浏览器应用、生产力应用(例如,文字处理、电子表格和/或呈现应用)、旅行应用、健身应用、餐馆应用、社交网络应用或任何其他应用。在一些示例中,应用114中的一者或多者可以被配置为利用情境服务API 116。根据一些配置,应用可以是操作系统112的一部分和/或某一其他部件。虽然计算设备102B未示出与计算设备102A相同的细节,但是应理解,计算设备102B以及其他计算设备可以被相同地配置或者可以具有比针对计算设备102A所示更多或更少的应用程序和/或部件。
应用服务106可以被配置成为情境服务104提供支持。例如,如下面更详细地讨论,情境服务104可以利用应用服务106来获得与当前情境(其与用户(例如,用户120A或120B)相关联)相关的一个或多个应用114。
可以经由连接到计算设备102A或以其他方式与计算设备102A通信的一个或多个输入设备来提供对应用114的输入。对应用114的输入可用于控制应用114的各方面,例如导航菜单。计算设备102A还可以被配置为将由一个或多个应用114提供的视觉内容呈现在内置于计算设备102A或在计算设备102A外部并且与其通信的一个或多个显示设备(例如显示器122A)上。
显示器122A是被配置为以视觉形式呈现信息的输出设备。具体地,显示器122A可以呈现由情境服务104、客户端情境管理器124B、应用114等提供的视觉内容。视觉内容可以包括GUI元素、文本、图像、视频、通知、虚拟按钮、虚拟键盘、消息传送数据、互联网内容、设备状态、时间、日期、日历数据、偏好、地图信息、位置信息和任何能够以视觉形式呈现的其他信息。在一些示例中,显示器122A是利用任何有源或无源矩阵技术和任何背光技术(如果使用)的液晶显示器(“LCD”)。在其他示例中,显示器122A可以是有机发光二极管(“OLED”)显示器。预期其他显示器类型。此外,显示器122A可以包括诸如触摸屏或多点触摸功能的触摸屏的输入设备。
应用114的全部或一部分可以利用情境服务API 116来与情境服务104、应用服务106和/或应用执行服务108互动。如上文所讨论,应用114可以是提供一个或多个功能的任何指令或数据。应用114可以被配置为调用由情境服务API 116暴露的一个或多个方法,以经由网络访问情境服务104以利用由情境服务104提供的一个或多个特征。应用114还可以被配置为调用由情境服务API 116暴露的一个或多个方法来访问应用服务106或应用执行服务108。例如,情境服务API 116可由应用114的一个或多个用于注册以接收通知,并且可能响应于用户120A的当前情境而被激活。情境服务API 116还可以用于将数据发送到另一应用114、请求与当前情境相关的数据等。
用户120A可以使用计算设备102A来与情境服务104互动。在一些示例中,显示在显示器122A上的UI 130A可以用于查看情境服务104和与情境服务104互动。
如所示,情境服务104包括管理一个或多个会话的情境管理器124A,在所述会话期间计算设备(诸如计算设备102A)与情境服务104互动。情境服务104可以支持到任何数量的计算设备102的连接,使得利用各种计算设备102的一个或多个用户可以与情境服务104、应用服务106、应用执行服务108以及相互之间共享数据。因此,所示的示例仅仅是说明性的,并且不应被解释为以任何方式予以限制。
在图1中所示的当前示例中,包括情境服务104的情境敏感框架识别与用户(例如,用户120A或120B)的当前情境相关的应用114,并向用户提供从相关应用114接收到的应用数据118。如上文简要讨论,替代用户必须手动地定位和启动应用114,用户的当前情境的相关应用114可以提供与用户的当前情境相关的应用数据118。
为了确定用户的当前情境,客户端情境管理器124可以利用计算设备102A的传感器126中的一者或多者。传感器126可以被配置为确定情境数据128A的至少一部分。例如,传感器126可以确定位置数据、移动数据(例如,速度或加速度数据)、天气数据、生物测定数据、时间数据、照明数据、面部辨识数据等。与用户120A的当前情境相关联的一些情境数据128A可以依据计算设备102A的当前活动来确定。例如,当前活动可能涉及用户执行搜索、用户启动应用、用户访问网站等。在一些示例中,客户端情境管理器124B汇集与当前情境相关的各种数据,并将情境数据128A发送到情境服务104。
情境服务104使用所接收的情境数据128A来识别与用户120A的当前情境相关的一个或多个应用114。如上文简要讨论,至少部分地基于应用114是否向情境服务104注册以响应于由情境数据128指示的当前情境来激活,可以将应用114确定为与特定情境相关。例如,情境服务104可以确定应用114A-114F与由情境数据128A指定的情境相关。确定为相关的应用114可以安装在计算设备102A上,或者可以不安装在计算设备102A上。在当前的示例中,应用114A-114C安装在计算设备102A上,并且应用114D-114F被远程定位(例如,在应用服务106和/或应用执行服务108内)。
根据一些配置,应用114向情境服务104注册以响应于情境服务104接收到指定的情境数据128A而被激活。例如,健身应用可以向情境服务104注册以当情境数据128A指示用户正在步行或慢跑时被激活。当情境数据128A指示用户正在移动时,可以激活其他应用114。类似地,当情境数据128A指示用户120A位于机场、正在进行航班预订或正在执行租赁汽车的搜索时,可以激活租车应用114。在其他示例中,情境服务104可以确定要激活的应用114。
响应于被激活,诸如应用114A-118F的经激活的应用确定与情境数据128A相关的应用数据118A-118F以提供给情境服务104和/或客户端情境管理器124B或情境管理器124A。换句话说,由情境服务104和/或客户端情境管理器124B激活的相关应用使用情境数据128A来确定要提供的应用数据118A。例如,与足球比赛期间(例如,当前得分,比赛的当前统计)相比,被确定为相关的体育应用114可以在足球比赛之前提供不同的应用数据118(例如,比赛前数据)。替代情境服务104从应用114请求指定应用数据118,情境服务104被配置为激活应用114并向应用114提供情境数据128A。在一些示例中,情境服务104还可以从相关应用114A-114F中的一者或多者请求特定数据。如下面更详细地讨论,应用114A-114F可以在计算设备102A上和/或在应用执行服务108内或在某一其他计算设备上执行。
如所示,用户120A或120B不必确定要利用什么应用114,包括情境服务104的情境敏感框架使用用户的当前情境来确定要利用的应用。以这种方式,用户不必具体地定位和启动应用114。
在一些示例中,情境敏感框架从一个以上应用接收应用数据118、汇集应用数据118并将选定的应用数据118呈现在诸如用户界面130A或130B的用户界面130中。例如,情境敏感框架可以提供公共用户界面(其可以是操作系统软件的一部分),以呈现由不同应用114A-114F提供的应用数据118A-118F。以这种方式,以一致的方式向用户呈现来自不同应用的数据。
情境服务104还可以就将向用户提供从不同应用114A-114F接收的哪些应用数据118作出确定。例如,情境服务104可以从应用数据118A-118F移除重复数据(或类似数据)。情境服务104和/或客户端情境管理器124B也可以基于用户的当前情境来滤除数据。
在其他示例中,情境服务104可以确定什么其他计算设备102和/或其他应用来接收应用数据118。例如,情境服务104可以响应于确定用户在家中或正在回家的路上并将在指定的时间段内到家而将应用数据118提供给用户家中的其他计算设备。作为另一示例,情境服务104可以响应于确定用户将要上车而将应用数据118提供给其他计算设备(诸如汽车中的计算设备)以便启动汽车。这还可以包括针对用户可能的目的地来加载地图或方向软件,以及提供与交通有关的信息。
与用户120A相关联的情境数据128也可以借助情境服务104来更新。例如,计算设备102A可以与情境服务104连接,以向情境服务104提供进一步的或经更新的情境数据128A。当与用户的当前情境相关联的情境数据128A改变(例如,用户的位置改变)时,先前确定为相关的应用114A-114F可能不再被确定为相关。例如,与一个情境相关的应用可能与经更新的情境无关。因此,情境服务104可以响应于情境的改变而更新相关应用。
在其他示例中,情境敏感框架可以向用户呈现与当前情境相关的不同应用的选择。例如,情境服务104可以向用户120B呈现被注册为响应于当前情境而被激活的应用114的选择。在例如通过UI 130B接收到来自用户的应用的选择之后,情境服务104可能使选定的应用114G被启动。在一些配置中,选定的应用114G可以在应用执行服务108内启动。在其他配置中,选定的应用114G可以在计算设备102B上启动。
当选定的应用114G未安装在用户正在使用的计算设备102B上时,情境服务104可能使应用114G安装在计算设备102B上。在一些示例中,是否在计算设备102B上安装应用114G的确定可以是基于用户120B可能使用应用114G的频率的预测。例如,在某些情况下,选定的应用114G可能仅被使用一次(例如,针对特定事件的应用)。在一些情况下,客户端情境管理器124C可以连接到电子市场132、将应用114G下载到计算设备102B并使应用114G安装在计算设备102B上。在安装应用114G之后,客户端情境管理器124C可以启动应用114G,并且然后可能在稍后的某个点处自动从计算设备102B移除应用114G。例如,应用114G可能在应用114G已经完成的事件之后(例如,几小时、几天或类似时间之后)被移除。例如,如果用户将要进行足球比赛,则应用114G可以被自动下载,然后一旦该用户离开了足球比赛即被移除。
当应用执行服务108执行选定的应用114G(或某一其他远程计算设备)时,情境服务104的情境管理器124A可以将由应用114G生成的应用数据118G提供给客户端情境管理器124C。应用数据118G可以是与情境数据128B相关的应用数据118G,或可以是由应用114G生成的数据的某一其他部分或全部。
如上文简要描述,情境敏感框架提供应用114与情境服务104之间的双向通信。根据一些配置,情境敏感框架允许两个或多个应用114相互通信。下面关于图2提供使用情境敏感框架来通信的两个或多个应用114的更多细节。
在一些示例中,客户端情境管理器124B或124C被配置为监测用户的情境并将情境数据128A或128B提供给情境服务104。在一些情况下,当在计算设备102和作为情境服务104的一部分的远程计算设备之间建立网络连接时,将情境数据128提供给情境服务104。
在一些示例中,软件开发者可以使用软件开发者工具包(“SDK”)开发应用114,软件开发者工具包(“SDK”)可以包括指定用于将应用114连接到情境服务104的功能的诸如情境服务API 116的应用程序设计接口(“API”),或软件开发者可能用于开发应用的其他工具。例如,情境服务API 116可以由应用用来注册以响应于一个或多个情境而被激活或通知。应用114还可以利用情境服务API 116来定义一个或多个自定义事件,所述自定义事件可用于将数据传递到另一应用114和/或情境服务104。
如上文简要讨论,情境服务104可以收集可用于改进推荐的数据并将所述数据存储在例如数据存储区134A中,诸如由情境服务提供的识别数据136和/或应用数据118A-118F。可以由情境服务104收集和存储的数据可以包括从不同用户和/或计算设备接收的情境数据128、从各种应用接收的应用数据118以及与情境服务的用户相关联的使用数据。例如,使用数据可能包括用户选择什么应用、用户利用什么应用以及用户如何针对不同情境利用应用的功能。
在一些配置中,情境服务104可以使用机器学习机制来改进由情境服务提供的推荐。术语“机器学习”可以指一个或多个程序,所述程序从其接收的数据中学习。例如,机器学习机制可以构建、修改或以其他方式利用从示例输入创建的模型,并使用模型进行预测或决策。在当前示例中,机器学习机制可以用于改进作为由情境服务104提供的数据的识别应用114。可以使用受监督和/或不受监督的学习来训练所述模型。例如,随着时间的推移,由于情境服务接收较多的数据,因此由情境服务提供的数据可以基于与所接收的情境服务的用户相关联的实际使用数据而改变。可以响应于接收附加数据来改进由情境服务104使用的机器学习机制。
分析还可以被提供给软件提供商或某一其他经授权的用户,这涉及由一个或多个用户利用情境敏感框架对应用114的使用。例如,分析可以显示在GUI中,并且包括诸如但不限于使用数据(例如,平均使用)、收益数据(例如,购买、使用成本)、应用内所用的功能等信息。软件提供商可以查看分析以确定在情境敏感框架内如何利用他们的应用。图5示出了可用于提供分析的示例性GUI 500。
在一些示例中,应用服务106提供电子市场132,用户可以通过该电子市场购买内容,例如应用114、应用插件、应用内项目、音乐、电子书、电影等。应理解,操作环境100的各种实施包括多个网络、情境服务104、应用服务106、应用执行服务108、应用114和情境服务API 116。因此,所示的操作环境100应理解为是说明性的,而不应被解释为以任何方式予以限制。
图2是示出显示从不同应用114接收的应用数据118的说明性GUI 200的屏幕图。GUI 200可以是最终用户程序或计算设备的操作系统的一部分,或其组合。如所示,GUI 200示出来自与诸如用户120A或120B的用户的当前情境相关的不同应用的数据。与情境服务104通信的计算设备102A可以显示GUI 200。为了说明的目的而并非意在进行限制,假设GUI200正在被当前在进行SEATTLE SEAHAWKS足球比赛的用户使用。例如,情境数据128可以指示用户位于Seattle Seahawks参赛的体育场内。
如上文所讨论,一个或多个应用114可以响应于被激活而将应用数据118提供给情境服务104。响应于接收与正在进行足球比赛的用户相关联的情境数据128,情境服务104已识别了与情境数据128相关的Seahawks应用114H、体育场应用114I、一般体育应用114J、天气应用114K和食品应用114L。用户可以通过选择选择应用UI元素206内的用户界面元素来选择或取消选择要利用的应用114。如上文所讨论,用户可能不选择从被确定为与情境数据128相关的所有应用接收数据。在此示例中,用户已决定不包括如由食品应用114L周围的虚线所指示的食品应用114L的使用。在一些示例中,从用户接收到的选择可以被提供给情境服务104,并且用于更新由机器学习机制所使用的模型。以这种方式,被识别为与某一情境相关的应用可以响应于由情境服务的用户进行的选择而随时间改变。
在当前示例中,GUI 200示出了来自识别为与当前情境相关的应用114H-114L的一部分的应用数据118H-118K。GUI 200在选定的应用数据UI元素202内示出应用数据。GUI200还在用户界面元素部分204内示出与选定的应用114-114L相关联的用户界面元素。用户界面元素部分204示出了用于Seahawks应用UI 204A、体育场应用UI 204B、一般体育应用UI204C和天气应用UI 204D的用户界面元素。可以看出,应用UI 204A-204D中的每一者均包括选项1-N。在一些示例中,用于不同应用114H-114K的用户界面元素204可以被组合或另外以不同方式显示。
如上文所讨论,GUI 200内所显示的应用数据118可以至少部分地由将应用数据118提供给情境服务104的应用来选择。换句话说,替代从应用请求特定信息,情境服务104从应用接收应用确定为与情境数据128相关的应用数据118。例如,Seahawks应用114H可以包括比赛开始之前的比赛前信息、比赛进行期间的比赛分数和统计以及比赛之后的比赛后分析和评论。当情境数据128改变(例如,比赛期间的时间变化)时,应用114H-114K中的每一者均可以更新提供给情境服务104的应用数据118H-118K。如上文所讨论,情境服务104可以在确定要提供什么应用数据时使用机器学习机制。
在一些示例中,用户可能能够从GUI 200内启动个别应用。例如,用户可以在为特定应用示出的UI元素内选择选项(未示出)。在其他示例中,用户也可以能够定制GUI 200。例如,响应于选择定制UI元素(未示出),然后可以提示用户选择他们想要包括在GUI 200的显示中的不同信息。例如,用户可以从列表(或某一其他UI元素或输入方法)选择他们想要显示的应用数据118以及如何显示数据。
图3是示出使用情境服务104来通信的应用114的系统图300。系统图300包括情境服务104与应用执行服务108通信。情境服务104可以包括情境管理器124A、数据存储区134A和报告部件302。应用执行服务108可以包括用于执行应用114A-114N的一个或多个计算设备。在其他示例中,应用114A-114N的全部或一部分可以在计算设备102A或某一其他计算设备上执行。
应用114A-114N可以被配置为向情境服务104发送数据和从情境服务104接收数据。应用114A-114N还可以利用情境服务104和情境服务API 116来相互通信。例如,诸如应用114A的应用可以响应于接收到情境数据128A而生成应用数据118A。在一些示例中,应用数据118A的全部或一部分可以由情境服务104提供给其他应用中的一者或多者,例如应用114B。应用数据118A可以被直接提供给应用114B,如由虚线所示,或通过情境管理器124A间接地提供给应用114B。
如上文所讨论,诸如应用114A的应用114可以使用情境服务API116来指定由情境服务104利用的一个或多个自定义事件。例如,自定义事件可能涉及由应用114A提供的其他应用可能有兴趣接收的应用数据。例如,图2中所示的Seahawks应用114H可能指定自定义事件,其提供其他应用通常不可用的关于SEATTLE SEAHAWKS的数据。为了接收与由应用114A指定的自定义事件相关联的应用数据118A,应用114B可以注册以接收与由应用114指定的一个或多个自定义事件有关的通知。在其他示例中,诸如应用114A的应用可以利用由情境服务API 116提供的功能来直接将直接数据304发送到诸如应用114B的另一应用。
在一些示例中,从应用114A接收直接数据304和/或应用数据118A的应用114B可以使用数据来生成提供给作为情境服务104的一部分的情境管理器124A的应用数据118B。在其他配置中,情境管理器124A可以使用接收到的应用数据118A来更新情境数据128A。例如,在一些情况下,应用数据118A可以包括可用于更新与计算设备102A的用户相关联的情境的附加情境数据128。情境管理器124A可以向应用114A-114N的全部或一部分提供经更新的情境数据128C。在当前示例中,情境管理器124A已将经更新的情境数据128C提供给应用114N。应用114N使用经更新的情境数据128C来生成应用数据118N。
报告部件302可以被配置为提供分析。例如,包括在情境服务104中的分析报告部件302可以被配置为提供图5中所示的GUI 500,其显示与应用114A-114N中的一者或多者的用户有关的分析。分析可以显示在与计算设备102A相关联的UI 130A上,UI 130A可以由软件提供商或某一其他经授权的用户利用。报告部件302还可以被配置为创建包括与应用114A-114N中的一者或多者有关的信息(例如,配置信息)的报告。
图4是系统图400,其示出了响应于用户的当前情境而识别和利用应用114来执行功能。系统图400包括情境服务104、应用服务106和计算设备102B。如上文所讨论,在一些情况下,可将被识别为与当前情境相关的应用114G下载到计算设备102B。
根据一些配置,情境服务104接收与用户120B相关联的情境数据128B,并且情境管理器124A确定与情境相关的应用114。情境管理器124A可以从向情境服务104注册的经注册的应用402确定相关应用114。情境管理器124A还可以从未向情境服务104注册的应用114确定相关应用114。例如,情境管理器124A可以从可从电子市场132购得的应用确定相关应用114。在一些情况下,情境管理器124使用可从电子市场132或某一其他来源购得的数据来确定应用的功能和/或受欢迎程度。
在当前示例中,情境管理器124A识别与情境数据128B相关的相关应用404。例如,相关应用404可以是被注册为响应于情境数据128B而激活的应用114。在一些配置中,情境管理器124A可以响应于情境数据128B选择相关应用404中的一者以提供给计算设备102B。在其他示例中,情境管理器124A可向用户呈现与当前情境相关的不同应用的选择。例如,情境服务104可以提供要呈现在用户界面130B中的相关应用数据406。在当前示例中,用户120B选择要利用的应用114G。在从用户120B接收到应用114G的选择之后,情境服务104可能使选定的应用114G被下载到计算设备102B。
如上文所讨论,是否在计算设备102B上安装应用114G的确定可以是基于用户120B可能使用应用114G的频率的预测。例如,在某些情况下,选定的应用114G可能仅被使用一次(例如,针对特定事件的应用)。在一些情况下,客户端情境管理器124C可以连接到电子市场132、将应用114G下载到计算设备102B并使应用114G安装在计算设备102B上。在安装应用114G之后,客户端情境管理器124C可以启动应用114G,并且然后可能在稍后的某个点处自动从计算设备102B移除应用114G。例如,应用114G可能在应用114G已经完成的事件之后(例如,几小时、几天或类似时间之后)被移除。
图5是示出了说明性GUI 500的屏幕图,其显示与情境敏感框架内的一个或多个应用的使用有关的分析。如应用部分504中所示,GUI 500示出了与图2中所示的应用114H-114K有关的分析。在GUI 500中呈现的数据可以由与情境服务104、应用服务106相关联的计算设备或某一其他计算设备来确定。GUI 500可以呈现在诸如计算设备102B的计算设备上。
为了说明的目的而并非意在进行限制,假设GUI 500正由情境服务104的开发者使用以查看与在特定时间段期间或与特定情境一起利用的应用114中的一者或多者的使用有关的分析。GUI 500可以显示多种不同的分析和UI元素。在当前示例中,GUI 500显示配置UI元素502A、使用类型UI元素502B、平均使用率UI元素502C、收益UI元素502D和转换率502E。在当前示例中,当前选择的应用是体育场应用114I,如体育场应用UI元素周围所显示的粗体虚线所指示。
配置UI元素502A可以显示与体育场应用114I有关的配置信息。使用类型UI元素502B可以显示指示如何使用应用的数据。在当前的示例中,使用类型UI元素502B指示体育场应用114I的得分功能被使用了22%的时间,并且体育馆应用114I的统计功能被使用了58%的时间。在一些配置(未示出)中,用户可以选择指定用于显示与一个或多个用户相关联的数据的一个或多个选项。例如,用户可以指定查看单个用户或一组用户在足球比赛的情境中对如何使用应用的分析。在其他示例中,用户可以指定查看不参加体育赛事的用户如何使用应用的分析。平均使用率UI元素502C可以显示在一个时间段(例如,每天、每周、每月)期间使用体育场应用114I的平均小时数。在当前示例中,平均使用率UI元素502C被配置为显示客户每周平均使用的小时数。在其他示例中,平均使用率UI元素502C可以被配置为显示应用在其他情境中的使用数。收益UI元素502D可以显示在指定时间段期间生成的平均收益。在当前示例中,收益UI元素502D示出了在一周内生成的收益量。转换UI元素502E可以显示可以呈现给用户以供使用的应用的平均转换率。
在一些示例中,可以选择不同UI元素的全部或一部分来获得附加信息或配置不同的选项。用户可以选择应用部分504中所示的UI元素中的一者来改变当前选择的应用。
用户也可能能够通过选择自定义UI元素502F来定制GUI 500。响应于选择自定义UI元素502F,然后可以提示用户选择他们想要包括在GUI 500的显示中的不同信息。例如,用户可以从列表(或某一其他UI元素或输入方法)中选择他们想要显示的分析。在另一示例中,用户可以选择如何显示计划分析。例如,用户可以请求将计划分析显示为原始数据、显示为图形表示(例如,表格、图表、图表)或显示成某种其他格式。用户也可以请求在GUI 500中显示历史信息。例如,用户可以请求查看使用应用的时间序列显示或一些其他数据。
GUI 500中呈现的信息也可被下载以供以后使用。如所示,用户可以选择下载UI元素502G来将信息下载到本地数据存储区、网络数据存储区或另一位置。分析可以一种或多种格式下载。例如,用户可以将客户支持信息的全部或一部分作为文本文件、电子表格文件、文字处理文件或某一其他文件下载。
图6-11是示出了说明使用情境敏感框架来识别当前情境的相关应用并且根据本文公开的示例向用户提供从相关应用接收的数据的各方面的例程的流程图。应理解,本文关于图6-11和其他图描述的逻辑操作可以被实施为(1)在计算系统上运行的一系列计算机实施的动作或程序模块,和/或(2)计算系统内的互连的机器逻辑电路或电路模块。
本文描述的各种部件的实施是取决于计算系统的性能和其他要求的选择问题。因此,本文描述的逻辑操作被不同地称为操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以软件、固件、专用数字逻辑及其任何组合来实施。还应理解,可以执行比图中所示及本文所描述的更多或更少的操作。这些操作也可以并行执行,或者以与本文所描述顺序不同的顺序来执行。
图6是示出说明本文所公开的机构的各方面的例程600的流程图,所述机构用于使用与用户相关联的情境来选择应用和组织从选定的应用接收的数据。例程600可以在602处开始,其中获得与用户相关联的情境数据128。如上文所讨论,情境数据128可以由在与用户相关联的计算设备102上操作的客户端情境管理器124获得。情境数据128可以包括各种情境数据,诸如但不限于一天的当前时间、用户的当前位置、天气数据、正在计算设备102上执行的动作等。
在604处,将情境数据128提供给情境服务。如上文所讨论,情境数据128可以由在计算设备102上操作的客户端情境管理器124提供给情境服务104,或者可以使用某一其他机构来提供。在一些示例中,情境数据128被提供给情境服务104,并且可以周期性地或响应于某一事件或状况而更新。在其他示例中,当建立网络连接时和/或在周期性时间处,可将情境数据128提供给情境服务104。
在606处,接收到识别要利用的相关应用的数据。如上文所讨论,所接收的数据可以包括识别相关应用114的识别数据136。在其他示例中,数据可包括应用本身,或者数据可包括由应用114中的一者或多者提供的应用数据118。
在608处,将情境数据128提供给被识别为相关的应用114。如上文所讨论,情境数据128可以被提供给被识别为相关的应用114的全部或一部分。在一些示例中,在情境服务104内操作的情境管理器124识别最相关的应用114,并将从计算设备102接收到的情境数据128提供给那些应用114。
在610处,从应用114接收应用数据118。如上文所讨论,所接收的应用数据118可由应用114本身选择。替代情境管理器124从应用114请求特定类型数据,情境服务104允许应用114基于计算设备102提供的情境数据128来选择要提供的应用数据118。
在612处,选择要提供的应用数据118。如上文所讨论,从相关应用114接收的应用数据118可包括重复数据以及可能与当前情境无关的其他数据。在一些示例中,情境管理器124从应用数据118中移除重复数据、对应用数据118的部分进行优先排列并格式化要提供的应用数据118。在一些示例中,应用数据118被格式化以提供给用户。在其他示例中,应用数据118被格式化以提供给另一应用和/或计算设备102。
在614处,提供选定的数据。如上文所讨论,可以在提供公共UI的用户界面130中提供选定的数据,而不管情境服务104正在使用什么应用。在其他示例中,用户界面130可以是由与情境数据128相关的一个应用114或多个应用114提供的本机界面。在其他示例中,选定的数据以计算设备102可使用的格式提供。
图7是示出了说明本文公开的机构的各方面的例程700的流程图,所述机构用于向情境服务104注册应用114。在702处,应用114可以被配置为利用情境服务API 116。如上文所讨论,应用114可以利用提供用于向情境服务104注册的功能的情境服务API 116。例如,应用114可以注册为针对由情境数据128指定的各种情境来激活。应用114还可以被配置为利用情境服务API 116的其他功能,诸如定义自定义事件、与其他应用114通信等。如上文所讨论,应用114可以与计算设备相关联,诸如但不限于恒温器、恒温器、照明系统、报警系统、汽车、洗碗机、洗衣机、干衣机、冰箱、烤箱、某一其他家庭自动化系统等。例如,照明设备可以利用API来与情境服务104通信。在一些配置中,应用114可以实施为片上系统(“SOC”),并且可以利用由API提供的功能。
在704处,应用114向情境服务104注册。如上文所讨论,不同的应用114可以向情境服务104注册以响应于可能与用户相关联的不同情境而激活。一些应用114可以注册为响应于一个或多个不同的条件(例如,在指定时间处指定位置)而激活。如上文所讨论,在一些配置中,情境服务104可以向未注册的应用提供数据。
在706处,情境服务注册应用。如上文所讨论,在接收到注册请求之后,情境服务104注册应用,使得注册的应用响应于指定的条件而激活。
图8是示出了说明本文中公开的机构的各方面的例程800的流程图,所述机构用于提供对与用户相关联的计算设备上当前不可用的应用的访问。例程800可以在802处开始,其中接收到情境数据128。如上文所讨论,情境数据128可以由在情境服务104内操作的情境管理器124A接收。
在804处,确定要利用的应用。如上文所讨论,情境服务104可以用于确定可由与情境数据128相关联的用户利用的一个或多个应用114。在一些配置中,情境服务104向用户呈现具有已针对情境数据128注册的应用114的UI 130。UI 130然后可以由用户使用来接收要利用的应用114中的至少一者的选择。在其他示例中,可以不呈现UI 130来接收应用114的选择。例如,情境服务104可以使用情境管理器124A来选择应用114中的一者或多者。如上文所讨论,情境管理器124A可以预测应用是否可能由用户使用机器学习机制或某一其他机制来利用。在806处,当确定时,将应用114安装在计算设备102上。如上文所讨论,当选定的应用当前在计算设备上不可用时,可将应用114安装在计算设备102上。
在808处,激活应用114。如上文所讨论,客户端情境管理器124可以使应用114在计算设备102上被激活。在一些示例中,应用114可以在计算设备102上启动以供用户使用。在其他示例中,应用114可以在服务提供商网络中的远程计算设备上启动并运行,其中应用数据被流传输到用户设备。
在810处,当确定时,可将应用114从计算设备102移除。如上文所讨论,当情境服务104确定应用114将来不可能被用户120使用时,可将应用114移除。在某些情况下,在某一时间段之后或响应某一其他条件(例如,在情境改变之后)移除应用。
图9是示出说明本文公开的机构的各方面的例程900的流程图,所述机构用于提供对与用户相关联的计算设备上不可用的应用的访问。例程900可以在902处开始,其中接收情境数据128。如上文所讨论,情境数据128可以由在情境服务104内操作的情境管理器124A接收。
在904处,确定要利用的应用。如上文所讨论,情境服务104可以用于确定可由与情境数据128相关联的用户利用的一个或多个应用114。在一些配置中,情境服务104向用户呈现具有已针对情境数据128注册的应用114的UI 130。在其他示例中,情境服务104使用情境数据128来确定可从电子市场132购得的相关应用114。UI 130然后可以由用户使用来接收要利用的应用114中的至少一者的选择。
在906处,激活应用114。如上文所讨论,应用114可以在应用执行服务108内或在某一其他计算设备上执行。
在908处,提供应用数据118。如上文所讨论,情境管理器124A可以将从应用执行服务108接收的应用数据118提供给在计算设备102上操作的客户端情境管理器124。应用数据118可以被提供给用户或由某一其他应用或计算设备102使用,例如智能恒温器、照明系统、报警系统、汽车、洗碗机、洗衣机、干衣机、冰箱、烤箱、某一其他家庭自动化系统等。
图10是示出了说明本文所公开的机构的各方面的例程1000的流程图,所述机构供用于使用情境服务相互通信的应用。例程1000可以在1002处开始,其中从第一应用接收应用数据118。如上文所讨论,应用114可以利用情境服务API 116来向情境服务104注册自定义事件。其他应用114可以注册以接收与由第一应用定义的自定义事件的发生相关联的通知。
在1004处,所接收的应用数据118可以用于更新情境数据128。如上文所讨论,从第一应用114接收到的应用数据118可以提供与当前情境相关的附加情境信息。在一些示例中,从第一应用接收到的应用数据118可能不与当前情境相关。在这种情况下,情境服务104不更新情境数据128。
在1006处,将从第一应用接收的应用数据118和/或经更新的情境数据提供给一个或多个其他应用114。如上文所讨论,情境服务104可以将与自定义事件相关的应用数据118的至少一部分提供给被注册来接收自定义事件的通知的应用114。在一些配置中,情境服务104将经更新的情境数据128提供给与当前情境相关的其他应用114中的每一者。如还讨论,应用数据118可以被提供给另一计算设备并用于控制该设备的操作。例如,应用数据118可以被提供给恒温器并由恒温器所利用的应用114使用以改变温度设置。
在1008处,从其他应用接收经更新的应用数据118。如上文所讨论,应用确定将什么数据提供给情境服务104。因此,由情境服务104提供的经更新的情境数据128可以使应用114提供不同的应用数据118。在一些示例中,经更新的情境数据128可以从另一个计算设备接收,例如从恒温器、照明系统、报警系统、汽车、洗碗机、洗衣机、干衣机、冰箱、烤箱、某一其他家庭自动化系统等接收。
图11是示出了说明本文公开的机构的各方面的例程1100的流程图,所述机构用于选择应用数据以提供给与用户相关联的计算设备。例程1100可以在1102处开始,其中从应用114接收应用数据118。如上文所讨论,从不同应用接收的应用数据118由提供数据的应用114选择和挑选。这与仅从应用请求特定数据形成对比。
在1104处,可以使用客户偏好来选择应用数据118以提供给用户。如上文所讨论,客户偏好可以根据在一个或多个客户配置文件中指定的偏好来确定,或者可以根据与用户相关联的历史数据来确定。例如,可以确定用户先前已经通过其他应用数据118或其他应用114选择了某些应用数据118或另一应用114。客户偏好也可以根据可位于客户配置文件或某一其他存储器内的显式设置来确定。
在1106处,移除来自选定的应用数据118的重复数据。如上文所讨论,从不同的应用接收的应用数据118可以包括重复的或彼此类似的数据。
在1108处,应用数据被格式化以供在用户界面中显示。如上文所讨论,情境管理器可以格式化要在公共用户界面130内提供的数据,使得用户不会因使用与不同应用中的每一者相关联的不同用户界面而分心。
图12和以下描述意在提供可以实施本文所描述示例的合适计算环境的简要、一般描述。具体地,图12是示出了包括服务提供商网络110的说明性操作环境的系统和网络图。如上文所讨论,服务提供商网络110可以永久地或者根据需要提供虚拟机实例和计算资源。
由服务提供商网络110提供的计算资源可以包括诸如数据处理资源、数据存储资源、联网资源、数据通信资源等各种类型的资源。每种类型的计算资源可以是通用的,或者可以在许多具体配置中使用。例如,并且如下面将更详细描述,数据处理资源可以在许多不同配置中用作虚拟机实例。虚拟机实例可以被配置为执行应用,包括Web服务器、应用服务器、介质服务器、数据库服务器和其他类型的应用。数据存储资源可以包括文件存储设备、块存储设备等。计算资源的虚拟机实例的每种类型或配置可以不同的大小(例如由许多处理器、大量存储器和/或大存储容量组成的大资源,以及由较少处理器、较小量存储器和/或较小的存储容量组成的小资源)使用。
在一个实施中由一个或多个数据中心1204A-1204N(其在本文中可以单数形式称为“数据中心1204”或统称为“数据中心1204”)启用由服务提供商网络110提供的计算资源。数据中心1204是用于容纳和操作计算机系统和相关部件的设施。数据中心1204通常包括冗余和备用电源、通信、冷却和安全系统。数据中心1204也可以位于地理上不同的位置中。下面将关于图13描述实施本文公开的一些或所有概念和技术的数据中心1204的一个说明性配置。
服务提供商网络110的用户和客户可以通过如由网络1230所示的合适数据通信网络(例如广域网(“WAN”)访问由数据中心1204提供的计算资源。尽管可以使用WAN,但应理解,可以利用本领域中已知的将数据中心1204连接到计算设备102的局域网(“LAN”)、互联网或任何其他联网拓扑结构。还应理解,也可以利用这类网络的组合。
图13是示出了实施服务提供商网络110的各方面的数据中心1204的一个配置的计算系统图,包括本文所公开的使用情境敏感框架来识别当前情境的相关应用并将从相关应用接收到的数据提供给用户的一些或所有概念和技术。图13中所示的示例性数据中心1204包括用于提供计算资源的数个服务器计算机1302A-1302F(其在本文中可以单数形式称为“服务器计算机1302”或以复数形式称为“服务器计算机1302”)。服务器计算机1302可以是适当地配置用于提供本文所述的计算资源的标准塔式或机架式服务器计算机。根据示例,服务器计算机1302被配置为执行如上所述的软件产品。
在一个示例中,一些计算资源1304是虚拟机实例。如本领域已知的,虚拟机实例是如同物理机那样执行程序的机器(即,计算机)的软件实施的实例。服务器计算机1302中的每一者可以被配置为执行能够实例化和管理计算资源和计算资源实例的实例管理器(未示出)。在虚拟机实例的情况下,例如,实例管理器可以是管理程序或被配置为使得能够在例如单个服务器计算机1302上执行多个虚拟机实例的另一类型的程序。
应理解,尽管本文公开的示例主要在虚拟机实例的情境中描述,但其他类型的计算资源可以与本文公开的概念和技术一起使用。例如,本文公开的技术可以与硬件资源、数据存储资源、数据通信资源、联网资源、数据库资源以及其他类型的计算资源一起使用。
图13中所示的数据中心1204还包括保留用于执行软件部件的服务器计算机1302F,所述软件部件用于管理数据中心1204、服务器计算机1302、虚拟机实例和服务提供商网络110内的其他资源的操作。服务器计算机1302F也可以执行情境管理器124A并且包括数据存储区134A。上文已经提供了关于这些部件中的每一者的操作的细节。在这方面,应理解,虽然这些部件被示为在服务提供商网络110内执行,但也可以利用在服务提供商网络110外部的计算系统来执行这些部件中的一些或全部。也可以利用其他配置。
在图13中所示的示例性数据中心1204中,利用适当的局域网(“LAN”)1305来互连服务器计算机1302A-1302E和服务器计算机1302F。LAN 1305也连接到图12中所示的网络1230。应理解,图12和图13中所示的配置和网络拓扑结构已经被大大简化,并且可以利用更多的计算系统、网络和联网设备来互连本文公开的各种计算系统。还可以使用适当的负载平衡设备或软件模块来平衡数据中心1204A-1204N中每一者之间、每一数据中心1204中的服务器计算机1302A-1302F中的每一者之间以及虚拟机实例与由服务提供商网络110提供的其他类型的计算资源之间的负载。
应理解,图13中描述的数据中心1204仅仅是说明性的,并且还可以利用其他实施。此外,应理解,由这些部件提供的功能可以在软件、硬件或软件与硬件的组合中实施。对于本领域技术人员来说,其他实施应是明显的。
图14示出了能够以上述方式执行用于使用情境敏感框架向用户提供应用数据的程序部件的计算机1400的示例性计算机架构。图14中所示的计算机架构示出了常规的服务器计算机、工作站、台式计算机、膝上型计算机、平板电脑、网络设备、个人数字助理(“PDA”)、电子阅读器、数字蜂窝电话或其他计算设备,并且可以用于执行本文所呈现的任何软件部件。例如,图14中所示的计算机架构可以用于执行用来执行如上所述的操作的软件部件。图14中所示的计算机架构也可以用于实施计算设备102、在情境服务104、应用服务106或应用执行服务108中利用的计算设备或本文描述的任何其他计算系统。
计算机1400包括基线板1402或“母板”,其是可以通过系统总线或其他电通信路径连接多个部件或设备的印刷电路板。在一个说明性示例中,一个或多个中央处理单元(“CPU”)1404与芯片组1406一起操作。CPU 1404可以是执行计算机1400的操作所需的算术和逻辑运算的标准可编程处理器。
CPU 1404通过从一个离散的物理状态转变到下一状态对区分和改变这些状态的开关元件的操纵来执行操作。开关元件通常可以包括维持两个二进制状态中的一者的电子电路,例如触发器和基于诸如逻辑门的一个或多个其他开关元件的状态的逻辑组合来提供输出状态的电子电路。这些基本开关元件可以被组合以创建更复杂的逻辑电路,包括寄存器、加法器-减法器、算术逻辑单元、浮点单元等。
芯片组1406提供CPU 1404与基线板1402上的其余部件和设备之间的接口。芯片组1406可以提供通向用作计算机1400中的主存储器的RAM 1408的接口。芯片组1406还可以提供通向用于存储帮助启动计算机1400并且在各种部件和设备之间传输信息的基本例程的计算机可读存储介质(例如,只读存储器(“ROM”)1410或非易失性RAM(“NVRAM”))的接口。根据本文所述的示例,ROM 1410或NVRAM还可以存储计算机1400的操作所需的其他软件部件。
计算机1400可以在联网环境中使用通过诸如局域网1420的网络的通向远程计算设备和计算机系统的逻辑连接来操作。芯片组1406可以包括用于通过诸如千兆比特以太网适配器的网络接口控制器(“NIC”)1412提供网络连接的功能。NIC 1412能够通过局域网1420将计算机1400连接到其他计算设备。应理解,计算机1400中可能存在多个NIC 1412,从而将计算机连接到其他类型的网络和远程计算机系统。
计算机1400可以连接到为计算机提供非易失性存储的诸如数据存储区134的数据存储区。数据存储区134可以存储已在本文中更详细描述的系统程序、应用程序、其他程序模块和数据。数据存储区134可以通过连接到芯片组1406的存储控制器1414连接到计算机1400。数据存储区134可由一个或多个物理存储单元组成。存储控制器1414可以通过串行附接的SCSI(“SAS”)接口、串行高级技术附件(“SATA”)接口、光纤通道(“FC”)接口或用于在计算机与物理存储单元之间进行物理连接和传输数据的其他类型的接口来与物理存储单元介接。
计算机1400可以通过转换物理存储单元的物理状态以反映正在存储的信息来将数据存储在数据存储区134上。在本说明书的不同实施中,物理状态的具体转换可能取决于各种因素。这类因素的示例可以包括但不限于用于实施物理存储单元的技术、数据存储区134是否被表征为主存储设备或辅助存储设备等。
例如,计算机1400可以通过如下方式将信息存储到数据存储区134:通过存储控制器1414发出指令,以改变磁盘驱动单元内的特定位置的磁特性、光学存储单元中的特定位置的反射或折射特性、或特定电容器、晶体管或固态存储单元中其他离散部件的电特性。在不脱离本说明书的范围和精神的情况下,物理介质的其他转换是可能的,其中前述示例仅为了便于进行该描述而提供。计算机1400还可以通过检测物理存储单元内的一个或多个特定位置的物理状态或特性而从数据存储区134读取信息。
除了上述数据存储区134之外,计算机1400还可以访问其他计算机可读存储介质来存储和检索诸如程序模块、数据结构或其他数据的信息。本领域技术人员应理解,计算机可读存储介质是提供数据的非暂时性存储并且可由计算机1400访问的任何可用介质。
通过举例的方式,而非限制的方式,计算机可读存储介质可以包括以任何方法或技术实施的易失性和非易失性、可移除和不可移除的介质。计算机可读存储介质包括但不限于RAM、ROM、可擦除可编程的ROM(“EPROM”)、电可擦除可编程的ROM(“EEPROM”)、快闪存储器或其他固态存储器技术、光盘ROM(“CD-ROM”)、数字通用磁盘(“DVD”)、高分辨率DVD(“HD-DVD”)、BLU-RAY或其他光学存储设备、磁带盒、磁带、磁盘存储设备或其他磁性存储设备或者可用于以非暂时性方式存储所需信息的任何其他介质。
数据存储区134可以存储用于控制计算机1400的操作的操作系统1430。根据一个示例,操作系统包括LINUX操作系统。根据另一示例,操作系统包括来自MICROSOFT公司的
Figure BDA0001381852780000321
SERVER操作系统。根据另外的示例,操作系统可以包括UNIX操作系统或ANDROID操作系统。应理解,也可以使用其他操作系统。数据存储区134可以存储由计算机1400利用的其他系统或应用程序和数据,诸如包括情境管理器124、应用114的部件,和/或以上所述的任何其他软件部件和数据。数据存储区134还可以存储本文未具体识别的其他程序和数据。
在一个示例中,数据存储区134或其他计算机可读存储介质用计算机可执行指令进行编码,所述指令在被加载到计算机1400中时将计算机从通用计算系统转换成能够实施本文所述示例的专用计算机。这些计算机可执行指令通过指定CPU 1404如何在各状态之间转变来转换计算机1400,如上所述。根据一个示例,计算机1400可以访问存储计算机可执行指令的计算机可读存储介质,所述指令在由计算机1400执行时执行上文关于图6-11所描述的各种例程。计算机1400还可以包括用于执行本文所述的其他计算机实施的任何操作的计算机可读存储介质。
计算机1400还可以包括一个或多个输入/输出控制器1416以用于从诸如键盘、鼠标、触摸板、触摸屏、电子触控笔或其他类型的输入设备等多个输入设备接收输入并处理所述输入。类似地,输入/输出控制器1416可以将输出提供给诸如计算机监视器、平板显示器、数字投影仪、打印机、绘图仪或其他类型的输出设备的显示器。应理解,计算机1400可以不包括图14中所示部件的全部,可以包括图14中未明确示出的其他部件或者可以利用与图14中所示架构完全不同的架构。
基于上述,应理解,本文已经呈现了用于使用情境敏感框架来识别当前情境的相关应用并且向用户提供从相关应用接收的数据的技术。此外,虽然已用对于计算机结构特征、方法学动作和计算机可读介质特有的语言描述了本文呈现的主题,但应理解,在所附权利要求书中定义的本发明未必限于本文所述的特定的特征、动作或介质。相反,特定的特征、动作和介质被公开为实施权利要求书的示例形式。
上述主题仅通过说明的方式提供,而不应被解释为限制性的。此外,所要求的主题不限于解决在本公开的任何部分中指出的任何或所有缺点的实施。在无需遵循所示出和所描述的示例性示例和应用情况下并且在不脱离所附权利要求中阐述的本发明的真实精神和范围的情况下,可以对本文所描述的主题作出各种修改和改变。
虽然已用对于结构特征和/或方法行为特有的语言描述了主题,但应理解,所附权利要求书中定义的主题未必限于所述的特定特征或动作。鉴于以下条款,也可以理解上述内容:
1.一种非暂时性计算机可读存储介质,其上存储有计算机可执行指令,所述计算机可执行指令当由计算机执行时,使所述计算机:
获得情境数据,所述情境数据与所述计算机的用户使用相关联;
将包括所述情境数据的第一数据发送到基于网络的情境服务;
从所述基于网络的情境服务接收第二数据,所述第二数据识别由所述情境服务确定为与所述当前情境相关的应用;
使所述应用被激活;
从所述应用获得第三数据;以及
在用户界面内提供所述第三数据的至少一部分。
2.根据条款1所述的非暂时性计算机可读存储介质,其中所述指令进一步使所述计算机从电子市场获得所述应用中的一者或多者,并将所述应用中的所述一者或多者安装在所述计算机上。
3.根据条款1所述的非暂时性计算机可读存储介质,其中使所述应用被激活包括:在服务提供商网络中执行所述应用中的一者或多者。
4.根据条款1所述的非暂时性计算机可读存储介质,其中所述情境数据包括所述计算机的位置、时间或由所述计算机执行的当前活动中的一者或多者。
5.根据条款1所述的非暂时性计算机可读存储介质,其中所述指令进一步使所述计算机更新所述情境数据,并将所述经更新的情境数据发送到所述基于网络的情境服务。
6.一种系统,其包括:
一个或多个计算设备,其操作以
从计算设备接收情境数据;
识别与所述情境相关的应用,对相关的所述应用的所述识别至少部分地基于所述情境数据;
将所述情境数据的至少一部分发送到被识别为与所述情境相关的所述应用;
从所述应用的至少一部分接收应用数据,其中所述应用至少部分地基于所述情境数据的所述至少一部分选择要提供的所述应用数据;
选择要提供给所述计算设备的所述应用数据的至少一部分;以及
将所述应用数据的所述至少一部分提供给所述计算设备。
7.根据条款6所述的系统,其中将所述应用数据的所述至少一部分提供给所述计算设备包括:格式化所述应用数据的所述至少一部分以供在用于显示来自不同应用的数据的用户界面内显示。
8.根据条款6所述的系统,其中识别与所述情境相关的应用包括:访问注册数据并使用所述注册数据来识别注册为响应于所述情境数据而被激活的应用。
9.根据条款6所述的系统,其中所述一个或多个计算设备进一步操作以从所述应用数据移除重复数据并组织所述应用数据,所述应用数据的所述组织至少部分地基于用户偏好。
10.根据条款6所述的系统,其中所述一个或多个计算设备进一步操作以从所述应用中的至少一者接收数据,所述数据由所述一个或多个计算设备用来创建经更新的情境数据。
11.根据条款6所述的系统,其中所述一个或多个计算设备进一步操作以提供分析,所述分析包括使用数据和收益数据。
12.根据条款6所述的系统,其中提供所述应用数据的所述至少一部分包括:使所述计算设备执行功能。
13.根据条款6所述的系统,其中接收所述应用数据包括:从作为操作系统的一部分的应用接收所述应用数据的至少一部分。
14.根据条款6所述的系统,其中所述一个或多个计算设备进一步操作以确定所述应用中的个别应用未被安装在所述计算设备上,并且在所述计算设备上安装所述应用中的所述个别应用中的一者或多者。
15.根据条款6所述的系统,其中所述一个或多个计算设备进一步操作以从与所述计算设备分离的服务运行所述应用的至少一部分。
16.一种计算机实施方法,其包括:
从计算设备接收情境数据;
识别与所述情境相关的应用,对相关的所述应用的所述识别至少部分地基于所述情境数据;
将所述情境数据的至少一部分发送到被识别为与所述情境相关的所述应用;
从所述应用接收应用数据,其中所述应用至少部分地基于所述情境数据的所述至少一部分来选择要提供的所述应用数据;
选择要提供给所述计算设备的所述应用数据的至少一部分;以及
将所述应用数据的所述至少一部分提供给所述计算设备。
17.根据条款16所述的计算机实施方法,其进一步包括使所述应用中的一者或多者在所述计算设备上安装并启动。
18.根据条款16所述的计算机实施方法,其进一步包括从与所述计算设备分离的服务运行所述应用中的一者或多者。
19.根据条款16所述的计算机实施方法,其中识别与所述情境相关的应用包括:访问注册数据并使用所述注册数据来识别注册为响应于所述情境数据而被激活的一个或多个应用。
20.根据条款16所述的计算机实施方法,其中将所述应用数据的所述至少一部分提供给所述计算设备以供显示包括:至少部分地基于客户偏好来组织所述应用数据。
21.一种非暂时性计算机可读存储介质,其上存储有计算机可执行指令,所述计算机可执行指令当由计算机执行时,使所述计算机:
接收情境数据,所述情境数据与用户计算设备的使用相关联;
识别与所述情境相关的第一应用;
将所述情境数据发送到所述第一应用;
从所述第一应用接收第一应用数据,所述第一应用至少部分地基于所述情境数据来提供所述第一应用数据;
将所述第一应用数据和所述情境数据的至少一部分发送到第二应用;
从所述第二应用接收第二应用数据,所述第二应用至少部分地基于所述第一应用数据和所述情境数据;以及
将所述第一应用数据和所述第二应用数据中的一者或多者的至少一部分提供给所述用户计算设备。
22.根据条款21所述的非暂时性计算机可读存储介质,其中所述指令进一步使所述计算机确定所述第二应用已向情境服务注册以从所述第一应用接收数据。
23.根据条款21所述的非暂时性计算机可读存储介质,其中所述第一应用和所述第二应用利用应用程序设计接口(API)向情境服务注册,并且其中所述第一应用或所述第二应用中的一者或多者向所述情境服务注册事件。
24.根据条款23所述的非暂时性计算机可读存储介质,其中所述API提供使所述第一应用与所述第二应用通信以及使所述第二应用与所述第一应用通信的功能。
25.根据条款21所述的非暂时性计算机可读存储介质,其中所述情境数据识别所述用户计算设备的位置和所述用户计算设备的当前活动。
26.一种系统,其包括:
一个或多个计算设备,其操作以
接收情境数据;
识别与所述情境相关的第一应用;
将所述情境数据发送到所述第一应用;
从所述第一应用接收第一应用数据,其中所述第一应用数据至少部分地基于所述情境数据,并且其中所述第一应用数据的至少一部分被引导到第二应用;以及
将所述第一应用数据的所述至少一部分提供给所述第二应用,所述第一应用数据由所述第二应用使用。
27.根据条款26所述的系统,其中所述一个或多个计算设备进一步操作以使用所述第一应用数据和所述情境数据来更新所述情境数据以创建经更新的情境数据。
28.根据条款27所述的系统,其中所述一个或多个计算设备进一步操作以将所述经更新的情境数据提供给所述第二应用。
29.根据条款28所述的系统,其中所述第二应用至少部分地基于所述经更新的情境数据产生第二应用数据。
30.根据条款26所述的系统,其中所述第一应用和所述第二应用向所述一个或多个计算设备注册以接收所述情境数据匹配由所述第一应用和所述第二应用指定的注册数据的通知。
31.根据条款26所述的系统,其中所述第一应用和所述第二应用利用应用程序设计接口(API)来通信,其中所述API提供使所述第一应用与所述第二应用通信的功能。
32.根据条款26所述的系统,其中所述第一应用或所述第二应用中的一者或多者利用应用程序设计接口(API)来描述事件,并且响应于检测到所述事件,所述一个或多个计算设备进一步操作以确定已注册来接收所述事件发生的通知的另一应用。
33.根据条款26所述的系统,其中所述一个或多个计算设备进一步操作以在远程计算设备上启动所述第一应用或所述第二应用中的一者或多者。
34.根据条款26所述的系统,其中所述一个或多个计算设备进一步操作以使所述第一应用或所述第二应用中的一者或多者在服务提供商网络内启动。
35.一种计算机实施方法,其包括:
接收情境数据;
识别与所述情境相关的应用,所述应用包括第一应用和第二应用;
将所述情境数据发送到所述应用;
从所述第一应用接收第一应用数据,其中所述第一应用数据至少部分地基于所述情境数据,并且其中所述第一应用数据的至少一部分被引导到所述第二应用;以及
将所述第一应用数据的所述至少一部分提供给所述第二应用。
36.根据条款35所述的计算机实施方法,其进一步包括使用由所述第一应用提供的所述第一应用数据来更新所述情境数据以创建经更新的情境数据。
37.根据条款36所述的计算机实施方法,其进一步包括向所述应用的至少一部分提供所述经更新的情境数据,其中所述应用的所述至少一部分至少部分地基于所述经更新的情境数据产生应用数据。
38.根据条款35所述的计算机实施方法,其中所述第一应用或所述第二应用中的一者或多者利用应用程序设计接口(API)来描述事件,并且响应于检测到所述事件,确定已注册来接收所述事件发生的通知的另一应用。
39.根据条款35所述的计算机实施方法,其中所述第一应用和所述第二应用向基于网络的情境服务注册以接收所述情境数据匹配注册数据的通知。
40.根据条款35所述的计算机实施方法,其中所述第一应用和所述第二应用利用应用程序设计接口(API)来通信,并且其中所述API由所述第一应用和所述第二应用用于与情境服务通信。
41.一种系统,其包括:
一个或多个传感器,其操作以提供包括位置数据、移动数据、活动数据、生物测定数据或天气数据中的一者或多者的传感器数据;以及
一个或多个计算设备,其操作以
从所述传感器请求所述传感器数据,
至少部分地基于所述传感器数据创建情境数据,
将所述情境数据发送到基于网络的情境服务,
从所述情境服务接收由所述情境服务确定为与所述情境相关的应用的识别,
使所述应用中的一者或多者被激活,
从所述一个或多个应用获得应用数据,所述应用数据由所述一个或多个应用至少部分地基于所述情境数据来提供,以及
提供所述应用数据的至少一部分以用于执行动作。
42.根据条款41所述的系统,其中使所述一个或多个应用被激活包括:使所述一个或多个应用在服务提供商网络内被执行。
43.根据条款41所述的系统,其中执行所述动作包括以下各项中的一者或多者:在显示器上呈现所述应用数据的所述至少一部分;或者使用所述应用数据的所述至少一部分来改变计算设备的所述操作。
44.根据条款41所述的系统,其中所述一个或多个计算设备进一步操作以响应于所述传感器数据的改变而更新所述情境数据以创建经更新的情境数据,并将所述经更新的情境数据发送到所述情境服务。
45.根据条款41所述的系统,其中所述应用利用应用程序设计接口(API)来与所述情境服务通信。
46.一种系统,其包括:
一个或多个第一计算设备,其操作以提供情境服务,所述一个或多个第一计算设备操作以:
接收情境数据;
至少部分地基于所述情境数据来识别与所述情境相关的应用;
将所述情境数据发送到被识别为与所述情境相关的所述应用;
从所述应用接收应用数据,其中所述应用至少部分地基于所述情境数据选择要提供的所述应用数据;
选择所述应用数据的至少一部分来提供;和
提供所述应用数据的所述至少一部分以执行动作。
47.根据条款46所述的系统,其中所述动作包括在用户界面内显示所述应用数据的所述至少一部分。
48.根据条款46所述的系统,其中所述动作包括至少部分地基于所述应用数据的所述至少一部分来改变一个或多个第二计算设备的操作。
49.根据条款46所述的系统,其进一步包括一个或多个第二计算设备,其操作以响应于所述情境服务的请求而执行所述应用中的一者或多者。
50.根据条款46所述的系统,其中所述一个或多个第一计算设备进一步操作以使所述应用中的一者或多者被安装在远程计算设备上。
51.根据条款50所述的系统,其中所述一个或多个第一计算设备进一步操作以使所述应用中的所述一者或多者在所述远程计算设备上启动。
52.根据条款50所述的系统,其中所述一个或多个第一计算设备进一步操作以接收由在所述远程计算设备上启动的所述应用中的所述一者或多者提供的所述应用数据。
53.根据条款46所述的系统,其中所述一个或多个计算设备进一步操作以提供包括使用数据和收益数据的分析。
54.根据条款46所述的系统,其中所述应用利用应用程序设计接口(API)来与所述情境服务通信。
55.根据条款54所述的系统,其中所述应用利用所述API来相互通信。
56.一种计算机实施方法,其包括:
在情境服务处接收情境数据;
识别与所述情境相关的应用,对所述应用的所述识别至少部分地基于所述情境数据;
激活与所述情境相关的所述应用;
将所述情境数据发送到所述应用;
从所述应用接收应用数据,其中所述应用至少部分地基于所述情境数据选择要提供的所述应用数据;
选择所述应用数据的至少一部分来提供;以及
提供所述应用数据的所述至少一部分。
57.根据条款56所述的计算机实施方法,其中激活所述应用包括:使一个或多个计算设备执行所述应用。
58.根据条款56所述的计算机实施方法,其中激活所述应用包括:使作为服务提供商网络的一部分的一个或多个计算设备执行所述应用中的一者或多者。
59.根据条款56所述的计算机实施方法,其进一步包括使所述应用中的一者或多者被安装在远程计算设备上。
60.根据条款56所述的计算机实施方法,其中所述应用利用应用程序设计接口(API)来与所述情境服务通信。
61.一种非暂时性计算机可读存储介质,其上存储有计算机可执行指令,所述计算机可执行指令当由计算机执行时,使所述计算机:
获得情境数据,所述情境数据描述所述计算机的用户使用的情境;
将所述情境数据发送到基于网络的情境服务;
从所述基于网络的情境服务接收识别数据,所述识别数据识别所述情境的相关应用,其中所述相关应用至少部分地基于由所述相关应用接收的数据来识别;
从所述相关应用识别应用;以及
响应于所述识别而激活所述应用。
62.根据条款61所述的非暂时性计算机可读存储介质,其中使所述应用被激活包括:将所述应用下载到所述计算机、将所述应用安装在所述计算机上以及在所述计算机上启动所述应用。
63.根据条款62所述的非暂时性计算机可读存储介质,其中所述指令进一步使所述计算机响应于所述情境的改变而从所述计算机移除所述应用。
64.根据条款61所述的非暂时性计算机可读存储介质,其中与所述情境相关联的所述情境数据识别所述计算机的位置和所述计算机的当前活动。
65.根据条款61所述的非暂时性计算机可读存储介质,其中使所述应用被激活包括:使所述应用在与所述计算机分离的服务提供商网络内启动。
66.一种系统,其包括:
一个或多个第一计算设备,其操作以
接收与第二计算设备相关联的情境数据;
识别与所述情境相关的一个或多个应用,对所述一个或多个应用的所述识别至少部分地基于从所述一个或多个应用接收的应用数据;以及
将识别数据传输到所述第二计算设备,所述识别数据指示与所述情境相关的所述一个或多个应用,其中所述识别数据由所述第二计算设备用来激活所述一个或多个应用中的至少一者。
67.根据条款66所述的系统,其中所述激活所述一个或多个应用中的所述至少一者包括:在所述第二计算设备上安装所述一个或多个应用。
68.根据条款67所述的系统,其进一步包括响应于所述情境的改变而从所述第二计算设备移除所述一个或多个应用。
69.根据条款66所述的系统,其中所述情境数据指示所述第二计算设备的位置或与所述第二计算设备相关联的当前活动中的一者或多者。
70.根据条款66所述的系统,其中激活所述一个或多个应用包括:在网络服务中运行所述一个或多个应用供所述第二计算设备使用。
71.根据条款66所述的系统,其中识别与所述情境相关的所述一个或多个应用包括以下各项中的一者或多者:识别已向情境服务注册来接收对应于所述情境数据的通知的所述一个或多个应用;或接收对所述应用的选择。
72.根据条款66所述的系统,其中识别与所述情境相关的所述一个或多个应用包括:至少部分地基于与所述第二计算设备相关联的所述用户的用户偏好来过滤所述一个或多个应用。
73.根据条款66所述的系统,其中所述一个或多个第一计算设备进一步操作以接收对所述应用中一者的选择,并且使所述选定的应用在与情境服务相关联的远程服务上被激活。
74.根据条款66所述的系统,其中所述一个或多个应用中的所述至少一者响应于预测到将来使用所述一个或多个应用中的所述至少一者而被安装在所述第二计算设备上。
75.一种计算机实施方法,其包括:
从计算设备接收与情境相关联的情境数据;
识别与所述情境相关的应用,对所述应用的所述识别至少部分地基于与所述应用相关联的应用数据;以及
将识别数据发送到所述计算设备,所述识别数据指示与所述情境相关的所述应用并且由所述计算设备用来激活所述应用。
76.根据条款75所述的计算机实施方法,其进一步包括至少部分地基于预测到将来使用所述应用而在所述计算设备上安装所述应用。
77.根据条款75所述的计算机实施方法,其进一步包括响应于接收到所述情境的改变而改变所述应用。
78.根据条款75所述的计算机实施方法,其进一步包括使所述应用在网络服务中被激活。
79.根据条款75所述的计算机实施方法,其中识别与所述情境相关的所述应用包括:确定所述应用向情境服务注册来接收对应于所述情境数据的通知。
80.根据条款75所述的计算机实施方法,其中识别与所述情境相关的所述应用包括:使图形用户界面被显示在所述计算设备上,以及经由所述图形用户界面接收对所述应用的选择。

Claims (15)

1.一种计算机实施方法,其包括:
从计算设备接收情境数据,其中所述情境数据的至少一部分至少部分地基于从所述计算设备中的传感器中的一者或多者获得的传感器数据;
识别与情境相关的应用,对与情境相关的所述应用的所述识别至少部分地基于所述计算设备的当前活动,所述当前活动至少部分地基于所述计算设备的位置以及所述情境数据的至少一部分;
将所述情境数据的至少一部分发送到被识别为与所述情境相关的所述应用;
从至少第一应用和第二应用接收应用数据,其中所述第一应用和所述第二应用至少部分地基于所述情境数据的所述至少一部分来选择要提供的所述应用数据;
选择要提供给所述计算设备的所述应用数据的至少一部分,其中所述应用数据的所述至少一部分包括从所述第一应用接收的第一数据和从所述第二应用接收的第二数据;以及
将所述应用数据的所述至少一部分提供给所述计算设备,以在用户界面内显示,其中所述用户界面包括对所述应用数据的至少一部分进行显示的第一部分。
2.根据权利要求1所述的计算机实施方法,其进一步包括使所述应用中的一者或多者在所述计算设备上安装并启动。
3.根据权利要求1所述的计算机实施方法,其进一步包括从与所述计算设备分离的服务运行所述应用中的一者或多者。
4.根据权利要求1所述的计算机实施方法,其中所述识别与情境相关的应用包括:访问注册数据并使用所述注册数据来识别被注册为响应于所述情境数据被激活的应用中的一者或多者。
5.根据权利要求1所述的计算机实施方法,其中所述将所述应用数据的所述至少一部分提供给所述计算设备以显示包括:至少部分地基于用户偏好来组织所述应用数据。
6.一种系统,其包括:
一个或多个处理器;以及
一个或多个存储器,其上存储有指令集合,所述指令集合当由所述一个或多个处理器执行时,使所述一个或多个处理器执行包括以下的操作:
接收与移动计算设备相关联的情境数据;
识别与情境相关的应用,所述情境与所述情境数据相关联,其中与所述移动计算设备远程地执行被识别为与所述情境相关的所述应用;
由与所述移动计算设备远程的情境服务,接收来自所述应用的应用数据;
由与所述移动计算设备远程的情境服务,至少部分地基于情境数据来确定要提供给所述移动计算设备的应用数据的一部分;以及
由与所述移动计算设备远程的情境服务,向所述移动计算设备提供所述应用数据的所述一部分。
7.根据权利要求6所述的系统,其中所述移动计算设备在用户界面内显示所述应用数据的一部分。
8.根据权利要求6所述的系统,其中所述移动计算设备的操作至少部分地基于所述应用数据的所述部分而改变。
9.根据权利要求6所述的系统,其中所述应用响应于所述情境服务的请求来执行。
10.根据权利要求6所述的系统,其中所述操作还包括:使所述应用在远程计算设备上安装。
11.根据权利要求10所述的系统,其中所述操作还包括:使所述应用在远程计算设备上启动。
12.根据权利要求6所述的系统,其中所述操作还包括:提供包括使用数据和收益数据的分析。
13.根据权利要求6所述的系统,其中所述应用利用应用程序设计接口(API)来与所述情境服务通信。
14.根据权利要求13所述的系统,其中所述应用利用所述API与另一应用通信。
15.一种计算机实施方法,其包括:
接收与移动计算设备相关联的情境数据;
识别与情境相关的应用,所述情境与所述情境数据相关联,其中被识别为与所述情境相关的所述应用与所述移动计算设备远程地被执行;
由与所述移动计算设备远程的情境服务,接收来自所述应用的应用数据;
由与所述移动计算设备远程的情境服务,至少部分地基于情境数据来确定要提供给所述移动计算设备的应用数据的一部分;以及
由与所述移动计算设备远程的情境服务,向所述移动计算设备提供所述应用数据的所述一部分。
CN201680010840.3A 2015-02-17 2016-02-17 用于从相关应用提供数据的情境敏感框架 Active CN107257971B (zh)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US14/623,903 2015-02-17
US14/623,893 2015-02-17
US14/623,875 2015-02-17
US14/623,903 US10684866B2 (en) 2015-02-17 2015-02-17 Context sensitive framework for providing data from relevant applications
US14/623,913 2015-02-17
US14/623,913 US20160239578A1 (en) 2015-02-17 2015-02-17 Context Sensitive Framework for Providing Data From Relevant Applications
US14/623,893 US9489247B2 (en) 2015-02-17 2015-02-17 Context sensitive framework for providing data from relevant applications
US14/623,875 US9740467B2 (en) 2015-02-17 2015-02-17 Context sensitive framework for providing data from relevant applications
PCT/US2016/018249 WO2016134007A1 (en) 2015-02-17 2016-02-17 Context sensitive framework for providing data from relevant applications

Publications (2)

Publication Number Publication Date
CN107257971A CN107257971A (zh) 2017-10-17
CN107257971B true CN107257971B (zh) 2021-01-05

Family

ID=55640853

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680010840.3A Active CN107257971B (zh) 2015-02-17 2016-02-17 用于从相关应用提供数据的情境敏感框架

Country Status (6)

Country Link
EP (1) EP3259663A1 (zh)
JP (2) JP6575973B2 (zh)
CN (1) CN107257971B (zh)
CA (1) CA2976777C (zh)
SG (1) SG11201706611RA (zh)
WO (1) WO2016134007A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6819387B2 (ja) * 2017-03-17 2021-01-27 株式会社リコー 画像処理装置、情報処理システム、情報処理方法、及びプログラム
CN109977305B (zh) * 2019-03-14 2024-04-23 努比亚技术有限公司 信息处理方法、移动终端及计算机可读存储介质
US11488163B2 (en) 2019-07-17 2022-11-01 Visa International Service Association Dynamic application selection based on contextual data
US11126446B2 (en) * 2019-10-15 2021-09-21 Microsoft Technology Licensing, Llc Contextual extensible skills framework across surfaces

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101753598A (zh) * 2008-12-16 2010-06-23 国际商业机器公司 用于整合多个web应用的方法和Web应用集成器
CN102300205A (zh) * 2010-08-10 2011-12-28 微软公司 基于位置和上下文的移动应用程序的宣传和传递
WO2012129663A1 (en) * 2011-03-31 2012-10-04 C.T. Consultants Inc. Framework for context-aware systems and methods
CN102968427A (zh) * 2011-07-19 2013-03-13 米特尔网络公司 知晓情境的应用和方法
CN103136324A (zh) * 2011-11-22 2013-06-05 三星电子株式会社 基于情境信息推荐应用的系统和方法
CN103221948A (zh) * 2010-08-16 2013-07-24 诺基亚公司 用于基于情境感知来执行设备动作的方法和装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6714778B2 (en) * 2001-05-15 2004-03-30 Nokia Corporation Context sensitive web services
US8566732B2 (en) * 2004-06-25 2013-10-22 Apple Inc. Synchronization of widgets and dashboards
EP2451141B1 (en) * 2010-11-09 2018-11-07 BlackBerry Limited Methods and apparatus to display mobile device contents
US9380404B2 (en) * 2013-06-25 2016-06-28 Qualcomm Incorporated Method and apparatus for use in providing context-aware identification of mobile device applications

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101753598A (zh) * 2008-12-16 2010-06-23 国际商业机器公司 用于整合多个web应用的方法和Web应用集成器
CN102300205A (zh) * 2010-08-10 2011-12-28 微软公司 基于位置和上下文的移动应用程序的宣传和传递
CN103221948A (zh) * 2010-08-16 2013-07-24 诺基亚公司 用于基于情境感知来执行设备动作的方法和装置
WO2012129663A1 (en) * 2011-03-31 2012-10-04 C.T. Consultants Inc. Framework for context-aware systems and methods
CN102968427A (zh) * 2011-07-19 2013-03-13 米特尔网络公司 知晓情境的应用和方法
CN103136324A (zh) * 2011-11-22 2013-06-05 三星电子株式会社 基于情境信息推荐应用的系统和方法

Also Published As

Publication number Publication date
JP6961649B2 (ja) 2021-11-05
WO2016134007A1 (en) 2016-08-25
CN107257971A (zh) 2017-10-17
JP2019207734A (ja) 2019-12-05
CA2976777A1 (en) 2016-08-25
JP2018509699A (ja) 2018-04-05
EP3259663A1 (en) 2017-12-27
SG11201706611RA (en) 2017-09-28
JP6575973B2 (ja) 2019-09-18
CA2976777C (en) 2021-04-06

Similar Documents

Publication Publication Date Title
US9489247B2 (en) Context sensitive framework for providing data from relevant applications
US11263241B2 (en) Systems and methods for predicting actionable tasks using contextual models
US10496385B2 (en) Context sensitive framework for providing data from relevant applications
US10684866B2 (en) Context sensitive framework for providing data from relevant applications
JP6961649B2 (ja) 関連アプリケーションからデータを提供するコンテキストセンシティブ・フレームワーク
US9844725B1 (en) Changing user experience using application events and selected actions
US20160092048A1 (en) Display of hierarchical datasets using high-water mark scrolling
US20160112836A1 (en) Suggesting Activities
US20160299977A1 (en) Action-Based App Recommendation Engine
US20180121546A1 (en) Dataset networking and database modeling
US20200193335A1 (en) Seamless management of connected environments
CN105955973B (zh) 用户信息处理方法和支持该方法的电子设备
US20160062732A1 (en) Method for providing additional functions based on information
US11281992B2 (en) Predicting geofence performance for optimized location based services
US20160239578A1 (en) Context Sensitive Framework for Providing Data From Relevant Applications
US20160232548A1 (en) Adaptive pricing analytics
US20200160852A1 (en) Using Audio Input and Output to Interact with Text-Based Interactive Content
US20150356640A1 (en) Retrieving reviews based on user profile information
US20230237787A1 (en) Techniques for dynamic time-based custom model generation
US20170243271A1 (en) Inferring service providers
US20230086465A1 (en) Method and system for rule-based composition of user interfaces
US20220303351A1 (en) ENHANCED PROCESSING OF USER PROFILES USING DATA STRUCTURES SPECIALIZED FOR GRAPHICAL PROCESSING UNITS (GPUs)
KR20180013304A (ko) 어플리케이션에 대한 알림을 관리하는 방법 및 그 전자 장치
US11068552B2 (en) Updating social media post based on subsequent related social media content
US20180349791A1 (en) Companion launcher

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant