基于Django和Docker的网络教育平台设计文献综述
2020-05-04 21:17:13
当前,计算机网络已经遍布全球的每一个角落,信息化、网络化成为时代的潮流和未来的发展趋势。过去的几年间,大规模网络开放课程(MOOC)这一教学形式被世界各地高校接受,许多 MOOC 机构随之成立,为 MOOC 提供所需的技术支持和教学支持。MOOC 在全球范围的迅猛发展为高校的教学和在线教育带来了新的契机。
2012 年,MOOC在全球教育界掀起了 “一场数字海啸”,这一年在美国诞生了目前全世界最大的三家 MOOC 运作机构:Coursera、edX、Udacity。这三家运作机构并没有使用已有的远程教育平台,而是自主开发了创新平台来适应大规模在线开放教育的新潮流。2013 年MOOC正式进入我国之后发展迅速,引起社会各界的注意与重视,从理论到实践都取得了重大进展和丰硕成果,也产生了一批像:中国大学MOOC、网易公开课、学堂在线、爱课程等有影响力的MOOC平台。
MOOC 正在悄然地改变人们的学习和生活方式,4G网络的普及,无线网络的运用都给传统的教学带来了巨大的影响。MOOC 为我们的学习带来了巨大的便利,足不出户便可以接受最顶尖的高等教育。
2014年,国内慕课用户仅150万人;但2015-2017年间,国内慕课行业迅速发展,至2015年底,行业用户增长至575万人,增长速度高达283%;至2016年10月,国内慕课网站用户规模已突破1000万人。
随着用户规模、用户访问量增加的同时,单块架构的MOOC应用的维护成本、人员的培养成本、缺陷修复成本、技术架构演进的成本、系统扩展成本等都在增加。单块架构曾经的优势已逐渐不再适应时代的快速变化,互联网应用正逐步向微服务化过度。
Docker技术是一种开源的微服务化应用容器引擎,随着云时代的到来,企业多将应用部署在云服务器上,那么降低资源成本,提高利用效率就成为重中之重,Docker技术的设想是将操作系统比作一个货轮,每一个在操作系统基础上的软件都如同一个集装箱,用户可以通过标准化手段自由组装运行环境,同时集装箱的内容可以由用户自定义,也可以由专业人员制造。需要某个软件的时候就将这个集装箱装载上货轮,不需要的时候就将其卸载,通过这样实现服务器资源的弹性扩展。
为了适应当今社会越来越多对于MOOC在线教育学习的诉求,实现更快的开发迭代和更好的弹性伸缩,本课题基于Python语言的Django框架开发一套轻量级的网络教育平台,并通过Docker容器技术实现快速部署和运维。
2. 研究的基本内容与方案
{title}一、基本内容- 设计系统基本框架;
- 设计数据库,构建具体模型;
- 设计后台管理系统;
- 设计前端显示系统;
- 进行前端展示页面的美化和插件开发;
- 打包Docker镜像并部署至服务器。
- 完成网站设计,实现用户的登陆、学习、评论、交流等基本操作和管理员的审核、发布、修改等管理操作;
- 打包成Docker镜像部署在云服务器上
- 系统框架设计。架构上使用当前流行的 B/S 结构,即浏览器/服务器架构。具体框架选用Python语言开发的Django MVC结构,分别为model模型层、view视图层、control控制层。数据库使用关系型数据库管理系统 MySQL,存储所有的表单信息。前端面板使用Jquery库开发。部署服务器使用nginx做负载均衡和 redis 进行缓存,极大提高系统应对大规模访问的能力。
- 数据库设计。根据用户,课程和机构三者之间的实体关系进行建模,确定实体间的一对一,一对多,多对一,多对多的关系完成数据库的字段,主键和外键关系设计。
- 前端模块的实现。采用HTML5和CSS3编写前端显示页面,主要包括了用户的登录、注册、找回密码、个人中心和查看课程、观看课程、评论课程、收藏课程等功能。后端模块则主要实现了课程管理,机构管理和认证授权的功能。
- 后端模块的实现。主要是依托Django自带的后台管理系统二次开发,实现对用户、课程、机构、和用户操作的管理。
- 构建docker应用,打包部署至服务器。
[1] 刘长龙,Python高效开发实战—Django,Tornado,Flask,Twisted[M],北京:电子工业出版社,2016
[2] Antonio Mele, Django By Example[M], Bermingham: Packt Publishing,2015
[3] 刘欣,基于 MVC 模式的 Web 软件系统开发框架设计与实现[D],山东大学,2013
[4] Christopher Negus著,任发科、王东译,Docker容器[M],北京:人民邮电出版社,2017
[5] 伍阳. 基于Docker的虚拟化技术研究[J]. 信息技术, 2016(1):121-123.
[6] Suryanto W, Irnaka T M. Web-based application for inverting one-dimensional magnetotelluric data using Python[J]. Computers amp; Geosciences, 2016, 96:77-86.
[7] 尹高. 基于Docker的服务器运维平台的设计与实现[D]. 华中科技大学, 2016.
[8] 李秀丽. 我国高校慕课建设及课程利用情况调查分析——以中国大学MOOC等四大平台为例[J]. 图书馆学研究, 2017(10):52-57
[9] Paraiso F, Challita S, Al-Dhuraibi Y, et al. Model-Driven Management of Docker Containers[C]// IEEE, International Conference on Cloud Computing. IEEE, 2017:718-725.
[10] 汪昱帅. 基于微服务架构的网络教育平台的构建方案分析及研究[J]. 信息与电脑(理论版), 2018(1) :94-98
[11] 黄传禄. 基于Python的MYSQL数据库访问技术[J]. 现代信息科技, 2017, 1(4):73-75.
[12] 刘熙, 胡志勇. 基于Docker容器的Web集群设计与实现[J]. 电子设计工程, 2016, 24(8):117-119.
[13] 冀荣华, 高万林, 郑立华,等. 基于edX的MOOC教学平台——雨虹学网建设与课程实践[J]. 软件工程, 2017, 20(7):55-56.
[14] 夏天宇. 面向Docker的微服务部署策略研究[D]. 厦门大学, 2017.
[15] 张睿涵. 基于经典MVC架构的实现Web应用系统设计与实现[J]. 数码世界, 2017(4):17-18.