托管的服务中的客户端带宽模拟.pdf

上传人:li****8 文档编号:4887119 上传时间:2018-11-22 格式:PDF 页数:19 大小:2.70MB
返回 下载 相关 举报
摘要
申请专利号:

CN201380008950.2

申请日:

2013.02.13

公开号:

CN104115471A

公开日:

2014.10.22

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):H04L 29/08申请日:20130213|||公开

IPC分类号:

H04L29/08

主分类号:

H04L29/08

申请人:

西里克斯系统公司

发明人:

R·雅库鲍斯基

地址:

美国佛罗里达州

优先权:

2012.02.14 US 13/372,705

专利代理机构:

北京市金杜律师事务所 11256

代理人:

王茂华;辛鸣

PDF下载: PDF下载
内容摘要

因特网和内联网上的带宽是高度可变并且不可靠的—两种可使流传输数字媒体内容困难的属性。在虚拟化系统(例如,虚拟桌面、远程桌面、远程应用等)中,基于可用于会话主机和会话客户端的不同带宽尤其是如此。用于在虚拟化系统中模拟客户端设备的带宽的方法和系统被描述。当会话主机执行应用(例如,数字媒体应用)时,会话主机可以通过挂钩连接与数字媒体应用相关联的一个或多个API并且对该一个或多个API之上的数据进行节流来模拟会话客户端的带宽,由此诱使该应用基于会话客户端的模拟的带宽而非基于会话主机的带宽来做出带宽确定。

权利要求书

权利要求书1.  一种方法,包括:在虚拟化系统中的会话主机上挂钩连接应用编程接口(API);以及当所述API被调用时,基于所述挂钩来拦截API调用,并且基于连接到所述会话主机的会话客户端的带宽向所述API返回数据。2.  根据权利要求1所述的方法,还包括:通过针对与在所述会话主机上执行的第一应用相关联的进程名称查询数据库来确定所述API,其中所述API被所述第一应用调用。3.  根据权利要求2所述的方法,还包括:在与所述第一应用相关联的进程内挂钩连接所述API;以及当所述API被在所述会话主机上执行的第二应用调用时,执行所述API而不被所述挂钩拦截。4.  根据权利要求1所述的方法,其中基于所述会话客户端的所述带宽向所述API返回数据包括基于所述会话客户端的所述带宽来对所述API的数据带宽节流。5.  根据权利要求1所述的方法,还包括所述第一应用基于对经由所述API返回的所述数据的分析来执行第一动作。6.  根据权利要求1所述的方法,还包括所述第一应用基于经由所述API返回的所述数据来选择视频流。7.  一个或多个包括计算机可读指令的非瞬态计算机可读介质,所述计算机可读指令当被执行时通过以下步骤来在虚拟桌面会话中模拟客户端带宽:由所述虚拟桌面会话的会话主机挂钩连接应用编程接口(API);以及当所述API被调用时,基于所述挂钩来拦截API调用,并且基于连接到所述会话主机的会话客户端的带宽向所述API返回数据。8.  根据权利要求7所述的计算机可读介质,所述模拟所述客户端带宽还包括:通过针对与在所述会话主机上执行的第一应用相关联的进程名称查询数据库来确定所述API,其中所述API被所述第一应用调用。9.  根据权利要求8所述的计算机可读介质,所述模拟所述客户端带宽还包括:在与所述第一应用相关联的进程内挂钩连接所述API;以及当所述API被在所述会话主机上执行的第二应用调用时,执行所述API而不被所述挂钩拦截。10.  根据权利要求7所述的计算机可读介质,其中基于所述会话客户端的所述带宽向所述API返回数据包括基于所述会话客户端的所述带宽来对所述API的数据带宽节流。11.  根据权利要求7所述的计算机可读介质,所述模拟所述客户端带宽还包括:所述第一应用基于对经由所述API返回的所述数据的分析来执行第一动作。12.  根据权利要求7所述的计算机可读介质,所述模拟所述客户端带宽还包括所述第一应用基于经由所述API返回的所述数据来选择视频流。13.  一种会话主机装置,包括:处理器;以及存储计算机可读指令的存储器,所述计算机可读指令当被执行时在与会话客户端相关联的虚拟桌面会话内模拟客户端带宽:挂钩连接所述虚拟桌面会话的应用编程接口(API);以及当所述API被调用时,基于所述挂钩来拦截API调用,并且基于连接到所述虚拟桌面的所述会话客户端的带宽向所述API返回数据。14.  根据权利要求13所述的会话主机装置,所述模拟所述客户 端带宽还包括:通过针对与在所述虚拟桌面内执行的第一应用相关联的进程名称查询在存储器内存储的数据库来确定所述API,其中所述API被所述第一应用调用。15.  根据权利要求14所述的会话主机装置,所述模拟所述客户端带宽还包括:在与所述第一应用相关联的所述进程内挂钩连接所述API;以及当所述API被在所述虚拟桌面内执行的第二应用调用时,执行所述API而不被所述挂钩拦截。16.  根据权利要求13所述的会话主机装置,其中基于所述会话客户端的所述带宽向所述API返回数据包括基于所述会话客户端的所述带宽来对所述API的数据带宽节流。17.  根据权利要求13所述的会话主机装置,所述模拟所述客户端带宽还包括:所述第一应用基于对经由所述API返回的所述数据的分析来执行第一动作。18.  根据权利要求13所述的会话主机装置,所述模拟所述客户端带宽还包括所述第一应用基于经由所述API返回的所述数据来选择视频流。19.  一种方法,包括:在客户端设备处,建立在所述客户端设备与主机设备之间的虚拟桌面会话;从在所述虚拟桌面会话中执行的应用内接收对第一视频流的请求;以及以基于所述客户端设备的带宽的比特率接收所述第一视频流。20.  根据权利要求19所述的方法,还包括:基于在所述主机设备与所述客户端设备之间的通信来确定所述客户端设备的所述带宽;以及基于确定的所述带宽来对所述应用的API节流。

说明书

说明书托管的服务中的客户端带宽模拟
技术领域
在此描述的方面涉及计算机系统、计算机网络以及计算机服务的虚拟化。更具体而言,在此描述的方面涉及基于在会话主机与会话客户端之间的可用带宽对通过虚拟化会话提供的服务的优化。
背景技术
传统上,个人计算机包括操作系统、应用和用户设置的组合,各自被拥有者或者管理者持续地单独管理。然而,许多组织现在使用桌面虚拟化来提供更加灵活的选项以解决它们的用户的变化的需要。在桌面虚拟化中,用户的计算环境(例如,操作系统、应用和/或用户设置)可以与用户的物理计算设备(例如,智能电话、膝上型计算机、桌面型计算机)分离。使用客户端—服务器技术,“虚拟化桌面”可以被存储在远程服务器中并被其管理,而非被存储在客户端计算设备的本地存储装置中。
存在几种不同类型的桌面虚拟化系统。作为示例,虚拟桌面基础设施(VDI)指代在驻留在服务器上的虚拟机内运行用户桌面的过程。VDI和其他基于服务器的桌面虚拟化系统可以为每个用户提供个性化桌面,同时允许集中的管理和安全性。此类系统中的服务器可以包括用于虚拟桌面镜像和系统配置信息的存储装置,以及用来提供虚拟桌面并允许用户与之互连的软件组件。例如,VDI服务器可包括用来创建并维持多个虚拟机的一个或多个管理程序(虚拟机管理器)、用来管理管理程序的软件、连接代理(connection broker)以及用来提供并管理虚拟桌面的软件。
虚拟桌面可能仍需要在客户端设备上执行的客户端应用(例如,瘦客户端)来实行或执行各种任务。该客户端转而可能受在客户端 设备与客户端设备赖以进行网络和/或因特网访问的一个或多个网络之间的可用网络带宽限制。
发明内容
鉴于前述背景,以下呈现了本公开内容的简化总结以便提供对在此描述的某些方面的基本理解。这一总结不是广泛的概述,并且并非旨在标识关键或者至关重要的元素或者勾画权利要求的范围。以下总结仅仅以简化形式将各种被描述方面呈现作为在下面提供的更详细描述的前序。
为了解决上述缺点和在阅读本公开内容后将被实现的附加益处,各方面在此描述了基于对客户端设备可用的网络带宽来针对托管的服务优化客户端设备性能的新的方法和系统。因特网和内联网上的带宽是高度可变并且不可靠的—两种可以使流传输数字媒体内容困难的属性。在虚拟化系统(例如,虚拟桌面、远程桌面、远程应用等)中,基于对会话主机和会话客户端可用的不同带宽(例如,会话主机通常具有比会话客户端更高的可用带宽)尤其是如此。用于在虚拟化系统中模拟客户端设备的带宽的方法和系统在此被描述。
根据某些方面,当会话主机执行应用(例如,数字媒体应用)时,会话主机可以通过挂钩连接与数字媒体应用相关联的一个或多个API并且对该一个或多个API之上的数据进行节流来模拟会话客户端的带宽,由此诱使该应用基于会话客户端的模拟的带宽而非基于会话主机的实际带宽来做出带宽确定。
根据另一方面,方法和系统在虚拟化系统中的会话主机上挂钩连接(例如,拦截)应用编程接口(API)。挂钩可以在虚拟桌面内,并且可以进一步仅是关于在该虚拟桌面内执行的一个或多个特定进程。当API被调用时,会话主机(或者虚拟桌面)可以拦截该API调用,并且基于连接到该会话主机的会话客户端(例如,被连接到该特定虚拟桌面的会话客户端)的带宽向API返回数据。
根据某些方面,API通过针对与在会话主机上执行或者在虚拟桌面内执行的第一应用相关联的进程名称查询数据库而被确定。API可能仅在特定进程内被挂钩连接,以使得当API被在会话主机上执行的第二应用调用时,API被执行而不被挂钩拦截。被返回给被挂钩连接的API的数据可以是与其他情况下将被返回的相同的数据,然而,该数据可以基于会话客户端的带宽而被节流。应用然后可以基于对经由API返回的数据的分析来执行第一动作,例如,为视频或数字媒体流选择特定比特率。
附图说明
已经以一般术语这样描述了本公开内容的方面,现在将对附图进行参考,其不一定是被成比例绘制的,并且其中:
图1图示了其中本公开内容的方面可被实现的示例操作环境。
图2图示了根据在此描述的一个或多个例示性方面可以被使用的客户端设备。
图3图示了根据在此描述的一个或多个例示性方面可以被使用的客户端设备。
图4图示了根据在此描述的一个或多个例示性方面的系统架构。
图5示出了根据在此描述的一个或多个方面的一种模拟带宽的方法的例示性流程图。
具体实施方式
在对各种实施例的以下描述中,参考附图,其形成了本文的一部分,并且在附图中通过例示方式示出了其中在此描述的各方面可以被实践的各种实施例。将理解,其他实施例可被利用并且结构和功能修改可被做出而不脱离本公开内容的范围和精神。
如本领域技术人员在阅读以下公开内容之后将领会到的,在此描述的各种方面可被实现为方法、数据处理系统或者计算机程序产品。相应地,那些方面可以采用完全硬件实施例、完全软件实施例 或者结合软件和硬件方面的实施例的形式。另外,这样的方面可以采用由一个或多个计算机可读存储介质存储的具有体现在存储介质中或者体现在存储介质上的计算机可读程序代码或者指令的计算机程序产品的形式。任何合适的计算机可读存储介质可以被利用,包括硬盘、CD-ROM、光存储设备、磁存储设备和/或其任何组合。此外,代表如在此描述的数据或事件的各种信号可以采用通过诸如金属线、光纤和/或无线传输介质(例如,空气和/或空间)之类的信号传导介质行进的电磁波的形式在源和目的地之间被传送。
图1图示了根据本公开内容的一个或多个例示性实施例的可以被使用的示例计算环境100中的通用计算设备101(例如,计算机服务器106a)的示例框图。根据一个或多个方面,通用计算设备101可以是被配置用于提供用于客户端访问设备的虚拟机的单服务器或者多服务器桌面虚拟化系统中的服务器106a。通用计算设备101可以具有用于控制服务器的整体操作的处理器103及其相关联的组件,包括随机访问存储器(RAM)105、只读存储器(ROM)107、输入/输出(I/O)模块109和存储器115。
I/O模块109可包括通用计算设备101的用户可通过其提供输入的鼠标、小键盘、触摸屏、扫描仪、光学阅读器和/或触针(或者其他输入设备),并且还可以包括用于提供音频输出的扬声器和用于提供文本、视听和/或图形示出的视频显示设备中的一个或多个。软件可被存储在存储器115和/或其他存储装置内以向处理器103提供用于使得通用计算设备101能够执行各种功能的指令。例如,存储器115可以存储由通用计算设备101使用的软件,诸如操作系统117、应用程序119和相关联的数据库121。备选地,用于通用计算设备101的计算机可执行指令中的一些或者全部可以在硬件或固件(未示出)中被体现。
通用计算设备101可在支持到诸如终端140(也被称作客户端设备)之类的一个或多个远程计算机的连接的联网环境中操作。终端140可以是包括上面关于通用计算设备101描述的元件中的许多或 者全部的个人计算机或者服务器。在图1中描绘的网络连接包括局域网(LAN)125和广域网(WAN)129,但是也可以包括其他网络。当在LAN联网环境中被使用时,通用计算设备101可以通过网络接口或者适配器123被连接到LAN 125。当在WAN联网环境中被使用时,通用计算设备101可以包括用于建立在诸如计算机网络130(例如,因特网)之类的WAN 129上的通信的调制解调器127或者其他网络接口。将领会到,所示出的网络连接是例示性的并且建立在计算机之间的通信链路的其他手段可以被使用。
通用计算设备101和/或终端140还可以是包括诸如电池、扬声器和天线(未示出)之类的各种其他组件的移动终端(例如,移动电话、智能电话、PDA、笔记本计算机等)。
本公开内容可与许多其他通用或者专用计算系统环境或配置一起使用。可以适合与本公开内容一起使用的公知的计算系统、环境和/或配置包括但不限于个人计算机、服务器计算机、手持或者膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程用户电子设备、网络PC、迷你计算机、大型计算机、包括上述系统或设备中的任何系统或设备的分布式计算环境等。
如在图1中所示,一个或多个客户端设备140可以与一个或多个服务器106a-106n(在此被统称为“服务器106”)通信。在一个实施例中,计算环境100可以包括被安装在服务器106与客户机140之间的装置。这一装置可以管理客户端/服务器连接,并且在某些情况下可以对多个后端服务器106当中的客户端连接进行负载均衡。
客户机140在某些实施例中可以被称作单个客户机140或者单组客户机140,而服务器106可以被称作单个服务器106或者单组服务器106。在一个实施例中单个客户机140与多于一个服务器106通信,而在另一实施例中单个服务器106与多于一个客户机140通信。在又一实施例中,单个客户机140与单个服务器106通信。
客户机140在某些实施例中可以通过以下术语中的任一个被引用:客户机140;客户端;客户端计算机;客户端设备;客户端计算 设备;本地机器;远程机器;客户端节点;端点;端点节点;或者第二机器。服务器106在某些实施例中可通过以下术语中的任一个被引用:服务器,本地机器;远程机器;服务器群,主机计算设备,或者第一机器。
在一个实施例中,客户机140可以是虚拟机。该虚拟机可以是任何虚拟机,而在某些实施例中该虚拟机可以是任何由思杰系统、IBM、VMware开发的管理程序或者任何其他管理程序管理的虚拟机。在某些方面,虚拟机可以由管理程序管理,而在特定方面虚拟机可以由在服务器106上执行的管理程序或者在客户端140上执行的管理程序管理。
客户机140可以执行、操作或者以其他方式提供可以是以下各项中的任一个的应用:软件;程序;可执行指令;虚拟机;管理程序;web浏览器;基于web的客户端;客户端—服务器应用;瘦客户端计算客户端;ActiveX控件;Jave小程序;像软IP电话之类的与因特网协议语音(VoIP)通信有关的软件;用于流传输视频和/或音频的应用;用于有助于实时数据通信(例如,诸如用于在线视频游戏)的应用;HTTP客户端;FTP客户端;奥斯卡客户端;远程登录客户端;或者可执行指令的任何其他集合。其更多他实施例包括显示由在服务器106或者其他位于远程的机器上远程执行的应用生成的应用输出的客户端设备140。在这些实施例中,客户端设备140可以在应用窗口、浏览器或者其他输出窗口中显示应用输出。在一个示例中,应用是桌面,而在其他示例中应用是生成桌面的应用。桌面可以包括为其中可以集成有本地和/或远程应用的操作系统的实例提供用户界面的图形壳。如这里所使用的应用是在操作系统的实例(并且可选地还有桌面)已被加载之后执行的程序。
服务器106在某些实施例中执行使用瘦客户端或者远程显示协议来捕捉由在服务器106上执行的应用生成的显示输出并且将该应用显示输出传输到远程客户端140的远程呈现客户端或其他客户端或程序。瘦客户端或者远程显示协议可以是以下协议中的任一种: 由佛罗里达州劳德代尔堡的思杰系统公司制造的独立计算架构(ICA)协议;或者由华盛顿州雷德蒙德的微软公司制造的远程桌面协议(RDP)。
计算环境可包括多于一个服务器106A-106N以使得服务器106A-106N在逻辑上被一起分组在服务器群106中。服务器群106可包括在地理上分散并且在逻辑上被一起分组在服务器群106中的服务器106,或者彼此位置邻近并且在逻辑上被一起分组在服务器群106中的服务器106。服务器群106内的地理上分散的服务器106A-106N在某些实施例中可以使用WAN、MAN、SAN或者LAN来通信,其中不同地理区域可以用以下各项为特征:不同大洲;大洲的不同区域;不同国家;不同州;不同城市;不同校园;不同房间;或者前述地理位置的任何组合。在某些实施例中,服务器群106可以作为单个实体被管理,而在其他实施例中服务器群106可以包括多个服务器群106。
在某些实施例中,服务器群106可以包括执行基本类似类型的操作系统平台(例如,由华盛顿州雷德蒙德的微软公司制造的Windows服务器、UNIX、LINUX、iOS或者LION等)的服务器106。在其他实施例中,服务器群106可以包括执行第一类型的操作系统平台的第一组服务器106,以及执行第二类型的操作系统平台的第二组服务器106。服务器群106在其他实施例中可以包括执行不同类型的操作系统平台的服务器106。
服务器106在某些实施例中可以是任何服务器类型。在其他实施例中,服务器106可以是以下服务器类型中的任何服务器类型:文件服务器;应用服务器;web服务器;代理服务器;装置;网络装置;网关;应用网关;网关服务器;虚拟化服务器;部署服务器;SSL VPN服务器;防火墙;web服务器;应用服务器或者作为主应用服务器;执行活动目录的服务器106;或者执行提供防火墙功能、应用功能、或者负载均衡功能的应用加速程序的服务器106。在某些实施例中,服务器106可以是包括远程认证拨号用户服务的RADIUS 服务器。在其中服务器106包括装置的实施例中,服务器106可以是由以下制造商中的任一个制造的设备:思杰应用联网集团;银峰系统公司;河床技术公司;F5网络公司;或者杰科网络公司。某些实施例包括接收来自客户机140的请求、将该请求转发给第二服务器106n并且用来自第二服务器106n的响应对由客户机140生成的请求进行响应的第一服务器106a。第一服务器106a可以获取对客户机140可用的应用的列举以及与托管在应用的列举内被标识出的应用的应用服务器106相关联的地址信息。第一服务器106a然后可以使用web接口来呈现对客户端的请求的响应,并且与客户端140直接通信以向客户端140提供对标识的应用的访问。
服务器106在某些实施例中可以执行以下应用中的任何一个:使用瘦客户端协议向客户端传输应用显示数据的瘦客户端应用;远程显示呈现应用;思杰系统公司的CITRIX ACCESS SUITE的任何部分,像XENAPP、XENDESKTOP、METAFRAME或者CITRIX PRESENTATION SERVER;由微软公司制造的MICROSOFT WINDOWS终端服务;或者由思杰系统公司开发的ICA客户端。另一实施例包括作为诸如以下各项的应用服务器的服务器106:提供诸如由微软公司制造的MICROSOFT EXCHANGE的邮件服务的邮件服务器;web或者因特网服务器;桌面共享服务器;协作服务器;或者任何其他类型的应用服务器。更多其他实施例包括执行以下类型的托管的服务器应用中的任一个的服务器106:由思杰在线业务公司提供的GOTOMEETING;由加利福尼亚州圣克拉拉的网讯公司提供的WEBEX;或者由微软公司提供的Microsoft Office LIVE MEETING。
客户机140在某些实施例中可以是寻求访问由服务器106提供的资源的客户端节点。在其他实施例中,服务器106可以向客户端140或者客户端节点提供对托管的资源的访问。服务器106在某些实施例中用作被配置用于与一个或多个客户端140或服务器106通信的主节点。在某些实施例中,主节点可以标识与托管所请求的应用 的服务器106相关联的地址信息并将其提供给一个或多个客户端140或者服务器106。在其他实施例中,主节点可以是服务器群106、客户端140、客户端节点140的群集或者装置。
一个或多个客户端140和/或一个或多个服务器106可以通过被安装在计算环境100内的装置与机器之间的网络130来传输数据。网络130可以包括一个或多个子网络,并且可以被安装在计算环境100内包括的客户端140、服务器106、计算机器和装置的任何组合之间。在某些实施例中,网络130可以是:局域网(LAN);城域网(MAN);广域网(WAN);由位于客户机140和服务器106之间的多个子网络组成的主网络104;具有私有子网络的主公共网络130(例如,因特网);具有公共子网络的主私有网络130;或者具有私有子网络的主私有网络130。更多其他实施例包括可以是以下网络类型中的任何网络类型的网络130:点对点网络;广播网络;电信网络;数据通信网络;计算机网络;ATM(异步传送模式)网络;SONET(同步光网络)网络;SDH(同步数字体系)网络;无线网络;有线网络;或者包括无线链路的网络,其中该无线链路可以是红外信道或者卫星频带。网络130的网络拓扑在不同的实施例内可以不同,可能的网络拓扑包括:总线网络拓扑;星型网络拓扑;环形网络拓扑;基于中继器的网络拓扑;或者分层星型网络拓扑。附加实施例可以包括使用协议来在移动设备之中通信的移动电话网络的网络,其中该协议可以是以下各项中的任何一个:AMPS;TDMA;CDMA;GSM;GPRS UMTS;或者能够在移动设备之中传输数据的任何其他协议。
在图2中图示的是计算设备200的实施例,其中在图1中图示的客户机140和服务器106可以被部署作为在此例示并描述的计算设备200的任何实施例和/或在其上被执行。计算设备200内包括的是与以下组件通信的系统总线250:中央处理单元221;主存储器222;存储存储器228;输入/输出(I/O)控制器223;显示设备224;安装设备216;以及网络接口218。在一个实施例中,存储存储器228 包括:操作系统、软件例程和客户端代理220。I/O控制器223在某些实施例中还被连接到键盘226和指点设备227。其他实施例可以包括与多于一个输入/输出设备230连接的I/O控制器223。
图3图示了计算设备300的一个实施例,其中在图1中图示的客户机140和服务器106可以被部署作为在此例示并描述的计算设备300的任何实施例和/或在其上被执行。计算设备300内包括的是与以下组件通信的系统总线350:网桥370和第一I/O设备330a。在另一实施例中,网桥370还与主中央处理单元321通信,其中中央处理单元321还可以与第二I/O设备330b、主存储器322和高速缓冲存储器340通信。中央处理单元321内包括的是I/O端口、存储器端口303和主处理器。
计算机器300的实施例可以包括以以下组件配置中的任何一个为特征的中央处理单元321:对从主存储单元322取回的指令进行响应和处理的逻辑电路;或者微处理器、微控制器、具有单个处理核心的中央处理单元、具有两个处理核心的中央处理单元或者具有多于一个处理核心的中央处理单元的任何组合。
尽管图3图示了包括单个中央处理单元321的计算设备300,但是在某些实施例中计算设备300可以包括一个或多个处理单元321。在这些实施例中,计算设备300可以存储并执行当被执行时指引一个或多个处理单元321同时执行指令或者同时执行单个数据片上的指令的固件或者其他可执行指令。在其他实施例中,计算设备300可以存储并执行当被执行时指引一个或多个处理单元各自执行一组指令的一部分的固件或者其他可执行指令。例如,每个处理单元321可以被指示用于执行程序的一部分或者程序内的特定模块。
在某些实施例中,处理单元321可以包括一个或多个处理核心。例如,处理单元321可以具有两个核心、四个核心、八个核心等。在一个实施例中,处理单元321可包括一个或多个并行处理核心。处理单元321的处理核心在某些实施例中可以访问作为全局地址空间的可用存储器,或者在其他实施例中,计算设备300内的存储器 可以被分割并被指派给处理单元321内的特定核心。在一个实施例中,计算设备300中的一个或多个处理核心或处理器可以各自访问本地存储器。在另一实施例中,计算设备300内的存储器可以在一个或多个处理器或处理核心之间被共享,而其他存储器可以被特定处理器或者处理器的子集访问。在其中计算设备300包括多于一个处理单元的实施例中,多个处理单元可以被包括在单个集成电路(IC)中。这些多个处理器在某些实施例中可以通过可以被称作元件互连总线的内部高速总线被链接在一起。
在其中计算设备300包括一个或多个处理单元321或者包括一个或多个处理核心的处理单元321的实施例中,处理器可以同时对多个数据片执行单个指令(SIMD),或者在其他实施例中可以同时对多个数据片执行多个指令(MIMD)。在一些实施例中,计算设备100可以包括任何数目的SIMD和MIMD处理器。
计算设备300在某些实施例中可以包括图形处理器或者图形处理单元(未示出)。图形处理单元可以包括软件和硬件的任何组合,并且还可以输入图形数据和图形指令,根据所输入的数据和指令来渲染图形,以及输出所渲染的图形。在某些实施例中,图形处理单元可以被包括在处理单元321内。在其他实施例中,计算设备300可以包括一个或多个处理单元321,其中至少一个处理单元321专用于处理和渲染图形。
计算机器300的一个实施例包括经由也被称为后端总线的次级总线与高速缓冲存储器340通信的中央处理单元321,而计算机器300的另一实施例包括经由系统总线350与高速缓冲存储器通信的中央处理单元321。本地系统总线350在某些实施例中还可以被中央处理单元用来与多于一种类型的I/O设备330通信。在某些实施例中,本地系统总线350可以是以下类型的总线中的任何一个:VESA VL总线;ISA总线;EISA总线;微通道架构(MCA)总线;PCI总线;PCI-X总线;PCI-Express总线;或者NuBus(网络用户总线)。计算机器300的其他实施例包括I/O设备330,其包括与中央处理单元 321通信的视频显示器224。计算机器300的更多其他版本包括经由以下连接中的任何一个而连接到I/O设备330的处理器321:超传输,快速I/O或者无限带宽。计算机器300的其他实施例包括使用本地互连总线与一个I/O设备330a通信并且使用直接连接与第二I/O设备330b通信的处理器321。
计算设备300在某些实施例中包括主存储器单元322和高速缓冲存储器340。高速缓冲存储器340可以是任何存储器类型,并且在某些实施例中可以是以下类型存储器中的任何一个:SRAM;BSRAM;或者EDRAM。其他实施例包括可以是以下类型的存储器中的任何一个的高速缓冲存储器340和主存储器单元322:静态随机访问存储器(SRAM),突发SRAM或者同步突发SRAM(BSRAM);动态随机访问存储器(DRAM);快速页面模式DRAM(FPM DRAM);增强型DRAM(EDRAM),扩展数据输出RAM(EDO RAM);扩展数据输出DRAM(EDO DRAM);突发扩展数据输出DRAM(BEDO DRAM);增强型DRAM(EDRAM);同步DRAM(SDRAM);JEDEC SRAM;PC100SDRAM;双倍数据速率SDRAM(DDR SDRAM);增强型SDRAM(ESDRAM);同步链路DRAM(SLDRAM);直接Rambus DRAM(DRDRAM);铁电RAM(FRAM);或者任何其他类型的存储器。其他实施例包括可经由以下各项访问主存储器322的中央处理单元321:系统总线350;存储器端口303;或者允许处理器321访问存储器322的任何其他连接、总线或者端口。
计算设备200/300的一个实施例提供对以下安装设备216中的任何一个的支持:CD-ROM驱动器、CD-R/RW驱动器、DVD-ROM驱动器、各种格式的磁带驱动器、USB设备、可引导介质、可引导CD、用于诸如之类的GNU/Linux发行版的可引导CD、硬盘驱动器或者适合用于安装应用或者软件的任何其他设备。应用在某些实施例中可以包括客户端代理220,或者客户端代理220的任何部分。计算设备200/300还可以包括可以是一个或多个硬盘驱动器或者独立磁盘的一个或多个冗余阵列的存储设备228;其中该存储设备被 配置用于存储操作系统、软件、程序应用或者客户端代理220的至少一部分。计算设备200、300的另一实施例包括被用作存储设备228的安装设备216。
计算设备200、300还可包括用来通过包括但不限于标准电话线路、LAN或者WAN链路(例如,802.11、T1、T3、56kb、X.25、SNA、DECNET)、宽带连接(例如,ISDN、帧中继、ATM、吉比特以太网、通过SONET的以太网)、无线连接或者以上的任何或者所有的某种组合的各种连接与局域网(LAN)、广域网(WAN)或者因特网以对接的网络接口218。连接还可以使用各种通信协议(例如,TCP/IP、IPX、SPX、NetBIOS、以太网、ARCNET、SONET、SDH、光纤分布式数据接口(FDDI)、RS232、RS485、IEEE 802.11、IEEE 802.11a、IEEE 802.11b、IEEE 802.11g、CDMA、GSM、WiMax和直接异步连接)被建立。计算设备200、300的一个版本包括能够经由诸如安全套接字层(SSL)或者传输层安全(TLS)或者由思杰系统公司制造的思杰网关协议之类的任何类型和/或形式的网关或隧穿协议与附加的计算设备200’、300’通信的网络接口218。网络接口218的版本可包括以下各项中的任何一个:内建网络适配器;网络接口卡;PCMCIA网络卡;卡总线网络适配器;无线网络适配器;USB网络适配器;调制解调器;或者适合用于将计算设备200、300与能够传送并执行在此描述的方法和系统的网络对接的任何其他设备。
计算设备200、300的实施例包括以下I/O设备230a-230n中的任何一个:键盘226;指点设备227;鼠标;轨迹板;光学笔;轨迹球;麦克风;绘图板;视频显示器;扬声器;喷墨打印机;激光打印机;以及染料升华打印机;或者能够执行在此描述的方法和系统的任何其他输入/输出设备。I/O控制器223在某些实施例中可以连接到多个I/O设备230a-230n以控制该一个或多个I/O设备。I/O设备230a-230n的某些实施例可以被配置用于提供存储装置或者安装介质216,而其他可以提供用于接收诸如由Twintech工业公司制造的通用串行总线(USB)闪存驱动器设备线的USB存储设备的USB 接口。更多其他实施例包括可以是在系统总线250和外部通信总线之间的网桥的I/O设备230,该外部通信总线诸如是:USB总线;苹果桌面总线;RS-232串行连接;SCSI总线;火线总线;火线800总线;以太网总线;AppleTalk总线;吉比特以太网总线;异步传输模式总线;HIPPI总线;超级HIPPI总线;SerialPlus总线;SCI/LAMP总线;光纤通道总线;或者串行连接小型计算机系统接口总线。
在某些实施例中,计算机器200、300可以连接到多个显示设备224a-224n,在其他实施例中计算设备100可以连接到单个显示设备224,而在更多其他实施例中计算设备200、300连接到作为相同类型或形式的显示器的显示设备224a-224n,或者连接到作为不同类型或形式的显示设备。显示设备224a-224n的实施例可被以下各项支持和使能:一个或多个I/O设备230a-230n;I/O控制器223;I/O设备230a-230n和I/O控制器223的组合;能够支持显示设备224a-224n的硬件和软件的任何组合;用来对接、传送、连接或者以其他方式使用显示设备224a-224n的任何类型和/或形式的视频适配器、视频卡、驱动器和/或库。计算设备200、300在某些实施例中可以被配置用于使用一个或多个显示设备224A-224N,这些配置包括:具有用来对接到显示设备224A-224N的多个连接器;具有多个视频适配器,其中每个视频适配器被连接到显示设备224A-224N中的一个或多个;具有被配置用于支持多个显示设备224A-224N的操作系统;使用在计算设备200内包括的电路和软件来连接到并使用多个显示设备224A-224N;以及在主计算设备200和多个次级计算设备上执行软件以使得主计算设备200能够使用次级计算设备的显示器作为主计算设备200的显示设备224A-224N。计算设备200的更多其他实施例可以包括由多个次级计算设备提供并且经由网络连接到主计算设备200的多个显示设备224A-224N。
在某些实施例中,计算机器200可以执行任何操作系统,例如,任何基于WINDOWS的、Unix、Linux、MacOS、iOS、OS/2、PalmOS、安卓、塞班或者任何其他嵌入式操作系统、实时操作系统、开源操 作系统、私有操作系统、用于移动计算设备的操作系统或者任何其他操作系统。在又一实施例中,计算机器200可以执行多个操作系统。例如,计算机器200可以执行PARALLELS或者可以执行或管理执行第一操作系统的虚拟机的另一虚拟化平台,而计算机器200执行与第一操作系统不同的第二操作系统。
计算机器200可以被体现在以下计算设备中的任何一个中:计算工作站;台式计算机;膝上型或者笔记本计算机;服务器;手持计算机;移动电话;便携式电信设备;媒体播放设备;游戏系统;移动计算设备;上网本;由苹果计算机制造的IPOD设备家族中的设备;由索尼公司制造的PLAYSTATION设备家族中的任何一个;由任天堂公司制造的任天堂设备家族中的任何一个;由微软公司制造的XBOX设备家族中的任何一个;或者具有通信能力并且具有充足的处理器能力和存储器容量来执行在此描述的方法和系统的任何其他类型和/或形式的计算、电信或媒体设备。在其他实施例中计算机器100可以是移动设备、智能电话、个人数字助理等。能够执行在此描述的方法和系统的、不管不同平台、处理器、操作系统和输入设备的任何计算设备可被使用。
另外,计算设备200可以是任何工作站、台式计算机、膝上型或者笔记本计算机、服务器、手持计算机、移动电话、数字音频播放器(iPod、iPhone、Zune、RAZR、ROKR等),或者具有通信能力并且具有充足的处理器能力和存储器容量来执行在此描述的操作的任何其他计算机或者其他形式的计算或电信设备。
图1-图3示出了例示性虚拟化系统的高级架构。如所示,桌面虚拟化系统可以是包括至少一个被配置用于向一个或多个客户端访问设备140提供虚拟桌面和/或虚拟应用的虚拟化服务器106的单服务器系统或者多服务器系统。如在此使用的,桌面指代其中可以托管和/或执行一个或多个应用的图形环境或空间。桌面可以包括为其中可以集成有本地和/或远程应用的操作系统的实例提供用户界面的图形壳。如这里所使用的应用是在操作系统的实例(并且,可选地, 还有桌面)已被加载之后执行的程序。操作系统的每个实例可以是物理的(例如,每个设备一个操作系统)或者虚拟的(例如,在单个设备上运行的OS的许多实例)。每个应用可以在本地设备上被执行,或者在位于远程的设备(例如,远程的设备)上被执行。
已经在图1-图3中描述了虚拟化系统以及此类系统中可以包括的某些软件和功能的各种示例,将领会到,除了上面标识的那些之外的其他软件和硬件可以被使用。此外,以下段落提供了与基于在会话主机和会话客户端之间的可用带宽来优化托管的服务有关的各种方法和系统的附加示例。
参考图4,一个或多个外部客户端设备405a-405n可以经由一个或多个网络415、435与连接代理430通信。网络415可以包括诸如因特网之类的公共网络。网络435可以包括诸如公司LAN、WAN等受防火墙420保护的私有网络。任何其他网络也可被使用。
外部客户端设备405可以经由诸如接入网关、虚拟专用网(VPN)服务器等边缘设备425通过防火墙420通信。web服务器430可以包括用于分别与外部客户端设备405和内部客户端设备410通信的对外方面和对内方面。备选地,单个逻辑web服务器可以被适配或配置用于与所有客户端设备通信。如在此进一步描述的,web服务器430与连接代理401通信以处理对具有虚拟化资源的会话的请求。在某些方面,web服务器430和连接代理401在物理和/或逻辑上是分离的设备。在其他方面,web服务器430和连接代理401可以在物理和/或逻辑上被结合。
连接代理401可以接收来自客户端设备405、410处的用户的登录凭据(例如,经由web服务器430或者其他客户端—服务器配置),并且然后创建资源并且/或者将其指派给授权的用户,并且向授权的管理员提供管理控制台。每个资源(例如,托管的应用、托管的资源、虚拟机等)可以被一个或多个会话主机440a-440n(例如,设备101、106)托管。
当托管的桌面或托管的应用的会话主机具有高网络带宽,并且 会话客户端具有更低可用带宽时,在会话主机基于对会话主机可用的更高带宽而非对会话客户端可用的更低带宽代表会话客户端执行某一动作时问题可能出现。图4图示了具有由粗线图示的高因特网带宽/管道450的会话主机440a-440n。会话客户端405a-405n可以具有由变化粗细的线图示的变化水平的带宽455-465。在这一示例中位于公司防火墙420后面的会话客户端410a-410a可以具有与会话主机440a-440n相同的因特网带宽450。就是说,公司网络435在带宽上可能受公司防火墙420外部的连接450限制,但是在其他方面具有快速以太网或吉比特以太网速度,例如,100兆比特/秒、吉比特/秒或者更快。
在一个示例中,基于web的视频内容(按需或者实时的)可以使用不同比特率被编码为多个文件或流(例如,多个H.264流)以使得视频的接收者可以基于对该接收者可用的网络带宽来选择最佳比特率。当虚拟桌面(会话主机)具有高带宽时,在该虚拟桌面上运行的带宽自适应视频播放器应用可能基于该虚拟桌面的可用带宽450取回高比特率视频。然而,如果视频将被解码并渲染处的客户端侧带宽465较低,则该比特率可能不合适(例如,视频可能必须被转码)。换句话说,尽管最初被主机设备请求,但视频的转码可能在会话客户端设备处发生。此外,会话主机设备可以基于被确定为在会话主机处可用的带宽而非基于将实际执行转码的会话客户端的带宽来选择要下载的特定比特率数据流。会话客户端因而在被与传入视频流的比特率相对的客户端的可用带宽限制时可能遭受性能问题。当会话主机代表会话客户端运行其他数据密集型应用时类似问题可能出现。
当前没有用于确定带宽的标准应用编程接口(API)或方法。每个应用通常使用其自己的一组API或者技术来确定带宽。视频应用(特别是例如华盛顿州雷德蒙德的微软公司的Windows Media Player)可以独立地确定带宽并且基于当前可用带宽动态地改变视频流的比特率。Windows Media Player将这称作智能流传输。其他视频 播放器或者其他高带宽应用可以使用其他技术来确定带宽。
根据一个方面,数据库121可以存储关于每个应用用来确定带宽的API的信息。例如,应用A可以使用API X和Y以例如通过经由那些API发送或者接收某已知数量的数据并且测量发送或者接收该已知数量的数据所花费的时间量来确定带宽。应用B可以使用APIZ来执行类似计算。通过使用一个或多个API,在会话主机上(或者在特定虚拟桌面内)执行的应用确定该会话主机的带宽并且基于该会话主机的带宽来做出任何后续决定(例如,要选择哪个比特率视频流的选择)。然而,对会话客户端可用的带宽可能呈现后续的未考虑到的瓶颈。因此,根据例示性实施例,会话主机(或者虚拟桌面)可以被配置用于通过挂钩连接在数据库121中标识出的一个或多个API并且基于客户端设备的带宽对带宽进行节流来模拟客户端设备的网络带宽。挂钩连接和节流可以在系统范围或者基于每个进程而被执行。
参考图5,提供了一种用于模拟客户端设备的带宽的例示性方法。最初,在步骤501中,应用在托管的会话内被启动,例如,视频播放器应用可以基于用户输入而被启动或者基于某一事件的发生或因特网链接的选择而被自动启动。在步骤503中,会话主机基于该应用的进程名称来查询数据库121。如果该进程名称不在数据库121中,则不为该进程内的任何给定API创建或者建立挂钩,并且方法跳到步骤513。如这里所使用的挂钩指代拦截API调用并且返回不是来自原来调用的API的值的实践。
如果,在步骤503中,查询返回应用用来确定带宽的一个或多个已知API,则会话主机在步骤505中针对标识的API创建新挂钩以拦截对那些API的调用。会话主机可以基于每个进程创建挂钩,由此拦截仅来自被启动的应用的API调用,同时允许其他进程仍然不受阻碍地访问API。可替代地,挂钩可以基于系统范围而被建立。
在步骤507中,会话主机等待被启动的应用调用所标识的API中的一个或多个。在步骤509中,当标识的API中的一个或多个被 调用时,会话主机检查、查询或者以其他方式确定会话客户端设备的当前带宽。存在各种方式来确定客户端设备带宽,并且所使用的特定方法相对于确定带宽的能力是次要的。换句话说,如果存在可以估计或者确定客户端设备的带宽的某一方法或机制,则如何确定客户端设备的带宽不重要。在一个示例中,执行虚拟桌面的客户端/服务器软件可以包括确定在会话主机与会话客户端之间的当前带宽的软件组件或模块。在另一示例中,会话主机可以维持当会话在会话主机和会话客户端之间被最初建立时确定的已知或者估计的带宽。在另一示例中,会话主机可以向会话客户端查询,并且会话客户端可以转而例如使用任何数目的可公开获得或者访问的因特网带宽确定网站或者工具等来执行带宽确定处理。
不管客户端带宽被如何确定,会话主机在步骤511中基于所确定的会话客户端的带宽对标识的API中的一个或多个的带宽进行人工节流,由此模拟会话客户端的带宽。接下来,在步骤513中,被启动的应用基于从API返回的信息/数据做出带宽确定。如果API在步骤505中被挂钩连接,则由API返回的信息/数据是在步骤511中发生的人工节流的结果。被启动的应用因而将会将带宽确定为与所模拟的客户端设备的带宽一致。然而,如果API未被挂钩连接(因为被启动应用未被包括在数据库121中),则被启动的应用做出真正独立的带宽确定,这是因为从API返回的信息/数据不是基于人工节流来模拟客户端带宽。最后,在步骤515中,被启动的应用基于所确定的带宽做出决定、执行事件、选择输入或输出或者以其他方式执行某一动作。
在图5中图示的方法可以在不脱离在此描述的本发明的精神或范围的情况下被更改。例如,步骤可以被修改、组合或被分成进一步的子步骤,并且可以基于系统设计按照记载的顺序之外的顺序被执行。
尽管已经以特定于结构特征和/或方法动作的语言描述了主题内容,但是将理解,在所附权利要求中定义的主题内容不一定限于上 面描述的具体特征或动作。相反,上面描述的具体特征和动作被描述为实现权利要求的例示性形式。

托管的服务中的客户端带宽模拟.pdf_第1页
第1页 / 共19页
托管的服务中的客户端带宽模拟.pdf_第2页
第2页 / 共19页
托管的服务中的客户端带宽模拟.pdf_第3页
第3页 / 共19页
点击查看更多>>
资源描述

《托管的服务中的客户端带宽模拟.pdf》由会员分享,可在线阅读,更多相关《托管的服务中的客户端带宽模拟.pdf(19页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 104115471 A (43)申请公布日 2014.10.22 CN 104115471 A (21)申请号 201380008950.2 (22)申请日 2013.02.13 13/372,705 2012.02.14 US H04L 29/08(2006.01) (71)申请人 西里克斯系统公司 地址 美国佛罗里达州 (72)发明人 R雅库鲍斯基 (74)专利代理机构 北京市金杜律师事务所 11256 代理人 王茂华 辛鸣 (54) 发明名称 托管的服务中的客户端带宽模拟 (57) 摘要 因特网和内联网上的带宽是高度可变并且不 可靠的两种可使流传输数字媒体内容困。

2、难的属 性。 在虚拟化系统(例如, 虚拟桌面、 远程桌面、 远 程应用等 ) 中, 基于可用于会话主机和会话客户 端的不同带宽尤其是如此。用于在虚拟化系统中 模拟客户端设备的带宽的方法和系统被描述。当 会话主机执行应用 ( 例如, 数字媒体应用 ) 时, 会 话主机可以通过挂钩连接与数字媒体应用相关联 的一个或多个 API 并且对该一个或多个 API 之上 的数据进行节流来模拟会话客户端的带宽, 由此 诱使该应用基于会话客户端的模拟的带宽而非基 于会话主机的带宽来做出带宽确定。 (30)优先权数据 (85)PCT国际申请进入国家阶段日 2014.08.11 (86)PCT国际申请的申请数据 P。

3、CT/US2013/025815 2013.02.13 (87)PCT国际申请的公布数据 WO2013/126245 EN 2013.08.29 (51)Int.Cl. 权利要求书 2 页 说明书 11 页 附图 5 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书11页 附图5页 (10)申请公布号 CN 104115471 A CN 104115471 A 1/2 页 2 1. 一种方法, 包括 : 在虚拟化系统中的会话主机上挂钩连接应用编程接口 (API) ; 以及 当所述API被调用时, 基于所述挂钩来拦截API调用, 并且基于连接到所述会话主机的。

4、 会话客户端的带宽向所述 API 返回数据。 2. 根据权利要求 1 所述的方法, 还包括 : 通过针对与在所述会话主机上执行的第一应用相关联的进程名称查询数据库来确定 所述 API, 其中所述 API 被所述第一应用调用。 3. 根据权利要求 2 所述的方法, 还包括 : 在与所述第一应用相关联的进程内挂钩连接所述 API ; 以及 当所述 API 被在所述会话主机上执行的第二应用调用时, 执行所述 API 而不被所述挂 钩拦截。 4. 根据权利要求 1 所述的方法, 其中基于所述会话客户端的所述带宽向所述 API 返回 数据包括基于所述会话客户端的所述带宽来对所述 API 的数据带宽节流。。

5、 5. 根据权利要求 1 所述的方法, 还包括所述第一应用基于对经由所述 API 返回的所述 数据的分析来执行第一动作。 6. 根据权利要求 1 所述的方法, 还包括所述第一应用基于经由所述 API 返回的所述数 据来选择视频流。 7. 一个或多个包括计算机可读指令的非瞬态计算机可读介质, 所述计算机可读指令当 被执行时通过以下步骤来在虚拟桌面会话中模拟客户端带宽 : 由所述虚拟桌面会话的会话主机挂钩连接应用编程接口 (API) ; 以及 当所述API被调用时, 基于所述挂钩来拦截API调用, 并且基于连接到所述会话主机的 会话客户端的带宽向所述 API 返回数据。 8. 根据权利要求 7 所。

6、述的计算机可读介质, 所述模拟所述客户端带宽还包括 : 通过针对与在所述会话主机上执行的第一应用相关联的进程名称查询数据库来确定 所述 API, 其中所述 API 被所述第一应用调用。 9. 根据权利要求 8 所述的计算机可读介质, 所述模拟所述客户端带宽还包括 : 在与所述第一应用相关联的进程内挂钩连接所述 API ; 以及 当所述 API 被在所述会话主机上执行的第二应用调用时, 执行所述 API 而不被所述挂 钩拦截。 10. 根据权利要求 7 所述的计算机可读介质, 其中基于所述会话客户端的所述带宽向 所述 API 返回数据包括基于所述会话客户端的所述带宽来对所述 API 的数据带宽节。

7、流。 11. 根据权利要求 7 所述的计算机可读介质, 所述模拟所述客户端带宽还包括 : 所述第一应用基于对经由所述 API 返回的所述数据的分析来执行第一动作。 12. 根据权利要求 7 所述的计算机可读介质, 所述模拟所述客户端带宽还包括所述第 一应用基于经由所述 API 返回的所述数据来选择视频流。 13. 一种会话主机装置, 包括 : 处理器 ; 以及 权 利 要 求 书 CN 104115471 A 2 2/2 页 3 存储计算机可读指令的存储器, 所述计算机可读指令当被执行时在与会话客户端相关 联的虚拟桌面会话内模拟客户端带宽 : 挂钩连接所述虚拟桌面会话的应用编程接口 (API)。

8、 ; 以及 当所述API被调用时, 基于所述挂钩来拦截API调用, 并且基于连接到所述虚拟桌面的 所述会话客户端的带宽向所述 API 返回数据。 14. 根据权利要求 13 所述的会话主机装置, 所述模拟所述客户端带宽还包括 : 通过针对与在所述虚拟桌面内执行的第一应用相关联的进程名称查询在存储器内存 储的数据库来确定所述 API, 其中所述 API 被所述第一应用调用。 15. 根据权利要求 14 所述的会话主机装置, 所述模拟所述客户端带宽还包括 : 在与所述第一应用相关联的所述进程内挂钩连接所述 API ; 以及 当所述 API 被在所述虚拟桌面内执行的第二应用调用时, 执行所述 API。

9、 而不被所述挂 钩拦截。 16. 根据权利要求 13 所述的会话主机装置, 其中基于所述会话客户端的所述带宽向所 述 API 返回数据包括基于所述会话客户端的所述带宽来对所述 API 的数据带宽节流。 17. 根据权利要求 13 所述的会话主机装置, 所述模拟所述客户端带宽还包括 : 所述第一应用基于对经由所述 API 返回的所述数据的分析来执行第一动作。 18. 根据权利要求 13 所述的会话主机装置, 所述模拟所述客户端带宽还包括所述第一 应用基于经由所述 API 返回的所述数据来选择视频流。 19. 一种方法, 包括 : 在客户端设备处, 建立在所述客户端设备与主机设备之间的虚拟桌面会话。

10、 ; 从在所述虚拟桌面会话中执行的应用内接收对第一视频流的请求 ; 以及 以基于所述客户端设备的带宽的比特率接收所述第一视频流。 20. 根据权利要求 19 所述的方法, 还包括 : 基于在所述主机设备与所述客户端设备之间的通信来确定所述客户端设备的所述带 宽 ; 以及 基于确定的所述带宽来对所述应用的 API 节流。 权 利 要 求 书 CN 104115471 A 3 1/11 页 4 托管的服务中的客户端带宽模拟 技术领域 0001 在此描述的方面涉及计算机系统、 计算机网络以及计算机服务的虚拟化。更具体 而言, 在此描述的方面涉及基于在会话主机与会话客户端之间的可用带宽对通过虚拟化会 。

11、话提供的服务的优化。 背景技术 0002 传统上, 个人计算机包括操作系统、 应用和用户设置的组合, 各自被拥有者或者管 理者持续地单独管理。然而, 许多组织现在使用桌面虚拟化来提供更加灵活的选项以解决 它们的用户的变化的需要。在桌面虚拟化中, 用户的计算环境 ( 例如, 操作系统、 应用和 / 或用户设置)可以与用户的物理计算设备(例如, 智能电话、 膝上型计算机、 桌面型计算机) 分离。使用客户端服务器技术,“虚拟化桌面” 可以被存储在远程服务器中并被其管理, 而 非被存储在客户端计算设备的本地存储装置中。 0003 存在几种不同类型的桌面虚拟化系统。作为示例, 虚拟桌面基础设施 (VDI。

12、) 指代 在驻留在服务器上的虚拟机内运行用户桌面的过程。VDI 和其他基于服务器的桌面虚拟化 系统可以为每个用户提供个性化桌面, 同时允许集中的管理和安全性。此类系统中的服务 器可以包括用于虚拟桌面镜像和系统配置信息的存储装置, 以及用来提供虚拟桌面并允许 用户与之互连的软件组件。 例如, VDI服务器可包括用来创建并维持多个虚拟机的一个或多 个管理程序 ( 虚拟机管理器 )、 用来管理管理程序的软件、 连接代理 (connection broker) 以及用来提供并管理虚拟桌面的软件。 0004 虚拟桌面可能仍需要在客户端设备上执行的客户端应用 ( 例如, 瘦客户端 ) 来实 行或执行各种任。

13、务。该客户端转而可能受在客户端设备与客户端设备赖以进行网络和 / 或 因特网访问的一个或多个网络之间的可用网络带宽限制。 发明内容 0005 鉴于前述背景, 以下呈现了本公开内容的简化总结以便提供对在此描述的某些方 面的基本理解。这一总结不是广泛的概述, 并且并非旨在标识关键或者至关重要的元素或 者勾画权利要求的范围。 以下总结仅仅以简化形式将各种被描述方面呈现作为在下面提供 的更详细描述的前序。 0006 为了解决上述缺点和在阅读本公开内容后将被实现的附加益处, 各方面在此描述 了基于对客户端设备可用的网络带宽来针对托管的服务优化客户端设备性能的新的方法 和系统。 因特网和内联网上的带宽是高。

14、度可变并且不可靠的两种可以使流传输数字媒体 内容困难的属性。在虚拟化系统 ( 例如, 虚拟桌面、 远程桌面、 远程应用等 ) 中, 基于对会话 主机和会话客户端可用的不同带宽 ( 例如, 会话主机通常具有比会话客户端更高的可用带 宽 ) 尤其是如此。用于在虚拟化系统中模拟客户端设备的带宽的方法和系统在此被描述。 0007 根据某些方面, 当会话主机执行应用 ( 例如, 数字媒体应用 ) 时, 会话主机可以通 过挂钩连接与数字媒体应用相关联的一个或多个API并且对该一个或多个API之上的数据 说 明 书 CN 104115471 A 4 2/11 页 5 进行节流来模拟会话客户端的带宽, 由此诱。

15、使该应用基于会话客户端的模拟的带宽而非基 于会话主机的实际带宽来做出带宽确定。 0008 根据另一方面, 方法和系统在虚拟化系统中的会话主机上挂钩连接 ( 例如, 拦截 ) 应用编程接口(API)。 挂钩可以在虚拟桌面内, 并且可以进一步仅是关于在该虚拟桌面内执 行的一个或多个特定进程。当 API 被调用时, 会话主机 ( 或者虚拟桌面 ) 可以拦截该 API 调用, 并且基于连接到该会话主机的会话客户端 ( 例如, 被连接到该特定虚拟桌面的会话 客户端 ) 的带宽向 API 返回数据。 0009 根据某些方面, API 通过针对与在会话主机上执行或者在虚拟桌面内执行的第一 应用相关联的进程名。

16、称查询数据库而被确定。 API可能仅在特定进程内被挂钩连接, 以使得 当 API 被在会话主机上执行的第二应用调用时, API 被执行而不被挂钩拦截。被返回给被 挂钩连接的 API 的数据可以是与其他情况下将被返回的相同的数据, 然而, 该数据可以基 于会话客户端的带宽而被节流。应用然后可以基于对经由 API 返回的数据的分析来执行第 一动作, 例如, 为视频或数字媒体流选择特定比特率。 附图说明 0010 已经以一般术语这样描述了本公开内容的方面, 现在将对附图进行参考, 其不一 定是被成比例绘制的, 并且其中 : 0011 图 1 图示了其中本公开内容的方面可被实现的示例操作环境。 001。

17、2 图 2 图示了根据在此描述的一个或多个例示性方面可以被使用的客户端设备。 0013 图 3 图示了根据在此描述的一个或多个例示性方面可以被使用的客户端设备。 0014 图 4 图示了根据在此描述的一个或多个例示性方面的系统架构。 0015 图 5 示出了根据在此描述的一个或多个方面的一种模拟带宽的方法的例示性流 程图。 具体实施方式 0016 在对各种实施例的以下描述中, 参考附图, 其形成了本文的一部分, 并且在附图中 通过例示方式示出了其中在此描述的各方面可以被实践的各种实施例。将理解, 其他实施 例可被利用并且结构和功能修改可被做出而不脱离本公开内容的范围和精神。 0017 如本领域。

18、技术人员在阅读以下公开内容之后将领会到的, 在此描述的各种方面可 被实现为方法、 数据处理系统或者计算机程序产品。 相应地, 那些方面可以采用完全硬件实 施例、 完全软件实施例或者结合软件和硬件方面的实施例的形式。 另外, 这样的方面可以采 用由一个或多个计算机可读存储介质存储的具有体现在存储介质中或者体现在存储介质 上的计算机可读程序代码或者指令的计算机程序产品的形式。 任何合适的计算机可读存储 介质可以被利用, 包括硬盘、 CD-ROM、 光存储设备、 磁存储设备和 / 或其任何组合。此外, 代 表如在此描述的数据或事件的各种信号可以采用通过诸如金属线、 光纤和 / 或无线传输介 质 ( 。

19、例如, 空气和 / 或空间 ) 之类的信号传导介质行进的电磁波的形式在源和目的地之间 被传送。 0018 图 1 图示了根据本公开内容的一个或多个例示性实施例的可以被使用的示例计 算环境 100 中的通用计算设备 101( 例如, 计算机服务器 106a) 的示例框图。根据一个或多 说 明 书 CN 104115471 A 5 3/11 页 6 个方面, 通用计算设备 101 可以是被配置用于提供用于客户端访问设备的虚拟机的单服务 器或者多服务器桌面虚拟化系统中的服务器106a。 通用计算设备101可以具有用于控制服 务器的整体操作的处理器 103 及其相关联的组件, 包括随机访问存储器 (R。

20、AM)105、 只读存 储器 (ROM)107、 输入 / 输出 (I/O) 模块 109 和存储器 115。 0019 I/O 模块 109 可包括通用计算设备 101 的用户可通过其提供输入的鼠标、 小键盘、 触摸屏、 扫描仪、 光学阅读器和/或触针(或者其他输入设备), 并且还可以包括用于提供音 频输出的扬声器和用于提供文本、 视听和 / 或图形示出的视频显示设备中的一个或多个。 软件可被存储在存储器 115 和 / 或其他存储装置内以向处理器 103 提供用于使得通用计算 设备 101 能够执行各种功能的指令。例如, 存储器 115 可以存储由通用计算设备 101 使用 的软件, 诸如。

21、操作系统 117、 应用程序 119 和相关联的数据库 121。备选地, 用于通用计算设 备 101 的计算机可执行指令中的一些或者全部可以在硬件或固件 ( 未示出 ) 中被体现。 0020 通用计算设备 101 可在支持到诸如终端 140( 也被称作客户端设备 ) 之类的一个 或多个远程计算机的连接的联网环境中操作。终端 140 可以是包括上面关于通用计算设备 101 描述的元件中的许多或者全部的个人计算机或者服务器。在图 1 中描绘的网络连接包 括局域网(LAN)125和广域网(WAN)129, 但是也可以包括其他网络。 当在LAN联网环境中被 使用时, 通用计算设备 101 可以通过网络。

22、接口或者适配器 123 被连接到 LAN 125。当在 WAN 联网环境中被使用时, 通用计算设备 101 可以包括用于建立在诸如计算机网络 130( 例如, 因特网 ) 之类的 WAN 129 上的通信的调制解调器 127 或者其他网络接口。将领会到, 所示 出的网络连接是例示性的并且建立在计算机之间的通信链路的其他手段可以被使用。 0021 通用计算设备 101 和 / 或终端 140 还可以是包括诸如电池、 扬声器和天线 ( 未示 出 ) 之类的各种其他组件的移动终端 ( 例如, 移动电话、 智能电话、 PDA、 笔记本计算机等 )。 0022 本公开内容可与许多其他通用或者专用计算系统。

23、环境或配置一起使用。 可以适合 与本公开内容一起使用的公知的计算系统、 环境和 / 或配置包括但不限于个人计算机、 服 务器计算机、 手持或者膝上型设备、 多处理器系统、 基于微处理器的系统、 机顶盒、 可编程用 户电子设备、 网络 PC、 迷你计算机、 大型计算机、 包括上述系统或设备中的任何系统或设备 的分布式计算环境等。 0023 如在图 1 中所示, 一个或多个客户端设备 140 可以与一个或多个服务器 106a-106n( 在此被统称为 “服务器 106” ) 通信。在一个实施例中, 计算环境 100 可以包括 被安装在服务器 106 与客户机 140 之间的装置。这一装置可以管理客。

24、户端 / 服务器连接, 并且在某些情况下可以对多个后端服务器 106 当中的客户端连接进行负载均衡。 0024 客户机 140 在某些实施例中可以被称作单个客户机 140 或者单组客户机 140, 而 服务器 106 可以被称作单个服务器 106 或者单组服务器 106。在一个实施例中单个客户机 140 与多于一个服务器 106 通信, 而在另一实施例中单个服务器 106 与多于一个客户机 140 通信。在又一实施例中, 单个客户机 140 与单个服务器 106 通信。 0025 客户机140在某些实施例中可以通过以下术语中的任一个被引用 : 客户机140 ; 客 户端 ; 客户端计算机 ; 。

25、客户端设备 ; 客户端计算设备 ; 本地机器 ; 远程机器 ; 客户端节点 ; 端 点 ; 端点节点 ; 或者第二机器。 服务器106在某些实施例中可通过以下术语中的任一个被引 用 : 服务器, 本地机器 ; 远程机器 ; 服务器群, 主机计算设备, 或者第一机器。 0026 在一个实施例中, 客户机 140 可以是虚拟机。该虚拟机可以是任何虚拟机, 而在某 说 明 书 CN 104115471 A 6 4/11 页 7 些实施例中该虚拟机可以是任何由思杰系统、 IBM、 VMware 开发的管理程序或者任何其他管 理程序管理的虚拟机。 在某些方面, 虚拟机可以由管理程序管理, 而在特定方面虚。

26、拟机可以 由在服务器 106 上执行的管理程序或者在客户端 140 上执行的管理程序管理。 0027 客户机 140 可以执行、 操作或者以其他方式提供可以是以下各项中的任一个的应 用 : 软件 ; 程序 ; 可执行指令 ; 虚拟机 ; 管理程序 ; web 浏览器 ; 基于 web 的客户端 ; 客户端 服务器应用 ; 瘦客户端计算客户端 ; ActiveX控件 ; Jave小程序 ; 像软IP电话之类的与因特 网协议语音 (VoIP) 通信有关的软件 ; 用于流传输视频和 / 或音频的应用 ; 用于有助于实时 数据通信 ( 例如, 诸如用于在线视频游戏 ) 的应用 ; HTTP 客户端 ;。

27、 FTP 客户端 ; 奥斯卡客户 端 ; 远程登录客户端 ; 或者可执行指令的任何其他集合。其更多他实施例包括显示由在服 务器 106 或者其他位于远程的机器上远程执行的应用生成的应用输出的客户端设备 140。 在这些实施例中, 客户端设备 140 可以在应用窗口、 浏览器或者其他输出窗口中显示应用 输出。在一个示例中, 应用是桌面, 而在其他示例中应用是生成桌面的应用。桌面可以包括 为其中可以集成有本地和 / 或远程应用的操作系统的实例提供用户界面的图形壳。如这里 所使用的应用是在操作系统的实例 ( 并且可选地还有桌面 ) 已被加载之后执行的程序。 0028 服务器 106 在某些实施例中执。

28、行使用瘦客户端或者远程显示协议来捕捉由在服 务器106上执行的应用生成的显示输出并且将该应用显示输出传输到远程客户端140的远 程呈现客户端或其他客户端或程序。 瘦客户端或者远程显示协议可以是以下协议中的任一 种 : 由佛罗里达州劳德代尔堡的思杰系统公司制造的独立计算架构 (ICA) 协议 ; 或者由华 盛顿州雷德蒙德的微软公司制造的远程桌面协议 (RDP)。 0029 计算环境可包括多于一个服务器106A-106N以使得服务器106A-106N在逻辑上被 一起分组在服务器群 106 中。服务器群 106 可包括在地理上分散并且在逻辑上被一起分组 在服务器群 106 中的服务器 106, 或者。

29、彼此位置邻近并且在逻辑上被一起分组在服务器群 106 中的服务器 106。服务器群 106 内的地理上分散的服务器 106A-106N 在某些实施例中 可以使用 WAN、 MAN、 SAN 或者 LAN 来通信, 其中不同地理区域可以用以下各项为特征 : 不同 大洲 ; 大洲的不同区域 ; 不同国家 ; 不同州 ; 不同城市 ; 不同校园 ; 不同房间 ; 或者前述地理 位置的任何组合。在某些实施例中, 服务器群 106 可以作为单个实体被管理, 而在其他实施 例中服务器群 106 可以包括多个服务器群 106。 0030 在某些实施例中, 服务器群 106 可以包括执行基本类似类型的操作系统。

30、平台 ( 例 如, 由华盛顿州雷德蒙德的微软公司制造的 Windows 服务器、 UNIX、 LINUX、 iOS 或者 LION 等 ) 的服务器 106。在其他实施例中, 服务器群 106 可以包括执行第一类型的操作系统平 台的第一组服务器 106, 以及执行第二类型的操作系统平台的第二组服务器 106。服务器群 106 在其他实施例中可以包括执行不同类型的操作系统平台的服务器 106。 0031 服务器106在某些实施例中可以是任何服务器类型。 在其他实施例中, 服务器106 可以是以下服务器类型中的任何服务器类型 : 文件服务器 ; 应用服务器 ; web 服务器 ; 代理 服务器 ;。

31、 装置 ; 网络装置 ; 网关 ; 应用网关 ; 网关服务器 ; 虚拟化服务器 ; 部署服务器 ; SSL VPN 服务器 ; 防火墙 ; web 服务器 ; 应用服务器或者作为主应用服务器 ; 执行活动目录的服 务器 106 ; 或者执行提供防火墙功能、 应用功能、 或者负载均衡功能的应用加速程序的服务 器106。 在某些实施例中, 服务器106可以是包括远程认证拨号用户服务的RADIUS服务器。 在其中服务器 106 包括装置的实施例中, 服务器 106 可以是由以下制造商中的任一个制造 说 明 书 CN 104115471 A 7 5/11 页 8 的设备 : 思杰应用联网集团 ; 银峰。

32、系统公司 ; 河床技术公司 ; F5 网络公司 ; 或者杰科网络公 司。某些实施例包括接收来自客户机 140 的请求、 将该请求转发给第二服务器 106n 并且用 来自第二服务器 106n 的响应对由客户机 140 生成的请求进行响应的第一服务器 106a。第 一服务器 106a 可以获取对客户机 140 可用的应用的列举以及与托管在应用的列举内被标 识出的应用的应用服务器 106 相关联的地址信息。第一服务器 106a 然后可以使用 web 接 口来呈现对客户端的请求的响应, 并且与客户端 140 直接通信以向客户端 140 提供对标识 的应用的访问。 0032 服务器 106 在某些实施例。

33、中可以执行以下应用中的任何一个 : 使用瘦客户端协议 向客户端传输应用显示数据的瘦客户端应用 ; 远程显示呈现应用 ; 思杰系统公司的 CITRIX ACCESS SUITE 的任何部分, 像 XENAPP、 XENDESKTOP、 METAFRAME 或者 CITRIX PRESENTATION SERVER ; 由微软公司制造的 MICROSOFT WINDOWS 终端服务 ; 或者由思杰系统公司开发的 ICA 客户端。另一实施例包括作为诸如以下各项的应用服务器的服务器 106 : 提供诸如由 微软公司制造的 MICROSOFT EXCHANGE 的邮件服务的邮件服务器 ; web 或者因。

34、特网服务器 ; 桌面共享服务器 ; 协作服务器 ; 或者任何其他类型的应用服务器。更多其他实施例包括执 行以下类型的托管的服务器应用中的任一个的服务器 106 : 由思杰在线业务公司提供的 GOTOMEETING ; 由加利福尼亚州圣克拉拉的网讯公司提供的 WEBEX ; 或者由微软公司提供的 Microsoft Offi ce LIVE MEETING。 0033 客户机140在某些实施例中可以是寻求访问由服务器106提供的资源的客户端节 点。在其他实施例中, 服务器 106 可以向客户端 140 或者客户端节点提供对托管的资源的 访问。服务器 106 在某些实施例中用作被配置用于与一个或多。

35、个客户端 140 或服务器 106 通信的主节点。在某些实施例中, 主节点可以标识与托管所请求的应用的服务器 106 相关 联的地址信息并将其提供给一个或多个客户端140或者服务器106。 在其他实施例中, 主节 点可以是服务器群 106、 客户端 140、 客户端节点 140 的群集或者装置。 0034 一个或多个客户端 140 和 / 或一个或多个服务器 106 可以通过被安装在计算环 境 100 内的装置与机器之间的网络 130 来传输数据。网络 130 可以包括一个或多个子网 络, 并且可以被安装在计算环境 100 内包括的客户端 140、 服务器 106、 计算机器和装置的 任何组合。

36、之间。在某些实施例中, 网络 130 可以是 : 局域网 (LAN) ; 城域网 (MAN) ; 广域网 (WAN) ; 由位于客户机 140 和服务器 106 之间的多个子网络组成的主网络 104 ; 具有私有子 网络的主公共网络 130( 例如, 因特网 ) ; 具有公共子网络的主私有网络 130 ; 或者具有私有 子网络的主私有网络 130。更多其他实施例包括可以是以下网络类型中的任何网络类型的 网络 130 : 点对点网络 ; 广播网络 ; 电信网络 ; 数据通信网络 ; 计算机网络 ; ATM( 异步传送模 式 ) 网络 ; SONET( 同步光网络 ) 网络 ; SDH( 同步数字。

37、体系 ) 网络 ; 无线网络 ; 有线网络 ; 或 者包括无线链路的网络, 其中该无线链路可以是红外信道或者卫星频带。网络 130 的网络 拓扑在不同的实施例内可以不同, 可能的网络拓扑包括 : 总线网络拓扑 ; 星型网络拓扑 ; 环 形网络拓扑 ; 基于中继器的网络拓扑 ; 或者分层星型网络拓扑。附加实施例可以包括使用 协议来在移动设备之中通信的移动电话网络的网络, 其中该协议可以是以下各项中的任何 一个 : AMPS ; TDMA ; CDMA ; GSM ; GPRS UMTS ; 或者能够在移动设备之中传输数据的任何其他协 议。 0035 在图 2 中图示的是计算设备 200 的实施例。

38、, 其中在图 1 中图示的客户机 140 和服 说 明 书 CN 104115471 A 8 6/11 页 9 务器 106 可以被部署作为在此例示并描述的计算设备 200 的任何实施例和 / 或在其上被执 行。计算设备 200 内包括的是与以下组件通信的系统总线 250 : 中央处理单元 221 ; 主存储 器 222 ; 存储存储器 228 ; 输入 / 输出 (I/O) 控制器 223 ; 显示设备 224 ; 安装设备 216 ; 以及 网络接口 218。在一个实施例中, 存储存储器 228 包括 : 操作系统、 软件例程和客户端代理 220。I/O 控制器 223 在某些实施例中还被。

39、连接到键盘 226 和指点设备 227。其他实施例可 以包括与多于一个输入 / 输出设备 230 连接的 I/O 控制器 223。 0036 图3图示了计算设备300的一个实施例, 其中在图1中图示的客户机140和服务器 106 可以被部署作为在此例示并描述的计算设备 300 的任何实施例和 / 或在其上被执行。 计算设备 300 内包括的是与以下组件通信的系统总线 350 : 网桥 370 和第一 I/O 设备 330a。 在另一实施例中, 网桥 370 还与主中央处理单元 321 通信, 其中中央处理单元 321 还可以与 第二 I/O 设备 330b、 主存储器 322 和高速缓冲存储器。

40、 340 通信。中央处理单元 321 内包括 的是 I/O 端口、 存储器端口 303 和主处理器。 0037 计算机器 300 的实施例可以包括以以下组件配置中的任何一个为特征的中央处 理单元 321 : 对从主存储单元 322 取回的指令进行响应和处理的逻辑电路 ; 或者微处理器、 微控制器、 具有单个处理核心的中央处理单元、 具有两个处理核心的中央处理单元或者具 有多于一个处理核心的中央处理单元的任何组合。 0038 尽管图3图示了包括单个中央处理单元321的计算设备300, 但是在某些实施例中 计算设备300可以包括一个或多个处理单元321。 在这些实施例中, 计算设备300可以存储 。

41、并执行当被执行时指引一个或多个处理单元 321 同时执行指令或者同时执行单个数据片 上的指令的固件或者其他可执行指令。在其他实施例中, 计算设备 300 可以存储并执行当 被执行时指引一个或多个处理单元各自执行一组指令的一部分的固件或者其他可执行指 令。例如, 每个处理单元 321 可以被指示用于执行程序的一部分或者程序内的特定模块。 0039 在某些实施例中, 处理单元 321 可以包括一个或多个处理核心。例如, 处理单元 321可以具有两个核心、 四个核心、 八个核心等。 在一个实施例中, 处理单元321可包括一个 或多个并行处理核心。处理单元 321 的处理核心在某些实施例中可以访问作为。

42、全局地址空 间的可用存储器, 或者在其他实施例中, 计算设备 300 内的存储器可以被分割并被指派给 处理单元 321 内的特定核心。在一个实施例中, 计算设备 300 中的一个或多个处理核心或 处理器可以各自访问本地存储器。在另一实施例中, 计算设备 300 内的存储器可以在一个 或多个处理器或处理核心之间被共享, 而其他存储器可以被特定处理器或者处理器的子集 访问。在其中计算设备 300 包括多于一个处理单元的实施例中, 多个处理单元可以被包括 在单个集成电路 (IC) 中。这些多个处理器在某些实施例中可以通过可以被称作元件互连 总线的内部高速总线被链接在一起。 0040 在其中计算设备 。

43、300 包括一个或多个处理单元 321 或者包括一个或多个处理核 心的处理单元 321 的实施例中, 处理器可以同时对多个数据片执行单个指令 (SIMD), 或者 在其他实施例中可以同时对多个数据片执行多个指令 (MIMD)。在一些实施例中, 计算设备 100 可以包括任何数目的 SIMD 和 MIMD 处理器。 0041 计算设备300在某些实施例中可以包括图形处理器或者图形处理单元(未示出)。 图形处理单元可以包括软件和硬件的任何组合, 并且还可以输入图形数据和图形指令, 根 据所输入的数据和指令来渲染图形, 以及输出所渲染的图形。 在某些实施例中, 图形处理单 说 明 书 CN 1041。

44、15471 A 9 7/11 页 10 元可以被包括在处理单元 321 内。在其他实施例中, 计算设备 300 可以包括一个或多个处 理单元 321, 其中至少一个处理单元 321 专用于处理和渲染图形。 0042 计算机器 300 的一个实施例包括经由也被称为后端总线的次级总线与高速缓冲 存储器 340 通信的中央处理单元 321, 而计算机器 300 的另一实施例包括经由系统总线 350 与高速缓冲存储器通信的中央处理单元 321。本地系统总线 350 在某些实施例中还可以被 中央处理单元用来与多于一种类型的 I/O 设备 330 通信。在某些实施例中, 本地系统总线 350可以是以下类型。

45、的总线中的任何一个 : VESA VL总线 ; ISA总线 ; EISA总线 ; 微通道架构 (MCA) 总线 ; PCI 总线 ; PCI-X 总线 ; PCI-Express 总线 ; 或者 NuBus( 网络用户总线 )。计算 机器 300 的其他实施例包括 I/O 设备 330, 其包括与中央处理单元 321 通信的视频显示器 224。 计算机器300的更多其他版本包括经由以下连接中的任何一个而连接到I/O设备330 的处理器 321 : 超传输, 快速 I/O 或者无限带宽。计算机器 300 的其他实施例包括使用本地 互连总线与一个 I/O 设备 330a 通信并且使用直接连接与第二。

46、 I/O 设备 330b 通信的处理器 321。 0043 计算设备 300 在某些实施例中包括主存储器单元 322 和高速缓冲存储器 340。高 速缓冲存储器 340 可以是任何存储器类型, 并且在某些实施例中可以是以下类型存储器 中的任何一个 : SRAM ; BSRAM ; 或者 EDRAM。其他实施例包括可以是以下类型的存储器中的 任何一个的高速缓冲存储器 340 和主存储器单元 322 : 静态随机访问存储器 (SRAM), 突发 SRAM 或者同步突发 SRAM(BSRAM) ; 动态随机访问存储器 (DRAM) ; 快速页面模式 DRAM(FPM DRAM) ; 增强型DRAM(。

47、EDRAM), 扩展数据输出RAM(EDO RAM) ; 扩展数据输出DRAM(EDO DRAM) ; 突发扩展数据输出 DRAM(BEDO DRAM) ; 增强型 DRAM(EDRAM) ; 同步 DRAM(SDRAM) ; JEDEC SRAM ; PC100SDRAM ; 双倍数据速率 SDRAM(DDR SDRAM) ; 增强型 SDRAM(ESDRAM) ; 同步链路 DRAM(SLDRAM) ; 直接Rambus DRAM(DRDRAM) ; 铁电RAM(FRAM) ; 或者任何其他类型的存储器。 其他实施例包括可经由以下各项访问主存储器 322 的中央处理单元 321 : 系统总。

48、线 350 ; 存 储器端口 303 ; 或者允许处理器 321 访问存储器 322 的任何其他连接、 总线或者端口。 0044 计算设备 200/300 的一个实施例提供对以下安装设备 216 中的任何一个的支持 : CD-ROM 驱动器、 CD-R/RW 驱动器、 DVD-ROM 驱动器、 各种格式的磁带驱动器、 USB 设备、 可引 导介质、 可引导 CD、 用于诸如之类的 GNU/Linux 发行版的可引导 CD、 硬盘驱 动器或者适合用于安装应用或者软件的任何其他设备。 应用在某些实施例中可以包括客户 端代理220, 或者客户端代理220的任何部分。 计算设备200/300还可以包括。

49、可以是一个或 多个硬盘驱动器或者独立磁盘的一个或多个冗余阵列的存储设备 228 ; 其中该存储设备被 配置用于存储操作系统、 软件、 程序应用或者客户端代理220的至少一部分。 计算设备200、 300 的另一实施例包括被用作存储设备 228 的安装设备 216。 0045 计算设备200、 300还可包括用来通过包括但不限于标准电话线路、 LAN或者WAN链 路 ( 例如, 802.11、 T1、 T3、 56kb、 X.25、 SNA、 DECNET)、 宽带连接 ( 例如, ISDN、 帧中继、 ATM、 吉 比特以太网、 通过 SONET 的以太网 )、 无线连接或者以上的任何或者所有的某种组合的各种 连接与局域网 (LAN)、 广域网 (WAN) 或者因特网以对接的网络接口 218。连接还可以使用各 种通信协议 ( 例如, TCP/IP、 IPX、 SPX、 NetBIOS、 以太网、 ARCNET、 SONET、 SDH、 光纤分布式数 据接口 (FDDI)、 RS232、 RS485、 IEEE 802.11、 IEEE 802.11a、 IEEE 802.11b、 IEEE 80。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1