CN1279439C - 将数据流式传输至一网络中的计算机的***和方法 - Google Patents

将数据流式传输至一网络中的计算机的***和方法 Download PDF

Info

Publication number
CN1279439C
CN1279439C CN02828969.2A CN02828969A CN1279439C CN 1279439 C CN1279439 C CN 1279439C CN 02828969 A CN02828969 A CN 02828969A CN 1279439 C CN1279439 C CN 1279439C
Authority
CN
China
Prior art keywords
server
file
sector
client computer
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
CN02828969.2A
Other languages
English (en)
Other versions
CN1625734A (zh
Inventor
迈伦·齐默尔曼
罗伯特·卢西斯凯
金特·比罗卡斯
迈克·加勒利克
马克·桑德斯凯
肯尼·邦奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ardans Delaware Co.
Citrix Systems Inc
Original Assignee
Ardence Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ardence Inc filed Critical Ardence Inc
Priority claimed from PCT/US2002/012272 external-priority patent/WO2003090073A1/en
Publication of CN1625734A publication Critical patent/CN1625734A/zh
Application granted granted Critical
Publication of CN1279439C publication Critical patent/CN1279439C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

一种通过采用虚拟磁盘仿真并广播或多播常驻于一网络服务器(38)上的数据而将数据自服务器(4)快速流式传输至一或多台客户装置(2或2’)(例如个人计算机PC)的***和方法。在某些实施例中,流式传输的数据包括引导和配置所述一或多台客户装置(2或2’)所需的文件、包含有休眠的数据、O/S和应用文件。

Description

将数据流式传输至一网络中的计算机的***和方法
技术领域
本发明总体来说涉及在一网络中自一网络服务器向一或多个客户装置(例如个人计算机(PC))同时传输数据。更具体来说,本发明通过使用虚拟磁盘仿真和广播或多播所需数据来实现对客户装置的远程管理。在某些实施例中,所述数据包括常驻于网络服务器中,且用于引导和/或配置该一或多个客户装置的操作***(O/S)、休眠和应用文件。
背景技术
目前,在办公室或公司环境中广泛使用计算机网络来互连个人计算机(PC)。随着PC使用量的增多,共享计算机文件和在安装后方便管理每台PC的需要日益增长。在一由许多PC构成的网络中,对于一组织而言,如果派遣一信息技术代表亲身访问和服务于每台PC,所需成本会很高。为降低这些成本,软件和计算机制造商已开发出旨在于一个网络服务器上集中维护软件产品、然后通过网络将所需软件下载到每台客户PC的技术。
以网络为中心的计算技术亦对PC体系结构提出了新的要求。嵌入式***通常小巧、便宜且设计成专用的固定用途装置。而PC则是可扩展的通用计算平台,PC在其使用期限中,可在不同时刻用于许多不同的角色。许多形式的现代嵌入式***连接到通信机构上,以使这些嵌入式***能够按照一组称作“传输协议”的规则通过在网络上发送数据包,与其它智能连接设备进行交互作用。为使一网络中的两台计算机(例如一台服务器和一台客户机)相互通信,每台计算机均必须使用该特定网络专用的传输协议。本发明使用标准的TFTP(平凡文件传送协议)和DHCP(动态主机配置协议)来进行网络通信。
嵌入式智能连接设备的设计者及制造商正在寻找方法来降低成本、提高可管理性和可靠性、方便部署并保护这些装置内的知识产权。一种可实现此目的的方法是为客户PC引入自网络引导的能力。PC引导过程的目的是装入必需的操作***组件、将硬件装置初始化并向用户提供一应用程序。这是一个较长的过程,且在正常条件下该过程需要考虑硬件或软件配置的变化以及被授权用户的变化。网络引导更适用于PC的配套硬件固定不变且客户PC的角色不经常改变的情况。网络引导允许拆除客户PC的硬盘而且便于集中管理软件内容。由于当前的网络带宽(10/100Mbs及1Gbs)尚无法接近客户PC本地硬盘的速度,因此网络服务器对客户PC中操作***(O/S)的远程“冷引导”的效率并不十分高,会占用大量时间。而且,带宽和网络服务器资源亦可能会因试图同时引导许多客户装置的额外挑战(“引导风暴”)而进一步降级。“冷引导”所需的过长时间会进一步分散一典型嵌入式装置的感知力及性能。因此,人们需要一种可伸缩方法,以加速所需数据自一网络中的一中心储存库(例如一网络服务器)向若干客户装置的传输。
颁与Matthews等人的美国专利第6,101,601号中,揭示了一种可解决与一网络内自一引导映像远程引导一客户装置相关的较长引导时间的方法。然而,该专利中教示,在某种类型的复位之后,需自一存储于每台客户PC之本地存储媒体内的休眠映像中进行恢复。这种方法要求对PC所需状态的任何重新配置,均必须在客户PC休眠之前执行,而且在具有大量客户PC的网络中,当该服务器独自将若干休眠映像传送至若干对应的客户PC时,此可能会与网络带宽问题相冲突。
颁与Klimenko的美国专利第5,974,547号揭示了一种使用磁盘仿真通过网络连接至一台服务器来引导一台客户计算机上的32-位PC操作***(O/S)的装置和方法。具体来说,该专利揭示了一种在客户O/S能够自行执行网络连接之前在Windows 9x O/S的32一位受保护模式处理与BIOS所使用的16-位实时模式之间进行转换(在每一磁盘I/O调用上)的方法,该方法通常称作“形实转换程序”。本文提出的方法和装置特别适合用于通过下载客户PC所需软件应用程序(包括O/S)的完整映像来从一台服务器上引导一个诸如Windows 95等O/S。然而,该专利中却未设想将所需数据(在某些较佳实施例中,所需数据可包括一休眠文件)广播或多播至网络中若干客户PC此一应用。
发明内容
本发明提供一种用于自一网络服务器向一或多台客户PC流式传输数据的***和方法。数据可以一预定方式从一与该网络服务器配套的存储装置的若干扇区中检索出来。在运行期间,该一或多台客户PC发出一相应数量的下载所述若干扇区的请求。这些请求转发至服务器,由服务器以透明方式对每台客户PC处一本地磁盘的运行进行仿真。然后,服务器将所需数据从一与服务器配套的虚拟硬盘驱动器广播或同时多播至发出请求的客户机。在发送所需数据之前,服务器较佳在一预定邀请周期内接受下载请求。
在某些实施例中,通过执行常驻在每台客户PC上的仿真代码来实现仿真。较佳情况是,仿真代码是常驻在每台客户PC的一网络接口卡(NIC)上的预执行引导环境(PXE)代码。在另一些实施例中,仿真是自网络服务器下载的本发明引导代码的结果,本发明引导代码在被执行时会通过一中断处理程序(Int13h)承担磁盘访问控制并且请求所需数据。在再一实施例中,则通过执行O/S(较佳为Windows 2000,NT或XP)的若干部分和两个自网络服务器下载的本发明驱动程序而在每台客户PC处实现仿真,本发明驱动程序以类似方式承担对客户机网络接口的控制并产生对所需数据的请求。
流式传输的数据可自网络服务器广播至或以同时突发模式多播至请求下载的客户PC。因此,数据仅需自网络服务器发送一次,而不必重复地发送至每一客户PC。当在每台客户机处接收到数据扇区时,这些数据扇区会排队存入由本发明驱动程序预先分配的数据高速缓冲存储器内。此可有益地允许每台客户机均能够参与其它活动,例如O/S数据结构、驱动器和/或应用程序的启动。
在某些实施例中,本发明提供一种通过使用虚拟磁盘仿真和流式传输方法将磁盘映像中的预定部分自一网络服务器多播或广播至一或多台客户机、从而自该网络服务器引导一或多台客户PC上的O/S的***和方法。本发明驱动程序部分地通过接受磁盘映像中一集体包含完成再引导过程所需的O/S文件的广播或多播部分(若干扇区)来支持将每一客户PC恢复到一可用状态。在引导过程的早期阶段中,将首先使用PXE服务将磁盘访问请求自每一客户机复位向至网络服务器。PXE代码将有利于在每一客户机与服务器之间建立初始虚拟连接,从而能将服务器看作另一客户机驱动器。PXE代码可方便额外仿真代码的下载,而额外的仿真代码又可下载方便下载拟发送的磁盘映像部分的O/S代码。在引导过程的早期阶段中,所下载及启动的O/S组件不足以提供由客户机O/S支持的网络访问。因此,通过Int 13h处理程序和所下载的仿真代码来处理客户机硬盘访问请求。在对O/S的引导经过大约25%时,O/S将使用本发明驱动程序来控制与服务器的通信,从而有效地避开对BIOS Int 13h服务的需求。
在再一实施例中,用于自一网络服务器快速引导一或多台客户PC上的O/S的***和方法利用了一休眠文件。在这些实施例中,流式传输的数据尤其包含一包括一休眠映像的休眠文件和若干O/S文件。尽管流式传输过程本身根本不依赖于休眠功能,但这些实施例中的一或多台客户PC显然均必须运行一支持休眠的O/S。此等***包括Microsoft Windows 2000和XP。对使用同步流式传输方法进行网络引导的进一步说明可参见本发明申请者于    提出申请的同在申请中的美国专利申请案第    号,其名称为“使用休眠将操作***引导至客户计算机的网络引导***和方法(System for and Method of Network Bootingof an Operating System to a Client Computer Using Hibernation)”,该专利受让于本发明的受让人,其全部内容以引用方式并入本文中。
较为有利的是,本发明所需硬件减少,这是因为客户装置可不配置硬盘。本发明还使所有客户PC均能够下载同一所需数据。这意味着更易于维护各客户装置,这是因为每一客户机均不再运行各自独有的O/S或应用程序副本。举例来说,软件升级仅需在一单一磁盘映像或特定的一组数据扇区上而非在任意数量的单独客户PC上执行。由于流式数据是广播或多播至多个客户机,因此在通信量高峰时间(例如大量客户机试图共同引导时)内,网络通信量将明显减小。因此,本文所提供的方法因几乎不需要增加***资源便可引导更多数量的客户PC而具有高度的缩放性。
附图说明
图1是一显示一可实施本发明的客户机/服务器网络环境的方块图。
图2是一显示一本发明实施例中的网络适配器的方块图。
图3是一显示在从一网络服务器下载并执行本发明驱动程序之后一客户机本地存储器的一部分的一实施例的方块图。
图4是一显示一由本发明提供的同步流式传输过程的一实施例的流程图。
图5是一显示一使用一休眠映像文件的网络引导过程的一实施例的流程图。
具体实施方式
现在将参照附图阐述本发明某些较佳实施例。
本文所使用的术语“MBR”(主引导记录)、“存储驱动程序”及““网络过滤驱动程序”是指由本申请案的申请者开发的引导软件模块。为区分开他人开发的软件模块,约定在此等模块名称前加上“O/S”。而且,在下文阐述中所用术语“虚拟驱动程序”、“引导驱动程序”和“服务器驱动程序”同义。
图1所示网络式计算环境可以是一企业网络或客户机/服务器结构,其中任一PC 2均可用作一文件服务器或网络服务器4。网络服务器4可以是从较小型PC到大型主机的任何普通类型的***。在下文所述具体实施例中,服务器4是一台中型计算机,其由一或多个中央处理器(CPU)6、一硬盘驱动器8、带有自身BIOS 18的只读存储器(ROM)10、随机访问存储器(RAM)12、及一网络适配器14构成,所有这些部件均由一或多条总线16连接在一起。所属领域的技术人员应知,BIOS 18是一组有助于在该网络服务器内各组件之间传输信息的基本例程。在下文所述的某些实施例中,网络服务器的硬盘驱动器8存储有若干O/S文件,例如O/S装入程序(例如NTLDR)或实用功能文件(例如WIN32.SYS)或甚至一或多个休眠文件20、一扇区顺序文件22及很多组微指令代码,例如一MBR 24、一流式传输模块26及一包含至少一网络过滤驱动程序30和一存储驱动程序32的O/S MBR 28。
根据需要,一或多台额外的服务器34可连接到该网络并可与第一服务器4及各客户PC 2进行通信。在一多服务器网络中,一客户机模块36(例如HPPC)亦可常驻于第一服务器4上,并响应来自客户装置2的请求规定哪台额外的服务器34包含客户机寻址信息和下载信息。
该一或多个客户装置2通过网络内的一网络路由器或交换机38连接到服务器4。实体链路可采用许多传统形式中的任一种形式,例如电缆、交换电话线、无线装置(包括在无线电和红外频谱中使用的那些无线装置)和许多其它形式。客户装置和服务器使用标准网络通信协议来相互传送数据。一O/S 40用于在启动足够数量的O/S模块和O/S驱动程序之后管理每台客户装置2的实体设备。每台客户装置均类似地配备有一CPU 42,例如由Intel公司生产的x86系列微处理器。每台客户机亦包含本地存储器44和一通过一***总线56连接到CPU的网络适配器54,其中本地存储器44包括存储有一BIOS 48的ROM 46、RAM 50、本地存储器52。
图1亦显示已下载足够数量的扇区并且这些扇区所包含的代码已执行后的客户机RAM 50的一部分。如图所示,RAM 50可包含一个下载的O/S 40、O/S驱动程序76、O/S装入程序78、O/S实用功能文件(例如WIN32.SYS)72、网络过滤驱动程序30、存储驱动程序32及O/S网络堆栈68。在某些实施例中,RAM 50还包含一休眠文件20。
现在参照图2,每台客户机的网络适配器54均较佳是一个在客户机硬件与网络之间提供数据链路的网络接口卡(NIC)。每个INC 54均包括一用于连接到客户机***总线56的总线接口58和一或多个用于连接到网络(可包括LAN或WAN)的网络连接器60。NIC 54还包含用于存储NIC唯一目的地址的随机访问存储器(RAM)62和一用于存储PXE仿真代码66的OptionROM(OPROM)64。目的地址使每一客户机2均能由网络中的任一其它计算机来单独寻址。
将所需数据同步流式传输至若干个客户机
如上文所述,本发明提供一种用于将数据自该网络服务器4流式传输至一或多台客户机2的***和方法,其方式是:响应一或多台客户机2所发出的读取请求,以透明方式对一本地磁盘进行仿真并广播或多播常驻于一网络服务器4的“虚拟”驱动器8上一组数据扇区的内容。可以一预定方式自一与网络服务器4相配套的存储装置的多个扇区中检索数据。在运行期间,一组需要下载特定数据的一或多台客户机2发出集体下载包含所需数据的多个扇区的请求。应注意,不同组客户机可能会请求下载不同数据。这些请求转发至服务器,服务器以透明方式对每台客户机的本地磁盘操作进行仿真。一常驻于网络服务器4上的流式传输模块26将所需数据从“虚拟”存储装置广播或多播至该组发出请求的客户机。流式传输模块26较佳在发送所需数据之前,在一预定邀请周期内接受下载请求。
图4是一显示一根据本发明用于同步数据流式传输的过程400的流程图。应注意,下文是依据单组需要下载相同数据的客户机对同步数据流式传输过程进行说明。此说明仅为方便理解但不具有限定性。所属领域的技术人员易知,同步流式传输方法可扩展为允许不同组客户机请求从网络服务器同时下载不同数据。
在步骤402中,需要下载特定数据的每台客户机均发出一初始请求。所需数据可包括常驻于服务器虚拟驱动器8上的任一应用文件、O/S文件、引导程序或休眠文件。这些请求发送至服务器4,同时服务器通过执行PXE代码66和所下载的MBR 33代码或通过执行O/S MBR 28代码连同网络过滤程序和存储驱动程序,在各引导阶段对一客户机的本地磁盘52进行仿真。
在步骤404中,在一预定邀请周期中,服务器流式传输模块26对每一发出初始请求的客户机2’进行登记。此时,每一已登记的客户机均等待并侦听来自流式传输模块26的数据包。
在步骤406中,该流式传输模块在服务器4上查找一个扇区顺序文件22。扇区顺序文件22用于确定该流式传输模块在访问并广播或多播含有所需数据的数据扇区时可采用的次序。如果未找到扇区序列文件22,则程序流程转到一如下文所述用于记录一扇区顺序文件的学习过程450。
在步骤408中,如果找到扇区序列文件22,则流式传输模块26开始向已登记的客户机2’广播或以突发模式多播所需数据。较佳以一固定速率发送数据包。
在步骤410中,将每一已登记客户机2’所接收到的数据包存储成固定长度的队列,以补偿传输速率与客户机引导过程速度的差异。网络和存储驱动程序将所接收数据装入一其已在每一客户机中预先分配的较大的临时存储区段(“数据高速缓冲区”)内。每一已登记的客户机均对已成功接收到哪些数据包进行记录。此可通过对所发送数据包进行编号来实现。
在可选步骤412中,每一已登记客户机2’均可向服务器发送一关于已尝试成功接收N个最新数据包的确认信息。客户机进行确认的目的是保证本地的客户机缓冲器不会超限。
在步骤414中,流式传输模块26确定是否已访问所有所需数据扇区及是否已发送完这些数据扇区的内容。如果没有,则重复步骤408和步骤410直至完成这些作业。
在步骤416中,如果已发送所有所需数据,则流式传输模块发送一消息来指示传输结束。然而,此时并非每一客户机均已成功地接收到所有信息块。某些客户机可能会因各种原因而已将数据包丢失。某些客户机可能已错过传输的开始。
在步骤418中,每一已登记客户机2’均发出一指示已成功传输完所有所需数据包或需要重新传输所遗失数据包的消息作为对流式传输模块26的应答。
然后,在步骤420中,流式传输模块26依据从已登记客户机2’接收到的指示需要重新传输未成功发送的数据包的响应,编译并有效排定一数据包重新传输列表。或者,在数据包传输期间(在步骤414之前),可在每一固定数量的字节之后重复编译数据包重新传输列表。
然后,在步骤422中,流式传输模块26可单独向已登记客户机2’重新发送所需数据包。由于此时大多数客户机将正忙于处理其所接收的数据包,因而网络带宽将很高;因此,单独重新传输应不会对引导时间或网络通信量造成可察觉的影响。
在步骤424中,在成功处理完所下载的数据之后,对先前保留用于高速缓冲存储区的存储器解除分配。
如上文所述,流式传输过程400的一个优点是:在每一客户机处,当该客户机的O/S可能正忙于将O/S数据结构、驱动程序或应用程序初始化时,O/S对未来数据的需要将早已通过在O/S需要数据之前将数据包预先装入存储器中而得到了满足。流式传输模块26向客户机广播或多播数据包的速度快于客户机能够利用这些数据包的速度,从而将引导时间对数据包传输时间的依赖性转变为对客户机引导过程时间的依赖性。
在某些实施例中,流式传输模块26在确定欲发送的虚拟驱动器扇区内容的次序时使用扇区顺序文件22。预计在开始同步流式传输过程之前,扇区顺序文件22就已存储在服务器4上,但如果尚未出现上述情况,则可在下述学习过程450中产生扇区顺序文件22。
如果流式传输模块26没有找到扇区顺序文件22,则执行学习过程450。在一实施例中,扇区顺序文件由一扇区列表构成,该扇区列表中所列的扇区是O/S为完成磁盘映像传输所必须读取的扇区。在另一实施例中,扇区顺序文件不仅由扇区列表而且由包含于所列扇区内的顺序性存储的实际数据构成。在再一实施例中,扇区顺序文件由一包含若干扇区列表和相应扇区数据的单一文件构成,由此可支持将不同数据组同时流式传输至不同组发出请求的客户机。存储实际数据的优点在于:读取顺序文件远远快于随机读取,此本身又将提高服务器的驱动吞吐量并提高更有效支持向多台客户机传输多个数据流的能力。其一结果是,在所学习到的所有数据均发送至客户机之前,只从扇区顺序文件中读取所学习到的实际数据。在此之后,服务器可恢复使用虚拟驱动器映像。在步骤426中,流式传输模块26自该组已登记客户机2’中选择一客户机。在步骤428中,允许所选客户机以传统方式发出其磁盘访问请求,同时流式传输模块在一新扇区顺序文件内记录由所选客户机发出的请求满足其所需数据下载的所有扇区访问请求及在某些实施例中记录所请求数据本身。在步骤430中,所选客户机通知流式传输模块26其已完成下载。此时,新扇区顺序文件存储在虚拟驱动器8上,并在步骤408中,恢复流式传输过程。下文阐述在网络引导应用中使用流式传输过程。如果在网络引导环境中需要使用学习过程450来建立一扇区顺序文件22,则允许所选客户机使用本发明的MBR 24和驱动程序(30和32)以传统方式引导,同时流式传输模块26在一新扇区序列文件内记录由所选客户机在引导期间发出的所有扇区访问请求,并在某些实施例中记录所请求的实际数据。
BootNIC的基本体系结构
本发明提供一种对客户计算机快速引导所需的、从存储在网络服务器“虚拟”驱动器上的数据扇区内存取的数据进行同步流式传输的***和方法。在某些实施例中,客户计算机所希望下载的各数据扇区集体包含引导程序及引导所需的O/S文件。在某些其它实施例中,这些数据扇区可另外包含一或多个休眠文件。每一需要下载特定数据的客户机均发出一个初始请求。这些请求发送至服务器4,同时该服务器通过执行PXE代码66和所下载的MBR 33代码或通过执行O/S MBR 28代码连同网络过滤程序和存储驱动程序,在各引导阶段对一客户机的本地磁盘52进行仿真。换言之,在完全由网络来引导一客户机上的O/S的情况中,在将O/S驱动程序初始化之前及之后,基本上重复进行同步流式传输过程400(但存在某些明显差别)。出现这种情况的原因在于,O/S引导过程在早期阶段期间系使用中断处理程序过程从虚拟驱动器8下载文件,而此后则在存储驱动程序32和网络过滤驱动程序30初始化后则使用存储驱动程序32和网络过滤驱动程序30来下载文件。这就必需使用两种解决方法来执行基本相同的任务。
当每一客户机引导时,客户机将首先使用PXE服务与服务器4进行通信。PXE代码66将在每一客户机与服务器之间建立一初始的仿真“虚拟驱动器”连接。PXE服务使MBR代码33能够将读取请求传送至服务器,由此能使每一客户机的CPU 42将常驻于服务器上的引导文件或休眠文件20看作若干可存储在一本地客户机硬盘驱动器52上的数据扇区。在引导的早期阶段中,仿真是通过以实时模式执行MBR代码33来实现,这是因为BIOS中断处理程序服务只以实时模式运行。在此后的过程中,仿真是通过只以受保护模式(未发生“形实转换“)执行的O/S内核码、存储驱动程序32和网络过滤驱动程序30来实现。
图3以方块形式显示在已自网络服务器4下载并执行网络过滤驱动程序30和存储驱动程序32之后一客户机本地存储器44的一部分。网络过滤驱动程序只负责查看所有正通过客户机NIC 54自网络传送至O/S网络堆栈68的数据包中有无BootNIC专用数据包,并拦截所述专用数据包以阻止其进一步沿网络堆栈68向下传递,然后,将这些数据包发送至存储驱动程序32。存储驱动程序32又会与Windows中各种负责存储的管理程序70(例如安装管理程序、卷管理程序和分区管理程序)进行通信。如果一网络数据包不是BootNIC专用数据包,则该数据包原原本本地沿O/S网络堆栈68向下传递。所属领域的技术人员应了解,存在三种不同类型的数据包:(1)广播数据包,其为寻址至网络中每一计算机的数据包;(2)多播数据包,其为寻址至网络中一台以上但未必所有计算机的数据包;及(3)直接寻址的数据包,其为只寻址至一特定客户装置的数据包。本发明***可使用任一或所有这些数据包传输方法。
本发明利用被广泛采用的称作预引导执行环境(PXE)的规范,该规范的形成归功于为建立一种可预测、可互操作的方式以使客户机能在一预引导环境(具有或不具有操作***)中与一网络进行交互作用而作的努力。当前版本的PXE是作为由Intel驱动的联线管理(WfM)行业首创性(Intel-driven industryinitiatives of Wired for Management)的一个子集而建立的。PXE体现了三种技术,其均可使用基于Intel体系结构的***的引导固件来建立一组公用和兼容的预引导服务:(i)一统一协议,其用于由客户机2请求分配一网络IP地址及随后请求自网络引导服务器4下载一网络引导程序(MBR 24和O/S MBR 28);(ii)一组可在客户机2的预引导固件环境中得到的API,其构成一组兼容的可由BIOS 48或引导程序使用的服务;和一种用于启动一客户PC上的预引导固件来执行PXE协议的标准方法。
使用PXE规范尤其能使每一客户机的NIC 54均可用作一引导装置。使用PXE规范还能使BIOS 48在POST过程之前和期间直接使用存储在OPROM 64上的NIC代码。在某些实施例中,本发明可视需要利用PXE的引导服务器发现功能。正在引导的客户机2可借助这种功能,在远程引导的起始阶段自一提供给客户机2的可用引导服务器列表中发现一适当的引导服务器4或34。信息技术管理员可根据客户机***的体系结构类型甚至每一客户机的唯一ID号来分配和保持引导服务器的类型。PXE使用动态主机配置协议和平凡文件传送协议与服务器4进行通信。当一由PXE使能的客户机引导时,这台客户机会从一DHCP服务器4获得一IP地址。然后,客户机2可发现这台DHCP服务器4,这台服务器4可向该客户机提供一引导服务器列表。在图1中,显示一台额外服务器34,这台服务器可用作一引导服务器。为方便对本发明进行解释说明,系根据一单一服务器4网络实施例和若干其中一单组客户机请求下载相同数据的实施例来阐述同时流式传输过程。
或者,还可使用具有一静态IP地址的由BOOTP使能的客户机来代替DHCP和PXE方法,但此会牺牲配置的灵活性和简易性。
从一个网络休眠映像对引导进行流式传输
本文所使用术语“休眠”通常表示以使PC“暂停”的方式断开PC电源。当PC关机时,PC的所有或大多数组件的电源均断开。而当PC重新开机或“恢复”时,PC会以与其关机时相同的状态恢复正常运行。“休眠功能”(例如颁与Microsoft Corp.的美国专利第6,209,088号所阐述的休眠功能)系在即将关闭PC之前调用,其会中断所有程序的执行并将所有PC状态信息保存至非易失性存储器中的一“休眠映像”内。“恢复功能”则是从易失性存储器中执行,由通常自O/S所用相同的可执行地址空间中执行的代码及/或由O/S所启动的应用程序来构建。在下文所述的本发明具体实施例中,“休眠文件”还可包含诸如O/S驱动程序等O/S文件和初始化文件,这些文件在启动休眠功能之前读入PC的易失性存储器中。
本发明的另一方面提供一种用于将一O/S自一存储有休眠映像20(其具有用于客户PC的O/S文件)的服务器4引导至一或多台客户机2的经改进的***和方法。每一客户机的CPU 42均只执行来自可寻址存储器(例如DRAM)或某些其它类型易失性电子存储器的指令。为将这些可寻址存储器初始化,在NIC 54的一OPROM 64中提供有少量的PXE代码66。PXE代码66使得能够向对客户机本地磁盘进行仿真的网络服务器4发出一读取MBR代码24的请求。所下载的MBR代码33会启动进一步的磁盘仿真并请求将O/S MBR 28的一起始部分自服务器发送至客户机,并在客户机处装入DRAM中。然后,O/S MBR 28可负责下载和初始化O/S的剩余部分,而O/S的剩余部分又会下载休眠文件20。此处同样应注意,在属于本发明范围内的某些***中,不同组客户机可请求下载休眠文件中的不同引导文件。本发明的申请者已发现,与标准O/S本地引导相比,同步流式传输可将通过一网络来引导O/S 40所需的时间减少50%以上。
休眠事务协议由两半组成。第一半包括在引导驱动器8上产生休眠映像,第二半是根据休眠映像进行实际恢复。
在开始本发明的引导过程之前,直接产生常驻于服务器4上的休眠文件20。一旦一客户PC配置成所需状态,即可使用休眠功能在休眠文件20内建立一休眠映像。然后,将休眠文件20传送至服务器的引导驱动器8。另一选择为,可通过将休眠文件直接保存到服务器引导驱动器8的方式执行休眠过程。尽管休眠功能命令所有驱动程序断电,但存储驱动器32只有在将WIN32.SYS 72高速缓存入本地存储器50内并将存储器内容写入文件HIBERFIL.SYS(在恢复时O/S装入程序会检查该文件的有效性)之后,才应O/S的请求断电。较佳在开始引导过程之前执行的另一步骤是将MBR 24仿真代码存储到启动驱动器8上。
为与服务器进行通信,Windows体系结构需要如下两个而非仅一个驱动程序:存储驱动程序32和网络过滤驱动程序30,这是因为驱动程序需要担当一“类型”,而一个驱动程序无法同时既是一存储驱动程序又是一网络驱动程序。Windows 2000和XP的休眠实施方案假定仅需要一个O/S驱动程序与存储装置进行通信,因此,未提供使休眠过程能够支持一个以上O/S驱动程序的机构。目前可用的标准O/S驱动程序将不会奏效,因为其并未写成通过网络从一文件进行恢复。在从一本地驱动器进行恢复的标准恢复中,O/S存储驱动程序只需(且只是)知道如何与本地硬盘驱动器进行通信。
存储驱动程序32通过将NIC驱动程序74内一电源处理程序的调度地址更换为存储驱动程序自身的处理程序而“挂入”NIC驱动程序74的调度例程内。然后,存储驱动程序32可调用原始的NIC驱动程序电源处理例程。
引导过程由许多步骤组成,但一般来说涉及由一个程序启动另一程序,其中每一程序均比其前一程序更智能。本发明方法的主要步骤是BIOS初始化、PXE初始化、MBR加载和Int 13h复位向、加载休眠映像和进行O/S恢复。应注意,该解决方案专用于Windows 2000;而下文所列步骤则包含一可将该解决方案扩展到其它操作***的通用框架。
参照图5,在加电后,客户机的BIOS 48便立刻开始初始化,首先执行一通电/自检(POST)顺序(步骤502)。每一客户机均广播一DHCP发现请求来确定其自身的IP地址。支持这种协议(和其它协议)的服务器O/S会返回这些参数和用于引导的服务器的地址,该服务器既可是也可不是网络服务器4。虚拟引导驱动器8可包含任何与网络服务器4(或引导服务器34)相配套的非易失存储装置。驱动器的类型可包括软盘、硬盘、磁带、DVD、CD-ROM和闪存ROM。在一装置欲用作虚拟启动驱动器8时,该装置应保存有一包含O/S文件或将下载的微指令代码的休眠文件的副本。
在POST期间,CPU 42检查总线56上的地址以确定客户机2上是否存在一OPROM 64。如果CPU 42找到一OPROM,则CPU 42处理位于OPROM上的所有硬件初始化例程,由此将NIC 54初始化为一可用状态(步骤504)。然后,OPROM代码将PXE代码66初始化(步骤506)。OPROM代码也可通过中断13h处理程序服务(其控制读取和写入硬盘驱动器52)“挂入”BIOS引导过程中(步骤508)。通过使用PXE代码并对INC 54采取控制,OPROM 64代码可与服务器4进行通信并使服务器的硬盘驱动器8能够通过将磁盘的读取和写入复位向至服务器而以透明方式对客户机2的一本地磁盘驱动器52进行仿真。
在POST顺序结束时,BIOS 48将开始引导O/S。BIOS将读取服务器虚拟驱动器8的第一扇区(柱面0,磁头0,扇区1)(步骤510)。第一扇区存储有MBR24(主引导记录),MBR 24包含有用于引导O/S 40的其它仿真代码。MBR 24代码通常由O/S制造商提供,但为利于进行下文所述的休眠恢复过程,必需开发其它仿真代码。MBR代码系在装入客户机存储器之后执行(步骤512)。然后,MBR代码继续使用PXE 66与网络服务器进行通信,并挂住中断13h以捕获所有存储器访问请求,从而在引导过程的早期过程中阻止写入服务器的虚拟硬盘驱动器8(步骤514)。较佳使用上述同步流式传输方法400来处理读取请求。并不将读取请求传送给原始Int 13h BIOS例程,而是由MBR使用PXE接收来自网络服务器4的数据。读取请求系由MBR代码来满足,然后,将请求连同自网络服务器下载的数据返回至发出请求的客户机。对磁盘写入的处理则有所不同。MBR代码并不执行写入,而是将一成功写入指示返回至发出磁盘写入请求的客户机。写入同样不会传送至原始的Int 13h BIOS例程。
然后,MBR代码开始下载一由O/S制造商开发的O/S MBR 28,其在图1中显示为“Windows 2000MBR”。每一客户机2处的MBR代码88均通过挂住Int 13h向量,在OPROM 64有机会看到对本地磁盘读取的请求之前捕获所有这些请求。然后,所下载的MBR 88使用PXE 66将这些请求转发至网络服务器,以下载O/SMBR 28(步骤516)。
在步骤518中,网络服务器4可将集体包含O/S MBR 28的数据包自服务器虚拟驱动器8同步地流式传输至每一请求下载O/S MBR的客户机2。在一邀请周期内,流式传输模块26对所有发出O/S MBR下载请求的客户机2进行登记以便下载。该邀请周期可由一使所有客户机均有机会进行登记的预定时间周期组成。然后,流式传输模块26指定一第一客户机作为一发出读取请求的客户机。换句话说,将只允许该客户机向流式传输模块26发出将下一数据扇区的内容发送至所有已登记客户机2’的读取请求。然后,流式传输模块26访问发出读取请求的客户机的识别符和虚拟驱动器8中集体存储有O/S MBR 28的一组扇区中第一扇区的内容并将其同时发送至每一已登记客户机2’。然后,流式传输模块将确定该O/S MBR扇区组中的所有扇区是否均已发送。若需要发送更多的扇区,则流式传输模块将指定一新的发出读取请求的客户机,当然,其限制条件是存在一台以上的已登记客户机。然后,流式传输模块访问下一扇区并将其内容连同该新的读取请求客户机的标识符同时发送至每一已登记客户机2’。指定一新的读取请求客户机的步骤较佳以一循环方式来执行,由此在每一轮扇区传输后均将轮到一台已登记客户机负责产生一虚拟驱动器读取请求,而未指定的客户机只需等待所传输的数据。重复该流式传输过程400,直至整个O/S MBR 28均已发送且已随后装入每一客户机为止,此时所下载的O/S MBR将控制网络接口54和产生请求的过程。
应注意,每一请求均完全相同,无论其来自哪台已登记客户机。因此,由MBR代码实现的读取请求可以一锁步方式进行。每一读取请求均完全相同,这是因为每一客户机均将请求自同一虚拟驱动器进行读取并执行已自该虚拟驱动器下载的同一MBR 28。
再次参照图5,在步骤520中,每一已登记客户机2’均已接收并存储所传送的O/S MBR扇区。所接收的数据扇区存储在RAM 50中。所发送的每个扇区均带有一顺序号。然后,每一客户机均可确定(步骤522)该客户机是否成功接收到已发送的所有扇区。如果一客户机丢失了一数据包,则该客户机将以异步方式向网络服务器请求所丢失的数据扇区。但是,该数据将仅返回至该单个客户机而不广播或多播至所有已登记客户机。
在步骤524中,将O/S MBR 28(例如Windows 2000MBR)装入每一客户机的存储器50中并执行。O/S MBR又自虚拟驱动器下载一由O/S制造商写入的O/S装入程序74(例如文件NTLDR)(步骤526)。所下载的O/S装入程序78将检查虚拟驱动器8上是否存在一有效的休眠映像20(步骤528)。虚拟驱动器已预先设置为包含有效休眠映像20。然后,O/S装入程序78开始通过一系列会由MBR 33捕获并复位向至网络服务器4的Int 13h读取请求装入休眠映像(步骤530)。此时,可再次使用流式传输过程400来访问并发送虚拟驱动器8中集体存储有休眠文件20的若干扇区的内容(步骤532)。
在休眠映像已复制到每一客户机的本地存储器44上后,O/S装入程序78立即将运行转到自休眠映像恢复的O/S 40(即Windows XP或2000)(步骤534)。应注意,从此时刻开始,将不以同步方式执行这些读取请求。而是由网络服务器单独地发送并应答各读取请求。
现在O/S 40需要开始唤醒驱动程序76(例如存储驱动程序32)并执行某些初始化来使***恢复到一可用状态。此时遇到的一个困难是,在NIC驱动程序74和网络过滤驱动程序30已初始化完之前存储驱动程序32必须阻止任何读取或写入。然而,网络过滤驱动程序将直到O/S 40已读取完可提供***公用功能的文件(例如WIN32.SYS)时才会初始化。该问题已通过如下方式得以解决:在建立休眠映像之前将WIN32.SYS较早地高速缓存入客户机存储器50内,由此使该文件成为现已读入本地存储器50中的休眠映像本身的一部分。因此,可自本地存储器读取文件WIN32K.SYS而不需要访问虚拟驱动器8。一个例外情况为,存储驱动程序32将所有O/S磁盘写入和读取请求排队存入一在创建休眠映像期间预先分配且此时处于客户机***的存储器50中的高速缓冲存储器中。存储驱动程序32只是存储这些请求,直至可安全地处理这些请求(即在NIC驱动程序74和网络过滤驱动程序30已初始化之后)为止(步骤536)。然后,自本地客户机存储器读取文件WIN32K.SYS并将数据返回至O/S(步骤538)。
然后,O/S 40唤醒NIC驱动程序74和网络过滤驱动程序30(步骤540)。在步骤542中,网络过滤驱动程序30通知存储驱动器32:NIC 54已初始化且网络过滤驱动程序30已准备好接受未决的读取和写入请求。另一选择为,存储驱动程序32可预先(在建立休眠映像期间)“挂入”NIC驱动程序74调度功能内,来监视其数据是否处于“IRP_MJ_POWER”。当网络驱动程序被唤醒时,此可提醒存储驱动程序32。一旦O/S 40将IRP_MJ_POWER发送至NIC驱动程序74,该请求将在整个通电期间始终存在。存储驱动程序32将等待NIC驱动程序完成对IRP_MJ_POWER的处理,此将意味着网络驱动程序已被完全唤醒。
然后,在步骤544中,存储驱动程序将所有经高速缓存的读取和写入请求解除队列,以将O/S 40恢复到一可用状态。此后,用户即可以正常方式使用客户PC。应注意,在本实施例中,存储驱动程序对读取和写入的处理稍有不同。换句话说,为使不同客户机不会同时写入至同一虚拟映像以致破坏该映像,存储驱动程序是在本地高速缓存所有写入请求,因此写入请求从不提交给虚拟驱动器。相反,读取请求则实际上自虚拟驱动器读取,除非已将一所需扇区的副本高速缓存到客户机上。在后一种情况中,是自客户机存储器中的高速缓存存储区读取扇区且不进行网络事务。
所属领域的技术人员在阅读本文所揭示的本发明说明或实施方式之后,将易于得出本发明的其它实施例。举例来说,在某些实施例中,同步流式传输过程400仅可用于下载由中断处理程序过程所请求的数据,或仅用于以受保护模式访问服务器。或者,同步流式传输过程400可用于将应用程序预装入客户机中。同样,在其它实施例中,是自一休眠映像的网络副本进行引导而不需要使用MBR代码使各数据包的请求和接收同步,此仍归属于本发明范围内。因此,仅应将本说明和各实例视为实例性,本发明的真正范围和精神系由权利要求书来表示。

Claims (48)

1、一种将数据自一第一服务器流式传输至一或多台客户计算机的方法,所述第一服务器通过一对应数量的客户机接口,与一网络中的所述一或多台客户计算机进行通信,所述方法包含如下步骤:
向所述第一服务器发出一或多个对常驻于所述第一服务器上的若干扇区的内容进行下载的请求,
其中所述若干扇区集体存储有所述一或多台客户计算机所需的数据,及
其中所述第一服务器响应于所述一或多个请求,对所述一或所台客户计算机上的一磁盘驱动器的行为进行仿真;
由所述第一服务器,以一预定方式自一与所述第一服务器相配套的磁盘驱动器访问所述若干扇区;及
将所述若干扇区的内容经由所述网络,自所述第一服务器发送至所述一或多台请求所述下载的客户计算机,以使所述扇区的实际源对所述一或多台客户计算机保持透明。
2、根据权利要求1所述的方法,其中发送所述若干扇区的内容进一步包含:广播所述若干扇区的内容。
3、根据权利要求1所述的方法,其中发送所述若干扇区的内容进一步包含:多播所述若干扇区的内容。
4、根据权利要求1所述的方法,其中所述服务器仿真是所述一或多台客户计算机执行常驻于所述一或多台客户计算机上的预执行引导环境代码、由此通过一中断处理程序处理磁盘访问作业,并发出所述一或多个请求的结果。
5、根据权利要求4所述的方法,其中所述所需数据是仿真代码,其用于对一本地磁盘驱动器进行仿真,并请求下载一包含操作***驱动程序的操作***引导文件。
6、根据权利要求1所述的方法,其中所述服务器仿真是所述一或多台客户计算机执行自所述第一服务器接收的仿真代码的结果、由此通过一中断处理程序处理磁盘访问作业,并发出所述一或多个请求。
7、根据权利要求6所述的方法,其中所述所需数据包含一操作***引导文件和多个操作***驱动程序,其用于承担对所述一或多台客户计算机至所述网络的接口的控制,并发出所述一或多个对所述一或多台客户计算机完成所述引导过程所需的一或多个文件的下载请求。
8、根据权利要求7所述的方法,其中所述一或多台客户计算机完成所述引导过程所需的所述一或多个文件,包括一或多个休眠文件。
9、根据权利要求1所述的方法,其中所述服务器仿真是所述一或多台客户计算机执行自所述第一服务器接收的一操作***引导文件和多个操作***驱动程序、以承担控制所述一或多台客户计算机至所述网络的接口并发出所述一或多个请求的结果。
10、根据权利要求9所述的方法,其中所述所需数据包含所述一或多台客户计算机完成所述引导过程所需的一或多个文件。
11、根据权利要求10所述的方法,其中所述一或多台客户计算机完成所述引导过程所需的所述一或多个文件,包括一或多个休眠文件。
12、根据权利要求10所述的方法,其中所述一或多台客户计算机完成所述引导过程所需的所述一或多个文件包括一或多个初始化文件。
13、根据权利要求1所述的方法,其进一步包含如下步骤:
将从所述第一服务器接收的所述若干所发送扇区的内容,存储在本地客户机存储器内。
14、根据权利要求9或10所述的方法,其进一步包含如下步骤:
将所述一或多个休眠文件的内容装入所述一或多台客户机的本地存储器内;及
启动体现于所述休眠文件中的所述客户机操作***处理。
15、根据权利要求1所述的方法,其中所述所需数据包含一或多个应用文件。
16、根据权利要求1所述的方法,其中所述发送步骤进一步包含如下步骤:
在一预定邀请周期内,登记每一所述客户计算机,所述第一服务器从其接收到一下载要求;及
根据一常驻于所述第一服务器上的扇区顺序文件中所规定的一顺序,将所述若干扇区广播或多播至所述已登记客户计算机,如果在所述第一服务器上未常驻有扇区顺序文件,则学习一扇区顺序文件并使用所述所学习的扇区顺序文件来完成所述发送步骤。
17、根据权利要求16所述的方法,其中广播或多播所述若干扇区进一步包含如下步骤:
在每一轮扇区传输中,所述第一服务器均以一预定方式指定一不同的客户机,以便可自该客户机接收一针对下一扇区的请求,直到已发送完所有所述扇区为止。
18、根据权利要求16所述的方法,其中学习一扇区顺序文件进一步包含如下步骤:
从所述已登记客户机中选择单台已登记客户机;
允许所述所选择客户机发出磁盘访问请求,同时将所述所选择客户机
所请求扇区的一排序列表,记录到一所学习的扇区顺序文件中。
19、根据权利要求16所述的方法,其中学习一扇区顺序文件进一步包含如下步骤:
从所述已登记客户机中选择单台已登记客户机;
允许所述所选择客户机发出磁盘访问请求,同时将所述所请求扇区的实际数据内容,依序记录到一所学习的扇区顺序文件中。
20、根据权利要求18或19所述的方法,其中使用所述所学习的扇区顺序文件完成所述传送步骤进一步包含如下步骤:
根据所述所学习的扇区顺序文件中规定的一顺序,向未选中的客户计算机广播或多播所述若干扇区。
21、根据权利要求16所述的方法,其进一步包含如下步骤:
将每一已登记客户机接收到的所述所发送扇区存储在每一已登记客户机上;
将一传输结束信号从所述第一服务器发送至所述已登记客户机;
在每一已登记客户机处识别已成功接收并存储了哪些扇区;及
单独请求自所述第一服务器重新传输未成功接收及存储的扇区。
22、根据权利要求16所述的方法,其中所述扇区顺序文件包含一关于集体存储有一或多个操作***引导文件的所有扇区的列表。
23、根据权利要求16所述的方法,其中所述扇区顺序文件包含一关于集体存储有一或多个休眠文件的所有扇区的列表。
24、根据权利要求16所述的方法,其中所述扇区顺序文件包含一关于集体存储有一或多个应用文件的所有扇区的列表。
25、根据权利要求1所述的方法,其中所述第一服务器通过一或多条总线与所述一或多台客户计算机进行通信。
26、根据权利要求1所述的方法,其中所述发出请求步骤进一步包含:自一第二服务器获得常驻于所述第一服务器上的所述若干扇区的一地址。
27、根据权利要求26所述的方法,其中所述第一和第二服务器是同一服务器或连接至所述网络的不同服务器。
28、根据权利要求5所述的方法,其进一步包含如下步骤:
在所述网络上,自所述一或多台客户计算机广播对应的一或多个客户机因特网协议请求消息,所述客户机因特网协议请求消息包含位于所述一或多台客户计算机中的所述对应网络接口的一地址;
从一第二服务器获得对应于所述一或多个客户机因特网协议请求消息的一或多个应答消息,其中所述应答消息包含一分配给所述一或多台客户计算机的因特网协议地址、所述第一服务器的一因特网协议地址和存储在所述第二服务器上的所述操作***引导文件的一地址;
在下载完所述操作***引导文件后,立即执行包含于所述操作***引导文件内的所述仿真代码,以通过所述第二服务器启动客户机磁盘仿真,此后从所述第二服务器下载一初始化文件,其中所述初始化文件包含一常驻于所述第一服务器上的休眠文件的一地址和所述第一服务器的一地址;
响应于所述操作***引导文件连同所述初始化文件的执行,从所述第一服务器发送一包含于所述映像文件中的引导扇区;
执行所述引导扇区之后,向所述第二服务器发出若干如下请求:发送集体存储有所述休眠文件的若干扇区的内容;及
当已从存储在所述第一服务器上的所述休眠文件中,逐个扇区地下载了足够的操作***文件时,开始在所述一或多台客户计算机上执行各个客户机操作***处理。
29、根据权利要求28所述的方法,其中所述第一和第二服务器是同一服务器或连接到所述网络的不同服务器。
30、一种用于将数据从一第一服务器流式传输至一或多台客户计算机的装置,所述第一服务器通过一对应数量的客户机接口与一网络中的所述一或多台客户计算机进行通信,所述装置包含:
一或多台客户计算机,其均具有:
一处理器;
一存储器,其与所述处理器进行通信,并用于在其中存储可执行的计算机指令;
其中所述处理器,响应于所述指令:
向所述第一服务器发出一或多个请求下载常驻于所述第一服务器上的若干扇区的内容的请求,其中:
所述若干扇区集体存储有所述一或多台客户计算机所需的数据;及所述第一服务器响应于所述一或多个请求,对所述一或多台客户计算机上一磁盘驱动器的行为进行仿真;
一第一服务器,其具有:
一服务器处理器;
一服务器存储器,其与所述服务器处理器进行通信,并用于存储可执行的计算机指令;
其中所述服务器处理器,响应于所述指令:
以一预定方式从一与所述第一服务器配套的磁盘驱动器上访问所述若干扇区;及
在一预定邀请周期之后,通过所述网络向所述一或多台请求所述下载的客户计算机发送所述若干扇区的内容,以使所述扇区的实际源对所述一或多台客户计算机保持透明。
31、根据权利要求30所述的装置,其中所述服务器仿真是所述一或多台客户计算机执行常驻于所述一或多台客户计算机上的预执行引导环境代码的结果、由此通过一中断处理程序处理磁盘访问作业并发出所述一或多个请求。
32、根据权利要求31所述的装置,其中所述所需数据是仿真代码,其用于对一本地磁盘驱动器进行仿真并请求下载一包含操作***驱动程序的操作***引导文件。
33、根据权利要求30所述的装置,其中所述服务器仿真是所述一或多台客户计算机执行自所述第一服务器接收的仿真代码的结果、由此通过一中断处理程序处理磁盘访问作业并发出所述一或多个请求。
34、根据权利要求33所述的装置,其中所述所需数据包含一操作***引导文件和多个操作***驱动程序,以用于承担控制所述一或多台客户计算机至所述网络的接口并发出所述一或多个下载一休眠文件的请求。
35、根据权利要求30所述的装置,其中所述服务器仿真是所述一或多台客户计算机执行自所述第一服务器接收的一操作***引导文件和多个操作***驱动程序、以承担控制所述一或多台客户计算机至所述网络的接口,并发出所述一或多个请求的结果。
36、根据权利要求35所述的装置,其中所述所需数据包括一休眠文件。
37、根据权利要求36所述的装置,其中所述休眠文件包括一或多个初始化文件。
38、根据权利要求30所述的装置,其中每一处理器均进一步响应于所述指令:
将从所述第一服务器接收的所述若干所发送扇区的内容存储在本地客户机存储器中。
39、根据权利要求36或37所述的装置,其中每一处理器均进一步响应于所述指令:
将所述休眠文件的内容装入所述一或多台客户机的本地存储器内;及
启动体现于所述休眠文件中的所述客户机操作***处理。
40、根据权利要求30所述的装置,其中所述所需数据包含一或多个应用文件。
41、根据权利要求30所述的装置,其中所述服务器处理器进一步响应于所述指令:
在所述邀请周期内,登记每一所述客户计算机,从其中所述第一服务器接收一下载请求;
根据一常驻于所述第一服务器上的扇区顺序文件中规定的顺序,将所述若干扇区发送至所述已登记客户计算机,且如果在所述第一服务器上未常驻有扇区顺序文件,则通过选择一单台已登记客户机、引导所述所选择客户机、同时将由所述所选择客户机在引导期间所请求扇区的一排序列表记录到一扇区顺序文件中,来学习到一新扇区顺序文件,及
使用所述所学习到的扇区顺序文件向未选中的已登记客户机发送所述若干扇区;及
在每一轮扇区传输中,均以一循环方式指定一不同的客户机,以便可自该客户机接收到一针对下一扇区的请求,直到发送完所有所述扇区为止。
42、根据权利要求41所述的装置,其中每一处理器均进一步响应于所述指令:
将所接收到的所述所发送扇区存储在本地客户机存储器中;
从所述第一服务器接收一传输结束信号;
识别已成功接收并存储哪些扇区;及
单独请求自所述第一服务器重新传输未成功接收及存储的扇区。
43、根据权利要求41所述的装置,其中所述扇区顺序文件包含一关于集体存储有一操作***引导文件的所有扇区的列表。
44、根据权利要求41所述的装置,其中所述扇区顺序文件包含一关于集体存储有一休眠文件的所有扇区的列表。
45、根据权利要求41所述的装置,其中所述扇区顺序文件包含一关于集体存储有一或多个应用文件的所有扇区的列表。
46、根据权利要求30所述的装置,其中所述第一服务器通过一或多条串行或并行总线,与所述一或多台客户计算机进行通信。
47、根据权利要求30所述的装置,其中每一处理器均进一步响应于所述指令,从一第二服务器获得常驻所述第一服务器上的所述若干扇区的一地址。
48、根据权利要求47所述的装置,其中所述第一和第二服务器是同一服务器或连接到所述网络的不同服务器。
CN02828969.2A 2002-04-18 2002-04-18 将数据流式传输至一网络中的计算机的***和方法 Expired - Lifetime CN1279439C (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2002/012272 WO2003090073A1 (en) 2002-04-18 2002-04-18 System for and method of streaming data to a computer in a network

Publications (2)

Publication Number Publication Date
CN1625734A CN1625734A (zh) 2005-06-08
CN1279439C true CN1279439C (zh) 2006-10-11

Family

ID=33449006

Family Applications (1)

Application Number Title Priority Date Filing Date
CN02828969.2A Expired - Lifetime CN1279439C (zh) 2002-04-18 2002-04-18 将数据流式传输至一网络中的计算机的***和方法

Country Status (7)

Country Link
EP (1) EP1495400B1 (zh)
JP (1) JP4199677B2 (zh)
CN (1) CN1279439C (zh)
AU (1) AU2002316042B2 (zh)
BR (1) BR0215693A (zh)
CA (1) CA2482617C (zh)
IL (1) IL164657A0 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8151323B2 (en) * 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance
JP4985483B2 (ja) * 2008-03-07 2012-07-25 日本電気株式会社 計算機システム、ネットワークブートロードシステム、及び、そのブートロード方法
JP5304229B2 (ja) * 2008-12-25 2013-10-02 富士通株式会社 端末装置
CN102262546A (zh) * 2010-05-28 2011-11-30 鸿富锦精密工业(深圳)有限公司 无盘启动操作***的方法及电子装置与服务器
US9424052B2 (en) * 2011-03-21 2016-08-23 Amazon Technologies, Inc. Remotely emulating computing devices
US9345061B1 (en) 2011-06-29 2016-05-17 Amazon Technologies, Inc. Remote access to mobile communication devices
CN102323888B (zh) * 2011-08-11 2014-06-04 杭州顺网科技股份有限公司 一种无盘计算机启动加速方法
JP6077759B2 (ja) * 2012-05-18 2017-02-08 株式会社アルファシステムズ 多台数同一環境配信システム及び多台数同一環境配信システムにおける情報処理時間短縮方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974547A (en) * 1998-03-20 1999-10-26 3Com Corporation Technique for reliable network booting of an operating system to a client computer
AU2001265090A1 (en) * 2000-06-13 2001-12-24 Intel Corporation Providing client accessible network-based storage

Also Published As

Publication number Publication date
AU2002316042B2 (en) 2009-12-03
CA2482617A1 (en) 2003-10-30
CN1625734A (zh) 2005-06-08
IL164657A0 (en) 2005-12-18
JP4199677B2 (ja) 2008-12-17
EP1495400A1 (en) 2005-01-12
AU2002316042A1 (en) 2003-11-03
BR0215693A (pt) 2005-03-29
EP1495400A4 (en) 2008-02-27
JP2005523514A (ja) 2005-08-04
EP1495400B1 (en) 2016-06-29
CA2482617C (en) 2012-06-19

Similar Documents

Publication Publication Date Title
US6954852B2 (en) System for and method of network booting of an operating system to a client computer using hibernation
US7321936B2 (en) System for and method of streaming data to a computer in a network
US8352624B2 (en) System for and method of streaming data to a computer in a network
TWI547875B (zh) 將機器轉換至虛擬機器的方法及電腦程式產品
US8612553B2 (en) Method and system for dynamically purposing a computing device
CN1731738A (zh) 大规模计算机集群***节点的自动化快速部署方法
TW200301428A (en) A common boot environment for a modular server system
US9665379B2 (en) System and method for booting a computer system using preboot data
CN1278254C (zh) 确定高可用性集群之活跃度的方法和***
CN1279439C (zh) 将数据流式传输至一网络中的计算机的***和方法
EP1495418B1 (en) System for and method of network booting of an operating system to a client computer using hibernation
US20020065840A1 (en) Method and system for creating and managing common and custom storage devices in a computer network
US8549274B2 (en) Distributive cache accessing device and method for accelerating to boot remote diskless computers
EP1235156B1 (en) Remote management unit with interface for remote data exchange
CN1567198A (zh) 一种机群跨平台并行***镜像备份的方法
JP2008165823A (ja) データをネットワーク上のコンピューターにストリームするためのシステム及び方法
JP2008198210A (ja) ハイバネーションを使用したクライアントコンピューターのオペレーティングシステムのネットワークブーティングのためのシステム及び方法
NZ536066A (en) System for and method of streaming data to a computer in a network

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: ARDENNES CO.,LTD.

Free format text: FORMER OWNER: VENTURCOM INC.

Effective date: 20050930

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20050930

Address after: Massachusetts, USA

Applicant after: ARDENCE, Inc.

Address before: Massachusetts, USA

Applicant before: Wintercam

C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: XICUISI SYSTEM CORP.

Free format text: FORMER OWNER: ARDENCE DELAWARE INC.

Effective date: 20131231

Owner name: ARDENCE DELAWARE INC.

Free format text: FORMER OWNER: ARDENCE INC.

Effective date: 20131231

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20131231

Address after: American Florida

Patentee after: CITRIX SYSTEMS, Inc.

Address before: American Florida

Patentee before: Ardans Delaware Co.

Effective date of registration: 20131231

Address after: American Florida

Patentee after: Ardans Delaware Co.

Address before: Massachusetts, USA

Patentee before: ARDENCE, Inc.

CX01 Expiry of patent term

Granted publication date: 20061011

CX01 Expiry of patent term