基于WEB的考核系统的研究.docx

上传人:b****2 文档编号:2133037 上传时间:2023-05-02 格式:DOCX 页数:16 大小:76.03KB
下载 相关 举报
基于WEB的考核系统的研究.docx_第1页
第1页 / 共16页
基于WEB的考核系统的研究.docx_第2页
第2页 / 共16页
基于WEB的考核系统的研究.docx_第3页
第3页 / 共16页
基于WEB的考核系统的研究.docx_第4页
第4页 / 共16页
基于WEB的考核系统的研究.docx_第5页
第5页 / 共16页
基于WEB的考核系统的研究.docx_第6页
第6页 / 共16页
基于WEB的考核系统的研究.docx_第7页
第7页 / 共16页
基于WEB的考核系统的研究.docx_第8页
第8页 / 共16页
基于WEB的考核系统的研究.docx_第9页
第9页 / 共16页
基于WEB的考核系统的研究.docx_第10页
第10页 / 共16页
基于WEB的考核系统的研究.docx_第11页
第11页 / 共16页
基于WEB的考核系统的研究.docx_第12页
第12页 / 共16页
基于WEB的考核系统的研究.docx_第13页
第13页 / 共16页
基于WEB的考核系统的研究.docx_第14页
第14页 / 共16页
基于WEB的考核系统的研究.docx_第15页
第15页 / 共16页
基于WEB的考核系统的研究.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于WEB的考核系统的研究.docx

《基于WEB的考核系统的研究.docx》由会员分享,可在线阅读,更多相关《基于WEB的考核系统的研究.docx(16页珍藏版)》请在冰点文库上搜索。

基于WEB的考核系统的研究.docx

基于WEB的考核系统的研究

基于WEB的考核系统的研究

Theresearchtotheexamsystemconcernedwithweb

萧山电大陈懿炜

摘要Summary

基于WEB的考核系统通过DCOM组件对象使客户机与服务器进行通讯,在WINDOWS环境下,服务程序的代码以动态连接库(DLL)的形式实现.基于IIS平台,结合ASP技术编写WEB页,使用ADO对象连接远程数据库,考试更灵活,功能更完善。

TheexamsystemconcernedwithwebcanmaketheserverandclientscommunicatebyDCOMobjects.Inwindows,thecodesofservingprogramcanberealizedwiththeformofDLL.TheexamsystemcanbemoreconvenientandperfectbyusingtheADOcombinedwithASPtechnologytoeditwebpagesbasedonISS.

[关键词]DCOMIISADOASP

1.历史上的考核系统

计算机无纸化考试替代传统的书面答题,从最初在DOS环境下操作,到后来在WINDOWS界面中,一直到如今的基于WEB的考核,这都是与计算机技术的飞速发展密不可分的.如今人们只要上了INTERNET,就可以足不出户的参加任何一次在网上的考试,我们在研究基于WEB的考核系统时,通过DCOM对象来实现客户/服务器模型的中间层.并使用了ASP(ACTIVESERVERPAGE)技术,使基于WEB的考试更灵活,功能更完善。

在考核系统的历史中,DOS环境下的考试无疑是最原始的,但就当时传统的书面答卷来说,也无疑是历史性的突破。

DOS环境下使用了NOVELL的LAN解决方案,考生从无盘工作站登陆服务器,就被映射到服务器上先前已分配给考生的一对一的共享目录下,考核系统作为一组共享的文件存放在服务器上另一共享目录下,考生在自己的目录中运行考核系统。

在这种模式中,五六十个考生一起对考核系统进行操作,势必使服务器性能骤然下降,减慢考试速度。

这受到当时软硬件技术的限制,随着计算机技术的飞速发展,WINDOWS32位系统的产生和推广,WINDOWS环境下的考试成为了可能,基于客户/服务器模型,考核系统应用程序被分给了客户机和服务器运行,在客户机和服务器上的应用程序一起协调工作以完成特定的任务。

客户/服务器结构需要两个实体来完成一个进程。

当客户机向服务器发出请求,服务器为客户机提供完成这个请求的服务。

例如:

一个SQL的查询过程是这样进行的:

客户机的应用程序发出一个SQL查询请求,服务器处理这个查询,并把查询的结果返回给客户。

这使得数据传输更有效,减少了网络的通讯量,并极大的提高了操作的性能。

但由于是客户/服务器结构,在每一台客户机上都要安装部分的应用程序,这使考前初始化考试环境的工作量大大增加了,浪费了很多人力和时间。

2.基于WEB的考核系统

2.1三层及多层客户/服务器体系

我们在研究基于WEB的考核系统时,也是构架客户/服务器结构之上,使用三层客户/服务器体系,即数据层,中间对象层,客户层。

体系结构见下图:

 

多层开发要优于传统的客户/服务器编程。

这是因为多层应用系统能够将客户/服务器应用系统的活力和框架与主机系统的健壮性和可伸缩性结合起来。

传统客户/服务器系统设计上的局限性之一,就是软件一般不能有效地分层处理。

客户/服务器软件常常是一体化的。

在一体化的软件中,不同类型操作的程序代码是混在一起的,这种代码都被编译为传统的WindowsEXE和DLL。

实践已经证明,一体化软件不能满足许多客户/服务器应用系统对灵活性和可伸缩性方面的要求。

在许多传统的客户/服务器系统中,对服务器软件的一个很小的修改,都会导致对客户软件进行大规模的更新。

对客户软件进行大规模的更新往往是由于EXE和DLL之间固有依赖性引起的,因而,在多层应用系统中,必须避免各层之间固有的依赖性。

要做到在更新某一层上的软件时,不必更新相邻层的软件。

基于WEB的考核系统的客户应用程序是一个WEB浏览器,运行在客户机上并只含有用户界面代码。

这样每次更新应用程序时都不必更新所有客户机。

当需要时,所有的用户接口及业务逻辑都可以从WEB服务器上以动态的HTML内容,Javaapplets,ActiveX控件,VBScript,JaveScript等等的形式下载。

而业务逻辑一般被移到中间对象层中,在考核系统中,中间层软件运行在其自己的计算机上。

事实上,将WEB作为客户/服务器应用程序的基础结构使用完全解决了软件分布的问题。

考核系统的中间层主要通过DCOM组件来实现。

2.2关于DCOM技术

分布式组件对象模型,亦称作DCOM。

DCOM是COM的扩展,它可以支持不同计算机上组件对象与客户程序之间或者组件对象之间的相互通信,使基于COM的组件在位于不同机器上的两个进程间协作。

对于客户程序而言,组件程序所处的位置是透明的,这样我们可以不必编写网络代码去处理分布式组件跨网络交互所需要的通信。

利用DCOM,就可以在服务器上放上实际功能,客户像在本地一样访问这些功能。

组件改变时,可以在服务器上一次替换,而不必到每台客户机上替换。

放好服务器组件后,所有客户机都得到更新。

DCOM组件建成在进程内(表示组件与所在应用程序运行在同一进程空间。

组件与所在应用程序共享相同地址空间。

进程内组件用DLL建立)或进程外(表示组件与所在应用程序不运行在同一进程空间。

组件与所在应用程序不共享相同地址空间。

进程内组件用EXE建立)服务器,仍然需要注册,但位于不同机器上。

组件在客户机机器上注册时,其实际地址信息包含组件在哪个远程计算机上运行。

利用这个信息,客户机软件知道连接哪

台计算机以访问该组件。

调用组件时,从编程人员角度看,就是生成DCOM对象的实例,和任何其它组件一样。

运行系统弹到注册处查阅正要建立的注册表中的组件项目。

假设它找到所要内容,则系统知道组件位于哪台机器上。

请求组件时系统连接网络上的这台机器,作出请求。

任何所需的数据都经过网络返回客户机软件。

而用户不必考虑通信机制和定位组件,这些均由操作系统处理。

可以说DCOM是一个高层网络协议,DCOM协议也被称为对象RPC(ORPC,objectremoteprocedurecall),它建立在DCERPC协议的基础上,可以用于各种基于组件的分布式系统。

ORPC建立了一套面对对象的远程调用规范,指定了如何在网络上进行调用、对对象的引用如何表示和维护。

ORPC同时可使用于Internet和Intranet网络环境中组件之间的通信。

在Internet和Intranet网络环境下,ORPC仍使用标准的RPC数据包,附加上专用于DCOM的一些信息—接口指针标识符(IPID,interfacepointidentifier)、版本信息和扩展信息—作为调用和返回的附加参数进行传递,其中IPID表示调用被处理的远程机器上特定对象的特定接口。

编程人员使用DOCM时,用某些变元调用接口上的方法。

DCOM中将方法调用变为RPC调用。

这里,过程等价与组件中的方法。

同样,DCOM接口上用方法调用DCOM服务时,内部变成远程过程调用,调用DCOM服务组件中的方法。

这种转变很容易,因为组件调用的机制与RPC调用的机制非常相似。

编程人员使用组件是,实际上是在查找接口描述的方法组。

编程人员使用RPC时,只查找其中一个方法。

过程也是由接口定义,因此RPC与组件调用之间的相似性是显而易见的。

差别在于组件调用使用的接口将方法组合在类的概念上,而PRC接口则不发生组合,每个方法有一个接口。

但我们在开发DCOM组件时并不需要直接在ORPC层次上进行开发,因为组件程序和客户程序实际上只跟存根代码和代理对象进行通信。

存根(stub)和代理(proxy)是COM的两个特殊组件。

存根位于服务器进程中,处理与客户机的通信。

代理位于客户机进程中,处理与服务器的通信。

在VC++中我们可以使用MIDL工具来产生代理/存根代码,MIDL是MicrosoftInterfaceDefinitionLanguage,即接口定义语言。

在开发DCOM组件时,只要编写每个自定义接口的IDL描述,然后用MIDL工具产生C源码,再经过编译连接得到代理/存根组件。

如果使用VB来开发DCOM组件将比VC++简单的多,VisualBasic环境隐藏了许多关于DCOM的细节。

2.2.1使用VB建立DCOM服务器

1.启动VB,在NewProject对话框中选择ActiveXDLL。

2.设置项目属性,我们使用无用户界面的单元线程。

3.设置类的属性,对类的Instancing属性设置。

这个属性确定其他应用程序是否生成组件

的实例,如何生成。

我们设置为MultiUse,表示其它应用程序可以生成这个类的实例组

件的一个实例可以生成类的多个实例。

(1)编程类,DLL接口,

通过声明公有变量来设置DCOM组件接口的属性

例:

PublicFailNumberAsBoolean准考证号是否存在

PublicNewNumberAsBoolean是否是新用户

PublicstrWindowsTitleAsStr生成Windows试题的题目

通过编写Function设置DCOM接口的方法

例:

InitSQLServer()初始化SQL数据库

InitStudentNumber()取得准考证号

CheckUsers()初始化考生目录

(2)编译DCOM组件选择File–>Makexxx.dll.

(3)手工注册DCOM组件,在NT上将这个DLL复制到WINNT的SYSTEM32目录下,并用Regsvr32对DLL注册。

2.3WEB考核系统动态HTML的实现

1.基于IIS平台和ASP技术我们可以灵活的编写动态WEB

IIS服务平台结构图

IIS是Microsoft的WEB服务器,它通过支持ASP,使得动态、交互的WEB应用程序开发迅速流行。

IIS对使用VBScript、JavaScript以及CGI等开发应用程序都提供了支持。

2.3.1ASP概述与模型

MicrosoftActiveServerPages(ASP)是服务器端脚本编写环境,使用它可以创建和运行动态、交互的Web服务器应用程序。

使用ASP可以组合HTML页、脚本命令和ActiveX组件以创建交互的Web页和基于Web的功能强大的应用程序。

ASP应用程序很容易开发和修改。

包含在WindowsNTOptionpack中的MicrosoftTransactionServer(MTS)可以降低在服务器上构造程序的复杂性和费用。

MTS可以解决开发那些保密性强的、可分级的以及可靠的Web应用程序的复杂性问题。

浏览器从Web服务器上请求.asp文件时,ASP脚本开始运行。

然后Web服务器调用ASP,ASP全面读取请求的文件,执行所有脚本命令,并将Web页传送给浏览器。

于脚本在服务器上而不是在客户端运行,传送到浏览器上的Web页是在Web服务器上生成的。

所以不必担心浏览器能否处理脚本:

Web服务器已经完成了所有脚本的处理,并将标准的HTML传输到浏览器。

由于只有脚本的结果返回到浏览器,所以服务器端脚本不易复制。

用户看不到创建他们正在浏览的页的脚本命令。

ASP提供内建对象,这些对象使用户更容易收集通过浏览器请求发送的信息、响应浏览器以及存储用户信息

(1)Application对象

可以使用Application对象使给定应用程序的所有用户共享信息。

(2)Request对象

可以使用Request对象访问任何用HTTP请求传递的信息,包括从HTML表单用

POST方法或GET方法传递的参数、cookie和用户认证。

Request对象使您能够访问发送给服务器的二进制数据,如上载的文件。

(3)Response对象

可以使用Response对象控制发送给用户的信息。

包括直接发送信息给浏览器、重定向

浏览器到另一个URL或设置cookie的值。

(4)Server对象

Server对象提供对服务器上的方法和属性进行的访问。

最常用的方法是创建ActiveX组件的实例(Server.CreateObject)。

其他方法用于将URL或HTML编码成字符串,将虚拟路径映射到物理路径以及设置脚本的超时期限。

(5)Session对象

可以使用Session对象存储特定的用户会话所需的信息。

当用户在应用程序的页之间跳转时,存储在Session对象中的变量不会清除;而用户在应用程序中访问页时,这些变量始终存在。

也可以使用Session方法显式地结束一个会话和设置空闲会话的超时期限。

(6)ObjectContext对象

可以使用ObjectContext对象提交或撤消由ASP脚本初始化的事务。

2.3.2使用form表单收集Web信息

使用HTML表单(form)是收集Web信息最常用的方法,是在Web页上提供用户界面控件的特殊的HTML标记的排列。

文本框、按钮和复选框都是典型的控件,这些控件使用户和Web页实现交互,并且将信息提交给Web服务器。

下面源代码产生一个表单,在表单中,我们通过ASP技术连接远程数据库,通过循环逐个读出数据库中的记录,并将其生成在HTML页中,这样用户可以进行12道选择题操作,用户只要在四个RADIO按钮中选其一,就完成了对一道选择题的操作,在这个表单中,包含了一个将这些信息提交给Web服务器的按钮。

<%

dimcode

code=1

whilecode<=12

whilenotrs.eof

%>

<%=code%>.<%=rs("Question_Title")%>

value=A>

<%=rs("Answer_One")%>

value=B>

<%=rs("Answer_two")%>

value=C>

<%=rs("Answer_three")%>

value=D>

<%=rs("Answer_four")%>

<%

code=code+1

rs.movenext

wend

wend

rs.close

myConnection.Close

%>

处理ASP输入的表单,在表格向Web服务器提交信息时,用户的Web浏览器请求用HTML

标记的ACTION属性所指定的.asp文件。

这个.asp文件包含了处理表单值(如显示结果表或从数据库查询信息)的脚本。

下面是我们处理提交信息的源代码:

<%

fori=1to12

ifisempty(Request.Form("qus"&i))then

stranswer=stranswer+"e"

else

stranswer=stranswer+Request.Form("qus"&i)

endif

next

%>

对每一个提交上来的信息Request.Form("qus"&i)进行分析,如果考生少做了一题那么这一题的答案被标识为"e",通过循环就处理了全部的数据。

2.4在WEB中调用DCOM组件

在ASP页上用Server.CreateObject创建的对象在该页的生存期内一直存在。

该对象对该页的任何脚本命令都是可访问的,当ASP处理完该页时,该对象即被释放。

因此,对象具有该页的作用域或生命周期。

在用VisualBasic或VBScript编程时,要注意在ASP处理完该页之前不要释放对象。

一旦在Session对象中存储了对象,您就可以从应用程序的任何页中访问该对象。

下面的语句使用session创建对象实例:

settool=Server.CreateObject("prjc.clsc")

setsession("objlace")=tool

当创建了tool对象后,我们把它赋给objlace这个session对象,这样在其他ASP页面中可

以把objlace这个session对象赋给另一个变量,在这个页面我们就可以使用开始时创建的组件了,例如:

setccc=session("objlace")

ASP程序只是在服务器上运行,我们的考核系统需要对客户机进行本地操作,这样我们必须知道DCOM的对外接口。

在DCOM模型中,对象本身对客户来说是不可见的,客户请求服务时,只能通过接口进行。

每一个接口都由一个128位的全局唯一标识符(GUID,GloballyUniqueIdentifier)来标识。

客户通过GUID获得接口的指针,再通过接口指针,客户就可以调用其相应的成员函数。

至于具体功能如何实现,则完全由对象的接口内部实现。

一般来说,接口是不变的,只要客户期望的接口在组件对象中还存在,它就可以继续使用该接口所提供的服务。

对象可以支持多个接口,因此对组件对象的升级可通过增加接口的办法实现,这样得到的新接口可以不影响老接口的使用。

新客户可使用新增的接口,老客户可在不更新代码的情况下继续使用。

新客户可使用新增的接口,老客户可在不更新代码的情况下继续使用老的接口。

客户如何来标识DCOM对象呢?

与接口相识,每个对象也用一个128位的GUID来标识,称为CLSID(classidentifier,类标识符或类ID),用CLSID标识对象可以保证(概率意义上)在全球范围内的唯一性。

只要系统中含有这类DCOM对象的信息,并包括DCOM对象所在的模块文件(DLL或EXE)以及DCOM对象在代码中的入口点(实际过程要复杂的多),客户程序就可以由CLSID来创建DCOM对象。

实际上,客户成功的创建对象后,它得到的是一个指向对象某个接口的指针,因为DCOM对象至少实现一个接口(没有接口的DCOM对象是没有意义的)。

所以客户就可以调用该接口提供的所有服务。

根据DCOM规范,一个DCOM对象如果实现了多个接口,则可以从某个接口得到该对象的任意其他接口,所以我们得到了一个接口指针后,它就可以调用该对象所有接口提供的服务。

从这个过程我们也可以看出,客户与DCOM对象接口只通过接口打交道,对象对于客户来说只是一组接口。

在基于WEB的考核系统中,我们使用CLSID来标识DCOM对象。

在网页中我们使用标记创建对象。

例如:

1DEF40CC-341A-11D4-BDAD-5254AB1C14D8codeBase=prjc.dll

height=31id=Teststyle="HEIGHT:

36px;WIDTH:

42px"width=35>

这样就可以使用由prjc.dll这个DCOM组件所创建的实例对象Test,下面是我们在考试系统中引用Test对象打开EXCEL习题的部分代码:

SUBBUTTON1_ONCLICK()

Test.InitSQLServer"ccc","ccc"

Test.InitStudentNumber<%=session("strNumber")%>

Test.ExcelEx

ENDSUB

在这段源码中,我们可以充分的看到使用DCOM组件的优点,它封装了程序代码,只提供使用对象的方法,这样使程序更加灵活,组织层次性更强。

而且由于使用了DCOM技术,对客户机的要求降低了,通过浏览器就可以实现考核。

2.5远程数据库的连接(ADO数据对象的使用)

ADO是为Microsoft最新和最强大的数据访问范例OLEDB而设计的,是一个便于使用的应用程序层接口。

OLEDB为任何数据源提供了高性能的访问,这些数据源包括关系和非关系数据库、电子邮件和文件系统、文本和图形、自定义业务对象等等。

ADO在关键的Internet方案中使用最少的网络流量,并且在前端和数据源之间使用最少的层数,所有这些都是为了提供轻量、高性能的接口。

之所以称为ADO,是用了一个比较熟悉的暗喻,OLE自动化接口,ADO数据对象也遵循了COM/DCOM接口规范。

ADO之所以具有强大的功能和灵活性,是由于它可以连接到不同的数据提供者并仍能使用相同的编程模式,而不管给定提供者的特定特性是什么。

ADO编程模型:

ADO的目标是访问、编辑和更新数据源,而编程模型体现了为完成该目标所必需的系列动作的顺序。

ADO提供类和对象以完成以下活动:

∙连接到数据源(Connection)。

可选择开始一个事务。

∙可选择创建对象来表示SQL命令(Command)。

∙可选择在SQL命令中指定列、表和值作为变量参数(Parameter)。

∙执行命令(Command、Connection或Recordset)。

∙如果命令按行返回,则将行存储在缓存中(Recordset)。

∙可选择创建缓存视图,以便能对数据进行排序、筛选和定位(Recordset)。

∙通过添加、删除或更改行和列编辑数据(Recordset)。

∙在适当情况下,使用缓存中的更改内容来更新数据源(Recordset)。

∙在使用事务之后,可以接受或拒绝在事务期间所作的更改。

结束事务(Connection)。

以下是在ASP页中使用ADO数据对象的源代码:

<%

no=session("strNumber")

sConnection="Provider=SQLOLEDB;UserID=sa;Password=;InitialCatalog="&dBase&";DataSource="&Address

setmyConnection=server.createobject("ADODB.CONNECTION")

myConnection.opensConnection

setrs=Server.CreateObject("ADODB.Recordset")

selectSQL="select*fromAnswer_TablewhereUserNumber='"&no&"'"

rs.openselectSQL,myconnection

stnumber=rs("SelectNum")

rs.close

setrs=se

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2