网络计算机的协作式启动方法

文档序号:7589550阅读:216来源:国知局
专利名称:网络计算机的协作式启动方法
技术领域
本发明涉及一种在网络计算机系统中,网络计算机客户端的启动方法,尤其是具有本地计算能力的客户端相互利用对方已有的启动文件资源进行启动的方法。
背景技术
计算机的发展,大体上经过了三个阶段大型机阶段,个人计算机阶段,网络计算阶段。网络计算机(Network Computer或NC)最早由Oracle公司在1995年提出,是网络计算阶段具代表性的一种计算机形态。1996年5月Oracle公司联合其它四家公司共同制定了网络计算机标准1(Network Computer RefereNCe Profile 1)。NC采取了简化计算机硬件的做法,客户端本地无硬盘,采用低功耗CPU,主板设置有大容量的非易失性存储装置,通常是只读存储器ROM或快闪存储器(Flash ROM)。在软件上,传统NC在本地的非易失性存储装置中,存储了嵌入式的操作系统或终端协议代码。其工作原理是通过WWW/Applet技术,X-terminal或其他终端技术(如RDP,ICA等)访问远程服务器上的应用程序和数据,本地不进行计算,只负责接收用户输入和进行图形界面显示工作。传统NC的计算主要发生在服务器上,因此对服务器的依赖性很大,尤其在应用于多媒体应用场景的时候,对服务器的要求很高,因此普通服务器能同时支持的NC数目非常有限。并且,由于操作系统固化在NC的ROM或FlashROM中,因此升级困难,可扩展性差。
为了解决传统NC对服务器依赖过重,对多媒体应用支持不足,软件升级困难,可扩展性差的问题。清华大学网络互连实验室提出了一种本地无操作系统的NC(参见本申请人的相关专利ZL03122022.3,ZL01142033.2),它具有本地计算能力,能极大减轻计算对服务器依赖过重的问题,并能大大增强NC应用的灵活性并具有很强的扩展能力,能支持丰富的桌面应用。这种NC在服务器上放置了NC操作系统内核镜像以及应用程序,并配置了动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)服务,简单文件传输协议(Trivial File TransferProtocol,TFTP)服务以及远程执行环境(Preboot Execution Enviroment,PXE)服务。如图1,NC客户端102(简称NC或客户端)和NC服务器103(简称服务器)位于一个计算机网络101上,服务器同时为多个客户端提供操作系统和应用程序资源。现有技术NC的启动过程如图2所示,客户端102被加电201后开始NC的启动过程,之后执行非易失存储器中的引导代码202,通过DHCP消息广播同服务器进行联系,服务器收到DHCP客户端广播消息后,向客户端应答并为客户端分配一网络地址,即一IP地址203。获得网络地址之后,客户端向服务器发出下载操作系统内核镜像和包括初始应用程序的根文件系统镜像的文件下载请求104,服务器接收到文件下载请求后向客户端传输操作系统内核镜像以及根文件系统镜像105,客户端接收服务器的传输204,NC客户端接收完毕后加载服务器端传输的操作系统内核镜像和根文件系统镜像205,就完成了NC的启动过程206。
现有NC虽然很好地解决了传统NC运行后,尤其是多媒体等应用场景下计算过于依赖服务器的问题,增强了运行态下服务器对客户端的支持数量。但现有技术中NC客户端在启动时仍然十分依赖于服务器所有的客户端均要向服务器发送NC启动的文件下载请求,并从服务器上下载操作系统内核镜像和应用程序文件。服务器不仅要处理每个新收到的文件下载请求,并且要分配各种资源内存,虚拟存储空间,I/O缓存,并占用CPU处理时间来进行文件的传输。事实上,现有的NC服务器采用一种FIFO调度方式进行NC启动文件下载请求的处理,实际并发处理能力不高,对于一台普通配置的单NC服务器,如果短时间内收到大量的NC启动文件下载请求(这在NC的多媒体教室应用中是十分常见的情况),则服务器会成为启动的性能瓶颈,将造成NC的平均启动速度很慢。并且尽管NC可共享整个网络的带宽资源,但由于客户端和服务器之间呈星型的逻辑结构,NC在启动时实际只利用了服务器至客户端之间的链路带宽资源,网络的利用率不高。此外,由于服务器对收到的NC启动文件下载请求没有任何限制机制,对于处于峰值负载下的服务器,如果又收到多个新的NC启动文件下载请求,服务器又试图要为其分配上述的各种资源,就会对服务器性能造成较大冲击,容易造成服务器的不稳定和性能的下降,因而鲁棒性也不佳,这实际上也成为另一个服务器所能同时支持的NC客户端数量的限制瓶颈。
NC从服务器上下载的初始应用程序文件是系统启动之后初始状态可供用户使用的应用程序所包含的文件,它是除操作系统内核之外NC启动所需要的程序资源。一般来说,对于一台NC,有多个初始的应用程序,且每个应用程序又由多个文件组成,其总体容量大小往往要大大高于操作系统内核镜像的大小。因此若能改进NC启动时服务器对初始应用程序部分的下载请求的处理和传输方式,则可改善NC的启动性能。

发明内容
针对现有技术NC启动时对于服务器依赖过重,网络利用率不高,鲁棒性不佳的问题,本发明提出了一种网络计算机的协作式启动方法,其中所有NC和服务器位于一计算机网络上,服务器上存储了所有NC启动所需的操作系统和应用程序,当一请求NC需要启动时使用包括以下步骤的方法完成启动请求NC被加电后在所述计算机网络上发出广播消息;服务器收到请求NC的广播消息,并向请求NC发送回应消息,其中包括为请求NC分配的网络地址;请求NC收到回应消息,并向服务器发送下载操作系统请求,服务器收到该请求后为请求NC传输操作系统内核镜像;请求NC完成操作系统内核镜像下载并加载,启动文件请求侦听,向服务器发起初始应用程序下载请求;收到请求NC的初始应用程序下载请求后,服务器根据本地保留的初始应用程序文件在所有NC上的分布信息,选择可为请求NC传输这些文件的其他NC作为指定NC,并告知请求NC;请求NC和指定NC之间建立连接并完成文件传输请求;请求NC向服务器发出更新消息告知服务器其本地已留存该文件;每下载一个文件,请求NC判断若属于一初始应用程序的所有文件均下载完则加载该应用程序;若所有初始应用程序均已被加载,则请求NC的启动完成。
此外,如果请求NC无法完成正确的文件传输,则向服务器发送要求重指定消息,服务器收到要求重指定消息后,重新选择另一个具有相同文件的NC作为指定NC,请求NC和重新指定的NC之间建立连接并完成文件传输请求。若服务器不能找到保存有一初始应用程序文件的NC,则由服务器自己提供该文件的传输。所述服务器上还可设置一缓冲队列,如果服务器同时收到足够造成服务器性能快速下降的数量的初始应用程序下载请求,并判断没有足够的数量NC已启动,则将部分请求置于缓冲队列中,对于缓冲队列中的请求,服务器进行短暂延缓后再作处理。
采用了本发明启动方法的网络计算机与采用现有技术启动方法的网络计算机相比,启动时服务器的负载明显降低,NC的平均启动速度得到很大提高,网络利用率也得到较大提高,服务器具有更好的鲁棒性。


图1是现有NC网络结构示意2是现有NC启动过程3是本发明NC网络示意4本发明中应用程序文件资源分布表和客户端列表的结构5本发明NC客户端启动过程流程图具体实施方式
下面参照图示对本发明进行详细说明。
图3描述了本发明的网络示意图,多个NC客户端302和一NC服务器303共同位于一个计算机网络上。启动过程中,采用同现有技术相同的方法来进行操作系统内核镜像的传输,之后客户端向服务器发送初始应用程序文件下载请求304,服务器对下载请求进行处理,但并不启动对文件的传输,而是向客户端指定哪些目标地址的计算机上存在有请求客户端所需的文件,客户端收到服务器的应答后,再向指定的目标服务器或客户端发起文件传输请求,并由其完成文件传输305,因此文件的传输不再单由服务器提供,而可能由多台计算机同时提供。
如图4,本发明定义了一个应用程序文件资源分布表410(AFRDT)。服务器保留的AFRDT用于动态地对NC启动过程中初始应用程序文件资源在整个NC系统(包括NC和服务器)的分布状态进行纪录;客户端上保留的AFRDT表对本地的初始应用程序文件资源进行动态地记录;AFRDT表也用于服务器-客户端和客户端-客户端之间关于初始应用程序文件资源的分布、请求、确认等交互消息提供信息描述的结构。AFRDT是一个三维的链表结构,其表项对应一个三元关系组<应用程序,文件,计算机>,其中第一维链表411记录了初始应用程序,其中每个节点至少记录了应用程序的标识、名称、版本、状态、隶属的文件数等信息431;第二维链表412对应第一维链表的一个节点,记录了隶属该应用程序的文件的信息,包括标识、名称、本地地址、状态、权值等信息432,其中权值表示传输该文件的代价,可采用与其大小成正比的参数;第三维链表413对应第二维链表412中的一个节点,记录了保存有该文件的客户端的信息包括客户端的标识和IP地址。服务器上还维护了一个客户端列表420,以客户端的标识为索引,记录了所有客户端的标识、名称、物理网络地址、IP地址、启动优先级别、启动状态、客户端角色、贡献值等信息421,其中客户端角色可用于服务器确定客户端的操作系统和/或初始应用程序,贡献值用于服务器选择指定传输文件的客户端。
服务器在任一NC启动之前已经启动。服务器上除了保存了客户端所可能使用的所有的操作系统内核镜像以及初始的应用程序文件资源,还保留了一个AFRDT结构的表,其中记录了整个NC系统对于初始应用程序文件资源的分布。初始时,没有客户端启动在客户端上也没有任何初始应用程序文件资源,因此第三维链表为空,该AFRDT表实际上只纪录了服务器上的初始应用程序文件资源。服务器上AFRDT表可由手工配置,或由预置的配置文件自动生成。当有客户端加电启动并下载了初始应用程序的相应文件,则会在服务器上的AFRDT表中相应的第三维链表中加入该客户端。可选地,服务器上可根据客户端的MAC地址或IP地址等,为不同的客户端定义不同的角色以及相应优先级等定制参数,因此为各个客户端提供的初始应用程序也不必相同。
本发明的启动方法在客户端接收到操作系统内核镜像之前的步骤采用了和现有技术相似的办法NC客户端被加电511之后开始NC启动过程(称为请求客户端)执行本地ROM中的引导代码512在网络上进行DHCP广播同服务器取得联系;服务器用DHCP为客户端分配IP;客户端获得本地IP后,请求从服务器上下载操作系统核心镜像,服务器决定对应该用户的操作系统,之后用TFTP将LINUX核心镜像传输给客户端521;客户端加载从服务器上下载的操作系统核心镜像513,并启动一TCP服务对预置的端口侦听随时可能由其它客户端发来的文件传输请求,之后请求客户端向服务器发起一个初始应用程序下载请求514。
服务器收到522该下载请求并根据客户端的MAC地址决定其角色和相应的优先级,其中优先级可用于服务器判断是否优先处理该客户端的文件请求,优先级别较低的将放入缓冲队列。服务器根据客户端角色为其确定相应的初始应用程序,用一个AFRDT表记录这些应用程序及其相应的文件等信息,并将包含该AFRDT表的文件请求放入适当队列进行处理。
服务器维护了两个文件请求队列一处理队列,一缓冲队列同现有技术一样服务器采用尽力而为的方式不加限制地对处理队列中的文件请求进行处理;但进入缓冲队列的文件请求则需在一时间延迟δ之后,才能进入处理队列进行处理。δ参数可以根据需要和经验值进行配置,一般δ∈[10-60]秒,或经测试的服务器平均处理单个请求的时间的1-5倍。
将文件请求放入哪个队列,主要依据服务器在当时的CPU利用率Pλ,内存利用率Mλ,虚存的使用率Gλ,输出带宽/理论带宽P/T等性能参数值或关于这些参数的性能函数值来进行。例如假定性能函数Φ=Max(Pλ,Mλ,Gλ,P/T),则可定阈值γ∈(0.8,0.9), 如处理文件请求时Φ≥γ,则将文件请求放入缓冲队列;若Φ<γ则将文件请求放入处理队列处理。可选地,如果客户端的优先级较低则可跳过性能参数判断直接放入缓冲队列,。
服务器对处理队列中的文件请求进行处理,根据文件请求中的AFRDT表可得知请求客户端所需要的文件,然后为每一文件在自己的AFRDT表的第三维链表中为相应的文件选出保存有该文件的一个客户端作为为该请求客户端传送该文件的(指定客户端)计算机,并添加在文件请求的AFRDT表的第三维链表中523。
服务器在自己的AFRDT表中选择指定客户端,可根据首次匹配,随机,最近最少访问,或基于优先权等的策略进行。此外处于公平性的考虑,也可采用基于贡献值的策略结合服务器中保留的客户端列表中的各客户端的累计贡献值,服务器在保存有该文件的客户端中选出具有最小累计贡献值的客户端作为指定客户端。如果不能找到任何保存有该文件的客户端,则由服务器自己提供传输,将自己作为指定目标(出于简便下文不加区分,均称为指定客户端)加入到文件请求的AFRDT表的第三维链表中。对指定客户端的选择也可结合客户端的优先级等定制类参数进行。经过处理的文件请求发回给请求客户端。
请求客户端收到经处理的文件请求,从其AFRDT表中得知在哪些目标上可以找到所需的文件,因此向指定客户端的预置端口发起文件传输请求515。指定客户端531收到传输请求后,如果自己有这些文件,则可启动传输305。可选地,指定客户端可判断自身性能参数是否允许才启动传输。客户端用本地的内存盘(RamDisk)来保存下载的文件。在一个文件传送完毕后,请求客户端将判断是否隶属某应用程序所有的文件都可用,如是则可加载该应用程序516。请求客户端还要将向服务器发送一条传输完成消息,消息的信息中告知了请求客户端在哪个指定客户端已下载了哪个文件,服务器收到该消息后,可在本地AFRDT表中将该请求客户端加入到相应文件的第三维链表中,并在客户端列表中增加指定客户端的累计贡献值525。
如果请求客户端因为各种原因无法完成文件传输,如无法同指定客户端建立起TCP连接,或文件读写发生错误等,则向服务器发送要求重指定消息517,其中包括了无法完成传输的文件和原指定的客户端的信息。服务器收到要求重指定消息后,重新选择另一个指定客户端524。可选地,可同时将原指定客户端从相关文件的第三维链表中删除。请求客户端收到服务器重指定的客户端后可重新进行相关文件传输。
如果请求客户端本地AFRDT表中的所有初始化应用程序都启动了,则认为客户端已经完成了启动过程,这时客户端向服务器发送一个成功启动消息518,服务器将更新请求客户端的状态为已启动526。
对于下载到本地的初始的应用程序文件副本,如果在运行中经客户端删除或修改,则这些文件就不是其它客户端所需使用的初始应用程序的文件副本,因此这时客户端也要向服务器发送一个文件修改消息,告知哪些文件不再可用了,服务器收到该消息后在相应文件的第三维列表中删除该客户端。
为了避免在初始时,多台NC同时启动,不存在足够数量的保存有初始应用程序文件的NC来分担服务器的启动负载。作为一种改进方案,如果在δ时间内服务器收到超过一定数值σ的请求,并且服务器判断没有足够数量P的已启动客户端存在,则选择将一部分(如一半)的请求置于缓冲处理队列,选择时可以结合请求客户端的启动优先级别。δ的定义如前所述,σ可取服务器理论最大负载客户端数MLC的一半,或者经测试的服务器实际最大负载客户端数PMLC的2/3,P∈(5%PMLC,5%MLC)。
以上描述的具体实施方式
只是对本发明进行示例,本领域技术人员在不脱离本发明实质性思想的基础上进行各种修改和改进后得到的技术方案,均视为在本发明的范围之内。本发明适当的范围以权利要求书为准进行确定。
权利要求
1.一种网络计算机NC的启动方法,其中所有NC和服务器位于一计算机网络上,服务器上存储了所有NC启动所需的操作系统和应用程序,当一请求NC需要启动时使用包括以下步骤的方法完成启动一、请求NC被加电后在所述计算机网络上发出广播消息;二、服务器收到请求NC的广播消息,并向请求NC发送回应消息,其中包括为请求NC分配的网络地址;三、请求NC收到回应消息,并向服务器发送下载操作系统请求,服务器收到该请求后为请求NC传输操作系统内核镜像;四、请求NC完成操作系统内核镜像下载并加载,启动文件请求侦听,向服务器发起初始应用程序下载请求;五、收到请求NC的初始应用程序下载请求后,服务器根据本地保留的初始应用程序文件在所有NC上的分布信息,选择可为请求NC传输这些文件的其他NC作为指定NC,并告知请求NC;六、请求NC和指定NC之间建立连接并完成文件传输请求;七、请求NC向服务器发出更新消息告知服务器其本地已留存该文件;八、每下载一个文件,请求NC判断若属于一初始应用程序的所有文件均下载完则加载该应用程序。九、若所有初始应用程序均已被加载,则请求NC的启动完成。
2.根据权利要求1所述的方法,其特征在于如果所述步骤六中请求NC无法完成正确的文件传输,则向服务器发送要求重指定消息,服务器收到要求重指定消息后,重新选择另一个具有相同文件的NC作为指定NC,请求NC和重新指定的NC之间建立连接并完成文件传输请求。
3.根据权利要求2所述的方法,其特征在于所述步骤五和六中,若不能找到保存有一初始应用程序文件的NC,则由服务器自己提供该文件的传输。根据权利要求1-3中任一个所述的方法,其特征在于所述服务器上具有-缓冲队列,如果服务器同时收到足够造成服务器性能快速下降的数量的初始应用程序下载请求,并判断没有足够的数量NC已启动,则将部分请求置于缓冲队列中,对于缓冲队列中的请求,服务器进行短暂延缓后再作处理。
全文摘要
本发明涉及一种在网络计算机NC系统中,NC的协作式启动方法,包括以下步骤请求NC向服务器发起初始应用程序下载请求;服务器根据本地保留的初始应用程序文件在所有NC上的分布信息,选择可为请求NC传输这些文件的其他NC作为指定NC,并告知请求NC;请求NC和指定NC之间建立连接并完成文件传输请求;传输结束后请求NC向服务器发出更新消息告知服务器其本地已留存该文件;请求NC判断若属于一初始应用程序的所有文件均下载完则加载该应用程序;若所有初始应用程序均已被加载,则请求NC完成启动。
文档编号H04L12/00GK1604528SQ200410009789
公开日2005年4月6日 申请日期2004年11月12日 优先权日2004年11月12日
发明者张尧学, 徐广斌, 郭关飞 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1