资源描述
工作交接说明
郝宁
2015/3/3
一.文档资料
项目介绍
项目名称:测验系统1.0
项目地址:
概要说明
该项目主要为培训业务提供考试服务。试卷分为在线考试和在线测验,随堂测和随堂练,包含一部分调查问卷的功能在里面。
考试题目支持单选、多选、判断、填空、简答五种题目。
数据字典
参照:
接口定义
参照:
命令清单
启动命令:
sh /opt/yanxiu/yanxiu-quiz/bin/start.sh (测验系统后台服务)
sh /opt/yanxiu/yanxiu-quiz/bin/kill.sh (测验系统后台服务)
sh /opt/yanxiu/bin/start-quiz.sh | stop-quiz.sh | restart-quiz.sh (测验系统WEB RESIN服务)
sh /opt/yanxiu/bin/createQuiz.sh -qid 18000 (测验系统考试静态化命令)
环境介绍
开发环境:本地开发
线上环境:192.168.1.211 192.168.1.95
依赖服务
单点登录:yanxiu-passport
NOSQL服务:
ttserver 存储用户考试过程中的相关状态(答题机会,答题草稿)
redis 存储考试相关数据信息(试卷,试题,成绩)
系统架构
服务器架构
代理服务器(Ngnix) + WEB服务器(Resin),通过Ngnix做负载均衡
代码设计
MVC 框架:Struts + Spring + Hibernate
R P C 框架:Thrift
服务策略
试卷访问采用页面静态化策略
安全策略
所有内网接口,采用参数过时时间,加密传输方式
在线考试接口WEB前端采用FLASH插件方式进行数据交互,交互过程采用参数过时时间,加密传输方式
具体实现:增加时间戳,加密字符串(参数加密后)
同步策略
异步同步,失败容错,阻塞队列
设计模式
生产者-消费者模式
单例模式
二. 代码介绍
用户访问(QuizAction.java)
页面展示
.quiz()
题目提交
.submitQuiz()
创建试卷
.createQuiz()
开始答题
.startQuiz()
查看成绩
.viewScore()
培训业务(CreateQuizAction.java)
创建/修改试卷
.createQuiz()
用户所有测验结果
.p_res()
试卷所有测验结果
.quiz_res()
取消成绩
.qs_c()
注销成绩
.zs_c()
三.提交流程
第一步:用户答题后,访问提交接口
第二步:解析答题信息,计算成绩
第三步:同步用户成绩
用户成绩同步流程
客户端访问成绩同步接口,成绩加入队列
服务端读取队列,调用培训接口,同步数据
展开阅读全文