2020.04
在教学中采用了项目驱动的教学模式,不但可以使学生获得相应的知识和技能,而且能够使学生把学到的知识应用到实践中去,具有可以激发学生的学习兴趣、提高学生的编程能力等优点,该教学模式能够成功实施的关键是如何设计合适的教学项目案例。
设计和实现了一个在线考试系统,用于《Web 开发技术》课程的教学项目案例,同时学生也使用该系统完成在线作业和单元测试。系统采用前后端分离的架构模式,前端使用Vue.js 实现,后端使用Spring Boot 实现。
1系统需求
系统的参与者有3种,分别是学生、教师、系统管理员,他们进入系统都需要注册和登录。
学生可以使用考试中心进行考试,考试中心发布了
所有学生可以进行的考试和需要完成的作业。学生可以使用考试记录查看试卷和作业的结果、用时、得分、自行批改等。学生可以使用错题本查看做题的结果、分数、难度、解析、正确答案等。
教师可以使用班级管理对班级进行增、删、改、查等操作,也可以使用卷题管理对试卷和题目进行管理。试卷管理包括选择学科、试卷类型、试卷名称、考试时间等。对于试卷内容可以添加大标题和添加题目到此试卷中,最后组成一套完整的试卷。题目管理可以对作业或考试题目进行增、删、改、查等操作,考试或作业的题型包括单选题、多选题、判断题、填空题、简答题等,这些题型都支持图片、公式。题目可以在线编辑,也可以通过导入功能导入Excel 中已经编辑好的题目。
系统管理员通过用户管理对学生、教师、系统管理员这3种角的用户进行增、删、改、查等管理操作。
系统管理员通过教育管理对学科、专业进行增、删、改、查等操作。系统管理员通过消息中心可以对多个用户进行消息发送,发送的消息包括加入班级、推送试卷等。系统管理员通过日志管理查看系统对用户的基本操作进行的日志记录,从而了解用户对系统的使用情况。系统管理员通过任务管理对分配给学生的作业、考试任务进行管理。系统用例图如图1所示。
2系统架构
系统采用了前后端分离的架构模式。前端使用vue
2.6.10实现,使用了vue-router、element-ui、js-cookie、axios 等vue 插件库。vue-router 实现前端页面路由功能,element-ui 是饿了么出品的Vue 2的Web UI 工具套件,
js-cookie 实现客户端Cookie 的存取,axios 实现向后端发送AJax 请求,从而获得后端发送过来的JSON 数据。
后端使用了Spring Boot 2.1.6实现。由Spring Secu⁃rity 对前端发来的请求进行拦截并进行安全认证,从而保证系统信息的安全性。如果前端数据请求合法,前后端分离的在线考试系统设计与实现
刘金羽
(海南大学,海口570228)
要:对于Web 开发,前后端分离的架构模式具有很多优点,例如,局部性能提升、彻底解放前端、提高工作效率、降低维护成本等。采用前后端分离架构模式设计实现了在线考试系统,前端使用Vue.js 技术,后端使用Spring Boot 技术实现。系统已经作为教学项目案例应用到本人《Web 开发技术》课程的教学中,取得了良好的教学效果。系统已发布到阿里云服务器上,教师可以利用本系统发布课后作业、单元测试,系统自动判卷,教师只需要出题和导出成绩,节省了判卷的时间。关键词:在线考试系统;
教学项目案例;前后端分离;Vue.js 技术;Spring Boot 技术
基金项目:海南省高等学校教育教学改革研究项目(项目编号:Hnjg2016-6);海南大学教育教学改革研究项目(项目编号:hdjy1615)。
图1系统用例图
考试记录学生
考试中心错题本
注册登录教师
班级管理
卷题管理
系统管理员
用户管理日志管理
任务管理
教育管理消息管理
44
2020.04
图2系统架构图
Spring Security 就会把请求传递给Spring MVC 的控制器组件,控制器组件对请求进行解析以后会调用相应的Service 组件来完成业务逻辑处理。数据库访问由Repos⁃itory 组件完成,如果业务逻辑处理需要访问数据库,则
Service 组件会调用Repository 组件来完成此功能。
数据存储层由PostgreSQL 和Redis 数据库构成。
Redis 是一个开源的高性能的key-value 存储系统,利用Redis 对经常访问的数据进行缓存,可以提高系统的性能。PostgreSQL 可以说是目前功能最强大、特性最丰富和结构最复杂的开源数据库管理系统,Spring Boot 通过Spring Data JPA 把数据持久化到PostgreSQL 数据库中。
3
系统设计与实现
3.1前端
前端主要使用element-ui 2.12.0来实现界面的设
计。element-ui 包括表单输入组件、菜单、布局、彩、图标等常用Web UI 组件,设计美观,复用性强,可以提高构建页面的效率。使用vue-router 实现前端页面路由功能,使用js-cookie 实现客户端cookie 的存取,使用axios 实现向后端发送AJax 请求,从而获得后端发送过来的JSON 数据。3.2后端
后端使用了Spring Boot 2.16的Spring Security、Spring MVC、Spring Data JPA 等技术实现。
安全性是软件设计必须要考虑的事情,它确保只有
被授权的用户才能访问某些重要的资源。在保护应用程序时,通常采用的安全机制是认证和鉴权。认证是指根据声明者所特有的识别信息,确认声明者的身份。不同
权限级别的用户只能访问指定级别的资源而不能越级访问。鉴权就是鉴别一个声明者所声明的身份权利,使其能够访问和自己的身份相匹配的资源。
Spring Security 是一个功能强大且灵活的安全框架,
用于保护基于Java 的Web 应用程序。尽管Spring Secu⁃rity 通常与基于Spring 的应用程序一起使用,但也可以
使用它来保护非基于Spring 的Web 应用程序。
Spring Security 默认是使用Session 进行认证,这种
方式对于现代Web 应用程序来说具有一定的局限性。
JWT 是目前最流行的跨域认证解决方案,因此,使用JWT 结合Spring Security 来实现安全控制。JWT 是JSON Web Token 的缩写,它是基于RFC 7519标准定义的一
种可以安全传输的小巧和自包含的JSON 对象。由于数据是使用数字签名的,所以是可信任的和安全的。JWT 可以使用HMAC 算法对secret 进行加密或者使用RSA 的公钥私钥对来进行签名。
JWT 的工作流程一般分为以下几个步骤(假设受保护的API 在/protected 中):(1)用户导航到登录页,输入用户名、密码,进行登录。
(2)服务器验证登录鉴权,如果该用户合法,根据用户的信息和服务器的规则生成JWT Token。(3)服务器将该token 以json 形式返回(不一定要json 形式,这里说的是一种常见的做法)。(4)用户得到token,存在localStorage、cookie 或其他数据存储形式中。
(5)以后用户请求/protected 中的API 时,在请求
的header 中加入Authorization:Bearer xxxx (token)。此处注意token 之前有一个7字符长度的Bearer。
(6)服务器端对此token 进行检验,如果合法就解
析其中内容,根据其拥有的权限和自己的业务逻辑给出对应的响应结果。
(7)用户取得结果。JWT 本身并不复杂,但安全整体是一个比较复杂的事情,JWT 只不过提供了一种基于
token 的请求验证机制。但用户权限,对于API 的权限划分、资源的权限划分,用户的验证等等都不是JWT 负责的。也就是说,请求验证后,你是否有权限看对应
的内容是由你的用户角决定的。所以还要利用Spring Security 来简化工作。
为了简化工作,这里引入一个比较成熟的JWT 类
前端Vue 组件
vue-router
element-ui
前端测试和后端测试的区别js-cookie axios
AJAX
JSON
后端Spring Boot 组件
Spring Security
Spring MVC
Service
Repository
持久化
反持久化
数据存储层
postgresql
redis
45
2020.04
压力丧失时,VMS 的燃油管理系统将及时选择辅助DC 泵,作为供油管路压力的备份压力源。
异常后果2:重心偏移。异常原因:燃油泄漏。处理措施:
进行重心控制:随着燃油的消耗,飞机的重心会发生变化。一旦系统探测到某一油箱有燃油泄漏情况,VMS 将立即计算确定新的重心位置并给燃油系统发出指令进行燃油传输以调节重心如图1所示。
VMS 根据当前飞机飞行状态和重心位置计算出飞
机最佳重心位置;根据最佳重心位置和实际重心位置的差值,在重心允许范围内主动重心控制器通过调整各油箱的燃油流量来改变飞机燃油系统油量分布,使飞机重心位置接近最佳重心位置,从而使飞机获得更满意的操纵品质和巡航性能[3]。
异常后果3:需要应急放油以紧急降落。
异常原因:发动机或飞机关键部位失效或其他导致
飞机必须尽快降落的失效。
处理措施:
在正常运行时,燃油传输程序通过从中央翼油箱有序地向供油油箱传输燃油以保持供油油箱满油。倘若飞机关键部位发生故障,VMS 收到故障信息后发出应急放油指令,燃油传输阀关闭,应急放油泵和应急放油阀启动,以进行应急放油至安全重量。
异常后果4:需要燃油冷却。
异常原因:液压或环控系统某部分过热。
处理措施:VMS 控制燃油系统增加冷却燃油流量进行局部冷却。
4
结语
介绍在飞机燃油系统的功能及与其他系统的交联关
系,在燃油系统发生异常的情况下VMS 的调度机制,按照不同的异常情况分别给出了不同的处理措施。VMS 通过对机载资源进行综合调度和管理,能够有效应对飞机的异常情况,保证飞行安全。
参考文献
[1]张晶,申功璋,杨凌宇,张磊.飞行器管理系统
(VMS)综述[C].中国航空学会控制与应用第十二届学术年会论文集,2006:244-251.
[2]李彦江,刘永寿,姜志峰,岳珠峰.飞机燃油系统
功能仿真分析[J].航空计算技术,2009,39(4):
113-116,122
[3]张晶,申功璋,杨凌宇.飞机主动重心控制系统设
计及应用[J].飞行力学,2008,26(6):68-72.
图1主动重心控制系统
VMS
X e
x eg
Q
e
重心允许范围
主动重心控制系统
燃油系统
燃油
重心估算系统
库,叫jjwt (github/jwtk/jjwt )。这个类库可以用于Java 和Android 的JWT token 的生成和验证。在项目的security 包中创建JWTUtil 类,该类使用JJWT 的API 来完成token 的生成和解析,和包中基于Spring Se⁃curity 的其他类一起来完成认证和授权。
如果前端数据请求合法,Spring Security 就会把请
求传递给Spring MVC 的控制器组件,控制器组件对请求进行解析以后会调用相应的Service 组件来完成业务逻辑处理。如果业务逻辑处理需要访问数据库,则Ser⁃vice 组件会调用Repository 组件来完成此。
4结语
前后端分离的架构模式具有很多优点,使用前后端
分离架构模式设计与实现了海贝学习在线作业考试系统。系统作为教学项目案例使用以后,收到了良好的教学效果。在线发布以后,学生使用系统完成部分课程的课后作业,减轻了教师批改作业的工作量。
(上接第14页)
46

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。