基于私有云的在线学习交流平台的设计与实现*

2023-02-27  

*基金项目:江苏省现代教育技术研究课题(2022-R-100280)

本文引用地址:

自新冠疫情爆发以来,全国高校逐渐进入停课不停学的状态,高校的授课方式也由线下教学转变为。在线学习最早由《美国教育白皮书》提出,是指通过计算机和互联网等新技术形式进行知识内容传播和便捷学习的新型教育方法[1]。在国内,慕课网[2]、职教云等各类在线学习平台的出现,也为高校实现提供了技术支撑。在线学习为学生提供了丰富的学习资料和多样化的学习方式,逐渐成为学生获取知识的有效手段之一。为了研究在线学习是否能够普及使用,有学者开始组织学生对在线学习、和模块化教学进行评价[3]。结果显示,有部分学生对在线学习体验不满意。其主要原因包括:1)环境与技术因素。例如基础条件不足, 同时缺乏互联网使用经验以及必要培训[4];2)在线教学过程中仅能够在线留言和回复,无法对学习内容进行实时。

为了解决这些问题,学者们也进行了探索。刘小英[5]等提出通过WebSocket 通讯技术,实现实时,提高了师生互动性;安磊[6]等开发了一个基ThinkPHP框架的远程学习平台, 实现了网上交流和资料下载;张国平[7]开发了适用于软件工程专业的学习交流平台,实现了学生从被动听讲到主动参与的转化。学者们的这些工作,在一定程度上解决了在线学习过程中的交流问题,在经济发展较好的地区及高校能够快速地推广使用。然而,这些信息化系统通常需要一定的硬件条件支撑,有些还需要较高的系统配置才能够使用,同时还需要一定的后期维护。在一些基础条件不足的高校,可能无法进行此类学习交流平台系统的建设。

随着云计算平台的不断发展,对于基础设施的要求逐渐降低。因其具备虚拟性、可靠性、通用性、可伸缩性、按需使用等特点,使其在数据安全、计算效率、经济成本等方面都有巨大的优势。因此,使用云平台构建定制化的数字系统也逐渐被各企事业单位所接受。私有云作为一种单独为企事业单位创建的云服务,只为企事业单位内部用户使用,最大程度地增加了数据的安全性。本文主要将私有云技术应用到在线学习交流平台中,以期用比公有云更低的经济成本,满足高校学生在学习过程中的实时交流需求,同时为高校的信息化建设提供参考。

1   需求分析

本系统主要目标为构建学习问题交流、分享发布学习资源、学习资源管理的在线交流平台。根据用户需要,系统主要涉及三种角色: 学生、教师和管理员。

1)学生用户具有维护个人基本信息;查看各类通知公告;浏览课程资料、教师资料;浏览课程进度;针对课程信息的交流、留言;针对课程或某一问题创建、编辑、加入和退出;课程相关资源的上传下载等功能。

2)教师用户除学生用户的功能外,还具有通知公告的编辑;课程资料编辑;课程大纲、教案、先导和后续课程的编辑等功能。

3)管理员用户可以使用平台的所有功能,除学生和教师用户的功能外,还具有基础信息维护[8](包含院系、专业、班级、课程、学生、教师等基础信息的初始化及导入导出);系统的基础管理;数据字典的设置;学习资源的审核管理等功能。

2   系统设计

2.1 系统架构

本系统包含基础设施层、服务管理层和用户层,其平台架构图如图1 所示。基础设施层将多台服务器资源进行整合和存储,由服务管理层对用户数据进行管理,在用户层进行结果展示。

image.png

1)基础设施层:基础设施层位于云平台的最底层,包括构成云计算平台的基础硬件设施、系统虚拟镜像、数据管理服务及网络服务等模块。该层负责采集物理节点的存储、网络、内存等资源,通过虚拟化技术将资源进行处理并整合为统一资源池。资源池内部根据用户的需要进行动态调整,为系统运行提供了基础保障。

2)服务管理层:服务管理层为系统的核心层,采用模块化设计,为平台提供支撑,其数据资源来源于基础设施层。具有元数据服务、资源库服务、数据计算服务、在线交流平台系统门户服务等模块。通过服务管理层实现在线学习交流系统的开发、配置、维护等。学习交流资源存储在云端,学生可以便捷的上传和下载。

3)用户层:用户层一般由浏览器构成,包含PC 端浏览器和移动端浏览器。用户根据请求地址对数据资源进行请求操作,数据经由基础设施层和服务管理层的处理,最终以友好的方式向用户展现。

2.2 私有云设计

云平台构建采用基于 的IaaS 架构, 云计算平台的优势在于模块耦合度低、组件灵活配置等[9]。云平台构建时使用 中的核心组件及其功能如表1 所示。

image.png

云平台用户经由Keystone 认证,使用Horizon 的UI界面创建虚拟机,镜像服务由Glance 提供。由Neutron进行IP 地址的配置,再由Cinder 为虚拟机实例提供块存储。本系统使用五台物理机,具有网络节点、控制节点和计算节点,网络节点配置如表2,组网结构如图2。

1677481168151605.png

1677481226286278.png

2.3 系统功能设计

在线学习交流平台具有在线论坛和系统管理两个模块。在线论坛主要包括:在线学习、论坛板块列表、论坛帖子列表、帖子交互(包括回复、引用、点赞、收藏等)、热门内容(时间段内讨论最多的问题)、关键字搜索等功能;系统管理主要包括[10]:论坛板块管理、论坛帖子管理、管理、学习资源管理(审核资源合法性)、初始化管理、通知公告和系统管理等模块。具体系统功能结构如图3 所示。

1677481276728262.png

1)课程资源管理

课程资源由授课教师进行编辑维护。教师负责维护课程的课程标准、教学大纲、教学设计、课程知识点、教学课件、课后习题等必要资源。对于多个教师同时教授一门课程时,可以同步维护课程资源。

2)资源上传下载

用户可以按照课程维度和知识点维度,自由上传和下载相关学习资源。上传资源类型支持Word、PPT、Excel、PDF、MP4、AVI、MOV、WMV 和RMVB 等。对于上传的学习资源,可以选择公开或独有,但公开的学习资源,需要经过管理员审核后才会被其他用户所见。

3)资源在线学习

用户可以自由查看课程相关资源,资源支持在线浏览学习,同时开始记录学习时长。对于用户浏览的非视频资源,系统每隔15 min 检测一次客户端是否活跃。当发现用户无任何交互动作后,暂时计时,直到用户重新激活学习状态。学习资源也支持下载到本地观看,线下学习时间不被系统记录。

4)知识点标记

学生对于任意知识点问题,可以进行手动标记,可以看到已在该知识点下进行标记的学生列表。

5)

当知识点被标记后,平台自动以“专业- 学科- 知识点名称”创建一个关于该知识点的讨论组,学生可以自由选择加入、邀请列表内学生加入和退出该讨论组。讨论组内可以进行实时交流,交流的消息记录可以在云端永久保存。学生可以自由讨论关于该知识点的见解或疑问,也可以针对该知识点选择某一有授课记录的教师来进行回复。受邀教师将收到平台短消息推送,教师可以直接回复该问题,而不会自动加入该讨论组。同一教师每日最多可以被选择5 次来进行答疑。

6)学生学习统计

学生可以查看当前已学习的课程信息,包括已学课程列表、在学课程列表、在学课程已完成进度、单科和全科学习时长,同时可以选择是否公开个人学习状态及信息。系统可以统计排名全站用户的公开信息。

7)学习资源管理

用户上传的各类学习资源,都处于待审核状态,管理员负责管理审核该类资源。对于Word、PPT、Excel等文件内容,首先由系统平台扫描文件内是否存在违禁词字典表中的内容,然后由管理员手动审核正文内容是否存在意识形态等问题,审核无误后该资源才能被其他用户所查看。对于视频资源,系统平台不支持视频直接上传,必须先上传至第三方站点,再将该外链地址保存至系统平台,合法的第三方站点由管理员在字典表中进行设置。

8)初始化管理

管理员可以上传导入学校基本资料,如院系信息、专业信息、课程信息、班级信息、学生信息、教师信息等,同时自动检测是否存在对应的课程论坛板块。若该板块不存在,则自动按照学院—专业—课程的目录结构创建该板块。课程板块创建完毕后,自动将有授课任务的教师列入该板块的管理者。

3   私有云的构建

3.1 基础环境配置

物理机硬件采用8 核心CPU、64 Gb 内存×4、16Tb企业盘×4,操作系统使用Centos7.7。配置好网络节点、防火墙,数据库使用MySQL。

3.2 Keystone 服务安装

Keystone 为OpenStack 提供认证服务,其安装过程如下:

1)基础环境安装后,登录MySQL 并创建Keystone数据库,创新系统用户并赋予操作权限;

2)获取对应的管理口令,安装软件服务和配置文件;

3)执行身份引导服务;

4)配置管理员用户,创建项目、域、用户、角色。创建项目作为OpenStack 的系统项目,所有系统服务加入该目。

3.3 Glance 服务安装

Glance 为OpenStack 提供镜像服务,为用户的上传、修改、导出、删除虚拟机镜像提供服务支撑,其安装过程如下:

1)登录MySQL 并创建 Glance 数据库。

2)创建用户、角色和API 服务端点

3)安装和配置Glance 服务。

4)同步Glance 数据库,启动并测试Glance 服务。

5)测试独有镜像并上传。

3.4 Nova服务安装

Nova 为OpenStack 提供计算服务,可以用来管理虚拟机实例,其安装过程与Glance 服务的安装基本一致:

1) 登录MySQL 并创建Nova 数据库。

2)创建用户、角色和API 服务端点。

3)安装配置Nova。

4)同步Nova 数据库,启动并测试Nova 服务。

3.5 Neutron服务安装

Neutron 为OpenStack 提供网络服务,其对防火墙、交换机、负载均衡器等都有较好的支持。其安装过程如下:

1) 登录MySQL 并创建Neutron 数据库。

2)创建用户、角色和API 服务端点。

3)安装配置Neutron,修改内核配置文件。

4)初始化创建网络。

3.6 Horizon服务安装

Horizon 为OpenStack 提供友好的交互界面,用户可以使用控制台完成项目管理。软件安装后,修改用户域和角色并重启服务,即可登录OpenStack 控制台。

3.7 Cinder服务安装

Cinder 为OpenStack 提供块存储服务,同时提供实例对象的虚拟磁盘。其安装过程如下:

1)登录MySQL 并Cinder 数据库。

2)创建用户、角色和API 服务端点。

3)安装配置Cinder。

4)同步Cinder 数据库,启动并测试Cinder 服务。

4   系统实现

本系统基于开源软件若依进行开发。若依采用技术,后端核心采用SpringBoot 集成MyBatis、Spring Security、Redis 等框架,前端集成ES6、Vue、Axios、Element-UI 等框架, 数据库使用MySQL。

4.1 知识点标记

用户可以选中知识点内容,当监听到鼠标松开事件后,通过window.getSelection 方法获取选中的文本。将选中的文本内容和当前行数的文本做配对,从而获取选中文本的索引值,若未有用户标记过则定义新的索引值,标记的内容使用span 标签包裹并随机设置背景色。然后通过标签弹窗的方式,列出已标记该知识点的其他用户,用户间可以进行交互操作。其中,知识点添加点击事件的关键代码如下:

let del = document.querySelectorAll(“#annotateCont

ent span button i”);

$(“#annotateContent”).on(“click”, “span

button”, (e) => {

if (this.labels.length > 0) {

this.editbutton = true;

this.setBoxPosition(e.pageX, e.pageY);

this.editbutton_spanid = e.currentTarget.

lastElementChild.id;

// ...

}

});

for (var i = 0; i < del.length; i++) {

del[i].addEventListener(“click”, (a) => {

this.labeldialog = false;

this.deleteById(a.currentTarget.id);

a.stopPropagation();

});

}

4.2 讨论组实时交流

讨论组的实时交流基于WebSocket 通讯协议实现。用户通过WebSocket 的onOpen 事件进入讨论组,输入交流内容后通过WebSocket 的send 方法发送给服务端。服务端收到交流内容后,经过解析处理再转发给讨论组内其他用户,用户通过WebSocket 的onMessage 方法接收交流内容。其中,用户接收交流内容的方法如下:

public void onMessage(String message,Session

session){

ObjectMapper mapper =new ObjectMapper();

Message mess = mapper.readValue(message,

Message.class);

String toName = mess.getToName();

String data = mess.getMessage();

String username = (String) httpSession.getAttribute

(“user”);

String resultMessage = MessageUtils.getMessage

(false, username, data);

onlineUsers.get(toName).session.getBasicRemote().

sendText(resultMessage);

}

4.3 学习时长统计

将学习页面的生命周期划分为“初始”、“切换”、“终止”3 个状态,3 个状态的认定形式如表3 所示。

1677481545437642.png

当用户在线学习时,发生以上任意动作,则累加动作间的时长。使用window.onload 和 window.onbeforeunload 方法监听页面加载和页面关闭;使用pageshow 和pagehide 监听浏览器前进或后退; 使用visibilitychange 监听Tab 切换、桌面切换和电脑睡眠。

4.4 热门内容

用户可以按时间维度查看高频关键词,关键词统计源包括论坛帖子内容、知识点活跃度和讨论组内关键词等。关键词以词云的方式进行显示,鼠标滑动到词云时,显示其词频数量及占比,如图4 所示。

1677481589112887.png

图4 高频关键词

5   结束语

本文系统分析了当前高校“停课不停学”状态下学生所遇到的问题,并基于OpenStack 构建了一个高校在线学习交流的私有云平台。私有云通过硬件虚拟化、存储虚拟化和网络虚拟化等技术,能够最大程度地保证用户数据的安全性和可靠性;在线学习交流平台为学生在学习过程遇到的问题,提供了良好的解决途径。本文对高校进一步完善在线教学的能力提供了参考。

参考文献:

[1] 孙金鑫.面向学习效能提升的智能在线学习平台设计与实现[D].沈阳:中国科学院大学(中国科学院沈阳计算技术研究所),2021.

[2] 习军.MOOC趋势下高校网络公选课在线学习平台的设计与实现[J].科技风,2018(16):62.

[3] TAJA-ON E, MIRAS R, JUROLAN C. E-Learning: teaching effectiveness to conventional teaching in undergraduates amid COVID-19 Pandemic[J]. Open Access Library Journal, 2021, 8(11): 1-10.

[4] MEKKY S T. On-line learning assessment: Egyptian universities as a case study[J].International Journal of Information and Education Technology, 2021, 11(10): 471-478.

[5] 刘小英,刘强.在线学习交流平台的设计与实现[J].攀枝花学院学报,2021,38(2):62-67.

[6] 安磊,张波.在线学习平台设计与实现[J].电脑编程技巧与维护,2020(3):17-19.

[7] 张国平,李亚丽,刘申申.基于SSH的软件工程学习交流平台的设计[J].科技资讯,2017,15(36):13-16.

[8] 谢兵,赵小梅.基于B/S架构的高校教学管理平台设计与实现[J].电脑编程技巧与维护,2011(18):57-67.

[9] 裴栋,张巧燕,蒙晓燕.“双高”建设任务背景下的云计算基础实训平台的设计与实现[J].信息与电脑(理论版),2021,33(13):107-110.

[10] 郑占,马才学.土地开发整理项目预算系统设计研究[J].国土资源科技管理,2010,27(1):108-112.

(本文来源于《电子产品世界》杂志年2月期)

image.png


文章来源于:电子产品世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。