鲁 慕 周
(张家口市交通局运输管理处,河北 张家口 075000)
目前,高校机群的主要任务集中在承担与计算机相关课程的教学实验上.除此之外,还承担着诸如培训考试、学生课外上机等一些社会服务工作.但是,机群管理事务繁杂、自动化程度有待提高[1];教学系统软件功能过于庞大;一些电脑厂家自带的机群管理软件又过于专业和繁琐.因此,开发一个集主流教学软件和多数机群管理软件特色于一体的系统,立足于更加便于机群管理者进行机群的日常管理,减轻管理人员负担,提高管理效率.
本系统采用C/S模式.被控端软件开机自动后台运行,达到防止被用户结束的目的[2].主控端软件采用系统管理模式,主要控制被控端的状态,它的主要功能包括用户登录、扫描客户端、保存客户端信息、学生签到、签到信息管理、发送消息、限制上网、远程关机、远程重启、远程唤醒、执行命令、禁用U盘等.本系统是一个运行在局域网上的系统,能够直观、方便、有效、可靠地管理通过局域网联在一起的所有计算机.实现机群管理工作的系统化、规范化.
经过系统的需求分析,初步得到了机群管理系统的主要使用流程:被控端开机自动启动服务端软件,主控端扫描并连接到被控端,向被控端发送命令,被控端执行,主控端查询学生签到情况.
经过对机群管理进行分析,本系统要实现的主要功能有:分角色进行登录;对局域网内的被控端进行扫描连接,保存被控端信息;实现学生签到,查看及签到记录,限制上网,远程关机等;实现远程唤醒,锁定电脑,解锁U盘禁用;实现后台运行,检测电脑空闲时间,检测U盘插入等.除了上述功能以外,机群管理系统还要具有友好、简洁的界面,可靠性要高,稳定性要强,能够满足用户的需求.
根据以上分析,得出系统用例图 如图1所示.
(1)用户搜索
管理员可以通过设置扫描范围,扫描局域网内已经启动被控端软件的电脑.可以保存已经连接过的被控端信息,也可以在填充最近一次保存的结果后进行试探性的连接被控端.这是本管理系统的基本模块,是实现远程控制[3]的基础.
(2)教学管理
图1 系统用例图
用户通过签到统计查看学生签到情况.本模块还支持教学中的信息发送,教师可以将一些提示信息发送给每一个被控端.另外教学中的上网限制也是必要的,能够起到一定的教学管理功能.同时,为了节约能源,方便教师在下课后关闭所有机器,还支持远程关机功能[4].
(3)机群管理
本模块支持管理员远程唤醒以及重启机器,便于统一管理电脑.执行命令功能,可以让被控端执行指定路径下的可执行文件.另外,为了方便机群开放管理,可以实现锁定电脑的功能,这时被控端电脑不响应任何操作.同时,还集成了解锁禁用U盘以及显示机器号的功能.
主控端功能模块图 如图2所示.
图2 主控端功能模块
被控端功能模块 如图3所示.
(1)被控端能够隐藏进程,在后台运行,只能在任务管理器里看到,防止被人恶意结束.
(2)检测电脑空闲时间,如果60分钟没有任何人动过电脑,电脑将自动关机.
(3)在禁用U盘功能启动的情况下,检测电脑是否有U盘插入,若有,则向主控端发出通知.
(4)显示签到对话框,输入学生信息.支持锁屏及解锁屏功能.并可以显示主控端发来的消息[16].
图3 被控端功能模块
机群管理模块主要实现锁定与解锁电脑、执行命令、解锁U盘、远程唤醒、显示机器号五个功能:
(1)锁定与解锁电脑.在被控端计算机连接到主控端的情况下,点击“锁定电脑”所有被控端计算机将弹出对话框,此对话不响应任何鼠标键盘消息,打到锁定电脑的目的.单击解锁电脑,对话框关闭,电脑恢复正常.
(2)执行命令.单击执行命令按钮,弹出对话框,通过按钮选择要执行的程序的完整路径.被控端判断路径文件是否存在,若文件或命令不存在则在操作记录中进行相关提示.
(3)解锁U盘.被控端默认执行的禁用U盘,当有U盘插入被控端电脑,系统将机器号及相关信息发送到主控端,通知管理员或教师.同时被控端计算机处于锁定状态.
(4)远程唤醒.首先将计算机的CMOS设置中开启网络唤醒的功能(现在大多数机器都支持此设置),将要唤醒的计算机信息添加主控端的列表中.点击远程唤醒后,主控端将以广播方式发送所有需要远程开机的MAC地址构造成的开机数据包,数据包中包含6个字节的FF以及循环16次的MAC地址.逐机发送,唤醒远程计算机.
(5)显示机器号.主控端扫描时为每台机器创建了机器号,同时发送给被控端计算机.被控端计算机将这个号码记录在全局变量中用于方便管理员定位被控端计算机.
被控端主要执行主控端发来的控制命令,另外,附加的特色功能,不需主控端计算机的控制.附加功能是:检测计算机空闲时间,隐藏运行程序.另外就是配合主控端的控制来实现的功能.
(1)检测计算机空闲时间.首先需要添加IdleUI.lib到工程,里面封装了获取计算机最后一次输入事件的时间的方法IdleUIGetLastInputTime(),然后再获取当前时间,算出计算机空闲的时间,如果空闲打到一个小时,被控端软件自动执行关机命令.
(2)隐蔽运行程序.被控端对话框运行时注册热键“ctrl+alt+u”,注册成功后调用隐藏对话框方法.这是,对话框运行,且任务栏及托盘处均没有显示.当按下ctrl+alt+u组合键后,弹出退出程序对话框,输入正确的退出密码后方能退出被控端系统.
对于本系统,本设计采用黑盒测试.做完一个模块,就进行测试,看所做的模块能不能实现所需要的功能.经过反复测试主控端和被控端均能正常运行,远程连接、签到功能、签到信息查询、远程关机重启唤醒、上网限制、发送消息、执行命令、锁定电脑、解锁U盘以及被控端的后台运行、检测空闲时间、等功能模块均可以正确调用.经过了先期的模块测试和后期的综合测试,本系统能够满足用户功能和性能的要求,实现了用户所需要的功能,达到了预期的要求.
本系统实现局域网远程连接功能后,教师或者管理员便可以通过扫描计算机来连接已经运行被控端的计算机.连接成功的计算机信息将会在主控端的列表中显示,方便管理者管理计算机.同时,为所要实现的功能模块预留出对应函数,以便与被控端系统共同实现相关功能.整个程序设计以保证功能的可靠性为依据.代码部分尽量避免逻辑错误,实现方法简单合理,尽量使程序具有较好的可读性,以便于其他的设计者对该程序的阅读.
主控端系统和被控端系统相互配合实现所需要的功能模块.这些功能建立在局域网远程连接的基础上,通过发送命令,接受命令,返回消息,处理消息等步骤实现远程控制的效果.最后,为了实现身份验证登陆,保存被控端信息,签到功能,为系统连接了数据库.其中,签到信息查询功能是将被控端发送过来的学生信息保存到数据库,教师可以输入时间来查看某个时间段签到学生的情况.另外,保存被控端信息功能在每次保存前会将数据库清空,保证数据库只保存最后一次的被控端信息.
参 考 文 献
[1]董日波.高校计算机机群管理系统开发与应用研究[J].电脑开发与应用.2012.25(9):3~5
[2]唐永红,龚安.运用winsock控件实现C/S网络通信.计算机系统应用.2006.4
[3]刘晋萍.面向对象设计与C++实现[M].科学出报社.2006.8.19~77
[4]张海林,杜忠友,姜玉波.Visual C++简明教程[M].电子工业出版社.2007.17~56