用于基于用户选择的规格进行负载平衡的系统和方法

文档序号:6477154阅读:250来源:国知局
专利名称:用于基于用户选择的规格进行负载平衡的系统和方法
技术领域
0002本发明总的涉及数据通信网络。更具体地,本发明涉及用于基于一个或者多个用户选择的规格进行负载平衡服务的系统和方法。
背景技术
0003企业或者公司可以跨越网络布置多种服务来为许多用户提供服务。例如,客户机上的用户可以请求访问诸如web服务器的服务。该企业可以布置多个服务器来提供该服务,用来满足该需求并且从访问该服务的大量用户加载。例如,服务器群组可以提供能够处理客户机请求的一组服务器。此外,企业可以布置负载平衡器来管理对多个服务器的访问并且基于负载将客户机请求引导到适合的服务器。负载平衡器通过基于调度或者诸如循环法的负载分布算法选择下一个服务器来服务所接收的请求,以将负载分布跨越多个的服务器或者服务。负载平衡器可以监控客户机和服务器之间的请求和响应来确定服务器的负载或状态。
0004负载平衡器不监控关于服务器或者服务的操作或者性能的所有可能的信息。运行服务的服务器具有大量可以影响在处理来自负载平衡器的请求时服务器的负载的特征和参数。例如,负载平衡器可以不知道由服务器上的服务导致的CPU或者存储器使用情况或者服务器正在服务来自第二负载平衡器的多少其他请求。这些因数可以被用在负载平衡决策中,但是不能随时适用于负载平衡器。此外,网络管理员可以对影响服务器的负载的服务器的特征和参数具有更好的理解。例如,网络管理员可以理解,该服务在与服务器上的其它应用进行争用,对这些其他应用的用户的数量影响服务的性能。
0005因此,期望提供一种系统和方法来改进使用用户所选择的
参数和/或服务器可用的参数的服务的负载平衡。

发明内容
0006本发明通过提供负载平衡解决方案来提供对负载平衡的改进,允许用户从负载平衡设备收集的或者确定的规格以及从诸如运行服务的服务器的另一个装置获取的规格来选择规格、权重和阈值。所描述的系统和方法提供负载平衡技术,其中基于监控规格的另 一个装置所知的这样的规格可以做出负载平衡决策。负载平衡设备使用网络管理协议和通信模型,诸如简单网络管理协议(S丽P),来从服务器、服务或者其他装置识別和收集规格。这些规格在具有设备确定的规格的负载平衡设备上可用。经由设备的配置接口,用户可以选择一个或者多个设备确定的规格和/或经由网络管理协议获取的规格来确定服务的负载。由此,此处描述的负载平衡设备从用于负载平衡决策的其他资源获取大量规格。
理解来配置该设备以影响负载平衡决策方面提供极大地灵活性。
0007在一个方面,本发明涉及一种基于用户所选择的规格执行服务的负载平衡的方法。在一个实施例中,该方法包括步骤经由设备识别用于通过所述设备负载平衡的多个服务的多个规格;通过所述设备接收用于识别由用户对来自多个规格的第 一规格和第二规格的选择的信息;通过设备接收对于第 一用户所选择的规格由用户指定的第 一权重因数和对于第二用户所选择的规格由用户指定的第二权重因数;并且通过所述设备基于第一用户所选择的规格和第一用户所指定的权重因数以及第二用户所选择的规格和第二用户所指定的权重因数来确定用于多个服务的负载。
0008在一个实施例中,该方法包括通过所述设备接收客户机对于服务的请求,并且通过所述设备基于所确定的负载从多个服务选择第一服务来接收该请求。在一些实施例中,该方法包括通过所述^L备确定第 一用户选择的规格或者第二用户选择的规格的其中 一个在用户选择的阈值内。
0009在其他实施例中,该方法包括步骤通过所述设备接收对于第 一用户选择的规格或者第二用户选择的规格的其中 一个由用户所识别的阈值。在其他实施例中,该方法包括通过所述设备接收客户机对服务的请求,确定对于多个服务的第 一服务的用户选择的规格或者第二用户规格的其中 一个已经达到用户识别的阈值,并且从多个服务选择第二服务来接收该请求。
0010在又一些实施例中,该方法包括步骤设备经由对服务器的简单网络管理协议(S丽P)查询获取第一用户选择的规格或者第二用户选择的规格的其中一个的值。在一些实施例中,该方法包括通过设备基于对于规格所收集的值的平均值来确定第一用户选择的规格或者第二用户选择的规格的其中一个的值。在一些实施例中,该方法包括通过第一用户选择的规格或者第二用户选择的规格的其中一个指示服务的性能或者操作特征的其中一个。在另一个实施例中,其中该方法包括多个规格,该方法包括以下其中一个与服务的多个连接、发送到服务或者由服务发送的多个分组、服务响应请求的响应时间和服务的网络带宽使用。在一些其他实施例中,该方法包括通过设备从用户接收指定到设备的信息以收集用户限定的规格。在一些实施例中,该方法包括通过设备从用户接收识别用于用户限定的规格的对象标识符的信息以经由简单网络管理协议(S丽P)请求对iE务器进行查询。
0011在另一个方面,本发明涉及基于用户选择的规格和设备建立的规格来执行服务的负载平衡的另一个方法。在一个实施例中,该方法包括步骤通过设备接收对于该设备负载平衡的服务的多个规格由用户选择的第一规格和对于由用户指定的第一规格的第一权重因数;通过设备建立用于负载平衡该服务的多个规格的第二规格和用于第二规格的第二权重因数;通过设备收集用于第一用户选择的规格和设备建立的第二规格的数据;并且通过设备基于第一用户选择的规格和第一用户指定的权重因数和设备建立的第二规格和第二权重因数来确定用于服务的负载。在一些实施例中,该方法还包括通过设备接收客户机对服务的请求,并且通过所述设备基于所确定的负载从多个服务选择第一服务来接收该请求。在一些实施例中,该方法包括通过所述i殳备确定第二规格在设备建立的阈值内。在一些实施例中,该方法包括通过i殳备确定第一用户选择的规格在用户选择的阈值内。
0012在一个实施例中,该方法包括步骤通过所述设备接收对于第一用户选择的规格或者设备建立的第二规格由用户所识别的阈值。在一些实施例中,该方法包括通过所述设备接收客户机对服务的请求,确定对于多个服务的第 一服务的用户选择的规格或者第二规格的其中一个已经达到用户识别的阈值,并且从多个服务选择第二服务来接收该请求。
0013在另一个实施例中,该方法包括步骤设备经由对服务器的简单网络管理协议(SNMP)查询获取第一用户选4奪的规格或者第二规格的其中一个的值。在一些实施例中,该方法包括通过设备基于对于规格所收集的值的平均值来确定第一用户选择的规格或者第二规格的其中
一个的值。在一些其它实施例中,该方法包括通过第一用户选择的规格或者第二规格指示服务的性能或者操作特征。
0014在另一个实施例中,其中,该方法包括以下规格的其中一个与服务的多个连接、发送到服务或者由服务发送的多个分组、服务响应请求的响应时间和服务的网络带宽使用。在一些其他实施例中,该方法包括通过设备从用户接收对于所述设备指示收集用户限定的规格的信息。在一些其它实施例中,该方法包括通过设备从用户接收识别用于用户限定的规格的对象标识符的信息以经由简单网络管理协议(S應P )请求对服务器查询。在其他实施例中,该方法包括由设备通过监控对服务的请求和响应来获取对于第二规格的数据。
0015在另一个方面,本发明涉及基于用户选择的规格和用户指定的权重因数来执行服务的负载平衡的设备。在一个实施例中,该设备包括配置接口 ,用于接收识别由用户从负载平衡多个服务的多个规格选择的第一规格和第二规格的信息,和识别对于第一规格由用户指定的第
一权重因数和对于第二规格由用户指定的第二权重因数的信息。该设备还包括用于负载平衡多个服务的虚拟服务器。该设备还包括对于第一用 户选择的规格和第二用户选择的规格收集数据的负载监控器。对于第二 用户选择的规格,响应于负载监控器,虚拟服务器基于第一用户所选择 的规格和第一用户所指定的权重因数以及第二用户所选择的规格和第二 权重因数来确定用于服务的负载。
0016在一个实施例中,该设备包括虚拟服务器,所述虚拟服务
器接收客户对于服务的请求,并且基于所确定的负载从多个服务选择第 一服务来接收该请求。在一些实施例中,该负载监控器确定第一用户选 择的规格或者第二用户选择的规格的其中一个在用户选择的阈值内。
0017在其他实施例中,该设备的配置接口接收对于第一用户选 择的规格或者第二用户选择的规格的其中 一个由用户所识别的阈值。在 其他实施例中,该虚拟服务器接收客户机对服务的请求,并且负载监控 器确定对于多个服务的第一服务的用户选择的规格或者第二用户规格的 其中一个已经达到用户识别的阈值,并且响应于负载监控器,虛拟服务 器从多个服务选择第二服务来接收该请求。
0018在另一个实施例中,设备的负载监控器经由对服务器的简 单网络管理协议(SNMP)查询获取第一用户选择的规格或者第二用户选 择的规格的其中一个的值。在一些实施例中,设备的负载监控器基于对 于规格所收集的值的平均值来确定第一用户选择的规格或者第二用户选 择的规格的其中一个的值。在其它实施例中,第一用户选择的规格或者 第二用户选择的规格包括服务的性能或者操作特征。在又一些实施例中, 其中该规格包括以下其中一个与服务的多个连接、发送到服务或者由 服务发送的多个分组、服务响应请求的响应时间和服务的网络带宽使用。
0019在另一个实施例中,设备的配置接口从指定以收集用户限 定的规格的用户接收信息。在一些实施例中,配置接口从用户接收识别 用于用户限定的规格的对象标识符的信息以经由简单网络管理协议 (S丽P)请求对服务器查询。在又一个实施例中,设备的配置接口包括 图形用户接口或者命令行接口的其中 一个。配置接口可以在设备上或者 和设备通信的装置上执行。
0020在另一个方面,本发明涉及基于用户选择的规格和用户指定的权重因数来执行服务的负载平衡的设备。在一个实施例中,该设备 包括配置接口 ,用于接收识别来自对于负载平衡多个服务的多个规格的 由用户选择的第 一规格的信息和对于第 一规格由用户指定的第 一权重因
数的信息;该设备还包括用于负载平衡多个服务的虚拟服务器,虚拟服
务器建立第二规格和第二权重因数。第二设备还包括负载监控器用于收 集用于第一用户选择的规格和第二规格的数据。响应于负载监控器,虚 拟服务器基于第 一用户选择的规格和第 一用户指定的权重因数和第二规 格和第二权重因数来确定用于服务的负载。
0021在一个实施例中,虚拟服务器接收客户机对服务的请求, 并且基于所确定的负载从多个服务选择第一服务来接收该请求。在一些 实施例中,负载监控器确定第二规格在设备建立的阈值内。在其它实施 例中,负载监控器确定第 一用户选择的规格在用户选择的阈值内。
0022在另一个实施例中,配置接口接收对于第一用户选择的规 格或者通过虚拟服务器建立的第二规格由用户所识别的阔值。在一些实 施例中,虚拟服务器接收客户机对服务的请求,并且负载监控器确定对 于多个服务的第 一服务的用户选择的规格或者第二规格已经达到用户识 别的阁值。在这些实施例中,虚拟服务器响应于负载监控器从多个服务 选择第二服务来接收该请求。
0023在又一个实施例中,负载监控器经由对服务器的简单网络 管理协议(S薩P)查询获取第一用户选择的规格或者第二规格的值。在 一些实施例中,负载监控器通过监控经由设备对服务的请求和响应来获 取对于第二规格的数据。在一些实施例中,负载监控器基于对于规格所 收集的值的平均值来确定第一用户选择的规格或者第二规格的值。在其 它实施例中,第一用户选择的规格或者第二规格包括服务的性能或者操 作特征。
0024在另一个实施例中,其中,规格包括以下的其中一个与 服务的多个连接、发送到服务或者由服务发送的多个分组、服务响应请 求的响应时间和服务的网络带宽使用。在一些实施例中,配置接口从用 户接收指示收集用户限定的规格的信息。在一些其它实施例中,配置接 口从用户接收识别用于用户限定的规格的对象标识符的信息以经由简单网络管理协议(S丽P)请求对服务器查询。
0025在又一个实施例中,配置接口包括图形用户接口或者命令 行接口。在一些实施例中,配置接口可以在设备上或者和设备通信的装 置上执行。
0026在下面附图和具体实施方式
中提出本发明的多种实施例的
细节。


0027参考结合附图的以下描述,本发明的前述和其他对象、方
面、特征和优势将会变得更加明显和更好理解,其中
图1A是客户机经由设备来访问服务器的网络环境的实施例的框图; 图1B是经由设备来将计算环境从服务器递送到客户机的环境的实施
例的框图1C是经由多个设备来将计算环境从服务器递送到客户机的另 一个
环境的实施例的框图1D是经由网络来将计算环境从服务器递送到客户机的环境的实施 例的框图1E和1F是计算装置的实施例的框图2A是处理在客户机和服务器之间的通信的设备的实施例的框图; 图2B是用于在客户机和服务器之间优化、加速、负载平衡和路由通
信的设备的另 一个实施例的框图3是经由设备来与服务器进行通信的客户机的实施例的框图4A是用于经由网络管理协议收集规格并且用于基于用户选择的规
格确定服务的负载的设备的实施例的框图4B是用于基于图4B的视图中的用户选择的规格执行负载平衡的
方法的步骤的实施例的流程图5A是用于在异类装置之间执行全局服务器负载平衡的网络环境的
实施例的框图5B是在异类装置之间执行服务器负载平衡的设备的实施例的框
图;图5C是用于在异类装置之间全局服务器负载平衡的方法的步骤的实
施例的流程图;和
的流程图。
0028根据以下结合附图提出的详细描述,本发明的特征和优势 将变得更加明显,其中相同的参考特征在全文中是指对应的元件。在附 图中,相似的附图标记通常指示相同的、功能类似的和/或结构类似的元 件。
具体实施例方式
0028为了阅读下面的本发明的多个实施例的描述,说明下面的
说明书的各部分以及它们相应的内容是有帮助的
部分A描述用于实现本发明的实施例的网络环境和计算环境;
部分B描述用于将计算环境加速递送到远程用户的系统和设备架构
的实施例;
部分C描述用于加速在客户机和服务器之间的通信的客户机代理的 实施例;
部分D描述用于基于通过用户从设备确定的规格选择的规格和/或经 由简单网络管理协议从装置收集的规格执行负载平衡的系统和方法的实 施例;和
部分E描述用于在异类装置之间全局服务器负载平衡的系统和方法 的实施例。
A.网络和计算环境
0029在讨论设备和/或客户机的系统和方法的实施例的细节之 前,讨论可以部署这样的实施例的网络和计算环境是有帮助的。现在参 考图1A,描述了网络环境的一个实施例。总的来说,网络环境包括经由 一个或多个网络104和10(通常被称为网络104)与一个或多个服务 器106a-106n (通常也被称为服务器106或远程机器106 )通信的一个或 多个客户机102a-102n (通常也被称为本地机器102或客户机102)。在一些实施例中,客户机102经由设备200与服务器106通信。
0030虽然图1A示出客户机102和服务器106之间的网络104和 网络104',但客户机102和服务器106可以在同一个网络104上。网络 104和104'可以是相同类型的网络或不同类型的网络。网络104和/或网 络104'可以是像公司内联网的局域网(LAN)、城域网(MAN)或者诸如因 特网或万维网的广域网(WAN)。在一个实施例中,网络104'可以是专用 网而网络104可以是/〉用网。在一些实施例中,网络104可以是专用网 而网络10〔可以是公用网。在另一个实施例中,网络104和104'可以都 是专用网。在一些实施例中,客户机102可以位于/>司的分支机构,经 由网络104上的WAN连接来与位于公司的数据中心的服务器106进行通 信。
0031网络104和/或10〔可以是任意类型和/或形式的网络,并 且可以包括下列任意一种网络点到点网络、广播网、广域网、局域网、 远程通信网、数据通信网、计算机网络、ATM(异步传送模式)网络、SONET (同步光学网络)网络、SDH (同步数字系列)网络、无线网络和有线网 络。在一些实施例中,网络104可以包括诸如红外信道或卫星频带的无 线链路。网络104和/或104'的拓朴结构可以是总线型、星型或环型网络 拓朴结构。网络104和/或104'以及网络拓朴结构可以是能够支持此处描 述的操作的本领域内普通技术人员所知的任一种这样的网络或网络拓朴 结构。
0032如图1A所示,在网络104和104'之间示出也可以被称为接 口单元200或网关200的设备200。在一些实施例中,设备200可以位于 网络104上。例如,公司的分支机构可以在所述分支机构处部署设备200。 在其它实施例中,设备200可以位于网络104'上。例如,设备200可以 位于公司的数据中心。在又一个实施例中,多个设备200可以部署在网 络104上。在一些实施例中,多个设备200可以部署在网络104'上。在 一个实施例中,第一设备200与第二设备20(T相通信。在其它的实施例 中,设备200可以是在与客户机102相同或不同的网络104, 104'上的任 意客户机102或服务器106的一部分。 一个或多个设备200可以位于在 客户机102和服务器106之间的网络或网络通信路径中的任一点处。0033在一些实施例中,设备200包括一皮称为Citrix NetScaler 装置的由4立于Ft. Lauderdale Florida的Citrix Systems />司制it的 任意网络装置。在其它实施例中,设备200包括由位于 Seattle, Washington的F5 Networks公司制造的被称为WebAccelerator 和BigIP的任意一个产品实施例。在另一个实施例中,设备205包括由 4立于Sunnyvale, California的Juniper Networks公司制造的DX力口速 装置平台和/或诸如SA700、 SA2000、 SA4000和SA6000装置的SSL VPN 系列装置中的任意一个。在又一个实施例中,设备200包括由位于San Jose, California的Cisco Systems 7>司制造的<壬意应用加速和/或安全 相关的设备和/或软件,例如Cisco ACE应用控制引擎模块业务 (Application Control Engine Module service)软件和网络模块以及 Cisco AVS系列应用速度系统(Application Velocity System )。
0034在一个实施例中,该系统可以包括多个逻辑分组的服务器 106。在这些实施例中,服务器的逻辑分组可以被称为服务器群组38。在 这些实施例中的一些实施例中,服务器106可以是在地理上分散的。有 时候,群组38可以被管理为单一的实体。在其它实施例中,服务器群组 38包括多个服务器群组38。在一个实施例中,服务器群组代表一个或多 个客户机102来执行一个或多个应用。
0035在每个群组38中的服务器106可以是不同种类的。 一个或 多个服务器106可以根据一种类型的操作系统平台(例如,由位于 Redmond, Washington的樣i软公司出品的WINDOWS NT)来进行才喿作,而一 个或多个其它的服务器106可以根据另一种类型的操作系统平台(例如, Unix或Linux)来进行操作。每个群组38中的服务器106不需要与同一 群组38中的另一个服务器106物理上接近。因此,逻辑上被分组为群组
network, MAN )连4妄来互连。例如,群组38可以包括在物理上位于不同 的洲或位于一个洲、国家、州、城市、校园或房间的不同区域的服务器 106。如果使用局域网(LAN)连接或一些形式的直接连接来连接服务器 106,则可以增加在群组38中的服务器106之间的数据传输速度。
0036服务器106可以被称为文件服务器、应用服务器、web服务器、代理服务器或网关服务器。在一些实施例中,服务器106可以有能力
起到应用服务器或主应用服务器的作用。在一个实施例中,服务器106可 以包括活动目录(Active Directory )。客户才几102也可以祐:称为客户^L 节点或端点。在一些实施例中,客户机102有能力起到寻求访问服务器上 的应用的客户机节点以及作为对于其它的客户机10 2 a -10 2 n提供对寄载 的应用的访问的应用服务器的作用。
0037在一些实施例中,客户机102与服务器106进行通信。在 一个实施例,客户机102直接与群组38中的服务器106的其中一个进行 通信。在另一个实施例中,客户机102执行程序邻近应用以与群组38中 的服务器106进行通信。在又一个实施例中,服务器106提供主节点的 功能。在一些实施例中,客户机102通过网络104与群组38中的服务器 106进行通信。例如,通过网络104,客户机102可以请求执行由群组38 中的服务器106a-106n寄载的多个应用,并接收应用执行的输出结果用 于显示。在一些实施例中,只有主节点提供所要求的识别并提供与寄载 被请求的应用的服务器10 6'相关的地址信息的功能。
0038在一个实施例中,服务器106提供web服务器的功能。在 另一个实施例中,服务器106a从客户机102接收请求,将请求转发到第 二服务器106b,并使用来自于服务器106b的对请求的响应来对客户机 102的请求进行响应。在又一个实施例中,服务器106获得客户机102可 用的应用的列举以及与寄载由所述应用的列举所标识的应用的服务器 106相关的地址信息。在又一个实施例中,服务器106使用web接口将对 请求的响应提供给客户机102。在一个实施例中,客户机102直接与服务 器106进行通信以访问所标识的应用。在另一个实施例中,客户机102 接收由执行服务器106上的标识的应用所生成的诸如显示数据的应用输 出数据。
0039现在参考图1B,描述了部署多个设备200的网络环境的实 施例。第一设备200可以部署在第一网络104上,而第二设备20(T部署 在第二网络104'上。例如,公司可以在分支机构部署第一设备200,而 在数据中心部署第二设备200\在另一个实施例中,第一设备200和第 二设备200'被部署在同一个网络104或网络104'上。例如,第一设备200可以部署用于第一服务器群组38,而第二设备200'可以部署用于第二服 务器群组38'。在另一个实例中,第一设备200可以部署在第一分支机构, 而第二设备20(y被部署在第二分支机构'。在一些实施例中,第一设备 200和第二设备200'彼此协同或联合工作,以加速客户机和服务器之间 的网络业务量或应用和数据的递送。
0040现在参考图1C,描述了使用一个或多个其它类型的设备, 例如在一个或多个WAN优化设备205, 205'之间,来部署设备200的网络 环境的另一个实施例。例如,第一 MN优化设备205显示在网络104和 104'之间,而第二 WAN优化设备205'可以部署在设备200和一个或多个 服务器106之间。通过示例,公司可以在分支机构部署第一 WAN优化设 备205,而在数据中心部署第二WAN优化设备205'。在一些实施例中, 设备205可以位于网络104'上。在其它实施例中,设备205'可以位于网 络104上。在一些实施例中,设备205'可以位于网络104'或网络104" 上。在一个实施例中,设备205和205'在同一个网络上。在另一个实施 例中,i殳备205和205'在不同的网络上。在另一个实例中,第一WAN优 化设备205可以部署用于第一服务器群组38,而第二WAN优化设备205' 可以部署用于第二服务器群组38'。
0041在一个实施例中,设备205是用于加速、优化或者以其他 方式改善诸如往和/或返于WAN连接的业务量的任意类型和形式的网络业 务量的性能、操作或服务质量的装置。在一些实施例中,设备205是一 个性能提高的代理。在其它实施例中,设备205是任意类型和形式的WAN 优化或加速装置,有时也被称为WAN优化控制器。在一个实施例中,设 备205是由位于Ft. Lauderdale Florida的Citrix Systems公司出品 的被称为WANScaler的产品实施例中的任意一种。在其它实施例中,设 备205包括由位于Seattle, Washington的F5 Networks公司出品的^皮称 为BIG-IP链路控制器和WANjet的产品实施例中的任意一种。在另一个 实施例中,i殳备205包4舌由<立于Sunnyvale, California的 Juniper Networks公司出品的WX和WXC WAN加速装置平台中的任意一种。在一 些实施例中,设备205包括由San Francisco, California的Riverbed Technology公司出品的虹鳟(steelhead)系列WAN优化设备中的任意一种。在其它实施例中,i殳备205包才舌由^f立于Roseland,NewJersey的Expand Networks公司出品的WAN相关装置中的任意一种。在一个实施例中,设 备205包4舌由4立于Cupertino, California的Packeteer />司出品的4壬 意一种WAN相关i殳备,例如由Packeteer ^是供的PacketShaper、 iShared 和SkyX产品实施例。在又一个实施例中,设备205包括由位于San Jose, California的Cisco Systems公司出品的任意WAN相关设备和/或软件, 例如Ci sco广域网应用服务软件和网络模块以及广域网引擎设备。
0042在一个实施例中,设备205提供用于分支机构或远程办公 室的应用和数据加速业务。在一个实施例中,设备205包括广域文件服 务(WAFS)的优化。在另一个实施例中,设备205加速文件的递送,例 如经由通用Internet文件系统(CIFS)协议。在其它实施例中,设备205 在存储器和/或存储设备中提供高速緩存来加速应用和数据的递送。在一 个实施例中,设备205提供在任意级别的网络堆栈或在任意的协议或网 络层的网络业务量的压缩。在另一个实施例中,设备205提供传输层协 议优化、流量控制、性能增强或修改和/或管理,以加速WAN连接上的应 用和数据的递送。例如,在一个实施例中,设备205提供传输控制协议 (TCP)优化。在其它实施例中,设备205提供对于任意会话或应用层协 议的优化、流量控制、性能增强或修改和/或管理。
0043在另一个实施例中,设备205将任意类型和形式的数据或 信息编码成网络分组的定制或标准的TCP和/或IP报头字段或可选字段, 以将存在、功能或能力通告给另一个设备205'。在另一个实施例中,设 备205'可以使用在TCP和/或IP报头字段或选项中编码的数据来与另一 个设备205'进行通信。例如,设备可以使用TCP选项或IP报头字段或选 项来传达在执行诸如WAN加速的功能时或者为了彼此联合工作而由设备 205, 205'所^f吏用的一个或多个参数。
0044在一些实施例中,设备200保存在设备205和205'之间传 达的TCP和/或IP报头和/或可选字段中编码的任意信息。例如,设备200 可以终止经过设备200的传输层连接,例如经过设备205和205'的在客 户机和服务器之间的一个传输层连接。在一个实施例中,设备200识别 并保存在由第一设备205通过第一传输层连接发送的传输层分组中的任意编码信息,并经由第二传输层连接来将具有编码信息的传输层分组传
达到第二设备205'。
0045现在参考图1D,描述了用于递送和/或操作客户机102上的 计算环境的网络环境。在一些实施例中,服务器106包括用于将计算环 境或应用和/或数据文件递送给一个或多个客户机102的应用递送系统 190。简单斗既述,客户机10经由网络104、 104'和设备200与服务器106 通信。例如,客户机102可以驻留在例如分支机构的公司的远程办公室, 而服务器106可以驻留在公司的数据中心。客户机102包括客户机代理 120和计算环境15。计算环境15可以执行或操作访问、处理或使用数据 文件的应用。可以经由设备200和/或服务器106来递送计算环境15、应 用和/或数据文件。
0046在一些实施例中,设备200加速将计算环境15或其任意部 分递送给客户机102。在一个实施例中,设备200通过应用递送系统190 来加速计算环境15的递送。例如,此处描述的实施例可以用来将可由应 用处理的流应用和数据文件加速从中央的公司数据中心递送到远程用户 的位置,例如公司的分支机构。在另一个实施例中,设备200加速在客 户机102和服务器106之间的传输层业务量。设备200可以提供用于加 速从服务器106到客户机102的任意传输层有效载荷的加速技术,例如 l)传输层连接池,2)传输层连接多路复用,3)传输控制协议緩冲,4) 压缩和5)高速緩存。在一些实施例中,设备200提供响应于客户机102 的请求的服务器106的负载平衡。在其它实施例中,设备200充当代理 或访问服务器以提供对一个或多个服务器106的访问。在另一个实施例 中,设备200提供从客户机102的第一网络104到服务器106的第二网 络104'的安全虚拟专用网连接,例如SSLVPN连接。在又一些实施例中, 设备200提供在客户机102和服务器106之间的连接和通信的应用防火 墙安全、控制和管理。
0047在一些实施例中,应用递送管理系统190根据多个执行方 法以及根据经由策略引擎195应用的任意验证和授权策略来提供将计算 环境递送到远端或另外的用户的桌面的应用递送技术。使用这些技术, 远程用户可以从任意网络连接装置100获取计算环境以及访问服务器存4诸的应用和数据文件。在一个实施例中,应用递送系统190可以驻留于 服务器106或在服务器106上执行。在另一个实施例中,应用递送系统 190可以驻留于多个服务器106a-106n上或在多个服务器106a-106n上执 行。在一些实施例中,应用递送系统190可以在服务器群组38中执行。 在一个实施例中,执行应用递送系统190的服务器106还可以存储或提 供应用和数据文件。在另一个实施例中,第一组的一个或多个服务器106 可以执行应用递送系统190,而不同的服务器106n可以存储或提供应用 和数据文件。在一些实施例中,应用递送系统190、应用和数据文件中的 每一个可以驻留或位于不同的服务器上。在又一个实施例中,应用递送 系统190的任意部分可以驻留、执行或保存或被分配于设备200或多个 设备。
0048客户机102可以包括用于执行使用或处理数据文件的应用 的计算环境15。客户机102可以经由网络104、 104'和设备200来从服 务器106请求应用和数据文件。在一个实施例中,设备200可以将来自 于客户机102的请求转发到服务器106。例如,客户机102可以不具有本 地存储或可存取的应用和数据文件。响应于请求,应用递送系统190和/ 或服务器106可以递送应用和数据文件到客户机102。例如,在一个实施 例中,服务器106可以以应用流的形式发送应用,以在客户机102上的 计算环境15中进行操作。
0049在一些实施例中,应用递送系统190包括Citi-ix Systems 公司的例如MetaFrame或Citrix表示(Presentation )服务器,的Citrix 访问套件 的任意部分和/或由微软公司出品的任意一种微软⑧Windows 终端月l务。在一个实施例中,应用递送系统190可以通过远程显示协议 或以其它方式通过基于远程或基于服务器的计算来递送一个或多个应用 到客户机102或用户。在另一个实施例中,应用递送系统190可以通过 应用的流式传输来递送一个或多个应用到客户机或用户。
0050在一个实施例中,应用递送系统190包括用于控制和管理 应用执行方法的访问、选择以及应用的递送的策略引擎195。在一些实施 例中,策略引擎195确定用户或客户机102可以访问的一个或多个应用。 在另一个实施例中,策略引擎195确定应用应该如何被递送给用户或客户机102,例如执行方法。在一些实施例中,应用递送系统190提供从中
选择应用执行方法的多个递送技术,例如基于服务器的计算、本地流式
传输或递送应用给客户机120以用于本地执行。
0051在一个实施例中,客户机102请求执行应用程序而包括服 务器106的应用递送系统190选^f执行应用程序的方法。在一些实施例 中,服务器106从客户机102接收证书。在另一个实施例中,服务器106 从客户机102接收列举可用的应用的请求。在一个实施例中,响应于所 述请求或收到的证书,应用递送系统190列举客户机102可用的多个应 用程序。应用递送系统190接收请求以执行所列举的应用。应用递送系 统190选裤:预定凄t目的方法中的一个来执行列举的应用,例如响应于策 略引擎的策略。应用递送系统190可以选择一个执行应用的方法,使得 客户机102可以接收通过在服务器106上执行应用程序而生成的应用输 出数据。应用递送系统190可以选择执行应用的方法,使得本地机器10 可以在4全索包括应用的多个应用文件之后本地执行所述应用程序。在又 一个实施例中,应用递送系统190可以选择#1行应用的方法以经由网络 104将应用流式传输到客户机102。
0052客户机102可以执行、操作或以其他方式提供应用,所述 应用可以是任意类型和/或形式的软件、程序或可执行指令,例如任意类 型和/或形式的web浏览器、基于web的客户机、客户机-服务器应用、 瘦-客户机的计算客户机、ActiveX控件、或Java小程序、或可以在客户 机102上执行的任意其它类型和/或形式的可执行指令。在一些实施例中, 应用可以是代表客户机102在服务器106上执行的基于服务器或基于远 程的应用。在一个实施例中,服务器106可以使用任意瘦-客户机或远程 显示协议来显示输出到客户机102,所述远程显示协议例如由位于Ft. Lauderdale, Florida的Citrix Systems公司出品的独立计算架构(ICA) 协议或由位于Redmond, Washington的微软公司出品的远程桌面协议 (RDP)。应用可以使用任意类型的协议,并且它可以是例如HTTP客户机、 FTP客户才几、Oscar客户机或Telnet客户机。在其它实施例中,应用包 括与VoIP通信相关的任意类型的软件,例如软IP电话。在进一步的实 施例中,应用包括与实时数据通信相关的任意应用,例如用于流式传输视频和/或音频的应用。
0053在一些实施例中,服务器106或服务器群组38可以运行一 个或多个应用,例如提供瘦-客户机计算的应用或远程显示表示应用的应 用。在一个实施例中,服务器106或服务器群组38作为应用而执行Citrix Systems /〉司的例如MetaFrame或Ci trix表示服务器7"的Citrix访问套 件tm的任意部分和/或由微軟公司出品的任意一种微软⑧Windows终端服 务。在一个实施例中,应用是由位于Fort Lauderdale, Florida的Citrix Systems z^司开发的ICA客户才几。在其它实施例中,应用包^"由位于 Redmond, Washington的微软公司开发的远程桌面(RDP)客户机。此外, 服务器106可以运行应用,例如,所述服务器106可以是提供例如由位 于Redmond, Washington的孩i软公司出品的微软Exchange的电子邮件服 务的应用服务器、web或Internet服务器、或桌面共享服务器、或协作 服务器。在一些实施例中,任意一种应用可以包括任意类型的寄载服务 或产品,例如由Santa Barbara, California的Citrix Online部门提供 的GoToMeeting 、由位于Santa Clara, California的WebEx /〉司提供的 WebEx 、或由位于Redmond, Washington的微软公司提供的微软Office Live Meeting。
0054仍然参考图1D,网络环境的一个实施例可以包括监控服务 器106A。监控服务器106A可以包括任意类型和形式的性能监控业务198。 性能监控业务198可以包括监控、测量和/或管理软件和/或硬件,包括 数据收集、集合、分析、管理和报告。在一个实施例中,性能监控业务 198包括一个或多个监控代理197。监控代理197包括用于在诸如客户机 102、服务器1Q6或设备2QQ和2Q5的装置上执行监控、测量和数据收集 活动的任意软件、硬件或其组合。在一些实施例中,监控代理197包括 诸如Visual Basic脚本或Java描述语言的任意类型和形式的脚本。在 一个实施例中,监控代理197相对于装置的任意应用和/或用户透明地执 行。在一些实施例中,监控代理197相对于应用或客户机不引人注目地 被安装和操作。在又一个实施例中,监控代理197被安装和操作而不需 要用于该应用或装置的任4可i殳备(instrumentation )。
0O55在一些实施例中,监控代理197以预定频率监控、测量和
24收集数据。在其它实施例中,监控代理197基于任意类型和形式的事件
的检测来监控、测量和收集数据。例如,监控代理197可以在检测到对 web页面的请求或收到HTTP响应时收集数据。在另一个实例中,监控代 理197可以在检测到诸如鼠标点击的任意用户输入事件时收集数据。监 控代理197可以报告或提供任意所监控、测量或收集的数据给监控业务 198。在一个实施例中,监控代理197根据调度或预定频率来发送信息给 监控业务198。在另一个实施例中,监控代理197在检测到事件时发送信 息给监控业务198。
0056在一些实施例中,监控业务198和/或监控代理197执行诸 如客户机、服务器、服务器群组、设备200、设备205或网络连接的任意 网络资源或网络基础结构元件的监控和性能测量。在一个实施例中,监 控业务198和/或监控代理197执行诸如TCP或UDP连接的任意传输层连 接的监控和性能测量。在另一个实施例中,监控业务198和/或监控代理 197监控和测量网络等待时间。在又一个实施例中,监控业务198和/或 监控代理197监控和测量带宽利用。
0057在其它实施例中,监控业务198和/或监控代理197监控和 测量终端用户响应时间。在一些实施例中,监控业务198执行应用的监 控和性能测量。在另一个实施例中,监控业务198和/或监控代理197执 行到应用的任意会话或连接的监控和性能测量。在一个实施例中,监控 业务198和/或监控代理197监控和测量浏览器的性能。在另一个实施例 中,监控业务198和/或监控代理197监控和测量基于HTTP的事务的性 能。在一些实施例中,监控业务198和/或监控代理197监控和测量工P 上语音(VoIP)应用或会话的性能。在其它实施例中,监控业务198和/ 或监控代理197监控和测量诸如ICA客户机或RDP客户机的远程显示协 议应用的性能。在又一个实施例中,监控业务198和/或监控代理197监 控和测量任意类型和形式的流媒体的性能。在进一步的实施例中,监控 业务198和/或监控代理197监控和测量寄载应用或软件即服务 (Software-As-A-Service, SaaS )递送模型的性能。
0058在一些实施例中,监控业务198和/或监控代理197执行与 应用相关的一个或多个事务、请求或响应的监控和性能测量。在其它实
25施例中,监控业务198和/或监控代理197监控和测量应用层堆栈的任意 部分,例如任意.NET或J2EE调用。在一个实施例中,监控业务198和/ 或监控代理197监控和测量数据库或SQL事务。在又一个实施例中,监 控业务198和/或监控代理197监控和测量任意方法、函数或应用编程接 口 (API)调用。
0059在一个实施例中,监控业务198和/或监控代理197执行经 由诸如设备200和/或设备205的一个或多个设备从服务器到客户机的应 用和/或数据的递送的监控和性能测量。在一些实施例中,监控业务198 和/或监控代理197监控和测量虚拟化应用的递送的性能。在其它实施例 中,监控业务198和/或监控代理197监控和测量流式应用的递送的性能。 在另一个实施例中,监控业务198和/或监控代理197监控和测量递送桌 面应用到客户机和/或在客户机上执行桌面应用的性能。在另 一个实施例 中,监控业务198和/或监控代理197监控和测量客户机/服务器应用的 性能。
0060在一个实施例中,监控业务198和/或监控代理197 ^皮设计 和构建为应用递送系统190提供应用性能管理。例如,监控业务198和/ 或监控代理197可以监控、测量和管理经由Citrix表示服务器递送应用 的性能。在该实例中,监控业务198和/或监控代理197监控单独的ICA 会话。监控业务198和/或监控代理197可以测量总的以及每次的会话系 统资源使用,以及应用和连网性能。监控业务198和/或监控代理197可 以对于给定用户和/或用户会话来标识有效服务器。在一些实施例中,监 控业务198和/或监控代理197监控在应用递送系统190和应用和/或数 据库服务器之间的后端连接。监控业务198和/或监控代理197可以测量 每个用户会话或ICA会话的网络等待时间、延迟和容量。
0061在一些实施例中,监控业务198和/或监控代理197测量和 监控对于应用递送系统190的诸如总的存储器使用、每个用户会话和/或 每个进程的存储器使用。在其它实施例中,监控业务198和/或监控代理 197测量和监控诸如总的CPU使用、每个用户会话和/或每个进程的应用 递送系统190的CPU使用。在另一个实施例中,监控业务198和/或监控 代理197测量和监控登录到诸如Citrix表示服务器的应用、服务器或应用递送系统所需的时间。在一个实施例中,监控业务198和/或监控代理
197测量和监控用户登录应用、服务器或应用递送系统190的持续时间。在一些实施例中,监控业务198和/或监控代理197测量和监控应用、服务器或应用递送系统会话的有效和无效的会话计数。在又一个实施例中,监控业务198和/或监控代理197测量和监控用户会话等待时间。
0062在又一个进一步的实施例中,监控业务198和/或监控代理197测量和监控任意类型和形式的服务器规格(metrics )。在一个实施例中,监控业务198和/或监控代理197测量和监控与系统存储器、CPU使用和磁盘存储器有关的规格。在另一个实施例中,监控业务198和/或监控代理197测量和监控和页错误有关的规格,诸如每秒页错误。在其它实施例中,监控业务198和/或监控代理197测量和监控往返时间的规格。在又一个实施例中,监控业务198和/或监控代理197测量和监控与应用崩溃、错误和/或中止相关的规格。
0063在一些实施例中,监控业务198和监控代理198包括由位于Ft. Uuderdale, Florida的Citrix Systems 7>司出品的#皮称为EdgeSight的任意一种产品实施例。在另一个实施例中,性能监控业务198和/或监控4戈理198包括由位于Palo Al to, Cal if ornia的Sy拳oniq公司出品的被称为TrueView产品套件的产品实施例的任意部分。在一个实施例中,性能监控业务198和/或监控代理198包括由位于SanFrancisco, California的TeaLeaf #支术乂>司出品的净皮称为TeaLeafCX产品套件的产品实施例的任意部分。在其它实施例中,性能监控业务198和/或监控代理198包括由位于Houston, Texas的BMC软件公司出品的诸如BMC性能管理器和巡逻产品(BMC Perfor隨nce Manager and Patrolproducts )的商业业务管理产品的任意部分。
0064客户机102、服务器106和设备200可以被部署和/或执行在任意类型和形式的计算装置上,例如可以在任意类型和形式的网络上通信并执行此处描述的操作的计算机、网络装置或设备。图1E和1F描述了可用于实施客户机102、服务器106或设备200的实施例的计算装置100的框图。如图IE和IF所示,每个计算装置100包括中央处理单元101和主存储器单元122。如图IE所示,计算装置100可以包括可视显示装置124、键盘126和/或诸如鼠标的点击装置127。每个计算装置100也可以包括另外的可选元件,例如一个或多个输入/输出装置130a-130b(通常使用附图标记130来指示)以及与中央处理单元101通信的高速緩存140。
0065中央处理单元101是响应并处理取自主存储器单元122的指令的任意逻辑电路。在许多实施例中,中央处理单元由微处理器单元提供,例如由位于Mountain View, California的Intel 7>司出品的产品;iiH立于Schaumburg, 111 inois的Motorola 7>司出品的产品;由^f立于Santa Clara, Cal if ornia的Transmeta 乂>司出品的产品;由位于WhitePlains, New York的国际商业才几器^^司出品的RS/6000处理器;或者由位于Sunnyvale, Cal if ornia的Advanced Micro Devices公司出品的产品。计算装置100可以基于任意的这些处理器、或者可以如此处所描述地操作的任意其它处理器。
0066主存储器单元122可以是可以保存数据并允许微处理器101直接访问的任意存储位置的一个或多个存储芯片,例如静态随机存取存储器(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、 PCI 00 SDRAM、双数据速率SDRAM ( DDR SDRAM )、增强型SDRAM(ESDRAM )、同步链接DRAM ( SLDRAM )、直接Rambus DRAM ( DRDRAM )、或铁电RAM ( FRAM )。主存储器122可以基于任意一种上面描迷的存储芯片、或者可以如此处所描述地操作的任意其它可用的存储芯片。在图IE中所示的实施例中,处理器101通过系统总线150(在下面进行更详细的描述)与主存储器122进行通信。图1E描述了在其中处理器通过存储器端口 103直接与主存储器122通信的计算装置100的实施例。例如,在图1F中,主存储器122可以是DRDRAM。
0067图1F描述了在其中主处理器101通过有时被称为背端总线的次级总线来直接与高速緩存140通信的实施例。在其它实施例中,主处理器101使用系统总线150与高速緩存140进行通信。高速緩存140典型地具有比主存储器122更快的响应时间,并且典型地通过SRAM、BSRAM或EDRAM来提供。在图IE中所示的实施例中,处理器101通过本地系统总线150与多个I/O装置130进行通信。多种总线可以用来将中央处理单元101连接到任意一种1/0装置130,所述总线包括VESA VL总线、ISA总线、EISA总线、微通道架构(MCA)总线、PCI总线、PCI-X总线、PCI-Express总线或NuBus。对于1/0装置是^L频显示器124的实施例,处理器101可以使用高级图形端口 (AGP)来与显示器124进行通信。图1F描述了在其中主处理器101通过HyperTransport、快速I/O或InfiniBand来直接与I/O装置130通信的计算机100的一个实施例。图1F还描述了混合本地总线和直接通信的一个实施例处理器101使用本地互连总线与I/O装置130进行通信,同时直接与I/O装置130进行通信。
0068计算装置100可以支持任意适当的安装装置116,例如用于接收像3. 5英寸、5. 25英寸^i盘或ZIP磁盘这样的软盘的软盘驱动器、CD-ROM驱动器、CD-R/RW驱动器、DVD-ROM驱动器、多种格式的磁带驱动器、USB装置、硬盘驱动器或适于安装像任意客户机代理120或其部分的软件和程序的任意其它装置。计算装置IOO还可以包括存储装置128,例如一个或多个硬盘驱动器或独立磁盘的冗余阵列,用于保存操作系统及其它相关软件,以及用于保存诸如与客户机代理120相关的任意程序的应用软件程序。可选地,任意一种安装装置116还可以被用作存储装置128。另外,操作系统和软件可以从可引导介质中运行,所述可引导介质例如像K冊PPIX⑧的可引导CD,作为来自于kno卯ix. net可用作GNU/Linux分发的GNU/Li證的可引导CD。
0069进一步地,计算装置100可以包括通过多种连接联接到局域网(LAN)、广域网(WAN)或因特网的网络"接口 118,所述多种连接包括但不限于标准电话线、LAN或WAN链路(例如,802.11、 Tl、 T3、 56kb、X.25)、宽带连接(例如,ISDN、帧中继、ATM)、无线连接或上述任意或所有连接的一些组合。网络接口 118可以包括内置网络适配器、网络接口卡、PCMCIA网卡、插件总线网络适配器、无线网络适配器、USB网络适配器、调制解调器或适于将计算装置100连接到可以传达并执行此处所描述的操作的任意类型的网络的任意其它装置。各式各样的I/O装置
130a-130n可以存在于计算装置100中。输入装置包括4建盘、鼠标、轨道 垫、轨道球、麦克风以及绘画板。输出装置包括视频显示器、扬声器、 喷墨打印机、激光打印机和染料升华打印机。I/O装置130可以由如图 1E所示的I/O控制器123控制。I/O控制器可以控制诸如键盘126和例 如鼠标或光笔的点击装置127的一个或多个I/0装置。进一步地,1/0装 置还可以为计算装置IOO提供存储装置128和/或安装介质116。还是在 其它实施例中,计算装置100可以提供USB连接以接收诸如由位于Los Alamitos, California的Twintech Industry公司出品的USB闪存驱动器 系列装置这样的便携USB存储装置。
0070在一些实施例中,计算装置100可以包括或连"l妄到多个显 示装置124a-124n,每个显示装置可以是相同或不同的类型和/或形式。 因而,任意一种1/0装置130a-130n和/或1/0控制器123可以包括任意 类型和/或形式的适当的硬件、软件或硬件和软件的组合,以支持、允许 或提供通过计算装置100连接和使用多个显示装置124a-124n。例如,计 算装置100可以包括任意类型和/或形式的视频适配器、视频卡、驱动程 序和/或库,以联系、通信、连接或以其他方式使用显示装置124a-124n。 在一个实施例中,视频适配器可以包括多个连接器以联接多个显示装置 124a-124n。在其它实施例中,计算装置100可以包括多个一见频适配器, 每个视频适配器连"^妻到一个或多个显示装置124a-124n。在一些实施例 中,计算装置100的操作系统的任意部分可以被配置用于使用多个显示 器124a-124n。在其它实施例中, 一个或多个显示装置124a-124n可以由 一个或多个诸如例如通过网络连接到计算装置100的计算装置100a和 100b的其它的计算装置来提供。这些实施例可以包括被设计和构建为将 另一个计算机的显示装置用作计算装置100的第二显示装置124a的任意 类型的软件。本领域普通技术人员将认识和理解计算装置100可以被配 置为具有多个显示装置124a-124n的多个方法和实施例。
0071在进一步的实施例中,1/0装置130可以是在系统总线l50 和外部通信总线之间的网桥170,所述外部通信总线例如USB总线、A卯le Desktop总线、RS-232串行连接、SCSI总线、FireWire总线、FireWire
30800总线、以太网总线、AppleTalk总线、吉比特以太网总线、异步传送' 才莫式总线、HIPPI总线、超HIPPI总线、SerialPlus总线、SCI/L鍵总 线、FibreChannel总线或串行附加小型计算机系统接口总线。
0072图1E和1F中描述类型的计算装置100典型地在控制任务 的调度和对系统资源的访问的操作系统的控制下操作。计算装置100可 以运行任意操作系统,例如任意一种版本的微软⑧Windows操作系统、不 同版本的Unix和Linux操作系统、用于Macintosh计算机的任意版本的 MacOS⑧、任意的嵌入式操作系统、任意的实时操作系统、任意的开放源 操作系统、任意的专用操作系统、用于移动计算装置的任意操作系统、 或者可以运行在计算装置上并执行此处所描述的操作的任意其它操作系 统。典型的操作系统其中包括WINDOWS 3. x、 WINDOWS 95、 WINDOWS 98、 WINDOWS 2000、 WINDOWS NT 3. 51、 WINDOWS NT 4. 0、 WINDOWS CE和WINDOWS XP,所有这些均由位于Redmond, Washington的微软公司出品;由位于 Cupertino, California的苹果计算才几出品的MacOS; 由4立于Armonk, New York的国际商业才几器/>司出品的OS/2;以及由位于Salt Lake City, Utah 的Caldera公司发布的可免费使用的Linux操作系统或者任意类型和/或 形式的Unix^l喿作系统,以及其它。
0073在其它实施例中,计算装置100可以具有和所述装置一致 的不同的处理器、操作系统和输入装置。例如,在一个实施例中,计算 机100是由Palm公司出品的Treo180、 270、 1060、 600或650智能电话。 在该实施例中,Treo智能电话在PalmOS操作系统的控制下操作,并包括 指示笔输入装置以及五向导航装置。此外,计算装置100可以是任意工 作站、台式计算机、膝上型或笔记本计算机、服务器、便携计算机、移 动电话、任意其它计算机、或者可以通信并具有执行此处所描述的操作 的足够的处理器能力和存储容量的其它形式的计算或电信装置。
B.设备架构
0074图2A举例说明了设备200的一个示例实施例。提供图2A 中的设备200的架构仅仅是为了说明,并不是意于进行限制。如图2所 示,设备200包括硬件层206和被分为用户空间202和内核空间204的软件层。
0075硬件层206提供在其上执行内核空间204和用户空间202 中的程序和服务的硬件元件。硬件层206还提供允许内核空间204和用 户空间202中的程序和服务关于设备200的向内和向外传递数据的结构 和元件。如图2所示,硬件层206包括用于执行软件程序和服务的处理 单元262、用于保存软件和婆t据的存储器264、用于在网络上发送和接收 数据的网络端口 266以及用于执行与在网络上发送和接收的数据的安全 套接字层处理相关的功能的加密处理器260。在一些实施例中,中央处理 单元262可以在单个的处理器中执行加密处理器260的功能。另外,硬 件层206可以包括用于每个处理单元262和加密处理器260的多个处理 器。处理器262可以包括如上所述的与图1E和1F有关的^f壬意处理器101。 在一些实施例中,中央处理单元262可以在单个的处理器中执行加密处 理器26G的功能。另外,硬件层206可以包括用于每个处理单元262和 加密处理器260的多个处理器。例如,在一个实施例中,设备20Q包括 第一处理器262和第二处理器262'。在其它实施例中,处理器262或262' 包括多核处理器。
0076虽然通常所示设备200的硬件层206具有加密处理器260, 但处理器260可以是用于执行与诸如安全套接字层(SSL )或传输层安全 (TLS)协议的任意加密协议相关的功能的处理器。在一些实施例中,处 理器260可以是通用处理器(GPP),并且在进一步的实施例中,可以具 有用于执行任意安全相关协议的处理的可执行指令。
0076虽然在图2中用某些元件来说明设备20Q的硬件层206,但 设备2 00的硬件部分或部件可以包括计算装置的任意类型和形式的元件、 硬件或软件,诸如此处结合图IE和1F来举例说明和讨i仑的计算装置100。 在一些实施例中,设备200可以包括服务器、网关、路由器、交换机、 网桥或其它类型的计算或网络装置,并具有与此相关的任意硬件和/或软 件元件。
0077设备200的操作系统将可用的系统存储器分配、管理或者 以其他方式分离成内核空间204和用户空间204。在示例的软件架构200 中,操作系统可以是任意类型和/或形式的Unix操作系统,尽管本发明
32并未这样限制。因而,设备200可以运行任意操作系统,例如任意一种
版本的微软⑧Windows操作系统、不同版本的Unix和Linux操作系统、 用于Macintosh计算机的任意版本的Mac 0S 、任意的嵌入式才喿作系统、 任意的网络操作系统、任意的实时操作系统、任意的开放源操作系统、 任意的专用才喿作系统、用于移动计算装置或网络装置的任意操作系统、 或者可以运行在设备200上并执行此处所描述的操作的任意其它操作系 统。
0078内核空间204被保留用于运行内核230,所述内核230包括 任一设备驱动程序、内核扩展或其它内核相关软件。如本领域技术人员 所知,内核230是操作系统的核心,并提供对应用104的资源和硬件相 关的元件的访问、控制和管理。才艮据设备200的实施例,内核空间204 还包括和有时还被称为集成高速緩存的高速缓存管理器232 —起工作的 多个网络服务或进程,此处进一步详细描述其有益之处。另外,内核230 的实施例将依赖于由装置200所安装、配置或者以其他方式使用的操作 系统的实施例。
0079在一个实施例中,装置20Q包括诸如基于TCP/IP的堆栈的 一个网络堆栈267,用于与客户机102和/或服务器106进行通信。在一 个实施例中,网络堆栈267用于与诸如网络108的第一网络以及第二网 络110进行通信。在一些实施例中,装置200终止诸如客户机102的TCP 连接的第一传输层连接,并建立由客户机102使用的到服务器106的第 二传输层连接,例如,第二传输层连接在设备200和服务器106处终止。 第一和第二传输层连接可以经由单个的网络堆栈267建立。在其它实施 例中,装置200可以包括例如267和267'的多个网络堆栈,并且第一传 输层连接可以在一个网络堆栈267处建立或终止,而第二传输层连接在 第二网络堆栈267'上建立或终止。例如, 一个网络堆栈可以用于在第一 网络上接收和发送网络分组,而另 一个网络堆栈用于在第二网络上接收 和发送网络分组。在一个实施例中,网络堆栈267包括用于对设备200 发送的一个或多个网络分组排队的缓冲器243。
0080如图2所示,内核空间204包括高速缓存管理器232、高速 层2-7集成分组引擎240、加密引擎234、策略引擎236和多协议压缩逻辑238。在内核空间204或内核模式而不是用户空间202中单独以及组合 地运行这些部件或进程232、 240、 234、 236和238改进每一个这些部件 的性能。内核操作意味着这些部件或进程232、 240、 234、 236和238运 行在装置200的操作系统的核心地址空间中。例如,在内核模式中运行 加密引擎234通过将加密与解密操作移到内核来改善加密性能,从而减 少在内核模式中的存储空间或内核线程与用户模式中的存储空间或线程 之间的转换的次数。例如,可以不需要将内核模式中获得的数据传递或 复制到运行在用户模式中的进程或线程,例如从内核级的数据结构到用 户级的数据结构。在另一个方面,还减少了在内核模式与用户模式之间 的上下文转换的次数。另外,在内核空间204中可以更有效地执行在任 意一个部件或进程232、 240、 235、 236和238之间通信和通信的同步。0081在一些实施例中,部件232、 240、 234、 236和238的任意 部分可以运4亍或才喿作在内核空间204中,而这些部件232、 240、 234、 236 和238的其它部分可以运行或才喿作在用户空间202中。在一个实施例中, 设备200使用提供对一个或多个网络分组的任意部分的访问的内核级数 据结构,例如,网络分组包括来自于客户机102的请求或来自于服务器 106的响应。在一些实施例中,可以由分组引擎240经由到网络堆栈267 的传输层驱动程序接口或过滤器来获得内核级数据结构。内核级数据结 构可以包括可经由与网络堆栈267相关的内核空间204存取的任意接口 和/或数据、由网络堆栈267接收或传送的网络业务量或分组。在其它实 施例中,可以由部件或进程232、 240、 234、 236和238中的任意一个来 使用内核级数据结构,以执行部件或进程的期望的操作。在一个实施例 中,部件232、 240、 234、 236和238在使用内核级数据结构时运行于内 核模式204中,而在另一个实施例中,部件232、 240、 234、 236和238 在使用内核级数据结构时运行于用户模式中。在一些实施例中,可以将 内核级数据结构复制或传递到第二内核级数据结构或任意期望的用户级 数据结构。
0082高速緩存管理器232可以包括软件、硬件或软件和硬件的 任意组合,以提供对诸如由发信服务器106提供的对象或动态生成的对 象的任意类型和形式的内容的高速緩存访问、控制和管理。由高速緩存管理器232处理和保存的数据、对象或内容可以包括诸如标记语言的或
者通过任意协议传达的任意格式的数据。在一些实施例中,高速緩存管
理器232复制存储在别处的原始数据或者以前计算、生成或发送的数据, 其中原始数据也许需要相对于读取高速緩存元件来说更长的访问时间以 取出、计算或者以其他方式获取。 一旦数据被保存在高速緩存元件中, 未来的使用可以通过访问高速緩存的拷贝而不是重新取回或再计算原始 数据来进行,从而减少访问时间。在一些实施例中,高速緩存元件可以 包括装置200的存储器264中的数据对象。在其它实施例中,高速緩存 元件可以包括具有比存储器264更快的访问时间的存储器。在另一个实 施例中,高速緩存元件可以包括诸如硬盘的一部分的装置200的任意类 型和形式的存储元件。在一些实施例中,处理单元262可以提供由高速 緩存管理器2 32使用的高速緩存。然而在进一步的实施例中,高速緩存 管理器232可以使用存储器、存储装置或处理单元的任意部分和组合, 以用于高速緩存数据、对象及其它内容。
0083进一步地,高速緩存管理器232包括任意逻辑、功能、规 则或操作,以执行此处所描述的设备200的技术的任意实施例。例如, 高速緩存管理器232包括根据失效时间周期的期满或一旦从客户机102 或服务器106接收到失效命令来使对象无效的逻辑或功能。在一些实施 例中,高速緩存管理器232可以作为在内核空间204中执行的程序、月良 务、进程或任务来操作,而在其它实施例中是在用户空间202中操作。 在一个实施例中,高速緩存管理器232的第一部分在用户空间202中执 行,而第二部分在内核空间204中执行。在一些实施例中,高速緩存管 理器232可以包括任意类型的通用处理器(GPP)或者诸如现场可编程门 阵列(FPGA)、可编程逻辑器件(PLD)或专用集成电路(AS工C)的任意 其它类型的集成电路。
0084例如,策略引擎236可以包括智能统计引擎或者其它的可 编程应用。在一个实施例中,策略引擎236提供配置机制以允许用户标 识、指定、限定或配置高速緩存策略。在一些实施例中,策略引擎236 还可以访问存储器以支持诸如查找表或哈希表的数据结构来启用用户选 择的高速緩存策略决策。在其它实施例中,策略引擎236可以包括任意逻辑、规则、功能或操作,以便确定和提供除了由设备200执行的安全、 网络业务量、网络访问、压缩或任意其它功能或操作的访问、控制和管
理之外的由设备200高速緩存的对象、数据或内容的访问、控制和管理。
此处进一 步描述特定高速缓存策略的进一 步的实例。
0085在一些实施例中,策略引擎236可以提供配置机制以允许 用户标识、指定、限定或配置指导包括但不限于图2B中描述的诸如 vServers 275、 VPN功能280、内联网IP功能282、交换功能284、 DNS 功能286、加速功能288、应用防火墙功能290和监控代理197的部件的 设备的任意其它部件或功能的行为的策略。在其它实施例中,策略引擎 236可以响应于任意配置的策略来进行检查、评价、实现或者以其他方式 产生作用,并且还可以响应于策略来指导一个或多个设备功能的操作。
0086加密引擎234包括用于操控诸如SSL或TLS的任意安全相 关协议的处理的任意逻辑、商业规则、功能或操作,或者另外的任意相 关功能。例如,加密引擎234加密并解密经由设备200传递的网络分组 或者其中的任意部分。加密引擎234还可以为客户机102a-102n、服务器 106a-106n或设备200设置或建立SSL或TLS连接。因而,加密引擎234 提供SSL处理的卸载和加速。在一个实施例中,加密引擎234使用隧道 协议来在客户机102a-102n和服务器106a-106n之间提供虛拟专用网。 在一些实施例中,加密引擎234与加密处理器260进行通信。在其它实 施例中,加密引擎234包括运行在加密处理器260上的可执行指令。
0087多协议压缩引擎238包括用于压缩诸如由装置200的网络 堆栈267使用的任意一种协议的一个或多个协议的网络分组的任意逻辑、 商业身见则、功能或4乘作。在一个实施例中,多协议压缩引擎238双向地 在客户机102a-102n和服务器106a-106n之间压缩任意的基于TCP/IP的 协议,包括消息应用编程接口 (MAPI )(电子邮件)、文件传送协议(FTP)、 超文本传送协议(HTTP)、通用Internet文件系统(CIFS)协议(文件 传送)、独立计算架构(ICA)协议、远程桌面协议(RDP)、无线应用协 议(WAP)、移动IP协议和IP上语音(VoIP)协议。在其它实施例中, 多协议压缩引擎238提供基于超文本标记语言(HTML)的协议的压缩, 并且在一些实施例中提供诸如可扩展标记语言(XML)的任意标记语言的压缩。在一个实施例中,多协议压缩引擎238提供诸如为设备200设计 用于设备200通信的的任意协议的任意高性能协议的压缩。在另一个实 施例中,多协议压缩引擎238使用修改的传输控制协"R来压缩任意通信 的任意有效载荷或任意通信,所述修改的传输控制协议诸如事务TCP (T/TCP )、具有选冲奪确认的TCP( TCP-SACK )、具有大窗口的TCP( TCP-LW )、 诸如TCP-Vegas协议的拥塞预测协议以及TCP欺骗协议。
0088因而,多协议压缩引擎238为经由桌面客户才几以及甚至移 动客户才几访问应用的用户加速性能,所述桌面客户机例如樣i软Outlook 以及诸如由诸如0racle、 SAP和Siebel的通用的企业应用所启动的任意 客户机的非web瘦客户机,所述移动客户才几例如掌上电脑。在一些实施 例中,通过执行于内核才莫式204中以及与访问网络堆栈267的分组处理 引擎240结合在一起,多协议压缩引擎238可以压缩诸如任意应用层协 议的由TCP/IP协议所携带的任意一种协议。
0089通常也被称为分组处理引擎或分组引擎的高速层2-7集成 分组引擎240负责管理由设备200经由网络端口 266 4妻收和发送的分组 的内核级处理。高速层2-7集成分组引擎240可以包括用于在例如接收 网络分组或发送网络分组的处理期间排队一个或多个网络分组的緩冲 器。另外,高速层2-7集成分组引擎240与一个或多个网络堆栈267通 信以经由网络端口 266发送和接收网络分组。高速层2-7集成分组引擎 240和加密引擎234、高速緩存管理器232、策略引擎236和多协议压缩 逻辑238 —起工作。更具体地,加密引擎234被配置为执行分组的SSL 处理,策略引擎236被配置为执行诸如请求级内容交换和请求级高速緩 存重定向的与业务量管理相关的功能,而多协议压缩逻辑238 ^i配置为 执行与数据的压缩和解压缩相关的功能。
0090高速层2-7集成分组引擎240包括分组处理定时器242。在 一个实施例中,分组处理定时器242提供一个或多个时间间隔以触发输 入(即,接收)或输出(即,发送)网络分组的处理。在一些实施例中, 高速层2-7集成分组引擎240响应于定时器242来处理网络分组。分组 处理定时器242提供任意类型和形式的信号给分组引擎240,以通知、触 发或传达时间相关的事件、间隔或发生。在许多实施例中,分组处理定
37时器2 4 2以例如像10 0毫秒、5 0毫秒或2 5毫秒这样的毫秒级来进行操作。 例如,在一些实施例中,分组处理定时器242提供时间间隔或者以其他 方式使高速层2-7集成分组引擎240以10毫秒的时间间隔来处理网络分 组,而在其它实施例中按5毫秒的时间间隔,以及甚至在更进一步的实 施例中短到3、 2或1毫秒的时间间隔。在操作期间,高速层2-7集成分 组引擎240可以与加密引擎234、高速緩存管理器232、策略引擎236和 多协议压缩引擎238交互、集成或通信。因而,可以响应于分组处理定 时器242和/或分组引擎240来执行加密引擎234、高速緩存管理器232、 策略引擎236和多协议压缩逻辑238的任意逻辑、功能或操作。因此, 可以以例如小于或等于10毫秒的时间间隔的通过分组处理定时器242提 供的时间间隔的粒度来执行力口密引擎234、高速緩存管理器232、策略引 擎236和多协议压缩逻辑238的任意逻辑、功能或操作。例如,在一个 实施例中,高速緩存管理器232可以响应于高速层2-7集成分组引擎240 和/或分组处理定时器242来执行任意高速缓存对象的失效。在另一个实 施例中,可以将高速緩存对象的满期或失效时间设置为与分组处理定时 器242的时间间隔相同的粒度级,例如每10毫秒。
0091与内核空间204不同,用户空间202是由用户模式应用或 者以其他方式运行于用户模式的程序所使用的存储器区域或部分操作系 统。用户模式应用可以不直接访问内核空间204而使用服务调用以访问 内核服务。如图2所示,设备200的用户空间202包括图形用户界面(GUI) 210、命令行接口 (CLI) 212、命令解释程序(shell)服务214、健康监 测程序216和守护月l务218。 GUI 210和CLI 212提供一个装置,通过所 述装置,系统管理员或其它用户可以与设备200的操作相互作用并控制 设备200的操作,例如通过设备200的操作系统,并且两者之一是用户 空间202或内核空间204。 GUI 210可以是任意类型和形式的图形用户界 面,并且可以通过文本、图形或者以其他方式通过像浏览器的任意类型 的程序或应用来呈现。CL工212可以是任意类型和形式的命令行或基于文 本的接口,例如由操作系统提供的命令行。例如,CLI212可以包括命令 解释程序,所述命令解释程序是允许用户与操作系统相互作用的工具。 在一些实施例中,CLI 212可以通过bash、 csh、 tcsh或ksh型命令解释程序来提供。命令解释程序服务214包括程序、服务、任务、进程或可
执行指令以支持用户通过GUI 210和/或CLI 212与设备200或操作系统 相互作用。
0092健康监测程序216被用于监控、检查、净艮告和确保网络系 统在正常工作以及用户通过网络接收所请求的内容。健康监测程序216 包括一个或多个程序、服务、任务、进程或可执行指令以提供用于监测 设备200的任意活动的逻辑、规则、功能或操作。在一些实施例中,健 康监测程序216拦截并4全查经由设备200传递的任意网络业务量。在其 它实施例中,健康监测程序216通过任意合适的方法和/或机制与一个或 多个下列单元连接加密引擎234、高速缓存管理器232、策略引擎236、 多协议压缩逻辑238、分组引擎240、守护服务218和命令解释程序服务 214。因而,健康监测程序216可以调用任意应用编程4妾口 (API)以确 定设备200的任意部分的状态、状况或健康。例如,健康监测程序216 可以周期性地查验或发送一个情况查询以检测程序、进程、服务或任务 是否有效以及当前正在运行。在另一个实例中,健康监测程序216可以 检查由任意程序、进程、服务或任务提供的任意状态、错误或历史记录, 以确定设备200的任意部分的任意情况、状态或错误。
0093守护服务218是连续或在后台运行并处理由设备200接收 到的周期性服务请求的程序。在一些实施例中,守护服务可以将请求转 发给其它程序或进程,例如酌情转发给另一个守护服务218。如本领域技 术人员所知,守护服务218可以无人监护地运行以执行诸如网路控制的 连续的或周期性的全系统的功能或者执行任意期望的任务。在一些实施 例中, 一个或多个守护服务218运行在用户空间202中,而在其它实施 例中, 一个或多个守护服务218运行在内核空间中。
0094现在参考图2B,描述了设备20G的另一个实施例。总的来 说,设备200提供下列服务、功能或操作中的一个或多个用于一个或 多个客户才几102以及一个或多个月l务器106之间的通信的SSL VPN连通 性280、交换/负载平衡284、域名服务解析286、加速288和应用防火墙 290。每个服务器106可以提供一个或多个网络相关的服务270a-270n(称 为服务270 )。例如,服务器106可以提供http服务270。设备20Q包括一个或多个虚拟月l务器或虚拟网际协议服务器,其^C称为vServer、 VIP 服务器或仅仅称为VIP 275a-275n(此处也被称为vServer 275 )。 vServer 275根据设备200的配置和操作来接收、拦截或者以其他方式处理客户机 102和服务器106之间的通信。
0095vServer 275可以包括软件、硬件或软件和石更件的任意组合。 vServer 275可以包括在设备200中的用户模式202、内核才莫式204中或 其任意组合中操作的任意类型和形式的程序、服务、任务、进程或可执 行指令。vServer 275包括任意逻辑、功能、规则或操作以执行此处所描 述的技术的任意实施例,例如SSL VPN 280、交换/负载平tf 284、域名 服务解析286、加速288和应用防火墙290。在一些实施例中,vServer 275 建立到服务器106的服务270的连接。服务275可以包括可以连接和通 信到设备200、客户机102或vServer 275的任意程序、应用、进程、任 务或可执行指令组。例如,服务275可以包括web服务器、http服务器、 ftp、电子邮件或数据库服务器。在一些实施例中,服务270是用于监听、 接收和/或发送用于诸如电子邮件、数据库或企业应用的应用的通信的守 护进程或网络驱动程序。在一些实施例中,服务270可以在一个特定IP 地址或IP地址和端口上进行通信。
0096在一些实施例中,vServer 275将策略引擎236的一个或多 个策略应用到客户机102和服务器106之间的网络通信。在一个实施例 中,策略与VServer 275有关。在另一个实施例中,策略基于一个用户 或一组用户。在又一个实施例中,策略是全局的并且应用到一个或多个 vServers 275a-275n以及经由设备200通信的任意用户或用户组。在一 些实施例中,策略引擎的策略有条件,在所述条件时根据诸如网际协议 地址、端口、协议类型、报头或分组中的字段的通信的任意内容或者诸 如用户、用户组、vServer 275、传输层连接和/或客户机102或服务器 106的标识或属性的通信上下文来应用策略。
0097在其它实施例中,设备200与策略引擎236通信或连接以 确定对远程用户或远程客户机102访问服务器106的计算环境15、应用 和/或数据文件的验证和/或授权。在另一个实施例中,设备200与策略 引擎236通信或连接以确定对远程用户或远程客户机102的3全证和/或授权,以使应用递送系统190递送计算环境15、应用和/或数据文件的一个 或多个。在又一个实施例中,设备200根据策略引擎236对远程用户或 远程客户机103的验证和/或授权来建立VPN或SSL VPN连接。在一个实 施例中,设备102根据策略引擎236的策略来控制网络业务量和通信会 话的流量。例如,设备200可以根据策略引擎236来控制对计算环境15、 应用或数据文件的访问。
0098在一些实施例中,vServer 275建立诸如经由客户机代理 120与客户机102的TCP或UDP连接的传输层连接。在一个实施例中, vServer 275监听并接收来自于客户机102的通信。在其它实施例中, vServer 275与客户服务器106建立诸如TCP或UDP连接的传输层连接。 在一个实施例中,vServer 275建立到运行在服务器106上的服务器270 的网际协议地址和端口的传输层连接。在另一个实施例中,vServer 275 将到客户机102的第一传输层连接与到服务器106的第二传输层连接关 联起来。在一些实施例中,vServer 275建立到服务器106的传输层连接 池并多路复用经由所述池化的传输层连接的客户机请求。
0099在一些实施例中,设备200提供在客户机102和服务器106 之间的SSL VPN连接280。例如,第一网络102上的客户机102请求建立 到第二网络104'上的服务器106的连接。在一些实施例中,第二网络104' 是不可/人第一网络104 3各由的。在其它实施例中,客户机102在/>用网 104上,而服务器106在诸如公司网的专用网104'上。在一个实施例中, 客户机代理120拦截第一网络104上的客户机102的通信,加密所述通 信,并经由第一传输层连接发送所述通信到设备200。设备200将第一网 络104上的第一传输层连接关联到第二网络104上的到服务器106的第 二传输层连接。设备200从客户机代理102接收被拦截的通信,解密所 述通信,并经由第二传输层连接发送所述通信到第二网络104上的服务 器106。第二传输层连接可以是池化的传输层连接。因而,设备200-提供 在两个网络104和1 Of之间用于客户机102的端到端安全传输层连接。
0100在一个实施例中,设备200在虚拟专用网104上寄载客户 机102的内联网网际协议或内联网IP 282地址。客户机102具有诸如第 一网络104上的网际协议(IP )地址和/或主机名的本地网络标识符。当经由设备200连接到第二网络104'时,设备200在第二网络104'上为客 户机102建立、分配或者以其他方式提供内联网IP,其是诸如IP地址和 /或主机名的网络标识符。使用客户机的建立的内联网IP 282,设备200 在第二或专用网104'上监听并接收指向客户机102的任意通信。在一个 实施例中,设备200在第二专用网104上充当或代表客户机102。例如, 在另一个实施例中,vServer 275监听并响应到客户才几102的内联网IP 282的通信。在一些实施例中,如果第二网络104'上的计算装置100发 送请求,则设备200处理所述请求就像它是客户机102 —样。例如,设 备200可以响应到客户机的内4关网IP 282的查验。在另一个实例中,设 备可以与第二网络104上的请求与客户机的内联网IP 282连接的计算装 置100建立诸如TCP或UDP连接的连接。
0101在一些实施例中,设备200提供下列一个或多个加速^支术 288来在客户机102和服务器106之间进行通信1 )压缩;2)解压缩; 3)传输控制协议池;4)传输控制协议多路复用;5 )传输控制协议緩沖; 以及6)高速緩存。在一个实施例中,设备200通过打开与每个服务器 106的一个或多个传输层连接并维持这些连接以允许客户机经由因特网 的重复数据访问来减轻服务器106的通过反复打开和关闭到客户机102 的传输层连接所造成的大量处理负载。这个技术在这里^f皮称为"连接池"。
0102在一些实施例中,为了经由池化的传输层连接来无缝接合 从客户机102到服务器106的通信,设备200通过在传输层协议级修改 序号和确认号来转换或多路复用通信。这被称为"连接多路复用"。在一 些实施例中,不需要应用层协议相互作用。例如,在入站分组(即,自 客户机102接收的分组)的情况中,所述分组的源网络地址被改变为设 备200的输出端口的网络地址,而目的网络地址被改变为预期的服务器 的网络地址。在出站分组(即,自服务器106接收的一个分组)的情况 中,源网络地址被从服务器106的网络地址改变为设备200的输出端口 的网络地址,而目的地址被从设备200的网络地址改变为请求的客户机 102的网络地址。所述分组的序号和确认号也被转换为到客户机102的设 备200的传输层连接上的客户机102所期待的序号和确认。在一些实施 例中,传输层协议的分组校验和被重新计算以解释这些转换。
0103在另一个实施例中,设备200为客户机102和服务器106 之间的通信提供交换或负载平衡功能284。在一些实施例中,设备200根 据层4或应用层请求数据来分配业务量并将客户机请求指向^Il务器106。 在一个实施例中,虽然网络分组的网络层或层2标识了目的月良务器106, 但设备200通过作为传输层分组的有效载荷而携带的应用信息和数据来 确定服务器106以分配网络分组。在一个实施例中,设备200的健康监 测程序216监控服务器的健康以确定为其分配客户机的请求的服务器 106。在一些实施例中,如果设备200探测到服务器106不可用或具有超 过预定阈值的负载,则设备200可以将客户机请求指向或分配到另一个 服务器106。
0104在一些实施例中,设备200充当域名月良务(DNS)解析器或 者以其他方式提供来自于客户机102的DNS请求的解析。在一些实施例 中,设备拦截由客户机102发送的DNS请求。在一个实施例中,i史备200 响应具有设备200的IP地址或由设备200寄载的IP地址的客户机DNS 请求。在该实施例中,客户机102发送用于域名的网络通信到设备200。 在另 一个实施例中,设备200响应具有第二设备200'的IP地址或由第二 设备200'寄载的IP地址的客户机的DNS请求。在一些实施例中,设备 200响应具有由i殳备200确定的月l务器106的IP地址的客户^/L的DNS请 求。
0105在又一个实施例中,设备200为客户机102和服务器106 之间的通信提供应用防火墙功能290。在一个实施例中,策略引擎236提 供用于检测和阻塞非法请求的规则。在一些实施例中,应用防火墙290 防止拒绝服务(DoS)攻击。在其它实施例中,设备检查被拦截的请求的 内容以识别和阻塞基于应用的攻击。在一些实施例中,规则/策略引擎2 36 包括用于提供对多个种类和类型的基于web或因特网的脆弱点的保护的 一个或多个应用防火墙或安全控制策略,例如下列的一个或多个l)緩 冲器溢出,2)CGI-BIN参数操纵,3)格式/隐藏字段操纵,4)强制浏览, 5) cookie或会话中毒,6)破译的访问控制表(ACLs)或弱的口令,7) 跨站点的脚本(XSS ), 8 )命令注入,9 ) SQL注入,10 )错误触发感测信 息泄漏,11 )不安全的使用加密技术,12)服务器误配置,13)后门和调试选择,14)web站点毁损,15)平台或操作系统的脆弱点,以及16) 零天攻击。在一个实施例中,对下列情况的一种或多种应用防火墙290 以检查或分析网络通信的形式来提供HTML格式字段的保护1)返回所 需的字段,2 )不允许附加字段,3 )只读和隐藏字段强制(enforcement), 4)下拉列表和单选按钮字段的一致,以及5)格式字段最大长度强制。 在一些实施例中,应用防火墙290确保cookies不被》务改。在其它实施 例中,应用防火墙290通过强制实施合法URL来防止强制浏览。
0106还是在其它实施例中,应用防火墙290保护在网络通信中 包含的任意机密信息。应用防火墙290可以根据引擎236的规则或策略 来检查或分析任意网络通信以识别在网络分组的任意字段中的任意机密 信息。在一些实施例中,应用防火墙290在网络通信中识别信用卡号、 口令、社会保险号、姓名、病人代码、联系信息和年龄的一次或多次出 现。网络通信的编码部分可以包括这些出现或机密信息。在一个实施例 中,根据这些出现,应用防火墙290可以在网络通信上对策略采取行动, 例如阻止网络通信的发送。在另一个实施例中,应用防火墙290可以重 写、移除或者以其他方式掩盖这样识别出的出现或机密信息。
0107仍然参考图2B,设备200可以包括如上面结合图1D所讨论 的性能监控代理197。在一个实施例中,设备200从如图1D中所描述的 监控业务198或监控服务器106中接收监控代理197。在一些实施例中, 设备2 00在诸如磁盘的存储装置中保存监控代理197,以用于递送给与设 备200通信的任意客户机或服务器。例如,在一个实施例中,设备200 在接收到建立传输层连接的请求时发送监控代理197给客户机。在其它 实施例中,设备200在建立与客户机102的传输层连接时发送监控代理 197。在另一个实施例中,设备200在拦截或检测对web页面的请求时发 送监控代理197给客户机。在又一个实施例中,设备200响应于监控服 务器198的请求来发送监控代理197到客户机或服务器。在一个实施例 中,设备200发送监控代理197到第二设备200'或设备205。
0108在其它实施例中,设备200执行监控代理197。在一个实施 例中,监控代理197测量和监控在设备200上执行的任意应用、程序、 进程、服务、任务或线程的性能。例如,监控代理197可以监控和测量vServers 275A-275N的性能与操作。在另一个实施例中,监控代理197 测量和监控设备200的任意传输层连接的性能。在一些实施例中,监控 代理197测量和监控通过设备200的任意用户会话的性能。在一个实施 例中,监控代理197测量和监控通过设备200的诸如SSL VPN会话的任 意虚拟专用网连接和/或会话的性能。在进一步的实施例中,监控代理197 测量和监控设备200的存储器、CPU和磁盘使用以及性能。在又一个实施 例中,监控代理197测量和监控诸如SSL卸载、连接池和多路复用、高 速缓存以及压缩的由设备200执行的任意加速技术288的性能。在一些 实施例中,监控代理197测量和监控由设备200执行的任意负载平衡和/ 或内容交换284的性能。在其它实施例中,监控代理197测量和监控由 设备200执行的应用防火墙290保护和处理的性能。
C.客户机代理
0109现在参考图3,描述了客户机代理120的一个实施例。客户 机102包括用于经由网络104与设备200和/或服务器106建立和交换通 信的客户机代理120。简单概述,客户机102在计算装置IOO上操作,所 述计算装置100具有带有内核模式302和用户模式303的操作系统以及 带有一个或多个层310a-310b的网络堆栈310。客户机102已经安装和/ 或执行一个或多个应用。在一些实施例中, 一个或多个应用可以经由网 络堆栈310传递到网络104。诸如web浏览器的一个应用还可以包括一个 第一程序322。例如,第一程序322可以被用于在一些实施例中安装和/ 或执行客户机代理120或者其任意部分。客户机代理120包括用于从一 个或多个应用中拦截来自于网络堆栈310的网络通信的拦截机制或拦截 器350。
0110客户才几102的网络堆栈310可以包括任意类型和形式的软 件或硬件或其任意组合,以用于提供到网络的连通性以及与网络的通信。 在一个实施例中,网络堆栈310包括用于网络协议套件的软件实现。网 络堆栈310可以包括一个或多个网络层,例如如本领域技术人员所认识 和理解的开放系统互连(OSI)通信模型的任意网络层。因而,网络堆栈 310可以包括用于下列OSI模型的任意一层的任意类型和形式的协议1)
45物理链路层,2)数据链路层,3)网络层,4)传输层,5)会话层,6) 表示层以及7)应用层。在一个实施例中,网络堆栈310可以包括在网际 协议(IP)的网络层协议上的传输控制协议(TCP),通常被称为TCP/IP。 在一些实施例中,可以在以太网协议上携带TCP/IP协议,所述以太网协 议可以包括诸如由IEEE 802. 3所覆盖的那些协议的IEEE广域网(WAN) 或局域网(LAN)协议的任意族。在一些实施例中,网络堆栈310包括诸 如IEEE 802. 11和/或移动网际协议的任意类型和形式的无线协议。
0111考虑到基于TCP/IP的网络,可以使用任意基于TCP/IP的 协议,包括消息应用编程接口 ( MAPI )(电子邮件)、文件传送协议(FTP )、 超文本传送协议(HTTP)、通用Internet文件系统(CIFS)协议(文件 传送)、独立计算架构(ICA)协议、远程桌面协议(RDP)、无线应用协 议(WAP )、移动IP协议和IP上语音(VoIP )协议。在另 一个实施例中, 网络堆栈310包括诸如修改的传输控制协议的任意类型和形式的传输控 制协议,例如事务TCP (T/TCP)、具有选择确认的TCP (TCP-SACK )、具 有大窗口的TCP( TCP-LW)、诸如TCP-Vegas协议的拥塞预测协议以及TCP 欺骗协议。在其它实施例中,网络堆栈310可以使用诸如IP上UDP的任 意类型和形式的用户数据报协议(UDP),例如用于音频通信或实时数据 通信。
0112进一步,网络堆栈310可以包括诸如TCP驱动程序或网络 层驱动程序的支持一个或多个层的一个或多个网络驱动程序。网络驱动 程序可以被包括作为计算装置100的操作系统的一部分或作为计算装置 100的任意网络接口卡或其它网络访问部件的一部分。在一些实施例中, 网络堆栈310的任意一种网络驱动程序可以被定制、修改或改变以提供 支持此处描述的任意技术的网络堆栈310的定制或修改部分。在其它实 施例中,加速程序120被设计和构造以和由客户机102的操作系统所安 装或者以其他方式提供的网络堆栈310 —起操作或联合工作。
0113网络堆栈310包括用于接收、获取、提供或者以其他方式 访问与客户机102的网络通信相关的任意信息和数据的任意类型和形式 的接口 。在一个实施例中,到网络堆栈310的接口包括应用编程接口 (API)。接口还可以包括任意函数调用、挂钩或过滤机制、事件或回叫机制、或任意类型的连接技术。网络堆栈310经由接口可以接收或提供
诸如对象的与网络堆栈310的功能或操作相关的任意类型和形式的数据 结构。例如,数据结构可以包括与网络分组相关的信息和数据或者一个 或多个网络分组。在一些实施例中,数据结构包括诸如传输层的网络分 组的在网络堆栈310的协议层处理的网络分组的一部分。在一些实施例 中,数据结构325包括内核级数据结构,而在其它实施例中,数据结构 325包括用户模式数据结构。内核级数据结构可以包括获得的或与在内核 模式302中操作的网络堆栈310的一部分相关的数据结构、或者运行在 内核模式302中的网络驱动程序或其它软件、或者由运行或操作在操作 系统的内核模式中的服务、进程、任务、线程或其它可执行指令获得或 收到的任意数据结构。
0114另外,例如数据链路或网络层的网络堆栈310的一些部分 可以执行或操作于内核模式302,而诸如网络堆栈310的应用层的其它部 分执行或操作在用户模式303中。例如,网络堆栈的第一部分310a可以 给应用提供对网络堆栈310的用户模式访问,而网络堆栈31Q的第二部 分310a提供对网络的访问。在一些实施例中,网络堆栈的第一部分310a 可以包括诸如层5-7中的任意一个的网络堆栈310的一个或多个较上的 层。在其它实施例中,网络堆栈310的第二部分310b包括诸如层1-4中 的任意一个这样的一个或多个较低的层。网络堆栈310的第一部分310a 和第二部分310b中的每一个可以包括网络堆栈31Q的任意部分,在4壬意 一个或多个网络层,在用户模式203、内核模式202或其组合中,或者在 网络层的任意部分或网络层的接口点或用户模式203和内核模式203的 任意部分或接口点。
0115拦截器350可以包括软件、硬件或软件和硬件的任意组合。 在一个实施例中,拦截器350在网络堆栈310中的任一点拦截网络通信, 并且将所述网络通信重定向或发送到被拦截器350或客户机代理120所 期望、管理或控制的目的地。例如,拦截器350可以拦截第一网络的网 络堆栈31Q的网络通信并发送网络通信给设备2 0 0以用于在第二网络104 上的传输。在一些实施例中,拦截器350包括含有驱动器的任意类型拦 截器350,诸如被构造和设计为与网络堆栈310连接和工作的网络驱动程序。在一些实施例中,客户机代理120和/或拦截器350在诸如传输层处 的网络堆栈310的一个或多个层4喿作。在一个实施例中,拦截器350包 括过滤器驱动程序、挂钩机制或任意格式和类型的适当的网络驱动程序 接口,所述接口例如经由传输驱动程序接口 (TDI)来联接于网络堆栈的 传输层。在一些实施例中,拦截器350联接于诸如传输层的第一协议层 以及诸如传输协议层之上的任意层的例如应用协议层的另 一个协议层。 在一个实施例中,拦截器350可以包括遵照网络驱动程序接口规范(NDIS ) 的驱动程序或NDIS驱动程序。在另一个实施例中,拦截器350可以包括 小过滤器(min-filter)或迷你端口 (mini-port)驱动矛呈序。在一个实 施例中,拦截器350或者其部分操作于内核模式202中。在另一个实施 例中,拦截器350或者其部分操作于用户模式203中。在一些实施例中, 拦截器350的一部分操作于内核模式202中,而拦截器350的另一部分 操作于用户模式203中。在其它实施例中,客户机代理120操作于用户 模式203中,但经由拦截器35Q连接到内核模式驱动程序、进程、服务、 任务或一部分操作系统,以便获得内核级数据结构225。在进一步的实施 例中,拦截器350是诸如应用的用户模式应用或程序。
0116在一个实施例中,拦截器350拦截任意的传输层连接请求。 在这些实施例中,拦截器350执行传输层应用编程接口 (API)调用以对 于该位置设置目的信息,诸如所期望的位置的目的地IP地址和/或端口 。 以此方式,拦截器350拦截并重定向传输层连接到由拦截器350或客户 机代理120控制或管理的IP地址和端口。在一个实施例中,拦截器350 为到客户机102的本地IP地址和端口的连接设置目的地信息,客户机代 理120在客户机102的本地IP地址和端口上进行监听。例如,客户机代 理120可以包括在用于重定向的传输层通信的本地IP地址和端口上监听 的代理服务。在一些实施例中,客户机代理120随后传达重定向的传输 层通信到设备200。
0117在一些实施例中,拦截器350拦截域名服务(顧S)请求。 在一个实施例中,客户机代理120和/或拦截器350解析DNS请求。在另 一实施例中,拦截器发送被拦截的DNS请求到设备200以用于DNS解析。 在一个实施例中,设备200解析DNS请求并传达DNS响应给客户机代理
48120。在一些实施例中,设备200解析经由另一设备200'或DNS服务器 106的DNS请求。
0118在又一个实施例中,客户积^代理120可以包括两个代理 和120'。在一个实施例中,第一代理120可以包括操作于网络堆栈310 的网络层的拦截器350。在一些实施例中,第一代理120拦截诸如因特网 控制消息协议(ICMP)请求(例如,查验和跟踪路由)的网络层请求。 在其它实施例中,第二代理120'可以在传输层操作并拦截传输层通信。 在一些实施例中,第一代理120拦截在网络堆栈210的一层处的通信, 并与第二代理120'连接或传达被拦截的通信到第二代理。
0119客户机代理120和/或拦截器350可以相对于网络堆栈310
的任意其它协议层透明的方式操作于协议层或与协议层连接。例如,在 一个实施例中,拦截器350相对于诸如网络层的传输层之下的任意协议 层以及诸如会话、表示或应用层协议的传输层之上的任意协议层透明地 来操作网络堆栈310的传输层或与其连接。这允许网络堆栈310的其它 协议层按意愿地操作而不用修改来使用拦截器350。因而,客户机代理 120和/或拦截器350可以与传输层交互以保护、优化、加速、路由或负 载平衡经由诸如TCP/IP之上的任意应用层协议的通过传输层携带的任意 协议提供的任意通信。
0120进一步地,客户机代理120和/或拦截器可以相对于任意应 用、客户机102的用户以及诸如与客户机102通信的服务器的任意其它 计算装置透明的方式来操作于网络堆栈310或与网络堆栈310连接。客 户机代理120和/或拦截器350可以以一定方式安装和/或执行于客户机 102上而不修改应用。在一些实施例中,客户机102或与客户机102通信 的计算装置的用户不知道客户机代理120和/或拦截器35Q的存在、执行 或操作。因而,在一些实施例中,相对于应用、客户机102的用户、诸 如服务器的另一个计算装置、或者在由拦截器350联接的协议层之上和/ 或之下的任意协议层透明地来安装、执行和/或操作客户机代理120和/ 或拦截器350。
0121客户机代理120包括加速程序302、流客户机306、收集代 理304和/或监控代理197。在一个实施例中,客户机代理120包括由位于Fort Lauderdale, Florida的Citrix Syestems公司开发的独立计算 架构(ICA)客户机或者其任意部分,并且还被称为ICA客户机。在一些 实施例中,客户机120包括用于将应用从服务器106流式传输到客户机 102的应用流客户机306。在一些实施例中,客户机代理120包括用于加 速客户机102和服务器106之间的通信的加速程序302。在另一个实施例 中,客户机代理120包括用于执行端点检测/扫描以及为设备200和/或 服务器106收集端点信息的收集代理304。
0122在一些实施例中,加速程序302包括用于执行一个或多个 加速技术的客户机侧加速程序,以加速、增强或者以其他方式改善客户 机与服务器106的通信和/或诸如访问由服务器106提供的应用的对服务 器106的访问。加速程序302的可执行指令的逻辑、功能和/或操作可以 执行一个或多个的下列加速技术l)多协议压缩,2)传输控制协议池, 3)传输控制协议多路复用,4 )传输控制协议緩沖,以及5 )经由高速緩 存管理器的高速緩存。另外,加速程序302可以执行对由客户机102接 收和/或发送的任意通信的加密和/或解密。在一些实施例中,加速程序 302以集成的方法或方式来执行一个或多个加速技术。另外,加速程序 302可以在被携带为传输层协议的网络分组的有效载荷的任意协议或多 个协议上执行压缩。
0123流客户机306包括用于接收和执行来自于服务器106的流 式传输的应用的应用、程序、进程、服务、任务或可执行指令。服务器 106可以将一个或多个应用数据文件流式传输到流客户机306,以用于在
在一些实施例中,服务器106发送一组压缩的或封装的应用数据文件到 流客户机306。在一些实施例中,多个应用文件在文件服务器上被压缩和 存储在诸如CAB、 ZIP、 SIT、 TAR、 JAR或其它档案(archive)的档案文 件中。在一个实施例中,服务器106解压缩、解封装或解档(unarchives ) 应用文件,并发送所述文件到客户机102。在另一个实施例中,客户机 102解压缩、解封装或解档应用文件。流客户机306动态地安装应用或其 中的部分,并执行应用。在一个实施例中,流客户机306可以是可执行 程序。在一些实施例中,流客户机306可以运行另一个可执行程序。0124收集代理304包括用于识别、获得和/或收集关于客户机102 的信息的应用、程序、进程、服务、任务或可执行指令。在一些实施例 中,设备200发送收集代理304到客户机102或客户机代理120。可以根 据设备的策略引擎236的一个或多个策略来配置收集代理304。在其它实 施例中,收集代理304发送收集的有关客户机102的信息给设备200。在 一个实施例中,设备200的策略引擎236使用收集的信息来确定并提供 对客户才几到网络104的连接的访问、验证和授权控制。
0125在一个实施例中,收集代理304包括端点检测和扫描机制, 其识别和确定客户机的一个或多个属性或特性。例如,收集代理304可 以识别和确定任意一个或多个以下的客户机侧属性1)操作系统和/或 操作系统的版本,2)操作系统的服务包,3)运行的服务,4)运行的进 程,和5)文件。收集代理304还可以识别和确定客户机上的任意一个或 多个下列软件的存在或版本l)防病毒软件,2)个人防火墙软件,3) 反垃圾邮件软件,和4)因特网安全软件。策略引擎236可以具有根据客 户机或客户^/L侧属性的任意一个或多个属性或特性的一个或多个策略。
0126在一些实施例中,客户机代理120包括如结合图1D和2B 所讨论的监控代理197。监控代理197可以是诸如Visual Basic或Java 脚本的任意类型和形式的脚本。在一个实施例中,监控代理129监控和 测量任意部分的客户机代理120的性能。例如,在一些实施例中,监控 代理129监控和测量加速程序302的性能。在另一个实施例中,监控代 理129监控和测量流客户机306的性能。在其它实施例中,监控代理129 监控和测量收集代理304的性能。在又一个实施例中,监控代理129监 控和测量拦截器350的性能。在一些实施例中,监控代理129监控和测 量客户机102的诸如存储器、CPU和磁盘的任意资源。
0127监控代理197可以监控和测量客户机的任意应用的性能。 在一个实施例中,监控代理129监控和测量客户机102上的浏览器的性 能。在一些实施例中,监控代理197监控和测量经由客户机代理120递 送的任意应用的性能。在其它实施例中,监控代理197测量和监控诸如 基于web或HTTP响应时间的应用的最终用户响应时间。监控代理197可 以监控和测量ICA或RDP客户机的性能。在另一个实施例中,监控代理
51197测量和监控用户会话或应用会话的规格。在一些实施例中,监控代理 197测量和监控ICA或RDP会话。在一个实施例中,监控代理197测量和 监控设备200在加速递送应用和/或数据到客户机102的过程中的性能。
0128在一些实施例中以及仍然参考图3,可以使用第一程序322 来自动地、静默地、透明地或以其他方式地安装和/或执行客户机代理12 0 或者其中的诸如拦截器350的部分。在一个实施例中,第一程序322包 括诸如被加载到应用并由应用执行的ActiveX控件或Java控件或脚本的 插件部件。例如,第一程序包括由web浏览器应用加载并运行在例如应 用的存储空间或上下文中的ActiveX控件。在另一个实施例中,第一程 序322包括由诸如浏览器的应用加载并运行的一组可执行指令。在一个 实施例中,第一程序322包括被设计和构造的程序来安装客户机代理120。 在一些实施例中,第一程序322通过网络来从另一个计算装置获得、下 载或接收客户机代理120。在另一个实施例中,第一程序322是客户机 102的操作系统上的诸如网络驱动程序的安装程序或用于安装程序的即 插即用管理器。
D、使用由用户从设备确定的规格选择的规格和/或经由网络管理协 议从装置收集的规格执行负载平衡
0129现在参考图4A和4B,所描述的系统和方法用于基于由设备 200确定的规格和/或由设备经由诸如简单网络管理协议(S腿P)的网络 管理协议从装置或者服务收集的规格进行负载平衡。该设备提供负载监 控器来监控一个或者多个服务270a-270n的负载。在一个实施例中,用 户可以基于从自定义规格表选择的规格来配置一个或者多个负载监控 器,该自定义规格表包括经由网络管理协议查询获得的规格或者对象。 在另 一个实施例中,用户可以基于由设备收集的规格或者参数来配置一 个或者多个负载监控器。在一些实施例中,用户基于从自定义规格表选 择的规格和设备收集的规格来配置一个或者多个负载监控器。响应于用 户的选择,设备确定一个或者多个服务的负载并且使用任一类型的负载 平衡技术来负载平衡到服务的客户机请求。
0130现在参考图4A,描述用于负载平衡一个或者多个服务的设 备的实施例。总的来说,设备200具有被配置为提供负载平衡284到布
52置在一个或者多个服务器106a-106b上的或者由一个或者多个服务器 106a-106b提供的一个或者多个服务270a-270n的一个或者多个虚拟服务 器或者vServer 275A-275N。 vServer 275A和服务270A或者一组月l务 270A-270N相关联, 一皮配置为服务270A或者一组服务270A-270N或者受 其限制。设备200具有一个或者多个负载监控器405A-405N来监控服务 270A-270N的状态、操作和/或性能。负载监控器和服务270A或者一组服 务270A-270N相关联,-故配置为服务270A或者一组"l务270A-270N或者 受其限制。负载监控器405A-405B为vServer 275A-275N提供信息来确 定服务270A-270N中的哪一个应该接收由vServer 275接收的请求。负 载监控器405和/或vServer 275可以使用设备收集的规格410和/或装 置提供的规格420来确定跨越多个服务270A-270N的负载并且来负载平 衡输入的客户机请求。设备200还包括配置接口 435来接收识别由负载 监控器405和/或vServer 275所使用的用户选l奪的或者用户限定的规格 430的信息用于负载平衡多个服务270A-270N。
0131设备200还包括任一类型和形式的负载监控器405A-405N, 还可以称之为监控代理,用于监控服务270、服务器106或者装置100的 任一操作或者性能特征或者规格。负载监控器405可以包括软件、硬件 或者软件和硬件的任一组合。负载监控器405可以包括任一应用、程序、 脚本、服务、守护进程、过程、任务、线程或者可执行指令集。在一个 实施例中,负载监控器405在设备200的内核空间中操作或者执行。在 另一个实施例中,负载监控器405在设备200的用户或者应用空间中操 作或者执行。在一些实施例中,负载监控器405的第一部分在内核空间 中操作而负载监控器4 05的第二部分在设备2 00的应用层或者空间操作。
0132在一个实施例中,负载监控器405和服务270通信一次。 在一些实施例中,负载监控器405以诸如每一毫秒或者每一秒的预定频 率监控服务270或者与之通信。用户可以经由配置接口 425配置或者指 定预定的频率。在其他情况中,另一个设备或者系统可以经由配置接口 425来配置或者指定预定的频率。在又一个实施例中,负载监控器405响 应于诸如接收请求、响应或者网络分组的一个或者多个事件来监控服务 270或者与之通信。在一个实施例中,负载监控器405响应于策略引擎的一个或者多个策略来监控服务270或者与之通信。
0133在一些实施例中,负载监控器405可以与服务270或者服 务器106使用请求/应答消息机制或者协议。在其他实施例中,负载监控 器405可以具有自定义或者专用交换协议用于和服务、服务器或者装置 通信。在一个实施例中,负载监控器405可以使用服务270的协议来监 控服务270或者与之通信。由此,在一些实施例中,负载监控器405使 用HTTP协议来监控web服务270A或者与之通信,或者使用FTP协议用 于FTP服务器270B。在又一些实施例中,负载监控器405使用TCP或者 ICMP协议用于监控服务270。在一些实施例中,负载监控器405使用网 络管理协议来监控或者查询服务、服务器或者装置的状态或者规格。在 一个实施例中,负载监控器405使用筒单网络管理协议(SNMP)。在另一 个实施例中,负载监控器405使用通用管理信息协议(CIMP)。
0134在一些实施例中,单个负载监控器405监控多个服务 270A-270N或者服务器106A-106B。在其他实施例中,多个负载监控器 405A-40^监控单个服务27(^或者服务器106A。在又一些实施例中,多 个负载监控器405可以每一个监控多个服务270A-270N或者服务器 106A-106N。在一个实施例中,多个负载监控器405可以每一个监控服务 270。在又一个实施例中,负载监控器405A可以监控一个或者多个其它 负载监控器405B-405N。
0135在一些实施例中, 一个或者多个负载监控器405和一个或 者多个服务270相关联。在一个实施例中,用户经由配置接口 425来指 定或者配置负载监控器405用于一个或者多个服务270。例如,用户经由 配置接口 435可以发布命令来限制监控器405到服务275。在其他实施例 中,负载监控器405和vServer 275相关联。在一个实施例中,用户经 由配置接口 4"指定或者配置负载监控器405用于vServer 275。在又一 水恋^乂^4j )fl p 42、山西?.罢i主r /H5iS古^iffi 罢,,Sprver 75用千一
个或者多个服务270A-270N。例如,用户可以将vServer 275限制到服务 270。
0136在一些实施例中, 一个或者多个负载监控器405可以监控 设备200、 vServer 275、网络服务270、客户机102、服务器106、装置IOO或者任意其它网络资源。在一个实施例中,用户指定一类网络服务来
与一个或者多个监控代理405相关联。在另一个实施例中,用户定制监 控代理。例如,用户可以实现或者以其他方式提供脚本用于监控服务。 在又一个实施例中,使用通用监控代理405。在一些实施例中,监控器代 理405可配置地基于一类协议或者一类服务来使用预定的监控器、脚本 或者状态消息。
0137在又一个实施例中, 一个或者多个监控代理405确定一个 或者多个网络服务270的响应时间,用于响应以下类型的其中一个的请 求查验、传输控制协议Ucp)、 tcp扩展内容验证、超文本传输协议 (http)、 http扩展内容验证、超文本传输协议安全(https )、 https扩 展内容验证、用户数据报协议、域名服务以及文件传输协议。在一些实 施例中,监控代理405响应于服务270检查预定的状态码。在其他实施 例中,监控代理405响应于服务270检查预定的串模式(string patters )。
0138在一些实施例中, 一个或者多个负载监控器或者监控代理 405是协议专用的代理。例如,代理405可以确定用于特定协议类型的网 络服务的可用性。在一些实施例中,监控代理405确定对于TCP请求的 服务器106或者网络服务270的响应时间。在其中一个这样的实施例中, 代理使用"TCP/ICMP回应请求"命令来发送数据报到网络服务270,相 应地接收来自网络服务270的数据报,并且基于数据报的往返时间确定 响应时间。在另一个这样的实施例中,监控代理405验证来自网络服务 270的响应包括期望内容。在一个实施例中,监控代理405验证响应不包 括错误。
0139在其他实施例中,监控代理405确定网络服务270对于UDP 请求的可用性。在其中一个这样的实施例中,代理^使用"UDP回应"命 令来发送数据报到网络服务270,相应地接收来自网络服务27Q的数据报, 并且基于数据报的往返时间确定响应时间。在另 一个这样的实施例中, 监控代理405验证来自网络服务270的响应包括期望内容并且不包括错 误。
0140在又一些实施例中,监控代理405确定网络服务270对于 FTP请求的可用性。在其中一个这样的实施例中,监控代理405发送诸如"get"命令或者"put"命令的FTP命令到网络服务270并且确定网络 服务270响应该命令所需要的时间。在另一个这样的实施例中,监控代 理405验证来自网络服务270的响应包括所期望的内容,诸如"get"命 令所请求的文件的内容,并且不包含错误。
0141在又一些实施例中,监控代理405确定网络服务270对于 HTTP请求的可用性。在其中一个这样的实施例中,监控代理405发送诸 如用于统一资源定位符(URL)或者文件的"get"请求的HTTP命令到网 络服务270并且确定网络服务270响应该请求所需要的时间。在另一个 这样的实施例中,监控代理405验证来自网络服务270的响应包括所期 望的内容,诸如URL识别的web页面的内容。在一些实施例中,监控代 理405 ;险查预定的状态码。在其他实施例中,监控代理405才企查HTTP响 应中的预定的串模式。
0142在进一步的实施例中,监控代理405确定网络服务270对 于DNS请求的可用性。在其中一个这样的实施例中,监控代理405发送 诸如对于已知网络地址的dns请求或者ns查询的DNS请求到服务器106 或者网络服务270,并且确定服务器106或者网络服务270响应该请求所 需要的时间。在另一个这样的实施例中,监控代理405验证来自网络服 务270的响应包括所期望的内容,诸如和已知网络地址相关联的计算装 置100的域名。在一个实施例中,监控代理405验S正响应不包含^"误。
0143在一些实施例中,设备200经由监控代理405识别并且收 集基于遍历设备的网络话务量和信息的规格410,或者以其他方式称之为 设备收集的参数或者规格。设备200或者代理405可以以任一类型或者 形式的数据存储机制将设备收集的规格410保存在存储器和/或磁盘存储 装置中。在一个实施例中,设备将规格410保存在表中。在另一个实施 例中,设备将规格410保存在数据库中。在又一个实施例中,设备将规 格410保存在对象或者数据结构中。仍然在其它实施例中,设备200在 多个表中和/或数据存储机制中保存设备收集的规格410。在一个实施例 中,设备收集的规格410可以以任一方式布置在或者组织在多个表中。
0144在一些实施例中,监控代理405由设备所接收和发送的网 络分组确定一个或者多个规格410。在一个实施例中,监控代理405确定
56与一个或者多个服务270或者服务器106的多个和/或一类连接。在另一 个实施例中,监控代理405确定发送到服务270或者服务器106的多个 分组。在其他实施例中,监控代理405确定从服务270或者服务器106 接收的或者由服务270或者服务器106发送的多个分组。在一些实施例 中,监控代理405确定来自服务270或者服务的响应时间。在一个实施 例中,监控代理405确定平均响应时间。在另一个实施例中,监控代理 405确定多个损耗分组或者其百分比。在其他实施例中,监控代理405确 定从服务或者服务器接收的多个错误。
0145在一些实施例中,监控代理405确定到服务270或者服务 器106的连接的带宽。在一个实施例中,监控代理405基于响应时间和/ 或分组损耗来确定连接的带宽。在另一个实施例中,监控代理405基于 从服务270或者服务器106发送或者通信的和/或发送或者通信到其的多 个字节来确定连接的带宽。在一个实施例中,监控代理405基于通过诸 如每秒的预定时间周期上从服务或者服务器接收的多个字节来确定带 宽。在另一个实施例中,监控代理405基于在预定时间周期发送到服务 或者服务器的多个字节来确定带宽。在一些实施例中,监控代理405基 于在预定时间周期发送到服务或者服务器或者从其接收的多个字节来确 定带宽。
0146在一些实施例中,设备200经由监控代理405识别和收集 服务、服务器或者装置提供的规格430。这些规格430也可以称为自定义 规格或者自定义规格表。设备200或者代理405可以以任意类型和形式 的数据存储机制将服务或者装置收集的规格430保存在存储器和/或磁盘 存储装置中。在一个实施例中,设备将规格430保存在表中。在另一个 实施例中,设备将规格430保存在数据库中。在又一个实施例中,设备 将规格430保存在对象或者数据结构中。在一些实施例中,设备将规格 4 3 0以与设备收集的规格410相同的数据存储机制保存。在其他实施例中, 设备将规格430以与设备收集的规格410不同的数据存储机制保存。仍 然在其它实施例中,设备以多个表和/或数据存储机制保存装置提供的规 格420。在一个实施例中,装置收集的规格420可以以任一方式布置在或 者组织在多个表中。例如,设备200可以对于每一个服务、装置或者应用维持规格表420。
0147在一个实施例中,负载监控器405 ^^用诸如SNMP的网络管 理协议来向服务器或者装置查询一个或者多个对象标识符和用于对象标 识符的对象的数据。仅通过示例并且不以任一方式限制,负载监控器405 使用S画P架构来提供管理信息库(MIB) 417,其对于所管理的对象使用 包含对象标识符422A-422N的分层命名空间来指定诸如服务270的装置 或者装置子系统的管理数据。在一些实施例中,MIB417是分层组织的信 息的集合。MIB 417可以使用诸如S丽P的网络管理协议来访问。MIB417 包括由对象标识符422A-422N识别的所管理的对象。在一个实施例中, 所管理的对象(有时称为MIB对象、对象或者MIB)是所管理的装置、设 备或者系统的任意个特征或者规格的其中 一个。在一些实施例中所管理 的对象包括一个或者多个对象实例,其对应于或者称为变量。
0148在一个实施例中,MIB 417分层可以被描述为具有无名根 (nameless root)的扭t,其每一层级由不同的组织分配。在一些实施例 中,顶层级MIB对象工D可以属于不同标准的组织,而较低层级对象ID 由相关的组织分配。MIB 417和/或对象422A-422N可以^皮布置、构建和 组织用于跨越0SI参考模型的任意层的管理。在一些实施例中,MIB 417 和/或对象422A-422N在诸如数据库、电子邮件和web服务的应用上提供 所管理的数据和信息。此外,MIB 417和/或对象422A-422N可以限定任 意区域专用或者设备指定信息和操作,诸如对于由设备200负载平衡的 或者管理的任意类型的服务270、服务器106或者装置100。
0149在S醒P的示例实施例中,S丽P通信才莫型基于具有管理信息 417和管理对象422A-422N的数据的管理器415和代理416。在一个实施 例中,管理器415提供设备和所管理的系统之间的接口。代理416提供 管理器415和所管理的装置、系统、应用、部件、元件或者资源之间的 接口。如图4A中所示,设备200可以包括请求和获取来自代理416的对 象标识符和值的管理器415,代理416诸如服务器106上的代理416。在 S丽P的例子中,管理器415传达GET或者GET-NEXT消息来请求对于指定 对象的信息。代理416响应于管理器的请求,发出具有所请求的信息或 者错误消息的GET-RESPONSE消息到管理器415。管理器415可以发送SET消息来请求对指定变量或者对象422的值的改变。代理416可以发出TRAP 消息来通知事件的管理器415,诸如服务270上的警告或者错误。
0150尽管总的在SNMP网络管理协议的实施例中进行了描述,但 设备200和/或负载监控器405可使用任意类型和形式的管理管理协议和 通信模型来从对于所管理的系统、子系统或者服务270的另一个装置获 取信息的标识符和值,诸如对象或者变量。例如,设备200可以使用任 意一个以下协议和/或通信模型远程监控(腿ON)、 AgentX、简单网关 监控协议(SGMP )、公共管理信息协议(CMIP )、公共管理信息服务(CMIS ) 或者TCP/IP上CMIP (CMOT)。
0151此外,尽管MIB 417总的参考用于诸如S丽P的示例网络管 理协议的管理器/代理通信^^莫型来描述,但是MIB 417可以包括对象标识 符、变量、参数或者规格的其他标识符的任意类型和形式的数据存储装 置。MIB 417可以是依赖协议或者独立协议。例如,MIB 417可以包括用 于可以经由任意类型和形式的API查询的装置或者服务的规格的表。
0152经由网络管理协议提供的所管理的对象或者变量可以提供 由设备用于负载平衡或者设备200的任意其它功能所使用的服务、服务 器或者装置的任意类型和形式的规格或者操作特征。在一个实施例中, 装置提供的规格420可以包括如上描述设备所收集的任一规格410。在另 一个实施例中,装置提供的规格420可以包括所管理的装置、服务或者 系统的任一资源使用的任一类型和形式的信息。在一个实施例中,规格 410包括装置和/或服务27Q的CPU、存储器和/或磁盘使用。在其他实施 例中,规格420可以包括服务270的多个连接、会话或者客户机上的信 息。在一些实施例中,规格420包括服务270或者服务器106的任意阈 值上的任意信息,诸如识别最大数量的会话或者客户机的阈值。在又一 个实施例中,规格420包括服务270的一类协议上的任一信息。在其他 实施例中,规格420包括服务270的任意警告或者错误上的任一信息。
0153在一些实施例中,每一个负载监控器405包括设备收集的 规格410。例如,规格表410可以被明确地默认限制到每一个监控器405。 在其他实施例中,用户将自定义规格表420关联或者限制到监控器405。 在又一个实施例中,用户将自定义规格表420和设备收集的表410关联或者限定到监控器405。在又一些实施例中,用户可以将一个或者多个设 备收集的规格表410和自定义规格表420的任一组合关联或者限制到一 个或者多个负载监控器405。
0154在一些实施例中,用户经由配置接口 425可以对于负载监 控器405配置或者指定一个或者多个对象标识符422A-422N来获取用于 并保存在规格420中的值。例如,用户可以指定用户限定的规格430。在 其他实施例中,设备200或者负载监控器405从诸如服务器106或者服 务270的服务100获得一列一个或者多个对象标识符422A-422N。在又一 个实施例中,设备200包括具有对于已知装置的预定的OIDS 422A-422N 的一个或者多个规格表420。例如,设备200可以包括用于任意一个或者 多个以下i殳备或者装置的规格表420: 1 ) Florida ft. Lauderdale的 Cireix System /〉司出品的任意版本的NatScaler装置;2)诸如由 Washington Seattle的 F5 Networks公司出品的 BIGIP或者 WebAccelerator的4壬一i殳备;3) New Jersey Mahwah的Radware-^司出 品的^f壬意的AppDirector或者AppXcel装置;4) California San Jose 的Cisco System公司出品的和任意应用加速和/或安全相关的设备和/或 软件。
0155设备200、 vServer 275和/或负载监控器405基于来自设 备收集的规格410和/或装置提供的规格42G的任意一个规格来估计、计 算或者以其他方式确定对于每个服务270的负载440。设备200对于负载 440的确定中使用的每一个规格可以使用权重435A-435N和阈值 437A-437N。在一个实施例中,设备200建立权重435和/或阈值437。在 其他实施例中,用户建立权重435和/或阈值437。例如,在一些情况中, 若用户未指定对于多个规格的权重,则设备同等地为每个规格加权。在 一个示例实施例中,设备200如下确定对于每一个服务的负载440:
Sum (规格权重/所建立的规格上限值)* (所获得的规格值/所建立 的规格上限值)/Sum (权重)
在一些实施例中,规格值可以基于0-100的范围,或者绝对范围。 在其他实施例中,规格值可以不基于0-100的范围或者以其他方式与规 格的类型和值的可能范围相关。例如,识别多个连接的规格可以具有
6010000的上限或者预定的最大值。在其中一个这样的实施例中,设备建立
对于规格值的上限值或者预定上限。在另一个这样的实施例中,用户经
由配置接口 425建立对于规格值的上限值或者预定的上限。在进一步的 实施例中,所建立的上限值可以包括低于对于规格的实际最大值或者范 围值的上限的值。例如,用户可以基于规格的期望的操作或者性能范围 来指定或者配置相对的范围值。
0156在一些实施例中,如果服务的规格超过用户或者设备提供
在其他实施例中,如果服务的所有规格超过它们对应的阈值,则服务可
中,甚至当服务超过对于一个或者多个规格的阈值时,则服务可以被考
会话可以被识别为对于vServer 275或者服务270是持续或者稳定的。 在这些情况中,如果对于客户机会话的请求由设备接收,尽管对于 vServer或者服务的规j格已经超过,设备还可以提供请求给vServer 275 或者服务270。
0157仍在其他实施例中,如果服务或者虚拟服务器的规格的阈 值已经超过,则设备可以响应于所超过的阈值将作出请求的客户机重定 向到另一个资源。在一个实施例中,设备可以发送URL到包括服务器106 或者服务270的地址的客户机,使得客户机可以旁路设备200和直接访 问服务器106或者服务270。在一个实施例中,设备可以发送URL到包含 第二设备200或者另一个装置的地址的客户机。仍在另一个实施例中, 设备200可以将客户机请求重定向到代表客户机的第二设备、装置、月良 务或者服务器。
0158在一个实施例中,如果服务或者虛拟服务器的规格的阈值 已经超过,则设备可以响应于所超过的阈值将客户机请求引导到第二虛 拟服务器或者服务。在一个实施例中,第二虛拟服务器可以是初级虚拟 服务器的备份。当检测到超过的阈值时,设备可以溢出请求并且连接到 到第二虚拟服务器。
0159尽管负载440总的考虑到上述因素进行讨论,但是设备可以使用任意类型和形式的负载计算、加权或者不加权。在一些实施例中,
设备200使用规格值的平均值确定负载。在其他实施例中,设备200使 用规格的派生值(derivative value)来确定负载440。在另一个实施例 中,设备200使用规格的任意统计测量来确定负载440。仍在另一个实施 例中,设备200使用规格的任意功能或者计算来确定负载440。在又一些 实施例中,设备200可以对于每个规格确定负载440。在这些实施例中, 设备200可以基于任意类型和形式的对服务的负载的规格成分的集合来 聚集、比较或者以其他方式计算负载440。
016 0在一些实施例中,用户配置对于服务2 7 0的多个监控器4 05 。 在这些实施例中,服务270上的负载440是所有监控器的负载的和。在 一个实施例中,多个监控器440的负载的和被加权。设备可以分配监控 405加权。加权可以包括整数、小数或者任意其它数字指示。在一些实施 例中,用户可以经由配置接口 425配置对应于监控器405的权重。在一 些实施例中,所有的监控器405可以被分配相同的权重。在其他实施例 中,多个监控器405可以每一个分配不同的权重。权重可以基于指示相 对重要性的任意标准来分配给监控器,包括但不限于考虑到服务的监控 器的相对重要性或者值的设备或者用户确定、监控机制的可靠性和监控频率。
0161在一个实施例中,监控代理405可以基于通过设备监控的 服务的相对重要性来分配权重。例如,如果环境中的大部分用户请求是 HTTP请求,则监控服务器106的HTTP可用性的监控代理可以被分配10 的权重,而监控服务器106的FTP可用性的监控代理可以被分配3的权 重。或者例如,如果管理员为UDP应用设置高优先级,则监控服务器的 UDP可用性的监控代理可以被分配给2Q的权重,而DNS监控代理可以被 分配5的一又重。
0162在一些实施例中,设备200可以计算当前报告网络服务270 在操作中的监控代理的权重的总和。例如,如果五个监控代理监控网络 服务270,其中每一个分配30的权重,并且五个监控代理的三个报告网 络服务270可用,则设备可以确定当前报告网络服务270在操作中的监 控代理的总和是90。或者例如,如果仅有两个监控代理报告服务器106可用,其中一个具有20的权重,另一个具有40的权重,则设备可以计算当前报告服务器106在操作中的监控代理的总和是60。
0163设备200还包括^^供用于用户、应用或者系统以和设备200通信的任意类型和形式的接口机制的配置接口 425。在一个实施例中,配置接口 425包括命令行接口 425B。在另一个实施例中,配置接口 425包括图形用户接口 425A。在一些实施例中,配置接口 425包括用于应用、程序或者脚本以与设备200通信的应用编程接口 ( API )或者开发工具包。
0164在一些实施例中,设备200经由设备的显示器显示配置接口 425。在其他实施例中,配置终端或者装置100和设备200连接或者通信,并且显示配置接口 425。例如,配置装置IOO或者终端可以经由设备200的端口或者IP地址连接到设备200。设备200可以提供web服务侦听端口和IP地址以将页面提供给用户。所提供的页面可以提供用于配置设备200的用户接口。在其他实施例中,配置终端100可以经由任意类型和形式的连接来连接到设备200并与之通信,包括监控器端口、串行端口或者USB连接。
0165经由配置接口 425,设备200可以接收识别用户选择的规格430的信息来用于对于一个或者多个服务确定负载440。在一个实施例中,用户从多个设备收集的规格410识别或者选择规格。在另 一个实施例中,用户从多个装置提供的规格420识别或者选择规格。在一些实施例中,用户从设备收集的规格510选择一个或者多个规格并且从装置提供的规格410选4奪一个或者多个规格。设备200还可以经由配置接口 425接收识别用户的选择的信息或者对于规格的权重435的指定。例如,用户可以提供权重35的值用于规格。在一些实施例中,设备200接收识别对于阈值437的用户提供的值的信息。
0166在操作中,设备200可以使用用户选择的规格430和用户提供的权重435和阈值437用于确定负载440。在另一个实施例中,设备可以使用来自设备收集的规格410的任意设备建立的规格用于确定负载。在一个实施例中,用户确定权重和/或阈值用于设备提供的规格。这样尽管在一些实施例中规格可以不是用户选择的,但用户可以控制或者配置用于规格410的权重435和/或阔值437。在其他实施例中,设备可以使用用户选择的规格430和设备建立的规格410的任一组合用于确定负载。在另一个实施例中,设备200可以使用对于任意规格的用户提供的权重435和/或阔值437以及设备提供的权重435和/或阈值437的任一组合来确定负载440。
0167现在参考图4B,描述用于负载平衡一个或者多个服务的方法的步骤的实施例。在一些实施例中,设备200可以使用设备收集的规格410和装置提供的规格420来负载平衡一个或者多个服务。在其他实施例中,设备200基于用户选择的规格、权重和/或阈值来负载平衡一个或者多个服务。总的来说,在方法450的步骤455,识别多个规才各用于由设备200负载平衡多个服务270A-270N。在步骤457,在一些实施例中,设备200接收用户限定的规格来收集或者监控服务270。在步骤460,设备从识别的规格集接收用户选择的规格。用户还可以识别用于该规格的权重和/或阈值。在步骤465,设备基于用户选择的规格信息来确定用于每一个服务的负载。在步骤470,设备接收客户机访问服务的请求。在步
请求。在步骤480,设备将客户机请求发送到设备选择的服务。
0168在进一步的细节中,在步骤455,设备200识别规格来收集和监控用于负载平^f一个或者多个服务270A-270N。在一个实施例中,设备200提供或者识别一个或者多个设备收集的规格410。例如,表410可以识别设备200收集的规格。在另一个实施例中,设备200提供装置提供的规格420的一个或者多个预定的表,诸如用于Citrix、 F5、 Cisco或者Radware的i殳备。在其他实施例中,设备200经由网络管理协议在诸如对于S画P的MIB 417的对象或者变量数据库中识别一个或者多个规格来收集。在一个实施例中,设备提供预配置的或者预安装的MIB 417用于预定的装置或者服务270,诸如应用。
0169在一些实施例中,设备200查询装置或者服务270来确定可用的规格以收集和/或监控。例如,在一个实施例中,设备200对于可用的对象标识符4"A-422N来查询装置或者服务。在另一个实施例中,设备200适用诸如S丽P的网络管理协议来查询MIB 417中的对象的识别。在又一个实施例中,用户经由配置接口 425识别一个或者多个对象标识符422A-422N以从装置或者服务270收集和/或监控,诸如应用。
0170在一些实施例中,在步骤457,用户指定或者限定用于设备的规格来收集和/或监控服务270。例如,用户可以经由配置接口 425指定MIB 417中的对象标识符。在其他实施例中,用户可以配置或者实现负载监控器405来收集和/或监控用户限定的或者指定的规格。在又一个实施例中,诸如网络管理员的用户可以配置、指定或者实现布置在服务器106上的MIB 417中的一个或者多个对象标识符422。在一些实施例中,用户可以实现应用、程序、脚本、服务或者其它可执行指令集来收集服务器106上的规格并且将规格的值保存在服务器106上的MIB 417中。例如,用户可以执行程序或者脚本来监控服务器106上的服务270的-见格并且使用收集的值更新MIB 417。设备200上的管理器415可以向服务器上的代理416查询保存在用于服务270的服务器的MIB 417中的规格的信息和/或值。
0171在步骤460,设备2 00接收识别由用户对经由设备所识别的一个或者多个规格的选择的信息。在一些实施例中,用户经由配置接口425选择经由设备200提供的一个或者多个规格用于负载平衡服务器270。在一个实施例中,设备200对于通过用户的选择经由配置接口 425提供任意一个或者多个设备收集的规格410或者装置提供的规格420。用户可以经由命令行接口 425B或者图形用户接口 425A来配置设备200以使用一个或者多个用户选择的规格430用于通过设备200确定负载440或者以其他方式用于负载平^軒月l务270A-270N。
0172在一个实施例中,设备200接收识别用户选择了一个或者多个设备收集的规格410的信息。在另一个实施例中,设备200接收识别用户选择了一个或者多个装置提供的规格420的信息。在又一个实施例中,设备200接收识别用户选择了一个或者多个设备收集的规格410和一个或者多个装置提供的规格42Q的信息。
0173此外,经由配置接口 425,设备200可以接收识别对于规格的权重435的用户指定或者建立的信息。在一个实施例中,设备200接收对于用户选择的规格430的权重435的用户的标识。在另一个实施例中,设备200接收对于设备建立的规格410的权重435的用户的标识。在其他实施例中,设备200可以接收识别对于规格的阈值437的用户指定或者建立的信息。在一个实施例中,设备200接收对于用户选择的规格430的阈值437的用户标识。在另一个实施例中,设备200接收对于设备建立的规格410的阁值437的用户标识。
0174在步骤465,设备确定用于一或者多个服务中的每一个的负载。在一个实施例中,负载监控器405收集和/或监控用于服务的一个或者多个用户选择的规格430。在另一个实施例中,负载监控器405收集和/或监控设备收集的规格410。在一些实施例中,负载监控器405经由诸如S丽P的网络管理协议收集规格。在又一个实施例中,多个负载监控器405A-405N收集和/或监控用于月良务270的规格。在一个实施例中,尽管用户选择的一个或者多个规格430用于收集和/或监控服务270,但是设备200收集和监控任意一个或者多个设备建立的规格410,诸如用于服务270的连接的数量、响应时间、带宽、和分组的数量。
0175在一些实施例中,vServer 275经由负载监控器405收集和监控的规格信息对于每一服务270确定负载440。在另一个实施例中,负载监控器405确定对于被监控的服务270的负载440。设备200和/或负载监控器405可以使用用户指定的权重435所加权的用户选择的规格430来确定负载440。在一些实施例中,设备200和/或负载监控器405使用用户指定的权重435所加权的多个用户选择的规格430来确定负载44 0。在又一个实施例中,设备200和/或负载监控器405使用用户选择的规格4 30和用户识别的权重435和设备建立的规格410和设备建立的权重435来确定负载。在进一步的实施例中,设备200通过将对于服务270所使用的每一个规格(用户和/或设备)的加权的负载进行相加来确定负载440。对于每个服务270多个监控器405A-405N的实施例,设备200可以通过分配权重到每一个监控器并且计算所有监控器405的加权的负载来确定服务的负载。在其他实施例中,设备200和/或负载监控器405以诸如每一毫秒或者每一秒的预定频率来确定服务27Q的负载。
0176在一些实施例中,负载监控器405确定服务270的规格已经达到或者超过阈值437。在其他实施例中,负载监控器405确定服务270的规格在阈值437之内。在一个实施例中,负载监控器405使用设备
66建立或者提供的用于规格的阈值。在另一个实施例中,负载监控器405
使用用户指定或者配置的阈值437。
0177在步骤470,设备200从客户机接收访问服务的请求。在一 个实施例中,虚拟服务器或者vServer 275拦截或者以其他方式接收来 自客户机的请求。在一些实施例中,虚拟服务器275透明地拦截客户机 的到服务270或者服务器106的请求。在其他实施例中,客户机102发 送请求到vServer 275。在另一个实施例中,vServer 275才艮据^青求确定 该请求用于设备200管理的一个或者多个服务。在一个实施例中,vServer 275经由客户4几和设备200之间的SSL VPN连接拦截或者接收请求。
0178在步骤475,设备200基于对于每个服务270的负载440 的确定来确定哪个服务来引导客户机请求。在一个实施例中,vServer 275 响应于一个或者多个负载监控器405来引导请求。在一些实施例中, vServer 275将请求引导、转发或者以其他方式发送到具有最少或者最小 负载的服务270。在一个实施例中,vServer 275将请求引导、转发或者 以其他方式发送到具有较低确定的负载的其中 一个的服务。在 一 些实施 例中,vServer 275将请求引导、转发或者以其他方式发送到之前处理来 自客户机102的请求的服务。在一个实施例中,如果服务的负载在预定 阈值内,vServer 275将请求发送到之前使用的服务。在一些实施例中, vServer 275将请求发送到具有预定阈值内的所确定的负载的列表中第一 可用的服务。
0179在另一个实施例中,vServer 275使用循环技术或者加权循 环将请求引导、转发或者以其他方式发送到服务270。在又一个实施例中, vServer 275基于诸如设备收集的规格410或者装置提供的规格420的一 个或者多个规^"将请求引导到服务。例如,在一些实施例中,vServer 275 基于以下一个或者多个将请求引导到服务最少响应或者往返时间、连 接的最少数量、分组的最少数量和最少使用的带宽。在又一些实施例中, vServer 275基于一个或者多个装置提供的规格430将请求引导到服务, 诸如CPU、存储器和磁盘资源使用。在另一个例子中,vServer 275基于 服务器上的服务资源使用将请求引导到服务,诸如设备或者应用会话的 系统资源使用。0180在一些实施例中,vServer 275在对于服务270的规才各已经 超过诸如用户配置的阈值437的阈值437时可以不将请求引导到服务 270。在其他实施例中,vServer 275在如果对于服务的规格的多于一个 的阈值437已经超过时可以不将请求引导到服务。在又一个实施例中, 如果规格阈值437已经达到或者超过,则vServer 275可以将请求引导 到服务270。例如,如果多个阈值437的一个规格阈值437已经超过,则 vServer 275仍旧可以在其他规格阈值没有达到时将请求引导到服务。
0181仍旧在其他实施例中,设备200可根据负载监控确定第一 vServer 275A的规格已经达到阈值437。响应于该确定,设备200可以 将服务270A-270N的管理溢出到第二虚拟服务器或者vSever 275B。在一 个实施例中,第二虚拟服务器275B可以是备份服务器。在一些实施例中, 响应于检测到第一虚拟服务器275A已经达到一个或者多个阈值来建立第 二虛拟服务器275B。在另一个实施例中,第二虚拟服务器275B可以建立 并且运行在设备2Q0上。
0182在步骤480,设备将客户机请求发送到在步骤475由设备确 定的服务。在一个实施例中,设备200将客户机请求以透明方式发送到 服务270,使得请求呈现出已经从客户机发送而不是从设备200。例如, 设备200可以用作客户机102的透明或者拦截代理。在其他实施例中, 设备200用作非透明代理并且代表客户机将请求发送到服务。在一些实 施例中,vServer 275将请求发送给服务275。在其他实施例中,备份服 务器275将请求发送给服务。在又一些实施例中,第二vServer 275将 请求发送给服务。
E、异类装置间的全局服务器负载平衡
0183现在参考图5A-5C,描述用于负载平衡多个异类装置的系统 和方法。此处描述的设备200可以被布置来负载平衡多个服务并且负载 平衡装置。第一设备200可以经由预定的规格交换协议(MEP)和同类型 的第二设备200A进行通信。第一设备200经由MEP获取协议规格用于确 定第二设备200A的负载。与第一设备不同类型的其它装置可以被布置在 网络中来执行本地负载平衡,诸如用于服务器群组。这些装置可以不经 由第一设备200的MEP协议进行通信。而是,这些其他装置可以经由诸如简单网络管理协议(S丽P)的网络管理协议来提供规格。使用结合图
4A和4B描述的技术,第一设备200从这些异类装置经由网络管理协议来 获取规格。使用经由MEP协议从同类型的装置获取的规格和经由网络管 理协议从不同类型的装置获取的规格,设备200可以使用这些组合的规 格来确定跨越这些异类装置的负载并基于该负载将请求引导到其中一个 装置。
0184现在参考图5A,描述用于负载平衡包括服务器和本地或者 其他负载平衡装置的异类装置的网络环境的实施例的例子。总的来说, 网络环境包括多个不同类型负载平衡装置和服务器。设备200被配置为 全局负载平衡装置来负载平衡多个负载平衡装置和服务器。负载平衡装 置的每一个可以执行对于一个或者多个服务270A-270N的本地负载平衡。 例如,同样类型的第一组负载平衡设备200A-20ON可以执行第一网络104 上服务或者服务器的本地负载平衡。这些设备200A-200B可以是同样类 型的全局负载平衡设备200。或者在一些情况中,本地负载平衡设备 200A-200N 一皮设计和构建为经由规格交换协议540传递^见格和其他信息。 第二类型的负载平衡设备5 00A-5 00N可以执行对于第二网络104,上一个 或者多个服务270A,-270N,的本地负载平衡。这些负载平衡设备 500A-500N可以与第一类型的设备200A-200N和/或全局负载平衡设备 200类型不同。设备500A-500N可以操作或者执行一个或者多个虚拟服务 器或者vServer 275A-275N。设备500A-500N可以不被设计为经由设备 200A-200N的MEP协议540通信。而是这些i殳备500A-500N可以经由诸如 S画P的网络管理协议提供规格。全局负载平衡设备200还可以对于诸如 服务器群组38的一个或者多个服务或者服务器执行负载平衡。服务器或 者服务的每一个可以是不同类型的,诸如HTTP服务和FTP服务。
0185考虑图5A,多个设备、服务器和服务可以以分层方式布置。 第一设备200可以是全局负载平衡设备处于分层的顶部,来管理多个其 他设备200A-200N、 500A-500N和服务器。在一个情况中,设备200直接 管理一个或者多个服务器106或者服务270A-270N。在另一个情况中,设 备200管理一个或者多个设备200A-200N、 500A-5Q0N,其又管理一个或 者多个服务器106或者服务270A-270N。由第一设备200管理的设备可以
69管理第二设备,其又管理一个或者多个服务或者服务器。
0186通过参考不同负载平衡产品的例子,全局负载平衡设备2 00 可以是称为Citrix System公司出品的NetScaler的4壬意一种产品实施 例。设备200A-200N也可以是被配置为执行一个或者多个服务270A-270N 的本地负载平衡的NetScaler装置。当设备200A-200N与全局负载平衡 设备200是相同类型,这些设备被设计和构建为经由称之为规格交换协 议的预定的协议和/或通信;f莫型进行通信。设备200A-200N可以^^配置为 以预定频率提供规格信息给设备200。 一个或者多个设备500A-500N可以 包括另一类型的负载平^^装置,诸如F5 Networks公司出品的BigIP负 载平衡装置。另一种一个或者多个设备500A-500N可以包括不同类型的 负载平衡装置,诸如Radware有限公司出品的A卯Director设备。在一 些情况中, 一个或者多个设备500A-500N可以包括Cisco负载平tf装置。 在其他情况中, 一个或者多个设备5 00A-5 00N可以包括Nortel负载平銜二 装置。任意一个或者多个这些设备500A-500N可以不被设计或者构建为 经由MEP协议540与设备200通信。尽管该例总的在以上描述为提供全 局负载平衡装置的Citrix NetScaler装置200,但是可以使用任意其它 类型的负载平衡装置。
0187除了使用MEP 540,这些不同设备500A-500N的每一个可以 经由诸如S丽P的网络管理协议提供规格信息。如图5A中所示,这些设 备500可以包括用于经由MIB 417提供对象标识符422A-422N的代理416。 该示例的进一步实施例并且如结合图4A和4B所讨论的,使用管理器/代 理通信模块的设备200可以经由网络管理协议查询任意一个这样的设备 500A-500N,以经由MIB417识别、收集和监控所识别的对象。在一些情 况中,设备200可以使用S画P来与一个或者多个设备500A-500N通信。 在其他情况中,设备200可以使用另一类型的网络管理协议与另一个或 者多个设备500A-500N通信。仍在另一个情况中,设备200可以使用第 三类网络管理协议来与又一组一个或者多个设备500A-500N通信。
0188设备200A-200N可以被认为是与设备200同类或者相同类 型的设备或者装置。在一个实施例中,设备200A-200N是设备200的相 同产品族。在另一个实施例中,设备200A-200N是设备200的相同装置的一个版本。在一个情况中,设备200和200A-220N由同一家/>司出品。 在一些实施例中,设备200A-200N和设备200被配置、设计和构建以^吏 用预定协议和/或通信才莫型进行通信。在一个实施例中,设备20OA-20ON 和设备200被配置、设计和构建为使用专用或者自定义的协议和/或通信 模型。
0189设备500A-500N可以被认为是与设备200异类的或者不同 类型的设备或者装置。在一个实施例中,设备500A-500N由与i殳备200 不同的公司出品。在一些实施例中,设备500A-500N和设备500不是被 专有设计为使用预定的协议和/或通信模型进行通信。在一个实施例中, 设备500A-500N和设备200不是被配置、设计和构建来使用专用或者自 定义协议和/或通信模型。在一些情况中,设备500A-500N使用网络管理 协议而不是使用专用协议来提供规格到其他装置、应用或者服务。
0190现在参考图5B,描述用于识别、收集和监控从具有多个协 议的异类网络装置和服务器获取的规格的设备200的实施例。设备200 可以具有被配置、构建或者设计来提供一个或者多个网络104、 104,、 104" 上的多个装置的负载平衡的一个或者多个虚拟服务器275A-275N。设备 200可以使用一个或者多个负载监控器405A-405N来监控异类装置的每一 个的负载。在一个实施例中,设备200监控设备200A-200N的负载。设 备200和/或负载监控器405使用MEP协议540来从一个或者多个设备 200A-200N获取Mi各。在另一个实施例中,设备200监控设备500A-500N 的负载。在其他实施例中,设备200监控一个或者多个服务器106的负 载。仍在另一个实施例中,设备200监控服务器群组38中的服务器之间 的负载。设备200可以使用一个或者多个网络管理协议来从服务器106、 服务器群组38和设备500A-500N获取规格。
0191设备200经由MEP协议540和网络管理协议从多种诸如设 备500A-500N和服务器106的异类装置和同类装置200A-200N收集规格。 设备200将规格保存在包括诸如文件、数据库、对象或者存储器中和/或 磁盘上的数据结构的任一类型和形式的数据存储元件的GSLB (全局服务 器负载平衡)或者全局规格表530中。vServer 275和/或负载监控器405 使用来自GSLB规格5 30的一个或者多个规格来提供服务器、服务器群组、200880015738.8
0192i殳备200可以收集和监控经由MEP协议540从一个或者多 个设备200A-200N获取的规格并且将它们保存在基于MEP的规格表 510A-510N中。在一个实施例中,设备200使用第一类或者第一版本的 MEP协议540来获取来自第一设备200A的规格并且将规格保存在第一表 510A中。在另一个实施例中,设备200使用第二类或者第二版本的MEP 协议540,来获取来自第二设备2 0 ON的规格并且将规格保存在第二表51 ON 中。
0193设备200可以使用任一类型和形式的网络管理协议(丽P) 收集和监控来自设备500A-500N的规格并且将该规格保存在基于丽P的 规格表520A-520N中。在一个实施例中,设备200 4吏用S丽P协议和通信 模型来获取来自第二类型设备50 OA的规格并且将规格保存在基于丽P的 规格表52 0A中。在一些实施例中,设备200使用诸如C頂P的第二类网 络管理协议来从第二或者第三类设备500N获取并且将规格保存在基于 丽P的规格表520N中。在一些实施例中,设备500A是与设备500N不同
0194设备200还可以使用任一类型和形式的网络管理协议(丽P ) 从服务器1Q6和/或服务器群组38收集和监控规格并且将规格保存在基 于薩P的规格表520A,-520N,中。在一个实施例中,设备200使用诸如S画P 的同样的网络管理协议用于从服务器106获取规格,该网络管理协议同 样用于从设备500A-500N的其中一个获取规格。在另一个实施例中,设 备200使用和设备200从设备500获取规格所使用的不相同类型的网络 管理协议来从服务器获取规格。
0195设备2 00可以将对于GSLB规格520的规格保存在对于每个 装置的单个表中。例如,设备200可以将用于第一设备200A的规格保存 在第一规格表510A中,并且将来自第二设备520A的规格保存在第二规 格表520A中。设备20Q可以将来自服务器106的规格保存在服务器规格 表520A,中。在另一个实施例中,设备200将来自服务器群组38的规格 保存到用于服务器群组的规格表520N,中。
0196设备200可以将对于GSLB规格520的规格保存在用于每一类协议的单个表中。例如,设备200可以将来自多个设备200A-200N的 所有基于MEP的规格保存在第一规格表中。在一些实施例中,设备200 将第一类或者版本的基于MEP协议的规格保存在第一表510A中并且将第 二类或者版本的MEP协议保存在第二表510N中。设备200可以将来自一 个或者多个设备500A-500N的所有基于S丽P的规格保存在第二规格表 中。在另一个例子中,设备可以将来自一个或者多个设备500A-500N的 根据第二类网络管理协议的规格保存在第三规格表中。
0197GSLB规格530可以包括涉及或者关联到设备200、 500、月良 务器106或者服务器群组38的操作和/或性能特征的任一类型和形式的 数据、统计、状态或者信息。全局规格530可以包括涉及设备200、 500、 和/或服务器106或者服务器群组38的网络的任一类型和形式的数据、 统计、状态或者信息。全局规格530可以包括涉及由设备200A-200N、 50OA-50ON所负载平tf的服务270A-27ON的任一类型和形式的数据、统计、 状态或者信息。在一些实施例中,全局规格530包括连接到设备 200A-200N、 500A-500N的任意客户机102和/或服务器106上的才喿作和/ 或性能数据。在一个实施例中,设备200A-200N、 500A-500N确定关于其 连接的或服务的任一客户机102或者服务器106的操作和/或性能信息和 建立这些客户机102和/或服务器106上的规格。在这些实施例中,设备 200A-200N、 50OA-5 0ON可以提供这些规才各到全局负载平衡设备200。
0198在一些实施例中,操作和/或性能特征提供包括对于设备或 者服务器的任意一个以下的信息的规格1 )负载;2)连接的数量和类型; 3)资源使用;4)资源可用性;5)未完成请求的数量;6)发送的请求 的数量;7)服务的客户机的数量;8)响应时间信息,包括平均和历史 响应时间;9)连接的错误、状态、性能或者带宽,和10)会话的数量, 和其状况或者状态。在另一个实施例中,身见格5 30包括设备200A-200N、 500A-500N的任意IP或者网络层信息上的、或者设备200A-200N、 500A-500N的连接、或者设备200A-200N、 500A-500N所服务的客户机和/ 或服务器的连接的信息。例如,经由规格530提供的信息可以包括设备 200A-200N、 500A-500N的路由表用于执行网络地址转换,诸如用于SSL VPN连接。
0199经由配置接口 425,用户可以从全局规格530选择一个或者 多个规格430用于负载监控和确定负载440。设备200可以接收识别来自 全局规格530的一个或者多个规格的用户选择的信息。设备可以接收第 一类型设备的一个或者多个基于MEP的规格510的用户选4奪。设备可以 接收第二类型的设备的一个或者多个基于丽P的规格520的用户选择。 设备还可以接收用于任一服务器或者服务器群组的一个或者多个基于 丽P的规格520,的用户选择。用户可以从全局规格530选择规格430的任 一组合来配置设备200以对应于用户选择的规格来执行异类装置的负载 平衡。
0200在一个实施例中,设备200使用和任意一个或者多个用户 选择的规格430相组合的设备建立的规格来负载平衡。例如,设备200 可以对于任一设备200、 500或者服务器106收集和监控多个连接、响应 时间、分组的带宽和数量并且使用具有任意用户选择的规格的这些规格 来用于负载平tf。经由配置接口 425并且如结合图4A和4B所讨论的, 设备200可以接收来自用户的信息,该用户识别、指定或者建立用于任 一设备建立的规格和/或用户选择的规格的权重435和/或阈值437。
0201现在参考图5C,描述用于在异类装置之间执行全局负载平 衡的方法550的步骤的实施例。总的来说,在步骤555,设备200识别来
自异类装置的多个规格用于通过设备进行负载平衡。在步骤560,设备 200从一个或者多个同类设备200A-2 00N或者和第一负载平銜^殳备200同 类型的设备获耳又规格。在步骤565,设备2QQ从诸如设备500A-5QQN和/ 或服务器106的异类设备经由诸如S丽P的网络管理协议来获取规格。在 步骤570,设备基于在步骤560和步骤565收集的规格确定由设备200管 理的多个设备、服务器和/或服务中的一个或者多个的负载。在步骤575, 设备接收客户机请求来访问服务。在步骤580,设备基于设备200A-200N、 500A-500N的负载或者服务器的负载来去确定将客户机请求引导到谁。在 步骤580,设备200将请求发送到根据所确定的负载选择的装置、设备或 者服务。
0202在进一步的细节中,在步骤555,设备200识别规格来收集 和监控用于负载平衡一个或者多个设备200A-200N、 500A-500N、服务器106或者服务270A-270N。在一个实施例中,设备200提供或者识别一个 或者多个设备收集的规格410,如结合图4A和4B说描述的。例如,表 410可以识别设备200所收集的规格。在另一个实施例中,设备200提供 设备提供的规格510或者520的一个或者多个预定表,诸如用于Citrix、 F5、 Cisco或者Radware的应用。在其他实施例中,设备200识别一个或 者多个规格来经由网络管理协议收集在对象或者变量数据库中,诸如对 于S画P是MIB 417。在一个实施例中,对于预定的设备200A-200N、 500A-500N、服务器106或者服务270,设备提供预配置的或者预安装的 MIB 417。
0203在一些实施例中,i殳备200查询设备200A-200N、 500A-500N、 服务器106或者服务270来确定可用的规格,以收集和/或监控。例如, 在一个实施例中,对于可用的对象标识符422A-422N,设备200查询设备、 服务器或者服务。在另一个实施例中,设备200使用诸如S丽P的网络管 理协i义来查询MIB 417中的对象的标识。在又一个实施例中,用户经由 配置接口 425识别 一个或者多个对象标识符422A-422N来从设备 200A-200N、 500A-500N、服务器06或者服务270收集和/或监控。在一 些实施例中,用户经由配置接口 425识别一个或者多个全局规格530来 从所管理的异类装置的任意一个收集和/或监控。
0204在步骤560,设备200从一个或者多个设备200A-200N经由 MEP协议540来收集和/或监控规格510A-510N。在一些实施例中,设备 200A-200N与设备200相同类型或者同类。在一个实施例中,设备200收 集和/或监控通过设备建立的、确定的或者以其他方式选择的规格510。 在另一个实施例中,设备20Q收集和/或监控通过用户建立的、确定的或 者以其他方式选择的规格510。在一些实施例中,设备200使用第一类型 或者版本的MEP协议540来从第一设备200A收集^见格,并且〗吏用第二类 型或者版本的MEP协议540,来从第二设备200N收集规才各。
0205设备200的一个或者多个负载监控器或者监控代理 405A-405N可以;故配置、构建或者实现为经由MEP协议540来识別、收集 和/或监控来自一个或者多个设备200A-200N的规格。第一负载监控器 405A可以收集和监控来自第一设备200A的规格值。第二负载监控器405N可以收集和监控来自第二设备200N的规格值。第三负载监控器405可以 收集和监控来自第一和第二设备200A-200N的规格值。负载监控器 405A-405N可以以任意类型的调度或者预定频率来收集和/或监控规格。 在一些实施例中,负载监控器405响应于事件的检测来收集规格。
0206在步骤565,设备200从一个或者多个设备500A-500N、月良 务器或者服务器群组经由任一类型和形式的网络管理协议来收集和/或 监控规才各520A-520N,。在一些实施例中,设备500A-500N与设备200不 同类型或者异类。在其他实施例中, 一个或者多个设备500A-500N与一 个或者多个其它的设备500A-500N不同类型或者异类。在一个实施例中, 设备200收集和/或监控通过设备建立的、确定的或者以其他方式选择的 规格520。在另一个实施例中,设备200收集和/或监控通过用户建立的、 确定的或者以其他方式选择的规格520。在一些实施例中,设备200使用 诸如S丽P的第一类型或者版本的网络管理协议来从第一设备500A收集 规格并且使用诸如S丽P或者CIMS的第二类型或者版本的网络管理协议 来乂人第二设备50ON收集规j才各。
0207设备200的一个或者多个负载监控器或者监控代理 405A-405N可以被配置、构建或者实现为经由网络管理协议来识别、收集 和/或监控来自一个或者多个设备500A-500N的规格。第一负载监控器 405A可以收集和监控来第一设备500A的规格值。第二负载监控器405N 可以收集和监控来自第二设备500N的规格值。第三负载监控器405可以 收集和监控来自服务器106或者服务器群组38的规格值。在其他实施例 中,多个监控器405A-405N可以收集和/或监控来自多个设备500A-500N 和/或服务器106的规格。负载监控器405A-405N可以以任意类型的调度 或者预定频率来收集和/或监控规格520A-520N的任意一个。在一些实施 例中,负载监控器405响应于事件的检测来收集规格520A-520N,。
0208在步骤570,设备确定用于一个或者多个设备200A-200N、 500A-500N、服务器、服务器群组或者服务的每一个的负载。在一些实施 例中,vServer 275经由负载监控器405所收集和监控的规格信息来确定 用于每一服务270的负载440。在另一个实施例中,负载监控器405确定 用于所被监控的设备、服务器或者服务的负载440。0209设备200、 vServer 275和/或负载监控器405可以使用用 户指定的权重435所加权的用户选择的规格430来确定负载440。在一些 实施例中,设备200和/或负载监控器405使用用户指定的权重435所加 权的多个用户选择的规格430来确定负载440。在又一个实施例中,设备 200和/或负载监控器405使用用户选择的规格430和用户识别的权重435 和设备建立的规格410和设备建立的权重435来确定负载。在进一步的 实施例中,设备200通过将对于每一个规格的加权负载相加来确定负载 440。对于每个服务270多个监控器405A-405N的实施例,设备200通过 分配权重到每个监控器并且计算所有监控器405的加权负载来确定用于 设备、服务器或者服务的负载。在又一个实施例中,设备可以通过分配 权重给每个设备、服务器或者服务来确定用于设备、服务器或者服务的 负载。
0210在一些实施例中,负载监控器405确定用于设备、服务器 或者服务的规格530已经达到或者超过阈值437。在其他实施例中,负载 监控器405确定用于设备、服务器或者服务的规格530在阈值437的范 围内。在一个实施例中,负载监控器405使用设备建立的或者提供的阈 值用于规格530。在另一个实施例中,负载监控器405使用用户指定的或 者配置的阈值437。
0211在步骤575 ,设备200接收从客户机访问服务的请求。在一 个实施例中,设备200的虚拟服务器或者vServer 275拦截或者以其他 方式接收来自客户机的请求。在一些实施例中,虚拟服务器275透明地 拦截到服务270或者服务器106的客户机请求。在其他实施例中,客户 机102将请求发送到vServer 275。在另一个实施例中,vServer 275从 该请求确定请求是用于设备200所管理的一个或者多个服务。在一个实 施例中,vServer 275经由客户才几和设备200之间的SSL VPN连接拦截或 者接收请求。
0212在步骤580,设备200基于对于设备200A-200N、服务器106 或者服务270A-270N中的每一个的负载440的确定来确定设备 200A-200N、服务器106或者服务270A-270N中的哪一个引导客户机请求。 在一个实施例中,vServer 275响应于一个或者多个负载监控器405来引导请求。在一些实施例中,vServer 275将请求引导、转发或者以其他方 式发送到具有最少或者最小负载的设备200A-200N、 500A-500N、月良务器 或者服务。在一个实施例中,vServer 275将请求引导、转发或者以其他 方式发送到具有较低确定的负载的其中一个的设备200A-200N、 500A-500N、服务器或者服务。在一些实施例中,vServer 275将请求引 导、转发或者以其他方式发送到之前处理来自客户机102的请求的设备 200A-200N、 500A-500N、服务器或者服务。在一个实施例中,如果设备 200A-200N、 500A-500N、服务器或者服务的负载在预定阈值内,vServer 275将请求发送到之前使用的设备200A-200N、 500A-500N、服务器或者 服务。在一些实施例中,vServer 275将请求发送到具有预定阈值内的确 定负载的列表中第一可用的设备200A-200N、 500A-500N、服务器或者服 务。
0213在另一个实施例中,vServer 275 <吏用循环^支术或者加权循 环将请求引导、转发或者以其他方式发送到设备200A-200N、 500A-500N、 服务器或者服务。在又一个实施例中,vServer 275基于诸如设备收集的 规格410或者装置提供的规格420的一个或者多个规格将请求引导到设 备200A-200N、 500A-500N、服务器或者服务。例如,在一些实施例中, vServer 275基于以下一个或者多个将请求引导到设备200A-200N、 500A-500N、服务器或者服务最少响应或者往返时间、连接的最少数量、 分组的最少数量和最少使用的带宽。在又一些实施例中,vServer 275基 于一个或者多个装置提供的规格530将请求引导到设备200A-200N、 500A-500N、服务器或者服务,规格530诸如CPU、存储器和磁盘资源使 用。在另一个例子中,vServer 275基于设备200A-200N、 500A-500N、 服务器或者服务器的资源使用或其上的资源使用将请求引导到设备 200A-2QGN、 500A-5QQN、服务器或者服务。
0214在一些实施例中,vServer 275在对于服务270的规格已经 超过诸如用户配置的阈值437的阈值437时可以不将请求引导到设备 200A-200N、 500A-500N、服务器或者服务。在其他实施例中,vServer 275 在如果对于设备200A-200N、 500A-500N、服务器或者服务的规格530的 多于一个的阔值437已经超过时可以不将请求引导到设备200A-200N、500A-500N、服务器或者服务。在又一个实施例中,甚至当规格阈值437 已经达到或者超过,则vServer 275可以将请求引导到设备200A-200N、 500A-500N、服务器或者服务。例如,如果多个阈值437的一个规格阈值 437已经超过,则vServer 275仍旧在其他规格阈值没有达到时将请求引 导到设备200A-200N、 500A-500N、服务器或者服务。
0215仍旧在其他实施例中,设备200从负载监控确定第一GSLB vServer 275A的规格已经达到阔值437。响应于该确定,设备200可以 将设备200A-200N、 500A-500N、服务器或者服务的管理溢出到第二 GSLB 虛拟服务器或者vSever 275B。在一个实施例中,第二虚拟服务器275B 可以是备份GSLB服务器。在一些实施例中,响应于检测到第一 GSLB虚 拟服务器275A已经达到一个或者多个阈值来建立第二 GSLB虛拟服务器 275B。在另一个实施例中,第二 GSLB虚拟月l务器275B可以建立并且运 行在设备2QQ上。
0216在步骤5 8 0,设备2 Q Q将客户机请求发送到在步骤5 8 5设备 识别的设备200A-200N、 500A-500N、服务器或者服务。在一个实施例中, 设备200将客户才几请求以透明方式发送到设备200A-200N、 5 00A-500N、 服务器或者服务,使得请求呈现出已经从客户机发送而不是从设备200。 例如,设备200可以用作对客户机102的透明或者栏截代理。在其他实 施例中,设备200用作非透明代理并且代表客户机将请求发送到设备 200A-200N、 500A-500N、服务器或者服务。在一些实施例中,vServer 275 将请求发送给设备200A-200N、 500A-50GN、服务器或者服务。在其他实 施例中,备份vServer275将请求发送给设备200A-200N、 500A-500N、月艮 务器或者服务。在又一些实施例中,第二 vServer 275将请求发送给设 备200A-200N、 500A-500N、服务器或者服务。
0217尽管图5A-5C的系统和方法总的关于全局服务器负载平衡 讨论,但是这些系统和方法可以用于本地负载平衡。设备200可以使用 从使用多个协议的异类装置、服务器或者服务获取的规格来负载平衡一 个或者多个服务或者服务器。使用此处描述的技术,设备200可配置地 并且灵活地使用由设备支持的规格交换协议和/或由网络资源支持的更 普遍的网络管理协议来从任一网络资源获取规格,网络资源诸如系统、
79子系统、应用、服务、装置等等。此外,设备200可配置地允许用户从
这些异类网络资源选择可用规格的任一组合来执行一个或者多个服务的负载监控和负载平衡。
0218现在参考图6,描述用于使用阈值来执行负载平衡的方法600的步骤的实施例。在一个实施例中,图6的方法600的技术可以在本地负载平衡的上下文中实现,诸如使用图4A中描述的设备200和图4B的方法"0。在其他实施例中,图6的方法600的技术可以在全局负载平衡的上下文中实现,诸如在图5A的环境和图5B的方法550中。总的来说,设备建立对于任意一个规格的阈值用来监控vServer 275、服务、设备200、 500或者一个或者多个服务器。在步骤620,设备监控对于由设备管理的并且考虑所建立的阈值的装置、服务、vServer和/或服务器的规格。在步骤625,设备可以接收诸如传输层连接请求的客户机请求。在步骤630,设备确定规格的阈值是否已经达到或者超过。如果没有,装置、vServer、服务或者服务器被包括在步骤635的负载平衡决策中。如果阈值已经达到或者超过,则设备在步骤640可以将装置、vServer、服务或者服务器排除出负载平衡决策中。在步骤645,设备可以确定来将客户机请求重定向到另一个资源来旁路设备。在步骤650,设备确定客户机请求是否和被配置为稳定或者持久的会话相关联。如果是,在步骤655,设备将请求提供到处理对客户机的连接或者会话的装置、服务、vServer 275或者服务器。如果不是,则在步骤660,任一可用的装置、服务、vServer275或者服务器可以处理客户机请求。
0219在进一步的细节中,在步骤610,设备可以建立一个或者多个vServer 275来管理连接并且引导从多个客户机到多个服务270、其它vServer 275、服务器106和其他设备和装置的请求。设备可以管理一个或者多个资源,可以包括vServer 275、服务器06、服务器群组38、月良务270、设备200、设备5G0、负载平衡装置或者任意其他装置。在一些实施例中,设备200可以被配置为提供对一个或者多个服务270和/或服务器的本地负载平衡。在另一个实施例中,设备200可以具有被配置为管理其它vServer 275A-275N的第一 vServer 275。在其他实施例中,设备200可以被配置为提供对多个本地负载平衡装置的全局负载平衡。在另一个实施例中,设备200可以提供其他设备200、 500和/或服务器或者服务的负载平衡。
0220进一步到步骤610,设备可以建立或者以其他方式提供所建立的任意 一 个规格的阈值用于监控所管理的任意资源并且提供负载平衡决策。设备可以建立用于用户选择的规格430、设备选择的规格410或者装置提供的规格420的任意一个的阈值。在一个实施例中,用户可以指定或者选择规格的阈值。例如,设备可以建立由设备的用户或者管理员配置的阈值。在另一个实施例中,可以由设备通过经由监控代理或者负载监控器监控规格来初始确定阈值。在一些实施例中,设备200可以使用默认或者预定的阈值。例如,设备可以使用和服务的类型或者规格的类型相关联的或者基于其的预定的阈值。
0221在步骤620,设备可以监控所管理的任一资源的状态,诸如任一服务、服务器、vServer、或者诸如另一个设备200、 500的装置。在一个实施例中,设备可以使用监控代理420。在另一个实施例中,设备可以使用多个监控代理420。在一个实施例中,设备可以以预定时间间隔来监控每一个服务的状态,例如每一次每个.Ql、 .1、 .2、 .5或者1秒。在另 一个实施例中,设备可以不同步地或者基于诸如客户机或者用户请求的任一事件来监控每个资源的状态。
0222在步骤620,设备确定和监控被选为用于负载平衡的规格。负载监控器420可以查询、计算、确定或者以其他方式获得规格的值并且将该值与指定或者对应的阈值相比较。在一个实施例中,设备确定规格的值并且以预定频率将该值与阈值相比较。在另一个实施例中,基于事件的触发,设备确定规格的值并且将该值和阈值相比较。在一种情况中,在用户的请求时,设备确定规格的值并且将该值和阈值比较。在一些实施例中,设备可以基于规格测量来动态调整规格的阈值。在其他实施例中,设备可以基于设备、vServer 275、网络连接、服务270、服务器或者装置、或者由设备所管理的任意其它资源的性能和/或者操作特征来动态调整阈值。
0223在步骤625,设备可以接收客户机请求。在一个实施例中,设备作为透明拦截装置来拦截客户机请求。在另一个实施例中,客户机作为代理将请求发送到设备。在一些实施例中,设备接收客户机请求来打开或者建立传输层连接。在其他实施例中,设备接收客户机请求来经由之前建立的传输层连接访问服务。传输层请求可以从包括客户机102、
服务器106或者第二设备200的任一计算装置接收。在一个实施例中,请求可以识别服务27Q的类型。例如,传输层请求可以包括对于HTTP服务的请求。或者例如,传输层请求可以包括对于UDP服务的请求。
0224在步骤630,设备可以确定对于所管理的资源的规格的值是否已经达到或者超过规;f各的阈值。该设备可将规格的当前值和阈值的当前值进行比较。在其他实施例中,负载监控器405可以已经确定规格的阈值已经达到或者超过。在另一个实施例中,设备200可以响应于接收客户机请求来确定阈值是否已经达到或者超过。
0225如果^L格的阈值没有超过,在步骤635设备可以经由负载平衡决策来提供客户机请求到任意一个可用装置、服务、vServer或者服务器。在一些实施例中,如果多个规格的任意一个超过规格阈值,则在步骤635资源可以仍旧在负载平衡决策中考虑。
0226如果阈值已经超过,则在步骤640,设备可以将资源从负载平衡决策中排除。在一些情况中,如果所有用来监控资源的规格已将超过,则设备将资源从负载平衡决策中排除。在其他情况中,如果预定数量的规格超过他们对应的阈值,则设备将资源从负载平决策中排除。仍旧在其他情况中,如果加权数量的规格超过他们对应的阈值,则设备可以将资源从负载平衡决策中排除。
0227如果设备确定装置、服务、vSever、或者服务器的阈值920已经超过,则在步骤940设备可以建立、使用或者以其他方式溢出到第二装置、服务、vServer或者服务器。诸如设备20G,或者500,的第二装置或者第二 vServer或者服务器可以提供对多个服务270的访问。该设备随后可以建立和/或调整用于第二资源的阈值。设备可以在步骤655提供客户机请求给第二资源。
0228在其他实施例中,如果一个或者多个规格的阈值已经超过,则设备可以将做出请求的客户机重定向到另 一个资源。在一个实施例中,设备可以将URL发送到包括服务器106或者服务270的地址的客户机,使得客户机可以旁路该设备200并且直接访问服务器106或者服务270。在一个实施例中,设备可以将URL发送到包括第二设备200或者500的地址的客户机。仍旧在另一个实施例中,代表客户机,设备200可以将客户机请求重定向到第二设备200或者500,或者任意其它资源。
0229在步骤650,设备200可以确定做出请求的客户机是否具有和诸如服务、vServer、装置或者服务器的资源的之前存在的连接或者会话。在一些情况中,客户机连接或者会话不稳定或者持久,并且在步骤660设备使用任一可用资源对于请求做出负载平衡决策。在其他情况中,客户机连接或者会话不稳定或者持久,并且在步骤655,设备提供请求到处理客户机102的会话或者连接的资源。
0230在一些实施例中,设备可以分配优先权以将请求从客户机提供到之前已经服务过的或者当前正在服务的来自客户机的连接或者会话的资源。例如,如果请求从客户机接收,并且客户机具有和vServer服务、服务器或者装置的当前存在的连接,则设备200可以甚至在对应的规格已经可以达到或者超过阈值时提供请求到vServer、服务、服务器或者装置。或者例如,如果客户机具有经由备份或者溢出资源的之前的连接,并且所管理的原始资源随后下降到阈值之下,则设备200可以仍旧从客户机提供请求到备份资源。在一个实施例中,设备可以记录之前建立或者当前的连接或者会话,使得来自客户机的输入请求可以被提供到具有从客户机之前服务过的连接或者会话的资源。
0231此外,设备考虑步骤620的阈值可以持续监控规格来动态管理负载平衡和将客户机请求可1导到合适或者适当的资源。在一些实施例中,设备确定资源忙、不可用或者超过其阈值。相应地,设备可以将客户机引导到或者提供客户机请求到另一个资源。在一些实施例中,设备具有多个管理服务270的资源并且基于每一资源的监控的规格和/或规格阈值的比较来确定哪个资源来引导客户机请求。在一个情况中,设备基于具有对于所监控规格的最小值的资源而将客户机请求提供到多个资源的其中一个。在另一个情况中,设备将客户机请求提供到具有所监控的规格和规格的阈值之间最大差值的资源。
0232在不脱离本发明的精神和保护范围的情况下,本领域内的普通技术人员可以作出多种变化和修改。因此,必须明确理解已经描述 的所示实施例仅用于示例并且不应该被视为限制本发明,本发明是由下 面的权利要求书限定。即使以上示例中所示出和描述的内容在其它方面 不相同,这些权利要求可以被理解为包括文本所提出的内容以及非实质 上不同的等价因素。
权利要求
1、一种基于用户所选择的规格执行服务的负载平衡的方法,所述方法包括步骤(a)经由设备,识别用于通过所述设备负载平衡的多个服务的多个规格;(b)通过所述设备,接收用于识别由用户对来自多个规格的第一规格的选择的信息;(c)通过所述设备,接收对于第一用户所选择的规格由用户指定的第一阈值;并且(d)通过所述设备,基于第一用户所选择的规格和第一用户所指定的阈值来确定用于所述多个服务的负载。
2、 权利要求l的方法,包括通过设备的一个或者多个负载监控器监视管 理多个服务的多个虚拟服务器。
3、 权利要求2的方法,包括通过负载监控器确定对于虚拟服务器的第一 用户选择的规格超过预定的阈值。
4、 权利要求3的方法,包括通过所述设备从负载的确定或者处理客户机 请求的选择的其中之一排除所述虚拟服务器。
5、 权利要求l的方法,包括通过所述设备接收识别由用户对多个规格中 的第二规格的选择的信息。
6、 权利要求5的方法,包括通过所述设备基于第一用户选择的规格和第 二用户选择的规格来确定用于多个服务的负载。
7、 权利要求6的方法,包括通过所述设备接收识别对于第二规格由用户 指定的第二阈值的信息。
8、 权利要求l的方法,包括通过所述设备接收识別由用户对用于第一用 户选择的规格的第 一权重因数的选择的信息。
9、 权利要求l的方法,包括通过所述设备建立对于第一用户选择的规格 的设备确定的加权因数。
10、 权利要求l的方法,包括通过所述设备接收客户机对于服务的请求, 并且通过所述设备基于所确定的负载从多个服务选择第一服务来接收该请 求。
11、 权利要求1的方法,包括通过所述设备确定对于服务的第一用户选 择的规格在用户选择的阈值内。
12、 权利要求1的方法,包括通过所述设备接收客户机对服务的请求, 确定对于多个服务的第 一服务的第 一用户选择的规格已经达到用户识别的阈 值,并且从多个服务选择第二服务来接收该请求。
13、 权利要求1的方法,包括通过所述设备接收客户机对服务的请求,确定对于多个服务的第 一服务的第 一用户选择的规格已经达到用户识别的阔值,并且将客户机的请求重定向到以下的其中一个第二设备、服务器、和 第二组的一个或者多个服务。
14、 权利要求1的方法,包括通过所述设备接收客户机对服务的请求, 确定对于虚拟服务器的第一用户选择的规格超过用户识别的阈值,并且给客 户机提供重定向的统一资源定位符到以下的其中一个第二设备、服务器和 服务。
15、 权利要求1的方法,包括通过所述设备经由对装置的简单网络管理 协议(S丽P)查询获取第一用户选择的规格或者第二规格的其中一个的值。
16、 权利要求1的方法,包括通过所述设备基于对于规格所收集的值的 平均值来确定第一用户选择的规格或者第二规格的其中一个的值。
17、 权利要求1的方法,包括通过第一用户选择的规格指示服务的性能 或者操作特征的其中一个。
18、 权利要求1的方法,其中所述多个规格包括以下其中一个与服务 的多个连接、发送到服务或者由服务发送的多个分组、服务响应请求的响应 时间和服务的网络带宽使用。
19.<image>image see original document page 0</image>示收集用户限定的规格的信息。
20、权利要求19的方法,包括通过所述设备从用户接收识别用于用户限 定的规格的对象标识符的信息以经由筒单网络管理协议(S丽P)请求对服务 器查询。
21.包括步骤(a)通过所述设备,接收由用户从对于由该设备要负载平衡的服务的多个规格选择的第 一规格和对于由用户指定的第 一规格的第 一 阈值;(b )通过所述设备,建立用于负载平衡该服务的多个规格的第二规格和 用于第二规格的第二阈值;(c) 通过所述设备,收集用于第一用户选择的规格和设备建立的第二规 格的数据;并且(d) 通过所述设备,基于第一用户选择的规格和第一用户指定的阈值和 设备建立的第二规格和第二阈值来确定用于服务的负载。
22、 权利要求21的方法,通过所述设备接收客户机对服务的请求,并且 通过所述设备基于所确定的负载从多个服务选择第一服务来接收该请求。
23、 权利要求21的方法,包括通过所述设备确定第二规格在设备建立的 阈值内。
24、 权利要求21的方法,包括通过所述设备确定用于服务的第一用户选 择的规格在用户选择的阈值内。
25、 权利要求21的方法,包括通过所述设备确定用于服务的第一用户选 择的规格超过用户选择的阈值并且从该负载的确定排除该服务。
26、 权利要求21的方法,其中步骤(a)包括通过所述设备接收由用户对于第一用户选择的规格或者通过所述设备建立的第二规格的其中一个所指 定的权重因数。
27、 权利要求26的方法,包括通过所述设备基于用户指定的权重因数和 第 一用户指定的阈值来确定对于服务的负载。
28、 权利要求21的方法,包括通过所述设备接收客户机对服务的请求, 确定对于多个服务的第一服务的用户选择的规格或者第二规格的其中一个已 经达到用户识别的阈值,并且从多个服务选择第二服务来接收该请求。
29、 权利要求21的方法,包括通过所述设备接收客户对服务的请求,确 定对于多个服务的第 一服务的用户选择的规格或者第二规格的其中 一个已经 达到用户识别的阈值,并且将客户重定向到以下的其中一个第二设备、月良 务器、和第二组的一个或者多个服务。
30、 权利要求1的方法,包括通过所述设备接收客户对服务的请求,确 定对于虚拟服务器的第一用户选择的规格超过用户识别的阈值,并且给客户 ^提供重定向的统一资源定位符到以下的其中一个第二设备、服务器和服务。
31、 权利要求21的方法,其中步骤(c)包括通过所述设备,经由对服 务器的简单网络管理协议(S丽P)查询来获取第一用户选择的规格或者第二 规格的其中一个的值。
32、 权利要求21的方法,其中步骤(c)包括由所述设备通过监控到服 务的请求和响应来获得第二规格的其中一个的值。
33、 权利要求21的方法,包括通过第一用户选择的规格或者第二规格的 其中一个来指示服务的性能或者操作特征的其中一个。
34、 权利要求21的方法,其中,所述多个规格包括以下的其中一个与 服务的多个连接、发送到服务或者由服务发送的多个分组、服务响应请求的 响应时间和服务的网络带宽使用。
35 、 一种基于用户选择的规格和用户指定的阈值来执行服务的负载平衡 的设备,所述设备包括配置接口 ,用于接收识别由用户从用于负载平衡多个服务的多个规格选 择的第 一规格的信息,和识别对于第 一规格由用户指定的第 一 阈值的信息;用于将请求从客户引导到多个服务的虛拟服务器;对于第 一用户选择的规格收集数据的负载监控器;其中,所述负载监控器基于第一用户选择的规格和第 一用户指定的阈值 确定用于该服务的负载,并且响应于负载监控器的虛拟服务器将客户请求引 导到多个服务的一个服务。
36、 权利要求35的设备,其中,负载监控器确定对于虚拟服务器的第一 用户选择的规格超过预定的阈值。
37、 权利要求36的设备,其中,所述设备从负载的确定或者处理客户请 求的选择的其中一个排除所述虚拟服务器。
38、 权利要求35的设备,其中,所述配置接口接收识别由用户对多个规 格中的第二规格的选择的信息。
39、 权利要求38的设备,其中,负载监控器基于第一用户选择的规格和 第二用户选择的规格来确定用于多个服务的负载。
40、 权利要求39的设备,其中,所述配置接口接收识别对于第二规格由用户指定的第二阔值的信息。
41、 权利要求35的设备,其中,所述配置接口接收识别由用户对用于第一用户选择的规格的第 一权重因数的选择的信息。
42、 权利要求35的设备,其中,负载监控器对于第一用户选择的规格建 立权重因数。
43、 权利要求35的设备,其中,所述设备接收客户对于服务的请求,并
44、 权利要求35的设备,其中,所述负载监控器确定对于服务的第一用 户选择的规格在用户选择的阈值内。
45、 权利要求35的设备,其中,所述设备接收客户对服务的请求,负载 监控器确定对于多个服务的第 一服务的第 一用户选择的规格已经达到用户识 别的阈值,并且虚拟服务器从多个服务选择第二服务来接收该请求。
46、 权利要求书35的设备,其中,所述设备接收客户对服务的请求,负 载监控器确定对于多个服务的 一个服务的第 一用户选择的规格已经达到用户 识别的阈值,并且所述设备将客户的请求重定向到以下的其中一个第二设 备、服务器、和第二组的一个或者多个服务。
47、 权利要求35的设备,其中,所述设备接收客户对服务的请求,所述 负载监控器确定对于虛拟服务器的第 一用户选择的规格超过用户识别的阈 值,并且所述设备响应于负载监控器给客户提供重定向的统一资源定位符到 以下的其中一个第二设备、服务器和服务。
48、 权利要求35的设备,其中,所述负载监控器经由对设备的简单网络 管理协议(SNMP)查询获取第一用户选择的规格或者第二规格的其中一个的 值。
49、 权利要求35的设备,其中,所述负载监控器基于对于规格所收集的 值的平均值来获得第 一 用户选择的规格或者第二规格的其中 一 个的值。
50、 权利要求35的设备,其中,第一用户选择的规格指示服务的性能或 者操作特征的其中一个。
51、 权利要求35的设备,其中,所述多个规格包括以下其中的一个与 服务的多个连接、发送到服务或者由服务发送的多个分组、服务响应请求的 响应时间和服务的网络带宽使用。
52、 权利要求35的设备,其中,所述配置接口从用户接收对于所述设备 指示收集用户限定的规格的信息。
53、权利要求52的设备,其中,所述配置接口从用户接收识别用于用户 限定的规格的对象标识符的信息以经由对服务器的简单网络管理协议(S固P ) 请求进行查询。
全文摘要
本发明通过提供负载平衡解决方案来提供对负载平衡的改进,允许用户从负载平衡设备收集的或者确定的规格以及从诸如运行服务的服务器的另一个装置获取的规格来选择规格、权重和阈值。所描述的系统和方法提供负载平衡技术,其中基于监控规格的另一个装置所知的这样的规格可以做出负载平衡决策。负载平衡设备使用网络管理协议和通信模型,诸如简单网络管理协议(SNMP),来从服务器、服务或者其他装置识别和收集规格。这些规格在具有设备确定的规格的负载平衡设备上可用。经由设备的配置接口,用户可以选择一个或者多个设备确定的规格和/或经由网络管理协议获取的规格来确定服务的负载。
文档编号G06F9/50GK101682619SQ200880015738
公开日2010年3月24日 申请日期2008年3月11日 优先权日2007年3月12日
发明者M·拉加, M·马尼卡姆, R·库纳尔, S·N·雷格夫 申请人:思杰系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1