APP下载

基于WEB系统的在线学习时间统计问题浅析

2015-07-30刘瑞军

武夷学院学报 2015年9期
关键词:在线统计

刘瑞军

(武夷学院 实验室管理中心,福建 武夷山 354300)

基于WEB系统的在线学习时间统计问题浅析

刘瑞军

(武夷学院 实验室管理中心,福建 武夷山 354300)

摘要:基于WEB的网络在线学习系统逐渐成为教学的必要辅助平台,在线学习时间则为学习系统考核的重要参数指标,若要记录学习时间,必须通过某技术手段解决WEB的无状态性。分析了WEB的无状态性记录学习行为的问题,提出了解决问题的三种方法优缺点进行了对比,最终给出了统计在线学习时间的最佳方案。

关键词:在线;学习时间;统计;WEB

随着互联网逐渐发展普及,基于WEB的应用也在逐日增加,尤其是教育领域,如在线学习系统、在线考试、精品课程等各类教学资源网站逐渐成为日常教学的必要辅助平台,而学习系统是众多应用中应用最广泛、最普及的一种。学习系统中,必须要记录学员的学习行为,如统计学生在线学习时间、记录学生的学习内容等。WEB学习站点一般是基于HTTP协议,而HTTP是属于无状态管理,如何合理统计学员在线学习时间是学习系统中一个关键突破点。

目前,在线学习系统中基本都记录了学生的在线学习时间,但是由于所采用的技术和实现方法的不同导致在记录学习者在线时间的准确性上有很大的出入[1]。很少有专门文献对此类问题作出详细解释和说明,在文献1和文献5中,作者给出了在线教育系统的时间统计问题的解决方案,但没有利用底层数据库进行记录学生的学习行为,这与实际情况存在差异。本文将结合实际开发项目,对于此问题,提出了Cookies、Session和基于“心跳”算法结合底层数据库的思路给出解决方案,并根据实际项目开发,比较了三种方案的优缺点。

1 WEB无状态计时问题

1.1WEB系统运行机理

在线学习系统基于B/S结构进行开发,采用的是HTTP协议,而HTTP协议属于一种无状态协议,其运行机理如图1所示。

图1 HTTP运行机理图

从图1可以看出,WEB学习系统运行过程是基于HTTP协议进行通信,其执行的过程和原理如下:

(1)用户端使用浏览器通过HTTP协议对服务器提出访问某个页面的需求;

(2)服务器接收到访问请求,根据用户端的需求,将解析好的WEB页面通过HTTP协议以HTML格式传到客户端;

(3)用户端将服务器解析返回的HTML通过浏览器呈现到客户端。

1.2WEB应用系统中无状态问题

在图1中,用户端每次请求都是独立、互不关联的,客户端和服务器端不需要进行动态交互,每次执行过程和结果与在其之前、之后的请求均无直接关系,服务器只要根据用户端的请求解析返回,任务即完成,对于用户端的数据无需记忆,客户端也是,下一次的访问与这一次的访问没有直接的联系,对当前访问的页面也无需记忆,它是一种无状态状况。

在学习系统应用中,这种无状态就引来了问题:

(1)如图2所示,当有不同的用户(A、B、C、D)请求相同的页面资源(a.aspx),在无状态状况下,服务器是不会区分用户之间的区别,不会记忆用户的相关内容,服务器也就无法记录用户的学习行为和数据。

(2)如图3所示,当某个用户(E)登录学习系统进行学习,学习过程中,在不同的资源文件之间选择学习,但在无状态下,服务器并不知道请求a.aspx、b.aspx、c.aspx资源文件的是否是同一个用户,同样也记录。

图2 多用户访问统一资源

图3 某用户访问许多资源

通过上面的分析,在HTTP无状态协议下,是无法进行用户在线信息统计,如身份识别学习时间、学习行为等。

2 实现方案

对于学习系统而言,用户端和服务器端进行实时交互的,毕竟交互是需要承前启后的,学习系统要知道某个学生在线学习了多长时间,而HTTP本身是一个无状态的连接协议,为了支持客户端与服务器之间的交互,我们需通过某种技术解决HTTP无状态问题,从而保持HTTP连接状态,为交互存储状态。一般进行状态管理时有两个基本的选择:使用服务器端技术维护状态或在客户端维护状态[2]。

2.1基于客户端状态管理技术

基于客户端状态常用的管理技术有以下几种[3]:视图状态:Web窗体页提供ViewState属性作为内置结构,在对同一页的多个请求间自动保留值。视图状态作为页中的隐藏域来进行维护。

控件状态:ASP.NET页框架提供了ControlState属性作为在服务器往返过程中存储自定义控件数据的方法。例如,如果编写的自定义控件使用多个不同的选项卡来显示不同的信息,为使此控件能够按预期方式工作,控件需要知道在往返过程中哪个选项卡被选中。视图状态可用于此目的,但是开发人员可能在页面级将视图状态关闭,这实际上破坏了您的控件。与视图状态不同,控件状态不能被关闭,因此它提供了存储控件状态数据的更可靠方法。

隐藏域:是指在用户浏览器中不会显示的一个控件,但可以像对待标准控件一样设置其属性。当向服务器提交页面时,隐藏域的内容将在窗体集合中随同其他控件的值一同发送。隐藏域可用作一个储存站,将希望直接存储在页面中的任何特定的信息放置到其中。

Cookie:是由Web服务器发送出来存储在客户端设备上的小量信息,是把与用户和网站相关的信息存储比会话时间还长的一种方式,可以是临时的(具有特定的过期时间),也可以是永久的。当浏览器请求某页时,客户端会将Cookie中的信息连同请求信息一起发送。服务器可以读取Cookie并提取它的值。一项常见的用途是存储标记,以指示该用户已经在应用程序中进行了身份验证。

查询字符串:提供了一种简单而受限制的维护状态信息的方法,可以方便地将信息从一个网页传递给另一个网页。

2.2服务器端状态管理技术

基于服务器端状态常用的管理技术有以下几种[4]:

会话状态(Session):.NET中,使用会话状态保存每个活动的Web应用程序会话的值。会话状态是HttpSessionState类的一个实例。客户第一次请求并打开一个ASP.NET页面时,就开始了一个会话。一般会话状态有时间的限制,如果用户在规定时间内没有与服务器进行任何交互,会话将自动结束。

应用程序状态(Application):存储在一个键/值字典中,在每次请求一个特定的URL期间就会创建这样一个字典。可以将特定于应用程序的信息添加到此结构以在页请求期间存储它。一旦将应用程序特定的信息添加到应用程序状态中,服务器就会管理该对象。

应用程序状态是一种全局存储机制,可由Web应用程序中的所有页面访问。因此,应用程序状态可用于存储需要在服务器往返行程之间及页面请求之间维护的信息。例如,如果想计算网站的在线人数,那么可以将这个计数器变量保存在应用程序状态中。

会话状态与应用程序状态不同的是:会话状态的范围限于当前客户端用户。如果有不同的用户在使用应用程序,则每个用户会话都将有一个不同的会话状态。此外,如果同一用户在退出后又返回应用程序,第二次用户会话的会话状态也会与第一次不同。

配置文件属性:可让您存储特定用户的数据。此功能与会话状态类似,不同的是,在用户的会话过期时,配置文件数据不会丢失。配置文件属性功能使用ASP. NET配置文件,此配置文件以持久的格式存储,并与某个用户关联。因为放置在配置文件属性中的数据没有存储到应用程序内存中,所以这些数据在IIS重新启动或辅助进程重新启动后仍能得到保留,而不会丢失。此外,配置文件属性可以跨多个进程得到保持。

数据库方案:当存储特定用户的信息并且信息存储较大时,通常的做法是使用数据库技术维护状态。对于维护长期的状态或维护即使在服务器必须重新启动的情况下仍必须保留的状态,数据库存储尤其有用当存储特定用户的信息并且信息存储较大时,通常的做法是使用数据库技术维护状态。对于维护长期的状态或维护即使在服务器必须重新启动的情况下仍必须保留的状态,数据库存储尤其有用。

2.3解决方案

通过上述描述可知,状态管理可以采用服务器端和客户端技术进行维护,在在线时间统计上一般也是采用服务器端和客户端两种技术,常用的方案有如下几种[5]:

(1)“Cookie+数据库”方法

用户部分行为通过Cookie以文件形式保存在客户端,如用户名等,用户的核心数据保存到数据库中,如,用户一些隐私资料、在线学习时间等。当客户登录到学习系统时,系统将对其进行验证、记录,其过程如图4所示。

图4 Cookie方式工作过程图

(2)“Session+数据库”方法

当用户登录到学习系统,用户的行为通过Session保存到服务器,系统根据此信息将用户的学习情况实时更新到数据库中,其过程如图5所示。

图5 Session方式工作过程图

(3)基于异步通信的“心跳”算法

用户登录到学习系统后,在客户端使用JavaScript每间隔固定时间,通过异步通信(AJAX)发送请求到服务器,从而更新用户在线学习时间,同时服务器实时扫描登录到学习系统的用户,如果超时则修改用户状态,其过程如图6所示。

图6  Ajax方式工作过程图

2.4结果分析

三种方式均可以实现在线时间统计的功能,但每种方法的性能、精确度均不同。通过实际运行情况,下面分别从安全性、消耗服务器资源、扩展性和计时精确性等几个方面展开分析,如表1所示。

表1 分析对比

通过上述分析,可以看出,以上三种方式各有优缺,在实际使用中,可根据具体情况选择计时方案,如果系统用户较少,时间要求比较精确可以采用基于异步通信的心跳算法来完成,如果客户较多,在线时间要求不是非常精确则可以选择Cookie方法。

3 总结

就WEB在线学习系统的在线学习时间问题进行了讨论,分析了基于客户端和服务器端状态维护的特点并进行比较,阐明了其优缺点,基于此分析给出了统计WEB在线学习时间的三种解决方案,三种解决方案均可解决在线时间的统计问题,实际开发过程中可根据用户数量、网络带宽等客观情况,选择其中一种即可。

参考文献:

[1]李振华,程国忠.“学习过程跟踪”系统中在线时间统计功能的设计与实现[J].中国西部科技,2010(4):25-26.

[2]董梁,高猛.C#.NET技术内幕 [M]北京:清华大学出版社, 2006:336-356.

[3]殷玉法,李宝.ASP.NE客户端状态管理技术的分析与比较[J].电脑知识与技术,2007(6):1629-1630.

[4]殷玉法,李宝.ASP.NET服务器端状态管理技术的分析与比较[J].电脑知识与技术,2007(8):401,416.

[5]江军强,李展宗,王建志.在线考试时间控制技术的设计与实现[J].软件工程师,2015(2):35-36.

(责任编辑:叶丽娜)

中图分类号:TP393.09

文献标识码:A

文章编号:1674-2109(2015)09-0022-04

收稿日期:2015-05-23

基金项目:2012年武夷学院校科研基金项目(xl201008)。

作者简介:刘瑞军(1981-)男,汉族,讲师,主要研究方向:数据库应用、软件开发。

Analysis on the Statistical Learning Time Problem of Online Based on WEB System

LIU Ruijun

(Center of Laboratory Management,Wuyi University,Wuyishan,Fujian 354300)

Abstract:E-learning system is becoming essential teaching assistant platform,online learning time was an important learning system evaluation parameter,to record learning time,must be addressed web statelessness through some technical means.This paper analyzes the stateless web recorded learning behavior problems,put forward to solve the problem of the advantages and disadvantages of the three methods were compared,and ultimately gives the best statistical online learning time.

Key words:Online;learning time;statistical;WEB

猜你喜欢

在线统计
代表“在线”助力监督
综合气象业务在线培训考试系统设计
2008—2015我国健美操科研论文的统计与分析
山东省交通运输投资计划管理信息系统的设计
市场经济背景下的会计统计发展探究
统计信息化在企事业单位人力资源管理中的应用研究
信息化时代如何加强统计信息化管理
在线凝胶渗透色谱—气相色谱—串联质谱联用检测烟叶中的农药残留
MOOC综述与高校图书馆应对策略
基于ASP.Net的实时用工呼叫平台设计与实现