CN109636691A - 一种基于docker的在线实验教学平台及实现方法 - Google Patents

一种基于docker的在线实验教学平台及实现方法 Download PDF

Info

Publication number
CN109636691A
CN109636691A CN201811547517.7A CN201811547517A CN109636691A CN 109636691 A CN109636691 A CN 109636691A CN 201811547517 A CN201811547517 A CN 201811547517A CN 109636691 A CN109636691 A CN 109636691A
Authority
CN
China
Prior art keywords
experiment
container
docker
student
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201811547517.7A
Other languages
English (en)
Other versions
CN109636691B (zh
Inventor
张卫丰
蒋臣威
诸葛文杜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Post and Telecommunication University
Original Assignee
Nanjing Post and Telecommunication University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Post and Telecommunication University filed Critical Nanjing Post and Telecommunication University
Priority to CN201811547517.7A priority Critical patent/CN109636691B/zh
Publication of CN109636691A publication Critical patent/CN109636691A/zh
Application granted granted Critical
Publication of CN109636691B publication Critical patent/CN109636691B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/20Education
    • G06Q50/205Education administration or guidance
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B9/00Simulators for teaching or training purposes

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Educational Administration (AREA)
  • Educational Technology (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Tourism & Hospitality (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • General Business, Economics & Management (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Electrically Operated Instructional Devices (AREA)

Abstract

本发明一种基于docker的在线实验教学平台及实现方法,包括三种系统角色:管理员、教师和学生;管理员的职能包括:docker镜像的拉取、课程、实验的新增及镜像与实验的绑定;教师的职能包括:课程实验的发布、学生实验进度的监督、截止实验及学生实验结果的评价;学生的职能包括:创建实验环境并完成实验要求和查看实验评价。本发明提供的基于docker的在线实验教学平台及实现方法,简化在服务器中配置相同实验环境带来的繁琐工作,提高教学效率,可快速上手,操作便捷,多个学生同时实验时互不干扰,提高实验体验,降低学生进行课程实验的要求,解决现阶段在线教学课程中出现的教育者与受教育者设备配置冲突、教学效率低的问题。

Description

一种基于docker的在线实验教学平台及实现方法
技术领域
本发明属于教育教学领域,具体涉及一种基于docker的在线实验教学平台及实现方法。
背景技术
由于大型开放式网络课程本身教学模式的限制,如教师与学生的比例较低、没有统一的课程实验平台等,使得教学双方在答疑讨论、作业批改、课程实验等方面还面临很多困难,特别是在一些需要学生动手实践的环节,如计算机编程语言、操作系统、分布式大数据处理等课程中,学生使用各自的计算机作为实验环境,既没有相同的软件与硬件配置,又不能满足分布式课程实验的硬件要求,学生使用自己的操作系统而无法达到统一教学环境,很多时候使得教学双方将大量精力花费在实验环境的部署与配置上,反而不能够专注于课程实验关注的内容,导致平台发布的实验往往不能很好地由学生完成。
发明内容
为解决现有技术存在的问题,本发明提供了一种基于docker的在线实验教学平台及实现方法,利用Docker应用技术的操作系统级的虚拟化技术,为在线实验平台中的教师、学生等角色提供简单快捷的环境部署功能和稳定、自由、可定制的Linux教学实验环境。
为实现上述目的,本发明采用的技术方案为:
一种基于docker的在线实验教学平台,包括创建的三种系统角色:管理员、教师和学生;
所述管理员的职能包括:docker镜像的拉取和创建、课程、实验的新增以及镜像与实验的绑定,包括:系统资源管理模块、docker资源管理模块和课程实验资源管理模块,系统资源管理模块包括系统资源管理、用户资源管理和角色资源管理,这三个模块为系统运行所需的基础模块,用户资源管理用于管理系统的用户资源,角色资源管理与系统资源管理协同工作,docker资源管理模块包括端口管理模块、镜像管理模块和容器管理模块,端口管理模块是docker容器使用的服务器资源管理页面,镜像管理模块是用于管理远程服务器中的docker服务内现存的镜像资源,容器管理模块是提供给管理员对学生、教师进行实验时产生的数量极多的容器资源进行管理的页面,用于管理员查看和删除学生、教师实验容器,课程实验资源管理模块包括课程类型管理模块、课程管理模块和实验管理模块,课程类型管理模块提供管理员查询修改课程类型的功能,在删除课程类型时要确保该课程类型下无在用课程,课程管理模块提供实验可的新增修改,实验管理模块为管理员提供课程实验的基础信息列表和新增修改功能;
所述教师的职能包括:课程实验的发布、学生实验进度的监督、截止实验以及学生实验结果的评价,包括实验发布模块、实验监督模块、实验评价模块和成绩展示模块;
所述学生的职能包括:创建实验环境并完成实验要求和查看实验评价,学生角色包括未开始实验、进行中实验、已截止实验和选课四个模块。
进一步的,用户资源为所有通过本平台申请注册的用户列表,包含用户注册时产生的所有信息,用户信息包括用户名(学生、教师名)、用户号码(学生、教师编号)、用户密码、用户角色、系统ID等基础信息;用户角色总共分为:管理员、教师、学生和超级管理员;管理员管理教师和学生用户资源列表,超级管理员管理管理员、教师和学生的用户列表;管理员用户由超级管理员分配,教师与学生账户由使用者自助申请获得,超级管理员由系统指定。
进一步的,角色资源管理包含系统内部所有用户角色的列表,系统用户角色包含超级管理员、普通管理员、教师、学生四种基础角色,角色管理可以新增修改删除系统内部的角色资源,新增用户角色时需要为新增的角色资源指定对应的系统资源,即页面资源,系统会自动根据用户角色绑定的系统资源来展示相应的页面资源,角色管理不可删除四种基础角色但是可修改四种基础角色对应的系统资源页面。
进一步的,系统资源管理页面包含系统内部现存的页面资源列表,这些资源可自由的分配给系统用户角色,为该角色提供对应的功能操作页面。
进一步的,实验发布模块包含着管理员已经建立的、某一门课程或所有课程的、已发布或未发布或已截止的实验资源列表,每一条资源对应课程的一个实验,教师可在实验发布模块中设定起止日期来发布实验,或通过使用docker容器对某一个实验进行模拟实验,学生只能看到已经发布的实验。
进一步的,学生在进行实验时的实验进度会以实验进度资源表的形式展示在实验监督模块,主要包括实验进度号、实验进度名称、实验进度备注、学号、学生姓名、实验名称、最近启动时间、实验完成度、实验进度状态、进入学生实验按钮和删除按钮。
进一步的,学生实验只有两种操作:进入实验与清除并创建实验和停止实验,学生实验步骤包括:
功能1:进入实验容器:
步骤1):根据系统中的配置文件docker.properties,创建docker-java的DockerClient类的实体对象;
步骤2):根据用户id在数据库中查询用户基础信息和用户容器信息;
步骤3):如果用户信息已经含有容器信息,则跳转到步骤8),若没有则继续步骤4);
步骤4):根据用户基础信息在数据库中查询该实验所用的镜像名称,以及分配给该用户的端口资源,并基于用户基础信息构建容器名称;
步骤5):根据镜像、端口资源和容器名称,使用DockerClient类的实体对象创建新的实验容器;
步骤6):使用DockerClient类提供的获取容器信息的api接口,获取容器唯一id;
步骤7):构建容器基础信息,包括容器名、容器唯一标识码、容器共享数据卷目录、容器创建时间、容器运行状态和容器使用者信息等,插入数据库中容器表格;
步骤8):使用DockerClient类的实体对象,启动新创建的实验容器,并更新容器表格中的容器状态;
步骤9):根据端口资源及其描述,构建返回信息类,向前端提供容器登录页面信息及容器提示信息;
步骤10):执行结果返回。
功能2:清除并创建实验容器:
步骤1):根据系统中的配置文件docker.properties,创建docker-java的DockerClient类的实体对象;
步骤2):根据用户id,在数据库中查询用户正在使用的容器信息,并获取容器唯一标识码和容器名称;
步骤3):使用DockerClient类提供的api接口,利用容器唯一标识码,向服务器申请停止容器;
步骤4):使用DockerClient类提供的api接口,利用容器唯一标识码,向服务器申请删除容器;
步骤5):使用DockerClient类提供的api接口,利用容器唯一标识码,向服务器申请删除容器数据卷信息;
步骤6):根据用户基础信息在数据库中查询该实验所用的镜像名称,以及分配给该用户的端口资源;
步骤7):根据镜像、端口资源和容器名称,使用DockerClient类的实体对象创建新的实验容器;
步骤8):使用DockerClient类提供的获取容器信息的api接口,获取容器唯一id(ID);
步骤9):使用DockerClient类的实体对象,启动新创建的实验容器;
步骤10):构建容器基础信息,包括容器唯一标识码、容器共享数据卷目录、容器创建时间、容器运行状态,更新数据库中容器表格;
步骤11):根据端口资源及其描述,构建返回信息类,向前端提供容器登录页面信息及容器提示信息;
步骤12):执行结果返回。
功能3:停止实验容器:
步骤 1):根据系统中的配置文件docker.properties,创建docker-java的DockerClient类的实体对象;
步骤2):根据用户id,在数据库中查询用户正在使用的容器信息,并获取容器唯一标识码和容器名称;
步骤3):使用DockerClient类提供的api接口,利用容器唯一标识码,向服务器申请停止容器;
步骤4):执行结果返回。
进一步的,包括以下步骤:
管理员:
步骤1):从docker官网拉取基础镜像;
步骤2):制作所需的特定的镜像;
步骤3):将新创建的镜像push到docker私有仓库;
步骤4):将远程仓库中的镜像pull到本地服务器;
步骤5):创建新的实验对象,并加入目标内容;
步骤6):将拉取的镜像绑定到实验;
教师:
步骤7):为新建实验设定起止时间;
步骤8):发布实验;
步骤9):等待学生进行实验操作,并监控学生实验进度;
步骤10):等待学生实验,到达截止时间;
步骤11):关闭学生实验容器,并提交学生实验进度;
步骤12):依据学生容器检测结果,对学生实验进行打分点评;
学生:
步骤13):登录,并选择此课程选课;
步骤14):查看实验内容并等待实验开始;
步骤15):创建实验进度;
步骤16):ssh界面内进行实验操作;
步骤17):强制停止实验,并退出;
步骤18):等待实验截止,查看老师点评。
为了极大的简化Linux实验环境的配置,基于docker的在线实验教学平台将采用docker虚拟化的技术。docker是一个客户/服务器(Client/Server,CS)架构,其中docker客户端为远程控制器,它通过TCP/REST向Docker Host发送请求来完成对远程docker服务器的控制,其中请求类型包括创建容器、运行容器、停止容器、删除容器、查询镜像等请求;并且,docker服务器在接收到请求的同时,会将请求转交给Daemon,通过它对docker客户端的请求进行相应的管理,随后再通过driver转发至容器中的libcontainer执行环境,这种类型的架构允许多个docker容器在共享同一个Linux内核的情况下完全隔离地运行,而且由于docker容器并不需要专用操作系统,从而实现了轻量级的要求。
平台中把docker技术与课程实验相结合,以docker的操作虚拟化技术实现符合高效的、教学规律的、互不影响的Linux教学实验环境,然后将其嵌入一个完整的教师学生实验管理系统,最终形成一个基于docker的在线教学实验平台,属于一类JavaWeb项目,后台代码框架采用Springmvc-Spring-Mybatis的整合框架,前台使用JQuery、Easyui等技术,底层核心代码使用GitHub上的Docker-java开源项目。
在docker技术与课程实验结合方面,实验教学平台中主要处理以下几个概念的相互关系:docker镜像与docker容器的关系、docker镜像与实验的关系、学生与实验的关系以及学生的实验进度与docker容器的关系。
1.docker镜像与docker容器的关系
docker镜像与docker容器的关系是一对多的关系,docker在创建容器时需要以一个且唯一一个的docker镜像作为创建模板,用一个docker镜像可创建多个docker容器,用同一个docker镜像创建的docker容器所包含系统环境是完全一致的,docker容器只可能对应唯一一个docker镜像,docker镜像与docker容器是一对多的关系。
2.docker镜像与实验的关系
系统中docker镜像与实验的关系是一一对应的。docker可以用一个docker镜像创建多个docker容器,其系统环境是一致的,而课程实验中,多个学生在一个实验下,将需要多个起始环境一致、互不干扰的实验进度,所以,docker镜像与实验一一对应,而docker镜像创建出的多个docker容器对应多个学生在某一个实验下的多个实验进度,每一个docker容器对应一个实验进度。
3.学生与实验的关系
学生与实验是多对多的。学生可能需进行多个实验,一个实验必定包含多个选课学生。
4.学生的实验进度与docker容器的关系
学生的实验进度与docker容器一一对应,即特定学生在某一个实验下拥有唯一一个与之对应的docker容器。
以上是底层技术的实现逻辑,然后再根据不同角色来划分实验教学平台的功能模块,系统角色主要分为三类:管理员、教师、学生。
管理员主要职能包括:docker镜像的拉取和创建、课程实验的新增以及镜像与实验的绑定;
教师主要职能包括:课程实验的发布、学生实验进度的监督以及学生实验结果的评价;
学生主要职能包括:创建实验环境并完成实验要求和查看实验评价。
与现有技术相比,本发明的有益效果为:
相比于现有在线实验平台,本发明的基于docker虚拟化的课程实验主要优势体现在三个方面:
1)、它能够简化在服务器中配置相同实验环境带来的繁琐工作,提高教学效率,并减少环境部署过程中出现的问题;
2)、学生进行实验时可快速上手,操作便捷,多个学生同时实验时互不干扰,提高实验体验;
3)、可以在多阶段的实验环节中,为学生提供阶梯式的教学实验环境,大大降低学生进行课程实验的要求。
附图说明
图1是本发明的三种系统角色的主要功能模块及其各部分之间的总体关系图;
图2是本发明的docker在线实验平台中管理员角色使用流程图;
图3是本发明的docker在线实验平台中教师角色使用流程图;
图4本发明的docker在线实验平台中学生角色使用流程图;
图5是本发明的docker在线实验平台底层使用docker-java api接口部分的详细流程图。
具体实施方式
名词解释:
Docker:Docker是由原DotCloud(公司现已经更名为Docker公司)提出的一个开放平台,旨在为系统开发和管理人员提供一个创建、部署、运行分布式应用的容器引擎,让他们可以将任意的应用及其依赖环境打包到一个容器中,然后将容器分发到任何Linux环境中并以类似于轻量级的虚拟机的方式运行。
Docker-Java:Docker-Java是一个GitHub上的开源项目,是一个可以提供所有docker指令服务的Java API client。本系统中将利用此功能实现所有的对于docker镜像和容器的创建、启动等操作。
Wssh:Wssh是一款轻量级的第三方服务,它可以通过HTTP请求来调用远程的一个Shell,也就是说可以用浏览器来访问某个 Linux 服务器/虚拟机的终端。在实验系统中,它将用于访问用户角色创建的Docker容器,形成实验操作界面。
Springmvc-Spring-Mybatis:其中spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。SpringMVC分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。
1、管理员
管理员的主要功能包括三大部分:系统资源管理模块、docker资源管理模块和课程实验资源管理模块。
1.1、系统资源管理模块
此模块包含三个子模块:系统资源管理、用户资源管理和角色资源管理,这三个模块为系统运行所需的基础模块。用户资源管理用于管理系统的用户资源,即所有通过本系统申请注册的用户列表,包含用户注册时产生的所有信息,用户信息包括用户名(学生、教师名)、用户号码(学生、教师编号)、用户密码、用户角色、系统ID等基础信息;用户角色总共分为:管理员、教师、学生和超级管理员;管理员可管理教师和学生用户资源列表,超级管理员可管理管理员、教师、学生的用户列表;管理员用户由超级管理员分配,教师与学生账户由使用者自助申请获得,超级管理员由系统指定。
角色资源管理与系统资源管理协同工作,角色资源管理包含系统内部所有用户角色的列表,系统用户角色包含超级管理员、普通管理员、教师、学生四种基础角色。角色管理可以新增修改删除系统内部的角色资源,新增用户角色时需要为新增的角色资源指定对应的系统资源,即页面资源,系统会自动根据用户角色绑定的系统资源来展示相应的页面资源,角色管理不可删除四种基础角色但是可修改四种基础角色对应的系统资源页面。
系统资源管理页面包含系统内部现存的页面资源列表,这些资源可自由的分配给系统用户角色,为该角色提供对应的功能操作页面。
1.2、docker资源管理模块
此模块包含三个子模块:端口管理模块、镜像管理模块、容器管理模块。其中镜像管理模块与容器管理模块分别对应docker虚拟化技术中的镜像、容器这两个概念,系统底层会使用docker-java API技术实现对远程服务器的docker操作。
端口管理模块是docker容器使用的服务器资源管理页面。基于docker的虚拟化技术,用docker创建的实验虚拟容器需要向外部提供一个ssh服务端口(系统内使用wssh登录)供外部访问。在本系统中,利用docker技术中的容器端口映射的规则,将docker容器的ssh服务端口映射到宿主机服务器上的任意一个端口之上,即用docker创建容器将占用一个或多个服务器端口资源,这里的端口管理模块就是提供该种类型资源的管理页面,它包含两个子模块:教师端口资源管理和学生端口资源管理,分别展示了分配给教师、学生这两个角色的端口资源占用情况。在此页面中,也提供了将空余端口资源指定给某一个用户的修改功能。
镜像管理模块是用于管理远程服务器中的docker服务内现存的镜像资源。镜像资源分为两类:本地服务器镜像资源与远程仓库镜像资源。本地服务器镜像资源展示的是该实验平台服务所在服务器上的本地docker镜像资源,对于管理员来说,是可以随时用于绑定实验的镜像。远程仓库镜像资源是处于另一台专门用于提供docker镜像的linux服务器上的docker镜像资源,是由专业的docker镜像提供方所提供镜像资源池。管理员将所需要的镜像资源从远程镜像仓库中拉取到本地服务器,才能使用该镜像资源。
容器管理模块是提供给管理员对学生、教师进行实验时产生的数量极多的容器资源进行管理的页面。管理员在这里可以查看、删除长期不用的、或者已经失去对应服务器容器资源的学生、教师实验容器。
1.3、课程实验资源管理模块
此模块包含三个子模块:课程类型管理、课程管理、实验管理。课程类型管理提供管理员查询修改课程类型的功能,在删除课程类型时必须确保该课程类型下无在用课程。课程管理模块提供实验可的新增修改,课程信息包括课程名、课程号、任课教师、所属课程类型、选课密钥等。实验管理模块为管理员提供课程实验的基础信息列表和新增修改功能,其中包括实验名称、实验号、实验创建时间、实验所属课程、实验对应镜像、实验模板、实验内容、实验是否发布等信息。其中实验内容使用网络上较为流行的markdown富文本编辑器,提供上传图片与文档多格式编写,实现丰富清晰的实验内容展示。此外,在新创建的实验在使用前需要在此页面上进行实验镜像的绑定,绑定镜像之后,学生、教师才可进行实验容器创建。
2、教师
教师角色对应线下教学中的老师。在本系统中,该角色主要实现课程实验的发布、学生实验进行的监督和学生实验的评价三部分操作,对于每一个由教师任教的课程而言,总共包含三个操作模块:实验发布、实验监督、实验评价,最后还需要有一项学生成绩展示模块。
2.1、实验发布模块
实验发布模块包含着管理员已经建立的、某一门课程或所有课程的、已发布或未发布或已截止的实验资源列表,每一条资源对应课程的一个实验,教师可在实验发布模块中设定起止日期来发布实验,也可以对某一个实验进行模拟实验(使用docker容器),学生只能看到已经发布的实验。
2.2、实验监督模块
学生在进行实验时的实验进度会以实验进度资源表的形式展示在该模块,主要包括实验进度号、实验进度名称、实验进度备注、学号、学生姓名、实验名称、最近启动时间、实验完成度、实验进度状态、进入学生实验按钮和删除按钮。
实验进度号:学生启动实验时在主机服务器的docker服务上启动的实验容器ID。
实验进度名称:启动的容器名称。
实验进度备注:启动容器时产生的端口映射表。
学号:学生编号。
学生姓名:进行实验的学生姓名。
实验名:进行的实验名称;由学生信息和实验名共同标定一个实验进度,即某一个学生在某一个实验上产生唯一一个实验进度(容器),当学生的实验进度被暂停并再次重启时,实验进度不会消失,依旧保留上次的状态,但是实验进度(容器)被清除并再次创建时,实验进度重新开始。
实验完成度:由系统后台定时读取容器内自检脚本输出的结果。
实验进度状态:实验进度的运行状态,即docker容器的运行或停止。
进入学生实验按钮:教师进入学生实验的按钮,即利用 wssh登录学生正在进行的容器。
删除按钮:删除该学生的实验。
2.3、实验评价模块
实验评价模块是教师对已经完成或截止的学生实验进行评价的页面。评价页面包含学号、学生姓名、完成的实验名称、最终实验完成度、实验完成度详情、是否已评价和评价按钮。教师根据最终实验完成度和实验完成度详情,再结合学生的课堂表现情况,给出最终的实验评价。最终评价由A、B、C、D四个档位和自由内容评价组成。学生的最终实验成绩由以下成绩公式一计算获得:
最终实验成绩=最终实验完成度*50±档位评价*权重 公式一
其中,最终实验成绩始终处于0.0到100.0之间。
2.4、成绩展示模块
成绩展示模块将以表格加圆饼图的方式展示某一课程、某一实验的学生成绩分布情况。
3、学生
学生角色在本系统中,主要是活动是:1、选课;2、根据教师发布的实验信息,使用系统提供的docker虚拟化技术进行模拟实验,并在实验结束后查看教师评价。其中docker虚拟技术对于学生角色是透明的,最终只体现为对于进行中实验的两种操作,以及wssh页面。学生角色主要分为未开始实验、进行中实验、已截止实验和选课这四个模块。
3.1、未开始实验模块
未开始实验是依据教师发布实验时设定的实验的起止时间而筛选出的实验资源列表。改模块包括实验名称、实验的起止时间、实验内容和实验目标。该模块的目的是为学生角色提供一个可以预习实验内容的活动窗口,并提醒学生合理安排实验时间。
3.2、已开始实验
与未开始实验相对应,已开始实验是正在进行中的实验的资源列表,学生可以在此页面进行进入实验和清除并重启实验操作,同时也可以查询自己在该实验下的完成度。
3.3已截止实验
与未开始实验相对应,该页面提供已经截止的实验的资源列表。学生在这里可查询某一实验的预期目标和具体内容,以及自己在该实验下达到的实验完成度和教师给予的实验评价。
3.4选课
提供给学生的选课接口,会展示学生尚未选修的实验课程,并提供选课操作。
4、具体流程
以一个新建的课程实验为例,解释说明具体创建实验并使学生完成实验的具体流程,主要包括三个阶段,由三个角色共同参与:
管理员:
步骤1):从docker官网拉取基础镜像;
步骤2):制作所需的特定的镜像;
步骤3):将新创建的镜像push到docker私有仓库;
步骤4):将远程仓库中的镜像pull到本地服务器;
步骤5):创建新的实验对象,并加入目标内容;
步骤6):将拉取的镜像绑定到实验;
教师:
步骤7):为新建实验设定起止时间;
步骤8):发布实验;
步骤9):等待学生进行实验操作,并监控学生实验进度;
步骤10):等待学生实验,到达截止时间;
步骤11):关闭学生实验容器,并提交学生实验进度;
步骤12):依据学生容器检测结果,对学生实验进行打分点评;
学生:
步骤13):登录,并选择此课程选课;
步骤14):查看实验内容并等待实验开始;
步骤15):创建实验进度;
步骤16):ssh界面内进行实验操作;
步骤17):强制停止实验,并退出;
步骤18):等待实验截止,查看老师点评;
5、底层docker技术实现
关于学生实验模块中对于创建docker虚拟化操作环境的实现,系统将其封装成三个子功能:进入实验容器、清除并创建实验容器、停止实验容器,并使用wssh的网页ssh工具提供登录操作实验容器的操作窗口。对于学生来讲,学生实验只有两种操作:进入实验与清除并创建实验,停止实验将在操作窗口关闭是自动执行,以节省服务器资源。以下是详细解释操作流程。
功能1:进入实验容器:
步骤1):根据系统中的配置文件docker.properties,创建docker-java的DockerClient类的实体对象;
步骤2):根据用户id在数据库中查询用户基础信息和用户容器信息;
步骤3):如果用户信息已经含有容器信息,则跳转到步骤8),若没有则继续步骤4);
步骤4):根据用户基础信息在数据库中查询该实验所用的镜像名称,以及分配给该用户的端口资源,并基于用户基础信息构建容器名称;
步骤5):根据镜像、端口资源和容器名称,使用DockerClient类的实体对象创建新的实验容器;
步骤6):使用DockerClient类提供的获取容器信息的api接口,获取容器唯一id;
步骤7):构建容器基础信息,包括容器名、容器唯一标识码、容器共享数据卷目录、容器创建时间、容器运行状态、容器使用者信息等,插入数据库中容器表格;
步骤8):使用DockerClient类的实体对象,启动新创建的实验容器,并更新容器表格中的容器状态;
步骤9):根据端口资源及其描述,构建返回信息类,向前端提供容器登录页面信息及容器提示信息;
步骤10):执行结果返回。
功能2:清除并创建实验容器:
步骤1):根据系统中的配置文件docker.properties,创建docker-java的DockerClient类的实体对象;
步骤2):根据用户id,在数据库中查询用户正在使用的容器信息,并获取容器唯一标识码和容器名称;
步骤3):使用DockerClient类提供的api接口,利用容器唯一标识码,向服务器申请停止容器;
步骤4):使用DockerClient类提供的api接口,利用容器唯一标识码,向服务器申请删除容器;
步骤5):使用DockerClient类提供的api接口,利用容器唯一标识码,向服务器申请删除容器数据卷信息;
步骤6):根据用户基础信息在数据库中查询该实验所用的镜像名称,以及分配给该用户的端口资源;
步骤7):根据镜像、端口资源和容器名称,使用DockerClient类的实体对象创建新的实验容器;
步骤8):使用DockerClient类提供的获取容器信息的api接口,获取容器唯一id;
步骤9):使用DockerClient类的实体对象,启动新创建的实验容器;
步骤10):构建容器基础信息,包括容器唯一标识码、容器共享数据卷目录、容器创建时间、容器运行状态,更新数据库中容器表格;
步骤11):根据端口资源及其描述,构建返回信息类,向前端提供容器登录页面信息及容器提示信息;
步骤12):执行结果返回。
功能3:停止实验容器:
步骤 1):根据系统中的配置文件docker.properties,创建docker-java的DockerClient类的实体对象;
步骤2):根据用户id,在数据库中查询用户正在使用的容器信息,并获取容器唯一标识码和容器名称;
步骤3):使用DockerClient类提供的api接口,利用容器唯一标识码,向服务器申请停止容器;
步骤4):执行结果返回。
上述实施例不以任何形式限制本发明,凡采用等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围。

Claims (8)

1.一种基于docker的在线实验教学平台,其特征在于,包括创建的三种系统角色:管理员、教师和学生;
所述管理员的职能包括:docker镜像的拉取和创建、课程、实验的新增以及镜像与实验的绑定,包括:系统资源管理模块、docker资源管理模块和课程实验资源管理模块,系统资源管理模块包括系统资源管理、用户资源管理和角色资源管理,这三个模块为系统运行所需的基础模块,用户资源管理用于管理系统的用户资源,角色资源管理与系统资源管理协同工作,docker资源管理模块包括端口管理模块、镜像管理模块和容器管理模块,端口管理模块是docker容器使用的服务器资源管理页面,镜像管理模块是用于管理远程服务器中的docker服务内现存的镜像资源,容器管理模块是提供给管理员对学生、教师进行实验时产生的数量极多的容器资源进行管理的页面,用于管理员查看和删除学生、教师实验容器,课程实验资源管理模块包括课程类型管理模块、课程管理模块和实验管理模块,课程类型管理模块提供管理员查询修改课程类型的功能,在删除课程类型时要确保该课程类型下无在用课程,课程管理模块提供实验可的新增修改,实验管理模块为管理员提供课程实验的基础信息列表和新增修改功能;
所述教师的职能包括:课程实验的发布、学生实验进度的监督、截止实验以及学生实验结果的评价,包括实验发布模块、实验监督模块、实验评价模块和成绩展示模块;
所述学生的职能包括:创建实验环境并完成实验要求和查看实验评价,学生角色包括未开始实验、进行中实验、已截止实验和选课四个模块。
2.根据权利要求1所述的一种基于docker的在线实验教学平台,其特征在于,用户资源为所有通过本平台申请注册的用户列表,包含用户注册时产生的所有信息,用户信息包括用户名(学生、教师名)、用户号码(学生、教师编号)、用户密码、用户角色、系统ID等基础信息;用户角色总共分为:管理员、教师、学生和超级管理员;管理员管理教师和学生用户资源列表,超级管理员管理管理员、教师和学生的用户列表;管理员用户由超级管理员分配,教师与学生账户由使用者自助申请获得,超级管理员由系统指定。
3.根据权利要求1所述的一种基于docker的在线实验教学平台,其特征在于,角色资源管理包含系统内部所有用户角色的列表,系统用户角色包含超级管理员、普通管理员、教师、学生四种基础角色,角色管理可以新增修改删除系统内部的角色资源,新增用户角色时需要为新增的角色资源指定对应的系统资源,即页面资源,系统会自动根据用户角色绑定的系统资源来展示相应的页面资源,角色管理不可删除四种基础角色但是可修改四种基础角色对应的系统资源页面。
4.根据权利要求1所述的一种基于docker的在线实验教学平台,其特征在于,系统资源管理页面包含系统内部现存的页面资源列表,这些资源可自由的分配给系统用户角色,为该角色提供对应的功能操作页面。
5.根据权利要求1所述的一种基于docker的在线实验教学平台,其特征在于,实验发布模块包含着管理员已经建立的、某一门课程或所有课程的、已发布或未发布或已截止的实验资源列表,每一条资源对应课程的一个实验,教师可在实验发布模块中设定起止日期来发布实验,或通过使用docker容器对某一个实验进行模拟实验,学生只能看到已经发布的实验。
6.根据权利要求1所述的一种基于docker的在线实验教学平台,其特征在于,学生在进行实验时的实验进度会以实验进度资源表的形式展示在实验监督模块,主要包括实验进度号、实验进度名称、实验进度备注、学号、学生姓名、实验名称、最近启动时间、实验完成度、实验进度状态、进入学生实验按钮和删除按钮。
7.根据权利要求1所述的一种基于docker的在线实验教学平台,其特征在于,学生实验只有两种操作:进入实验与清除并创建实验和停止实验,学生实验步骤包括:
功能1:进入实验容器:
步骤1):根据系统中的配置文件docker.properties,创建docker-java的DockerClient类的实体对象;
步骤2):根据用户id在数据库中查询用户基础信息和用户容器信息;
步骤3):如果用户信息已经含有容器信息,则跳转到步骤8),若没有则继续步骤4);
步骤4):根据用户基础信息在数据库中查询该实验所用的镜像名称,以及分配给该用户的端口资源,并基于用户基础信息构建容器名称;
步骤5):根据镜像、端口资源和容器名称,使用DockerClient类的实体对象创建新的实验容器;
步骤6):使用DockerClient类提供的获取容器信息的api接口,获取容器唯一id;
步骤7):构建容器基础信息,包括容器名、容器唯一标识码、容器共享数据卷目录、容器创建时间、容器运行状态和容器使用者信息等,插入数据库中容器表格;
步骤8):使用DockerClient类的实体对象,启动新创建的实验容器,并更新容器表格中的容器状态;
步骤9):根据端口资源及其描述,构建返回信息类,向前端提供容器登录页面信息及容器提示信息;
步骤10):执行结果返回;
功能2:清除并创建实验容器:
步骤1):根据系统中的配置文件docker.properties,创建docker-java的DockerClient类的实体对象;
步骤2):根据用户id,在数据库中查询用户正在使用的容器信息,并获取容器唯一标识码和容器名称;
步骤3):使用DockerClient类提供的api接口,利用容器唯一标识码,向服务器申请停止容器;
步骤4):使用DockerClient类提供的api接口,利用容器唯一标识码,向服务器申请删除容器;
步骤5):使用DockerClient类提供的api接口,利用容器唯一标识码,向服务器申请删除容器数据卷信息;
步骤6):根据用户基础信息在数据库中查询该实验所用的镜像名称,以及分配给该用户的端口资源;
步骤7):根据镜像、端口资源和容器名称,使用DockerClient类的实体对象创建新的实验容器;
步骤8):使用DockerClient类提供的获取容器信息的api接口,获取容器唯一id;
步骤9):使用DockerClient类的实体对象,启动新创建的实验容器;
步骤10):构建容器基础信息,包括容器唯一标识码、容器共享数据卷目录、容器创建时间、容器运行状态,更新数据库中容器表格;
步骤11):根据端口资源及其描述,构建返回信息类,向前端提供容器登录页面信息及容器提示信息;
步骤12):执行结果返回;
功能3:停止实验容器:
步骤 1):根据系统中的配置文件docker.properties,创建docker-java的DockerClient类的实体对象;
步骤2):根据用户id,在数据库中查询用户正在使用的容器信息,并获取容器唯一标识码和容器名称;
步骤3):使用DockerClient类提供的api接口,利用容器唯一标识码,向服务器申请停止容器;
步骤4):执行结果返回。
8.根据权利要求1-7任一所述的一种基于docker的在线实验教学平台的实现方法,其特征在于,包括以下步骤:
管理员:
步骤1):从docker官网拉取基础镜像;
步骤2):制作所需的特定的镜像;
步骤3):将新创建的镜像push到docker私有仓库;
步骤4):将远程仓库中的镜像pull到本地服务器;
步骤5):创建新的实验对象,并加入目标内容;
步骤6):将拉取的镜像绑定到实验;
教师:
步骤7):为新建实验设定起止时间;
步骤8):发布实验;
步骤9):等待学生进行实验操作,并监控学生实验进度;
步骤10):等待学生实验,到达截止时间;
步骤11):关闭学生实验容器,并提交学生实验进度;
步骤12):依据学生容器检测结果,对学生实验进行打分点评;
学生:
步骤13):登录,并选择此课程选课;
步骤14):查看实验内容并等待实验开始;
步骤15):创建实验进度;
步骤16):ssh界面内进行实验操作;
步骤17):强制停止实验,并退出;
步骤18):等待实验截止,查看老师点评。
CN201811547517.7A 2018-12-18 2018-12-18 一种基于docker的在线实验教学平台及实现方法 Active CN109636691B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811547517.7A CN109636691B (zh) 2018-12-18 2018-12-18 一种基于docker的在线实验教学平台及实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811547517.7A CN109636691B (zh) 2018-12-18 2018-12-18 一种基于docker的在线实验教学平台及实现方法

Publications (2)

Publication Number Publication Date
CN109636691A true CN109636691A (zh) 2019-04-16
CN109636691B CN109636691B (zh) 2022-08-16

Family

ID=66074913

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811547517.7A Active CN109636691B (zh) 2018-12-18 2018-12-18 一种基于docker的在线实验教学平台及实现方法

Country Status (1)

Country Link
CN (1) CN109636691B (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110164207A (zh) * 2019-04-22 2019-08-23 中国石油大学(华东) 一种体育教学平台
CN110166285A (zh) * 2019-04-28 2019-08-23 北京航空航天大学 一种基于Docker的网络安全实验平台搭建方法
CN110264805A (zh) * 2019-06-20 2019-09-20 湖北中腾智能科教有限公司 一种基于计算机软件的学校教育实验教学流程系统
CN110413263A (zh) * 2019-07-25 2019-11-05 上海商汤智能科技有限公司 课程包的开发方法及装置、系统、设备和存储介质
CN110737498A (zh) * 2019-10-16 2020-01-31 黑龙江鑫联华信息股份有限公司 一种基于虚拟容器图形界面的大数据、人工智能在线考试方法及系统
CN110764877A (zh) * 2019-11-07 2020-02-07 成都国腾实业集团有限公司 一种基于云计算的虚拟实验室系统及方法
CN111445364A (zh) * 2020-03-31 2020-07-24 重庆海云捷迅科技有限公司 一种fpga云实验室平台及实现方法
CN112558998A (zh) * 2020-12-28 2021-03-26 慧科教育科技集团有限公司 一种实验内容研发平台
CN112653571A (zh) * 2020-08-20 2021-04-13 国家电网公司华中分部 一种基于虚拟机与容器的混合调度方法
CN112767207A (zh) * 2021-01-29 2021-05-07 江苏省徐州财经高等职业技术学校 一种基于容器的软件定义网络实验教学系统及教学方法
CN113096501A (zh) * 2021-03-03 2021-07-09 安徽电子信息职业技术学院 一种基于工业物联网的plc实验装置及其应用
CN113205434A (zh) * 2021-04-27 2021-08-03 杭州电子科技大学 一种基于容器技术的在线实验教学系统及方法
CN113296766A (zh) * 2021-05-31 2021-08-24 中电福富信息科技有限公司 基于Seldon的AI模型发布方法及系统
CN113470483A (zh) * 2021-06-01 2021-10-01 长江大学 基于Docker和Asterisk的软交换实验平台和实验方法
CN114005325A (zh) * 2021-11-16 2022-02-01 浪潮卓数大数据产业发展有限公司 一种基于大数据的教学实训方法、设备及介质
CN114693482A (zh) * 2022-04-14 2022-07-01 湖南智擎科技有限公司 在线编程实验与开源项目贡献转化方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103984589A (zh) * 2014-04-25 2014-08-13 北京大学 一种基于虚拟机实现计算机实验教学的上机环境建立方法
CN108932681A (zh) * 2018-06-07 2018-12-04 河海大学 一种基于翻转课堂的高校辅助教学系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103984589A (zh) * 2014-04-25 2014-08-13 北京大学 一种基于虚拟机实现计算机实验教学的上机环境建立方法
CN108932681A (zh) * 2018-06-07 2018-12-04 河海大学 一种基于翻转课堂的高校辅助教学系统

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110164207A (zh) * 2019-04-22 2019-08-23 中国石油大学(华东) 一种体育教学平台
CN110166285B (zh) * 2019-04-28 2021-08-03 北京航空航天大学 一种基于Docker的网络安全实验平台搭建方法
CN110166285A (zh) * 2019-04-28 2019-08-23 北京航空航天大学 一种基于Docker的网络安全实验平台搭建方法
CN110264805A (zh) * 2019-06-20 2019-09-20 湖北中腾智能科教有限公司 一种基于计算机软件的学校教育实验教学流程系统
CN110413263A (zh) * 2019-07-25 2019-11-05 上海商汤智能科技有限公司 课程包的开发方法及装置、系统、设备和存储介质
CN110413263B (zh) * 2019-07-25 2023-03-21 上海商汤智能科技有限公司 课程包的开发方法及装置、系统、设备和存储介质
CN110737498B (zh) * 2019-10-16 2023-03-10 黑龙江鑫联华信息股份有限公司 一种基于虚拟容器图形界面的大数据、人工智能在线考试方法及系统
CN110737498A (zh) * 2019-10-16 2020-01-31 黑龙江鑫联华信息股份有限公司 一种基于虚拟容器图形界面的大数据、人工智能在线考试方法及系统
CN110764877A (zh) * 2019-11-07 2020-02-07 成都国腾实业集团有限公司 一种基于云计算的虚拟实验室系统及方法
CN110764877B (zh) * 2019-11-07 2023-11-17 成都国腾实业集团有限公司 一种基于云计算的虚拟实验室系统及方法
CN111445364A (zh) * 2020-03-31 2020-07-24 重庆海云捷迅科技有限公司 一种fpga云实验室平台及实现方法
CN112653571A (zh) * 2020-08-20 2021-04-13 国家电网公司华中分部 一种基于虚拟机与容器的混合调度方法
CN112653571B (zh) * 2020-08-20 2024-03-22 国家电网公司华中分部 一种基于虚拟机与容器的混合调度方法
CN112558998A (zh) * 2020-12-28 2021-03-26 慧科教育科技集团有限公司 一种实验内容研发平台
CN112767207A (zh) * 2021-01-29 2021-05-07 江苏省徐州财经高等职业技术学校 一种基于容器的软件定义网络实验教学系统及教学方法
CN113096501A (zh) * 2021-03-03 2021-07-09 安徽电子信息职业技术学院 一种基于工业物联网的plc实验装置及其应用
CN113205434A (zh) * 2021-04-27 2021-08-03 杭州电子科技大学 一种基于容器技术的在线实验教学系统及方法
CN113296766A (zh) * 2021-05-31 2021-08-24 中电福富信息科技有限公司 基于Seldon的AI模型发布方法及系统
CN113470483B (zh) * 2021-06-01 2023-02-17 长江大学 基于Docker和Asterisk的软交换实验平台和实验方法
CN113470483A (zh) * 2021-06-01 2021-10-01 长江大学 基于Docker和Asterisk的软交换实验平台和实验方法
CN114005325A (zh) * 2021-11-16 2022-02-01 浪潮卓数大数据产业发展有限公司 一种基于大数据的教学实训方法、设备及介质
CN114005325B (zh) * 2021-11-16 2024-03-29 浪潮卓数大数据产业发展有限公司 一种基于大数据的教学实训方法、设备及介质
CN114693482A (zh) * 2022-04-14 2022-07-01 湖南智擎科技有限公司 在线编程实验与开源项目贡献转化方法和装置
CN114693482B (zh) * 2022-04-14 2024-04-16 湖南智擎科技有限公司 在线编程实验与开源项目贡献转化方法和装置

Also Published As

Publication number Publication date
CN109636691B (zh) 2022-08-16

Similar Documents

Publication Publication Date Title
CN109636691A (zh) 一种基于docker的在线实验教学平台及实现方法
CN105336233A (zh) 一种虚拟仿真教学应用平台
CN109255993B (zh) 基于多端互通的教学平台
CN106355971A (zh) 一种变电设备检修仿真培训系统
CN104537589A (zh) 一种教育云平台及其实现方法
CN102737536B (zh) 一种语言体验教学系统的工作方法
CN103514772A (zh) 基于wifi/3G通信的双屏多线程教育交互产品
CN102868726A (zh) 一种互联网信息发布方法及系统
CN103646134A (zh) 一种面向服务的网络化仿真系统动态生成方法
Zhao et al. Study on building a 3D interactive virtual learning environment based on OpenSim platform
CN113763771A (zh) 一种基于网络的船舶轮机模拟训练考评系统及实现方法
CN113014653B (zh) 一种服务于分布式实验教学环境的在线教育云平台
CN110889069A (zh) 一种基于web在线学习的资源访问平台
Wei et al. Design and implementation of interactive visual communication teaching system based on CAD technology
CN109166063A (zh) 一种心理咨询技能在线训练平台及方法
CN116662116A (zh) 一种基于云平台的模训准备一键启动方法
CN112631578B (zh) 一种品模试验环境通用分布式实时仿真平台
Qiu Development and implementation of learning system of an intelligent learning system for ideological and political education in colleges under mobile platform
Micciolo Designing a visual programming language for the creation of multiplayer embodied games
Micciolo Physical Games for Learning II
CN116048612A (zh) 项目生成方法、装置、插件与电子设备
Lin Application of Big Data Platform in Course of Java Language Programming.
Liu et al. A Cloud-based Virtual Experiment Platform for Computer Hardware Teaching
Lu Design and implementation of an interactive information system for university education under the cloud service model
CN111552192A (zh) 机器人导览员展厅物联网系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant