用户登录  |  用户注册
首 页毕业论文毕业设计下载定做交易过程截图支付宝在线支付
当前位置:完美毕业网毕业设计下载计算机毕业设计c#

口袋自考后台系统的设计与实现

联系方式:点击这里给我发消息QQ212181988
官方主页:www.biye114.com
图片预览: ;论坛转帖
插件情况:
售后服务:请联系客服QQ:212181988
一键分享拿折扣:
  • 好的评价 如果您觉得此软件好,就请您
      0%(0)
  • 差的评价 如果您觉得此软件差,就请您
      0%(0)

软件简介

 摘要:随着智能终端设备的普及和“互联网+”概念的提出,移动互联网已经涉入到我们生活的方方面面,“互联网+教育”近来更是处于风口浪尖。通过网络和智能终端设备,人们可以随时随地地学习,不再受时间和空间的束缚。高等教育自学考试是获取本科文凭的一个重要途径。通过“移动互联网+自考教育”,自考学子可以有效的避免自学考试与工作之间的冲突,轻轻松松获得本科文凭。
本文设计并开发了适用于高等教育自学考试 APP 的分布式后台系统。系统共分为六个模块:账户管理、考情资讯、自考社区、题库练习、视频课程和 Broker。六个模块被设计成独立进程,相互之间使用 protobuf-rpc-pro 框架进行 rpc 通信。本文对自考系统进行了需求调研、功能设计和架构设计,完成了自考系统数据库的设计和建立,完成了
Broker 子系统、账户管理子系统、自考资讯子系统的编码实现,最后对 Broker、账户管理、考情资讯三个部分进行了功能测试和性能测试。
目前,口袋自考后台系统已经正式上线,与 APP 端配合,对外提供自考教育服务,极大的方便了广大自考学子。今后,口袋自考后台系统将结合大数据推出更加个性化的自考教育服务。
关键词:高等教育自学考试;教育;protobuf-rpc-pro;protocol buffer













ABSTRACT

ABSTRACT: With the popularization of intelligent terminal and the raise of the Internet plus, gradually we cannot live without the mobile internet. Under this background, online-education gains more popularity than ever before. Everyone now can study anywhere and anytime without being restricted by time or space by intelligent terminals through the Internet. Self-Taught Higher Education Examinations (STE) is an essential way to earn a bachelor's degree. People can easily get a bachelor's degree avoiding the conflict between self-taught examinations and work through accepting online-education.
This article focus on the design and development of Koudaizikao Backend System. The system can be divided into six parts including Account Management, Examination Information, STE Community, Exercises, Video Course as well as Broker. These six modules were design into independent processes which communicates with each other via protobuf-rpc-pro framework. Above all, this article finished the requirement analysis and design of architecture and functional modules of the STE system. In addition, the database of the STE system was established after being designed. Also this article implemented the Broker subsystem, Account Management subsystem, Examination Information subsystem. Last but not least, the three subsystems mentioned above were tested in order to make sure they are satisfy the needs of function as well as performance.
So far, the STE background system has went live, combined with the mobile application end, providing STE service, which brings the people who will attend the STE convenience and high- efficiency. In the future, the STE background system will provide service which is more personalized combine with big data.
KEYWORDS : Self-taught higher education examinations; education; protobuf-rpc-pro;
protocol buffer


目 录
中文摘要 I
ABSTRACT II
目 录 III
1引言 1
1.1 论文背景 ............................................................ 1
1.2 项目价值与意义 ...................................................... 2
1.3 论文内容 ............................................................ 2
1.4 论文结构 ............................................................ 2
2相关技术介绍 4
2.1 NGINX ............................................................... 4
2.2 JETTY ............................................................... 4
2.3 REDIS ............................................................... 4
2.4 PROTOCOL BUFFER...................................................... 5
2.5 PROTOBUF-RPC-PRO .................................................... 6
2.6 MAVEN ............................................................... 6
2.7 LOG4J2 .............................................................. 6
2.8 GITLAB .............................................................. 6
3口袋自考后台系统需求分析 8
3.1 目标用户 ............................................................ 8
3.2 竞品分析 ............................................................ 8
3.3 任务与目标 .......................................................... 8
3.4 功能性需求 .......................................................... 9
3.4.1 视频课程 ........................................................ 9
3.4.2 练习巩固 ....................................................... 10
3.4.3 考情资讯 ....................................................... 11
3.4.4 社区交流 ....................................................... 11
3.4.5 账户管理 ....................................................... 12
3.5 非功能性需求 ....................................................... 13
3.5.1 系统性能要求 ................................................... 13
3.5.2 可拓展性与可维护性 ............................................. 13
3.5.3 可靠性与安全性 ................................................. 13
3.6 运行环境概述 ....................................................... 14
3.7 小结 ............................................................... 14
4口袋自考后台系统概要设计 15
4.1 系统整体架构设计 ................................................... 15


4.2 BROKER 子系统功能设计 ................................................ 16
4.2.1 功能结构图 ..................................................... 16
4.2.2 功能模块描述 ................................................... 16
4.2.2.1 数据校验 ..................................................... 16
4.2.2.2 请求转化 ..................................................... 16
4.2.2.3 反爬虫 ....................................................... 17
4.2.2.4 负载平衡 ..................................................... 17
4.2.2.5 请求日志 ..................................................... 17
4.2.2.6 响应日志 ..................................................... 17
4.2.2.7 处理统计 ..................................................... 17
4.2.2.8 异常日志 ..................................................... 18
4.3 账户子系统功能设计 ................................................. 18
4.3.1 功能结构图 ..................................................... 18
4.3.2 功能模块描述 ................................................... 19
4.3.2.1 手机注册与登录 ............................................... 19
4.3.2.2 短信验证 ..................................................... 19
4.3.2.3 密码找回 ..................................................... 19
4.3.2.4 专业管理与科目管理 ........................................... 19
4.3.2.5 设备记录 ..................................................... 20
4.3.2.6 信息修改 ..................................................... 20
4.3.2.7 奖学金 ....................................................... 20
4.4 资讯子系统功能设计 ................................................. 20
4.4.1 功能结构图 ..................................................... 20
4.4.2 功能模块描述 ................................................... 21
4.4.2.1 资讯选择 ..................................................... 21
4.4.2.2 资讯阅读 ..................................................... 21
4.4.2.3 评论 ......................................................... 22
4.4.2.4 点赞、收藏、分享 ............................................. 22
4.5 题库子系统功能设计 ................................................. 22
4.5.1 功能结构图 ..................................................... 22
4.5.2 功能模块描述 ................................................... 23
4.5.2.1 出题 ......................................................... 23
4.5.2.2 判题 ......................................................... 23
4.5.2.3 错题篮与收藏夹 ............................................... 23
4.5.2.4 知识点讲解与题目讲解 ......................................... 23
4.5.2.5 评论与回复 ................................................... 24
4.5.2.6 分享 ......................................................... 24
4.6 社区子系统功能设计 ................................................. 24
4.6.1 功能结构图 ..................................................... 24
4.6.2 功能模块描述 ................................................... 25
4.6.2.1 板块关注 ..................................................... 25
4.6.2.2 发帖、跟帖、回复 ............................................. 25
4.6.2.3 点赞、收藏、分享 ............................................. 25


4.6.2.4 置顶 ......................................................... 25
4.6.2.5 统计 ......................................................... 25
4.7 视频子系统功能设计 ................................................. 26
4.7.1 功能结构图 ..................................................... 26
4.7.2 功能模块描述 ................................................... 26
4.7.2.1 浏览课程 ..................................................... 26
4.7.2.2 课程介绍 ..................................................... 27
4.7.2.3 课程目录 ..................................................... 27
4.7.2.4 课程购买 ..................................................... 27
4.7.2.5 课程播放 ..................................................... 27
4.8 数据库设计 ......................................................... 27
4.8.1 数据库设计规范 ................................................. 27
4.8.2 账户数据实体关系图 ............................................. 28
4.8.3 账户数据字典 ................................................... 28
4.8.4 资讯数据实体关系图 ............................................. 29
4.8.5 资讯数据字典 ................................................... 30
4.8.6 题库数据实体关系图 ............................................. 30
4.8.7 题库数据字典 ................................................... 31
4.8.8 视频数据实体关系图 ............................................. 32
4.8.9 视频数据字典 ................................................... 32
4.8.10 社区数据实体关系图 ............................................ 33
4.8.11 社区数据字典 .................................................. 33
4.9 物理架构 ........................................................... 34
4.9.1 系统部署 ....................................................... 34
4.10 小结 .............................................................. 35
5口袋自考后台系统详细设计及实现 36
5.1 BROKER 子系统设计与实现 .............................................. 36
5.1.1 Broker 请求处理流程 ............................................. 36
5.1.2 Broker 子系统类图 ............................................... 37
5.1.3 Broker 重点实现 ................................................. 38
5.2 账户子系统设计与实现 ............................................... 39
5.2.1 账户登录 ....................................................... 39
5.2.2 奖学金修改 ..................................................... 40
5.2.3 短信验证码 ..................................................... 41
5.2.3.1 验证码存储与清除 ............................................. 42
5.2.4 更新设备信息 ................................................... 42
5.2.5 账户子系统类图 ................................................. 43
5.3 资讯子系统设计与实现 ............................................... 43
5.3.1 获取资讯列表 ................................................... 43
5.3.2 资讯评论 ....................................................... 44
5.3.3 资讯的缓存 ..................................................... 44
5.3.4 资讯点赞 ....................................................... 45
5.3.5 资讯子系统类图 ................................................. 46


5.4 系统运行效果 ....................................................... 46
5.4.1 后台运行效果 ................................................... 46
5.4.2 APP 请求效果 .................................................... 47
5.4.3 浏览器模拟请求效果 ............................................. 47
5.5 小结 ............................................................... 48
6口袋自考后台系统测试 49
6.1 目的和方法 ......................................................... 49
6.2 系统测试用例 ....................................................... 49
6.3 系统测试结果 ....................................................... 50
6.4 小结 ............................................................... 50
7总结与展望 51
7.1 总结 ............................................................... 51
7.2 展望 ............................................................... 51
参考文献 53
致 谢 54
附 录 55


1引言

飞速发展的移动互联网科技为传统行业带来了新的思考方式和运营理念。教育行业作为传统行业中的典型代表,在互联网科技浪潮的冲击下正在发生日新月异的变化。成人自学考试教育作为教育行业的一部分自然也在悄然的发生转变。而且成人自学考试教育由于存在工作时间与学习时间上的冲突,更应该受益于移动互联网带来的便利。

1.1论文背景

在社会经济高度发达的今天,社会竞争越来越激烈,工作要求越来越高。因此,学历的高低显得特别的重要,无论是为了满足工作需求,还是提升自己个人文化水平,学历都能充分地说明一切。学历是一个敲门砖,是你展现在别人面前的第一印象,是最直接的表现,有技术也要有文化,这样你既能用技术让别人心服口服,也能用知识让别人尊敬你。[1]
在当今社会 "文凭化"的理念下,学历会影响到一个人成长发展的各各方面,比如工作,事业,爱情等。具有高学历,你就具有更多的财富机会,具有更多精神上的财富,可以站在巨人肩膀上看世界,可以用更高的角度看问题。[1] 学历是企业对一个人认可,企业招聘的时候首先挑选的条件就是学历,在不了解的情况下,拥有的学历越高,具有的工作机会也就越多。学历不但对人生事业重要,对人生的爱情也很重要。爱情需要有共同语言,唯有两个人的学历相差不大的情况下,才能一起经营一个夸姣的家庭。
高等教育自学考试(Self-taught higher education examinations),简称自考,1981 年经国务院批准创立,是对自学者进行的以学历考试为主的高等教育国家考试。[2] 是个人自学、社会助学和国家考试相结合的高等教育形式,是我国社会主义高等教育体系的重要组成部分。学生经过系统的学习后,通过毕业论文的答辩、学位英语的考核达到规定成绩符合条件的毕业生,可申请授予成人学士学位、参加研究生考试,并可继续攻读硕士学位和博士学位。[3]
跟据搜狐新闻 2016 年 4 月 28 日的报道,从 2010 年开始,自学考试报名人数一路回暖,连年上升,2013 年 2140 人,2014 年 2190 人,2015 年 2230 人。[4] 综合来看,自学考试在未来几年内的报考人数任然相当巨大,而传统的自学考试教育选择在建立学校来提供教学,这与自学考试学生往往需要参加工作的实际情况相矛盾。自学考试考试结合移动互联网不但能够以其方便灵活的特性解决学员的困扰,也能利用大数据促进学员的学习。


1.2项目价值与意义

当广大因学历较低而困恼的人们纠结于传统自学考试教育的时间成本和当前工作的总总冲突时,本文所设计的口袋自考后台系统将能一扫他们之前的愁云。结合移动互联的便利性、灵活性和大数据分析,本文所设计的口袋自考后台系统可以帮助成千上万自考学子随时随地享受到最新、最好、最全的高等教育自学考试教育,还能拥有个性化的自学考试教育服务,包括针对性的知识点强化训练、高质量自学考试教育视频课程、准确无误考情分析、温暖的社区交流、以及贴心的官方自考时间安排提醒。让自考学子能够安心工作,快乐学习,合理的把握自学考试与个人工作之间的平衡,充分利用生活中的零碎时间补充自学考试相关知识。最后,在工作、学习两不误的情况下,轻松考取本科文凭,实现自己本科梦,为将来人生事业的进步打下坚实的基础。
在帮助自考学子考取本科文凭的同时,本文所设计实现的口袋自考后台系统也能促进广泛的个人自学和社会助学活动,造就和选拔出德才兼备的高素质人才,提高我国全民族的思想道德素质和科学文化素养,以适应社会主义现代化建设的需要。

1.3论文内容

本文主要讨论如何利用移动互联网的灵活性和便利性为参加高等教育自学考试的自考学子提供自学考试教育服务,以及提供哪些自学考试教育服务。为此,本文对自考学子群体所具有的共有特性和他们在自学考试方面的需求进行了调研,并对已经存在的和潜在的竞争对手的优点和缺点进行了仔细的分析。其后,根据调研结果本文设计并开发出一套适用于移动端的,用于帮助自学考试学子通过高等教育自学考试的软件系统—
—口袋自考后台系统。本系统不要求具体的前端实现,而是通过 HTTP 协议向任何被允许客户端提供高等教育自学考试服务的相关数据和资源。本系统能够为自考学子提供全面而系统的知识点讲解和教学,自考学子也能够通过本系统进行专业知识水平测试。此外,本系统还为自考学子提供了对应的高等教育自学考试相关的资讯消息和一个专供自考学子们相互交流的社区。
除了讨论如何为自考学子提供高等教育自学考试教育服务外,本文还通过 protocol- rpc-pro 框架为口袋自考后台系统设计了能够适应高并发、具备高可拓展性的分布式后台架构。使得口袋自考后台系统能够轻松应对未来的业务变更和急剧增加的访问量。

1.4论文结构

本文共分为以下部分:第一章,介绍了自学考试教育的行业背景和本文所设计的口


袋自考后台系统能够带来的改变;第二章,介绍了口袋自考后台系统开发过程中涉及到的先进技术和工具;第三章,对自考学子的需求和传统自学考试培训机构的特点进行了分析,同时也介绍了口袋自考后台系统的功能性需求与非功能性需求;第四章,依次介绍了口袋自考系统的整体架构、后台各个子系统的功能模块以及数据库设计;第五章,使用流程图、时序图、程序类图等 UML 工具对口袋自考后台系统的详细设计进行了说明,并展示了系统的运行效果;第六章,介绍口袋自考后台系统的测试的方法和测试中使用的测试用例;第七章,对整个系统的研发过程作总结和展望。


2相关技术介绍

在口袋自考后台系统的研发过程中使用了许多优秀的开源技术,包括 Nginx、Jetty、
Redis、Protocol Buffer、Protocol-rpc-pro、Maven、Log4j2、GitLab、Spring、Mysql 等。这些技术的成功应用极大的降低了系统的开发难度。下面本文将对其中的部分技术做一个概要的介绍。

2.1Nginx

Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在一个 BSD-like 协议下发行。由俄罗斯程序设计师 Igor Sysoev 所开发,供俄国大型的入口网站及搜索引擎 Rambler 使用。其特点是占有内存少,并发能力强。[5]本文所设计的“口袋自考后台系统”使用Nginx 作为反向代理服务为后端的业务系统
提供初级的安全防护和简单的负载平衡,以及为后端较慢的服务器提供缓冲服务。

2.2Jetty

Jetty 是一个开源的 servlet 容器,它为基于 Java 的 web 容器,例如 JSP 和 servlet 提供运行环境。Jetty 是使用 Java 语言编写的,它的 API 以一组 JAR 包的形式发布。开发人员可以将 Jetty 容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的 Java应用提供网络和 web 连接。[6]
相对于 Tomcat,Jetty 更轻量级。Jetty 为每个应用服务器省下的几兆内存,对于大的分布式环境则是节省大量资源。而且,Jetty 的轻量级也使其在处理高并发细粒度请求的场景下显得更快速高效。Jetty 也更灵活,体现在其可插拔性和可扩展性,更易于开发者对 Jetty 本身进行二次开发,定制一个适合自身需求的 Web Server。[7]
应为 Jetty 在处理大量请求下的性能优势和其可嵌入到代码中的特点,口袋自考后台系统将在请求分发处理模块 Broker 中使用 Jetty 作为内嵌的 servlet 容器,处理业务请求。

2.3Redis

REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统。Redis 提供了一些丰富的数据结构,包括 lists, sets, ordered sets 以及 hashes ,以


及和 Memcached 一样的 strings 结构。[8]
Redis 支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得 Redis 可执行单层树复制。[9]
Redis 是一个有着极高性能的 key-value 数据库,其官网给出的读的速度是 110000
次/s,写的速度是 81000 次/s。[9]
在口袋自考后台系统的题库练习子系统中将使用 redis 来缓存 MySQL 数据库中的题目和答案,以提高做题练习时的出题和判题速度,提升用户体验。

2.4Protocol Buffer

Protocol Buffers(PB) 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。[10] 它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。PB 相对于其他同类技术最主要的优点是:简单、快。图 2-1 是 PB 与同类技术的一个测试比较。[11]

图 2-1 性能测试图
PB 拥有非常优秀的向后兼容性,开发者不必担心因为消息结构的改变而造成的大规模的代码重构或者迁移的问题。因为添加新的消息中的 field 并不会引起已经发布的程序的任何改变。PB 语义清晰简单便于学习使用,不过这也限制了其对复杂概念的表述能力。
由于口袋自考后台系统各个模块之间只是进行简单格式的数据交换,且对效率有较高的要求,所以使用 PB 作为各个后台进程间的数据交换格式。


2.5Protobuf-rpc-pro

Protobuf-rpc-pro 是一个 Java 开发人员类库,提供基于 Google Protocol Buffer 服务的 RPC 层。底层 NIO 基于 Netty 构建。功能支持包括双向 RPC 调用,从客户端调用服务器端和从服务器端调用客户端的方法。客户端和服务器是对等通信。支持 TCP 连接复用/ keep-alive,SSL 加密, RPC 调用取消,超时和一个可插拔的 RPC 调用数据日志记录工具。[12]
口袋自考后台系统将使用 Protobuf-rpc-pro 作为账户、资讯、Broker 三个模块间的
RPC 框架。

2.6Maven

Maven 是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用 Maven 的时候,你用一个明确定义的项目对象模型来描述你的项目,然后 Maven 可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。[13]
本文在口袋自考后台系统中使用 maven 来管理 Broker、Account、News 这三个使用
java 开发的子系统。

2.7Log4j2

Log4j2 是 Apache log4j 项目的升级版本。Log4j 2 被设计成一个具有审计功能的日志框架。在配置更新时,Log4j 1.x and Logback 对日志事件没有反应,Log4j 2 则会正常工作。另外,Logback 不允许 Appenders 中的异常是不可见的,而 Log4j2 可以配置成发送异常给应用程序。基于插件的软件架构,使得 Log4j2 更易于扩展,而不需会改变 Log4j2自身的功能。Log4j2 支持用户自定义的日志等级,也支持 Marker。[14]-[15]
本文设计的口袋自考后台系统使用 Log4j2 作为账户、资讯以及 Broker 三个子系统的日志框架。并使用 log4j2 的 Marker 特性来自定义日志类型。

2.8GitLab

GitLab 是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的 Git 项目仓库,可通过 Web 界面进行访问公开的或者私人项目。[16] 它拥有与 Github 类似的功


能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。[17]
口袋自考后台系统的所有代码均是使用自己搭建的 gitlab 来进行版本管理和代码审
阅。

下载地址

点击此处→注册会员上传设计赚钱
以上是大纲和介绍,如需要完整的资料请在线购买.

软件评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论

下载说明

* 本站所有资料均已审核通过,内容原创保密,标准格式,质量保证
* 无需注册,点击在线购买后即可获取该套毕业设计(论文)完整
* 支付后请联系在线客服QQ:212181988发送资料
  • 官方微信