AJAX+WMI在大学计算机基础模块化考试软件的应用

AJAX+WMI在大学计算机基础模块化考试软件的应用

刘海艳LiuHaiyan;陆映峰LuYingfeng;宋绍云SongShaoyun;殷凤玲YinFengling;万景WanJing

(玉溪师范学院信息技术工程学院,玉溪653100)

摘要:在分析AJAX和WMI软件结构的基础上,指出部分C/S结构的软件可以用AJAX+WMI实现为B/S结构的软件,用实际例子给出了实现的部分技术,对基于WEB的软件开发有一定的参考价值。

关键词:AJAX;WMI;C/S;B/S;软件开发

中图分类号:TP311.11文献标识码:A

0引言

由于B/S结构的软件具有:数据安全、容易维护、开发成本低等优点,而C/S结构的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器,对应的优点就是客户端响应速度快。用AJAX+WMI实现具有C/S结构的B/S软件,则具有两者之优点,下面我们用实际例子来证实AJAX+WMI结构的强大功能,并对C/S结构中的某些部分用B/S结构的实现,对基于WEB软件开发有一定的参考价值。

1WMI的结构

WMI是Windows2K/XP管理系统的核心;对于其他的Win32操作系统,WMI是一个有用的插件。WMI有许多用途,最重要的功能是对本地或远程计算机的管理。WMI允许用户通过一个统一的接口,用脚本语言访问操作系统的几乎任意一个部分。WMI体系结构由三个主层组成,

WMI脚本库:提供一组应用对象集,所在位置为:

%systemRoot%\system32\Wbem\wbemdisp.dll;

CIM对象管理器:用一个架构统一表示来自不同源的配置和管理信息,所在位置为:

%systemRoot%\system32\Wbem\winmgmt.exe

WMI提供程序:是与Microsoft管理控制台(MMC)的SQLServer配置管理器管理单元和MicrosoftSQLServer配置管理器一起使用的一个已发布的层。它提供了一种统一的方式,用于与管理SQLServer配置管理器所请求注册表操作的API调用进行连接,并可对选定的SQLServer服务提供增强的控制和操作,所在位置为:

%systemRoot%\system32\Wbem\*.dll;

公共信息模型(CIM)WMI存储库:是针对WMI的架构,构建构成计算机的硬件、操作系统和软件的模型,所在位置为:

%systemRoot%\system32\Wbem\repository\FS\objects.data。

在下面的基于学生能力培养的大学计算机基础的模块化考试软件中,用WMI实现在客户端根据服务器端提供的信息建立共享文件夹,并建立映射驱动器的方法。

2AJAX结构

AJAX即“AsynchronousJavaScriptandXML”(异步JavaScript和XML),AJAX并非缩写词,而是由JesseJamesGaiiett创造的名词,是指一种创建交互式网页应用的网页开发技术。Ajax技术之主要目的在于局部交换客户端及服务器之间的数据。

从广义上说,web应用至少涉及到如下的两个结构:

①后台以java语言表达的业务逻辑结构。②前台以html语言表达的界面表现结构。

Ajax的工作原理如图2所示,它相当于在用户和服务器之间加了一个中间层,使用户操作与服务器响应异步化。并不是所有的用户请求都提交给服务器。例如,—些数据验证和数据处理等都交给Ajax引擎处理,只有确定需要从服务器读取新数据时再由Ajax引擎代为向服务器提交请求。这样就把一些服务器负担的工作转嫁到客户端,利用客户端闲置的处理能力来处理,减轻服务器和带宽的负担,从而达到节约服务器的空间及带宽的目的。

3模块化考试软件实例

大学计算机基础课程的考试主要有两种方式:一种是全部采用纸介质形式的考试,这种考试的优点是可以对课程的理论部分的知识点进行测试,可以反映出学生对基础理论的掌握程度。缺点是试卷只有一份,难以避免学生作弊,且教师阅卷量大,最重要的是无法反映学生实际操作的能力。第二种方法是采用网络考试,可以分为理论考试和操作考试(例如,国家计算机等级考试),这样既可以考核学生基础理论部分,还可以考试学生实际操作的能力。为了充分发挥学生的独立思考能力、创造能力和运用能力,大多数的操作考试的试题规定的太“死”,为了机器阅卷的方便,很大程度上限制了学生的能力。所以操作考试试卷应摆脱以前考试的死板性,而给学生一个挑战及发挥的空间。下面我们介绍的模块化考试软件,可以避免上述的缺点。

3.1用WMI建立共享文件夹数据库中有试卷名称表、学生信息表、教师信息表、密码管理表等。Web服务器从数据库中读取学生信息中的学生姓名和学号,把姓名和学号传数据递给教师机,在教师机上为每个学生自动建立以姓名和学号为名称的学生文件夹,并共享每个文件夹。下面是通过WMI的Win32_Share类建立学生文件夹及共享文件夹的部分脚本如下。

strcomputer="."

ConstFILE_SHARE=0

ConstMAXIMUM_CONNECTIONS=100

SetobjWMIService=GetObject("winmgmts://"&strcomputer&"/root/cimv2")

SetobjNewShare=objWMIService.Get("Win32_Share")

setsys=createobject("scripting.filesystemobject")

fori=1tomycount

IfSys.FolderExists("d:\"&tfolder&"\"&maxtri(i))Then

Sys.DeleteFolder("d:\"&tfolder&"\"&maxtri(i))

endif

sys.CreateFolder("d:\"&tfolder&"\"&maxtri(i))

errReturn=objNewShare.Create("d:\"&tfolder&"\"&maxtri(i),maxtri(i),FILE_SHARE,MAXIMUM_CONNECTIONS)

next

上述脚本在本地计算机的D盘先建立以班级为名称的文件夹(tfolder),并在该文件夹下建立学生文件夹maxtri(i),数组maxtri(i)是从服务器学生数据库传递到教师机的学生姓名,并设置学生文件夹为共享文件夹。该脚本首先设置一对常量FILE_SHARE和MAXIMUM_CONNECTIONS。第一步,我们将值0分配给常量FILE_SHARE(它用于说明我们正在创建的共享资源的类型);如果我们将此常量的值设置为2147483648,则可创建一个管理共享而非标准文件共享。我们给常量MAXIMUM_CONNECTIONS分配100,该常量用于设置最大同时连接数。如果不限制同时连接的数量,我们根本不必使用此常量。我们在创建共享时保留此参数为空就行了。

连接到远程计算机上的WMI服务之后,再连接到Win32_Share类。此时,我们只需调用Create方法,传递以下五个参数:

①要共享的文件夹的本地路径。②“PublicShare”:共享文件夹的共享名。③“FILE_SHARE”:要创建的共享的类型。④“MAXIMUM_CONNECTIONS”:能够同时连接到共享上的用户的最大数量。⑤“共享说明文字”:可以为共享文件夹添加的说明。

3.2试卷分发共享文件夹建立好之后,用AJAX把试卷库中的文件(WORD、EXCEL、PPT)根据要考试的模块分配到每个学生文件夹中,脚本如下:

Setx=CreateObject("Microsoft.xmlhttp")

x.Open"GET","paper\"&myfile1A(ss),False

x.Send

Setmstream=CreateObject("Adodb.Stream")

mstream.Type=1

mstream.Open

mstream.Writex.responseBody

mstream.SaveToFile"d:\"&tfolder&"\"&maxtri(i)&"\考试题目.doc"

setmstream=nothing

setx=nothing

x是建立的xmlhttp的对象,用该对象的方法Open获得试卷库Paper中的试卷,并把试卷分发多学生文件夹中,名称为考试题目.doc(Word考试模块)。

3.3映射网络驱动器下面介绍Windows脚本宿主建立映射网络驱动器,Microsoft(R)Windows(R)脚本宿主为ActiveX(R)脚本引擎提供了一个不依赖于语言的脚本宿主。它为Windows32位平台提供了简单、强大,而且灵活的脚本化编程能力,允许通过Windows桌面或命令行来运行脚本。Windows脚本宿主非常适合用于某些需要非交互式的脚本化编程的场合。它具有以下功能:

①在屏幕上显示消息。②运行某些基本任务,例如CreateObject和GetObject。③映射网络驱动器。④连接到打印机。⑤获取与修改环境变量。⑥修改注册键。

教师机把本机IP地址保存到数据库中,学生机从服务器数据库中根据教学班级和授课教师获取教师端IP地址,然后学生输入学生姓名和学号,根据教师端的IP地址和共享出来的学生文件夹就可以用下列脚本与教师机建立共享驱动器。部分脚本如下:

strfileserverIP="\\"&document.all("ipadd").value&"\"

sname=document.all("song").value

strhomeshare=strfileserverip&trim(sname)'&"\"&struser

setobjnetwork=createobject("wscript.network")

setobjcheckdrive=objnetwork.enumnetworkdrives()

Alreadyconnected=false

Fori=0toobjcheckdrive.count-1step2

Ifobjcheckdrive.item(i)="H:"then

alreadyconnected=true

endif

next

Ifalreadyconnected=truethen

Objnetwork.removenetworkdrive"H:"

endif

Objnetwork.mapnetworkdrive"H:",strhomeshare',0,struser,strpassword

上面脚本中判断本机上是否已存在相同网络映射驱动器H,若存在则删除,否则根据服务器传递过来的IP地址strfileserverIP和学生姓名sname建立与教师机对应的文件夹建立映射网络驱动器。

4总结

在我们所设计的软件中,由于综合使用了AJAX+WMI,使得原来必须要用C/S结构才能做到的部分,现在用B/S结构实现了其功能,通过进仟人次的并发连接实验,效果极佳,仿佛是C/S结构的软件,为以后软件的再次开发或软件升级带来了方便。但该软件由于使用了未注册的组件,需要降低客户端IE浏览器的安全性,可以通过VBS脚本来实现。综合使用AJAX+WMI技术开发软件的方法,希望对开发基于WEB的软件有所帮助。

参考文献:

[1]李宁.JavaWeb开发技术大全—JSP+Servlet+Struts+Hibernate+Spring+Ajax[M].清华大学出版社,2009-5-1.

[2]梁文新,宋强.Ajax+JSP网站开发从入门到精通[M].清华大学出版社,2008-7-1.

[3]强锋科技,王嘉.Ajax经典案例开发大全[M].清华大学出版社,2007-6-1.

[4]AlainLissoir.UnderstandingWMIScripting[M].DigitalPress,2003.

[5]MarcinPolicht.WMIEssentialsforAutomatingWindowsManagement[M].Sams,2002-2-1.

标签:;  ;  ;  

AJAX+WMI在大学计算机基础模块化考试软件的应用
下载Doc文档

猜你喜欢