经由会话接口扩展应用功能的制作方法

文档序号:19418550发布日期:2019-12-14 01:11阅读:146来源:国知局
经由会话接口扩展应用功能的制作方法

本公开的各方面和实现方式涉及数据处理,并且更具体地但并不限于涉及经由会话接口来扩展应用功能。



背景技术:

为了访问由各种应用或服务提供的功能(例如,经由诸如智能手机的移动设备),这样的应用/服务能够提供可下载的应用或“app”。然后,用户能够通过在用户的设备上启动对应的“app”来访问由应用/服务提供的功能。



技术实现要素:

下文提出了对本公开的各个方面的简要概述,以便提供对这样的方面的基本理解。该发明内容并不是对所有预期方面的详尽概述,并且既不旨在标识关键或重要元素,也不旨在描绘这样的方面的范围。其目的是以紧凑的形式来呈现本公开的一些概念,作为稍后呈现的更详细描述的序言。

在本公开的一个方面中,公开了用于经由会话接口来扩展应用功能的系统和方法。在一个实现方式中,从交互引擎接收第一通信。处理所述第一通信以识别该通信被指向的应用。将所述第一通信提供给与第一应用相关联的应用扩展引擎。从所述应用扩展引擎接收第二通信。将所述第二通信提供给所述交互引擎。

在另一实现方式中,接收被指向应用的第一通信。根据应用的api来格式化所述第一通信。根据api,将格式化的所述第一通信提供给所述应用。从所述应用接收第二通信。响应于所述第一通信而提供所述第二通信。

附图说明

根据下文给出的详细描述以及根据本公开的各个方面和实现方式的附图中将更充分地理解本公开的各方面和实现方式,然而,不应当将其理解为将本公开限于特定的方面或实现方式,而是仅仅用于解释和理解。

图1图示了根据示例性实施例的示例性系统。

图2a-2d图示了根据示例性实施例的在本文中所描述的示例性场景。

图3图示了根据示例性实施例的另一示例性系统。

图4a和图4b图示了根据示例性实施例的在本文中所描述的示例性场景。

图5是图示根据示例性实施例的用于经由会话接口来扩展应用功能的方法的流程图。

图6是图示根据另一示例性实施例的用于经由会话接口来扩展应用功能的方法的流程图。

图7是图示根据示例性实施例的能够从机器可读介质读取指令并且执行在本文中所讨论的任意方法的机器组件的框图。

具体实施方式

本公开的各方面和实现方式旨在经由会话接口来扩展应用功能。

各种应用和服务(诸如跨一个或多个服务器或者在“云”框架内部署的那些应用和服务)能够通过可下载的应用或“app”来向最终用户提供功能。例如,许多应用和服务提供了专用的移动应用,其能够被安装在移动设备(例如,智能电话、平板计算机等)上。一旦安装了这样的应用,用户就能够通过在所述设备上启动/运行移动应用来访问由应用/服务提供的功能。然而,为多个平台开发移动应用可能既昂贵又耗时的。结果,专用移动应用常常不可用于某些平台。

因此,本文在各种实现方式中描述了扩展应用功能(例如,代替利用与这样的应用相关联的专用移动应用)的技术,包括方法、机器可读介质和系统。如在本文中所描述的,所描述的技术经由交互引擎(例如,诸如智能个人助理、聊天接口等的会话接口)提供这样的服务/应用的功能、特征等。在某些实现方式中,通信协调引擎能够在这样的会话接口与在其上实施期望的服务/应用的服务器之间中继/路由(一个或多个)通信。例如,能够处理经由聊天接口接收到的用户通信以识别其被指向的应用/服务。然后,能够根据与所识别的应用/服务关联的应用编程接口(api)来格式化所述通信,并且将其中继到应用/服务本身。能够根据会话(例如,聊天)api来格式化由应用/服务响应所提供的(一个或多个)后续通信,并且将其中继回到会话接口以供呈现给用户。通过这样做,能够经由会话接口来提供服务/应用的功能、特征等的许多方面,而不需要专用/独立的“app”。

所描述的方案在许多场景中会是有利的。例如,对于尚未针对其开发(或者不能够获得的)独立“app”的设备,所描述的技术能够使得用户能够经由智能个人助理、聊天/消息传递接口等来访问对应的功能。另外,所描述的技术能够经由单个会话接口来提供多个应用/服务的特征、功能等。

因此,能够意识到,所描述的技术针对并且解决了在多个技术领域中的特定技术挑战和长期缺陷,所述技术领域包括但不限于通信接口、移动应用和智能个人助理。如在本文中详细描述的,所公开的技术为所参考的技术挑战和所参考的技术领域中未满足的需求提供了特定的技术解决方案,并且在常规方法上提供了许多优点和改进。另外,在各种实现方式中,本文所参考的硬件元件、组件等中的一个或多个诸如以在本文中所描述的方式来操作用于启用、改进和/或增强所描述的技术。

图1图示了根据一些实现方式的示例性系统100。如所示的,系统100包括设备110,设备110能够是膝上型计算机、台式计算机、终端、移动电话、平板计算机、智能手表、可穿戴设备、数字音乐播放器、服务器等。用户130能够是与设备110进行交互的人类用户。例如,用户130能够向设备110提供各种输入(例如,经由诸如键盘、鼠标、触摸屏等的输入设备/接口)。设备110还能够向用户130显示、投影和/或者以其他方式提供内容(例如,经由诸如屏幕、扬声器等的输出组件)。

如在图1中所示的,设备110能够包括交互引擎116。交互引擎116能够是配置/使能所述设备以与用户130进行交互、向用户130提供内容和/或者以其他方式代表用户130执行操作的应用或模块。例如,交互引擎116能够从用户130接收通信和/或(一个或多个)请求,并且呈现/提供对这样的(一个或多个)请求的响应(例如,在会话或“聊天”接口内)。交互引擎116的示例包括但不限于智能个人助理、消息传递/通信应用(例如,聊天、即时消息传递等)以及用户能够通过其发送和/或接收消息、内容、通知和/或其他信息的其他应用或接口。

在某些实现方式中,交互引擎116还能够使得用户130能够发起和/或配置(一个或多个)其他应用。例如,用户130能够向交互引擎116提供命令/通信(例如,“播放爵士音乐”)。响应于这样的命令,交互引擎116能够发起满足用户所提供的请求的应用(例如,媒体播放器应用)。另外,尽管在某些实现方式中,交互引擎116的各个方面能够在设备110上执行/操作,但是在其他实现方式中,交互引擎116能够在远程设备(例如,在服务器上,如下文所描述的)上操作或运行。

如在图1中所示的,设备110还能够包括通信协调引擎118。通信协调引擎118能够是被存储在设备110的存储器(例如,如在图7中所描绘的并且在下文所描述的存储器730)中的应用、程序、模块等。设备110的一个或多个处理器(例如,在图7中所描绘并且在下文所描述的处理器710)可以运行这样的(一个或多个)应用。通过这样做,设备110能够被配置为执行各种操作,如在本文中所描述的。

如在图1中所示的,通信协调引擎118能够被配置为与交互引擎116进行通信和/或者以其他方式与交互引擎116进行交互。在某些实现方式中,能够经由和/或根据应用编程接口(api)117执行在通信协调引擎118与交互引擎116之间的这样的通信、交互等。api117能够包括例如各种协议、定义、工具、接口、库、框架等,通过其将通信发送到交互引擎116和/或从交互引擎116接收通信。通过例示的方式,api117能够包括和/或反映会话(例如,聊天/消息传递)api,所述会话api定义了能够提供通信以在交互引擎116内呈现的方式。

还应当注意,尽管各种组件(例如,交互引擎116、通信协调引擎118等)被描绘为(例如,在图1中)在设备110上操作,但是这仅仅是为了清楚起见。然而,在其他实现方式中,所参考的组件(例如,通信协调引擎118)也能够在其他设备/机器上实施。例如,代替在设备110处本地执行,通信协调引擎118能够远程地实施(例如,在服务器设备上或者在云服务或框架内)。

同样如在图1中所示的,设备110能够经由网络120连接到其他设备/机器和/或者以其他方式与其他设备/机器通信。网络120能够包括一个或多个网络,诸如互联网、广域网(wan)、局域网(lan)、虚拟专用网(vpn)、内联网等。如在图1中所示的,设备110能够与服务器140a和服务器140b(统称为服务器140)通信。每个服务器能够是例如服务器计算机、计算设备、存储服务(例如“云”服务)等。

每个服务器能够分别包括诸如应用144a和144b的应用(统称为应用144)。每个应用能够是被存储在服务器上和/或由服务器执行的程序、模块、指令集等。所述应用能够将服务器配置为提供各种服务,诸如经由去往/来自设备110的通信。通过例示的方式,应用144a能够是将服务器140a配置为提供出租车调度服务的应用,通过所述出租车调度服务能够响应于用户请求/通信而调度出租车。通过进一步的例示,应用144b能够是将服务器140b配置为提供食品递送服务的应用,通过所述食品递送服务能够响应于用户请求/通信而进行餐厅订单。应当理解,所参考的应用/服务仅仅通过示例的方式来提供,并且任何数量的其他应用、服务等也能够以本文所描述的方式来实施。

同样如在图1中所示的,服务器140a和服务器140b还能够分别包括应用扩展引擎142a和应用扩展引擎142b(统称为应用扩展引擎142)。每个应用扩展引擎能够是扩展应用的各种能力、功能等的程序、模块、指令集等。例如,应用扩展引擎能够相对于向/从应用提供(一个或多个)通信、请求、响应等的方式来扩展对应应用的能力。同样如在图1中所示的,应用扩展引擎142能够被配置为与应用144通信和/或者以其他方式进行交互。在某些实现方式中,能够经由和/或根据应用编程接口(api)(诸如api143a或api143b(统称为api143))来执行在应用扩展引擎与相应应用之间的这样的通信、交互等。api143能够包括例如各种协议、定义、工具、接口、库、框架等,通过其将通信发送到应用144和/或从应用144接收。

通过例示的方式,在应用144a是提供出租车调度服务的应用的场景下,api143a能够定义将通信(例如,针对在一位置乘坐出租车、预定确认等的请求)提供到/接收自应用144a的方式、格式、协议等。因此,应用扩展引擎142a能够例如接收源自会话接口(例如,交互引擎116)的通信,并且格式化这样的通信,使得能够根据api143a将通信提供给应用144a。通过这样做,应用扩展引擎(例如,应用扩展引擎142a)使得源自其他源/上下文(诸如交互引擎116)的(一个或多个)通信能够被提供给对应的应用(例如,应用144a)。所述应用扩展引擎还使得源自对应应用的(一个或多个)通信能够被提供给其他应用(诸如交互引擎116)。

应当注意到,尽管图1描绘了在服务器140a和140b上运行的应用扩展引擎142,但是这仅仅反映了一种示例性实现方式。然而,在其他实现方式中,应用扩展引擎142能够例如被配置为在设备110处和/或在另一机器、设备、服务器等上运行。

下文将结合图2a-7更详细地描述了设备110和服务器140的另外的方面和特征。

通过另外的例示,图2a描绘了示例性场景,其中,交互引擎216(在此是个人助理应用/通信接口)正在设备110上运行(或者以其他方式呈现/提供)。如在图2a中所示的,用户130(“用户1”)能够向交互引擎216提供或输入通信/消息230a(“我想要订购乘车...”)。然后,能够处理通信230a(例如,使用自然语言处理和/或其他这样的技术)来解析或者以其他方式来分析接收到的通信。通过这样做,能够提取/识别(一个或多个)各种内容元素(例如,单词、识别符等)。这样的内容元素能够例如对应于用户希望访问、发起、启动等的应用、服务等。通过例示的方式,如在图2a中所示的,能够处理通信230a以识别与用户希望访问或利用的应用相对应的内容元素250a(“taxiserviceapp”)。

在某些实现方式中,通信协调引擎118也能够由交互引擎216来初始化。例如,图2c描绘了示例性场景,其中,用户130(“用户1”)向交互引擎216提供通信/消息230e(“我想要启动...”)。然后,能够处理通信230e(例如,如在本文中所描述的)以确定用户希望访问各种可用的应用/服务。作为响应,通信协调引擎118能够提供通信230f,通信230f能够包括能够经由通信协调引擎118访问的应用/服务的列表。例如,如在图2c中所示的,能够呈现分别对应于taxiserviceapp和fooddeliveryapp的可选控件238e和238f(例如,用户能够与之交互、激活等的(一个或多个)按钮,如下文所描述的)。在某些实现方式中,通信协调引擎118能够通过轮询或查询(一个或多个)服务器140和/或(一个或多个)应用144以识别例如经由网络120当前可访问的那些来生成应用的参考列表。用户130随后能够选择所述参考的控件中的一个,以便访问对应应用/服务的功能、特征等,如在本文中详细描述的。

此外,在某些实现方式中,在访问第一应用/服务时(例如,如在本文中所描述的,在交互引擎116内),用户随后能够决定改变或切换到另一应用/服务。例如,图2d描绘了示例性场景,其中,用户130(“用户1”)最初已经从第一应用(在此是“fooddeliveryapp”,如在交互引擎216内的通信230d中所描绘的)访问功能。随后,用户130能够向交互引擎216提供通信230g(“我想要切换...”)。然后,能够处理通信230g(例如,如在本文中所描述的),以确定用户希望访问另一应用/服务。作为响应,通信协调引擎118能够提供通信230h,通信230h能够包括能够经由通信协调引擎118访问的各种(一个或多个)应用/服务(例如,除了已经被访问的“fooddeliveryapp”之外)。例如,如在图2d中所示的,能够呈现通信230h(包含与“taxiserviceapp”相对应的可选控件)。用户130然后能够选择(一个或多个)参考的控件中的一个,以便访问对应应用/服务的功能、特征等,如在本文中详细描述的。通过这样做,通信协调引擎118(与交互引擎116结合)能够作为“启动器”类型应用进行操作,通过所述应用,用户能够查看可用的应用/服务,从中进行选择,以及在其之间进行切换/交换。

在已经识别出用户希望访问的应用之后,能够将在交互引擎216处接收到的通信230a路由、中继等到识别出的应用(在此为“taxiserviceapp”)。在某些实现方式中,通信协调引擎118(如在图1中所示并且在上文所描述的)能够协调该通信从交互引擎到识别出的应用(例如,在其上运行应用的服务器140)的中继、提供等。

在某些实现方式中,能够将补充内容(例如,最初不被包含在从用户接收到的通信中的内容、信息等)并入到通信中和/或以其他方式与之相关联。例如,在将通信230a中继到正在运行对应的应用(“taxiserviceapp”)的服务器之前,通信协调引擎118能够并入或关联额外/补充内容、信息等。通过例示的方式,能够将诸如设备110的当前位置、设备的各种规格(例如,型号)、与用户相关联的用户账户/简档等的补充内容并入或关联于通信230a(并且然后中继到识别出的应用/服务器)。通过这样做,能够增强和/或流线化与应用的后续通信(例如,通过提供针对设备适当格式化的内容)。应当理解,在某些实现方式中,设备110和/或交互引擎116能够被配置为并入和/或者以其他方式提供诸如上文参考的补充内容的内容。

如在图1中所示的,通信协调引擎118能够将参考的通信(例如,如在图2a所示的通信230a)发送、提供、中继等到服务器140a。如上文所提到的,服务器140a能够是在其上正在运行接收到的通信(例如,“taxiserviceapp”)中被参考、识别等的应用的服务器。在某些实现方式中,参考的通信230a能够被提供给应用扩展引擎142a/由应用扩展引擎142a接收(如上文所提到的,应用扩展引擎142a也能够在服务器140a处运行)。

通过例示的方式,应用扩展引擎142a能够(例如,经由网络120)从通信协调引擎118接收通信230a。如上文所提到的,参考的通信230a(“我想要…”)源自会话接口(例如,图2a的交互引擎216)。因此,应用扩展引擎142a能够格式化这样的通信230a,使得能够根据api143a将通信提供给应用144a(在此为“taxiserviceapp”)。

在接收到参考的通信后,应用144a(在图2a所描绘的场景中为“taxiserviceapp”)能够生成另一通信(和/或其他内容)。由应用144a生成的这样的内容/通信能够是例如响应或后续通信,其提供与初始接收到的通信相关的内容,提示从用户请求额外信息等。通过例示的方式,在图2a所描绘的场景中,在接收到用户希望订购乘坐出租车的初始通信时,应用144a能够利用请求与参考乘坐相关联的目的地的通信/内容进行响应。然后,能够根据api143a将来自应用144a的这样的响应提供回应用扩展引擎142a。然后,应用扩展引擎142a能够将参考的响应(来自应用144a)发送或提供给通信协调引擎118。

在某些实现方式中,应用扩展引擎142a能够在向通信协调引擎118提供响应之前格式化或者以其他方式处理从应用144a接收到的响应。例如,应用扩展引擎142a能够根据api143a(例如,与出租车服务指令/操作相关联的api)从应用144a接收响应/通信。然后,应用扩展引擎142a能够格式化和/或者以其他方式修改该通信,并且将经格式化/经修改的通信提供给协调引擎118。通过例示的方式,从应用144a接收到的响应(如所指出的,其是根据api143a提供/接收的)能够根据api117(例如,与交互引擎116内的通信的呈现相关联的会话api)来格式化。然后,通信协调引擎118能够将接收到的通信提供给交互引擎116(例如,智能个人助理、聊天接口等),在该交互引擎内能够呈现/提供该通信(例如,给用户130)。

通过例示的方式,图2a描绘了通信230b,通信230b能够是消息、内容和/或在交互引擎216内呈现/提供的其他项目。如上文所描述的,通信230b的各种元素能够源自应用144a(在此为“taxiserviceapp”),例如,作为对通信230a的响应。如在图2a中所示的,通信230b能够包括诸如文本内容232b、输入字段234b(例如,能够在其内提供文本或其他输入的形式)、多媒体内容236b(例如,图像、视频等)、可选控件238b(例如,用户能够与其交互、激活等的按钮)的元素、和/或其他常用和自定义元素。

在某些实现方式中,用户130能够与通信230b的各种元素进行交互(例如,经由诸如触摸屏的设备110的输入设备进行点击、轻敲、选择等)。通过这样做,能够生成另一通信(对应于这样的交互/选择),并且将其提供给应用144a(例如,如上文所描述的,经由通信协调引擎118和应用扩展引擎142a)。例如,用户130能够选择多媒体内容236b内的位置(在此是交互式地图),并且然后,点击、轻敲等可选控件238b。然后,能够生成反映这样的选择的通信和/或将其提供给应用144a。

因此,能够意识到,所描述的技术(例如,通信协调引擎118和应用扩展引擎142a)使得用户130能够经由交互引擎116(例如,智能个人助理、聊天接口等)来访问应用144a的功能、特征等。尽管某些应用/服务可以提供在设备110上本地运行并且直接与服务器144a通信的独立应用(“app”),但是所描述的技术能够为用户提供可比较的体验,而无需在设备110上运行专用的“app”。如在本文中所描述的,通信协调引擎118在交互引擎116与在其上实施期望的应用/服务的远程服务器之间中继/路由通信。通过这样做,用户130能够经由交互引擎116来访问服务/应用的功能、特征等。在某些实现方式中,这样的服务器能够(全部或部分地)由其他实体(诸如应用/服务提供商、开发人员等(例如,除开发/提供通信协调引擎118的实体之外的实体))拥有、操作、控制等。另外,参考的网络120(通过其发送/接收各种通信)应当被理解为仅仅是例示性的。因此,如在本文中所提到的,在某些实现方式中,交互引擎116、通信协调引擎118和/或应用扩展引擎142a可以在设备(例如,单个设备)上运行,并且因此可以不必由物理网络分开。

所描述的方案在许多场景中会是有利的。例如,对于尚未针对其开发(或者不能够获得)独立“app”的设备,所描述的技术能够使得用户能够经由交互引擎116(例如,智能个人助手、聊天/消息传递接口等)来访问对应的功能。另外,所描述的技术能够经由单个交互引擎116来提供多个应用/服务的特征、功能等。

例如,如也在图1所示的并且如上文所描述的,除了经由交互引擎116(例如,如在图2a中所描绘的)向用户130提供对应用144a的功能的访问之外,交互引擎116还能够提供对其他应用、服务(诸如应用144b)等的访问。

通过例示的方式,图2b描绘了示例性场景,其中,用户130(“用户1”)向交互引擎216提供通信/消息230c(“我想从...订购”)。然后,能够处理通信230c(例如,如上文参照图2a所描述的)以提取/识别与用户希望访问或利用的应用相对应的诸如内容元素250b(“fooddeliveryapp”)的(一个或多个)内容元素。然后,通信协调引擎118能够将通信230c从交互引擎216路由、中继等到服务器140,在服务器140上运行识别出的应用(“fooddeliveryapp”)。例如,如在图1中所示的,通信协调引擎118能够向在其上运行识别出的应用144b(在此为“fooddeliveryapp”)的服务器140b传输、提供、中继等通信(例如,图2b的通信230c)。如上文所描述的,在某些实现方式中,应用扩展引擎142b能够格式化通信230b,使得能够根据api143b将通信提供给应用144b(“fooddeliveryapp”)。

如上文详细描述的,应用144b(在此为“fooddeliveryapp”)能够生成后续通信,例如,提示用户额外的输入(例如,菜系、价格范围等)。然后,能够根据api143b将后续通信提供回应用扩展引擎142b。应用扩展引擎142b能够格式化和/或修改通信(例如,根据会话api),并且然后,将所述通信提供给通信协调引擎118以供呈现给用户130。

例如,如在图2b中所示的,通信230d能够源自应用144b(在此为“fooddeliveryapp”),例如作为对通信230c的响应。通信230d能够包括诸如文本内容232d以及用户130能够与其进行交互(例如,点击、轻敲等)的各种可选控件238d的元素。通过这样做,能够生成与这样的(一个或多个)选择相对应的(一个或多个)额外通信,并且将其提供回应用144b(例如,如上文所描述的,经由通信协调引擎118和应用扩展引擎142b)。例如,用户130能够选择与特定菜系相对应的控件238d中的一个,并且能够生成反映这样的选择的通信和/或将其提供给应用144b。

因此,所描述的技术(例如,通信协调引擎118)能够使得用户130能够经由交互引擎116(例如,智能个人助理、消息传递接口等)来访问多个应用/服务的各个特征、功能等。例如,如在图2a和图2b中所示的,单个交互引擎216能够提供对出租车调度应用和食品递送应用两者的访问。应当理解,出于例示的目的而提供了参考应用、服务等,并且能够以可比较的方式来访问任意数量的其他应用、服务等的特征等。

图3图示了在图1中描绘并且在上文所描述的各种技术的另一示例性实现方式。如在图3中所示的,两个(或更多个)用户(诸如用户130a和用户130)能够例如经由交互引擎116与设备110进行交互。例如,交互引擎116能够是智能个人助理,其能够从各个用户接收语音/音频通信(例如,通过设备110的麦克风感知的)和/或以视觉和/或音频格式(例如,经由设备110的扬声器)来提供信息、内容等。因此,在某些场景中(例如,如在图2中所示的),交互引擎116能够在单个通信会话、实例或序列期间从用户230a和用户230b两者接收(一个或多个)通信(例如,音频/语音输入)。应当注意,使用各种音频处理技术,交互引擎116能够将源自一个用户的通信(例如,音频/语音输入)与源自另一用户的那些通信区分开。例如,各种音频特性(音调、音高等)能够被用于确定哪个用户提供了特定的通信。在其他实现方式中,能够利用各种其他认证/验证技术。

通过例示的方式,图4a描绘了示例性场景,其中,用户130a(“用户1”)向交互引擎416提供通信/消息430a(“我想要订购乘车...”)。同样如在图4a中所示的,用户130b(“用户2”)能够向交互引擎416提供通信/消息430b(“我也想...”)。

通信430a能够被处理(例如,如上文关于图2a所描述的)以提取/识别诸如与第一用户希望访问或利用的应用相对应的内容元素450a(“taxiserviceapp”)的内容元素。通信430b也能够以可比较的方式来处理。

然后,通信协调引擎118能够将通信430a和通信430b从交互引擎416路由、中继等到服务器140a,在服务器140a上运行识别出的应用144a(“taxiserviceapp”)。另外,如上文所提到的,在某些实现方式中,协调引擎118能够并入各种补充内容或者以其他方式将其与(一个或多个)参考的通信相关联。这样的补充内容能够是最初未被包含在从用户接收到的通信中的内容、信息等。例如,在已经确定(例如,如上文所描述的)交互引擎416接收到源自多个用户的通信并且进一步确定相应的通信被指向单个应用/服务(在此为“taxiserviceapp”)之后,通信协调引擎118能够并入或关联额外/补充内容、信息等。针对特定的通信(例如,通信430a),这样的补充内容能够包括例如与提供通信的用户相关联的用户识别符(例如,账户/简档名称——在此为“用户1”)。因此,在图4a中所描绘的场景中,通信430a还能够包括或关联于用户130a的用户识别符(例如,“用户1”),而通信430b还能够包括或关联于用户130b的用户识别符(“用户2”)。

另外,在某些实现方式中,通信协调引擎118能够将(一个或多个)各种通信与特定应用会话(例如,如在图3中所示的应用会话150a和应用会话150b)相关联。每个参考的应用会话能够是例如与由应用144a执行或促进的任务、活动、事务等相关联的通信的系列或序列。通过例示的方式,应用会话150a能够包括与用户1到seattle市区的出租车乘坐相关联的(一个或多个)通信,而应用会话150b能够包括与用户2到sea机场的出租车乘坐相关联的(一个或多个)通信(如下文进一步例示的)。在某些实现方式中,对应于或反映特定应用会话的识别符或指示符能够与每个相关的通信相关联。

将(一个或多个)通信与相应的应用会话相关联在诸如在图3和图4a中所反映的场景中会是有利的。如所示的,经由单个接口(交互引擎116)了接收多个通信,其中的每个通信能够与不同的用户相关联。另外,这样的通信能够涉及不同的事务、活动等。例如,通信430a与“用户1”和乘坐出租车到“seattle市区”相关联,而通信430b与“用户2”和乘坐出租车到“sea机场”相关联(如下文进一步例示的)。因此,通信协调引擎118能够例如将通信430a与应用会话150a相关联,并且将通信430b与应用会话150b相关联。随后的通信(例如,源自应用144a或交互引擎116的那些通信)也能够与所参考的相应通信会话相关联。通过这样做,相对于后续操作、通信等能够维持一致性。例如,能够处理/应用(例如,通过应用144a)从用户1接收到的关于更改他的/她的乘车目的地的后续请求,以取消/修改与应用会话150a相关联的先前的请求/通信。通过这样做,(例如,来自用户1的)这样的请求将不影响与应用会话150b相关联的操作(例如,与“用户2”相关联的乘坐出租车到“sea机场”)。因此,即使在单个接口处从不同用户接收到关于不同事务的这样的通信(并且随后被中继到单个应用)的场景中,通信协调引擎118也能够确保跨多个通信维持一致性。

如在图3中所示的,通信协调引擎118能够将参考的通信(例如,如图4a所示的通信430a和通信430b)传输、提供、中继等到服务器140a。如上文所提到的,服务器140a能够是在其上正在运行接收到的通信(例如,“taxiserviceapp”)中被参考、识别等的应用的服务器。在某些实现方式中,参考的通信能够被提供给应用扩展引擎142a/由应用扩展引擎142a来接收(如上文所提到的,应用扩展引擎142a也能够在服务器140a处运行)。

通过例示的方式,应用扩展引擎142a能够(例如,经由网络120)从通信协调引擎118接收通信430a和通信430b。应用扩展引擎142a能够格式化这样的通信,使得能够根据api143a将其提供给应用144a(在此为“taxiserviceapp”)。

在接收到参考的通信之后,应用144a(在图4a中所描绘的场景中为“taxiserviceapp”)能够生成(一个或多个)其他通信(和/或其他内容)。由应用144a生成的这样的(一个或多个)内容/通信能够是例如响应或后续通信,其能够提供与初始接收到的通信相关的内容,提示从(一个或多个)用户请求额外信息等。

通过例示的方式,在图4a所描绘的场景中,在接收到各个用户(例如,“用户1”和“用户2”)各自希望订购出租车乘坐的(一个或多个)初始通信时,应用144a能够以各种通信/内容进行响应。如下文所描述的,这样的响应相对于其所响应的特定通信会是不同的。然后,能够根据api143a将来自应用144a的这样的(一个或多个)响应提供回应用扩展引擎142a。应用扩展引擎142a随后能够将参考的响应(来自应用144a)传输或提供给通信协调引擎118。通信协调引擎118能够将接收到的通信提供给交互引擎116(例如,智能个人助理、聊天接口等),在交互引擎116中能够呈现/提供所述通信。

通过例示的方式,图4a描绘了通信430c,通信430c能够包括在交互引擎416内呈现/提供的(一条或多条)消息、内容和/或其他项目。如上文所描述的,通信430c的各种元素能够源自应用144a(在此为“taxiserviceapp”),例如作为通信430a和430b的响应。例如,如在图4a中所示的,通信430c能够包括被指向“用户1”的文本内容432b(“我们位于…”)(例如,响应于通信430a)。这样的文本内容432b能够例如确认由用户1提供的请求(例如,在通信430a中)已经被接收到并且正在被处理(例如,由应用144a)。

另外,在某些实现方式中,通信430c还能够包括被指向“用户2”(例如,响应于通信430b)的文本内容432c(“请提供...”)。在某些实现方式中,如上文所描述的,通信430c还能够包括诸如输入字段434b和可选控件438b的额外元素,用户(例如,“用户2”)能够通过所述额外元素来提供额外输入。例如,在已经从“用户2”接收到通信430b之后,应用144a能够提示或请求额外信息(例如,针对用户希望行进到的目的地)。如所示的,这样的信息能够由用户经由输入字段434b和可选控件438b来提供。通过这样做,能够生成另一通信(对应于这样的交互/选择)并且将其提供给应用144a(例如,如上文所描述的,经由通信协调引擎118和应用扩展引擎142a)。

在接收到参考的额外输入(例如,来自“用户2”的旅行目的地——在此是如图4a所示的“sea机场”)后,应用144a能够生成并且提供(一个或多个)后续通信。然后,能够如上文所描述地经由应用扩展引擎142a和通信协调引擎118将这样的(一个或多个)通信中继回到交互引擎116。例如,图4b描绘了示例性场景,其中,经由交互引擎416将通信430c提供给“用户1”和“用户2”。如在图4b中所示的,通信430c能够包括文本内容(例如,内容432d和432e),其反映与“用户1”和“用户2”相关联的相应行程的各方面(例如,费用估计、行程状态等)。另外,通信430c(如在交互引擎116中呈现的)能够包括可选控件438c和438d,其能够使得用户能够取消、修改等各自的行程,如所示的。

因此,能够意识到,所描述的技术(例如,通信协调引擎118和应用扩展引擎142a)使得用户130能够经由交互引擎116(例如,智能个人助理、聊天接口等)来访问应用144a的功能、特征等。另外,即使在单个接口处从不同的用户接收到关于不同事务的这样的通信(并且随后被中继到单个应用)的场景中,所描述的技术也能够确保跨多个通信维持一致性。

尽管相对于单个设备110和/或服务器(例如,服务器140a)图示了在本文中所描述的许多示例,但是这仅仅是出于清楚和简洁的目的。然而,应当理解,所描述的技术也能够跨多个服务器和/或其他计算设备/服务来实施(以任意数量的配置)。

图5是图示根据示例性实施例的用于经由会话接口来扩展应用功能的方法500的流程图。所述方法由处理逻辑来执行,所述处理逻辑能够包括硬件(电路、专用逻辑等)、软件(诸如,在诸如在本文中所描述的计算设备上运行的软件)或者这两者的组合。在一个实现方式中,方法500由结合图1所描绘和/或描述的一个或多个元件来执行(包括但不限于设备110和/或通信协调引擎118),而在一些其他实现方式中,图5的一个或多个框能够由另一或多个机器来执行。

为了解释方便,将方法描绘和描述为一系列动作。然而,根据本公开的动作能够以各种次序发生和/或同时地发生,并且具有在本文中未呈现和描述的其他动作。此外,可能不需要所示出的所有动作来实施根据所公开的主题的方法。另外,本领域技术人员将理解并意识到,所述方法可以替代地经由状态图或事件被表示为一系列相互关联的状态。另外,应当意识到,在本说明书中所公开的方法能够被存储在制品上,以便于将这样的方法传输和转移到计算设备。如在本文中所使用的术语“制品”旨在涵盖能从任意计算机可读设备或存储介质访问的计算机程序。

如在本文中所使用的,术语“被配置”涵盖其普通和一般的含义。在一个示例中,机器被配置为通过将针对该方法的软件代码存储在该机器的(一个或多个)处理器可访问的存储器中来执行该方法。(一个或多个)处理器访问存储器以实施所述方法。在另一示例中,用于执行所述方法的指令被硬连线到(一个或多个)处理器中。在又一示例中,指令的一部分是硬连线的,并且指令的一部分被作为软件代码存储在存储器中。

在操作510处,接收第一通信。在某些实现方式中,能够从交互引擎116(例如,如在图1中所描绘的并且如上文所描述的)接收这样的通信。交互引擎116能够是智能个人助理或者消息传递/通信应用,通过其能够(向/自用户130)发送/接收通信(例如,消息、内容等)。例如,如在图2a中所示的,用户130(“用户1”)能够向交互引擎216提供或输入通信/消息230a(“我想要订购乘车...”)。交互引擎(例如,pda、聊天接口等)然后能够将通信230a提供给通信协调引擎118。如上文所提到的,在某些实现方式中,通信协调引擎118能够根据与交互引擎相关联的api(例如,聊天/消息传递api)来接收参考的通信。在某些实现方式中,操作510的各个方面(以及结合图5所描述的其他操作)由设备110和/或通信协调引擎118(例如,如在图1所描绘的)执行。在其他实现方式中,这样的方面能够由一个或多个其他元件/组件(诸如在本文中所描述的那些)来执行。

在操作520处,处理第一通信(例如,如在操作510接收到的)。在某些实现方式中,能够对通信进行解析、分析等,以识别第一通信被指向的应用(或多个应用)(例如,使用自然语言处理和/或其他这样的内容处理技术)。例如,如在图2a中所示的,能够处理通信230a以提取/识别与用户希望访问、发起、启动等的应用、服务等相对应的(一个或多个)内容元素。

如上文所提到的,在某些实现方式中,所识别出的(一个或多个)应用能够与(一个或多个)应用扩展引擎(例如,如在图1中所示的应用扩展引擎142a和142b)相关联。这样的(一个或多个)应用扩展引擎能够扩展参考的通信被指向的应用的各种能力、功能等。例如,应用扩展引擎142a能够使得源自源/上下文(诸如交互引擎116)的(一个或多个)通信能够被提供给应用144a。如在本文中所描述的,所述应用扩展引擎还能够使得源自对应的应用(例如,应用144a)的(一个或多个)通信能够被提供给其他应用(例如,交互引擎116)。

此外,在某些实现方式中,能够处理参考的通信(例如,在操作510处接收到的通信)以识别与该通信相关联的用户(例如,通信所源自和/或者以其他方式所属于的用户)。例如,如上文所描述的(例如,相对于图3),交互引擎116能够是智能个人助理,其从各个用户接收语音/音频通信。因此,交互引擎116能够从用户230a接收(一个或多个)通信(例如,音频/语音输入),并且处理这样的输入(例如,使用音频处理技术)以确定用户的身份(例如,与用户相关联的用户账户/简档)。

另外,在某些实现方式中,参考的通信能够与应用会话(例如,第一应用的应用会话)相关联。这样的应用会话能够是与由应用(例如,应用144a)执行或促进的任务、活动、交易等相关联的通信的系列/序列。例如,如上文所描述的,通信协调引擎118能够将应用会话(例如,对应的识别符或指示符)与属于特定交易、任务等(例如,乘坐出租车)的(一个或多个)通信相关联。通过这样做,即使在多个用户(例如,图3的用户130a和130b)利用单个接口(交互引擎116)相对于相同的应用(应用144a)来执行不同的交易(例如,定购单独的出租车乘坐)的情况下,也能够跨多个通信来维持一致性。

在操作530处,提供所述通信(例如,在操作510处接收到的通信)。在某些实现方式中,能够将所述通信提供给应用扩展引擎,诸如与参考的通信被指向的应用相关联的引擎。如上文所描述的,这样的(一个或多个)应用扩展引擎能够扩展参考的通信被指向的应用的各种能力、功能等。

另外,在某些实现方式中,各种补充内容能够被并入到第一通信中(并且被提供给参考了应用扩展引擎的应用)。这样的补充内容能够是最初未被包含在(例如,如从用户接收到的)通信中的内容、信息等。例如,如上文所描述的,诸如设备110的各种规格(例如,型号)、与用户相关联的用户账户/简档、设备的状态(例如,设备的当前位置和/或其他传感器信息)等的信息能够被并入到或关联于参考的通信。通过这样做,能够增强和/或流线化后续通信(例如,通过提供针对所述设备适当格式化的内容)。

此外,在某些实现方式中,参考的补充内容还能够包括例如能够结合提供参考的通信来计算的各种选择或确定。例如,在某些实现方式中,能够做出确定以提供/供应用户简档数据(例如,结合参考的通信)。通过另外的示例,能够做出确定以匿名化与用户相关联的各种识别信息(例如,用户id等)(例如,基于由用户先前提供的选择/偏好)。通过又一示例,在设备110失去网络连接的场景中,能够做出确定以选择另一网络连接和/或利用替代通信协议(例如,sms)。

在操作540处,接收第二通信。在某些实现方式中,能够从应用扩展引擎接收这样的通信。另外,在某些实现方式中,这样的第二通信能够与第一用户(例如,第一通信所源自的用户)相关联或者被指向第一用户。例如,如在图1中所示的,应用144a能够提供响应或后续通信,其包括与最初接收到的通信相关的内容,从用户请求额外信息等。如上文所描述的,来自应用144a的这样的响应然后能够到应用扩展引擎142a,并且进一步被中继到通信协调引擎118。

此外,在某些实现方式中,所述第二通信能够包括(一个或多个)各种内容项。例如,如在图2a中所示的,通信230b能够包括诸如文本内容232b、输入字段234b(例如,能够在其内提供文本或其他输入的形式)、多媒体内容236b(例如,图像、视频等)以及可选控件238b(例如,用户能够与其交互、激活等的按钮)的内容项。

另外,在某些实现方式中,所述第二通信能够与所述第一应用的第二应用会话相关联。例如,如上文所描述的,各种通信(例如,从属于不同交易的那些通信)能够与不同的应用会话相关联。因此,由通信协调引擎118接收到的各种通信能够与不同的应用会话相关联(例如,如在图3和图4a中所描绘并且在本文中所描述的)。

在操作550处,将第二通信(例如,如在操作540处接收到的)提供给交互引擎。在某些实现方式中,能够根据与交互引擎相关联的api(例如,聊天/消息传递api)将这样的第二通信提供给所述交互引擎。例如,能够根据api117(例如,会话api)来格式化从应用144a接收到的响应,并且将其提供给交互引擎116(例如,智能个人助理、聊天接口等)。

另外,在某些实现方式中,能够基于确定运行交互引擎的设备能够呈现第一内容项,来将内容项提供给交互引擎。例如,如在图2a中所示的,通信230b能够包括诸如多媒体内容236b的内容项。能够基于确定设备110(和/或交互引擎216)能够提供/呈现这样的内容来提供这样的内容项目(例如,给交互引擎216)。然而,在例如确定交互引擎/设备不能够呈现内容项的场景(例如,仅能够呈现文本内容而不能够呈现图像/视频的设备)中,可能不提供这样的多媒体内容236b。

图6是图示根据示例性实施例的用于经由会话接口来扩展应用功能的方法600的流程图。所述方法由处理逻辑来执行,所述处理逻辑能够包括硬件(电路、专用逻辑等)、软件(诸如,在诸如本文中所描述的计算设备上运行的软件)或者这两者的组合。在一个实现方式中,方法600由相对于图1所描绘和/或描述的一个或多个元件来执行(包括但不限于服务器140a和/或应用扩展引擎142a),而在一些其他实现方式中,图6的一个或多个框能够由另一或多个机器来执行。

在操作610处,接收第一通信。在某些实现方式中,这样的通信能够源自交互引擎(例如,会话接口)和/或能够被指向应用。例如,如在图1和图2a中所示的并且如上文所描述的,应用扩展引擎142a能够接收源自交互引擎216(并且指向应用144a)的通信230a。在某些实现方式中,操作610的各个方面(以及关于图6描述的其他操作)由服务器140a和/或应用扩展引擎142a(例如,如在图1中所描绘的)执行。在其他实现方式中,这样的方面能够由一个或多个其他元件/组件来执行,诸如在本文中所描述的那些。

在某些实现方式中,这样的通信能够包括第一通信所源自的设备的各个方面、特征等。例如,通信协调引擎118能够将源自交互引擎116(并且指向应用144a)的通信中继或者以其他方式提供给应用扩展引擎142a。如上文详细描述的,诸如设备110的当前位置、设备的各种规格(例如,型号)、与用户相关联的用户账户/简档等的各种补充内容能够被并入或关联于参考的通信。

在操作620处,格式化第一通信(例如,如在操作610处接收到的通信)。在某些实现方式中,能够根据应用的api来格式化这样的通信。例如,如以上相对于图1和图2a所描述的,应用扩展引擎142a能够格式化通信230a,使得能够根据api143a将所述通信提供给应用144a(在此为“taxiserviceapp”)。

在操作630处,将(例如,在操作620处)根据api格式化的第一通信提供给所述应用,如在本文中所描述的。

在操作640处,接收第二通信。在某些实现方式中,能够从所述应用接收这样的通信。例如,如在图1中所示的,应用144a能够提供响应或后续通信,其包括与最初接收到的通信相关的内容,从用户请求额外信息等。

另外,在某些实现方式中,所述第二通信能够包括与第一通信所源自的设备的一个或多个方面、特性等相兼容的内容。例如,如上文所提到的,所述第一通信(例如,如在操作610处接收到的)能够并入参考的设备的各个方面(例如,所述设备是否能够呈现媒体内容等)。因此,如上文所描述的,所述第二通信能够包括与这样的设备相兼容的内容。

在操作650处,例如,如上文所描述的,响应于所述第一通信来提供所述第二通信。

还应当注意,尽管在本文中主要相对于经由会话接口来扩展应用功能例示说明了在本文中所描述的技术,但是所描述的技术也能够以任意数量的额外或替代设置或者上下文中以及朝向任意数量的额外目标来实施。应当理解,作为这样的实现方式的结果,能够实现另外的技术优点、解决方案和/或改进(超出在本文中所描述和/或参考的那些)。

在本文中将某些实现方式描述为包括逻辑或多个组件、模块或机制。模块能够构成软件模块(例如,体现在机器可读介质上的代码)或硬件模块。“硬件模块”是能够执行某些操作并且能够以某种物理方式进行配置或布置的有形单元。在各种示例性实现方式中,一个或多个计算机系统(例如,独立计算机系统、客户端计算机系统或者服务器计算机系统)或者计算机系统的一个或多个硬件模块(例如,处理器或一组处理器)能够通过软件(例如,应用或应用部分)被配置为操作用于执行在本文中所描述的某些操作的硬件模块。

在一些实现方式中,硬件模块能够机械地、电子地或者其任何合适的组合来实施。例如,硬件模块能够包括专用电路或逻辑,所述专用电路或逻辑被永久地配置为执行某些操作。例如,硬件模块能够是专用处理器,诸如现场可编程门阵列(fpga)或专用集成电路(asic)。硬件模块还能够包括可编程逻辑或电路,其由软件临时地配置为执行某些操作。例如,硬件模块能够包括由通用处理器或其他可编程处理器运行的软件。一旦通过这样的软件进行了配置,硬件模块就成为被专门定制以执行所配置的功能的特定机器(或者机器的特定组件),并且不再是通用处理器。将意识到,可以通过成本和时间考量来驱动在专用并且永久配置的电路中或者在临时地配置的电路(例如,由软件配置)中机械地实施硬件模块的决定。

因此,短语“硬件模块”应当被理解为涵盖有形实体,其是被物理构造、永久配置(例如,硬连线)或临时配置(例如,编程)从而以某种方式操作或执行在本文中所描述的某些操作的实体。如在本文中所使用的,“硬件实施的模块”指代硬件模块。考虑到其中硬件模块被临时地配置(例如,编程)的实现方式,硬件模块中的每个硬件模块不需要在任何时刻被配置或实例化。例如,在硬件模块包括由软件配置为成为专用处理器的通用处理器的情况下,所述通用处理器能够在不同时间被分别配置为不同的专用处理器(例如,包括不同的硬件模块)。软件因此配置一个或多个特定处理器,例如以在一个时刻构成特定的硬件模块,并且在不同的时刻构成不同的硬件模块。

硬件模块能够向其他硬件模块提供信息并且从其他硬件模块接收信息。因此,所描述的硬件模块能够被认为是通信耦合的。在同时存在多个硬件模块的情况下,能够通过在两个或更多个硬件模块之间或之中的信号传输(例如,通过适当的电路和总线)来实现通信。在其中在不同时间配置或实例化多个硬件模块的实现方式中,例如能够通过在多个硬件模块可以访问的存储器结构中存储和取回信息来实现在这种硬件模块之间的通信。例如,一个硬件模块能够执行一项操作,并且将该操作的输出存储在与其通信地耦合的存储器设备中。然后,另外的硬件模块能够在以后的时间访问所述存储器设备以取回和处理所存储的输出。硬件模块还能够发起与输入或输出设备的通信,并且能够对源(例如,信息集合)进行操作。

在本文中所描述的示例性方法的各种操作能够至少部分地由被临时地配置(例如,通过软件)或者永久地配置来执行相关操作的一个或多个处理器来执行。不管是临时地配置还是永久地配置,这样的处理器都能够构成处理器实施的模块,所述模块操作用于执行在本文中所描述的一个或多个操作或功能。如在本文中所使用的,“处理器实施的模块”指代使用一个或多个处理器实施的硬件模块。

类似地,在本文中所描述的方法能够是至少部分处理器实施的,其中,一个或多个特定处理器是硬件的示例。例如,方法的操作中的至少一些操作能够由一个或多个处理器或处理器实施的模块来执行。此外,一个或多个处理器还能够操作用于支持在“云计算”环境中或者作为“软件即服务”(saas)执行相关操作。例如,所述操作中的至少一些操作能够由一组计算机(作为包括处理器的机器的示例)来执行,其中,这些操作能经由网络(例如,互联网)以及经由一个或多个适当的接口(例如,api)进行访问。

所述操作中的某些操作的执行能够被分布在处理器之间,而不是仅驻留在单个计算机内,而是跨多个计算机来部署。在一些示例性实现方式中,处理器或处理器实施的模块能够位于单个地理位置中(例如,在家庭环境、办公室环境或服务器场内)。在其他示例性实现方式中,处理器或处理器实施的模块能够跨多个地理位置来分布。

结合图1-6所描述的模块、方法、应用等一些实现方式中在机器和相关联的软件架构的上下文中实施。以下各部分描述了适合与所公开的实现方式一起使用的(一个或多个)代表性软件架构和(一个或多个)机器(例如硬件)架构。

软件架构与硬件架构结合使用,以创建针对特定目的而定制的设备和机器。例如,特定的硬件架构与特定的软件架构相耦合将创建移动设备,诸如移动电话、平板设备等。略有不同的硬件和软件架构能够产生在“物联网”中使用的智能设备,而另一种组合则产生用于在云计算架构内使用的服务器计算机。由于本领域技术人员能够容易地理解如何在与本文所包含的公开内容不同的上下文中实施本发明的主题,因此在此没有给出这种软件和硬件架构的所有组合。

图7是图示根据一些示例性实现方式能够从机器可读介质(例如,机器可读存储介质)读取指令并且执行在本文中所讨论的任何一种或多种方法的机器700的组件的框图。具体而言,图7以计算机系统的示例性形式示出了机器700的示意图,在其内能够运行指令716(例如,软件、程序、应用、小程序、app或者其他可执行代码)用于使机器700执行在本文中所讨论的任何一种或多种方法。指令716将一般的未编程的机器转换成被编程为以所描述的方式来执行所描述和图示的功能的特定机器。在替代实现方式中,机器700作为独立设备来操作,或者能够被耦合(例如,联网)到其他机器。在联网的部署中,机器700能够在服务器-客户端网络环境中以服务器机器或客户端机器的能力来操作,或者在对等(或分布式)网络环境中作为对等机器来操作。机器700能够包括但不限于:服务器计算机,客户端计算机,pc,平板计算机,膝上型计算机,上网本,机顶盒(stb),个人数字助理(pda),娱乐媒体系统,蜂窝电话,智能电话,移动设备,可穿戴设备(例如,智能手表),智能家居设备(例如,智能家电),其他智能设备,网络家电,网络路由器,网络交换机,网桥,或者能够顺序或者以其他方式运行指定了机器700待执行的动作的指令716的任何机器。此外,尽管仅图示了单个机器700,但是术语“机器”也应当被视为包括机器700的集合,所述机器700个体地或共同地运行指令716以执行在本文中所讨论的任何一种或多种方法。

机器700能够包括处理器710、存储器/存储装置730和i/o组件750,其能够被配置为诸如经由总线702彼此通信。在示例性实现方式中,处理器710(例如,中央处理器(cpu)、精简指令集计算(risc)处理器、复杂指令集计算(cisc)处理器、图形处理单元(gpu)、数字信号处理器(dsp)、asic、无线电频率集成电路(rfic)、另一处理器或者其任何合适的组合)能够包括例如运行指令716的处理器712和处理器714。术语“处理器”旨在包括多核处理器,其能够包括能够同时运行指令的两个或更多个独立处理器(有时被称为“核心”)。尽管图7示出了多个处理器710,但是机器700能够包括具有单个核心的单个处理器、具有多个核心的单个处理器(例如,多核处理器)、具有单个核心的多个处理器、具有多个核心的多个处理器,或者其任何组合。

存储器/存储装置730能够包括存储器732(诸如主存储器或者其他存储器存储设备)以及存储单元736,这两者均能由处理器710诸如经由总线702来访问。存储单元736和存储器732存储体现在本文中所描述的方法或功能中的任何一项或多项的指令716。指令716还能够在由机器700运行期间全部地或部分地驻留在存储器732内、驻留在存储单元736内、驻留在处理器710的至少一个内(例如,在处理器的高速缓冲存储器内)、或者其任何合适的组合。因此,存储器732、存储单元736以及处理器710的存储器是机器可读介质的示例。

如在本文中所使用的,“机器可读介质”意指能够临时地或永久地存储指令(例如,指令716)和数据的设备,并且能够包括但不限于:随机存取存储器(ram)、只读存储器(rom)、缓冲存储器、闪存、光学介质、磁性介质、高速缓冲存储器、其他类型的存储设备(例如,可擦除可编程只读存储器(eeprom)),和/或其任何合适的组合。术语“机器可读介质”应当被认为包括能够存储指令716的单个介质或多个介质(例如,集中式或分布式数据库或者相关联的高速缓存和服务器)。术语“机器可读介质”还应当被认为包括能够存储由机器(例如,机器700)运行的指令(例如,指令716)的任何介质或者多种介质的组合,使得所述指令当由机器的一个或多个处理器(例如,处理器710)运行时使得机器执行在本文中所描述的任何一种或多种方法。因此,“机器可读介质”指代单个存储装置或设备,以及包括多个存储装置或设备的“基于云的”存储系统或存储网络。术语“机器可读介质”本身不包括信号。

i/o组件750能够包括各种各样的组件以:接收输入、提供输出、产生输出、传输信息、交换信息、捕获测量结果等。包含在特定机器中的特定i/o组件750将取决于机器的类型。例如,诸如移动电话的便携式机器将可能包括触摸输入设备或者其他这样的输入机构,而无头服务器机器将可能不包括这样的触摸输入设备。将意识到,i/o组件750能够包括在图7中未示出的许多其他组件。仅出于简化以下讨论的目的,将io组件750根据功能来分组,但该分组绝不是限制性的。在各种示例性实现方式中,i/o组件750能够包括输出组件752和输入组件754。输出组件752能够包括视觉组件(例如,诸如等离子体显示面板(pdp)的显示器、发光二极管(led)显示器、液晶显示器(lcd)、投影仪或阴极射线管(crt))、声学组件(例如扬声器)、触觉组件(例如振动电机、电阻机构)、其他信号发生器等。输入组件754能够包括字母数字输入组件(例如,键盘、被配置为接收字母数字输入的触摸屏、光电键盘或者其他字母数字输入组件)、基于点的输入组件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其他定点仪器)、触觉输入组件(例如,物理按钮、提供触摸或触摸手势的位置和/或力的触摸屏或其他触觉输入组件)、音频输入组件(例如,麦克风)等。

在另外的示例性实现方式中,i/o组件750能够包括生物计量组件756、运动组件758、环境组件760或位置组件762以及多种其他组件。例如,生物计量组件756能够包括用于检测表达(例如,手部表达、面部表达、语音表达、身体手势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、汗水或脑波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等。运动组件758能够包括加速度传感器组件(例如,加速度计)、重力传感器组件、旋转传感器组件(例如陀螺仪)等。环境组件760能够包括例如照明传感器组件(例如,光度计)、温度传感器组件(例如,检测环境温度的一个或多个温度计)、湿度传感器组件、压力传感器组件(例如气压计)、声学传感器组件(例如,检测背景噪声的一个或多个麦克风)、接近度传感器组件(例如,检测附近物体的红外传感器)、气体传感器(例如,为安全性而检测有害气体浓度或测量大气中的污染物的气体检测传感器),或者能够提供与周围物理环境相对应的指示、测量或信号的其他组件。位置组件762能够包括位置传感器组件(例如全球定位系统(gps)接收器组件)、高度传感器组件(例如检测能够根据其导出高度的气压的高度计或气压计)、方向传感器组件(例如磁力计)等。

能够使用多种技术来实施通信。i/o组件750能够包括通信组件764,通信组件764可操作用于分别经由耦合782和耦合772来将机器700耦合到网络780或设备770。例如,通信组件764能够包括网络接口组件或者与网络780接口的其他合适的设备。在另外的示例中,通信组件764能够包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(nfc)组件、组件(例如,低能量)、组件以及其他通信组件,以经由其他模态来提供通信。设备770能够是另一台机器或者各种外围设备(例如,经由usb耦合的外围设备)中的任何一个。

此外,通信组件764能够检测识别符或者包括可操作用于检测识别符的组件。例如,通信组件764能够包括射频识别(rfid)标签读取器组件、nfc智能标签检测组件、光学读取器组件(例如,用于检测诸如通用产品代码(upc)条形码的一维条形码、诸如快速响应(qr)码、aztec码、数据矩阵、dataglyph、maxicode、pdf417、ultra码、uccrss-2d条形码的多为条形码以及其他光学码的光学传感器),或声学检测组件(例如,麦克风以识别标记的音频信号)。另外,能够经由通信组件764导出各种信息,诸如经由互联网协议(ip)定位导出的位置、经由信号三角测量导出的位置、经由检测能够指示特定位置的nfc信标信号导出的位置等。

在各种示例性实现方式中,网络780的一个或多个部分能够是自组织网络、内联网、外联网、虚拟专用网(vpn)、局域网(lan)、无线lan(wlan)、wan、无线wan(wwan)、城域网(man)、互联网、互联网的一部分、公共交换电话网(pstn)的一部分、普通的旧电话服务(pots)网络、蜂窝电话网络、无线网络、网络、另一类型的网络、或者两个或更多个这样的网络的组合。例如,网络780或网络780的一部分能够包括无线或蜂窝网络,并且耦合782能够是码分多址(cdma)连接、全球移动通信系统(gsm)连接、或者另一类型的蜂窝或无线耦合。在该示例中,耦合782能够实施多种类型的数据传输技术中的任意一种,诸如单载波无线电传输技术(lxrtt)、演进数据优化(evdo)技术、通用分组无线电服务(gprs)技术、增强型gsm演进的数据速率(edge)技术、包括3g的第三代合作伙伴计划(3gpp)、第四代无线(4g)网络、通用移动电信系统(umts)、高速分组接入(hspa)、微波接入的全球互操作性(wimax)、长期演进(lte)标准、由各种标准制定组织定义的其他标准、其他远程协议或者其他数据传输技术。

指令716能够经由网络接口设备(例如,包含在通信组件764中的网络接口组件)使用传输介质并且利用多种公知的传输协议中的任意一种(例如,http)通过网络780来传输或接收。类似地,指令716能够使用传输介质经由耦合772(例如,对等耦合)被传输或接收到设备770。术语“传输介质”应当被认为包括任何无形介质,其能够存储、编码或承载指令716以供机器700执行,并且包括数字或模拟通信信号或者其他无形媒体以促进这样的软件的通信。

在整个说明书中,多个实例能够实现被描述为单个实例的组件、操作或结构。尽管将一种或多种方法的个体操作图示并且描述为单独的操作,但是能够同时地执行所述个体操作中的一个或多个操作,并且不需要按照所图示的次序来执行操作。在示例性配置中被表示为单独组件的结构和功能能够被实施为组合结构或组件。类似地,被呈现为单个组件的结构和功能能够被实施为单独的组件。这些和其他变型、修改、添加和改进落入本文中的主题的范围内。

尽管已经参考特定示例性实现方式描述了本发明主题的概览,但是在不背离本公开的实现方式的较宽范围的情况下,能够对这些实现方式进行各种修改和改变。仅出于方便起见,在本文中能够个体地或共同地通过术语“发明”来指代发明主题的这样的实现方式,并且如果实际上公开了多于一种实现方式,其并不旨在主动将本申请的认为限制于任何单个公开或发明概念。

足够详细地描述了在本文中所例示的实现方式,以使本领域技术人员能够实践所公开的教导。能够使用其他实现方式并且从中推导出其他实现方式,使得能够在不背离本公开的范围的情况下进行结构和逻辑上的替换和改变。因此,不应当在限制性的意义上理解详细描述,并且各种实现方式的范围仅由所附权利要求以及这些权利要求所享有的等同物的全部范围来限定。

如在本文中所使用的,术语“或”可以以包含或排除的含义来解读。此外,能够为在本文中被描述为单个实例的源、操作或结构提供多个实例。另外,在各种源、操作、模块、引擎和数据存储之间的边界在某种程度上是任意的,并且在特定说明性配置的上下文中示出了特定操作。设想到了功能的其他分配,并且能够落入本公开的各种实现方式的范围之内。通常,在示例性配置中,被表示为单独源的结构和功能能够被实施为组合结构或源。类似地,能够将被呈现为单个源的结构和功能实施为单独的源。这些和其他变型、修改、添加和改进落入由所附权利要求表示的本公开的实现方式的范围之内。因此,说明书和附图应当被认为是说明性的而不是限制性的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1