使用Socket组件开发C/S网络考试系统

来源 :硅谷 | 被引量 : 0次 | 上传用户:miyinghua
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要]目前,无纸化考试系统正越来越多成为一种普遍采用的考试手段,是对卷面传统考试的一种改革,由于考试品种的多样性,现阶段对于无纸化考试基本上都采用客户端/服务器模式,即我们普遍所说的C/S系统。以Delphi6.0作为开发C/S系统的开发工具为例,重点研究网络无纸化考试系统的开发思路。
  [关键词]C/S系统 Socket组件 套接字 Delphi
  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0220052-02
  
  一、引言
  
  网络无纸化考试系统作为一种新颖的考试手段出现在上世纪九十年代,是对传统卷面考试形式的重大改革,是为了克服传统考试形式所带来的一系列问题应运而生的,无纸化考试对于传统考试形式具有几大优势:
  1.减少资源浪费尤其是大量考试用纸张和印刷的浪费,实现“绿色”考试的理念。
  2.极大地降低了考试成本,尤其是考务人员的工作量可以大大降低。
  3.提高了考试的公平性和公正性,由于题库加密的因素,可以最大限度地保证考题的安全性。
  4.突破了地域限制,能最大限度地利用网络的优势实施异地考试。
  由于考试的特殊性,在多方面都有比较严格的要求,而根据地域的差异性,在组织考试的时候要充分考虑到影响考试正常进行的因素,例如题库的保密、网络线路的可靠与否等等,所以开发无纸化网络考试系统一般是在基于安全连接的TCP/IP协议上进行,而且,题库必须进行加密以确保考试的公平性。
  
  二、开发网络考试系统的基本思路
  
  (一)网络考试系统开发中主要采用的网络协议组件
  无纸化网络考试系统的开发是一个系统工程,根据考试的特殊性,我们通常要从考试的保密性、考试的客观性和考试的数据安全性方面考虑,归纳起来有如下几个问题:考试系统的题库组织工作,考试系统采用的网络安全保障,以及服务器、考试管理机、客户端的兼容性运行以及考试故障的数据恢复。
  在Windows中广泛采用TCP套接字作为连接的主要接口,TCP/IP协议的套接字接口有三种可选类型:流式套接字、数据报套接字和原始套接字,由于数据报套接字属于无连接服务,是不可靠的链接协议,而原始套接字只用于新网络协议的测试,因此,我们在考试系统中选用流式套接字作为网络协议基础。
  在Delphi开发系统中,TclientSocket是客户端Socket套接字组件,它负责实现客户端的协议基础,我们使用它作为考试客户端的主要组件,这个组件专门负责客户端与服务器之间的通讯,主要实现的功能是与服务器保持连接,收发题库和考生的答题,它的几个重要属性是:
  1.Address属性
  字符串型,它指明了要连接的服务器的IP地址。
  2.Host属性
  字符串型,它指明了要连接的服务器的主机名,不过它的优先级比Address高,如果同时指定了Address和Host属性,则Address将被忽略,当然,在开发考试系统时,我们通常只指定Address属性。
  3.Port属性
  整数类型,指定服务器的服务端口,一般避免使用系统默认端口0~1023,我们这里使用6000端口。
  4.ClientType属性
  枚举类型,本属性对组件影响较大,它指定客户端的Socket读写信息的方式。我们设定为ctNoBlocking。
  TserverSocket组件是服务器套接字组件,用于考试管理机服务端,它和TclientSocket组件的许多属性相似,不同的属性中比较重要的是TserverType,该属性也是一个枚举类型,它包括stNonBlocking和stThreadBlocking两个值,stThreadBlocking表示采用阻塞方式进行连接,在这种情况下,服务器会为每一个阻塞方式的链接自动分配一个新的执行线程,这样,即使某个客户端程序正在进行读写操作,其他客户端也不必等待。在考试系统的开发中,TserverSocket应该采用stThreadBlocki
  ng方式进行。
  (二)网络考试系统开发的基本结构的有关思路
  根据网络考试系统开发的要求,网络考试系统由考试服务器端、考试管理机端、考试客户机端、考试后台支持系统等软件组成。当然,根据考试的类型,还可由其他部分组成,如某些考试需要计算机模拟一些软件的运行环境,则另需一些模拟运行环境软件,本文仅讨论一般情况下,网络考试系统的组成框架,并不涉及某些专门考试类型,而且,考虑到目前的计算机的功能情况,本文将考试服务器端与考试管理机端合并在一起进行考虑。
  1.服务器与考试管理机端的设计思路
  服务器与考试管理机端在考试中承担了数据核心中转、考试管理的重要任务,所以,在整个考试系统中占有核心地位,目前在普遍使用的网络C/S考试系统中大都采用瘦客户端方式,也就是说,客户端仅担任考生考试平台的作用,主要的工作是由服务器和考试管理机来完成的。因此,服务器与考试管理机端软件的开发占有很重要的地位。
  仔细分析网络考试系统,可以考虑服务器与考试管理机端所承担的任务有:题库的管理与加载、考生库的管理与加载、考生的考试登录、考试异常情况处理、考试数据处理等等。因此,服务器与考试管理机端的软件框架如图:
  


  (1)题库管理模块
  负责对考试所涉及的题库的组织、加密和发送等工作,其中题库我们采用数据库的形式进行封装,根据不同的考试可以分为客观题和主观题两种,而在题目的编排上设计到题面和选项的组织,根据考试的规模,数据库可以采用SQL或Access,在Delphi中,基本上可以采用三种数据库引擎,即:ODBC引擎、ADO引擎以及Delphi自带的BDE引擎,考虑到兼容性和易用性等方面的要求,首选采用基于OLE技术的ADO引擎技术。使用Delphi自带的ADO数据库组件即可轻松实现上述数据库连接。主要使用TADOConnection和TADOQuery组件。TADOConnection负责数据库的连接,只需对其连接字符串正确设置即可完成连接,TADOQuery组件负责具体操作数据库,使用通用的SQL语言。
  (2)考生管理模块
  负责考生信息的登录、校验的工作,也是采用数据库方式进行管理,可以单独存放于考生数据库库中,对于小型的考试,也可与成绩库一起打包。
  (3)考试异常情况处理模块
  负责随时考生考试情况,客户端网络故障处理以及考生因机器问题的处理解决办法(移机考试或重新登录),它需要在整个考试过程中监视每一个客户端的情况,一发现客户端异常就要出现警告信息,以便于考务人员及时作出调整。
  (4)考试成绩处理与数据处理模块
  这是网络考试中的最后一道环节,它负责处理考生的考试成绩的加密与打包,考生考试中间数据的备份和上传。
  2.考试客户机的设计思想
  客户端承担着考生的考试平台,在与服务器的数据交换方面采用的组件主要也是TclientSocket组件,其监听端口与服务器设置一致,其工作方式采用ctBlocking模式,为可靠地进行与服务器的数据交换,客户端采用TwinSocketStream流方式进行读写。
  客户端的主要任务是建立一个友好的人机交互界面,由于采用瘦客户模式,因此,在一般的考试系统中,并不考虑在客户端设计考试评分环节,而是统一在服务器端进行评分。
  3.考试服务器、考试客户机数据通信协议的设计
  在Delphi中,即使TclientSocket和TserverSocket能够相互协调工作,但考虑到考试的特殊性,本考试系统在考试服务器和考试客户机之间仍应该设计一个完整的数据交换协议,以便于最大限度地减少考试数据的错误传递。所以,必须建立一个所谓的“令牌”规则,在服务器(或客户机)向客户机(或服务器)发送第n条数据流后,不应该马上发送第n+1条,而是在收到对方的“请求下一传送”的“令牌”后才能继续传送数据,根据这个思想,我们实际上在TclientSocket和TserverSocket的基础上开发了一个数据传送中间件供整个系统使用。
  
  三、考试系统开发中几个重要技术
  
  (一)组件开发技术
  在Delphi中,开发组件使用三种方法:继承、聚合和子类化,但是,不管什么方法,开发VCL组件都必须合理选择和使用好父类,因为中间件的属性和方法往往是继承自父类,使用轻捷的父类能有效提高开发效率,例如本文所提及的考试服务器和考试客户机之间的数据交换协议,我们就是分别继承自TclientSocket和TserverSocket。
  (二)挂钩技术的合理使用
  挂钩技术即我们俗称的“Hook”技术,Hook技术功能强大,它能成功地屏蔽系统事件,在考试系统的开发中,应该考虑到考生在考试中的各种操作习惯,甚至某些作弊手段,例如,为了防止考生有意无意地结束考试进程而导致考试无法进行,可建立键盘挂钩,监视Ctrl+Alt+Del键的情况,屏蔽任务管理器。
  (三)数据加密技术
  考试数据的加密无疑是考试安全的保障,对考试数据的加密是保证考试公平的有效手段,本文采用内存压缩流的方法就是针对数据加密而提出的解决方法,对于数据库的加密,也可考虑对关键数据实行高强度MD5加密方法进行。
  总之,无纸化考试系统将越来越多地使用在各种考试形式中,它对考试的更加公平、更加公正无疑起着重要的推动作用。
  
  参考文献:
  [1]罗小平,《Delphi精要》,电子工业出版社,2004年1月出版.
  [2]静海,《深入Delphi网络编程》,2001年10月出版.
  [3]朱蓉、张鼎,《基于Java Socket技术的网络考试模拟系统的开发》,《嘉兴学院学报》,2005.第17卷,第06期.
  [4]刘畅,《Socket技术在小型C/S应用程序加密中的应用》,《科技咨询导报》2007.第24期.
  [5]沈祥鸿、范云芝,《Delphi6.0与VB6.0中的Socket技术对比分析及集成》,《信阳农业高等专科学校学报》,2005.第15卷,第03期.
  
  作者简介:
  陈晓舟,江苏无锡人,江南大学工程硕士,无锡市广播电视大学讲师;林意,江苏无锡人,江南大学教授。
其他文献
[摘要]大型水利工程的建设过程中,由于当地居民整体上迁或公共道路设施建设,凿山建房形成大量新的人工高陡切坡,风化、侵蚀和雨水的作用,可能导致边坡失稳并进一步产生变形破坏,可能危及居民的生命财产和交通设施安全。以巴东县孔堡二组某一边坡为例,阐述了对于泥质边坡稳定性分析与评价的方法,并针对综合评价和稳定性分析结果提出尽量减少人工开挖,加强排水与一定范围加固相结合的综合措施。  [关键词]人工边坡 泥质
期刊
[摘要]生态水文过程影响因素众多,而且具有明显时间和空间变异性,目前,GIS在信息的动态获取、分析处理、可视化以及二次开发等方面的技术和方法取得了长足的进步,为实现生态水文过程研究提供有力支持。  [关键词]GIS 生态水文 模型  中图分类号:TB1文献标识码:A文章编号:1671-7597(2009)0220083-01    一、水文模型的管理    生态学、水文学等相关研究的深入和计算机技
期刊
[摘要]获得数学活动经验是新时期数学教学的目标之一,在数学课堂通过观察、感受、猜测、动手实践等活动体会、领悟数学知识,获得数学活动经验,为终身学习打下良好的基础。  [关键词]数学课堂 数学活动经验 观察 实践 尝试   中图分类号:G42 文献标识码:A 文章编号:1671-7597(2009)0220134-02    在全日制义务教育数学课程标准(实验稿)中[3],明确指出:获得数学活动经验
期刊
[摘要]对GSM无线网络的优化目标、优化的主要内容、优化流程以及优化手段进行探讨。  [关键词]GSM无线网络网络优化  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0220065-01    一、GSM无线网络优化的目标    移动无线网络优化是对的移动通信无线网络进行数据采集、分析,并找出影响网络质量的原因,通过频率调整、基站参数调整、路测分析调整等一系列调整措施,
期刊
[摘要]针对Visual Foxpro课程中存在的问题,提出在Visual Foxpro教学中采用案例教学法,并对实施案例教学的几个主要环节进行分析和研究。实践证明,案例教学法以学生为主体,能增强学生学习的积极性,有利于培养学生分析问题和解决问题的实践能力。  [关键词]Visual Foxpro 案例教学 职业教育  中图分类号:G42文献标识码:A文章编号:1671-7597(2009)022
期刊
[摘要]校园网在很多学校已经普及,可是很多校园网并没有在优化教学方面发挥作用。分析校园网的功能优势,解析借助校园网的一些教学模式,并在现代教育技术学课程中运用校园网的各个功能,灵活开展基于校园网的教学模式应用研究,做一些有效的尝试,优化教学过程,提高教学成果。  [关键词]校园网 教学模式 教学过程  中图分类号:G42文献标识码:A文章编号:1671-7597(2009)0220148-01  
期刊
[摘要]介绍调压器中触发器的微型计算机化,以及如何合理地利用单片机的定时、中断及位操作等功能。  [关键词]单片机 晶闸管交流调压器 触发器  中图分类号:TM4文献标识码:A 文章编号:1671-7597(2009)0220111-02    近年来,单片微型计算机技术迅速发展,价格便宜,为单片机在交流调压领域的推广应用提供了广泛的物质基础。目前研制的调压产品,都采用了微型机或单片机对其进行部分
期刊
[摘要]随着宽带网络深入千家万户,人们对简单的Internet上网已经不再满足。而网络应用内容的匮乏严重制约着电信运营商的宽带业务发展。而IPTV恰好是一种应用于宽带的全新业务,有丰富的内容,如果发展起来,不仅会将现有的宽带资源充分利用,同时还能提高宽带使用效率,也会促进越来越多的人使用宽带。结合襄樊电信宽带城域网现状,提出IPTV的实际应用部署方案。既有效利用现有网络资源,又满足新业务的需求。 
期刊
[摘要]VB程序设计是一门实践性和应用性较强的课程。在教学中,教师如何激发学生的学习兴趣,提高学生的编程能力,解决程序设计枯燥、难懂这一问题,是计算机教师非常关注的课题。从自身教学实践出发结合理论思考,就教学中存在的问题,提出几种解决方法,以促进VB程序设计的教学。  [关键词]VB 程序设计 编程能力  中图分类号:G42文献标识码:A文章编号:1671-7597(2009)0220160-01
期刊
[摘要]C语言程序设计是高校课程体系中的一门很重要的基础课程,作为一门非常有用的基础课程,它可以使计算机专业的学生很好的掌握程序设计基本思想,为后继其他计算机课程的学习和应用打下基础;对非计算机专业的同学来说,由于它是计算机二级考试所统一要求的课程之一,所以该课程也有很高的实际应用和学习价值。针对在C语言教学过程中难教也难学的特点,提出一些相应的创新教学理念。  [关键词]C语言程序设计 高校 教
期刊