微服务架构的在线课程学习系统的研究与设计
2022-05-27薛云兰黄嘉浩邵桐杰
薛云兰 黄嘉浩 邵桐杰
摘 要: 随着互联网技术和数字化教育的发展,在线课程学习与线下课堂逐步融合互补。针对线下课堂时间和空间的限制,以及无法定制个性化学习的缺陷,设计一套SpringCloud微服务架构在线课程学习系统。系统包含账号登录、视频观看、课程学习、评论收藏、个性化分析、学习路线推荐等功能。该在线课程学习系统实现了资源共享,其灵活性、便捷性突破了时空的制约,同时其个性化分析可以对学员的学习情况和兴趣进行分析并针对性的进行推荐。
关键词: 在线学习; SpringCloud; 数字化教育; 微服务架构
中图分类号:TP319 文献标识码:A 文章编号:1006-8228(2022)05-130-04
Research and design of online course learning system with microservice architecture
Xue Yunlan Huang Jiahao Shao Tongjie
Abstract: With the development of Internet technology and digital education, online course learning and offline classrooms gradually merge and complement each other. Aiming at the time and space limitations and the inability to customize personalized learning of offline classroom, a set of online course learning system based on SpringCloud microservice architecture was designed. The system includes operations such as account login, video viewing, course learning, comment collection, personalized analysis, and learning route recommendation. This system realizes resource sharing, and its flexibility and convenience break through the constraints of time and space, while its personalized analysis can analyze the learning situation and interests of students and make targeted recommendations.
Key words: online learning; Spring Cloud; digital education; microservice architecture
引言
我国《教育信息化“十四五”规划》、《教育信息化中长期发展规划(2021—2035年)》、《教育信息化2.0行动计划》[1]中提出,将教育事业与智能科技技术互相融合。
要实现“互联网+教育”、“智能+教育”、“数字化教育”,在线课程是基础。本文采用SpringCloud微服务架构设计思想,结合SpringBoot后端框架和前端Vue.js框架,设计并实现在线课程学习系统。根据学校的教学需求,设计系统功能模块:课程管理、学情分析、课程学习、后台管理等。
1 系統需求分析
1.1 系统用户分析
在线课程学习系统主要面向学校的教师用于线上线下混合式教学和机构的课外培训课程购买学习,主要用户有学生、教师、系统管理员,在对这三种用户角色的职责需求调研分析后,归纳出用户的功能需求、不同的功能权限、不同角色的平台展示页面需求。
⑴ 学生用户
学生用户是在线课程学习网站的主要使用者,可以对在线课程视频进行浏览查看、查询、观看、收藏与下载;在个人中心信息模块中可以编辑修改个人基本资料,包括头像、昵称等;在课程学习页面可以对课程进行评论发布功能。
⑵ 教师用户
教师需要在本系统中发布课程并上传课程视频资源,对课程进行管理;能够查看学生学习情况;对学生进行管理等功能。
⑶ 系统管理员
系统管理员主要管理课程云视频资源的监管与审核、教师信息、用户权限与系统菜单管理。
1.2 系统核心业务流程分析
本小节重点分析在本课程学习系统中学生学习课程、教师管理课程、系统管理员维护本系统与管理云课程资源的流程,流程图如图1所示。
核心业务流程描述如下。
学生登录或注册后登录本系统,进行个人信息修改,进入课程系统首页,一是选择首页热门课程进行学习或选择热门教师学习旗下开放的课程;二是选择课程分类页面,进行个人兴趣课程的筛选进而学习;三是选择课程教师的页面,选择青睐的教师名下课程。学生在本系统中学习课程的情况数据返回到后台管理系统中,以备统计分析。
教师登录课程学习后台管理系统进行课程管理,可以创建课程、上传课程视频资源、查看和分析学生学习课程情况等。该系统用于教学管理,可以对教学做出调整。
系统管理员根据教师反映的情况对热门课程进行封面宣传,通过轮播图形式,增加学生对该门课程的吸引力。
2 系统架构设计
为了应对现如今大流量、大数据的互联网日渐访问增量中,采用SpringCloud微服务架构设计思想,通过Vue.js作为前端框架和SpringBoot作为后端框架进行结合设计开发[2]。
2.1 系统前端设计
系统的前端设计部分为了服务用户进行数据交互与数据展示所设计。主要分为两部分(即Web客户端与后台管理服务端),一是为学生用户(或非系统管理员用户)用于课程学习的前台网站;另外则是为了系统管理员与教师用户服务的后台管理系统。
前端设计部分分为视图层与Node.js服务层。
前台Web客户端需要呈现给用户数据转变为视图表示并进行交互,即要求页面美观、大方、简洁的观感。在视图层中采用HTML5、CSS3、JavaScript等设计实现页面的技术,通过Ajax能够实现跟后端服务端接口API的异步请求功能进行数据交互,并实现异步更新数据[3]。因为涉及到学生学习课程情况可视化分析需求,故采用了基于JavaScript实现的开源可视化图表库ECharts[4],用于学生学情分析可视化图表绘制。
在服务层中,考虑到应对网站流量爆发、减轻服务器压力与渲染缓存压力,采用了一款基于Vue.js的Nuxt.js服务端渲染前端框架对前台Web客户端进行开发[5]。此框架具有模块化结构模式,默认优化应用程序,服务端渲染即将基于Vue的组件在服务端渲染成HTML并传输到Web客户端,能够得到更高的性能释放和开发友好的效果,对于内容性网站来说,更加容易被搜索引擎抓取内容,提升SEO排名。
2.2 系统后端设计
后端设计的结构层次分为网关层、业务服务层、基础服务层、数据存储层。
网关层主要由SpringCloud中的Gateway網关服务、基于OAuth2.0令牌授权机制的第三方登录方法、基于Token认证的JWT(JsonWebToken)用户认证方法三种技术结合而成,为用户的登录验证、外部请求转发后端服务、权限校验、监控限流等功能提供技术支持。
业务服务层主要是针对在线课程学习系统的各种业务逻辑处理,即对各个功能模块进行编写业务代码。通过采用SpringBoot开发框架结合SpringCloud微服务架构设计的思想,将单体应用服务改进为各个主要功能模块单独成立服务模块,例如:课程中心服务,内含教师管理、课程管理两大核心业务;推荐服务,对热门课程和热门讲师进行首页封推;对象存储服务,使用云服务资源对该系统用户头像、课程封面等图片的存储与下载提供支持;验证码服务,使用SpringBoot开发框架内置的邮箱发送的子模块对注册用户发送自主设计随机验证码进行用户注册验证或通过购买云服务资源中的短信验证码发送方案结合开发使用等各种主要业务服务模块。
在该系统开发过程的后端服务端对各种数据库数据表数据的操作使用中,采用了基于MyBatis数据库操作框架的一个增强型工具——MyBatis-Plus。对于任何使用MyBatis能够对数据库数据表进行增删改查等一系列操作的数据库都能够支持,并且对于MyBatis原生操作框架做了增强操作,引入此工具对于项目的MyBatis框架来说无任何侵入式损害,并且能自动注入基本的增删改查操作,直接面向对象操作,能有效提高开发的效率。
基础服务层由采用SpringCloud微服务架构所创建的Nacos注册与配置中心、SpringCloud提供的伪HTTP客户端OpenFeign组件、阿里巴巴团队开源的服务容错综合性解决方案Sentinel(分布式系统流量防卫兵)、用于表格数据处理的EasyExcel插件等组成。通过整合这些组件来为在线课程学习系统提供服务注册、服务发现、服务配置、服务容错、服务调用等功能应用,为该系统打下雄厚的架构基础,也为了日后能够高效升级迭代内容。
数据存储层,数据库存储与管理的工具,采用了MySQL数据库结合Redis缓存数据库使用,通过Redis非结构数据缓存机制对MySQL结构化数据的存储与访问管理提供补充增强作用,提高了系统内部运行速度和提升用户在该系统中的学习服务体验。对于音视频和图片等文件的存储使用云服务资源进行数据存储与管理。
2.3 系统数据库设计
根据上述的系统功能模块的需求分析和用户需求分析,构建关于在线课程学习系统的数据库以及相关数据表,例如课程学习服务就涉及到教师信息表、课程信息表、课程分类表、课程章节表、课程视频信息表等;用户个人中心服务主要有学生用户信息表;首页推荐服务主要有课程推荐类型表和课程推荐信息表。数据库设计思想为分库分表,不用的服务采用不同的数据库,如:以edu为前缀的是课程中心服务,以ucenter为前缀的是学生用户服务,以cms为前缀的是首页推荐服务,以statistics为前缀的是系统日常数据统计服务。
3 系统功能模块设计与实现
系统功能模块设计分为Web客户端与后台管理系统两部分,系统的功能模块结构如图2所示。
3.1 Web客户端功能模块
通过对学生用户的功能需求分析,归纳整理出登录注册模块、在线课程学习模块、用户中心模块三大核心业务模块。
⑴ 登录注册模块
登录注册模块是学生用户在该学习系统中进行在线观看课程学习的第一步,登录后自动跳转至系统首页。系统的首页可以不用进行登录就进行浏览,面向的是游客角色。若在系统首页点击其他服务模块,如点击热门课程观看,查看课程分类等操作,系统会自动跳转至登录注册页面,登录后才能进行其他相关操作。注册页面填写相关用户信息,如昵称、手机号、邮箱、密码、确认密码等信息,填写完毕后点击发送验证码按钮,在5分钟内填写系统发送到填写的邮箱中的随机验证码,后点击注册,完成系统验证并注册成功。注册成功后跳转登录页面进行登录即可进入系统的首页。
⑵ 在线课程学习模块
在线课程学习模块分为课程详情模块、课程观看模块、课程收藏模块、课程分类模块。
学生用户在登录在线课程学习系统后,可以点击上方导航栏中的课程模块,在该模块下存在着系统所收录的全部课程学习资源。并按照课程学科已经分门别类好了,学生可以通过点击分类进行筛选课程来学习。点击课程封面中的立即学习按钮后转至课程详情页面,在课程详情页面可以清晰知道该门的主要教授内容,页面右侧栏下显示该门课程的授课教师和个人简介。点击授课教师头像自动跳转至授课教师个人详情介绍页面,页面下方还展示其下授课的课程,学生可点击进行学习。课程详情页面中的下方展示课程的大纲与小节,点击小节即可跳转至课程视频观看页面进行课程学习。
⑶ 个人中心模块
个人中心模块分为:我的基本资料、我的学习、消息中心三个模块。其中我的基本资料为学生用户登录注册后,可以修改和完善个人信息;我的学习中,可以查看已收藏的课程列表;消息中心显示系统的公告信息。
3.2 后台管理系统功能模块
后台管理系统更多的是面向管理者用户使用和作用于Web客戶端交互,主要有教师管理模块、课程管理模块、封面推送管理模块、菜单管理、权限管理、课程学情分析可视化模块等。
后台管理模块着重在于教师管理模块与课程管理模块,前者系统管理员用于对授课教师个人信息的增删改查操作,后者则是教师用户在此模块中进行创建课程、为课程添加分类、编写课程大纲与小节、上传课程视频资源、发布课程的操作。后台管理系统实现图如图3所示。
4 结束语
微服务架构的在线课程学习系统实现了课程资源管理,在线学习,个性化评价并推荐,由传统的线下课堂教学转变为以学生为中心的开放式“互联网+”课堂,对于高校和社会的人才质量培养路径中,起到强化补充作用,有效提升学生的学习动力和教师授课的效率。接下来的研究,本系统优化升级,增添课程论坛、课程问答等学习模块,让学生与教师之间的沟通交流更加高效、更加人性化。
参考文献(References):
[1] 祝智庭,许秋璇,吴永和.教育信息化新基建标准需求与行动
建议[J].中国远程教育,2021(10):1-11,76
[2] 薛云兰,郑海锋,黄嘉浩.基于Spring Boot框架的网络教学
管理系统[J].软件导刊,2020,19(9):146-151
[3] 綦慧,徐晓慧.基于Web系统的大数据搜索技术的实现和
优化[J].计算技术与自动化,2021,40(1):155-163
[4] 郑嘉怡,陈涛,齐世玲,等.基于Echarts的智能车间数据可视
化系统[J].电脑知识与技术,2021,17(25):68-69
[5] 徐小辉,刘江涛,高涵,等.基于SpringBoot+Vue框架的采气方
案系统开发[J].计算机仿真,2021,38(6):248-250,382
收稿日期:2021-10-20
*基金项目:2020年广东省教育厅重点平台及科研项目(特色创新类项目)“知识图谱和深度学习混合驱动的推荐学习算法及在终身教育中的应用”(2020KTSCX401); 2021年广东省“攀登计划”一般项目“基于大数据分析的网络教学管理个性化推荐系统”(pdjh2021b0766); 2020年广东开放大学(广东理工职业学院)校级科研项目“基于时序事件和语义背景的深度学习模型在事件抽取和预测任务中的研究”(ZD2001)
作者简介:薛云兰(1981-),女,安徽合肥人,工学博士,讲师,主要研究方向:大数据分析、个性化推荐、自然语言处理等。