掌桥专利:专业的专利平台
掌桥专利
首页

用于控制提供给服务工作方的信息的持久性、利用率和传播的代理服务

文献发布时间:2024-04-18 20:01:23


用于控制提供给服务工作方的信息的持久性、利用率和传播的代理服务

背景技术

由于万维网(又称web)和基于云的计算服务的广泛采用,大量信息在分布在全球的计算设备之间持续传输。在通常的使用中,用户可以采用通过用户的计算系统和通信网络实现的web浏览器(例如,Edge web浏览器)来访问基于Web或基于云的应用。用户可以从web/云应用请求信息,通过传输的信息请求和通信网络从web浏览器到web/云应用服务器。web/云应用服务器可以将请求的信息传输到web浏览器。

一方或多方可以将传输的信息的至少一部分视为“敏感信息”,例如用户密码、专有数据、商业机密、医疗记录、财务账户等。一方可能愿意向用户提供敏感信息,以便用户可以将敏感信息用于特定和/或预期目的。然而,一方可能希望信息是短暂的,并且在信息被用于预期目的后,信息可能不再是可访问的。也就是说,该方不希望用户或其他有权访问用户计算系统的用户复制、存储、缓存、打印或以其他方式保留信息,以用于预期用途以外的其他目的。例如,雇主可以允许他们的雇员通过他们使用用于业务目的的计算系统接收敏感信息,但雇主希望该信息是短暂的或暂时性的。在这种情况下,敏感信息可以被传输和/或接收,目的是一次性消耗和/或使用该信息。

然而,在传统的计算系统中,信息往往比希望控制信息的一方想要的更持久。计算系统/网络和信息的数字化提供了用于传输、复制、存储和检索信息的廉价机制。这些机制提供了许多优点,例如能够在医疗专业人员之间快速传输医疗记录。然而,一旦敏感的数字化信息被传输以进行一次性消费,希望禁止进一步使用信息的一方可能无法确保信息仅限于一次性使用。在上述用户通过web浏览器请求信息的示例中,用户的web浏览器可能会缓存或以其他方式持久化(例如,存储在随机存取内存(又名RAM)或存储磁盘中)敏感信息。在这种情况下,用户(或有权访问用户计算系统的其他用户)可能会出于预期的一次性用途之外的目的访问敏感信息。

许多现代web浏览器实现了服务工作方。服务工作方通常运行在用户的计算系统上,并向web/云应用提供各种服务。在典型场景中,web应用可以使用服务工作方来管理发送到web浏览器的信息的缓存。例如,web应用可以向服务工作方提供缓存指令。这样的缓存指令可以识别传输信息的部分,以及指示web浏览器缓存或存储识别的信息以供以后检索。因此,服务工作方可以将一定程度的信息持久性的控制权让给web应用。因此,服务工作方的使用可能会使相关方更难控制其认为敏感的信息的持久性。

发明内容

这里描述的技术的各个方面通常涉及系统、方法和计算机存储介质,用于除其他外,控制提供给服务工作方的信息的持久性、利用率和传播。一个示例性但非限制性的方法可以包括接收包括响应数据的响应。响应可以在安全服务处接收。响应可以已经通过第二计算设备(例如,web服务器)发送。第二计算设备可以已经响应于从第一计算设备接收信息请求而发送响应。第一计算设备可以实现服务工作方。可以在安全设备处识别包括在响应数据中的敏感数据。响应还可以包括缓存指令,指示服务工作方在第一计算设备处缓存敏感数据。响应于识别敏感数据,该方法可以包括更新缓存指令。该缓存指令可以在安全服务处更新。可以更新缓存指令,以使更新的缓存指令指示服务工作方在第一计算设备处缓存排除敏感数据的响应数据的任何部分。该方法还可以包括发送更新的响应。更新的响应可以包括响应数据和更新的缓存指令。可以从安全服务处向第一计算设备发送更新的响应。

在一些实施例中,该方法可以包括分析响应数据以识别敏感数据。响应于确定响应不包括响应数据包括敏感数据的指示,可以执行分析响应数据。在至少一个实施例中,响应于识别敏感数据,可以提供指示响应包括敏感数据的提示。进一步响应于识别敏感数据,更新的响应可以包括沙盒指令,其指示服务工作方在第一计算设备处实现的沙盒中隔离敏感数据。

在至少一个实施例中,该方法还可以包括在安全服务处采用缓存逻辑来标识在安全服务处缓存的响应数据的部分。利用缓存逻辑来标识的响应数据的部分可以在安全服务处缓存在缓存存储器中。该方法还可以包括在安全服务处接收另一信息请求。该另一信息请求可以包括针对用缓存逻辑标识的用于响应数据的一部分的请求。该另一信息请求可以从第三计算设备接收。安全服务处的缓存存储器可以用于向第三计算设备提供用缓存逻辑标识的部分响应数据。

在一些实施例中,缓存逻辑可以在安全服务处标识在第一计算设备处缓存的响应数据的一部分。缓存指令可以在安全服务处更新。可以更新缓存指令,以使更新的缓存指令指示服务工作方在第一计算设备处用缓存逻辑标识缓存部分的响应数据。在至少一个实施例中,更新缓存指令可以包括将一个或多个应用编程接口(API)函数调用插入到缓存指令中。

提供本发明内容是为了以简化的形式介绍下面在详细描述中进一步描述的一些概念。本概述并非旨在标识权利要求主题的关键特征或基本特征,也并非旨在用作帮助确定权利要求主题的范围。

附图说明

本文所述的技术将参考附图在下面详细描述,其中:

图1示出了其中可以采用本公开一些实施例的示例操作环境的框图;

图2示出了其中可以采用本公开一些实施例的示例web安全系统的框图;

图3A示出了通过图2web安全系统实施的工作流程示例;

图3B提供了将通过图3A的工作流程被缓存和沙盒化的响应数据的子集的图示说明;

图4提供了示出了用于控制提供给服务工作方的信息的持久性、利用和传播的方法的流程图;以及

图5是用于实现本文所述技术的各方面的示例性计算设备的框图。

具体实施方式

技术问题、技术方案并且技术改进的概览

如本文所用,术语“集合”可用于指代对象(或元素)的有序(即顺序)或无序(即非顺序)集合,例如但不限于机器(例如,计算机设备)、物理和/或逻辑地址、图节点、图边等。集合可以包括N个元素,其中N是任意非负整数。也就是说,集合可以包括0、1、2、3、…N个对象和/或元素,其中N是没有上限的正整数。因此,如本文所用,集合可以是空集(即,空集),其不包括任何元素(例如,对于空集,N=0)。集合可以仅包括单个元素。在其他实施例中,集合可以包括显著大于一个、两个、三个或数十亿个元素的大量元素。集合可以是无限集合或有限集合。在一些实施例中,不是空的对象集合的“对象集合”可以互换地称为“一个或多个对象”或“至少一个对象”。包括至少两个对象的对象集合可以称为“多个对象”。

如本文所用,术语“子集”是包括在另一个集合中的集合。子集可以是,但不一定是子集所包括的另一个集合的适当或严格子集。也就是说,如果集合B是集合A的子集,则在一些实施例中,集合B是集合A的适当或严格子集。在其他实施例中,集合B是集合A的子集,但不是集合A的适当或严格子集。例如,集合A和集合B可以是相等的集合,并且集合B可以被称为集合A的子集。在这样的实施例中,集合A也可以被称为集合B的子集。如果两个集合之间的交集是空集,则两个集合可以是不相交的集合。

各种实施例涉及控制提供给计算系统的信息的使用和传播。如本文所用,控制提供给计算系统的信息的使用和传播可以包括控制信息在计算系统中的持久性,以及控制计算系统的哪些部件和/或功能可以访问或以其他方式使用信息。因此,可以采用实施例来选择性地控制传输到计算系统的信息的至少一部分的缓存、存储、打印、显示、修改和/或重新传输。特别地,实施例可以通过代理服务监控提供给计算系统的数据(例如,通过基于web或基于云的应用提供的数据)。实施例可以检测和/或者识别包含在监控数据中的“敏感”信息。然后检测到的敏感信息的使用和传播可能被集体控制,而提供给计算系统的其他“非敏感”数据的使用和传播可能不受限制。

例如,实施例可以禁止敏感信息的缓存、短期存储或长期存储提供给基于web和/或基于云的应用的用户交互界面(UI)(例如,web浏览器)。此外,实施例可以从实现UI的计算系统的其他部件和/或功能隔离这种敏感信息。隔离敏感信息可以包括将敏感信息提供给与UI相关联的非泄漏的“沙盒”,以使在沙盒之外的用户计算系统的没有其他部件和/或功能可以读取-写入-修改敏感信息。如本文所用,“沙盒”可以是任何计算机制使计算系统的一个或多个特定部件和/或功能(例如,UI)访问特定信息(例如,敏感信息),同时从计算系统的其他部件和/或功能(例如,打印或保存功能)隔离、约束和/或隔离特定信息。例如,当沙盒化时,敏感信息可能无法打印、查看、存储、提交到内存或传输到UI沙盒之外。因此,通过控制敏感信息的持久性、使用和传播,敏感信息可能无法在UI内预期的一次性使用之外使用。

在下面的讨论中,用于基于web或基于云的应用的UI可以是web浏览器。然而,实施例并非受此限制,并且可以以类似的方式采用其它UI的。例如,一些基于云的应用具有在用户的计算系统上本地安装和运行的本地应用。尽管相应的应用在本地执行,但是其操作可以取决于与向本地应用提供数据的远程应用服务器的通信。本地应用可以实现其自身的特定于基于云的应用并且取决于通过基于云的应用提供的数据的相应的UI。各种实施例可以应用于这样的本地应用。

一些web浏览器可以实现服务工作方(或另一种类似的机制)来控制数据的缓存和/或沙盒。例如,当向客户端(例如,web浏览器或其他UI)提供数据时,基于web/云的应用可以为提供的数据提供缓存和/或沙盒指令。缓存指令可以识别提供的响应数据的第一子集,并且包括对服务工作方的指令(例如,应用特定接口(API)函数调用),该指令指示服务工作方在用户的计算系统上缓存提供的数据的识别的第一子集。类似地,沙盒指令可以识别提供的响应数据的第二子集,并且包括对服务工作方的指令,以沙盒化在web浏览器的沙盒中所识别的所提供数据的第二子集。如下所述,在传递给服务工作方之前,各个实施例使能截取通过web/云应用提供的任何响应数据、缓存指令和/或沙盒指令。各个实施例可以向服务工作方提供替代或修改的缓存和/或沙盒指令。例如,可以向服务工作方提供禁止敏感信息缓存的缓存指令。同样,可以向服务工作方提供强制对敏感信息进行沙盒化的沙盒指令。也就是说,而不是提供通过web/云应用制定的缓存和沙盒指令,各个实施例向服务工作方提供更新的或替代的缓存和沙盒指令。

敏感信息可以通过web安全服务(WSS)来控制/包含,WSS被提供给实现web浏览器(或UI)以与基于网络或基于云的应用通信的计算系统。WSS可以是用户计算系统的代理服务。WSS可以(逻辑上)定位在计算系统和web/云服务器采用的通信信道(通信网络的)内以进行通信,例如,计算系统可以位于用户的计算系统和应用的服务器之间。因此,可以使WSS能拦截和中继用户的计算系统和web/云服务器之间的通信。可以使WSS能够分析拦截的数据包。基于分析,可以使WSS能够在将数据包中继到通信信道内的预定目的地之前选择性地修改至少部分数据包。用这种方式,WSS可以控制和修改在用户和web/云应用之间传输的信息。

在非限制性示例中,用户可以通过计算系统实现的web浏览器访问web/云应用。当与该应用通信时,web浏览器可以向web/云服务器发送信息请求。WSS可以拦截以及中继该信息请求到web/云服务器。web/云服务器可以向web浏览器发送响应。该响应可以包括所请求的信息(例如,所请求的数据)。在一些实施例中,当采用服务工作方时,该响应可以另外包括缓存指令。缓存指令可以识别web/云应用打算通过用户的计算系统缓存的至少一部分请求信息。WSS可以拦截该响应数据和缓存指令。在将该响应转发到用户的web浏览器之前,WSS可以分析响应数据。更具体地说,WSS可以使能检测和/或识别响应数据中包括的任何“敏感”信息。在各种实施例中,用户、用户计算系统的管理员或在充当用户系统的代理服务器时有权控制WSS各个方面的另一个个人可以使能定义和/或表征响应数据中哪些信息被认为是“敏感”的。WSS可以修改响应数据和/或缓存指令,以使修改的缓存指令不指示已被识别为敏感信息的任何信息的缓存。因此,只有未被识别为敏感信息的信息可以通过用户的计算系统缓存。

一些web浏览器可能会实现沙盒功能,其中沙盒的作用是包含被插入到沙盒的任何信息。也就是说,沙盒是一个无泄漏的容器,插入沙盒的信息可能不会提供给web浏览器或用户的计算系统的其他部件。一些web浏览器可能会通过服务工作方实现这样的沙盒功能。在各种实施例中,WSS可能会修改响应以包括或修改沙盒指令,使得任何被识别为敏感信息的响应信息可能只提供给浏览器的沙盒功能,而可能不会提供给用户的web浏览器或计算系统的任何其他部件。以这种方式,使实施例能够禁止敏感信息被计算系统保存、缓存、打印、查看或传输。

除了限制敏感信息的持久性和/或传播之外,各种实施例还可以增强远程应用对用户或计算系统的其他用户的性能。例如,当扫描或分析敏感信息的响应数据时,WSS可以识别可能对WSS或用户计算系统的其他用户有用的响应数据的子集。WSS可以识别响应数据的这个“WSS子集”,并在WSS缓存WSS子集。当WSS接收到请求相同信息的附加信息时,WSS可以将缓存的WSS提供给请求它的用户,而无需将信息请求中继到远程应用服务器。此外,WSS可以识别响应数据的“客户端子集”,该响应数据可能有利于缓存在用户的计算设备上。例如,WSS可以识别用户可以重复使用的信息子集,但从远程应用接收到的缓存指令不指示缓存。WSS可以更新缓存指令,以指示服务工作方在用户的计算设备上缓存响应数据的客户端子集。当响应数据的客户端子集在用户的计算设备上缓存时,用于用户的远程应用的性能可能会增加,因为如果再次请求响应数据的客户端子集的一部分,缓存的信息是可用的。

因此,各种实施例可以通过限制提供给计算系统的敏感信息的持久性和可重复使用性来提高计算系统的安全性。此外,各种实施例可以通过做出智能决策来增强远程应用的性能,关于响应数据的哪些部分可以缓存在用户的计算设备上,以及响应数据的哪些部分可以缓存在用户以及其他用户使用的代理服务上。

用于控制提供给服务工作方的信息的环境概述

技术方案的各方面可以通过示例的方式并且参考下面的图1和附加的说明进行描述。图1示出了一个展示示例操作环境100的框图,其中可采用本公开的一些实施例。应当理解,本文描述的这些和其他排列方式仅作为示例进行阐述。其他排列方式和元件(例如,机器、接口、功能、顺序和功能的分组)可以用来补充或替代所示的排列方式和元素,并且为了清楚起见可以完全省略一些元件。此外,本文描述的许多元件是功能实体,可以作为离散或分布式部件或与其他部件结合,并且以任何合适的组合和位置实现。本文描述为通过实体执行的各种功能可以通过硬件、固件和/或软件完成。例如,一些功能可以通过处理器执行存储在存储器中的指令完成。

在未示出的其他部件中,示例性操作环境100包括许多用户设备,例如用户设备102a和102b至102n;许多数据源,例如数据源104a和104b至104n;服务器106;传感器103a和107;以及通信网络110。应当理解,图1中示出的环境100是一个合适的操作环境的示例。图1中示出的每个部件可以通过任何类型的计算设备来实现,例如,结合图6描述的计算设备600。这些部件可以通过网络110相互通信,网络110可以包括但不限于局域网(LAN)和/或广域网(WAN)。在示例性实现中,网络110包括因特网和/或蜂窝网络,以及任何各种可能的公共和/或私人网络。

应当理解,在本公开的范围内的操作环境100内可以采用任意数量的用户设备、服务器和数据源。每个设备可以包括在分布式环境中协作的单个设备或多个设备。例如,可以通过布置在分布式环境中的多个设备来提供服务器106,这些设备共同提供本文描述的功能。此外,在分布式环境中也可以包括未示出的其他部件。

用户设备102a和102b至102n可以是操作环境100的客户端侧上的客户端设备,而服务器106可以在操作环境100的服务器侧上。服务器106可以包括被设计成与用户设备102a和102b至102n上的客户端侧软件协同工作的服务器侧软件,用于实现本公开中讨论的特征和功能的任何组合。提供操作环境100的这种划分是为了展示合适环境的一个示例,并且并不要求每个实施方案将服务器106和用户设备102a和102b至102n的任何组合保持为单独的实体。

用户设备102a和102b至102n可以包括能够由用户使用的任何类型的计算设备。例如,在一个实施例中,用户设备102a至102n可以是本文关于图8描述的计算设备的类型。作为示例而非限制,用户设备可以体现为个人计算机(PC)、笔记本电脑、手机或移动设备、智能手机、平板电脑、智能手表、可穿戴计算机、个人数字助理(PDA)、音乐播放器或MP3播放器、全球定位系统(GPS)或设备、视频播放器、手持通信设备、游戏设备或系统、娱乐系统、车载计算机系统、嵌入式系统控制器、相机、遥控器、条形码扫描仪、计算机化测量设备、电器、消费电子设备、工作站、或这些设备的任何组合,或任何其他适当的计算机设备。

数据源104a和104b至104n可以包括数据源和/或数据系统,其被配置为使数据可用于操作环境100的各种组成部分中的任何一个;结合图2描述的系统200描述的数据结构120、140和160。数据源104a和104b至104n可以分离于用户设备102a和102b至102n以及服务器106,或者可以并入和/或集成到这些部件中的至少一个中。在一个实施例中,数据源104a至104n包括传感器103a、107,传感器103a、107可以集成到用户设备102a、102b或102n或服务器106中或与之相关联。通过数据源104a至104n提供的感知用户数据的示例可以包括事件。

操作环境100可用于实现图2中描述的增强型网络安全系统200的部件中的一个部件,包括用于控制信息的持久性、利用率和传播的部件。操作环境100还可用于实现结合图3A-4描述的过程流程300和400的各个方面。

控制信息的持久性、使用和传播的示例的概述

图2示出了展示其中可采用本公开的一些实施例的示例网络安全系统200的框图。系统200可通过图1的环境100的一个或多个部件来实现。系统200可包括由一个或多个计算设备(例如,web安全服务器计算设备202)实现的web安全服务(WSS)240。系统200可另外包括客户端计算设备206和web应用服务器计算设备204。在一些非限制性实施例中,系统200可包括客户端代理服务器208。web安全服务器计算设备202、web应用服务器计算设备204、客户端计算设备206和/或客户端代理服务器208可通过图1的通信网络110通信耦合。客户端计算设备206可包括物理缓存存储器218。

web应用服务器计算设备204可以托管或以其他方式实现web应用服务器230。web应用服务器230可以是应用(例如,基于web的应用)的服务器。应用可以通过由web应用服务器计算设备204实现的web应用服务器230来启用。注意,尽管以下讨论将该应用标记为web应用,但该应用也可以是基于云的应用(例如,云应用)。因此,web应用服务器计算设备204可以是云应用服务器计算设备,并且web应用服务器230可以是云应用服务器。

WSS240可以向客户端计算206提供web(或云)安全代理服务。在应用是云应用而不是web应用的实施例中,web安全服务器计算设备202可以是云安全服务器计算设备,并且WSS可以是云安全服务。无论应用是基于web的应用还是基于云,WSS240可以提供安全服务,用于控制应用提供给客户端计算206的信息的持久性、利用率和传播。

为了与应用交互和使用,用户可以采用客户端计算设备206。更具体地,为了采用web/云应用,用户可以采用本地安装在客户端计算设备206上并且至少部分地由客户端计算设备206执行的本地应用(例如,web浏览器210或对应于web/云应用的另一本地应用)。客户端代理服务器208可以用于将客户端计算设备208和web/云应用之间的任何通信网络110重新定向或以其他方式转移到WSS240。作为代理服务,WSS240可以监控、分析、修改和中继任何这样的重新定向的流量到其预期目的地。

web应用服务器230可以包括web应用客户端应答器232、web应用缓存逻辑模块234和web应用沙盒逻辑模块236。web浏览器210可以包括web应用客户端212,其可以包括web应用沙盒214。web浏览器可以托管应用的UI(例如,web应用UI 216)。web应用沙盒214中可以包括web应用UI 216的至少一部分的显示。web浏览器210可以实现web应用服务工作方(SW)220。web应用SW 220可以包括SW网络接口222、SW沙盒接口22、SW缓存接口226和SW虚拟缓存228。WSS240可包括WSS网络接口242、缓存逻辑代理模块244、沙盒逻辑代理模块246、应用编程接口(API)代理模块248、web安全虚拟缓存250和敏感数据检测器252。

这些各种部件的功能将至少结合图3A-3B进行讨论。然而,在此简要地说,客户端计算设备206的用户可以采用web浏览器210来访问web/云应用。可以采用应用服务器/客户端体系结构,以使web应用服务器230通常负责在服务器侧(例如,通过web应用服务器计算设备204)实现应用,并且web应用客户端212通常负责在客户端侧(例如,通过客户端计算设备206)实现应用。因此,术语客户端可以用于指代系统200的第一部分,该部分包括例如客户端计算设备206、web浏览器210、web应用服务工作方220和客户端代理服务器208的部件(及其子部件)。术语服务器端可用于指代系统200的第二部分,该部分包括例如web应用服务器计算设备204和web应用服务器230的部件(及其子部件)。术语代理端可用于指代系统200的第三部分,该部分包括例如网络安全服务器计算设备202和WSS240的部件(及其子部件)。客户端代理服务器208通常负责将web应用服务器230和web应用客户端212之间的流量重新引导到WSS240。例如,web应用客户端212可向web应用服务器230发送信息请求。WSS240可通过客户端服务器代理208的重新定向拦截信息请求。WSS240可将信息请求中继到web应用服务器230。

web应用客户端响应器232通常负责生成对信息请求的响应。该响应可以包括所请求的信息(例如,响应数据)。对于web浏览器210实现服务工作方(例如,web应用服务工作方220)的实施例,该响应可以另外包括对响应数据的缓存指令。缓存指令可以标识要缓存在客户端上的SW虚拟缓存228中的响应数据的第一子集(或部分)。web应用服务器230的web应用缓存逻辑模块234通常负责生成缓存指令。缓存指令可以编码为对web应用服务工作方220的一个或多个API函数调用。SW虚拟缓存228可以是通过客户端计算设备206的物理缓存存储器218实现的虚拟化存储部件。SW网络接口222通常负责接收响应,包括缓存指令。Web应用服务工作方220的SW缓存接口226通常负责实现缓存指令,并且至少临时地将响应数据的第一子集存储在SW虚拟缓存228中。

对于web浏览器210和/或web应用服务工作方210实现沙盒(例如,web应用沙盒214)的实施例,除了响应数据之外,响应还可以包括沙盒指令。沙盒指令可以在web浏览器210的web应用沙盒214中标识要被沙盒化(例如,隔绝或隔离)的响应数据的第二子集(或部分)。web应用服务器230的web应用沙盒逻辑模块236通常负责生成沙盒指令。沙盒指令可以被编码为对web应用服务工作方220的一个或多个API函数调用。如前所述,web应用沙盒214一般负责隔离或隔绝插入web应用沙盒214的任何数据(例如,web应用UI 216展示的至少一部分)。web应用服务工作方220的SW沙盒接口224通常负责实现沙盒指令,并且至少隔离或隔绝web应用沙盒214中响应数据的第二子集。

服务器侧的web应用客户端响应器232可以将响应(包括响应数据、缓存指令和沙盒指令)发送到web应用客户端212。在传递到客户端计算设备206之前,响应可以通过客户端代理服务器208转移到WSS240。可以使WSS网络接口242能够接收响应。可以使WSS240能够控制提供给客户端计算设备206的信息(例如,响应数据)的使用和传播。如本文所用,控制提供给客户端计算设备206的信息的使用和传播可以包括控制客户端计算设备206中的信息的持久性,以及控制客户端计算设备206的哪些部件和/或功能可以访问或以其他方式采用信息。相应地,WSS240可以被使用(作为代理服务)来选择性地控制发送到客户端计算设备206的信息的至少部分的缓存、存储、打印、显示、修改和/或重新发送。特别地,WSS240可以监控通过web应用服务器230提供给客户端计算设备206的响应数据。实施例可以检测和/或识别被监控数据中包括的“敏感”信息。然后可以集体控制检测到的敏感信息的使用和传播,而其他“非敏感”数据的使用和传播可以不受此限制。

WSS240可以分析包括在从web应用服务器230截获的响应中的响应数据。敏感数据检测器252可以被启用来检测和/或识别包括在响应数据中的任何“敏感”信息。在各种实施例中,客户端计算设备206的用户、客户端计算设备206的管理员或有权控制WSS240的各个方面的另一个体,可以定义和/或表征响应数据中哪些信息被认为是“敏感的”。在一些实施例中,可以在WSS内定义什么构成“敏感”信息的至少两个“表征”。第一表征可以被称为“缓存逻辑”并且第二表征可以被称为“沙盒逻辑”。缓存逻辑可以定义哪些敏感信息将被禁止在客户端缓存(例如,通过SE虚拟缓存228)。沙盒逻辑可以定义哪些敏感信息将被沙盒化在客户端(例如,通过web应用沙盒214)。“信息检测逻辑”的这两个变体中的每一个所定义的信息类型或分类可以通过逻辑、启发式、规则、显式定义等来定义。在至少一个实施例中,可以训练二进制分类器(例如,通过监督学习)以“深度学习”与敏感信息相关的信息的特征,用于沙盒化或禁止缓存的目的。在一些实施例中,一个或多个神经网络(例如,多层感知器)可以实现缓存逻辑或沙盒逻辑。

缓存逻辑代理模块通常负责编码或实现缓存逻辑。同样,沙盒逻辑代理模块246通常负责编码或实现沙盒逻辑。敏感数据检测器252可以实现在缓存逻辑代理模块244和沙盒逻辑模块246中分别编码缓存逻辑和沙盒逻辑中的每一个。也就是说,敏感数据检测器252可以采用缓存逻辑来检测或识别构成将被禁止在客户端计算设备206处缓存的第一类型敏感信息的响应数据的第一子集。敏感数据检测器252可采用沙盒逻辑来检测或识别构成将通过web应用沙盒214沙盒化的敏感信息类型的响应数据的第二子集。

在一些实施例中,可以使敏感数据检测器252能够识别并选择响应数据的第三子集。响应数据的第三子集可以包括将在web安全虚拟缓存250处缓存的响应数据。例如,WSS240可以在web安全虚拟缓存250处缓存响应数据的部分,从而响应数据的缓存部分可以被快速访问并且提供给随后从web应用服务器230请求相同数据的WSS240的其他用户。web安全虚拟缓存250可以是通过web安全服务器计算设备202的物理缓存存储器(例如,图2中未示出)实现的虚拟化缓存。WSS240的用户或管理员可以定义“WSS缓存逻辑”并在缓存逻辑模块244中编码WSS缓存逻辑。注意,与上面讨论的缓存逻辑(其定义了什么数据不在客户端上缓存)相反的是,WSS缓存逻辑定义了在代理端本地缓存的数据。通过实现WSS缓存逻辑,可以使敏感数据检测器252能够检测或识别在web安全虚拟缓存250处缓存的响应数据的部分(例如,响应数据的第三子集)。进一步可以使敏感数据检测器252能够在web安全虚拟缓存250中缓存识别的响应数据的第三子集。

除了WSS缓存逻辑之外,缓存逻辑代理模块244可以实现另外的逻辑以标识要在客户端侧高速缓存的响应数据的第四子集。响应数据的第四子集可以包括WSS确定对在客户端侧缓存有用的数据,其中原始缓存指令(由远程应用提供)并不标识要在客户端侧缓存的数据。在客户端侧或代理侧缓存响应数据可以增强用户、客户端计算设备206的其他用户和/或WSS240的其他用户的远程应用的性能。

WSS240可以修改响应。也就是说,可以使WSS240基于在客户端不被缓存的敏感数据和/或在客户端被沙盒化的敏感数据的标识能够修改响应数据、缓存指令和/或沙盒指令中的任何一个。如上所述,缓存指令和沙盒指令可以通过对web应用服务工作方220的一个或多个API调用来编码。可以使API代理模块248能够修改原始缓存和沙盒指令中的原始API调用,以使修改或更新的API调用与目标和/或任务一致,如果禁止在客户端缓存敏感响应数据的第一子集和在客户端沙盒化敏感响应数据的第二子集。在一些实施例中,可以使API代理模块248能够生成新的或替代的API调用,以完成相同的缓存和沙盒相关的目标或任务。例如,在响应不包括缓存和/或沙盒指令的情况下,可以生成新的API调用。

WSS网络接口241通常负责将更新的或修改的响应转发到客户端计算设备206上。可以采用客户端代理服务器208将修改的响应转发到客户端计算设备206。修改的响应可以转发到web应用服务工作方220。如上所述,SW网络接口222可以接收修改的响应。SW缓存接口226可以实现修改的和/或替代的缓存指令,以禁止敏感数据的第一子集(例如,通过修改的和/或替代的缓存指令指示的响应数据的部分)被缓存在SW虚拟缓存228中。SW沙盒接口可以实现修改的和/或替代的沙盒指令,以沙盒化敏感数据的第二子集(例如,通过修改的和/或替代的沙盒指令指示响应数据的部分)在web应用沙盒214中。

图3A示出了由图2的web安全系统200实现的示例工作流300。图3B结合图3A的工作流300进行讨论。图3B通过图3A的工作流300提供了要缓存和沙盒化的响应数据子集的图形说明。在工作流300的步骤302,web应用服务工作方220发送信息请求340。信息请求可以由客户端代理服务器208接收。在一些实施例中,SW网络接口222可以将信息请求340转发给客户端代理服务器208。在工作流300的步骤304,客户端代理服务器208可以将信息请求340转发给web安全服务240。WSS网络接口242可以接收信息请求。在工作流300的步骤306,WSS网络接口242可以将信息请求转发到web应用服务器230。

在工作流的方框308处,web应用客户端响应器232可生成对信息请求的响应,例如响应350。响应350可包括响应数据360、服务工作方缓存指令352和web应用沙盒指令354。响应数据360可以是响应数据的集合,如图3B上部的维恩图所示。服务工作方缓存指令352标识在SW虚拟缓存228处缓存的响应数据360的第一子集(例如,图3B的上部维恩图中的子集362)。web应用沙盒指令354标识将在web应用客户端212处沙盒化的响应数据360的第二子集(例如,图3B的上部维恩图中的子集364)。在一些实施例中,子集362和子集364的交集可以是空集。在一些实施例中,响应350可以不包括web应用沙盒指令354的SW缓存指令352中的至少一个。

在工作流程300的步骤310,web应用服务器230可以将响应350发送给web应用服务工作方220。如图3B所示,WSS240可以截取响应350。尽管在工作流程300中未示出,但客户端代理服务器208可以在步骤310接收响应350,并将响应350转发给WSS240。可以使WSS网络接口242能够接收响应350。

在步骤312,可以分析响应数据360的灵敏度。同样在步骤312,可以更新SW缓存指令352和web应用沙盒指令354。结合图4的方法400讨论了分析响应数据360和更新SW缓存指令352和web应用沙盒指令354的各种实施例。然而,在此简要地说,可以使敏感数据检测器352能够检测响应数据360的一个或多个敏感子集。响应350可以被更新和/或修改以生成更新的响应。更新的响应370可以包括更新的响应数据380、更新的SW缓存指令372和更新的web应用沙盒指令374。在一些实施例中,更新的响应数据380可以等同于响应数据360。在其他实施例中,更新的响应数据380可以是响应数据360的子集,或者可以是包括响应数据360的修改部分的响应数据的替代集合。响应数据360通过工作流程300的步骤312到更新的响应数据380的变换示于图3B。更新的响应数据380示于图3B的下部维恩图。响应350到更新的响应350的变换也示于图3B,其中响应350示于图3B的上部,更新的响应370示于图3B的下部。

在各种实施例中,在步骤312,敏感数据检测器252实现缓存逻辑在缓存逻辑代理模块244中编码,以检测更新的响应数据380中的第一子集信息。更具体地说,可以使敏感数据检测器252能够实现缓存逻辑,以识别将被禁止在客户端缓存的更新的响应数据380的第一子集。将被禁止在SW虚拟缓存228中缓存的敏感响应数据的第一子集被显示在图3B的下部维恩图中示出子集382。API代理模块248可用于更新和/或生成更新的SW缓存指令372(通过一个或多个API调用)以禁止在客户端缓存第一子集382。

敏感数据检测器252可以实现沙盒逻辑在沙盒逻辑代理模块246中编码,以检测更新的响应数据380中的第二信息子集。更具体地说,可以使敏感数据检测器252能够实现沙盒逻辑,以识别将在客户端被沙盒化的更新的响应数据380的第二子集。将通过web应用沙盒214沙盒化的敏感响应数据的第二子集在图3B的下部维恩图中示出子集384。API代理模块248可用于更新和/或生成更新的web应用沙盒指令374(通过一个或多个API调用),使得第二子集384在客户端被沙盒化。

在各种实施例中,在工作流的步骤314中,敏感数据检测器252实现WSS缓存逻辑在缓存逻辑代理模块244中编码,以检测更新的响应数据380的第三子集。更具体地说,可以使敏感数据检测器252能够实现WSS缓存逻辑,以识别要在web安全虚拟缓存250中缓存的更新的响应数据380的第三子集。在代理侧缓存的更新的响应数据380的这个第三子集显示在图3B的下部维恩图中示出子集386。在工作流300的步骤316中,在WSS虚拟缓存250中缓存更新的响应数据380的第三子集(子集386)。注意,图3B的下部维恩图是绘制的,如果示出了三个数据子集的最通常的交集。注意在一些实施例中,更新的响应数据380的三个子集可以不形成三个子集的最广义版本。例如,子集382和384可以是等价子集。第三子集386可以与第一子集382和第二子集384中的每一个完全不相交。

在步骤318,可以发送更新的响应370。客户端代理服务器208可以截取更新的响应370。在步骤320,客户端代理服务器208可以将更新的响应370转发给web应用服务工作方220。可以使SW网络接口222能够接收更新的响应370。在步骤322,可以使SW缓存接口226能够实现更新的SW缓存指令374,以识别更新的响应数据352的子集。在步骤324,SW缓存接口226可以在SW虚拟缓存228处缓存响应数据的已识别子集。注意,在步骤324识别的子集和子集328的交集可以是空集。在步骤326,SW沙盒接口224可以实现更新的web应用沙盒指令374以识别在客户端沙盒化的更新的响应数据的敏感子集(例如,子集384)。在步骤328中,SW沙盒接口224可以在web应用沙盒214处沙盒更新的响应数据370的子集384。控制信息的持久性、使用和传播的示例方法

转向图4,提供了示出了用于控制提供给服务工作方的信息的持久性、利用率和传播的方法400的流程图。该方法可以通过使用web安全服务(WSS)的任何实施例来实现和/或执行,例如但不限于图2至3A的WSS240。在实施例中,一个或多个计算机存储介质具有计算机可执行指令,当通过一个或多个处理器执行时,可以使一个或多个处理器执行存储系统中的方法。通常,图4的流程图可以使用以上至少结合图1至3B描述的体系结构来实现。例如,方法400的部分的任何合适的组合可以通过WSS240来实现。

最初,方法400开始于块402,其中在WSS(例如,图2至3A的WSS240)处接收信息请求(例如,图4的信息请求340)。信息请求可以来自或者通过客户端计算设备(例如,图2的客户端计算设备206)实现的web客户端(例如,图2的web应用客户端212)发送。信息请求可以通过客户端计算设备实现的web浏览器(例如,图2的web浏览器210)生成。web浏览器可以实现服务工作方(例如,web应用服务工作方220)。在块404,信息请求可以从WSS转发到web服务器(例如,图2至3A的web应用服务工作方230)。信息请求可以从客户端计算设备发送,具有服务器计算设备的预期目的地(例如,图2的web应用服务器计算设备204)。代理服务器(例如,客户端代理服务器208)可以拦截信息请求并将信息请求转发给WSS。

在块406,从web服务器接收响应。可以在WSS处接收响应(例如,图3A-3B的响应350)。该响应可以包括响应数据(例如,图2至3A的响应数据360)、缓存指令(SW缓存指令352)和/或沙盒指令(例如,web应用沙盒指令354)中的至少一个。该响应数据可以是响应数据的集合。该组响应数据可以包括响应数据的子集,该子集是“敏感数据”,即敏感数据的子集。在一些实施例中,当响应数据包括敏感数据(例如,敏感信息)时,该响应可以另外包括响应数据包括敏感数据的指示。在从web服务器传输到客户端计算设备的过程中,WSS可能已经拦截了该响应。代理服务器(例如,图2至3A的客户端代理服务器208)可能已经截获该响应并转发到WSS。在判定块408,确定该响应是否包括该响应数据包括敏感信息的指示。如果该响应确实包括该响应数据包括敏感数据的指示,则方法400可以流向块420。如果该响应不包括该响应数据包括敏感数据的指示,则方法400可以流向块410。

在块410,扫描响应数据。扫描响应数据可以包括分析响应数据以确定响应数据是否包括敏感数据,即使响应没有包括响应数据包括敏感数据的指示。如果响应数据包括敏感数据,则在块410检测和/或识别敏感数据的子集。在判定块412,方法400可以分叉。如果在块410在响应数据中检测到敏感数据,则方法400可以流向块414。如果在块410中没有检测到敏感信息,则方法400可以流向块436。在块436,将响应(例如,响应数据、缓存指令和沙盒指令)提供给web客户端(例如,图2的web应用客户端212)。在执行块436之后,方法400可以终止。

在块414,可以提供敏感信息提示。敏感信息提示可以包括来自web服务器的响应包括敏感信息的指示。可以将敏感信息提示提供给web客户端和/或系统管理员(例如,客户端计算设备206的管理员或超级用户)。

在一些实施例中,当检测到敏感数据时,可以使WSS能够修改响应数据的至少部分。在块416,WSS可以采用隔绝和数据修改逻辑来更新和/或修改响应数据。也就是说,可以在块416生成更新的响应数据(例如,图3A至3B的更新的响应数据380)。例如,WSS可以隔绝和/或修改某些类型的敏感响应数据。在一些实施例中,可以在传输到客户端计算设备之前对敏感数据进行加密。因此,更新的响应数据可以包括加密的敏感数据。在其他实施例中,可以从响应数据中删减敏感数据。因此,更新的响应数据可以是响应数据的子集。隔绝和数据修改逻辑可用于检测响应数据或更新的响应数据中的“高度敏感”数据或信息。在一些实施例中,无论响应数据是否包括敏感数据,更新的响应数据都可以等同于响应数据。也就是说,在一些实施例中,响应数据可以不更新。在判定块418,方法400可以分叉。如果更新的响应数据包括高度敏感信息,则方法400可以流向块420。否则,方法400可以流向块424。

在块420,可以更新缓存指令以指示没有响应数据将被缓存在客户端。也就是说,更新和/或生成的响应中包括的缓存指令以指示在图2至3A的SW虚拟缓存228处缓存的响应数据的子集是空集。在块422,可以更新沙盒指令以指示响应的全部响应数据在图2至3A的web应用沙盒214处被沙盒化。从块422,方法400可以流向块434。

在块424,可以应用服务工作方(SW)缓存逻辑来标识响应数据的SW缓存子集。图2的缓存逻辑代理模块244可以实现SW缓存逻辑。响应数据的SW缓存子集可以是通过服务工作方在客户端计算设备处被禁止缓存的敏感数据的子集(例如,图3B的更新响应数据380的子集282)。同样在块424,可以应用WSS缓存逻辑来识别响应数据的WSS缓存子集。缓存逻辑代理模块244可以实现WSS缓存逻辑。响应数据的WSS缓存子集可以是要在WSS处缓存的更新响应数据的子集(例如,图3B的更新响应数据380的子集286)。在块426,可以在WSS处缓存更新的响应数据的WSS子集。例如,可以使缓存逻辑代理模块244能够将更新的响应数据的WSS子集缓存在图2的web安全虚拟缓存250中。

在块428,可以将沙盒逻辑应用于更新的响应数据,以识别和/或检测更新的响应数据的沙盒子集。图2的沙盒逻辑代理模块246可以实现沙盒逻辑。更新的响应数据的沙盒子集可以是通过图2的web应用沙盒214处的服务工作方沙盒化的敏感数据的子集。更新响应数据的沙盒子集可以是图3B的更新响应数据380的子集384。在块430,可以更新响应的缓存指令,以指示更新响应数据的SW缓存子集不在客户端缓存。也就是说,更新响应中的更新缓存指令(例如,图3A至3B的更新响应370中的更新SW缓存指令372)指示在块424中识别的更新响应数据的子集的没有部分在图2的SW虚拟缓存228处被缓存。在块432,响应的沙盒指令可被更新以指示更新响应数据的沙盒子集在客户端被沙盒化。也就是说,更新响应中的更新沙盒指令(例如,图3A至3B的更新响应370中的更新web应用沙盒指令374)指示在块428中识别的更新响应数据的子集将在图2的web应用沙盒214处被沙盒化。在块434,包括更新响应数据、更新缓存指令和更新沙盒指令的更新响应可被提供给web客户端。

其他实施例

实施例可以针对方法、系统和/或非暂时性计算机可读存储介质中的一种或多种。在一些实施例中,提供了一种用于控制信息的计算机实现方法。该方法包括在安全服务处接收响应,该响应包括响应数据以及响应于从实现服务工作方的第一计算设备接收信息请求而从第二计算设备发送的响应数据。该方法进一步包括在安全服务处识别响应数据中包括的敏感数据,该响应进一步包括指示服务工作方在第一计算设备处缓存敏感数据的缓存指令。该方法进一步包括响应于识别敏感数据在安全服务处更新缓存指令,从而使更新的缓存指令指示服务工作者在第一计算设备缓存的响应数据的任何部分排除敏感数据。该方法进一步包括从安全服务处向第一计算设备发送包括响应数据和更新的缓存指令的更新的响应。有利的是,通过控制提供给计算系统的敏感信息的持久性和可重复使用性,可以提高计算系统的安全性,以及通过控制响应数据的哪些部分可以在用户的计算设备处缓存以及响应数据的哪些部分可以在用户使用的代理服务处缓存,可以提高远程应用的性能,减少计算资源并节省带宽。

在上述实施例的任何组合中,响应于确定响应不包括响应数据包括敏感数据的指示,分析响应数据以识别敏感数据。

在上述实施例的任何组合中,响应于识别敏感数据,提供指示响应包括敏感数据的提示。

在上述实施例的任何组合中,响应于识别敏感数据,包括在更新响应的沙盒中指示服务工作方隔离沙盒中的敏感数据的指令在第一计算设备处实现。

在上述实施例的任何组合中,在安全服务处采用缓存逻辑来识别要在安全服务处缓存的响应数据的一部分;在安全服务处的缓存存储器中存储用缓存逻辑识别的响应数据的一部分;在安全服务处接收另一信息请求,该另一信息请求包括对用缓存逻辑识别的响应数据的一部分的请求,其中该另一信息请求是从第三计算设备接收的;以及在安全服务处采用缓存存储器来向第三计算设备提供用缓存逻辑识别的响应数据的一部分。

在上述实施例的任何组合中,在安全服务处采用缓存逻辑来识别在第一计算设备处缓存的响应数据的一部分;以及在安全服务处更新缓存指令,从而更新的缓存指令指示服务工作方在第一计算设备处缓存用缓存逻辑标识的响应数据的一部分。

在上述实施例的任何组合中,更新缓存指令包括将一个或多个应用编程接口(API)函数调用插入到缓存指令中。

在一些实施例中,一种计算系统,包括至少一个硬件处理器和一个或多个非暂时性计算机可读介质,其具有包含在其上的可执行指令,当通过至少一个硬件处理器执行时,使得至少一个硬件处理器执行操作。操作包括在安全服务处接收响应,包括响应数据,以及响应于从实现服务工作方的第一计算设备接收信息请求而从第二计算设备发送。所述操作进一步包括在安全服务处识别响应数据中包括的敏感数据,所述响应进一步包括指示服务工作方在第一计算设备处缓存敏感数据的缓存指令。操作进一步包括,响应于识别敏感数据,在安全服务处更新缓存指令,从而更新的缓存指令指示服务工作方在第一计算设备处缓存的响应数据的任何部分排除敏感数据。操作进一步包括从安全服务处向第一计算设备发送包括响应数据和更新的缓存指令的更新的响应。有利的是,通过控制提供给计算系统的敏感信息的持久性和可重复使用性,可以提高计算系统的安全性,以及通过控制响应数据的哪些部分可以在用户的计算设备处缓存以及响应数据的哪些部分可以在用户使用的代理服务处缓存,可以提高远程应用的性能。减少计算资源并节省带宽。

在上述实施例的任何组合中,操作进一步包括,响应于确定响应不包括响应数据包括敏感数据的指示,分析响应数据以识别敏感数据。

在上述实施例的任何组合中,操作进一步包括,响应于识别敏感数据,提供指示响应包括敏感数据的提示。

在上述实施例的任何组合中,操作进一步包括,响应于识别敏感数据,包括在更新的响应沙盒中指示服务工作方隔离沙盒中的敏感数据的指令,在第一计算设备处实现。

在上述实施例的任何组合中,操作进一步包括:在安全服务处采用缓存逻辑,以识别在安全服务处要缓存的响应数据的一部分;在安全服务处的缓存存储器中存储用缓存逻辑识别的响应数据的部分;在安全服务处接收另一信息请求,另一信息请求包括对用缓存逻辑识别的响应数据的部分的请求,其中另一信息请求是从第三计算设备接收的;以及在安全服务处采用缓存存储器,以向第三计算设备提供用缓存逻辑识别的响应数据的部分。

在上述实施例的任何组合中,操作进一步包括在安全服务处采用缓存逻辑,以识别要在第一计算设备处缓存的响应数据的一部分;以及在安全服务处更新缓存指令,从而更新的缓存指令指示服务工作方在第一计算设备处缓存用缓存逻辑识别的响应数据的一部分。

在上述实施例的任何组合中,更新缓存指令包括将一个或多个应用编程接口(API)函数调用插入到缓存指令中。

在一些实施例中,一种或多种计算机存储介质,其上包含计算机可用指令,当通过至少一个计算设备使用时,使得至少一个计算设备执行动作。动作包括在安全服务处接收响应,包括响应数据以及响应于从实现服务工作方的第一计算设备接收信息请求而从第二计算设备发送。动作进一步包括在安全服务处识别响应数据中包括的敏感数据,响应进一步包括指示服务工作方在第一计算设备处缓存敏感数据的缓存指令。动作进一步包括响应于识别敏感数据,在安全服务处更新缓存指令,从而更新的缓存指令指示服务工作方在第一计算设备处缓存响应数据的任何部分排除敏感数据。动作进一步包括从安全服务处向第一计算设备发送包括响应数据和更新的缓存指令的更新的响应。有利的是,通过控制提供给计算系统的敏感信息的持久性和可重复使用性,可以提高计算系统的安全性,以及通过控制响应数据的哪些部分可以在用户的计算设备处缓存以及响应数据的哪些部分可以在用户使用的代理服务处缓存,可以提高远程应用的性能,减少计算资源并节省带宽。

在上述实施例的任何组合中,动作进一步包括,响应于确定响应不包括响应数据包括敏感数据的指示,分析响应数据以识别敏感数据。

在上述实施例的任何组合中,动作进一步包括,响应于识别敏感数据,提供指示响应包括敏感数据的提示。

在上述实施例的任何组合中,动作进一步包括,响应于识别敏感数据,包括在更新的响应沙盒中指示服务工作方隔离沙盒中的敏感数据的指令,在第一计算设备处实现。

在上述实施例的任何组合中,动作进一步包括在安全服务处采用缓存逻辑来识别在安全服务处缓存的响应数据的一部分;在安全服务处的缓存存储器中存储用缓存逻辑识别的响应数据的部分;在安全服务处接收另一信息请求,包括对于用缓存逻辑识别的响应数据的部分的请求,其中另一信息请求是从第三计算设备接收的;以及在安全服务处采用缓存存储器向第三计算设备提供用缓存逻辑识别的响应数据的部分。

在上述实施例的任何组合中,动作进一步包括在安全服务处采用缓存逻辑,以识别在第一计算设备处缓存的响应数据的一部分;以及在安全服务处更新缓存指令,从而更新的缓存指令指示服务工作方在第一计算设备处缓存用缓存逻辑标识的响应数据的部分。

通用计算设备

参考图5,计算设备500包括总线510,直接或间接地耦合以下设备:存储器512、一个或多个处理器514、一个或多个演示部件516、一个或多个输入/输出(I/O)端口518、一个或多个I/O部件520和说明性电源522。总线510表示什么可以是一个或多个总线(例如地址总线、数据总线或其组合)。尽管为了清楚起见,图5的各个块以线示出,但实际上,这些块表示逻辑的、不一定是实际的部件。例如,可以认为例如展示设备的演示部件是I/O部件。此外,处理器具有存储器。本发明的发明人认识到这是本领域的本质,并且重申图5的示意图仅仅是可结合本公开的一个或多个实施例使用的示例性计算设备的说明,并未在诸如"工作站"、"服务器"、"笔记本电脑"、"手持设备"等类别之间做出区分,因为所有这些都在图5的范围内并且参考"计算设备"。

计算设备500通常包括多种计算机可读介质。计算机可读介质可以是可通过计算设备500访问的任何可用介质,并且包括易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括易失性和非易失性、可移动和不可移动介质,在用于存储例如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法或技术实现。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、盒式磁带、磁带、磁盘存储器或其他磁存储设备,或可用于存储所需信息并可通过计算设备500访问的任何其他介质。计算机存储介质本身并不包括信号。通信介质通常在例如载波或其他传输机制的调制数据信号中体现计算机可读指令、数据结构、程序模块或其他数据,并且包括任何信息分发介质。术语“调制数据信号”是指一种信号,用设置或改变一个或多个信号的特性的方法在信号中编码信息。作为示例而非限制,通信介质包括有线介质,例如有线网络或直接有线连接,以及无线介质,例如声波、射频、红外线和其他无线介质。上述任何组合也应包括在计算机可读介质的范围内。

存储器512包括易失性和/或非易失性存储器形式的计算机存储介质。存储器可以是可移动的、不可移动的或其组合。示例性硬件设备包括固态存储器、硬盘驱动器、光盘驱动器等。计算设备500包括从例如存储器512或I/O部件520的各种实体中读取数据的一个或多个处理器514。演示部件516向用户或其他设备呈现数据指示。在一些实施方案中,系统200的演示部件220可以体现为演示部件516。演示部件的其他示例可以包括显示设备、扬声器、打印部件、振动部件等。

I/O端口518允许计算设备500逻辑耦合到其他设备,包括I/O部件520,其中一些可以内置。说明部件包括麦克风、操纵杆、游戏手柄、卫星天线、扫描仪、打印机、无线设备等。I/O部件520可以提供自然用户界面(NUI),处理用户生成的空中手势、语音或其他生理输入。在一些情况下,输入可以被传输到适当的网络元件以进行进一步处理。NUI可以实现语音识别、触摸和手写笔识别、面部识别、生物识别、屏幕上和屏幕相邻的手势识别、空中手势、头部和眼睛跟踪以及与计算设备500上的显示器相关联的触摸识别的任何组合。计算设备500可以配备深度摄像头,例如立体摄像系统、红外摄像系统、RGB摄像系统以及这些系统的组合,用于手势检测和识别。另外,计算设备500可以配备能够检控运动的加速度计或陀螺仪。加速度计或陀螺仪的输出可以提供给计算设备500的显示器,以呈现沉浸式增强现实或虚拟现实。

计算设备500的一些实施例可以包括一个或多个无线电524(或类似的无线通信部件)。无线电524发送和接收无线电或无线通信。计算设备500可以是适于通过各种无线网络接收通信和媒体的无线终端。计算设备500可以通过无线协议进行通信,例如码分多址(“CDMA”)、全球移动通信系统(“GSM”)或时分多址(“TDMA”),以及其他,以与其他设备进行通信。无线电通信可以是短距离连接、长距离连接,或短距离和长距离无线电信连接两者的组合。当我们提到“短”和“长”类型的连接时,我们并不意味着指两个设备之间的空间关系。相反,我们通常将短距离和长距离称为不同类别或类型的连接(即,主要连接和次要连接)。短距离连接可以包括,作为示例而非限制,与提供对无线通信网络访问的设备(例如,移动热点)的

在不脱离以下权利要求范围的情况下,可以对所描述的各种部件以及未显示的部件进行许多不同的布置。。描述的本公开的实施例,意图是说明性的而不是限制性的。替代实施例将变得对阅读过本公开的读者显而易见因为阅读过本公开。实现前述的替代手段可以在不脱离下面的权利要求的范围的情况下完成。某些特征和子组合是有用的,并且可以在不参考其他特征和子组合的情况下被采用,并且在权利要求的范围内考虑。

参考本文所述的技术解决方案环境,本文所述的实施例支持本文所述的技术解决方案。技术解决方案环境的部件可以是包括硬件体系架构和软件框架的集成部件,所述软件框架支持技术解决方案系统内的约束计算和/或约束查询功能。硬件体系架构指物理部件及其相互关系,软件框架指提供可以通过设备上的硬件实现的功能的软件。

基于端到端软件的系统可以在系统部件内操作,操作计算机硬件以提供系统功能。在低级,硬件处理器执行从给定处理器的机器语言(也称为机器代码或本机)指令集中选择的指令。处理器识别本机指令并且执行与例如逻辑、控制和存储器操作相关的相应低级功能。以机器代码编写的低级软件可以向更高级别的软件提供更复杂的功能。如本文所用,计算机可执行指令包括任何软件,包括以机器代码编写的低级软件、例如应用软件的更高级别软件以及它们的任何组合。在这方面,系统部件可以管理资源并且为系统功能提供服务。其中任何其它变型和组合都可以与本公开的实施例一起考虑。

举例来说,技术解决方案系统可以包括应用编程接口(API)库,包括例程、数据结构、对象类和变量的规范,可以支持设备的硬件体系架构和技术解决方案系统的软件框架之间的交互。这些API包括技术解决方案系统的配置规范,从而其中的不同部件可以在技术解决方案系统中相互通信,如本文所述。

在确定了本文使用的各种部件,应当理解,在本公开的范围内可以采用任何数量的部件和布置来实现期望的功能。例如,为了概念上的清晰起见,在图中描绘的实施例中的部件用线条示出。还可以实现这些和其他部件的其他布置。例如,虽然一些部件被描绘为单个部件,但在本文中描述的许多元素可以被实现为离散或分布式部件或与其他部件结合,并且以任何合适的组合和位置。一些元素可以被完全省略。此外,本文描述的通过一个或多个实体执行的各种功能可以由硬件、固件和/或软件来执行,如下所述。例如,各种功能可以通过执行存储在存储器中的指令的处理器执行。因此,可以使用其他布置和元素(例如,机器、接口、功能、顺序和功能分组)来补充或替代所示的那些。

在以下段落中描述的实施例可以与一个或多个具体描述的替代方案相结合。特别地,权利要求的实施例可以在替代方案中包含对一个以上其他实施例的引用。权利要求的实施例可以指定权利要求的主题的进一步限制。

本公开的实施例的主题在本文中以具体的方式描述以满足法定要求。然而,描述本身并不旨在限制本专利的范围。相反,发明人已经考虑到,权利要求的主题也可以以其他方式体现,包括不同的步骤或类似于本文中描述的步骤的组合,结合其他现有或未来的技术。此外,尽管术语“步骤”和/或“块”可以在本文中用于表示所采用的方法的不同元素,但这些术语不应被解释为暗示本文公开的其中或各种步骤之间的任何特定顺序,并且除非明确描述了各个步骤的顺序。

为了本公开的目的,单词“包括”与单词“包含”具有相同的广泛含义,单词“访问”包括“接收”、“引用”或“检索”。此外,单词“通信”通过使用本文所述通信介质的基于软件或硬件的总线、接收器或发射器促进的单词“接收”或“传输”具有相同的广泛含义。此外,除非另有相反的指示,例如“一”和“一个”之类的单词包括复数和单数。因此,例如,当存在一个或多个特征时,满足“一个特征”的约束。此外,术语“或”包括连词、非连词和两者(a或b因此包括a或b,以及a和b)。

为了上述详细讨论的目的,本公开的实施例参考分布式计算环境描述的;然而本文描绘的分布式计算环境仅仅是示例性的。部件可以被配置用于执行实施例的新颖方面,其中术语"被配置用于"可以指"被编程为"执行特定任务或使用代码实现特定抽象数据类型。此外,虽然本公开的实施例通常指的是本文描述的技术解决方案环境和示意图,但是可以理解,所描述的技术可以被扩展到其他实施环境文中。

本公开的实施例已经相对于特定实施例进行了描述,在所有方面都是说明性的而不是限制性的。替代实施例对于本公开所属领域的普通技术人员来说将变得显而易见,而不脱离其范围。

从上述内容可以看出,本公开很好地适应于实现上文所述的所有目的和目标以及其它显而易见的并且本结构固有的优点。

可以理解的是,某些特征和子组合是有用的并且可以在不参考其他特征或子组合的情况下被采用。这是由权利要求所考虑的的并且在其范围内。

相关技术
  • 具有接触片的端子、连接器以及连接器装置
  • 一种端子模组、具有端子模组的电连接器及其制造方法
  • 与连接端子电连接的传感器、旋转装置以及车辆
  • 电连接端子及包括电连接端子的电连接装置
技术分类

06120116553697