CN1670698A - 基于透明计算的计算设备和方法 - Google Patents
基于透明计算的计算设备和方法 Download PDFInfo
- Publication number
- CN1670698A CN1670698A CN 200510063064 CN200510063064A CN1670698A CN 1670698 A CN1670698 A CN 1670698A CN 200510063064 CN200510063064 CN 200510063064 CN 200510063064 A CN200510063064 A CN 200510063064A CN 1670698 A CN1670698 A CN 1670698A
- Authority
- CN
- China
- Prior art keywords
- client
- server
- operating system
- service
- network
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 230000005540 biological transmission Effects 0.000 claims abstract description 23
- 230000008569 process Effects 0.000 claims abstract description 19
- 230000004913 activation Effects 0.000 claims description 23
- 238000012545 processing Methods 0.000 claims description 16
- 238000013515 script Methods 0.000 claims description 12
- 230000008093 supporting effect Effects 0.000 claims description 8
- 238000012546 transfer Methods 0.000 claims description 8
- KKIMDKMETPPURN-UHFFFAOYSA-N 1-(3-(trifluoromethyl)phenyl)piperazine Chemical compound FC(F)(F)C1=CC=CC(N2CCNCC2)=C1 KKIMDKMETPPURN-UHFFFAOYSA-N 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 7
- 238000004891 communication Methods 0.000 claims description 6
- 238000003860 storage Methods 0.000 claims description 5
- 241001362551 Samba Species 0.000 claims description 4
- 238000012423 maintenance Methods 0.000 claims description 3
- 230000002093 peripheral effect Effects 0.000 claims description 3
- 230000006399 behavior Effects 0.000 claims 1
- 230000007423 decrease Effects 0.000 claims 1
- 230000003111 delayed effect Effects 0.000 claims 1
- 230000000717 retained effect Effects 0.000 claims 1
- 230000003319 supportive effect Effects 0.000 abstract 1
- 238000004364 calculation method Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 6
- 230000015572 biosynthetic process Effects 0.000 description 5
- 238000005755 formation reaction Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000000737 periodic effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 241000272173 Calidris Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003912 environmental pollution Methods 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
一种基于透明计算模式的计算设备和方法,包括通过计算机网络连接的服务器和客户端,客户端包括电连接的低功耗CPU,北桥电路、南桥电路、主存、BIOS、PCI总线,网络适配器,一个远程启动芯片,以及其他各种外设适配器,客户端无硬盘,也不预置任何操作系统,服务器上预置了各种启动支撑服务、操作系统镜像、程序、文档和数据等资源,客户端加电后执行初始化并开始网络启动过程,进行广播,向服务器请求下载操作系统选择菜单脚本程序;发送所选操作系统的下载请求;服务器向传送客户端所需操作系统;客户端接收并加载操作系统;用户使用客户端来完成自己的计算需求,计算在本地发生,计算过程中可从服务器上按需获取所需的程序、数据、文档等资源。
Description
技术领域
本发明涉及在计算机网络上,一种基于透明计算模式的计算机系统,及其这种系统中客户端的启动方法和服务器群的自组织方法。
背景技术
计算技术的发展经历了由大型机为主的主机计算到桌面机为主的网络计算阶段。当前,以桌面机为主的网络计算又正朝着包括各种移动设备(例如手机、笔记本电脑、PDA等)和数字家电在内的无所不在的网络计算,也就是普适计算方向发展。
但是,迄今为止的普适计算以及在普适计算之前的网络计算等计算模式中:无论何种计算机,必须从一开始就要为它研制和安装相应的操作系统、支撑工具和应用软件,否则,该机器就不能进行相应的应用计算或运转相应的软件系统。这造成了现在的对PC机指标(例如内存、硬盘、CPU频率和速度等)要求越来越高、软件操作系统越来越复杂和庞大的局面。那些只能安装小型嵌入式操作系统的移动设备(如PDA、手机等)以及数字家电设备(如ISDN电话等)虽然能够运转较小的软件,但它们却面临着很难和通用的计算机网络系统,例如Internet进行互连和互通的问题。硬件系统和软件系统的一一对应关系以及硬件系统的不断升级使得软件系统越来越复杂,用户的使用和维护成本越来越高。同时,不断淘汰的旧的电脑设备又形成许多新的垃圾和造成新的环境污染。
透明计算(参见参考文献:张尧学,“透明计算:概念、结构和示例”,电子学报,VOL32,NO12A,12,2005)是一种用户无需感知计算机操作系统、支撑工具以及应用程序的所在,并能根据自己的需求,从所使用的各种设备(包括固定和移动以及家庭的各类设备)中找到相关计算服务,而这些服务又是存储于位于分布式网络的服务器中的计算模式。
如图1,这种模式由服务器和客户机组成,在硬件系统上与传统的客户机/服务器相似。所不同的是,在透明计算模式中,其客户机可以是多种不同的终端设备(PDA、移动终端、家电等),
与传统客户机/服务器等计算模式的另一个重要不同是,在其他任何计算模式中,每个不同的计算设备都与一个特定的操作系统对应,这不仅是硬件设备的底层接口和操作系统内核匹配的需要,也是迄今为止的传统模式;透明计算则使得用户可以透过一个设备去选择和使用用户需要和喜欢的多个操作系统和应用程序,而且,这些操作系统和应用程序都不是固定在该设备中,而是透过各种通信网络从存储有这些操作系统、工具和应用程序等的服务器中下载得到。只要设备的硬件接口是支持这些操作系统的,用户就可根据需要动态下载和动态安装这些操作系统、工具和应用程序等,并覆盖客户机中已有的系统和程序,从而大量节省客户机的存储空间和计算时间。
透明计算的另一个长处是,它的服务器只用于各种资源的存储,而不从事应用计算。这减少了服务器的负载,提高了用户的响应速度。
物理驱动层提供服务器和客户机之间的网络连接,它由相应的硬件驱动卡和驱动程序、以及其上的网络连接程序组成。例如,以太网、包括高速以太网、无线以太网802.11等就是在局域网上构成透明计算的物理驱动层。除了以太网之外,IEEE1394、红外、蓝牙、有线电视网等都可用作透明计算的物理驱动层。透明计算的物理驱动层对应于无所不在的通信,从而使得透明计算模式可用于各种有线、无线和移动环境。由于使用通用的通信网络来支持透明计算,因此,透明计算模式下可以容易地和Internet、电视网等连接。
透明计算层是透明计算的核心,它包括以下几个部分:多操作系统启动连接协议,应用程序调度与管理模块,用户请求管理模块、用户管理模块、服务器资源管理模块等。
应用计算层接受并完成用户的计算需求。应用计算层使得用户可以像使用普通PC那样使用一个客户端,应用计算层还可实现主动服务(参见文献:张尧学、方存好,《主动服务》,ISBN7030145763),以使用户享受到更加智能化、个性化、和综合化的计算服务。
基于透明计算的模式,本发明提出一种计算设备、以及这种设备的组成部件一客户端的启动方法和服务器群的组织方法,特别是一种基于透明计算的网络计算机系统及其方法。
网络计算机的概念最早由Oracle公司的CEO Ellision在1995年提出。Oracle在1996年5月联合IBM、SUN、Apple、Netscape制定了第一个有关网络计算机的标准。这种NC价格便宜,在硬件上简化了PC,本地没有硬盘,只有一个固化在主板上只读存储器(ROM)中的嵌入式系统,其软件主要是Java虚拟机和WWW浏览器,通过WWW方式来下载运行存放在服务器上的Java Apllet.具有代表性的是SUN推出的JavaStation NC。它在硬件上与PC大致相同,但比PC简单。在软件上,在本机ROM中存储有一个嵌入式操作系统JavaOS,并能支持Java虚拟机,因特网协议。当本机启动嵌入式操作系统后,可以通过WWW/JavaApplet访问存储在应用服务器上的程序和数据。但这种NC支持的应用很少,不能支持流行的Windows应用。
NetPC是微软针对NC所提出的一种方案。NetPC和PC一样,本地带有硬盘,但本地不存储操作系统,启动后,从服务器上将操作系统和应用程序下载到本地硬盘,然后再本地执行所有应用。它没有传统PC的灵活性和可扩展性,虽然计算在本地进行,但是只能运行Windows操作系统,而且NetPC将Windows操作系统和所有的应用程序全部下载到本地运行,容易造成大量网络流量,并且不能支持大软件的运行。而且NetPC和传统PC一样,本身的硬件配置也要不断升级。
瘦客户机(Thin Client)是从客户机/服务器模式中派生的一个概念。瘦客户机硬件比PC简单,本地没有硬盘,主板上有一个大容量ROM,在该ROM中存放有嵌入式操作系统或X-Terminal协议代码。瘦客户机运行嵌入式操作系统或只运行终端协议,并通过终端协议访问服务器上的程序和数据,在本地不进行计算,应用程序运行和数据处理都是在服务器上进行,本地只负责接收和显示结果,是哑终端的一种发展。Windows终端机(Window-Based Terminal或WBT)就一种瘦客户机。由于瘦客户机在本地只负责界面处理,不进行实际的计算和数据处理,所以对服务器的要求很高。当需要运行大量计算的程序,如多媒体的编解码时,其负载能力会大受限制。
总之,现有的各种计算机形态由于在设计模式上的局限,用户需要感知应用程序、支撑工具、尤其是操作系统等计算资源的所在,存在对服务器依赖过重,软件升级困难,管理困难,对多媒体应用支持能力差等等问题。因此如果NC系统能采用透明计算的模式,例如按需地从服务器上将操作系统和初始的应用程序加载至具备本地计算能力但无硬盘的NC客户端运行,则可在保持传统NC低成本低功耗的优点外,更好的支持用户的计算需求,尤其是对多媒体应用的需求。我们把采用了透明计算模式的这种NC系统称为可管理多媒体网络计算机MMNC。清华大学计算机系网络系统组正研制中的新“龙星”系列网络计算机就是在MMNC的原型上进行改进的网络计算机。
发明内容
针对现有的NC和瘦客户机等计算机系统对服务器依赖过重,对多媒体应用支持不足、软件升级困难、管理困难、负载能力差的问题,本发明提出了一种基于透明计算模式的网络计算机系统,即MMNC系统。它包括通过计算机网络连接的服务器和客户端,其中服务器由一台普通计算机构成,其特征在于:客户端的主板带有通过电连接的低功耗CPU,北桥电路、南桥电路、主存、BIOS、PCI总线,网络适配器,以及其他各种外设适配器,但客户端没有硬盘,也不预置任何操作系统,在主板上还带有一个远程启动芯片,其中存储了用于远程下载和加载操作系统的远程启动协议代码,服务器上预置了NFS服务、PXE服务、DHCP服务,TFTP服务、SAMBA服务等各种启动支撑服务、各种操作系统镜像、应用程序、文档和数据等资源,客户端和服务器根据以下步骤完成用户对计算的需求:客户端加电后执行本机环境和网络初始化工作后开始网络启动过程,在CPU的控制下,启动远程启动芯片被检测到;远程启动芯片中的远程启动代码开始被执行,客户端在网络上进行广播;服务器收到客户端的广播消息后向客户端发送响应消息,其中包括分配给客户端的网络参数;客户端向服务器请求下载操作系统选择菜单脚本程序;服务器向客户端发送操作系统选择菜单脚本程序,其中带有自身所能提供的各种操作系统镜像的描述;客户端执行收到的操作系统选择菜单脚本程序,用户作出选择;客户端向服务器发送下载所选的操作系统镜像的请求;服务器向客户端传送其所需的操作系统镜像;客户端接收操作系统镜像,并将其加载;此后,用户像使用普通PC那样使用客户端来完成自己的计算需求,计算在客户端本地发生,计算过程中可从服务器上按需获取所需的程序、数据、文档等资源。
采用了透明计算模式的MMNC系统,缓解了传统NC系统对服务器依赖过重,对多媒体应用支持不足,软件升级困难,管理困难的问题。
本发明另一方面还提出了客户端的协作式启动方法和服务器群的组织方法,不仅使得MMNC系统具有更好的性能,也使得整个系统获得了高可用性和基本呈线性的可扩展性。
附图说明
图1是透明计算模式的层次结构示例图
图2是MMNC系统中客户端的硬件结构示例图
图3是MMNC系统中客户端协作式启动方法的网络示例图
图4是应用程序文件资源分布表示例图
图5是客户端协作式启动方法流程的示例图
图6是未经组织时的MMNC系统网络拓扑示例图
图7和图8是MMNC系统的服务器自组织方法的原理图
图9是使用了本发明的自组织方法后服务器的网络结构示例图
图10是MNCS及SNCS中使用到的数据结构
具体实施方式
下面参照图示对本发明进行详细说明。
本发明中客户端的硬件结构如图2所示,主要包括带有外部接口的主板,其中包括低功耗CPU,北桥电路、南桥电路、主存、BIOS、PCI总线,以及IDE接口、音频控制器、视频控制器、网络控制器,RS232串口、USB接口、IEEE 1394数字家电网络,TV-OUT电视接口,FAX/MODEM接口等,还包括一个用于操作系统加载的远程启动芯片,远程启动芯片可以是主板上的一个独立ROM或FLASHROM,或网络控制器上的ROM,它存储有实现远程启动协议的代码,此外也可以在BOIS芯片的芯片中直接存储远程启动协议的代码,构成可实现远程启动功能的扩展BIOS芯片。当操作系统远程加载后,再按照用户的需求远程访问存放在服务器上的文件、程序、数据,并在本地进行计算完成用户需求。
本发明中的服务器硬件上可使用一台普通的PC或服务器。
本发明的第一个实施例中,将PXE(PREBOOT EXECUTION ENVIRONMENT)远程启动协议代码存放在客户端主板的BIOS芯片中形成BIOS芯片。服务器上安装操作系统LINUX。在服务器上预先安装和配置了动态主机配置协议(DYNAMIC HOSTCONFIGURATION PROTOCAL,DHCP)服务及PXE服务。服务器上还放置了相应的操作系统内核镜像和根文件系统镜像,包括了开机后初始的应用程序和相应数据,当客户端加电启动后,使用动态主机配置协议获得本机的IP地址,然后使用TFTP协议下载LINUX镜像和根文件系统镜像。根文件系统镜像下载后放到本地的内存盘中。当操作系统控制机器后,可以使用RDP协议远程访问WINDOWS2000服务器,实现传统PC的功能。
本发明的第二个实施例中,在客户端的设置了一个独立的ROM,该ROM中存放了ETHERBOOT远程启动协议的代码,构成远程启动芯片。服务器上安装了LINUX,并预先安装和配置了DHCP服务,TFTP服务和NFS服务。客户端加电启动后,使用动态主机配置协议获得本机的IP地址,然后再使用TFTP协议来下载LINUX内核镜像并执行。客户端再利用NFS服务加载根文件系统的镜像,包括初始的应用程序。
本发明的实施例3中,将RPL(REMOTE PROGRAM LOAD)远程启动协议代码存放在客户端的独立ROM中构成远程启动芯片。服务器预先安装和配置了WINDOWS2000服务器。由于WINDOWS2000服务器自身不支持远程启动,因此本实施例中还在WINDOWS2000服务器操作系统上安装了WINDOWS NT4所提供的远程启动服务。客户端加电启动后,利用RPL协议下载并加载DOS或WINDOWS32操作系统镜像,以及初始的应用程序,此后可利用METAFRAME进行客户端到服务器的连接。
本发明的实施例4中,将PXE远程启动协议代码存放在客户端的主板上一独立ROM构成远程启动芯片。服务器上安装了WINDOWS2000 SERVER。并在服务器上安装了DHCP服务和INTEL PXE-PDK服务。首先建立一样本客户端镜像,该客户端上的IDE接口上暂接一个硬盘。按照常规方法在该客户端上安装WINDOWS98操作系统和初始的应用程序。此后,根据LITENET设置并制作操作系统镜像文件,并保存于服务器上。客户端启动后,利用PXE协议下载并加载WINDOWS98操作系统镜像,以及初始的应用程序,并利用NET USE将WINDOWS2000 SERVER的共享映射为相应的网络虚拟磁盘,为WINDOWS98提供数据存储服务。
本发明的实施例5中,在客户端的主板上设置了一个独立ROM,并在其中存放支持多操作系统的远程启动协议。服务器上安装了LINUX操作系统,并且预先安装配置了DHCP服务,远程启动服务。服务上保存了LINUX和多个版本WINDOWS操作系统镜像和初始应用程序的文件,在服务器上还安装和配置了支持客户端下载和加载LINUX操作系统镜像下载的NFS服务,已经支持WINDOWS的SAMBA服务。客户端启动之后,首先从服务器上下载和加载一个脚本解释环境以及相应脚本,然后根据用户要求下载和加载相应的操作系统镜像和初始应用程序,此后在通过NFS或SAMBA为客户端提供文件服务,并使用按需加载技术来实现客户端应用优化,从而支持丰富的桌面应用。
此外,还可以采用RAMDISK、NFS、NBD等现有的虚拟磁盘技术,在服务器上的操作系统镜像中事先预置在服务器上为客户端虚拟出硬盘的服务程序,和/或在客户端内存中为客户端虚拟出磁盘空间的服务程序,服务器上又预置和加载了这种虚拟磁盘空间服务的服务器端程序,则在客户端启动运行后,自动运行该服务,使得客户端具有虚拟的磁盘空间,客户端在运行时和运行后的数据就可以临时或永久地被缓存或存放于内存中和/或服务器的存储器中,对于临时存放于内存虚拟盘中的数据,随时手工地、或者设置一个守护进程在客户端操作系统进行关机时自动地将该虚拟磁盘空间中的数据通过NFS服务导出至服务器的存储器中。
以上的实施例都描述了基本符合透明计算模式的这样一种网络计算机系统:客户端本地无硬盘,不预置任何操作系统,主板电路上设置一个远程启动芯片。服务器预置了各个支撑服务、操作系统的镜像文件和应用程序,以及其他文档和数据等。客户端被加电后开始启动过程,之后执行非易失存储器中的引导代码,通过消息广播同服务器进行联系,服务器收到客户端广播消息后,向客户端应答并为客户端分配一网络地址,即一IP地址。获得网络地址之后,客户端再从服务器上下载一个脚本程序选择操作系统,并向服务器发出下载操作系统内核镜像和包括初始应用程序的根文件系统镜像的文件下载请求,服务器接收到文件下载请求后向客户端传输操作系统内核镜像以及根文件系统镜像,客户端接收服务器的传输,NC客户端接收完毕后加载服务器端传输的操作系统内核镜像和根文件系统镜像,就完成了客户端的启动过程。客户端在运行中,计算在本地发生,可按需下载和加载服务器上的应用程序和数据,应用程序运行中所需要/所产生和运行后所产生的数据都来缓存/放置于服务器。这些特点使得MMNC不仅解决了传统NC运行后,尤其是多媒体等应用场景下计算过于依赖服务器、支持的应用有限的问题,提高了服务器对客户端的支持数量;还使得用户可以根据需求和偏好选择适合的操作系统进行下载和加载。
可以看出的是,与传统的NC系统类似,在启动时上述MMNC系统的客户端完全依赖于服务器:所有的客户端均要向服务器发送客户端启动的下载请求,并从服务器上下载操作系统内核镜像和应用程序文件。服务器不仅要处理每个新收到的下载请求,并且要分配各种资源:内存,虚拟存储空间,I/O缓存,并占用CPU处理时间来进行文件的传输。事实上,客户端服务器采用类似Round-Robin的一种调度方式来进行客户端启动文件下载请求的处理,其实际并发处理能力并不高。对于一台普通配置的单服务器,如果短时间内收到大量的客户端启动文件下载请求(这在MMNC的多媒体教室应用中是十分常见的情况),则服务器会成为启动的性能瓶颈,将造成客户端的平均启动速度很慢。尽管客户端可共享整个网络的带宽资源,但由于客户端和服务器之间呈星型的逻辑结构,客户端在启动时实际只利用了服务器至客户端之间的链路带宽资源,网络的利用率不高。此外,由于服务器对收到的客户端启动文件下载请求没有任何限制机制,对于处于峰值负载下的服务器,如果又收到多个新的客户端启动文件下载请求,服务器又试图要为其分配上述的各种资源,就会对服务器性能造成较大冲击,容易造成服务器的不稳定和性能的骤降,因而鲁棒性也不佳,这实际上也成为服务器所能同时支持的客户端数量的另一个限制瓶颈。
客户端从服务器上下载的初始应用程序文件是系统启动之后初始状态可供用户使用的应用程序所包含的文件,它是除操作系统内核之外客户端启动所需要的程序资源。一般来说,对于一台客户端,有多个初始的应用程序,且每个应用程序又由多个文件组成,其总体容量大小往往要大大高于操作系统内核镜像的大小。因此若能改进客户端启动时服务器对初始应用程序部分的下载请求的处理和传输方式,则可改善客户端的启动性能。
因此,本发明的另一方面提出了一种用于上述MMNC系统中客户端的协作式启动方法,它能缓解MMNC客户端对于服务器依赖过重、网络利用率不高、鲁棒性不佳的问题,下面结合图示予以说明。
图3描述了本发明的客户端协作式启动方法的网络示意图,多个客户端302和一服务器303共同位于一个计算机网络上,客户端和服务器硬件上和前述的相同。启动过程中,采用同前述的方法来进行操作系统内核镜像的传输,之后客户端向服务器发送初始应用程序文件下载请求304,服务器对下载请求进行处理,但并不启动对文件的传输,而是向客户端指定哪些目标地址的计算机上存在有请求客户端所需的文件,客户端收到服务器的应答后,再向指定的目标服务器或客户端发起文件传输请求,并由其完成文件传输305,因此文件的传输不再单由服务器提供,而可能由多台计算机同时提供。
如图4,本发明定义了一个应用程序文件资源分布表410(AFRDT)。服务器保留的AFRDT用于动态地对客户端启动过程中初始应用程序文件资源在整个客户端系统(包括客户端和服务器)的分布状态进行纪录;客户端上保留的AFRDT表对本地的初始应用程序文件资源进行动态地记录;AFRDT表也用于服务器-客户端和客户端-客户端之间关于初始应用程序文件资源的分布、请求、确认等交互消息提供信息描述的结构。AFRDT是一个三维的链表结构,其表项对应一个三元关系组<应用程序,文件,计算机>,其中:第一维链表411记录了初始应用程序,其中每个节点至少记录了应用程序的标识、名称、版本、状态、隶属的文件数等信息431;第二维链表412对应第一维链表的一个节点,记录了隶属该应用程序的文件的信息,包括标识、名称、本地地址、状态、权值等信息432,其中权值表示传输该文件的代价,可采用与其大小成正比的参数;第三维链表413对应第二维链表412中的一个节点,记录了保存有该文件的客户端的信息:包括客户端的标识和IP地址。服务器上还维护了一个客户端列表420,以客户端的标识为索引,记录了所有客户端的标识、名称、物理网络地址、IP地址、启动优先级别、启动状态、客户端角色、贡献值等信息421,其中客户端角色可用于服务器确定客户端的操作系统和/或初始应用程序,贡献值用于服务器选择指定传输文件的客户端。
服务器在任一客户端启动之前已经启动。服务器上除了保存了客户端所可能使用的所有的操作系统内核镜像以及初始的应用程序文件资源,还保留了一个AFRDT结构的表,其中记录了整个客户端系统对于初始应用程序文件资源的分布。初始时,没有客户端启动在客户端上也没有任何初始应用程序文件资源,因此第三维链表为空,该AFRDT表实际上只纪录了服务器上的初始应用程序文件资源。服务器上AFRDT表可由手工配置,或由预置的配置文件自动生成。当有客户端加电启动并下载了初始应用程序的相应文件,则会在服务器上的AFRDT表中相应的第三维链表中加入该客户端。可选地,服务器上可根据客户端的MAC地址或IP地址等,为不同的客户端定义不同的角色以及相应优先级等定制参数,因此为各个客户端提供的初始应用程序也不必相同。
本发明的启动方法在客户端接收到操作系统内核镜像之前的步骤采用和前述相似的办法:客户端被加电511之后开始客户端启动过程(称为请求客户端):执行本地ROM中的引导代码512:在网络上进行DHCP广播同服务器取得联系;服务器用DHCP为客户端分配IP;客户端获得本地IP后,请求从服务器上下载操作系统核心镜像,服务器决定对应该用户的操作系统,之后用TFTP将LINUX核心镜像传输给客户端521;客户端加载从服务器上下载的操作系统核心镜像513,并启动一TCP服务对预置的端口侦听随时可能由其它客户端发来的文件传输请求,之后请求客户端向服务器发起一个初始应用程序下载请求514。
服务器收到522该下载请求并根据客户端的MAC地址决定其角色和相应的优先级,其中优先级可用于服务器判断是否优先处理该客户端的文件请求,优先级别较低的将放入缓冲队列。服务器根据客户端角色为其确定相应的初始应用程序,用一个AFRDT表记录这些应用程序及其相应的文件等信息,并将包含该AFRDT表的文件请求放入适当队列进行处理。
服务器维护了两个文件请求队列:一处理队列,一缓冲队列:同现有技术一样服务器采用尽力而为的方式不加限制地对处理队列中的文件请求进行处理;但进入缓冲队列的文件请求则需在一时间延迟δ之后,才能进入处理队列进行处理。δ参数可以根据需要和经验值进行配置,一般δ∈[1-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。
对于下载到本地的初始的应用程序文件副本,如果在运行中经客户端删除或修改,则这些文件就不是其它客户端所需使用的初始应用程序的文件副本,因此这时客户端也要向服务器发送一个文件修改消息,告知哪些文件不再可用了,服务器收到该消息后在相应文件的第三维列表中删除该客户端。
为了避免在初始时,多台客户端同时启动,不存在足够数量的保存有初始应用程序文件的客户端来分担服务器的启动负载。作为一种改进方案,如果在δ时间内服务器收到超过一定数值σ的请求,并且服务器判断没有足够数量P的已启动客户端存在,则选择将一部分(如一半)的请求置于缓冲处理队列,选择时可以结合请求客户端的启动优先级别。δ的定义如前所述,σ可取服务器理论最大负载客户端数MLC的一半,或者经测试的服务器实际最大负载客户端数PMLC的2/3,P∈(5%PMLC,5%MLC)。
采用了这种客户端协作式启动方法的MMNC系统,在同等数量客户端成批启动时,服务器的负载明显降低,客户端的平均启动速度和网络利用率也得到较大提高,服务器具有更好的鲁棒性。
上述的MMNC系统能提供很好的多媒体支持,具有高的可管理性,采用了客户端协作式启动方法的MMNC系统又进一步提高了网络利用率、客户端启动速度和单服务器的负载能力,但目前这两种系统基本上均基于一单服务器的系统结构,即由一个服务器为同网络上的多个NC客户端同时服务,不仅系统的鲁棒性受制于该系统结构,更为关键的是:系统的扩展性成为一个瓶颈。虽然一方面,服务器可以采用类似镜像的技术提高整个系统的鲁棒性和容错性,避免由服务器故障造成整个系统无法使用的情况;另一方面,也可以通过提高服务器硬件性能或改进服务器的运行算法来提高服务器整体性能和负载能力,但是却无法从根本上突破系统的负载数量受单服务器结构限制的这个不足。事实上,我们发现在实际的应用中,一台普通配置的PC服务器所能支持的客户端极难超过百台的限制,但在对MMNC系统可能的应用场合进行需求分析后发现,许多NC系统的大中型应用对于客户端的需求数量都要远高于这个限制。尽管我们可以采用静态划分客户端所属关系的方法,使用多个服务器分别为各自所属部分客户端提供服务,但由于这种方法缺乏一个完整统一的架构,如何合理地进行这种静态划分,在需求发生变化时如何调整划分等由静态划分所带来的一系列问题都将成为棘手、却不得不解决的问题。另一方法是:采用高配置的高级专用服务器来满足大负载数需求。这种方法将使得整个系统的造价将大幅提高,性价比大大降低。因此若能采用一个完整、统一的多服务器的MMNC体系结构,使得多个普通PC服务器以群的方式动态、透明地为客户端提供服务,则能在保留现有MMNC成本低、易管理、支持应用丰富等特点的情况下,提供与服务器节点成正比的负载能力,同时拥有高的可用性、更好的系统可扩展性及鲁棒性。
因此,本发明的另一方面还提供一种对MMNC服务器群的自组织方法,以为整个MMNC系统提供更好的可扩展性和鲁棒性,下面结合图示予以说明。
群是指MMNC系统中同一个连通网络上的所有服务器,客户端以及他们之间的相互关系。服务器群指属于一个群的所有服务器的集合。系统初始时服务器均处于关闭状态,服务器不可用,并且没有加入任何群,客户端也因为在相同连通网络上不存在可用的服务器而无法使用,服务器和服务器、服务器和客户端之间都不存在任何关系。
自组织是指服务器和客户端能自发地形成群的关系,并能对群关系进行动态的调整,经过自组织的服务器群可以透明地向客户端提供如:启动服务(包括IP分配、操作系统内核镜像下载等),应用程序的按需定制、下载服务、共享数据的下载等和现有技术NC中单服务器所能提供的相同服务,而从客户端的角度,感觉不到群模式的服务器和现有的单服务器模式的区别。
如图6,是未经组织时的MMNC系统网络拓扑示意图。多个NC客户端603和NC服务器604、605、606、607物理上分散地分布地在计算机网络601、602的各处,网络601和网络602支持内部广播(如以太网),但不支持相互间的广播通信,因此被认为是不同的连通网络。群是指同一个连通网络上所有NC服务器,NC客户端以及他们之间的相互关系。服务器群指属于一个群的所有NC服务器的集合。初始时服务器均处于关闭状态,服务器不可用,并且没有加入任何群,NC客户端也因为在相同连通网络上不存在可用的服务器而无法使用,服务器和服务器、服务器和客户端之间都不存在任何关系。
如图7和图8,本发明的自组织方法。可以看作是将初始时处于同一层次601的、语义上无差别的、互不相干的、只是物理上相互连通的多个网络实体602(包括客户端、服务器),按照客户端和服务器间的隶属关系,和服务器间的主从关系,自行组成三层次的、多群的实体间关系。
如图9,是上述网络结构在使用本发明的自组织方法后形成的多服务器客户端系统网络拓扑图。在同一连通网络601/602中所有的服务器被组织进一个群(群1/群2),一个群中至少包括一个主服务器(Master NC Server,MNCS)604/605,如果有两个以上服务器,则还包括若干个从服务器(Slave NC Server,SNCS)606、607,因此在多个不同连通网络上,会形成多个群,属于该网络上所有的客户端603都由相应的服务器群提供服务。在一个群中,客户端在发起启动请求后,将被指定由某一个服务器(MNCS或SNCS)固定提供启动服务和启动后的应用程序等服务,这种从客户端到服务器的单射关系,被称为绑定。
如图10,在MNCS中维护了一个绑定映射关系表BMRT 1010来记录群中客户端-服务器,服务器-服务器的映射关系,即记录了一个群中MNCS到SNCS的主从关系,客户端到服务器的隶属关系。其中一维表1011主要起到索引的作用,每个节点1031对应MNCS及从属于它的SNCS,二维表1012的每个节点1032对应隶属于一个服务器的客户端。MNCS中还维护了一个SNCS列表1032,记录了群中SNCS的状态信息,其中每个节点1033记录的信息中包括了收到该SNCS报文的时间戳信息。在服务器中还维护了一Subscriber表1020,记录了被绑定至该服务器的所属客户端信息1021,如标识、优先级、状态、IP地址等信息。
服务器的心跳信号是一种基于IP/UDP的报文。心跳信号是一种主动信号,MNCS服务器在运行中会按固定时间长t在网络上广播发出周期性的心跳信号。其中心跳间隔t可根据应用需求设置为5-300s范围内的一数值,或按t=2*网络最大直径*测量得到的单跳间平均延迟(包括传输延迟和节点处理延迟)计算结果的倍数值。
反射信号也是一种基于IP/UDP的报文,反射信号是一种被动信号,SNCS在收到MNCS发出的心跳信号之后向MNCS发送反射信号。心跳信号和反射信号中都包括了发出信号的服务器在当时的性能参数值,如当时的客户端负载数Wλ,CPU利用率Pλ,内存利用率Mλ,虚存的使用率Gλ,输出带宽/理论带宽P/T,等参数值或关于这些参数的函数值,通过这些参数可以及时了解到群中服务器的载荷情况。
竞职信号是一种基于IP/UDP的报文,用于SNCS尝试升级为MNCS时。
服务器按照下列处理步骤进行自组织形成一服务器群:
Step1:
服务器在启动后自动启动一进程,侦听其他服务器发来的包括心跳、反射信号、竞职信号、冲突指示/回复信号等信息,主要用于服务器之间的交互;
Step2:
If如果在2t-5t的时间内没有接收到其他服务器的心跳信息,则认定自己为群中的MNCS,执行:
将SNCS列表置空,Subscriber表置空,BMRT表中只加入自己一个节点;开始每t时间向网络广播周期性心跳信息;并启动一进程,开始侦听客户端的启动和应用程序请求,跳至step4;
Step3:
Else认定自己为SNCS,执行:
初始化所属的Subscriber表;启动一进程开始侦听客户端的启动和应用程序请求,跳至step4;
Step4:
end
对于服务器群的动态调整按照下列步骤进行:
一方面对于MNCS:
MNCS在首次收到某SNCS反射信号时将其加入群:将SNCS插入BMRT表和SNCS列表;
通过SNCS列表节点中的时间戳参数,若MNCS在T0=2t-5t时间内收不到某SNCS的反射信号,则以Tn=Tn-1*1/Nn的时间间隔以端对端方式向该SNCS重发心跳信号,其中N0=2,Nn=Nn-1+1,Nn<=Nmax,Nmax表示最大尝试次数,可自定义。若Nmax后还无收到SNCS的反射信号,则认定该SNCS在群中不可用,则要更新群关系,具体地,将绑定至该服务器上的所有客户端去绑定,即从BMRT表中删除该SNCS及相关的客户端,并在SNCS列表中将该服务器的状态置为不可用N/A。
另一方面,对于SNCS:
一旦SNCS收到MNCS广播发出的心跳信号后,将向MNCS回复一发射信号,
若SNCS在2t-5t时间内,没有收到MNCS发出的心跳信息,则认定群中无MNCS,跳至P1执行:
P1:
发出一个竞职信号;
If 2t-5t时间内收到MNCS发来的心跳信号,则跳至P2;
Else If没有收到其他SNCS发来的竞职信号,则自己升级为MNCS:将SNCS列表置空,BMRT表中只加入自己一个节点,并以当前的Subscriber表来初始化BMRT表,即在BMRT表中加入这些客户端;开始每t时间向网络广播周期性心跳信息;跳至P2。
Else If收到其他SNCS发来的竞职信号,则使用二进制指数回退算法(Binaryexponential backoff algorithm)延迟R*T*2^N时间,其中R是随机数,T是上次延迟等待的时间(首次延迟为2t-5t),N是算法被调用次数,若延迟期间收到心跳信息,则认定自己为SNCS,goto P2;否则goto P1;
P2:
end
此外,若任意时刻一个MNCS收到其他MNCS的心跳信号(可能是由于网络拓扑结构发生改变,导致同一连通网络上出现若干MNCS),这时也需要动态调整群关系:
收到心跳信号的MNCS采用端对端方式向发出心跳信号的另一MNCS发送冲突指示信号,其中包括了自己的BMRT表和SNCS列表内容;
若一MNCS A收到另一MNCS B发来的冲突指示信号,则A比较B的SNCS数,若A的SNCS数大于等于B的SNCS数,则A将B插入自己的SNCS表,并将B的BMRT表和SNCS列表内容无冗余地插入自身的BMRT表和SNCS,其中将B变为一SNCS,并向B发送冲突回复信号。否则A向B发送一冲突指示信号,并在收到B发送的冲突回复信号之后,认定自己为SNCS,停止发送心跳信息,初始化BMRT表和SNCS列表。
客户端可以透明地使用群提供的服务,群对客户端的服务请求处理则与单服务器对客户端的服务请求处理的有所不同。客户端加电启动后将发起启动请求时,群将按下列执行步骤提供服务:
客户端在网上发送DHCP广播消息;
SNCS收到消息后,如果在Subscriber列表中找不到该客户端,则不做处理,忽略收到的请求,否则由该服务器向该客户端提供服务;
MNCS收到客户端请求后,如果在BMRT表中找不到该客户端,根据不同的策略(如基于服务器性能参数查找载荷最轻的,或基于Round Robin的等),将该客户端绑定到一服务器,并将客户端插入相应的服务器(MNCS或SNCS)的链表。若绑定的服务器是SNCS,则MNCS通知它这次绑定。绑定服务器会将客户端加入到Subscriber表中,并向该客户端提供服务;
客户端加载从绑定服务器上下载的操作系统核心镜像和初始应用程序之后,再次在网络上广播,由其绑定服务器进行应答,客户端因此可以获知其绑定的服务器,客户端就完成了启动。
此后的按需定制、下载应用程序等服务,客户端都可向其绑定的服务器发出请求获得。
作为另一种实施方式,客户端可以不必知道其绑定的服务器,而采用广播的方式进行服务请求,服务器判断若收到的服务请求隶属自己,则向其提供服务,否则忽略。
如果因为网络拓扑结构发生了变化,或绑定服务器发生了故障,导致客户端无法从绑定服务器上获得服务,客户端可以手工地或在检测到该情况后自动地重新启动,由于MNCS将在检测到相应SNCS不可用后可自动更新群关系,因此客户端重启后将由群将其重新绑定至另一服务器。
作为另一种实施方式,服务器可在启动后的运行过程中,手工或自动地执行加入群的过程,而不必在启动时执行,这种方式更有利于对服务器的定制和动态扩展群的总负载能力。
MMNC系统是基于透明计算的一种计算设备,除了NC,本发明的方法也可适用于基于这种模式的其他计算设备,例如客户端也可是移动终端、PDA、家用电器等。符合这种计算模式的设备使得用户在每次开启客户端计算设备时,都可交互地定制下载和加载操作系统,并按需下载和加载所需的软件。它不仅解决了以往需要高性能计算设备才能运行大型操作系统和应用软件的问题,而且使得系统更加安全、成本更低、而用户不必安装和管理软件,以及可选择操作系统和软件。
以上描述的各个具体实施方式只是对本发明进行示例,本领域技术人员在不脱离本发明实质性思想的基础上进行各种修改和改进后得到的技术方案,均视为在本发明的范围之内。本发明适当的范围以权利要求书为准进行确定。
Claims (20)
1、一种基于透明计算模式的计算设备,包括通过计算机网络连接的服务器和客户端,其特征在于:客户端的主板带有通过电连接的低功耗CPU,北桥电路、南桥电路、主存、BIOS、PCI总线,网络适配器,以及其他各种外设适配器,但客户端没有硬盘,也不预置任何操作系统,在主板上还带有一个远程启动芯片,其中存储了用于远程下载和加载操作系统的远程启动协议代码,服务器上预置了各种启动支撑服务、各种操作系统镜像、应用程序、文档和数据等资源,客户端和服务器根据以下步骤完成用户对计算的需求:
客户端加电后执行本机环境和网络初始化工作后,在CPU的控制下启动远程启动芯片被检测到,开始网络启动过程;
远程启动芯片中的远程启动代码开始被执行,客户端在网络上进行广播;
服务器收到客户端的广播消息后向客户端发送响应消息,其中包括分配给客户端的网络参数;
客户端向服务器请求下载操作系统选择菜单脚本程序;
服务器向客户端发送操作系统选择菜单脚本程序,其中带有自身所能提供的各种操作系统镜像的描述;
客户端执行收到的操作系统选择菜单脚本程序,用户作出选择;
客户端向服务器发送下载所选的操作系统镜像的请求;
服务器向客户端传送其所需的操作系统镜像;
客户端接收操作系统镜像,并将其加载;
此后,客户端像普通PC那样完成用户发起的计算需求,计算在客户端本地进行,计算过程中可从服务器上按需获取所需的程序、数据、文档等资源。
2、如权利要求1所述的计算设备,其特征在于:所述的启动支撑服务是NFS服务、PXE服务、DHCP服务,TFTP服务、SAMBA服务。
3、如权利要求2所述的计算设备,其特征在于:所述客户端是网络计算机、PDA,家用电器、或移动终端等。
4、如权利要求3所述的计算设备,其特征在于:所述的操作系统镜像中预置了一个服务器通过网络为客户端虚拟磁盘的客户端服务,服务器上也运行了一个相对应的虚拟磁盘的服务器端服务,使得客户端上程序运行中和运行后所产生的任何数据都可被临时或永久地缓存或存放于服务器的物理存储器中。
5、如权利要求3所述的计算设备,其特征在于:所述的操作系统镜像中预置了一个在客户端内存中为客户端虚拟出磁盘空间的服务,使得在客户端程序运行中所产生的任何数据都可被部分地临时存放于内存中,并可随时手工地、或者配置在客户端操作系统进行关机时自动地将该虚拟磁盘空间中的数据存放在服务器的存储器中。
6、如权利要求4或5所述的计算设备,其特征在于:所述的远程启动芯片为设置在主板上的一个独立只读存储器,也可为BIOS或外设适配器上的ROM。
7、一种基于透明计算模式的计算设备的启动方法,该设备由通过计算机网络连接的服务器和客户端构成,其特征在于:客户端不预置任何操作系统,服务器上存储了所有客户端启动所需的操作系统和应用程序,当一请求客户端需要启动时使用包括以下步骤的方法完成启动:
一、请求客户端被加电后在所述计算机网络上发出广播消息;
二、服务器收到请求客户端的广播消息,并向请求客户端发送回应消息,其中包括为请求客户端分配的网络地址;
三、请求客户端收到回应消息,并向服务器发送下载操作系统请求,服务器收到该请求后为请求客户端传输操作系统内核镜像;
四、请求客户端完成操作系统内核镜像下载并加载,启动文件请求侦听,向服务器发起初始应用程序下载请求;
五、收到请求客户端的初始应用程序下载请求后,服务器根据本地保留的初始应用程序文件在所有客户端上的分布信息,选择可为请求客户端传输这些文件的其他客户端作为指定客户端,并告知请求客户端;
六、请求客户端和指定客户端之间建立连接并完成文件传输请求;
七、请求客户端向服务器发出更新消息告知服务器其本地已留存该文件;
八、每下载一个文件,请求客户端判断若属于一初始应用程序的所有文件均下载完则加载该应用程序
九、若所有初始应用程序均已被加载,则请求客户端的启动完成。
8、如权利要求7所述的方法,其特征在于:如果所述步骤六中请求客户端无法完成正确的文件传输,则向服务器发送要求重指定消息,服务器收到要求重指定消息后,重新选择另一个具有相同文件的客户端作为指定客户端,请求客户端和重新指定的客户端之间建立连接并完成文件传输请求。
9、如权利要求8所述的方法,其特征在于:所述步骤五和六中,若不能找到保存有一初始应用程序文件的客户端,则由服务器自己提供该文件的传输。
10、如权利要求7-9中任一个所述的方法,其特征在于:所述服务器上具有一缓冲队列,如果服务器同时收到足够造成服务器性能快速下降的数量的初始应用程序下载请求,并判断没有足够的数量客户端已启动,则将部分请求置于缓冲队列中,对于缓冲队列中的请求,被延缓后再由服务器进行处理。
11、如权利要求10所述的方法,其特征在于:所述客户端是网络计算机、PDA,家用电器、或移动终端等之一。
12、一种基于透明计算模式的计算设备中服务器群的自组织方法,该设备由服务器和客户端构成,客户端和服务器任意分布于计算机网络上,其特征在于:客户端不预置任何操作系统,服务器上存储了客户端启动和运行所需的操作系统和应用程序,其中位于同一广播可达网络上的所有服务器属于同一个服务器群,一个服务器群包括一个主服务器MNCS和若干个从服务器SNCS,客户端只能由属于群中的服务器为其提供服务,尚未加入群的服务器按照以下步骤自组织成服务器群:
步骤一:启动一进程,该进程负责侦听其他服务器发送的信息;
步骤二:如果在Td的时间内没有收到心跳信息,则服务器认定自己是群中MNCS,开始以固定的心跳时长向网络广播心跳信息,其中Td是数倍于心跳时长的时间段,并开始侦听客户端的服务请求;
否则认定自己是SNCS,开始侦听客户端的服务请求;
一SNCS在收到MNCS的心跳信号时向MNCS回复一个反射信号;
步骤三:MNCS在收到一SNCS的首次反射信号时将其加入群;
MNCS根据各SNCS反射信号中的状态信息,动态维护服务器群的状态信息。
13、如权利要求12所述的方法,其特征在于:所述客户端是网络计算机、PDA,家用电器、或移动终端等。
14、如权利要求13所述的方法,其特征在于:
若所述的MNCS在所述Td的时间内没有收到一SNCS的反射信号,则尝试向该SNCS通信,若一定次数的尝试通信后依然无回应,则将该SNCS从群中去除;
若一SNCS在Td时间内没有收到心跳信号,则执行如下处理:
步骤1:发出一个竞职信号;
步骤2:假如在等待的Td时间内收到一MNCS发来的心跳信号,则结束处理;
步骤3:否则,假如没有收到其他SNCS发来的竞职信号,则自己升级为MNCS,用自身保持的绑定客户端状态信息初始化群状态信息,并开始广播心跳信息,结束处理;
步骤4:否则,假如收到其他SNCS发来的竞职信号,则延迟一段时间,若延迟期间收到心跳信息,则认定自己为SNCS,结束处理;否则转到步骤1处理。
15、如权利要求14所述的方法,其特征在于:
若所述MNCS收到其他MNCS发出的心跳信号,则向该MNCS发送一冲突指示信号,其中包括了其所属群的状态信息;
若一MNCS A收到另一MNCS B发出的冲突指示信号,则比较双方群中所属的服务器数量,若前者大于后者,则A将B所属群的状态信息合并至自己所属群的状态信息中,其中将B作为一SNCS插入到A所属群的状态中,并向B发送一冲突回复信号;
若一MNCS收到一冲突回复信号,则认定自己为SNCS,停止发送心跳信号,并更新相关状态信息。
16、如权利要求12-15中任一个所述的方法,其特征在于按照如下步骤所述客户端取得服务器群提供的服务:
步骤a:客户端加电后在网络上广播启动请求;
步骤b;
若一SNCS收到请求后,如果发现该客户端隶属于本服务器,则提供服务;
若所述MNCS收到请求后,如果在保持的群状态信息中发现该客户端不隶属于任何服务器,则将该客户端绑定至一服务器,并告知该服务器已将该客户端绑定到该服务器,由绑定服务器向该客户端提供服务;
步骤c:客户端从绑定服务器上下载并加载下载的操作系统核心镜像和初始应用程序后,再次在网络上广播,由其隶属的绑定服务器进行应答后,该客户端即完成了启动;
步骤d:客户端启动后,如需获得按需定制、下载应用程序等服务,都可向其绑定服务器发出请求获得;
若某一客户端在启动运行后无法从其绑定服务器上获得服务,则可手工地或在自行检测到此情况后自动重新启动。
17、一种基于透明计算模式的计算设备,该设备是一个由以计算机网络相连的一服务器和多个客户端所构成的网络计算机系统,其特征在于:客户端不预置任何操作系统,客户端主板上还带有一个远程启动芯片,由非易失存储器构成,其中存储了远程启动协议代码,服务器上预置了DHCP服务、TFTP服务、NFS服务和PXE服务,以及各种操作系统镜像、应用程序、文档和数据等资源,客户端加电后启动远程启动芯片被检测到,其中的远程启动代码开始被执行,客户端在远程启动代码的控制下参加如下的处理步骤:
步骤一:客户端在网络上进行广播;
步骤二:服务器收到客户端的广播消息后向客户端发送响应消息,其中包括分配给客户端的网络参数;
步骤三:客户端向服务器发送下载操作系统镜像的请求;
步骤四:服务器向客户端传送其所需的操作系统镜像;
步骤五:客户端接收操作系统镜像,并将其加载,使得控制权切换到该操作系统;
此后,客户端像普通计算机那样完成用户发起的计算需求,计算在客户端本地进行,计算过程中可从服务器上按需获取所需的程序、数据、文档等资源。
18、如权利要求17所述的计算设备,其特征在于:所述步骤二和步骤三之间还包括以下步骤:
客户端向服务器请求下载操作系统选择菜单脚本程序;
服务器向客户端发送操作系统选择菜单脚本程序;
客户端执行收到的操作系统选择菜单脚本程序以提示用户进行选择;
此外,所述步骤三中客户端还向服务器传送了用户进行操作系统选择的结果。
19、如权利要求18所述的计算设备,其特征在于:所述的操作系统镜像中预置了一个服务器通过网络为客户端虚拟磁盘的客户端服务,服务器上也运行了一个相对应的虚拟磁盘的服务器端服务,使得客户端上程序运行中和运行后所产生的任何数据都可被临时或永久地缓存或存放于服务器的物理存储器中。
20、如权利要求17-19中任一个所述的计算设备,其特征在于:所述的操作系统镜像中预置了一个在客户端内存中为客户端虚拟出磁盘空间的服务,使得在客户端程序运行中所产生的任何数据都可被部分地临时存放于内存中,并可随时手工地、或者配置在客户端操作系统进行关机时自动地将该虚拟磁盘空间中的数据存放在服务器的存储器中。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100630647A CN1333339C (zh) | 2005-04-06 | 2005-04-06 | 基于透明计算的计算设备和方法 |
US11/184,466 US7467293B2 (en) | 2004-11-12 | 2005-07-19 | Method and computing system for transparence computing on the computer network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100630647A CN1333339C (zh) | 2005-04-06 | 2005-04-06 | 基于透明计算的计算设备和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1670698A true CN1670698A (zh) | 2005-09-21 |
CN1333339C CN1333339C (zh) | 2007-08-22 |
Family
ID=35041972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100630647A Expired - Fee Related CN1333339C (zh) | 2004-11-12 | 2005-04-06 | 基于透明计算的计算设备和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1333339C (zh) |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100418319C (zh) * | 2006-05-18 | 2008-09-10 | 清华大学 | 透明计算系统中端设备间数据的传送方法 |
CN101207565B (zh) * | 2006-12-22 | 2010-05-19 | 英业达股份有限公司 | 网络通讯方法 |
CN102314563A (zh) * | 2010-07-08 | 2012-01-11 | 同方股份有限公司 | 一种计算机硬件体系结构 |
WO2012048459A1 (zh) * | 2010-10-12 | 2012-04-19 | 北京中科院软件中心有限公司 | 远程终端运行环境的加载方法及系统 |
CN102622240A (zh) * | 2011-01-26 | 2012-08-01 | 卓望数码技术(深圳)有限公司 | 一种电脑终端及其透明操作方法 |
CN102664958A (zh) * | 2012-04-27 | 2012-09-12 | 中山大学 | 一种透明计算系统 |
CN102662884A (zh) * | 2012-04-16 | 2012-09-12 | 湖北盛天网络技术股份有限公司 | 一种基于网络的设备驱动程序配置方法 |
CN102739761A (zh) * | 2010-12-02 | 2012-10-17 | 微软公司 | 用于无连接传输协议的共享缓存器 |
CN102843397A (zh) * | 2011-06-23 | 2012-12-26 | 神讯电脑(昆山)有限公司 | 分布式硬盘自动拷贝系统及方法 |
CN101849228B (zh) * | 2007-01-16 | 2013-05-08 | 吉兹莫克斯有限公司 | 用于创建面向IT的基于服务器的Web应用的方法和系统 |
CN103488674A (zh) * | 2012-06-13 | 2014-01-01 | 卡西欧计算机株式会社 | 计算系统和计算系统的执行控制方法 |
CN103984246A (zh) * | 2014-04-14 | 2014-08-13 | 美的集团股份有限公司 | 可执行脚本的家电设备及其控制方法 |
CN104158857A (zh) * | 2014-07-25 | 2014-11-19 | 中南大学 | 一种提供网络化操作系统服务的装置和方法 |
CN104166586A (zh) * | 2014-09-04 | 2014-11-26 | 中南大学 | 一种基于虚拟化技术的透明计算方法及透明计算系统 |
US9049175B2 (en) | 2010-12-02 | 2015-06-02 | Microsoft Technology Licensing, Llc | Client-adjustable window size for connectionless transfer protocols |
CN105378664A (zh) * | 2014-04-16 | 2016-03-02 | 株式会社小松制作所 | 作业机械的信息处理装置、作业机械以及作业机械的信息处理方法 |
CN105488391A (zh) * | 2014-12-13 | 2016-04-13 | 哈尔滨安天科技股份有限公司 | 一种用于防御apt攻击的系统及方法 |
CN105760193A (zh) * | 2016-02-05 | 2016-07-13 | 飞天诚信科技股份有限公司 | 一种生产方法及装置 |
CN106096419A (zh) * | 2016-06-06 | 2016-11-09 | 北京壹人壹本信息科技有限公司 | 操作系统安全启动的方法、装置及系统 |
CN106126200A (zh) * | 2016-06-13 | 2016-11-16 | 房玮 | 一种能够远程引导客户端计算机的云计算系统 |
CN106126265A (zh) * | 2016-07-04 | 2016-11-16 | 南京金佰达电子科技有限公司 | 一种零客户端系统图形接口的产生方法 |
CN106254638A (zh) * | 2016-07-28 | 2016-12-21 | 湖南汇网通信息技术有限公司 | 基于透明计算的智能终端启动方法、系统及智能自助系统 |
CN106549976A (zh) * | 2016-12-09 | 2017-03-29 | 中南大学 | 一种适用于透明计算系统的用户身份认证方法及系统配置方法 |
CN106850677A (zh) * | 2017-03-17 | 2017-06-13 | 湖南新云网科技有限公司 | 一种基于透明计算的网络隔离方法、网卡、主板及终端 |
CN106856481A (zh) * | 2017-03-17 | 2017-06-16 | 湖南新云网科技有限公司 | 一种基于透明计算的网络隔离方法、系统、网卡及应用 |
CN107707656A (zh) * | 2017-10-10 | 2018-02-16 | 李梓彤 | 操作系统的远程加载方法及系统 |
CN108270846A (zh) * | 2017-12-19 | 2018-07-10 | 西安电子科技大学 | 一种云环境下支持安全操作系统动态部署的便携式装置 |
CN108604281A (zh) * | 2016-11-24 | 2018-09-28 | 华为技术有限公司 | 数据处理的方法及其终端 |
CN112860377A (zh) * | 2021-02-08 | 2021-05-28 | 广东微云科技股份有限公司 | 双系统共存方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6751677B1 (en) * | 1999-08-24 | 2004-06-15 | Hewlett-Packard Development Company, L.P. | Method and apparatus for allowing a secure and transparent communication between a user device and servers of a data access network system via a firewall and a gateway |
CN1178131C (zh) * | 2001-03-14 | 2004-12-01 | 明基电通股份有限公司 | 以模块化方式更新执行中应用软件的系统及其方法 |
CN1121008C (zh) * | 2001-09-07 | 2003-09-10 | 清华大学 | 一种网络环境下的计算机远程启动方法 |
CN1459738A (zh) * | 2002-05-21 | 2003-12-03 | 黄冠寰 | 漫游轻量用户端于广域网络中的系统与方法 |
CN1276348C (zh) * | 2003-01-15 | 2006-09-20 | 联想(北京)有限公司 | 无盘工作站自动升级方法 |
-
2005
- 2005-04-06 CN CNB2005100630647A patent/CN1333339C/zh not_active Expired - Fee Related
Cited By (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100418319C (zh) * | 2006-05-18 | 2008-09-10 | 清华大学 | 透明计算系统中端设备间数据的传送方法 |
CN101207565B (zh) * | 2006-12-22 | 2010-05-19 | 英业达股份有限公司 | 网络通讯方法 |
CN101849228B (zh) * | 2007-01-16 | 2013-05-08 | 吉兹莫克斯有限公司 | 用于创建面向IT的基于服务器的Web应用的方法和系统 |
US8510371B2 (en) | 2007-01-16 | 2013-08-13 | Gizmox Ltd. | Method and system for creating IT-oriented server-based web applications |
CN102314563A (zh) * | 2010-07-08 | 2012-01-11 | 同方股份有限公司 | 一种计算机硬件体系结构 |
WO2012048459A1 (zh) * | 2010-10-12 | 2012-04-19 | 北京中科院软件中心有限公司 | 远程终端运行环境的加载方法及系统 |
CN102739761A (zh) * | 2010-12-02 | 2012-10-17 | 微软公司 | 用于无连接传输协议的共享缓存器 |
US10057326B2 (en) | 2010-12-02 | 2018-08-21 | Microsoft Technology Licensing, Llc | Client-adjustable window size for connectionless transfer protocols |
US9049175B2 (en) | 2010-12-02 | 2015-06-02 | Microsoft Technology Licensing, Llc | Client-adjustable window size for connectionless transfer protocols |
CN102739761B (zh) * | 2010-12-02 | 2015-04-29 | 微软公司 | 用于无连接传输协议的共享缓存器 |
CN102622240A (zh) * | 2011-01-26 | 2012-08-01 | 卓望数码技术(深圳)有限公司 | 一种电脑终端及其透明操作方法 |
CN102843397A (zh) * | 2011-06-23 | 2012-12-26 | 神讯电脑(昆山)有限公司 | 分布式硬盘自动拷贝系统及方法 |
CN102662884A (zh) * | 2012-04-16 | 2012-09-12 | 湖北盛天网络技术股份有限公司 | 一种基于网络的设备驱动程序配置方法 |
CN102662884B (zh) * | 2012-04-16 | 2015-02-11 | 湖北盛天网络技术股份有限公司 | 一种基于网络的设备驱动程序配置方法 |
CN102664958A (zh) * | 2012-04-27 | 2012-09-12 | 中山大学 | 一种透明计算系统 |
CN103488674B (zh) * | 2012-06-13 | 2016-09-28 | 卡西欧计算机株式会社 | 计算系统和计算系统的执行控制方法 |
CN103488674A (zh) * | 2012-06-13 | 2014-01-01 | 卡西欧计算机株式会社 | 计算系统和计算系统的执行控制方法 |
CN103984246B (zh) * | 2014-04-14 | 2016-09-14 | 美的集团股份有限公司 | 可执行脚本的家电设备及其控制方法 |
CN103984246A (zh) * | 2014-04-14 | 2014-08-13 | 美的集团股份有限公司 | 可执行脚本的家电设备及其控制方法 |
CN105378664B (zh) * | 2014-04-16 | 2017-03-29 | 株式会社小松制作所 | 作业机械的信息处理装置、作业机械以及作业机械的信息处理方法 |
CN105378664A (zh) * | 2014-04-16 | 2016-03-02 | 株式会社小松制作所 | 作业机械的信息处理装置、作业机械以及作业机械的信息处理方法 |
US9535724B2 (en) | 2014-04-16 | 2017-01-03 | Komatsu Ltd. | Information processor for work machine, work machine, and information processing method for work machine |
CN104158857B (zh) * | 2014-07-25 | 2017-10-27 | 中南大学 | 一种提供网络化操作系统服务的装置和方法 |
CN104158857A (zh) * | 2014-07-25 | 2014-11-19 | 中南大学 | 一种提供网络化操作系统服务的装置和方法 |
CN104166586B (zh) * | 2014-09-04 | 2017-02-15 | 中南大学 | 一种基于虚拟化技术的透明计算方法及透明计算系统 |
CN104166586A (zh) * | 2014-09-04 | 2014-11-26 | 中南大学 | 一种基于虚拟化技术的透明计算方法及透明计算系统 |
CN105488391A (zh) * | 2014-12-13 | 2016-04-13 | 哈尔滨安天科技股份有限公司 | 一种用于防御apt攻击的系统及方法 |
CN105488391B (zh) * | 2014-12-13 | 2018-05-25 | 哈尔滨安天科技股份有限公司 | 一种用于防御apt攻击的系统及方法 |
CN105760193B (zh) * | 2016-02-05 | 2019-03-05 | 飞天诚信科技股份有限公司 | 一种生产方法及装置 |
CN105760193A (zh) * | 2016-02-05 | 2016-07-13 | 飞天诚信科技股份有限公司 | 一种生产方法及装置 |
CN106096419A (zh) * | 2016-06-06 | 2016-11-09 | 北京壹人壹本信息科技有限公司 | 操作系统安全启动的方法、装置及系统 |
CN106126200B (zh) * | 2016-06-13 | 2019-07-19 | 房玮 | 一种能够远程引导客户端计算机的云计算系统 |
CN106126200A (zh) * | 2016-06-13 | 2016-11-16 | 房玮 | 一种能够远程引导客户端计算机的云计算系统 |
CN106126265B (zh) * | 2016-07-04 | 2019-05-31 | 南京金佰达电子科技有限公司 | 一种零客户端系统图形接口的产生方法 |
CN106126265A (zh) * | 2016-07-04 | 2016-11-16 | 南京金佰达电子科技有限公司 | 一种零客户端系统图形接口的产生方法 |
CN106254638A (zh) * | 2016-07-28 | 2016-12-21 | 湖南汇网通信息技术有限公司 | 基于透明计算的智能终端启动方法、系统及智能自助系统 |
CN108604281A (zh) * | 2016-11-24 | 2018-09-28 | 华为技术有限公司 | 数据处理的方法及其终端 |
CN108604281B (zh) * | 2016-11-24 | 2020-09-08 | 华为技术有限公司 | 数据处理的方法及其终端 |
US11411956B2 (en) | 2016-11-24 | 2022-08-09 | Huawei Technologies Co., Ltd. | Data processing method and terminal |
CN106549976A (zh) * | 2016-12-09 | 2017-03-29 | 中南大学 | 一种适用于透明计算系统的用户身份认证方法及系统配置方法 |
CN106549976B (zh) * | 2016-12-09 | 2019-11-12 | 中南大学 | 一种适用于透明计算系统的用户身份认证方法及系统配置方法 |
CN106856481A (zh) * | 2017-03-17 | 2017-06-16 | 湖南新云网科技有限公司 | 一种基于透明计算的网络隔离方法、系统、网卡及应用 |
CN106850677A (zh) * | 2017-03-17 | 2017-06-13 | 湖南新云网科技有限公司 | 一种基于透明计算的网络隔离方法、网卡、主板及终端 |
CN107707656A (zh) * | 2017-10-10 | 2018-02-16 | 李梓彤 | 操作系统的远程加载方法及系统 |
CN108270846A (zh) * | 2017-12-19 | 2018-07-10 | 西安电子科技大学 | 一种云环境下支持安全操作系统动态部署的便携式装置 |
CN112860377A (zh) * | 2021-02-08 | 2021-05-28 | 广东微云科技股份有限公司 | 双系统共存方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN1333339C (zh) | 2007-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1670698A (zh) | 基于透明计算的计算设备和方法 | |
CN1311380C (zh) | 有助于从网络的移动设备中选择本地注册表主机的方法和系统 | |
US20060117172A1 (en) | Method and computing system for transparence computing on the computer network | |
CN1224905C (zh) | 在群集计算机系统中的执行资源动作的方法 | |
US8694578B2 (en) | Swarm-based synchronization over a network of object stores | |
JP7192103B2 (ja) | データ処理方法及び装置、及び、コンピューティングノード | |
RU2343536C2 (ru) | Механизм одноранговой широковещательной передачи информационного содержания | |
US20040268345A1 (en) | Software image creation in a distributed build environment | |
CN1617515A (zh) | 网络设备的简易动态配置 | |
US20120290643A1 (en) | Client-server system | |
CN1512389A (zh) | 动态服务注册表 | |
CN1596532A (zh) | 网络环境中对等通信的方法和系统 | |
CN1852502A (zh) | 一种集群系统中实现负载均衡的方法、系统和存储控制器 | |
WO2008068146A1 (en) | Operating system deployment in a peer-to-peer computing environment | |
CN1852105A (zh) | 一种实现端到端文件共享的系统及方法 | |
KR20120071205A (ko) | 가상머신 서버와 노드 운영방법 및 그 장치 | |
CN101778132B (zh) | 一种基于负载均衡的网络安装方法、系统及装置 | |
CN100347672C (zh) | 基于龙芯架构的透明计算设备的远程引导芯片及方法 | |
CN103747032A (zh) | 一种文件传输方法、设备和系统 | |
CN101064715A (zh) | 基于嵌入式系统的p2p技术实现 | |
CN1158617C (zh) | 一种本地无操作系统的网络计算机 | |
CN1475931A (zh) | 分配文件以及发送/接收分配的文件的系统 | |
CN1976310A (zh) | 在网络中通过总线接口进行通信的方法和系统 | |
US20100169271A1 (en) | File sharing method, computer system, and job scheduler | |
CN1238990C (zh) | 网络计算机的协作式启动方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070822 Termination date: 20180406 |
|
CF01 | Termination of patent right due to non-payment of annual fee |