一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

面向用户体验的路径选择的制作方法

2021-11-06 00:43:00 来源:中国专利 TAG:


1.本文中描述的方面总体涉及计算机联网,诸如网络路径选择、网络状态度量、对计算设备的远程访问和用户输入监控。


背景技术:

2.用于通过网络传送内容的典型协议(例如,超文本传输协议(http))通常是不期望地慢的。这种慢度在长距离上并且在所请求的内容(例如,网页)需要大量请求的情况下和/或在内容本身很大的情况下尤其如此。例如,中国的计算机用户可以访问托管在美国的服务器上的网络应用,使得从服务器检索任何给定元素可能花费300毫秒。在这样的实例中,因为网络应用可以包括大量元素(例如,超文本标记语言(html)代码、级联样式表(css)、图像、视频内容等),所以每个元素可能需要300毫秒的延迟,这意味着用户在访问网络应用时可能体验明显的延迟。
3.远程访问系统(例如,允许用户从远程计算设备访问托管在服务器上的应用的服务器)已经变得越来越流行,特别是随着网络速度和能力的提高。例如,相对弱的计算设备(例如,瘦客户端)上的用户可远程访问在相对强的服务器上执行的应用,并且由此使用该应用,就好像相对弱的计算设备正在执行该应用一样。作为另一实例,用户可以使用远程网络浏览器来访问网页,使得用户到网页的连接涉及至少两跳:经由远程访问协议到执行网络浏览器的服务器的第一跳,以及经由网络浏览器并且经由与服务器不同的协议到托管网页的第二服务器的第二跳。


技术实现要素:

4.下文呈现本文中描述的各个方面的简化概述。本概述不是广泛的概述,并且不旨在标识所需的或关键的元件或者描绘权利要求的范围。以下概述仅以简化形式呈现一些概念,作为以下提供的更详细描述的介绍性序言。
5.如上所述,远程访问场景通常依赖于计算设备(例如,相对弱的计算设备和相对强大的服务器)之间的网络连接的速度和可靠性。但是建立和使用这样的远程访问应用可能是耗时和困难的,特别是对于不熟悉该技术的用户。此外,网络条件和用户需要的改变可能意味着访问内容的正确方法(例如,直接地经由托管在中间计算设备上的远程网络浏览器,或者经由托管在不同中间计算设备上的第二远程网络浏览器)可能改变。
6.为了克服这些限制,并且为了克服在阅读和理解本说明书时将显而易见的其他限制,本文中描述的方面涉及在网络中使用远程访问协议的路径优化。可以接收第一计算设备对第二计算设备上的内容的请求。该请求可以是针对例如托管在第二计算设备上的网页。可以为第一计算设备与第二计算设备之间的一条或多条路径确定诸如等待时间、带宽等的网络状态度量。这样的路径可以包括例如路由器、交换机、中间服务器等。可以确定远程访问协议度量,诸如远程访问客户端与远程访问服务器之间的远程访问协议的等待时间信息。基于网络状态度量和远程访问协议度量,可以确定用户体验度量。这样的用户体验度
量可以包括从第一计算设备与第二计算设备之间的网络中的多条路径确定可以提供优化的用户体验的一条或多条路径。基于网络状态度量、远程访问协议度量和用户体验度量,可以选择路径,并且第一计算设备可以经由该路径访问内容。该路径可以包括使用远程访问协议来访问中间服务器上的应用。例如,该路径可以包括第一计算设备使用远程访问协议来访问在中间计算设备上执行的网络浏览器应用,其中网络浏览器应用被第一计算设备用来访问第二计算设备上的内容。可以接收来自第一计算设备的用户输入数据,并且根据基于这样的用户输入数据执行的用户行为分析,可以确定经由该路径的用户体验较差。基于这样的确定,可以确定较差的用户体验的一个或多个原因,并且可以选择新的路径。
7.受益于以下进一步详细讨论的公开内容,将理解这些和其他的方面。
附图说明
8.通过参考考虑附图的以下描述,可以获得对本文中描述的方面及其优点的更完整的理解,在附图中,相同的附图标记指示相同的特征,并且其中:
9.图1描绘了可以根据本文中描述的一个或多个说明性方面使用的说明性计算机系统架构。
10.图2描绘了可以根据本文中描述的一个或多个说明性方面使用的说明性远程访问系统架构。
11.图3描绘了可以根据本文中描述的一个或多个说明性方面使用的说明性虚拟化(管理程序)系统架构。
12.图4描绘了包括第一计算设备、第二计算设备和中间计算设备的说明性远程访问环境。
13.图5描绘了第一计算设备与第二计算设备之间的三个说明性路径。
14.图6是可相对于第一计算设备和第二计算设备执行的流程图。
15.图7是第一计算设备和第二计算设备的过程流程图。
16.图8是用于路径选择的高级流程图。
17.图9描绘了基于用户输入数据的用户行为分析的过程。
具体实施方式
18.在各种实施例的以下描述中,参考上文标识且形成其一部分的附图,并且在附图中以说明的方式示出其中可以实践本文中描述的方面的各种实施例。应理解,在不脱离本文中描述的范围的情况下,可以利用其他实施例,并且可以进行结构和功能修改。各个方面能够是其他实施例并且能够以各种不同的方式实践或执行。
19.作为对下面更详细描述的主题的一般介绍,本文中描述的方面涉及使用远程访问协议来改进对网络上的内容的访问。计算设备可以被配置成传送诸如网页等内容。计算设备可以附加地和/或替代地被配置成提供对诸如网络浏览器等应用的远程访问,并且这样的应用可以从其他计算设备请求和检索内容。以这种方式,计算设备可以经由远程访问协议使用中间计算设备上的应用来访问第二计算设备上的内容。
20.使用计算设备通过网络访问第二计算设备上的内容的用户可能具有受较差网络条件不利影响的体验。例如,试图访问托管在美国的网页的中国用户可能发现,与两个国家
之间的距离相关联的等待时间可能导致加载网页的不期望的延迟量。在一些情况下,可以通过使用中间连接和/或远程访问协议(例如,远程访问德国的中间计算设备上的网络浏览器,然后使用该网络浏览器来加载前述网页)来改进前述延迟,但是确定使用这样的方法可以改善等待时间并且建立这样的连接可能是非常困难和/或耗时的。此外,即使一种方法(例如,使用远程网络浏览器来访问网页)确实改善了用户体验,但是改变网络条件(例如,网络上较少的流量)可能意味着不同的方法(例如,直接访问网页)可能在稍后的时间导致更好的用户体验。
21.本文中描述的方面涉及网络中的路径优化和使用远程访问协议。通过评价网络状态度量、远程访问协议度量和/或用户体验度量,可以选择多条路径中的一条路径,这改进了对内容的访问。基于关于内容检索的用户输入数据,还可以改进路径选择。附加地,本文中描述的方面可以从用户体验中学习(例如,用户对给定路径的体验是否较差)。因此,在以上实例中,用户可以对内容的访问具有改进的体验,并且不需要手动确定和选择到内容的多条可能路径中的一条。例如,用户可以选择图标来打开网页,并且出于用户体验的原因,经由在中间计算设备上执行的网络浏览器来访问这样的网页,而无需具体决定这样做。
22.应理解,本文中使用的措辞和术语是为了描述的目的,而不应当被认为是限制性的。相反,本文中使用的短语和术语被给予其最广泛的解释和含义。使用“包括”和“包含”及其变体是指涵盖其后列出的项及其等同物以及附加项及其等同物。术语“连接”、“耦合”和类似术语的使用是指包括直接和间接安装、连接、耦合、定位和接合。
23.计算架构
24.计算机软件、硬件和网络可以用在各种不同的系统环境中,包括独立环境、联网环境、远程访问环境(也称为远程桌面)、虚拟化环境和/或基于云的环境等。图1图示了可用于在独立环境和/或联网环境中实现本文中描述的一个或多个说明性方面的系统架构和数据处理设备的一个实例。各种网络节点103、105、107和109可以经由诸如因特网的广域网(wan)101互连。也可以或可替代地使用其他网络,包括专用内联网、公司网络、局域网(lan)、城域网(man)、无线网络、个人网络(pan)等。网络101用于说明的目的,并且可以用更少或附加的计算机网络代替。局域网133可以具有任何已知的lan拓扑中的一个或多个,并且可以使用各种不同的协议中的一个或多个,诸如以太网。设备103、105、107和109以及其他设备(未示出)可以经由双绞线、同轴电缆、光纤、无线电波或其他通信介质连接到网络中的一个或多个。
25.本文中使用并在附图中描绘的术语“网络”不仅指其中远程存储设备经由一个或多个通信路径耦合在一起的系统,而且指有时可以耦合到这样的具有存储能力的系统的独立设备。因此,术语“网络”不仅包括“物理网络”,而且还包括“内容网络”,其包括归属于单个实体的数据,该单个实体驻留在所有物理网络上。
26.这些部件可以包括数据服务器103、网络服务器105和客户端计算机107、109。数据服务器103提供对数据库和控制软件的总体存取、控制和管理,用于执行本文描述的一个或多个示例性方面。数据服务器103可以连接到网络服务器105,用户通过网络服务器105与所请求的数据进行交互并获得所请求的数据。替代地,数据服务器103充当网络服务器本身,并且直接连接到因特网。数据服务器103可以通过局域网133、广域网101(例如,因特网),经由直接或间接连接,或经由某个其他网络连接到网络服务器105。用户可以使用远程计算机
107、109与数据服务器103交互,例如,使用网络浏览器经由网络服务器105所托管的一个或多个外部公开的网站连接到数据服务器103。客户端计算机107、109可以与数据服务器103一起使用以存取存储在其中的数据,或者可以用于其他目的。例如,用户可以从客户端设备107使用本领域中已知的因特网浏览器,或者通过执行通过计算机网络(诸如因特网)与网络服务器105和/或数据服务器103通信的软件应用来访问网络服务器105。
27.服务器和应用可以组合在相同的物理机器上,并保留单独的虚拟或逻辑地址,或者可以驻留在单独的物理机器上。图1仅图示了可以使用的网络架构的一个实例,并且本领域技术人员将理解,所使用的特定网络架构和数据处理设备可以改变,并且对于它们提供的功能是次要的,如本文进一步描述的。例如,由网络服务器105和数据服务器103提供的服务可以组合在单个服务器上。
28.每个部件103、105、107、109可以是任何类型的已知计算机、服务器或数据处理设备。例如,数据服务器103可以包括控制数据服务器103的整体操作的处理器111。数据服务器103还可以包括随机存取存储器(ram)113、只读存储器(rom)115、网络接口117、输入/输出接口119(例如,键盘、鼠标、显示器、打印机等)和存储器121。输入/输出(i/o)119可以包括用于读、写、显示和/或打印数据或文件的各种接口单元和驱动器。存储器121还可以存储用于控制数据处理设备103的整体操作的操作系统软件123、用于指示数据服务器103执行本文中描述的方面的控制逻辑125,以及提供可以或不可以结合本文中描述的方面使用的辅助、支持和/或其他功能的其他应用软件127。控制逻辑125在本文中也可以被称为数据服务器软件125。数据服务器软件125的功能可以指基于编码到控制逻辑125中的规则自动做出的操作或决定、由将输入提供到系统中的用户手动做出的操作或决定,和/或基于用户输入(例如,查询、数据更新等)的自动处理的组合。
29.存储器121还可以存储用于执行本文中描述的一个或多个方面的数据,包括第一数据库129和第二数据库131。在一些实施例中,第一数据库129可以包括第二数据库131(例如,作为单独的表格、报告等)。即,根据系统设计,信息可以存储在单个数据库中,或分离成不同的逻辑数据库、虚拟数据库或物理数据库。设备105、107和109可以具有与关于设备103所描述的相似或不同的架构。本领域技术人员将理解,本文中描述的数据处理设备103(或设备105、107或109)的功能可以跨多个数据处理设备分布,以例如将处理负载跨多个计算机分配,从而基于地理位置、用户访问级别、服务质量(qos)等来隔离交易。
30.一个或多个方面可以体现在计算机可用或可读的数据和/或计算机可执行指令中,诸如体现在由一个或多个计算机或本文中描述的其他设备执行的一个或多个程序模块中。一般而言,程序模块包括例程、程序、对象、部件、数据结构等,其在由计算机或其他设备中的处理器执行时执行特定任务或实现特定抽象数据类型。模块可以用随后被编译用于执行的源代码编程语言来编写,或者可以用诸如(但不限于)超文本标记语言(html)或可扩展标记语言(xml)的脚本语言来编写。计算机可执行指令可以存储在诸如非易失性存储设备的计算机可读介质上。可以使用任何合适的计算机可读存储介质,包括硬盘、cd

rom、光存储设备、磁存储设备和/或它们的任何组合。另外,表示本文中描述的数据或事件的各种传输(非存储)介质可以以穿过诸如金属线、光纤和/或无线传输介质(例如,空气和/或空间)的信号传导介质传播的电磁波的形式在源和目的地之间传送。本文中描述的各个方面可以实现为方法、数据处理系统或计算机程序产品。因此,各种功能可整体或部分地体现在软
件、固件和/或硬件或硬件等效物(诸如集成电路、现场可编程门阵列(fpga)等)中。特定的数据结构可用于更有效地实现本文中描述的一个或多个方面,并且这样的数据结构被认为在本文中描述的计算机可执行指令和计算机可用数据的范围内。
31.进一步参考图2,本文中描述的一个或多个方面可以在远程访问环境中实现。图2描绘了包括可根据本文中描述的一个或多个说明性方面使用的说明性计算环境200中的计算设备201的示例系统架构。计算设备201可以用作单服务器或多服务器桌面虚拟化系统(例如,远程访问或云系统)中的服务器206a,并且可以被配置成为客户端访问设备提供虚拟机。计算设备201可以具有用于控制设备201及其相关部件(包括ram 205、rom 207、输入/输出(i/o)模块209和存储器215)的整体操作的处理器203。
32.i/o模块209可以包括计算设备201的用户可以通过其提供输入的鼠标、小键盘、触摸屏、扫描仪、光学读取器和/或指示笔(或其他输入设备),并且还可以包括用于提供音频输出的扬声器中的一个或多个以及用于提供文本输出、视听输出和/或图形输出的视频显示设备中的一个或多个。软件可以存储在存储器215和/或其他存储装置中,以将指令提供到处理器203,用于将计算设备201配置到专用计算设备中,以便执行本文中描述的各种功能。例如,存储器215可以存储由计算设备201使用的软件,诸如操作系统217、应用程序219和相关联的数据库221。
33.计算设备201可以在支持到诸如终端240(也称为客户端设备)等一个或多个远程计算机的连接的网络环境中操作。终端240可以是包括以上关于计算设备103或201描述的多个或全部元件的个人计算机、移动设备、膝上型计算机、平板计算机或服务器。图2所描绘的网络连接包括局域网(lan)225和广域网(wan)229,但还可以包括其他网络。当在lan联网环境中使用时,计算设备201可以通过网络接口或适配器223连接到lan 225。当在wan联网环境中使用时,计算设备201可以包括调制解调器或其他广域网接口227,其用于在诸如计算机网络230(例如,因特网)等的wan 229上建立通信。将理解,所示的网络连接是说明性的,并且可以使用在计算机之间建立通信链路的其他装置。计算设备201和/或终端240还可以是包括诸如电池、扬声器和天线(未示出)等各种其他部件的移动终端(例如,移动电话、智能手机、个人数字助理(pda)、笔记本等)。
34.本文中描述的方面还可以与众多其他通用或专用计算系统环境或配置一起操作。可适用于本文中描述的方面的其他计算系统、环境和/或配置的实例包括但不限于个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人计算机(pc)、小型计算机、大型计算机、包括以上系统或设备中的任一个的分布式计算环境等。
35.如图2所示,一个或多个客户端设备240可以与一个或多个服务器206a

206n(本文中通常为“服务器206”)通信。在一个实施例中,计算环境200可以包括安装在服务器206与客户端机器240之间的网络电器。网络电器可以管理客户端/服务器连接,并且在一些情况下可以在多个后端服务器206之间负载平衡客户端连接。
36.在一些实施例中,客户端机器240可以被称为单个客户端机器240或单组客户端机器240,而服务器206可以被称为单个服务器206或单组服务器206。在一个实施例中,单个客户端机器240与多于一个的服务器206通信,而在另一个实施例中,单个服务器206与多于一个的客户端机器240通信。在又一实施例中,单个客户端机器240与单个服务器206通信。
37.在一些实施例中,客户端机器240可以由以下非穷举性术语中的任一个来引用:客户端机器;客户端;客户端计算机;客户端设备;客户端计算设备;本地机器;远程机器;客户端节点;终点;或端点节点。在一些实施例中,服务器206可以由以下非穷举性术语中的任何一个来引用:服务器、本地机器;远程机器;服务器群或主机计算设备。
38.在一个实施例中,客户端机器240可以是虚拟机。虚拟机可以是任何虚拟机,而在一些实施例中,虚拟机可以是由类型1或类型2管理程序管理的任何虚拟机,管理程序例如由citrix系统、ibm、vmware或任何其他管理程序开发的管理程序。在一些方面中,虚拟机可以由管理程序管理,而在其他方面中,虚拟机可以由在服务器206上执行的管理程序或在客户端240上执行的管理程序管理。
39.一些实施例包括客户端设备240,其显示由在服务器206或其他远程定位的机器上远程执行的应用生成的应用输出。在这些实施例中,客户端设备240可以执行虚拟机接收机程序或应用以在应用窗口、浏览器或其他输出窗口中显示输出。在一个实例中,应用是桌面,而在其他实例中,应用是生成或呈现桌面的应用。桌面可以包括为其中可集成本地和/或远程应用的操作系统的实例提供用户界面的图形外壳。本文中使用的应用是在操作系统(以及可选地还有桌面)的实例已经被加载之后执行的程序。
40.在一些实施例中,服务器206使用远程呈现协议或其他程序来将数据发送到在客户端上执行的瘦客户端或远程显示应用,以呈现由在服务器206上执行的应用生成的显示输出。瘦客户端或远程显示协议可以是以下非穷举性协议列表中的任何一个:佛罗里达州劳德代尔堡的思杰系统公司(citrix systems,inc.)开发的独立计算架构(ica)协议;或由华盛顿州雷德蒙市的微软(microsoft corporation)公司制造的远程桌面协议(rdp)。
41.远程计算环境可以包括多于一个服务器206a

206n,使得服务器206a

206n例如在云计算环境中在逻辑上一起分组到服务器群206中。服务器群206可以包括在逻辑上分组在一起时地理上分散的服务器206,或在逻辑上分组在一起时彼此邻近定位的服务器206。在一些实施例中,服务器群206内的地理上分散的服务器206a

206n可以使用wan(广域)、man(城域)或lan(局域)通信,其中不同地理区域可以被表征为:不同的大陆;大陆的不同区域;不同的国家;不同的州;不同的城市;不同的校园;不同的房间;或前述地理位置的任何组合。在一些实施例中,服务器群206可以作为单个实体来管理,而在其他实施例中,服务器群206可以包括多个服务器群。
42.在一些实施例中,服务器群可以包括执行基本上类似类型的操作系统平台(例如,windows、unix、linux、ios、android、symbian等)的服务器206。在其他实施例中,服务器群206可以包括执行第一类型的操作系统平台的一个或多个服务器的第一群组和执行第二类型的操作系统平台的一个或多个服务器的第二群组。
43.服务器206可以根据需要被配置为任何类型的服务器,例如文件服务器、应用服务器、网络服务器、代理服务器、电器、网络电器、网关、应用网关、网关服务器、虚拟化服务器、部署服务器、安全套接字层(ssl)vpn服务器、防火墙、网络服务器、应用服务器,或者被配置为主应用服务器、执行活动目录的服务器或执行提供防火墙功能、应用功能或负载平衡功能的应用加速程序的服务器。也可以使用其他服务器类型。
44.一些实施例包括第一服务器206a,其接收来自客户机240的请求、将该请求转发到第二服务器206b(未示出),并用来自第二服务器206b(未示出)的响应来响应由客户机240
生成的请求。第一服务器206a可以获取客户端机器240可用的应用的枚举以及与托管应用的枚举内标识的应用的应用服务器206相关联的地址信息。然后,第一服务器206a可以使用网络接口呈现对客户请求的响应,并且直接与客户端240通信以向客户端240提供对标识后的应用的访问。一个或多个客户端240和/或一个或多个服务器206可以通过网络230(例如网络101)传输数据。
45.图3示出了说明性桌面虚拟化系统的高级架构。如图所示,桌面虚拟化系统可以是单服务器或多服务器系统,或者云系统,该系统包括被配置成将虚拟桌面和/或虚拟应用的至少一个虚拟化服务器301提供到一个或多个客户端访问设备240。如本文所用的,桌面是指其中可以托管和/或执行一个或多个应用的图形环境或空间。桌面可以包括为其中可集成本地和/或远程应用的操作系统的实例提供用户界面的图形外壳。应用可以包括在操作系统(并且可选地还有桌面)的实例被加载之后执行的程序。操作系统的每个实例可以是物理的(例如,每个设备一个操作系统)或虚拟的(例如,在单个设备上运行的os的许多实例)。每个应用可以在本地设备上执行,或者在位于远处的设备(例如远程的)上执行。
46.计算机设备可以被配置为虚拟化环境(例如,单服务器、多服务器或云计算环境)中的虚拟化服务器。图3中所示的虚拟化服务器301可以被部署为图2中所示的服务器206的一个或多个实施例或由其他已知的计算设备来部署和/或实现。包括在虚拟化服务器301中的是硬件层,该硬件层可以包括一个或多个物理盘304、一个或多个物理设备306、一个或多个物理处理器308以及一个或多个物理存储器316。在一些实施例中,固件312可以存储在物理存储器316中的存储器元件内,并且可以由物理处理器308中的一个或多个执行。虚拟化服务器301还可以包括操作系统314,该操作系统314可以存储在物理存储器316中的存储器元件中,并且由物理处理器308中的一个或多个执行。此外,管理程序302可以被存储在物理存储器316中的存储器元件中,并且可以由物理处理器308中的一个或多个执行。
47.在物理处理器308中的一个或多个上执行的可以是虚拟机332a

c(通常为332)中的一个或多个。每个虚拟机332可以具有虚拟磁盘326a

c和虚拟处理器328a

c。在一些实施例中,第一虚拟机332a可以使用虚拟处理器328a来执行包括工具栈324的控制程序320。控制程序320可被称为控制虚拟机、dom0、domain 0或用于系统管理和/或控制的其他虚拟机。在一些实施例中,一个或多个虚拟机332b

c可以使用虚拟处理器328b

c来执行客户操作系统330a

b。
48.虚拟化服务器301可以包括具有与虚拟化服务器301通信的一个或多个硬件的硬件层310。在一些实施例中,硬件层310可以包括一个或多个物理盘304、一个或多个物理设备306、一个或多个物理处理器308以及一个或多个物理存储器316。物理部件304、306、308和316可以包括例如以上描述的部件中的任一个。物理设备306可以包括例如网络接口卡、视频卡、键盘、鼠标、输入设备、监视器、显示设备、扬声器、光驱、存储设备、通用串行总线连接、打印机、扫描仪、网络元件(例如,路由器、防火墙、网络地址转换器、负载平衡器、虚拟专用网络(vpn)网关、动态主机配置协议(dhcp)路由器等),或连接到虚拟化服务器301或与虚拟化服务器301通信的任何设备。硬件层310中的物理存储器316可以包括任何类型的存储器。物理存储器316可以存储数据,并且在一些实施例中可以存储一个或多个程序或一组或多组可执行指令。图3图示了其中固件312存储在虚拟化服务器301的物理存储器316内的实施例。存储在物理存储器316中的程序或可执行指令可以由虚拟化服务器301的处理器308
中的一个或多个执行。
49.虚拟化服务器301还可以包括管理程序302。在一些实施例中,管理程序302可以是由虚拟化服务器301上的处理器308执行以创建和管理任何数量的虚拟机332的程序。管理程序302可以被称为虚拟机监视器或平台虚拟化软件。在一些实施例中,管理程序302可以是监视在计算机器上执行的虚拟机的可执行指令和硬件的任何组合。管理程序302可以是类型2管理程序,其中管理程序在虚拟化服务器301上执行的操作系统314内执行。虚拟机然后可以在管理程序302之上的级别执行。在一些实施例中,类型2管理程序可以在用户的操作系统的背景下执行,使得类型2管理程序与用户的操作系统交互。在其他实施例中,虚拟化环境中的一个或多个虚拟化服务器301可以替代地包括类型1管理程序(未示出)。类型1管理程序可以通过直接存取硬件层310内的硬件和资源而在虚拟化服务器301上执行。即,当类型2管理程序302通过主机操作系统314访问系统资源时,如图所示,类型1管理程序可以直接访问所有系统资源而无需主机操作系统314。类型1管理程序可以直接在虚拟化服务器301的物理处理器308中的一个或多个上执行,并且可以包括存储在物理存储器316中的程序数据。
50.在一些实施例中,管理程序302可以以模拟具有对系统资源的直接存取的操作系统330或控制程序320的任何方式向在虚拟机332上执行的操作系统330或控制程序320提供虚拟资源。系统资源可以包括但不限于物理设备306、物理磁盘304、物理处理器308、物理存储器316,以及虚拟化服务器301的硬件层310中包括的任何其他部件。管理程序302可用于仿真虚拟硬件、分区物理硬件、虚拟化物理硬件和/或执行提供对计算环境的存取的虚拟机。在其他实施例中,管理程序302可以控制在虚拟化服务器301上执行的虚拟机332的处理器调度和存储器分区。管理程序302可以包括由加利福尼亚州帕洛阿尔托市的威睿公司(vmware,inc.)制造的管理程序;xenproject管理程序,其是由开源xenproject.org团体监督开发的开源产品;由微软或其他公司提供的hyperv、virtualserver或虚拟pc管理程序。在一些实施例中,虚拟化服务器301可以执行管理程序302,该管理程序302创建虚拟机平台,客户操作系统可以在虚拟机平台上执行。在这些实施例中,虚拟化服务器301可以被称为主机服务器。这样的虚拟化服务器的一个实例是由佛罗里达州劳德代尔堡的思杰系统公司提供的xenserver。
51.管理程序302可以创建客户操作系统330在其中执行的一个或多个虚拟机332b

c(通常为332)。在一些实施例中,管理程序302可以加载虚拟机映像以创建虚拟机332。在其他实施例中,管理程序302可以执行虚拟机332内的客户操作系统330。在还一些实施例中,虚拟机332可以执行客户操作系统330。
52.除了创建虚拟机332之外,管理程序302还可以控制至少一个虚拟机332的执行。在其他实施例中,管理程序302可以呈现具有由虚拟化服务器301提供的至少一个硬件资源(例如,硬件层310内可用的任何硬件资源)的抽象的至少一个虚拟机332。在其他实施例中,管理程序302可以控制虚拟机332访问虚拟化服务器301中可用的物理处理器308的方式。控制对物理处理器308的访问可以包括确定虚拟机332是否应当访问处理器308,以及如何将物理处理器能力呈现给虚拟机332。
53.如图3所示,虚拟化服务器301可以托管或执行一个或多个虚拟机332。虚拟机332是一组可执行指令,该组可执行指令在由处理器308执行时可以模仿物理计算机的操作,使
得虚拟机332可以执行与物理计算设备非常相似的程序和过程。虽然图3图示了虚拟化服务器301托管三个虚拟机332的实施例,但是在其他实施例中,虚拟化服务器301可以托管任何数量的虚拟机332。在一些实施例中,管理程序302可以将该虚拟机332可用的物理硬件、存储器、处理器和其他系统资源的唯一虚拟视图提供到每个虚拟机332。在一些实施例中,唯一虚拟视图可以基于以下各项中的一项或多项:虚拟机许可、策略引擎对一个或多个虚拟机标识符的应用、访问虚拟机的用户、在虚拟机上执行的应用、虚拟机所访问的网络或任何其他期望的准则。例如,管理程序302可以创建一个或多个不安全虚拟机332和一个或多个安全虚拟机332。可以防止不安全虚拟机332存取可允许安全虚拟机332存取的资源、硬件、存储器位置和程序。在其他实施例中,管理程序302可以向每个虚拟机332提供物理硬件、存储器、处理器和虚拟机332可用的其他系统资源的基本相似的虚拟视图。
54.每个虚拟机332可以包括虚拟磁盘326a

c(通常为326)和虚拟处理器328a

c(通常为328)。在一些实施例中,虚拟磁盘326是虚拟化服务器301的一个或多个物理磁盘304或虚拟化服务器301的一个或多个物理磁盘304的一部分的虚拟化视图。物理磁盘304的虚拟化视图可以由管理程序302生成、提供和管理。在一些实施例中,管理程序302向每个虚拟机332提供物理磁盘304的唯一视图。因此,在这些实施例中,当与其他虚拟磁盘326相比时,每个虚拟机332中包括的特定虚拟磁盘326可以是唯一的。
55.虚拟处理器328可以是虚拟化服务器301的一个或多个物理处理器308的虚拟化视图。在一些实施例中,物理处理器308的虚拟化视图可以由管理程序302生成、提供和管理。在一些实施例中,虚拟处理器328具有至少一个物理处理器308的基本上所有相同的特性。在其他实施例中,虚拟处理器308提供物理处理器308的修改视图,使得虚拟处理器328的特性中的至少一些与对应的物理处理器308的特性不同。
56.内容的中间检索
57.图4示出了包括第一计算设备401、第二计算设备402和中间计算设备403的网络101中的远程访问环境。第一计算设备401、第二计算设备402和中间计算设备403可以是与计算设备201相同或相似的计算设备。例如,第一计算设备401可以是膝上型计算机,而第二计算设备402和中间计算设备403可以是服务器。第一计算设备401、第二计算设备402和中间计算设备403可以通过网络101连接。网络101上的通信可以经由一个或多个协议,诸如http(例如,http3,也称为“quic”)、传输控制协议(tcp)、用户数据报协议(udp)等,包括它们的组合。网络101可以包括各种交换机、路由器、其他计算设备等,但是为了简单起见没有示出这些元件。
58.第二计算设备402可以存储内容404,内容404可以是例如网页、应用等。诸如第一计算设备401的计算设备可以被配置成从第二计算设备402请求内容404。第二计算设备402可以被配置成将内容404发送到一个或多个计算设备,诸如第一计算设备401。这样的通信可以经由诸如服务器操作系统、网络浏览器等的应用。例如,第一计算设备401可以使用网络浏览器来通过网络101访问由在第二计算设备402上执行的服务器应用所托管的内容404。
59.第一计算设备401可以经由中间计算设备403访问第二计算设备402上的内容404。诸如中间计算设备403的中间计算设备可以是计算设备,该计算设备被配置成提供对在中间计算设备上执行的诸如办公套件应用、网络浏览器等的应用的远程访问。中间计算设备
403可以包括或使用诸如虚拟化服务器301的虚拟化服务器。这样的远程访问可以经由诸如ica协议的远程访问协议。通过这样的远程访问协议提供的应用可用于访问其他计算设备上的内容,诸如第二计算设备402上的内容404。
60.诸如第一计算设备401和第二计算设备402的两个或多个计算设备之间的每一跳可以与诸如等待时间、往返时间(rtt)、带宽、包丢失、网页加载时间等的网络状态度量相关联。如本文所用的,跳可以指发送和接收计算设备之间的连接的一部分,使得例如第一计算设备401与中间计算设备403之间通过第一协议的传输可以包括第一跳,而中间计算设备403与第二计算设备402之间的传输可以包括第二跳。这样的网络状态度量可以与传输延迟(例如,经由导线传输信号所需的时间)、处理延迟(例如,与计算设备中的网络接口卡相关联的延迟)、路由延迟(例如,不同网络之间的包传输)、物理限制(例如,特定导线每秒仅能够传输如此多的包)等相关联。例如,第一计算设备401与第二计算设备402之间的直接连接405a可以与300毫秒的等待时间相关联。第一计算设备与中间计算设备403之间的第一中间连接405b可以与300毫秒的等待时间相关联。中间计算设备403与第二计算设备402之间的第二中间连接405c可以与50毫秒的等待时间相关联。第一中间连接405b可以经由远程访问协议(例如,ica协议),并且第二中间连接405c可以经由http3。虽然经由直接连接405a的等待时间可以小于与第一中间连接405b和第二中间连接405c相关联的等待时间,但是与直接连接405a相比,用户可以对第一中间连接405b和第二中间连接405c具有更好的体验。例如,因为由远程访问协议通过第一中间连接405b传输的视频可以被配置成减轻不期望的等待时间的影响,所以用户可以将经由第一中间连接405b和第二中间连接405c的连接感知为与直接连接405a相比更灵活。作为另一实例,内容404可以是具有大量元素的网页,并且中间计算设备403与第二计算设备402之间的第二中间连接405c可能因为与较低的等待时间相关联而使得网页的所有各种元素看起来更快地加载,尽管第一中间连接405b和第二中间连接405c具有比直接连接405a更大的总等待时间。
61.图5示出了第一计算设备401与第二计算设备402之间的三条路径。尽管在图5中仅示出了四个计算设备,但是在第一计算设备401与第二计算设备402之间的通信中可以涉及无限数量的计算设备(例如,交换机、路由器等)。例如,第一路径501在图5中被描绘为从第一计算设备401到第二计算设备402的直线;然而,这样的路径可能涉及许多交换机、路由器等,包括协议的改变。
62.第一路径501可以包括与300ms的第一等待时间506a相关联的单跳http3连接504a。第一路径501可以被称为直接路径,因为它不包括经由中间计算设备对内容的远程访问。
63.第二路径502可以包括两个跳。第二路径502的第一跳,即远程访问连接504b可以将第一计算设备401连接到中间计算设备403。第二路径502的第二跳,即http连接504c可以将中间计算设备403连接到第二计算设备402。远程访问连接504b可以与300毫秒的第二等待时间506b相关联,并且http连接504c可以与50毫秒的第三等待时间506c相关联。
64.第三路径503可以包括三跳。第三路径503的第一跳,即远程访问连接504d可以将第一计算设备401连接到第二中间计算设备505。第三路径503的第二跳,即专有连接504e可以将第二中间计算设备505连接到中间计算设备403。第三路径503的第三跳,即http连接504f可以将中间计算设备403连接到第二计算设备402。远程访问连接504d可以与150毫秒
的第四等待时间506d相关联,专有连接504e可以与200毫秒的第五等待时间506e相关联,并且http连接504f可以与50毫秒的第三等待时间506c相关联。
65.通过使用远程访问连接可以改进用户体验。例如,第一计算设备401的用户可以通过经由远程访问连接504b远程访问中间计算设备403上的网络浏览器并且经由http连接504c将内容加载到远程浏览器中,而不是经由http3连接504a直接检索内容,来将内容加载到第二计算设备402上并且具有更好的用户体验。换句话说,如上所述,与直接检索这样的内容相比,用户可以具有经由中间计算设备(例如,中间计算设备403)加载内容的更好的用户体验。例如,经由第一路径501传输的包可能导致跨不同网络的相对较差的服务质量(qos)处理,而经由第三路径503传输的分组可能接收到相对较好质量的qos处理。作为另一实例,远程访问连接504b可以被配置成减轻第二等待时间506b的影响,使得尽管第二等待时间506b和第三等待时间506c的总和大于第一等待时间506a,用户仍可以感知到来自第二计算设备402的内容加载更快。
66.图5中所示的等待时间值可能受到各种因素的影响,包括计算设备的位置、计算设备的处理和传输速度、计算设备之间的连接的物理性质等。例如,与第一路径501相比,第二路径502的等待时间改进可以部分地实现,因为远程访问连接504b在某些网络上可以用更高的qos来处理,因为第二路径502中的路由器/交换机比第一路径501上的路由器/交换机更快和/或更强大,因为沿着第二路径502比沿着第一路径501的计算设备可以被分配有更多的带宽,等等。
67.路径选择
68.图6是可以关于第一计算设备401和第二计算设备402执行的流程图。图6所示的所有或一些步骤可以由第一计算设备401、第二计算设备402、中间计算设备403和/或管理性计算设备来执行。例如,图6所示的所有或一些步骤可以由中间计算设备403执行,使得它可以使第一计算设备401通过它连接到第二计算设备402。
69.在步骤601中,可以接收或以其他方式传送来自请求计算设备的对内容(例如,由第二计算设备402存储的内容404)的请求。附加地和/或替代地,步骤601可以包括预测这样的对内容的请求可以是可能的(例如,确定计算设备401的用户已经执行了与第二计算设备402连接所需的认证步骤)和/或以其他方式确定对内容的请求的存在。例如,对内容的请求可以是计算设备的用户点击与该内容相关联的图标和/或相似的链接。对内容的请求可以源自托管内容的计算设备(例如,第二计算设备402),使得对内容的请求可以包括例如第二计算设备402希望将内容传输到第一计算设备401的指示。该请求可以经由一个或多个中间计算设备来接收,使得例如对内容的请求可以经由在远程访问环境中执行的应用来接收(例如,如图4所示)。该请求可以通过例如确定用户悬停在与该内容相关联的图标、链接或类似的用户界面元素上来发起。该请求可以由登录到诸如远程访问服务的服务中的用户发起。该请求可以基于用户对期望内容的手动指示:例如,用户可以使用应用指示用户定期使用某些远程应用。
70.在步骤602中,可以确定网络状态度量。诸如网络状态度量的度量可以提供关于一条或多条路径(包括这样的路径的部分)的信息,并且这样的度量可用于在多条可用路径中选择一条路径。例如,路径的正网络状态度量(例如,高带宽、低等待时间)可以鼓励使用该路径来检索内容。网络状态度量可以与网络(例如,网络101)中的一条或多条路径(例如,第
一路径501、第二路径502和/或第三路径503)相对应。可以为多条路径(包括一条或多条路径中的跳)确定网络状态度量。例如,网络状态度量可以包括第一计算设备401与中间计算设备403之间的一条或多条路径中的每一跳的带宽、rtt和/或等待时间信息。作为另一实例,可以针对网络中的每一跳、网络中的跳(例如,被预测用于连接第一计算设备401和第二计算设备402的那些)的子集等收集网络状态度量。可以为诸如http、http3等的各种协议确定网络状态度量,使得例如可以为http3和路径中相同跳上的http确定等待时间。网络状态度量可以基于与请求计算设备相关联的信息,诸如请求计算设备的位置、请求计算设备的互联网协议(ip)地址等。
71.在步骤603中,可以确定远程访问协议度量。远程访问协议度量可以包括与网络状态度量相同或相似但关于通过远程访问协议对应用的远程访问的度量。例如,经由第一协议(例如,http3)的包可以与200毫秒的等待时间相关联,而与远程访问协议(例如,ica)相关联的分组可以与100毫秒的等待时间相关联。等待时间的差异可能涉及与每个协议相关联的不同处理/传输要求。这样,远程访问协议度量可以与使用远程访问协议在链路之间进行的等待时间、带宽或类似测量相对应。远程访问协议度量还可包括与对应用的远程访问相关联的其他测量,诸如使用远程访问协议传输到计算设备以访问应用的每秒帧的视频、执行远程访问的应用的计算设备的cpu负载和/或可用存储器等。这样的远程访问协议度量可以由例如系统管理程序(诸如管理程序302)来确定。
72.在步骤604中,可以为一条或多条路径确定用户体验度量。用户体验度量可以是用户对通过网络(例如,网络101)提供的内容(例如,内容404)的体验的量化。用户体验度量可以包括与一条或多条路径相关联的网络状态度量和远程访问协议度量的加权形式,如由这样的度量对于用户体验的相对重要性所加权的。例如,因为与检索网页的元素时的滞后相比,用户可以更容易地注意到远程访问环境中的滞后,所以远程访问协议度量可以被加权为比网络状态度量更重要,使得低等待时间对于传送远程访问协议信息(例如,与远程应用相对应的视频和/或音频)的路径与传送内容的路径(例如,向远程应用传送http内容的路径)相比可能更重要。如下所述,特别是关于图7和图9,可以基于历史用户行为来确定用户体验度量,使得具有各种路径的历史用户体验可以影响如何确定用户体验度量。
73.路径的用户体验度量中的一个可以包括与该路径相关联的网络状态度量和/或远程访问协议度量的加权总和。例如,在网络状态度量和远程访问协议度量包括等待时间测量的情况下,可以使用下式找到用户体验度量,其中u
p
是路径的用户体验度量,w是唯一加权值,r是远程访问协议等待时间,并且n是网络状态等待时间:
[0074][0075]
可以基于给定网络状态度量和/或远程访问协议度量对用户体验的相对影响来确定诸如以上等式中的w的加权值。例如,相对较高的远程访问协议等待时间可能是不期望的,因为用户可以更容易地注意到该等待时间(例如,通过使用第一计算设备401检测鼠标移动中的延迟以及从中间计算设备403接收的视频流中的对应的鼠标移动)。作为另一实例,相反,相对较高的网络状态度量可能是更允许的,其中等待时间将对应于不需要立即加载的内容的延迟检索(例如,直到用户查看其他内容十秒才显示的内容)。
[0076]
可以例如通过机器学习算法基于用户体验和/或用户行为的历史来动态地调整诸如w的加权值。如果某些网络状态度量和/或远程访问协议度量与较差的用户体验和/或不期望的用户行为(例如,用户停止访问内容、尝试重新连接到内容、在不与内容接合的情况下空转地四处移动他们的鼠标等的增加的可能性)相关联,则这样的网络状态度量和/或远程访问协议度量可以被高度加权。这样,用户体验度量可以随时间更准确地反映特定路径和/或度量相对于用户体验的重要性。
[0077]
用户体验度量可以被再现为与特定路径或路径的一部分是否具有令人满意的用户体验相对应的值。例如,s型变换可以应用于以上提供u
p
的等式,使得函数范围从0到1,其中1是令人满意的,0是不令人满意的,并且v是变量,该变量可以被修改以定义u的值的范围是令人满意的或不令人满意的:
[0078][0079]
可以建立一个或多个阈值,其定义好的用户体验与坏的用户体验。以上等式中的值y可以输出从0到1的范围内的值,使得当z接近负无穷大时y接近1,当z接近0时y接近1/2,并且当z接近无穷大时y接近0。值可以这样设置:y<0.5可指示不可接受的用户体验,并且y≥0.5可指示可接受的用户体验。作为另一实例,可修改以上y的等式中的常数v,使得y=0.5是最小可接受用户体验,使得低于或等于y=0.5的值指示不可接受的用户体验,并且高于y=0.5的值指示可接受的用户体验。作为另一实例,以上等式中的u的预定值可以被确定为最小可接受等待时间,使得大于该最小可接受等待时间的任何等待时间可指示不可接受的用户体验。以上函数可以被称为s型函数和/或逻辑函数。
[0080]
在步骤605中,基于网络状态度量,远程访问协议度量和/或用户体验度量,可以选择路径。该路径可以选自例如第一计算设备401与第二计算设备402之间的多条路径。例如,基于网络状态度量,远程访问协议度量和/或用户体验度量,可以确定网络状态计算,其包括对多条路径中的每一条路径的用户体验的估计。选择的路径不必是具有最低等待时间和/或最高带宽的路径,并且可以包括与最高用户体验确定相关联的路径。例如,如果对用户体验更重要的路径部分(例如,第一计算设备401和中间计算设备403之间的路径)与其他路径相比仍然更快,则可以选择相对较慢的路径。作为另一实例,步骤605可以包括对多条路径作出用户体验确定,并从这些路径中选择具有最佳用户体验确定的路径。
[0081]
选择的路径可以用于相同或不同的会话、用户的群组、计算设备的群组等。用户可以在一个或多个会话中访问内容,一个或多个会话可以是与用户访问内容的不同实例相对应的离散时间段。因此,第一会话的选择的路径(例如,在周一访问给定内容)可以与第二会话的选择的路径(例如,在周二访问相同内容)不同。例如,第一计算设备401可能已经正在从第二计算设备402接收第一内容,并且选择的路径可能用于接收第二内容。作为另一实例,第一计算设备401可以经由第一路径从第二计算设备402接收内容,并且选择的路径可以被存储在存储器中以供在第一计算设备401在不同会话中从第二计算设备402请求第二内容时使用。选择的路径可用于预定群组中的所有用户和/或所有计算设备。例如,可以选择并且存储该路径以供位于中国的从位于加拿大的计算设备请求内容的所有计算设备使用。作为另一实例,可以为与订阅服务的特定层相关联的所有用户选择路径。作为另一实
例,可以为办公室中的所有用户选择路径。
[0082]
在步骤606中,请求计算设备可以经由在步骤605中选择的路径连接到内容。使得连接可以包括将连接到中间计算设备的指令传输到计算设备,和/或可以包括对于中间计算设备的将对应用的远程访问提供到计算设备的指令。例如,通过向第一计算设备401发送连接到包括选择的路径中的第一跳的特定服务器的指令,第一计算设备401可以经由该路径连接到第二计算设备402。作为另一实例,可以创建ica文件,使得当该文件被第一计算设备401打开时,第一计算设备401经由远程访问协议沿着选择的路径与中间计算设备建立连接。
[0083]
经由605中选择的路径将请求计算设备连接到内容可以包括在请求计算设备上呈现和/或修改一个或多个用户界面元素。例如,第一计算设备401可以示出多个图标,一个图标对应于内容404,并且可修改这样的图标,使得与该图标的交互(例如,点击、悬停)导致经由在步骤605中选择的路径来访问内容404。以这种方式,请求计算设备的用户不必知道正被选择的路径。这对于使对内容的访问看起来无缝和/或在期望内容的用户不是特别精通技术的环境中可能是有利的。
[0084]
在步骤607中,可以接收与对内容的访问相关联的用户输入数据。这样的用户输入数据可以包括关于用户移动鼠标、在键盘上键入和/或以其他方式与所请求的内容接合的信息。这样的用户输入数据可以经由诸如中间计算设备403的中间计算设备来接收。例如,在中间计算设备403上执行的使得中间计算设备403能够向第一计算设备401提供对应用的远程访问的软件也可以从第一计算设备401接收输入数据。这样的用户输入数据可以是任何格式,并且可以是概要数据(例如,每分钟的点击、用户的鼠标没有移动的时间段的指示等)。
[0085]
在步骤608中,可以执行用户行为分析。用户关于内容的行为可以反映他们对内容的访问是否不令人满意。例如,如果内容加载太慢,则用户可以以不在场的模式四处移动鼠标,可以访问与跟内容相关联的窗口不同的窗口,可以在预定时间段内不提供任何键盘输入等。因此,用户行为分析可以提供这样的指示:新的路径选择可能是期望的以改进用户对内容的体验。用户行为分析可以包括分析可用数据(诸如用户输入数据)以确定用户如何与请求的内容交互。在用户在第一时间与内容的第一部分交互之后,用户可能因为例如内容加载太慢和/或难以交互而在第二时间不与内容的相同或不同部分交互。例如,用户输入数据可以指示:先前正与内容交互的用户现在在不点击或使用鼠标轮的情况下空转地移动他们的鼠标,自用户将任何东西键入他们的键盘或点击鼠标以来已经过了很长的时间,和/或用户试图重新打开和/或关闭与中间计算设备的会话的地方。这样的用户行为可以指示例如用户对内容的体验较差,并且可能需要检索内容的另一路径来改进用户的体验。附加地和/或替代地,可以基于网络状态度量和/或远程访问协议度量来执行用户行为分析。例如,如果网络状态度量指示数据已经被下载了预定的时间段(例如,用户已经尝试经由相同的路径下载相同的内容长于5分钟),并且如果用户输入数据表明用户仍然是活动的,则用户可能不消费内容并且因此具有较差的用户体验。
[0086]
因为用户行为可以是与内容检索无关的大量因素的结果,所以用户行为分析可以考虑多个因素,并且可以被配置成随时间学习多个因素中的哪一个指示与经由给定路径的内容检索有关的问题。例如,基于学习到用户具有在访问网站时空转地移动鼠标的习惯,用
户行为分析可以被配置成忽略和/或不理会这样的鼠标移动。作为另一实例,用户的内容可以具有与鼠标点击相关联的区域(例如,网页上的链接),使得这样的区域中的鼠标点击可以与内容访问相关联,而这样的区域之外的鼠标点击可指示内容访问的问题。用户行为分析可以附加地和/或替代地基于检索的内容。例如,可以随着时间学习到,交互式网站(例如,基于浏览器的游戏)的用户输入可能是常见的,使得用户输入数据的缺失可以指示内容访问问题,而静态网站(例如,新闻文章)的用户输入数据可能相对较不常见。
[0087]
在步骤609中,确定在步骤608中执行的用户行为分析是否表明较差的用户体验。如果没有,则在步骤611中提供内容,并且流程图结束。如果是,则流程图进行到步骤610。在步骤610中,可以确定在步骤608中分析的用户行为的一个或多个原因(例如,较差的用户体验)。如果在步骤608中用户行为表明连接不良,则系统确定用于传送内容的路径的哪些部分可能有故障。例如,路径中的特定跳(例如,中间计算设备403与第二计算设备402之间的跳)可能是不期望地慢的,从而使得用户厌烦不规律地四处移动他们的鼠标。这样的原因稍后可用于确定检索所请求内容的不同路径。例如,这样的原因可用于训练在步骤604中使用的机器学习算法以确定用户体验度量,使得将来的用户体验度量基于具有各种路径的历史用户体验。
[0088]
在步骤610中确定连接不良的一个或多个原因之后,可以通过返回到步骤602来执行路径重新选则。这样,基于确定用户经由特定路径检索内容的体验较差,可以重新选择检索这样的内容的路径。
[0089]
作为图7中所描绘的过程的实例,第一计算设备可以从第二计算设备(例如,诸如智能手机的移动设备)接收对存储在第一计算设备上的内容的请求。例如,第二计算设备可以请求存储在第一计算设备上的网页。可以确定第一计算设备与第二计算设备之间的第一连接的第一状态。可以确定第一计算设备与第二计算设备之间的第二连接的第二状态。第一连接可以被配置成经由第一协议(例如,直接地,并且经由http)将内容从第一计算设备传送到第二计算设备。第二连接可以不同于第一连接,可以包括至少一个中间计算设备,并且可以被配置成经由第二协议(例如,使用远程访问协议)将内容从第一计算设备传送到第二计算设备。该至少一个中间计算设备可以被配置成(例如,经由第二协议)传送与包括该内容的应用相对应的视频(例如,包括显示所请求的网页的网络浏览器的视频)。确定这样的状态可以包括确定与连接中的设备(诸如第一计算设备、第二计算设备和/或至少一个中间计算设备)相关联的多个等待时间值,以及基于多个等待时间值来确定连接的预计等待时间(例如,通过基于用户体验度量的历史来加权多个等待时间值)。基于第一状态和第二状态的比较,可以选择第一连接和第二连接中的一个。选择的连接不必是具有最小等待时间(例如,最小预计等待时间)的连接,而可以是与高级用户体验度量相关联的连接。例如,可以确定用户体验度量,并且可以基于该用户体验度量来选择连接,即使该连接与比另一连接更高的等待时间相关联。选择的连接可用于将内容从第一计算设备提供到第二计算设备,由此可避免与未选择的连接相关联的延迟。基于从第二计算设备接收的用户输入数据,可以确定用户行为的指示,并且如果用户行为指示不令人满意的网络条件,则可以选择第三连接,和/或可以选择未选择的连接。
[0090]
图7示出了关于第一计算设备401和第二计算设备402的过程流程图。图7分为四个阶段:数据输入阶段701、连接状态模型阶段702、网络状态计算阶段703和输出阶段704。图7
所示的所有或一些过程和/或步骤可以由第一计算设备401、第二计算设备402、中间计算设备403和/或管理性计算设备来执行。图7所示的过程流程图通常与图6所示的步骤相对应。例如,关于数据输入阶段701和连接状态模型阶段702描述的过程可以与关于例如步骤602、步骤603和步骤604描述的过程相同或相似。作为另一实例,关于网络状态计算阶段703和输出阶段704描述的过程可以与关于例如步骤605和步骤606描述的过程相同或相似。
[0091]
在数据输入阶段701中,网络状态度量和远程访问协议度量705可以在步骤706中被加权,以变成用户体验度量707。这样的度量然后可以前进到连接状态模型阶段702。
[0092]
在连接状态模型阶段702中,网络状态度量和远程访问协议度量705和/或用户体验度量707可以由连接状态模型708来评价。连接状态模型708可用于基于用户行为分析结果715来训练(例如,加权和/或以其他方式修改)网络状态度量、远程访问协议度量和/或用户体验度量,并且由此可以强调这样的度量中的哪些与用户体验有关。这样,连接状态模型708在步骤709中更新这样的度量。例如,基于确定特定网络状态度量(例如,特定跳的带宽)对于用户体验不是特别重要,连接状态模型708可以以相对于其他网络状态度量对该特定网络状态度量不理会的方式对该特定网络状态度量进行加权。这样,连接状态模型阶段702可用于基于例如给定特定网络条件的用户体验历史来修改在数据输入阶段701中接收的数据。作为另一实例,基于用户体验的历史,可以更新用户体验度量707的权重以将远程访问协议的等待时间优先于其他协议。在步骤709中更新这样的度量之后,网络状态度量和远程访问协议度量705、用户体验度量707和/或任何其他数据可以前进到网络状态计算阶段703。
[0093]
在网络状态计算阶段703中,网络状态计算710可以使用来自连接状态模型阶段702的度量来确定跨越例如第一计算设备401与第二计算设备402之间可用的一条或多条路径的预计用户体验。这样的预计的用户体验被指示为对一条或多条路径711的用户体验确定。网络状态计算710可以包括使用从连接状态模型阶段702接收的度量来基于多个可用路径的可能用户体验对其进行排名。例如,第一计算设备的用户可能有三条路径(例如,图5中描绘的路径)可用,并且网络状态计算710可以包括使用来自数据输入阶段701的度量来确定每条路径的基于度量的排名,所述度量在步骤706中被加权和/或由连接状态模型708修改。这样的排名例如可以是多条可用路径中的每条路径的预计用户体验(例如,从最佳到最差)。这样,作为结果的分析,对一条或多条路径711的用户体验确定可以包括例如基于其预计的用户体验对路径的排名。一条或多条路径711的用户体验然后可以前进到输出阶段704。
[0094]
在输出阶段704中,可以执行路径选择712。例如,如果一条或多条路径711的用户体验确定是基于其可能的用户体验的多个路径的排名,则可以选择排名最高的路径。该过程然后可以返回到数据输入阶段701,并且更具体地检索用户输入数据713。
[0095]
返回到数据输入阶段701,可以检索用户输入数据713,并且可以执行用户输入数据713的分析714,使得在连接状态模型阶段702中,可以确定用户行为分析结果715。这样的过程可以与关于例如步骤607、步骤608、步骤609和步骤610描述的过程相同或相似。用户行为分析结果715可以由连接状态模型708用来训练716发送到网络状态计算710的度量。例如,如果路径选择712导致用户行为分析结果715指示较差的用户体验,则可以通过在步骤709中的更新期间适当地修改连接状态模型708所应用的加权值来阻碍类似的路径选择。
[0096]
图7所示的处理流程图示了系统如何随着时间学习如何选择具有更好用户体验的路径。可以实施机器学习算法来执行这样的步骤。例如,可以基于用户行为分析结果715来训练机器学习算法,并且还可以将其实现为分析714和/或步骤709中的更新的一部分,使得基于用户行为分析结果715来修改度量(例如,网络状态度量和远程访问协议度量705,和/或用户体验度量707)。由此,机器学习算法可以学习何时实现对中间设备的远程访问可以改进用户检索内容的体验。
[0097]
图8示出了用于路径选择的高级流程图。图8可以是图6的简化版本,使得图6的步骤可以与图8中所描绘的相同或相似,并且图8被部分地简化以图示可以如何使用用户反馈来随着时间学习用户体验。网络状态度量801和远程访问协议度量802可以在步骤602和步骤603中被检索,并且如关于数据输入阶段701所描述的,可以被提供给用户体验计算器803。用户体验计算器803可以是例如在第一计算设备401、第二计算设备402和/或中间计算设备403上执行的软件。例如,用户体验计算器803可以是在第一计算设备401上执行的远程访问软件的一部分,第一计算设备401使得能够远程访问在中间计算设备403上托管的应用(例如,网络浏览器)。可以执行关于连接状态模型阶段702、网络状态计算阶段703和/或步骤604描述的功能的用户体验计算器803可以确定一个或多个用户体验度量,执行一个或多个网络状态计算,和/或可以基于这样的用户体验度量和/或网络状态计算对可用路径进行排名。来自用户体验计算器803的输出可以被发送到路径选择器804,类似于步骤605和/或输出阶段704中描述的过程,该路径选择器804可以选择一条或多条路径中的一条路径。从路径选择器804选择的路径可以由路径实现步骤805来实现,该步骤805可以执行与步骤605相同或相似的过程和/或关于输出阶段704所描述的过程。然后,如关于步骤607、步骤608、步骤609、步骤610、数据输入阶段701和/或连接状态模型阶段702所描述的,用户反馈806可以由用户体验计算器803收集和使用。
[0098]
图9示出了基于用户输入数据713的用户行为分析。用户输入数据713可以被输入到用户行为分析算法中,该用户行为分析算法可以被配置成确定用户体验的一个或多个标记。提供了较差的用户体验的指示的五个实例。如果用户是活动的,但是有相对较低的下行链路数据正在被传输(框902a),则这可以指示用户正在使用远程访问应用,但没有下载和/或以其他方式与内容(例如,内容404)接合。如果用户无目的地四处移动鼠标(例如,以随时间变化的超过阈值的速度和/或加速度移动,四处移动与内容不相关联的显示器的一部分,以定义的模式移动等)(框902b),和/或如果在用户使用其鼠标点击的时间之间存在长的延迟(框902c),则这样的动作可以指示用户未与所请求的内容接合,并且用户对内容的体验可能较差。如果用户试图重新打开远程访问会话和/或关闭现有的远程访问会话(框902d),则这样的步骤可以指示用户在检索内容时的体验可能较差。如果向用户呈现(例如,经由用户界面)提供关于用户对内容的检索的反馈(例如,拇指向上和/或拇指向下图标连同对网络连通性的反馈的请求)的机会,并且如果用户作出否定响应,则这样的指示可以指示用户在检索内容中的体验可能较差。所有这样的考虑可以导致用户行为分析结果715。用户行为分析结果715可以被存储在数据库903中,该数据库903例如可以由连接状态模型708和/或在网络状态计算710期间使用。
[0099]
尽管已经用对结构特征和/或方法动作专用的语言描述了本主题,但是应理解,所附权利要求书中定义的主题不必限于以上描述的特定特征或动作。相反,以上描述的具体
特征和动作是作为以下权利要求的示例实现来描述的。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献