发明内容
本发明的目的是针对新模式网络计算机在操作系统启动过程中所面临的配置参数自动产生,分配和获取的问题,提出一种用于网络计算机配置参数的自动分配与获取方法,可以用于新模式网络计算机启动过程中配置参数的分配和获取完全自动进行,无须用户手工进行初始化,实现网络计算机的即插即用,完全对用户透明。
本发明提出的用于网络计算机配置参数的自动分配与获取方法,当客户端运行操作系统加载器下载全部或部分操作系统镜像到客户端内存后,使用本发明方法首先完成该客户端所需所有配置参数的值进行自动分配;此后在操作系统的加载过程中,如果需要某一配置参数,则再利用本发明方法,自动获取该配置参数的值。
本发明方法的实现步骤如图1所示,包括:
1)客户端向服务器发出配置参数分配请求;
2)服务器利用参数分配规则库和配置参数库,对该客户机配置参数进行分配,并将配置参数分配的结果消息返回给客户端;
3)客户端根据服务器返回的结果消息,作相应的处理:即如返回的消息为已经分配或分配成功消息,则继续执行第4)步骤;否则向用户报告错误并中断执行过程;
4)客户端在加载操作系统的过程中如需配置参数,则向服务器发出配置参数获取请求;
5)服务器查询配置参数库中该客户端配置参数的记录信息,并将查询结果消息返回给客户端;
6)客户端根据服务器返回的结果消息,作相应的处理:即如返回的消息为配置参数获取成功消息,则获得所需的参数值并继续执行第7)步骤;否则,向用户报告错误并中断执行过程;
7)客户端将服务器返回的参数值传递给操作系统加载器或操作系统;
8)上述步骤4)至7)根据需要反复进行,直到客户端所需配置参数全部获取完毕。
以上步骤的具体过程如图2所示,其中:
在上述的步骤1)中,客户端发出配置参数分配请求的具体步骤如下:
(1)以一个可以发出配置参数分配请求的特权用户登录服务器;
(2)向服务器发送客户端的唯一标识(比如在以太网中可以唯一标识一台客户端的网卡硬件地址),并请求分配该客户端的配置参数;
在上述的步骤2)中,服务器分配配置参数的具体步骤如下:
(1)验证特权用户的身份和密码,如果非法则拒绝下一步的操作;
(2)根据该客户端的唯一标识,在配置参数库中查询是否有该标识(客户端)的配置参数记录,如果有该标识的配置参数记录,则给客户端返回已经分配消息;如果没有该标识的记录,则执行下述的步骤(3);
(3)在参数分配规则库中,查询用户业已定义好的配置参数分配规则,并按照该规则为客户端分配配置参数库中定义的所有待分配配置参数的参数值(比如机器名,IP地址,网络登录名及登录密码等);
(4)服务器以排它方式打开配置参数库,并在其中为该客户端增加一条记录,并将该客户端的参数值写入该记录中;
(5)如果上述的步骤(4)执行成功,则给客户端返回分配成功消息;如果没有成功,则返回失败消息;
在上述的步骤4)中,客户端获取配置参数的具体步骤如下:
(1)以一个普通用户登录参数配置服务器,该普通用户只可以查询参数;
(2)向服务器发送客户端的唯一标识,以及所需查询参数的名称(比如机器名),请求获得该配置参数的值;
在上述的步骤5)中,服务器查询配置参数库的具体步骤如下:
(1)验证普通用户的身份和密码,如果非法则拒绝下一步的操作;
(2)根据该客户端的唯一标识,到配置参数库中查询该标识所对应的记录;
(3)将配置参数库中该记录里的相应参数值返回给客户端,并返回获取成功消息;
(4)如果上述过程中的任何一个过程失败,则返回获取失败消息。
上述步骤2)中的参数分配规则库定义了参数的自动分配规则,它是由用户在系统初始化的时候,预先设定的关于配置参数的取值范围,命名规则,以及分配规则。如果参数值为数值,则是定义其取值范围;如果参数值为字符串值,则定义其命名规则。分配规则可以为抢先占用,也可以为其它任何分配方式,如随机分配规则。
上述步骤2)和5)中的配置参数库可以为数据库,也可以为普通文件。但其中存储的数据一定是数据库记录的形式。它记录了各个客户端所分配的各种参数值。每台客户端是以其唯一标识来相互区分的。配置参数库可以用该唯一标识进行快速检索。
本发明的原理:
本发明方法主要用于在主板上设置有一个用于操作系统远程加载的远程启动芯片(ROM或Flash ROM)的新模式网络计算机。当新模式网络计算机被加电启动后,主板上的启动芯片将获得系统的控制权。存储在启动芯片中的远程启动协议将从服务器上下载全部或部分操作系统镜像,并利用网络计算机的本地资源加载运行该操作系统镜像。在加载运行操作系统的过程中,首先向服务器发出参数分配的请求,此后再在需要操作系统配置参数的时候,再向服务器进行获取。
本发明的主要特点技术效果:
本发明主要完成在上述操作系统的加载过程中,当需要获得操作系统参数(比如机器名,IP地址,虚拟盘映射目录或文件,网络登陆名及登陆密码等)以完成系统的配置时,如何由网络计算机通过与服务器交互而得到所需要的参数值,而不需要用户的手工输入。即在不需用户干预的情况下,自动分配和配置网络计算机启动过程中所需配置参数的参数值。
本发明可以实现网络计算机启动过程中配置参数分配和获取的完全自动进行。
在网络计算机第一次启动时,只要定义了参数分配规则,服务器将自动根据规则产生所需参数的参数值。由于参数的分配规则可以事先规划好,因此无须终端用户的干预;甚至也可以无需工程安装人员的干预,完全做到即插即用。
本发明利用网络服务技术来实现参数的自动分配和获取,避免了因为文件覆盖等传统方法所导致的安全性和共享冲突的问题。
本发明可以用于任意所需参数的自动分配和获取,可扩展性很强。
本发明的方法不依赖于任何操作系统。
具体实施方式
本发明提出的一种用于网络计算机配置参数的自动分配和获取方法结合实施例及附图进一步说明如下:
本实施例为新模式网络计算机远程下载运行Windows 98操作系统时的配置参数自动分配和获取方法。
本实施例以自动获得机器名,IP地址,网络登录名,以及网络登录密码为例进行说明。其他类型配置参数的自动分配和获取可根据情况按照该方法实现。
首先,按照新模式网络计算机运行的要求,设置好客户端和服务器。在该客户端上,设置用于操作系统远程加载的远程启动芯片(ROM或Flash ROM)。该服务器为普通PC机。服务器上安装Windows 2000操作系统,上面安装远程下载服务。此外,利用Windows 2000的共享文件系统为客户端运行Windows 98提供文件服务。
在本实施例的服务器上,还驻留有配置参数库,以及参数分配规则库。
本发明中所指的服务器在本实施例中实现为驻留在服务器上的一个守护进程。它监听网络号(例如:00000001)和端口号(例如:31028)。其服务名为NCSERVER。
配置参数库用于存放分配给已知客户端的配置参数分配情况。在本实施例中,采用表格记录的方法来进行参数的记录。
如下表所示。其中第一栏表示客户端的硬件地址ID。第二栏以后分别表示各个配置参数的名称及其参数值。
参数分配规则库存放参数的产生和分配规则。各种不同参数的产生和分配规则可能不一样。因此要根据不同参数的类型和参数值的范围来选择规则表示的方法,比如可以采用产生式规则。下面以机器名,IP地址,网络登录名以及网络登录密码为例分别加以说明。
机器名的产生和分配规则。机器名的产生可以利用客户端第一次请求参数配置时的先后顺序,按照顺序规则来产生。用户可以定义机器名的前缀,例如NC;顺序数字的位数,比如3位。根据这样的规则,第一台请求分配的机器得到的机器名将为NC001,第二台为NC002,依次类推。
IP地址的分配规则。IP地址只要定义分配的范围,以及分配的规则,比如是按照依次分配的原则,还是随机分配的原则。例如在本实施例中,IP地址的分配范围是192.168.0.10~192.168.0.90,采用顺序依次分配的方法。
网络登录名和登录密码与机器名的产生和分配规则一样,只要按照一定的规则进行产生和分配,保证不能冲突就行了。在本实施例中,网络登录名和登录密码采用和机器名一样的产生和分配规则。
当明确了参数分配规则库和配置参数库以后,服务器就可以按照本发明所述方法为客户端提供配置参数自动分配和获取服务了。在使用本发明来自动获取操作系统启动所需要的配置参数时,客户端机器不需要作任何更改。只要在服务器上修改客户端要下载的操作系统镜像,使其按照本发明的方法进行工作。
本实施例的具体实现步骤如下:
1)客户端向服务器发出配置参数分配请求;
在新模式网络计算系统中,当客户端从服务器上下载Windows 98启动镜像(该启动镜像可由相关的工具生成和修改),将加载运行Windows 98启动镜像,将启动到Windows 98的实模式状态。在本实施例中,客户端为了能进行和服务器的通信,加载网卡的实模式UNDI驱动,并初始化NWLink IPX/SPX协议。此后,就可以实现如下具体步骤:
(1)客户端以一个可以发出配置参数分配请求的特权用户登录服务器;
在本实施例中,客户端利用设定的服务名(例如:NCSERVER),网络号(例如:00000001)和端口号(例如:31028)向位于服务器上的参数配置器发送用户名(例如:ncauconf)和密码(例如:ncauconf),请求身份验证。
(2)客户端向服务器发送自身的唯一标识,并请求分配该客户端的配置参数;
在本实施例中,客户端在身份验证通过后,向服务器发出配置参数分配请求。该请求中隐式包含该机器的MAC地址。
2)服务器利用参数分配规则库和配置参数库,完成该客户端的配置参数的分配,并将配置参数分配的结果消息返回给客户端;
其实施步骤如下:
(1)服务器验证特权用户的身份和密码如果非法则拒绝下一步的操作;
在本实施例中,如果发送的用户名和密码为ncauconf,则进行下一步的工作,否则终止执行。
(2)根据该客户端的唯一标识,在配置参数库中查询是否有该标识的配置参数记录,如果有,则返回已经分配消息否则执行步骤(3);
在本实施例中,服务器首先将获得客户端的硬件地址(即每台机器唯一的ID)。在多个机器同时请求的情况下,服务器要缓存用户的请求,或者采用多个线程来服务的办法。但一定要注意参数配置库操作的并发性控制。在本实施例中,采用先来先到的服务方法。服务完一个机器发来的请求后,再服务下一台机器发送过来的请求。服务器根据客户端的ID,在配置参数库中查询是否已经存在一条该ID的记录。如果存在,则表明已经为该ID产生和分配了相应的参数值。则服务器给客户端返回已经分配消息。
(3)在参数分配规则库中,查询用户已经定义好的参数分配规则,并按照该规则为客户端分配所需要的配置参数的值;
在本实施例中,如果在配置参数库中没有查询到该ID的记录,服务器则打开参数分配规则库,根据参数的分配规则为该ID分配相应的参数值。本实施例中的参数分配规则如前所述。为了加快速度,避免参数值重复分配,在本实施例中,将已经根据规则产生的并分配的参数值在参数配置库中进行记录,加快参数分配时的检索速度。
(4)服务器在为该ID分配好各种参数的参数值后,以排他方式打开参数配置库,向其中增加一条该ID的参数分配记录。
(5)服务器如果分配和写入参数配置库获得成功,则给客户端返回分配成功消息。如果因为参数规则库中参数分配规则的原因或其他原因导致参数分配不成功,则给客户端返回失败消息,并给出失败的原因。比如参数规则失败,从而提醒系统管理员调整参数分配规则。
3)客户端根据服务器返回的结果消息,作相应的处理;
在本实施例中,客户端如果得到已经分配或分配成功消息,则继续执行,并将控制权返回给调用者。否则,则中断执行,并将错误反映给用户。
4)客户端在加载操作系统的过程中如需配置参数,则向服务器发出获取请求;它包含以下两个步骤:
(1)客户端以一个普通用户登录服务器;
在本实施例中,客户端已利用设定的服务名(例如:NCSERVER),网络号(例如:00000001)和端口号(例如:31028)向位于服务器上的参数配置器发送用户名(例如:ncgetpara)和密码(例如:ncgetpara),请求身份验证。
(2)客户端向服务器发送客户端的唯一标识,以及所查询配置参数的名称;
在本实施例中,客户端在身份验证通过后,向服务器发送该客户端的MAC地址,以及需要获取的配置参数名(MName)。
5)服务器查询配置参数库中的配置参数记录信息,并将查询结果返回给客户端;它包括如下步骤:
(1)服务器验证普通用户的身份和密码,如果非法则拒绝执行下一步;
在本实施例中,如果该请求的用户名和密码都为ncguest,如果验证通过,则继续进行下一步;否则返回错误信息。
(2)服务器根据客户端的唯一标识,到配置参数库中查询该标识的记录;
在本实施例中,服务器将首先获得该客户端的MAC地址,然后用它作标识去查询配置参数中的记录;
(3)服务器将查询到的相应配置参数值返回给客户端;
在本实施例中,如果查询到了该客户端的配置参数记录,则取出所需配置参数(MName),并将该配置参数的参数值返回给客户端;
(4)如果上述过程中的任何一个过程失败,则返回获取失败消息;
6)客户端根据服务器返回的消息,做相应的处理:即如果返回的是参数获取成功信息,则继续获得其他参数的参数值,否则就返回失败。
在本实施例中,首先获取的是机器名(MName)的值;如果得到获取成功消息则继续执行;
7)客户端将配置参数的值传递给操作系统镜像或操作系统;
这一步根据参数的类型不一样,传递的方法也不一样。在本实施例中,机器名的传递方法如下:
利用所获得的机器名(比如NC001)生成一个注册表文件(Autoname.reg),包括以下内容:
表明机器名的注册表项:
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP]中″ComputerName″的值为″NC001″;
表明机器名的另一注册表项:
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ComputerName]中″ComputerName″的值为″NC001″;
然后利用regedit.exe工具将该注册表导入到Windows 98的注册表中。这样,就完成了机器名的获取;
8)上述的过程4)到7)根据需要反复执行,直到客户端所需要的配置参数全部自动获取完毕;
在本实施例中,还需要获取用户登录名和登录密码,以及IP。
在获取用户登录名的实施中,4)到6)步与获取机器名的实施类似,只是配置参数名为Yhmc;在实施例中,用户名为NC0001;
在第7)步中,生成的注册表文件(Autoyhmc.reg),包括以下内容:
表明当前用户的注册表项:
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control]
中″Current User″的值为″NC001″
表项[HKEY_LOCAL_MACHINE\Network\Logon]
中″username″的值为″NC001″
表明网络登录名的另一个注册表项:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Winlogon]中″username″的值为″NC001″
然后利用regedit.exe工具将该注册表导入到Windows 98的注册表中。这样,就完成了登录用户名的获取。
在获取用户登录密码的实施中,4)到6)步与获取机器名的实施类似,只是配置参数名称为Yhmm;在实施例中,用户登录密码为NC0001;
在第7)步中,生成的注册表文件(Autoyhmm.reg),包括以下内容:
表明当前用户登录密码的注册表项:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Winlogon]中″DefaultPassword″的值为″NC001″;
为了实现自动登录,还需增加如下的内容:
表明自动输入用户登录名和密码的注册表项:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Winlogon]中″AutoAdminLogon″的值为″1″;
表明自动输入登录名和密码的另一个注册表项:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices]中″AutoLog″的值″RUNDLL32.exe TWEAKUI.CPL,TweakLogon″;
然后利用regedit.exe工具将该注册表导入到Windows 98的注册表中。这样,就完成了用户登录密码的获取。
在获取机器IP的实施中,4)到6)步与获取机器名的实施类似,只是配置参数名称为IP;
在第7)步中,将IP传递给操作系统的方法有两种。一种是替换原有Windows98系统的DHCP客户端模块,使其能够按照本方法获得IP地址;另一种是实现为一个驱动程序,它可以向内核传递IP参数。
本发明是基于网络技术的配置参数自动产生,分配,以及获取的方法。本发明克服了现有方法在操作系统参数加载中对配置参数类型的限制,也克服了使用文件覆盖方法所带来的安全性和共享冲突的问题。同时,由于增加了参数的自动产生和分配规则,无须用户手工进行初始化。本发明做到了网络计算机的即插即用,并做到了完全对用户透明。