基于.NET的在线学习系统中的实时考勤方法研究

来源 :电脑知识与技术·学术交流 | 被引量 : 0次 | 上传用户:turobc
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:在线学习技术是现代教育发展的一个方向,如何有效地对学员进行管理也成为在线学习模式下一个亟待解决了问题。本文对在线学习模式下考勤管理进行了深入研究,针对在线学习中的学员流动频繁,考勤的实时性要求比较高的特点,以基于.NET的在线学习系统的实际开发为例,从考勤模块的总体设计到考勤信息的实时存取实现方法等方面进行了详细阐述。
  关键词:在线学习;E-learning;在线考勤
  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)20-30264-03
  
  Research of Real-time Attendance Method for E-learning System Based on .NET Framework
  XIONG Shu-feng, CHU Long-xian, LI Bo
  (Software College of Pingdingshan University, Pingdingshan 467000, China)
  Abstract: E-learning technology is the direction of modern education development. How to manage the students effectively in E-learning is the next problem that has to be solved imperatively. In this article, it had done a deep research for attendance management in E-learning pattern. The research took an E-learning system's actual development with .NET platform as an example and aimed at the characteristic that the students flowed frequently and the attendance required timeliness in order to expatiate the system design of attendance module and the accessing method of attendance information.
  Key words: online study; e-learning; online attendance
  
  1 引言
  
  目前,多数高等院校都架设了校园网,校园网不但是高校师生获取信息的便捷手段,也是提高办公效率, 实现无纸化办公的重要手段, 同时随着高等教育改革的进一步发展,建立在计算机网络基础上的“在线学习”技术(e-learning)正日益成为教育发展的一个方向, 在线学习技术的出现使得网络教学、远程教学成为可能[1]。在线学习系统中,以学员自主学习为主,但不排除个别学员旷课,迟到等情况。因此为在线学习系统增加一个考勤模块,便可以实时掌握学员的考勤情况[2]。本文结合实际应用,深入讨论在线学习模式下的实时考勤方法。
  
  2 考勤模块总体设计
  
  在实际应用中,考勤信息结构主要包括学号、姓名、登录时间、签到时间、位置、IP地址、班级号等。每天学员上课登录系统后,系统自动在签到用户列表中加入学员登录情况信息,登录流程如图1所示。
  当教师需要掌握学员考勤情况时,可以向学员发出指令要求学员点击系统提供的“签到”按钮。学员签到后,考勤信息表中“签到时间”和“位置”自动更新为当前时间和学员当前位置。考勤模块提供的主要方法及描述如下:
  (1)InsertOnlineUser():插入一条新的登录学员信息;
  (2)UpdateOnline():更新学员的签到时间和位置;
  (3)DeleteOnlineUser():删除一位学员信息;
  (4)ClearExptionUser():清除超时学员信息;
  (5)GetOnlineUserTable():获取满足条件的在线学员信息表;
  (6)GetPlace():获取学员当前所在位置。
  
  3 考勤信息保存方式
  
  目前WEB应用中对于用户在线状态的监控,通常使用session方式。session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构来保存信息。程序一般都是在用户做log off的时候发个指令去删除session,然而浏览器从来不会主动在关闭之前通知服务器它将要被关闭,因此服务器根本不会有机会知道浏览器已经关闭。服务器会一直保留这个会话对象直到它处于非活动状态超过设定的间隔为止。在线学习系统中对学员考勤信息的实时性要求比较高,无法使用session方式,因此信息表的保存方式是考勤模块实现过程中需要解决的一个关键问题。本文针对实时考勤的特点,提出了3种候选解决方法:
  (1)采用静态变量方式;
  (2)缓存数据表方式;
  (3)数据库存储方式。
  3.1 采用静态变量方式
  静态变量存放在内存的全局数据区,在程序整个运行期间都不释放,因此当在线学习系统执行服务时,可以使用静态变量保存用户考勤信息。首先定义在线学员数据结构,用于存储每一位学员的考勤信息,结构如下:
  public struct learner
  {
  public string number; //學号
  public string name;//姓名
  public DateTime lasttime;//签到时间
  public DateTime curtime; //登录时间
  public string ip;//IP地址
  public string location;//位置
  public int class_id;//班级号
  }
  其次,声明ArrayList类型静态变量_allusert和_activeuser,分别用于存储所有已登录用户和活动用户。当用户登录后,调用AddUserToOnline()方法将当前用户加入_activeuser列表。类中定义ClearExptionUser()方法,用于检测清理非活动用户(用户签到时间在某个时限之外,则被置为非活动用户),当用户签到时间超过时限时,调用MoveUser()方法,将用户从_activeuser转移到_alluser中。类中的其他方法执行时,首先调用ClearExptionUser()方法,清理非活动用户。
  asp.net应用程序运行在应用程序域中,每次应用程序域重启,程序中的静态变量都会重置。因此,此种方式稳定性受应用程序域影响。重启有很多原因,有些因素由服务器控制,也有些是网站原因,比如,网站的目录被修改,web.config 被修改等等。
  3.2 缓存数据表方式
  ASP.NET 提供了两种可以用来创建高性能Web应用程序的缓存类型。第一种叫做输出缓存,它允许将动态页或用户控件响应存储在输出流(从发起服务器到请求浏览器)中任何具备HTTP 1.1缓存功能的设备上。当后面的请求发生时,不执行页或用户控件代码,缓存的输出用于满足该请求[3]。第二种类型的缓存是传统的应用程序数据缓存,可以使用它以编程方式将任意对象(例如数据集)存储到服务器内存,这样应用程序可以节省重新创建这些对象所需的时间和资源。本文使用应用程序数据缓存。
  在类中定义方法BuildCacheOnlineTable(),该方法内声明一张DataTable,用于保存学员信息,并调用HttpRuntime.Cache.Add()方法将DataTable添加到HttpRuntime.Cache对象中,该对象具有依赖项、过期和优先级策略以及一个委托。类中声明一个OnRemove()方法,做为缓存被移除时的回调方法,在OnRemove()方法中向应用程序日志中插入一条记录,记录缓存被移除的时间及原因等。
  BuildCacheOnlineTable()部分代码如下:
  DataTable dt = new DataTable(); //声明数据表
  DataColumn col1 = dt.Columns.Add("ID", typeof(Int32)); //加入ID列,int类型
  col1.AllowDBNull = false; //不允许为空
  col1.AutoIncrement = true; //列值自动递增
  col1.AutoIncrementSeed = 1; //列起始值为1
  col1.AutoIncrementStep = 1; //增量为1
  col1.Unique = true; //唯一性约束
  DataColumn col2 = dt.Columns.Add("number", typeof(String));//加入“number”列,字符串类型
  col2.AllowDBNull = true;//不允许为空
  col2.Unique = true;//唯一性约束
  加入其余列的代码省略……
  HttpRuntime.Cache.Add("UserOnlineTable",dt,null,DateTime.Now.AddYears(10), TimeSpan.Zero, CacheItemPriority.Normal, callback);//將DataTable加入到缓存中
  关于HttpRuntime.Cache.Add方法的部分参数说明如下:
  UserOnlineTable: 用于引用该项的缓存键;
  dt: 要添加到缓存的项,及用户数据表;
  null:表示该项缓存没有依赖项;
  CacheItemPriority.Normal: 本次缓存对象的优先级为普通;
  callback: 在从缓存中移除对象时所调用的委托。当从缓存中删除应用程序的对象时,可使用它来通知应用程序。
  3.3 数据库存储方式
  第3种方式即采用数据库存储,将考勤信息保存到一张数据表中。根据待存储信息,最终设计的数据库表如图2所示。
  数据库表的访问通过DAL(数据访问层)层所提供的方法,包括数据库的连接,记录的增加、删除、修改等操作。部分代码如下:
  Database data = new Database();//初始化数据库操作类
  SqlParameter[] prams = {//sql语句参数的赋值data.MakeInParam("@UserID",SqlDbType.Char,16,userid), //输入参数userid
  data.MakeInParam("@UserName",SqlDbType.Char,50,username), //输入参数username
   ……
   };
  int retval = data.RunProc("proc_tbTmp_Insert", prams);//调用存储过程,插入用户信息
  
  当用户签到时执行UpdateOnline()方法,更新学员的签到时间和所在位置,每天学员登录时,程序自动调用DeleteOnlineUser()方法,删除前一天的学员考勤信息。教师或者管理员端调用GetOnlineUserTable()方法获取对应班级的学员考勤信息,可导出到Excel文件保存。
  在实际应用中,本文采用数据库存储方式。考勤情况如图3所示。
  
  4 结束语
  
  针对在线学习模式下的考勤管理,本文设计了实时考勤模块,并提供了三种方式处理学员考勤信息,其中静态变量方式存取速度比较快,但是由于多种因素制约,稳定性不高;缓存数据表方式稳定性取决于服务器的负载情况,当负载较时,缓存对象会被移除,由于有回调方法的机制,可以在缓存被移除时采取相应措施,对于提高稳定性有一定的作用。数据库存储方式访问速度与效率稍低,但稳定性方面优于前两者。最后,希望本文所做的工作能对在线学习系统以及智能考勤系统的开发人员有所启发。
  
  参考文献:
  [1] Henry P. E-learning technology, content and services[J]. Education + Training, 2001,43(4):249-255.
  [2] 黄丽雯,等. 智能考勤模式的研究与开发[J]. 重庆工学院学报,2007,21(1):110-112
  [3] http://msdn.microsoft.com/library/CHS/cpref/html/frlrfSystemWebHttpRuntimeClassCacheTopic.asp[EB/OL].
其他文献
摘要:本文简述了调制解调系统的发展现状及FPGA的相关知识,介绍了QDPSK调制解调系统的理论算法,提出了QDPSK解调调制系统的具体实现方法。  关键词:FPGA;QDPSK;调制解调技术  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)20-30237-03    The Research and Implementation of the Modem Techn
期刊
摘要:随着网络技术与计算机开发语言的发展,越来越多的程序员利用Java来编写网络程序。本文介绍了Socket的通信机制,并使用Java语言、套接字接口(Socket API)技术和多线程相结合的模式实现了多客户端与服务器的并发通信的多人聊天系统。  关键词:Java;Socket;多客户并发;网络通信  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)20-30253-
期刊
摘要:采用工作流技术,用户可以根据企业自身的实际业务流程来自定义工作流,从而实现业务流程的自动化。备件管理是每个企业都必须面对的环节,是企业ERP运行的重要组成部分。采用软件工程的方法,通过分析企业职能部门和用户的工作流程,结合工作流技术,按照特性要求和统一原则,采用层次化、组件化、松耦合思想设计并实现了通用型企业备件管理系统。  关键词:工作流;软件工程;层次化;组件  中图分类号:TP311文
期刊
摘要:在分析B语言和面向对象方法的基础上,提出一种具有面向对象特性的形式化描述语言B+,该语言克服原有B语言没有机制形式描述一系列实例变量和不确定的行为的缺点。  关键词:形式化;面向对象;B语言;B+  中图分类号:TP301文献标识码:A文章编号:1009-3044(2008)20-30267-02    An Object-oriented System Research Based on
期刊
摘要:企业经营规模的不断扩大使得传统工作流系统不能适应企业分布式经营的需求,但却促进了基于WEB的工作流系统技术的发展,在此基础上提出了基于.NET3.0的WEB工作流系统,分析了工作流技术的工作原理,给出了工作流元素的相关定义,并在此基础上设计了系统的架构,最后实现了一个企业业务流程的实例。  关键词:工作流; 工作流管理系统; 业务流程模型; Web  中图分类号:TP311文献标识码:A文章
期刊
摘要:教育技术未来的发展趋势之一将会是虚拟现实技术,其交互性、沉浸性和构想性是未来计算机在各领域中应用的理想因素。基于虚拟现实技术的教育、学习环境是实现对现实教学方法、思维方式、感知行为和控制手段等的模拟。本文通过国内外大量前沿应用实例,介绍并总结了虚拟现实技术在教育应用领域中的特点、应用和发展前景。  关键词:虚拟现实技术;教育技术;虚拟现实建模语言;三维  中图分类号:TP393文献标识码:A
期刊
摘要:随着网络的飞速发展,网上购物已经走入日常生活,因此各类在线网站开发一个方便、快捷和人性化的购物系统是非常必要的。而“购物车”在在线购物类网站中又是一项非常重要的功能。纵观ASP购物车功能的方法,目前比较常用的方法有Cookie、Session或者数据库等。通过对Cookie、Session和数据库三种方法的介绍与比较,从而得出各自的优缺点。  关键词:ASP;购物车;Session;数据库 
期刊
摘要:在企业级应用开发中存在着项目开发周期长,开发效率低,不能快速响应需求变化等普遍问题。而代码自动生成技术正是解决这些问题的有效途径之一。SSH架构目前是企业级应用中最广泛的J2EE架构之一,本文对基于该架构的代码自动生成技术进行了探讨,通过对开源框架AppFuse进行研究,提取出了其基于SSH架构的快速开发模块,对该模块进行了改进,进一步增强了其代码自动生成能力,并将改进后的模块应用于一权限管
期刊
摘要:本文设计了一种基于现场可编程逻辑器件FPGA计的多显示模式VGA接口。通过设计一种全新的分频算法,使该接口能支持从VGA到SVGA多达13种显示模式,在實际利用FPGA的嵌入式系统中能替代VGA专用显示芯片,节省了计算机处理过程,加快了数据处理速度,节约了硬件成本。  关键词:FPGA;VGA接口  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)20-30240
期刊
摘要:简要的介绍了UML建模技术,描述了公务员培训项目管理系统的设计与建模过程。在对系统进行需求分析的基础上,对系统进行需求模型、静态模型、动态模型的建模。  关键词:统一建模语言;培训项目管理;可视化;系统设计  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)20-20269-03    Application Study of UML in Train Proje
期刊