在网络节点之间分配资源以用于提供网络节点功能的制作方法

文档序号:9602833阅读:421来源:国知局
在网络节点之间分配资源以用于提供网络节点功能的制作方法
【技术领域】
[0001] 本发明涉及用于提供网络节点功能(诸如服务器功能)的网络节点资源的分配。更 具体地,本发明涉及向网络节点分配资源以用于提供网络节点功能的方法以及可通信连接 到第二网络节点以用于访问网络节点功能的第一网络节点。
【背景技术】
[0002] 在客户端-服务器应用中,服务器处理来自客户端的服务请求,例如以从web(网 络)服务器检索web页面。通常,客户端和服务器通信通过诸如局域网、因特网或电信网络 之类的介质来处理。客户端-服务器会话可以限于单个服务请求和响应,但是也可以包括 许多连续的请求和响应。已知的是,网络开销可能影响客户端-服务器应用的端对端性能, 尤其是当单个客户端请求要求到数据库、应用服务器或客户端自身的多个呼叫时。网络开 销由服务器与客户端设备之间的网络、中间网络以及网络元素(例如延迟、带宽、跳(hop)、 亲和(affinity)、数据处理能力、存储、地理距离)或者对客户端设备进行服务的运营商的 网络的操作参数引起。
[0003] 当客户端-服务器通信包括许多连续的客户端-服务器交互时,等待时间可能随 着高网络开销而明显增加。此外,客户端与服务器之间的任何中间设备添加了通信延时,例 如由于传播延时、缓冲、排队、错误率和/或拥堵。影响所感知的体验质量的另一因素可能 是客户端和服务器设备的处理能力。例如,大量同时请求可能使服务器的能力超负荷并且 导致迟到或者无应答的请求。
[0004] 减小服务器处的网络开销和处理能力的影响可以优化客户端的所感知的体验质 量。已知降低服务器处的通信延迟和处理能力的影响的三种解决方案。
[0005] 第一,通过将多个服务器置于能够处理服务请求的网络中,客户端请求可以重定 向到最佳服务器,例如基于地理位置(即最小化客户端与服务器之间的距离)或处理器负载 (即最小化服务器上的处理器负载),使用诸如DNS解析器或HTTP重定向之类的服务器选择 功能。
[0006] US2010/250668公开了一种透明地选择服务器以基于客户端和服务器在网 络中的位置来处理客户端请求的系统,其落在如上文描述的第一种解决方案中。在US 2010/250668中,服务器位置是事先已知的,S卩服务器选择功能从服务器列表选择最佳服务 器。当客户端发送服务请求时,服务器选择功能(例如在请求基于服务器的主机名时在DNS 解析器中实现)可以提供将处理请求的最近服务器的位置。可替换地,请求可以被发送给次 优服务器,其可以触发服务器选择功能来选择新的服务器。接下来,服务器向客户端发送重 定向请求以连接到更好的服务器。
[0007] US2010/250668的缺点在于,服务器资源可能被浪费,这是因为一些服务器可能 永远不会被选择而它们可能保持在线以防附近的客户端发送请求。此外,不存在将部分或 全部的服务器的功能卸载到客户端设备附近或其上的位置的机制,例如针对具体客户端或 者回应于具体服务请求。
[0008]第二,可以将代理服务器置于客户端与服务器之间以卸载服务器功能,例如针 对负载平衡、高速缓存和/或代码转换。代理服务器充当客户端与服务器之间的中介 (intermediary),并且因此可以代表目的地服务器对客户端请求和服务器响应执行操作。 代理服务器(例如Squid)是在服务器之上(通过重定向)分布负载、提供对远程网络的访问 (代理连接到客户端网络和远程网络二者)、减小网络负载(例如通过高速缓存、协议转换和 /或内容压缩)、在服务请求之上执行高速缓存功能、以及卸载服务器功能(例如针对恶意软 件的扫描请求、登录、应用策略、加密数据、针对某些显示器预呈现图像和/或预呈现web站 点)的众所周知的解决方案。高速缓存代理服务器可以减小服务器负载并且优化网络吞吐 量,尽管它们仅在许多类似请求被做成静态(即不随时间改变或者随时间缓慢改变)内容时 改进性能。将唯一或不可高速缓存的请求转发给服务器,由此在功能上变得等价于服务器 选择功能。当代理服务器对于客户端透明(例如从客户端的视角来看,代理像原始服务器那 样行动)时,客户端可能意识不到代理服务器。换言之,客户端是有意识的并且向代理服务 器而不是服务器(例如提供对因特网的访问的代理服务器)发送请求。
[0009]第三,服务器可以以使得服务器应用的部分在客户端上本地执行的方式来实现, 例如web浏览器中的脚本或者客户端的设备上的程序。由服务器所提供的部分或全部功能 可以被卸载在客户端上,例如作为web浏览器中的表单验证的客户端侧脚本、从服务器下 载的JavaWebStart应用、或者从远程服务器或应用市场下载的本机应用。客户端侧脚本 (例如JavaScript、Flash、Silverlight)对于web浏览器是常见的并且伴随限制。例如,客 户端侧程序仅可以在浏览器可用且可操作时以及在用户通过访问web站点触发执行时运 行。在代码被加载在web浏览器中的情况下,不可能创建较长的实时会话,例如,在浏览器 之外。客户端或服务器可以发起服务器功能的下载,例如在客户端设备具有服务器可能想 要使用或优化的某些能力时(例如在客户端上使用外围设备的程序(诸如相机)或者使用客 户端设备的图形处理器来加速GUI)。客户端典型地不具有资源消耗量之上的控制(例如客 户端不能限制具体服务器的Flash代码或Java小应用程序使用多少处理功率或存储器)。 同样地,客户端脚本执行的位置依赖于客户端计算机。两个缺点可能导致客户端计算机的 处理器或存储器超负荷,从而导致低感知性能(例如增大的响应时间和用户接口的冻结)。 [0010] 已知解决方案可以减小通信延迟或者减少客户端-服务器交互的数目,这是因为 附近网络节点(例如第一种类的所选服务器、第二种类的代理服务器、或者卸载到客户端的 服务器应用的部分)处理服务请求或部分服务请求。此外,客户端和服务器可以通过减小 通信量、减少通信交互数目和/或向客户端重分配部分服务器应用来增加其资源使用效率 (例如通过减小无线接入点之上的通信来增加客户端设备上的电池寿命)。
[0011] 前述解决方案的常见缺点在于,资源在控制以及服务提供商的责任之下。例如,月艮 务提供商可能需要供应许多中间服务器以向地理上分布的客户端提供相同感知性能。服务 提供商还得到处理服务请求的相关联的成本和资源的所有权。客户端处理的问题在于,客 户端资源可能受限并且客户端处理可能引入软件依赖性。后果是客户端可能需要管理软件 依赖性(例如web浏览器、插件、平台)及其相关问题(例如安全性、分版本)。此外,客户端处 理可能减慢客户端设备或耗尽其电池或不足以交付服务。

【发明内容】

[0012] 本发明的目的是提供一种使得能够更高效地使用可用于第一网络节点的网络节 点资源以用于运行网络节点功能的解决方案。
[0013] 根据本发明的一方面,提出了一种在网络节点之间分配资源的方法以用于提供网 络节点功能。该方法包括从第一网络节点向第二网络节点传输资源可用性数据。资源可用 性数据可以包括关于可用于第一网络节点的一个或多个网络节点资源的信息。网络节点资 源可以远离第二网络节点。该方法还可以包括分析资源可用性数据以确定网络节点资源是 否能够提供网络节点功能来获得确定结果。该方法还可以包括依赖于确定结果而分配一个 或多个网络节点资源以提供网络节点功能。该方法还可以包括从第一网络节点向第二网络 节点传输请求数据。请求数据可以包括针对使用网络节点功能的请求。该方法还可以包括 拦截(intercept)请求数据。该方法还可以包括将请求数据重定向到所分配的网络节点资 源以用于向第二网络节点提供网络节点功能。
[0014] 第一和第二网络节点的示例是客户端设备(例如PC、笔记本、平板电脑、智能电话 或任何其它客户端设备)、服务器(例如应用服务器)、代理服务器、云位置或路由器。网络节 点功能的示例是应用或网络服务(的部分)。应用服务例如为web服务器、HTTP代理、数据 库、web服务(例如REST、SOAP)、数据存储区或内容高速缓存(例如CDN服务)。网络服务的示 例是因特网网关、DHCP服务器、防火墙、网络元件功能(例如HSS、MME、TON-GW)、网络控制/ 信令功能(例如頂S控制功能、分组转发、路径计算)以及协议实现(0SPF、BGP、IPv4、IPv6)。
[0015] 第一网络节点可以广告第二网络节点可以用来卸载网络节点功能的可用于第一 网络节点的资源。这可以对于第一网络节点透明地完成。可用资源可以位于第一网络节点 中或者远离第一网络节点的另一网络节点处。
[0016] 可用网络节点资源可以在以下方面限定:可用CPU负载;可用存储器;可用磁盘空 间;可用网络带宽;加载和执行虚拟机的能力;运行被指定用于特定操作系统、CPU指令集 或脚本引擎的应用的能力;对资源提供商功能的引用;和/或任何其它资源相关信息。
[0017] 例如,服务器可以基于来自可用资源的客户端设备的指示来向客户端设备卸载服 务的部分(例如网络节点功能的示例)或者向可用客户端资源卸载密集的客户端特定处理。
[0018] 本发明因而使得例如服务提供商能够决定服务器功能是否可以卸载到客户端资 源并且在不具有客户端设备的干预的情况下在可用于客户端设备的资源上分配和加载服 务器功能。本发明允许减小通信延迟和处理延迟(例如通过使用可用于客户端设备的资源, 其可以位于客户端设备上或客户端设备的局域网中)。此外,本发明使得例如服务提供商能 够使用可用于客户端的资源(其可以由第三方提供)来处理客户端特定的工作量和任务。
[0019] 因而,提供一种使得能够更高效地使用网络节点资源以运行网络节点功能的解决 方案。
[0020] 在实施例中,请求数据可以包括资源可用性数据。
[0021] 资源可用性数据
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1