在线学习平台概要设计说明书(254页).doc
-在线学习平台概要设计说明书-第 241 页在线学习平台V软件设计说明书2018年03月04日文档修订记录编号版本号修订时间内容修订人批准人1.V0.12018-03-04设计说明书开始撰写刘斌2.3.4.填写说明: 版本号:按照工程办要求编制各发布版本的版本号。 修订时间:创建或修订当前版本成果物的日期。 内容:填写该版本成果物形成文件、修改内容等。 修订人:参与此文档的编辑、修订的人员姓名 批准人:批准此文档的项目技术负责人员。正式发布的版本要求批准人必须是本项目的技术负责人。目 录1.引言11.1.项目目标11.2.系统概述21.3.文档概述31.4.术语41.5.参考资料52.总体设计62.1.设计思想6需求概述61设计方法92.2.运行环境102.2.1.独立部署环境122.2.2.测试验证云环境(虚拟资源)152.2.3.公有云环境(虚拟资源)182.2.4.公有云环境多租户模式182.3.系统总体架构182.3.1.系统组成、功能结构192.3.2.系统层次划分222.3.3.系统工作流程242.4.总体界面设计242.4.1.设计原则242.4.2.设计思路252.4.3.设计风格263.系统设计283.1.总体情况283.1.1.子系统模块结构333.1.2.课程学习(DS-13-01-01)333.1.3.系列课程(DS-13-01-02)353.1.4.在线自测(DS-13-01-03)373.1.5.组卷自测(DS-13-01-04)383.1.6.提问答疑(DS-13-01-05)403.1.7.主题研讨(DS-13-01-06)423.1.8.学习笔记(DS-13-01-07)433.1.9.消息通讯(DS-13-01-08)453.1.10.我的课程(DS-13-01-09)473.1.11.我的社区(DS-13-01-10)483.1.12.我的题库(DS-13-01-11)503.1.13.我的订单(DS-13-01-12)523.1.14.我的档案(DS-13-01-13)533.1.15.好友空间(DS-13-01-14)553.1.16.个人设置(DS-13-01-15)573.1.17.登录/注册(DS-13-01-16)583.2.在线学习APP(DS-13-02)603.2.1.子系统模块结构603.2.2.课程学习(DS-13-02-01)603.2.3.精品套卷(DS-13-02-02)623.2.4.智能组卷(DS-13-02-03)643.2.5.我的课程(DS-13-02-04)653.2.6.我的题库(DS-13-02-05)673.2.7.我的关注(DS-13-02-06)693.2.8.消息通知(DS-13-02-07)703.2.9.我的订单(DS-13-02-08)723.2.10.个人设置(DS-13-02-09)743.2.11.离线缓存(DS-13-02-10)753.2.12.登录(DS-13-02-11)773.3.内容制作系统(DS-13-03)793.3.1.子系统模块结构793.3.2.我的课程(DS-13-03-01)793.3.3.课程制作(DS-13-03-02)813.3.4.课程导入(DS-13-03-03)823.3.5.我的试题(DS-13-03-04)843.3.6.试题制作(DS-13-03-05)863.3.7.试题导入(DS-13-03-06)873.3.8.我的试卷(DS-13-03-07)893.3.9.手工组卷(DS-13-03-08)913.3.10.智能组卷(DS-13-03-09)923.3.11.作业练习(DS-13-03-10)943.3.12.作业发布(DS-13-03-11)963.4.内容管理系统(DS-13-04)973.4.1.子系统模块结构983.4.2.课程管理(DS-13-04-01)983.4.3.试题管理(DS-13-04-02)993.4.4.试卷管理(DS-13-04-03)1013.4.5.课程评论管理(DS-13-04-04)1033.4.6.课程笔记管理(DS-13-04-05)1043.4.7.研讨学习管理(DS-13-04-06)1063.4.8.问答回复管理(DS-13-04-07)1083.5.系统管理系统(DS-13-05)1103.5.1.子系统模块结构1103.5.2.账户管理(DS-13-05-01)1103.5.3.角色管理(DS-13-05-02)1123.5.4.菜单管理(DS-13-05-03)1133.5.5.机构管理(DS-13-05-04)1153.5.6.课程分类管理(DS-13-05-05)1173.5.7.知识点管理(DS-13-05-06)1183.5.8.敏感词管理(DS-13-05-07)1203.5.9.数据字典配置(DS-13-05-08)1223.5.10.通知管理(DS-13-05-09)1233.5.11.日志管理(DS-13-05-10)1253.5.12.升级管理(DS-13-05-11)1273.5.13.问题反馈管理(DS-13-05-12)1283.5.14.平台管理(DS-13-05-13)1303.5.15.数据统计(DS-13-05-14)1323.6.分析中心(DS-13-06)1333.6.1.子系统模块结构1343.6.2.概况统计(DS-13-06-01)1343.6.3.课程统计(DS-13-06-02)1353.6.4.题库统计(DS-13-06-03)1373.6.5.问答统计(DS-13-06-04)1393.6.6.Top10排行榜(DS-13-06-05)1403.6.7.课程排行明细(DS-13-06-06)1423.6.8.试卷排行明细(DS-13-06-07)1443.6.9.移动学习统计(DS-13-06-08)1463.6.10.学习时段统计(DS-13-06-09)1473.6.11.课程分类排行(DS-13-06-10)1493.6.12.学员排行明细(DS-13-06-11)1514.接口设计1525.数据库设计1536.软件部署设计1547.非功能性设计1557.1.性能设计1557.1.1.应用性能设计1567.1.2.中间件性能设计1597.1.3.数据库性能设计1607.1.4.尽量使用高效的存储1647.2.安全设计1657.2.1.审计信息1657.2.2.代码安全1657.2.3.输入处理1687.2.4.WEB应用1687.2.5.会话1697.3.系统出错处理设计1697.3.1.异常处理原则1717.3.2.异常分类1727.3.3.异常记录1737.4.系统维护设计1737.4.1.主机类监控1737.4.2.数据库监控1747.4.3.中间件监控1747.4.4.应用情况监控1757.4.5.负载设备的监控1758.尚待解决的问题1769.附件1761. 引言1.1. 项目目标【编写要求:简述本系统的项目背景和建设目标,并说明本项目/系统与工程中其他项目/系统之间的关系。简要说明V1.0所达到的目标。】在线学习平台是数字时代XXXX为广大用户提供增值服务的平台,在充分吸取教育技术理论与方法最新研究成果的基础上,利用网络技术,根据不同教学模式、不同教育对象的特点,在不同的教学环节中为网络教学提供灵活的、可缩放的、适合于多种层面、多种对象及多种网络环境的交互式教与学支撑环境。在线学习平台是一个基础的学习平台, 目标定位为XXXX培训教育,设计理念以课程为中心,聚焦XXXX教育、XXXX继续教育。系统支持独立部署,也支持多级XXXX下的公有云部署方式。1.2. 系统概述【编写说明:简述本文档适用的系统和软件的用途。它应描述系统与软件的一般性质;概述系统开发、运行和维护的历史;标识项目的投资方、需方、用户、开发方和支持机构;标识当前和计划的运行现场;并列出其他有关文档。】本文档适用于在线学习平台,包括学习业务、业务管理两大系统。学习平台可以为有需要的XXXX提供在线学习的平台基础,使之成为服务于教育、承载优质资源、联合教员学员的重要支撑平台。1、学习业务:主要包含了在线学习平台Web、在线学习APP两大模块,为学员提供课程学习、在线考试、自测、答疑、互动交流、移动学习服务;2、业务管理:主要是为了支撑学习业务而提供的服务,包括了内容的制作、内容的审核、系统管理、分析中心等多个模块。主要使用对象为各级管理员、教员。系统运行于linux平台下,运用了java,mysql,spring,ibatis,jquery,android,公共组件等软件进行开发和维护。开发、运行、维护历史:无。1.3. 文档概述【编写说明:概述本文档的用途与内容,并描述与其使用有关的保密性或私密性要求,以及预期读者】本文档主要说明对系统的设计考虑,包括系统的主要业务流程、模块划分、功能分配、接口设计、运行设计、数据结构设计和安全性设计等,为程序的设计研发奠定基础。为开发人员提供开发实现的具体路线、依据和约束,也为测试人员的测试工作提供依据和指导。1.4. 术语【编写要求:为提供正确理解本文档所需的术语、概念和缩略语的定义或解释。】表11术语列表序号术语、概念、略缩语定义或解释1. 公有云第三方提供的能够部署平台服务的网络环境,用户可以通过internet访问系统2. 多租户在一台服务器上运行单个应用实例,它为多个租户提供服务1.5. 参考资料【编写要求:提供撰写本文档的参考资料清单,列出这些资料的名称、发布日期、单位或资料来源。】表 12参考资料表序号资料名称发布日期资料来源备注1.2.3.4.5.2. 总体设计2.1. 设计思想【编写说明:概述本项目/系统总体需求,阐述基于该需求的系统设计思想,说明系统设计中需遵循的一些约定和约束。】2.1.1. 需求概述在线学习平台采用移动互联网和云计算技术架构,建设课程学习中心、题库学习中心两大核心平台,配套个人云空间、社区(问答/研讨)、二大辅助平台,提供网页端和APP两种终端形态,实现数字课程、数字学习资源的制作、管理和运营服务,最终形成以课程学习和题库学习为核心、以运营服务为辅助的综合性在线学习平台,形成内容丰富、互动性强、易操作、可随时随地接入、符合学习规律的数字教育体系,培育数字教育和XXXX学习结合的新业态。1、课程学习中心课程中心是在线学习平台中核心业务“在线学习”的一部分,提供面向用户在线课程学习和个性化学习业务。用户可以通过浏览器或终端APP加入课程,进行课程的相关学习、研讨、提问答疑、课程笔记等互动交流学习。 2、题库学习中心题库学习中心作为前端服务系统,为学员提供基于用户学习情况的个性化自主学习服务。旨在丰富专业试卷库,具有全学科策略组卷、多维度智能检索等特点。学员可以通过题库中心及时检查自己课程学习的效果,在线自测,老师批改后,学员查看成绩和测评报告,题库中心智能推送学员相对薄弱环节学习资料,学员还可以通过错题攻关有针对性的对薄弱知识点进行巩固,面向学员提供选卷自测,组卷自测,专题自测,测评分析、错题攻关等功能。题库学习中心支持在线考试,也支持将知识合理碎片化的专题自测。支持正向激励,无论学员答对答错都予以适度奖励。3、社区(问答/研讨)社区作为学员之间、学员与教员之间交流的平台,包含与课程相关的问题答疑、主题研讨、笔记/心得评论、考试评论;以及与课程无关的课程相关的问题答疑、主题研讨、考试评论、公告通知、社区活动。4、个人空间个人空间基本功能包括个人基本信息设置、消息提示、好友管理以及订单信息,学员所学课程、测验试卷以及学习档案,教员所创建的课程、题库以及教学档案信息。5、内容管理内容管理是借助信息技术,实现内容的创建、储存、分享、应用、更新,并在个人、组织、业务、战略等诸方面产生价值的过程。而内容管理系统就是能够支撑内容管理的一套工具的组合,是指对数字资源进行有效管理和共享服务的工具,具有内容管理、内容审核、智能标记、工作流协同、信息发布等功能。6、内容加工课程制作中心和题库制作中心是通过网络平台集中发布各种教材、课件、试题与资源的地方,提供课程内容设计、考核设置和基于课程内容的教学活动支持,课程作者可以通过课程制作中心提供的开课向导开设自己的教学服务和教学空间,再通过题库制作中心的试题录入、试卷编辑设计作业和考试,最终发布到课程学习中心供学员进行系统学习。7、分析中心分析中心为内容管理员提供平台运营情况数据,为运营决策提供数据支持。数据统计,对课程、试题、试题集(试卷、作业、测评)总量情况和增长情况进行统计分析;用户行为统计,对教员、学员使用系统行为统计分析,课程学习人次、时长、周期变化、时间段、学校等统计,试卷、作业、测评完成情况,试题使用情况进行统计分析。8、系统管理系统管理是对平台基础支撑数据进行维护管理,为平台运行提供必备的基础数据,系统管理可进行用户管理、权限管理、机构管理、基础数据配置管理、通知管理、日志管理、数据统计、升级管理。2.1.2. 设计方法学习平台是全国性的系统,在设计时遵循以下原则:1)标准性原则系统遵循软件行业相关标准及教育服务与监管体系信息化建设项目相关标准与规范。2)先进性和成熟性原则在技术选择上,充分考虑技术先进性和成熟性之间的平衡,一方面保证整体信息体系的先进性,同时有效避免尖端技术给信息系统带来的不确定性和潜在风险。3)可靠性和稳定性原则从系统结构,技术措施,系统管理等方面着手,确保系统运行的可靠性和稳定性,达到最大的平均无故障时间。4)可扩展性原则系统架构、设计和实现有较好的可扩展能力,以满足不断增加的用户、业务变化、架构调整等扩展需求。5)安全性原则在系统设计中,即要充分考虑信息资源的共享,更要注意信息资源的保护和隔离,应分别针对不同的应用和不同的网络通信环境,采取不同的措施,包括系统安全机制、数据存取的权限控制等。6)高效性原则系统在性能上要满足大用户量访问和海量数据处理要求,在关键环节上保障性能,使相关业务能够快速顺畅进行。7)易用性原则主要技术和产品必须具有成熟、稳定、实用的特点,页面美观、简洁,满足用户一般的操作习惯,很容易上手操作。2.2. 运行环境【编写说明:描述系统运行的基本软硬件环境。对于需要部署在云环境的分包,还需要从云环境部署角度进行说明。建议部署图采用UML图形和相关文字进行说明。】1、WEB服务器为了保证系统性能、稳定性、提高用户体验,我们采用负载均衡技术对外提供服务。本系统采用ngnix+keepalived+tomcat进行web分布式部署。WEB服务器推荐具体配置如下:a、软件配置环境操作系统:Linux(Centos6.5以上);技术平台:J2EE,J2SE;应用服务:nginx以上。b、硬件配置环境IO系统的最大可用IO吞吐(IOPS):200CPU 核数:4最大可用内存:32最大可用带宽:2G BPS文件系统单个文件最大尺寸:500GB本机直连磁盘可用空间:500GB4GB的HBA卡可以直接连接到SAN存储阵列2、数据库服务器在数据库服务器安装HBA卡,连接到SAN存储阵列上,同时作双机热备集群。同时数据库设置为一主多从,读写分离。当其中一台服务器出现故障时,另外的一台可以及时接管服务,从而保证系统的高可用性和高可靠性。数据库服务推荐配置如下:a、软件配置环境操作系统:Linux(Centos6.5以上);b、硬件配置环境IO系统的最大可用IO吞吐(IOPS):200CPU 核数:4最大可用内存:64最大可用带宽:2G BPS文件系统单个文件最大尺寸:500GB本机直连磁盘可用空间:500GB4GB的HBA卡可以直接连接到SAN存储阵列3、其他设备主要包括了SAN的存储阵列设备,根据标书以及需求文档中对资源的预估,前期需要10T的存储容量。为了提高系统性能,我们还需要专门的缓存服务器,文件服务器,流媒体服务器,消息服务器。具体配置参考上面WEB服务器配置。2.2.1. 独立部署环境【编写说明:描述系统独立部署在单位所需的基本软硬件资源环境。需要明确软硬件名称、数量、用途、所需存储的物理空间容量、基本性能等参数。】表21独立部署硬件表序号设备名称配置要求用途备注1.Web服务器1IO系统的最大可用IO吞吐(IOPS):200CPU 核数:4最大可用内存:32最大可用带宽:2G BPS文件系统单个文件最大尺寸:500GB本机直连磁盘可用空间:500GB对外提供Web服务,为app提供Restful API接口2.Web服务器2IO系统的最大可用IO吞吐(IOPS):200CPU 核数:4最大可用内存:32最大可用带宽:2G BPS文件系统单个文件最大尺寸:500GB本机直连磁盘可用空间:500GB对外提供Web服务,为app提供Restful API接口3.Web服务器3IO系统的最大可用IO吞吐(IOPS):200CPU 核数:4最大可用内存:32最大可用带宽:2G BPS文件系统单个文件最大尺寸:500GB本机直连磁盘可用空间:500GB对外提供Web服务,为app提供Restful API接口4.数据库服务器1IO系统的最大可用IO吞吐(IOPS):200CPU 核数:4最大可用内存:32最大可用带宽:2G BPS文件系统单个文件最大尺寸:500GB本机直连磁盘可用空间:500GB数据库采用数据库主从集群方式部署,该服务器为master5.数据库服务器2IO系统的最大可用IO吞吐(IOPS):200CPU 核数:4最大可用内存:32最大可用带宽:2G BPS文件系统单个文件最大尺寸:500GB本机直连磁盘可用空间:500GB数据库6.负载服务器1IO系统的最大可用IO吞吐(IOPS):200CPU 核数:4最大可用内存:32最大可用带宽:2G BPS文件系统单个文件最大尺寸:500GB本机直连磁盘可用空间:500GB实现软负载采用主从自动切换模式7.负载服务器2IO系统的最大可用IO吞吐(IOPS):200CPU 核数:4最大可用内存:32最大可用带宽:2G BPS文件系统单个文件最大尺寸:500GB本机直连磁盘可用空间:500GB实现软负载8.存储设备10TB文件、资源存储可以根据实际情况调整存储大小9.缓存服务器(消息服务器共用)IO系统的最大可用IO吞吐(IOPS):200CPU 核数:4最大可用内存:32最大可用带宽:2G BPS文件系统单个文件最大尺寸:500GB本机直连磁盘可用空间:500GB系统信息缓存10.文件服务器(流媒体服务共用)IO系统的最大可用IO吞吐(IOPS):200CPU 核数:4最大可用内存:32最大可用带宽:2G BPS文件系统单个文件最大尺寸:500GB本机直连磁盘可用空间:500GB文件服务器11.试题,试卷解析服务器IO系统的最大可用IO吞吐(IOPS):200CPU 核数:4最大可用内存:8最大可用带宽:2G BPS本机直连磁盘可用空间:500GB试卷、试题解析的COM组件服务器表22独立部署软件表序号软件名称版本要求用途备注1.CentOS7及以上服务器操作系统2.MySQL5及以上关系型数据库3.Tomcat6及以上应用服务容器4.Memcached及以上缓存服务器5.JDK6u25及以上Java运行环境6.nginx及以上HTTP 和反向代理服务器7.Keepalived负载均衡8.DLSV01R01C001文件上传下载系统9.Red51.0.1 Final 开源的Flash流媒体服务器10.FFmpeg及以上流媒体服务器11.Openoffice开源的文本解决方案12.FlashFlash播放插件13.Openfire消息服务器14.Windows7安装office2013试题、试卷解析COM2.2.2. 测试验证云环境(虚拟资源)【编写说明:需阐述本包在该私有云环境中运行所需的虚拟化计算资源,包括但不限于:所需资源的种类以及数量、有效链接所需资源的系统部署要求、多租户对计算资源需求的影响等方面。不参与云部署的分包本节填写“无”。】为了保证在线学习平台能够在公有云上实施、部署、运营,现在需要对系统进行公有云环境部署前测试、验证。对于系统进行测试、验证所需云环境资源描述如下所示:1、云服务器云服务器需要提供不少于2套,进行负载均衡测试,同时需要部署消息中间件、试卷解析组件服务。是一种简单高效,处理能力可弹性伸缩的计算服务。云服务实例是一个虚拟的计算环境,包含CPU、内存等最基础的计算组件,是云服务器呈献给每个用户的实际操作实体。资源配置参考如下:硬件配置:硬件配置:CPU核数8核,内存32G,磁盘IO 300MB/S,网络IO 400MBPS,磁盘大小500G。通过HBA卡连接存储。软件配置:操作系统 linux(CentOS 6.5以上),操作系统windows 7,office 2013,J2EE环境,JVM1.6以上,tomcat6.0以上,其他相关组件安装包由天闻自己提供,包括消息中间件,流媒体服务,试卷解析组件。2、负载均衡实现对多台云服务器进行流量分发,消除单点故障的负载均衡服务。如果采用的云服务已经提供了负载服务,资源配置参考如下:硬件配置:CPU核数8核,内存32G,磁盘IO 300MB/S,网络IO 400MBPS,磁盘大小500G。软件配置:操作系统 linux(CentOS 6.5以上),ngnix 1.6.2以上,keepalived 1.2.16及以上。其他要求:域名或者外网IP,内网IP可配。3、云数据库可以完全兼容MySQL(5.5以上)的协议在线数据库。资源配置参考如下: 硬件配置:CPU核数8核,内存32G,4GB的HBA卡,直接与存储连接,磁盘IO 300MB/S。 软件配置:操作系统 linux(CentOS6.5以上),MySQL 6.5以上。 4、开放缓存服务 完全兼容Memcache协议,为热点数据的访问提供高速响应。资源配置参考如下: 硬件配置:CPU核数8核,内存32G,磁盘大小500G。 软件配置:操作系统 linux(CentOS6.5以上),Memcached 1.4.24。 5、开发存储服务 支持海量图片、音频、视频等非结构化静态文件高并发访问的云存储。资源配置参考如下: 硬件配置:CPU核数8核,内存32G,存储2T。 软件配置:操作系统 linux(CentOS 6.5以上),JDK1.6,其他软件由天闻自己提供,主要是文件服务组件。测试验证云环境不考虑多租户对计算资源需求的影响。2.2.3. 公有云环境(虚拟资源)【编写说明:对于需要部署在公有云环境中、面向行业用户提供服务的分包,需阐述本包在公有云环境中运行所需的虚拟化计算资源,包括但不限于:所需资源的种类以及数量、有效链接所需资源的系统部署要求、多租户对计算资源需求的影响等方面。不部署在公有云上的分包本节填写“无”。】在线学习平台采用公有云部署策略。按照5000万的注册用户,保证1000人以上的同时在线用户数,共需要虚拟机10台,其中2台为数据库,应用服务为8台。存储预计为10T。带宽为双向出口200M。需要域名+多个二级域名(与租户有关系,每个租户需要5个)或者IP。2.2.3.1. 主机计算能力分析按照通用的TPMC值来计算系统的处理能力:TPC-C(tpmC)按有效期间内测量每分钟处理的平均交易次数,至少要运行12分钟。此值是根据我公司软件体系结构及事务处理方式,结合实际测试值测算出来的一个数据。计算公式如下:tpmC=(业务量×系数) ×60 = TPC事务/分钟,此文档计算方法中不显式讲系数为多少,就默认系数为1。1、接口服务器处理能力接口服务器需要承担APP接口,系统工程内部之间的接口,前台定时任务,异步请求接口、后台定时任务接口等。3*20*602、WEB服务器处理能力3、数据库服务器处理能力4、其他服务处理能力5、存储需求分析2.2.3.2. 软件资源需求2.2.4. 公有云环境多租户模式【编写说明:对于需要部署在公有云环境中、面向行业用户提供服务的分包,需阐述本包在公有云环境中是否支持多租户,明确对多租户相关的多租户规模、计算、存储、计费、配额管理等功能的支持。不部署在公有云上的分包本节填写“无”。】在线学习平台支持公有云环境下的多租户模式。按需求规格说明书中的平台性能部分要求,并发数1,000,注册用户5,000万,同时单服务器能处理100以上的请求,下载速度不低于1M/S,支持1,000门课程同时开课。根据以上信息,我们根据实际的业务场景,按每个租户(单位)10万用户量规模来进行粗略预估,前期只考虑到部分有需要的试点单位,后期每增加一个租户或者试点单位用户快速增加时就必须按需进行资源的动态扩容、计费,达到可弹性收缩计算服务。1、每个租户10万的用户,前期试点单位一共是14家,整体的用户数为140W,我们按每天200WPV,根据一般的计算规则,对系统产生的并发最多不会超过200个请求/秒;2、每个人下载速度不低于1M/S,预估双出口带宽为200M;3、存储按10T进行预估。根据上面的预估信息,我们可以对公有云在多租户模式进行一个初步的预算。具体预估如下表所示:表24公有云环境多租户预估规模表序号设备名称配置要求用途备注个数计费1云主机1IO系统的最大可用IO吞吐(IOPS):200CPU 核数:8最大可用内存:32G本机直连磁盘可用空间:500GB操作系统:CentOS Linux 6.0 64bit对外提供Web服务,为app提供Restful API接口包含了IP,VLAN的价格,总体带宽为双出口200M122W/年2云主机2IO系统的最大可用IO吞吐(IOPS):200CPU 核数:8最大可用内存:32G本机直连磁盘可用空间:500GB操作系统:CentOS Linux 6.0 64bit1、web服务,2、数据库服务,3、文件、流媒体、缓存服务,消息服务器5*53云主机3CPU 核数:4最大可用内存:16G本机直连磁盘可用空间:500GB操作系统:windows7+office2013主要是试题、试卷解析服务14云存储10T12.3. 系统总体架构【编写说明:以图表的形式,描述整个系统的系统架构,对于支持多租户的分包应在本章中各个层面都体现出具体设计。建议用层次图展示并加以文字说明,同时图上还应反映安全、标准及系统运行维护的一些规范等内容。】随着云计算技术的成熟,对于多租户概念也越来越清晰,目前已经有几种相当成熟的架构用来帮助系统实现数据隔离:Shared schema multi-tenancy (下文简称为共享表架构),Shared database, separated schema(下文简称为分离表架构)以及Separated database(下文简称为分离数据库架构)。多租户数据系统架构方案的选择是一个综合考虑的过程,包括了成本、数据隔离与保护、维护、容灾、性能等。表21多租户架构类型对比表多租户架构类型适应范围相关描述数据库分离高安全性,数据需要完全隔离容易根据需求扩展数据模型共享数据库,schema 分离每个租户所需要的表数不是很多硬件成本相对上一种低,每台服务器承受的租户比较多共享数据库,共享 schema需要服务大量租户,同时硬件受限每一台服务器承载的租户最多,单位成本最低从本系统交付对象以及性价比进行一个综合的衡量,我们采取共享数据库,共享schema的方式实现。同时为了解决这种方式存在备份恢复复杂,某些表中有大量的数据,可能会对所有租户产生性能影响两大问题,设计上我们考虑通过局点编码(TenantID其性能。具体的多租户系统架构图见2.3.2中的描述。2.3.1. 系统组成、功能结构 【编写说明:图示描述系统的整体组成,以及各子系统或模块的功能结构,并进行简要说明。对于部署时需分散部署的情况(即系统的部分功能部署在公有云中、部分功能部署在企业内或其他环境中),应对分散部署的功能与处理方式进行详细说明。】在线学习平台在提供课程、试卷、试题加工制作的同时,也提供了课程、试卷、试题的管理、发布和应用服务。本系统主要由个人空间、课程中心、题库中心、社区、分析中心、内容加工、内容管理、系统管理八部分组成。图2-1系统功能结构图本系统部署不涉及到分散部署的情况。2.3.2. 系统层次划分【编写说明:图示描述系统的层次划分,如数据层、中间层、通用软件层、专用软件层等。】图2-2系统总体架构图1、基础层:包括机房、主机、网络、存储、安全、基础软件系统等在内的所有相关信息化基础设施。2、数据层:遵循工程标准包各项数据标准建立本系统基础数据和业务数据库。对于公有云环境多租户支持,我们采用“共享表”架构:即所有的用户共享使用相同的数据库实例以及相同的数据库表,但是可以通过局点编码字段来区分数据的从属。因为共享表架构最大化的利用了单个数据库实例的存储能力,所以这种架构的硬件成本非常低廉。同时对于这种架构中存在的缺点我们也采取了对应的方案解决。a、采用专门的业务逻辑隔离数据,保证数据安全;b、对于备份恢复采用专门的shell脚本进行备份恢复;c、对于数据量大的表采取分表分区设计优化,具体见第7章优化部分。同时为了对系统图片、文件进行处理,我们专门开发了文件存储服务模块,达到系统解耦,提高系统性能。3、通用软件层:主要是包含了对视频、IM通讯、缓存、试题导入相关通用服务的封装。4、业务支撑层:业务支撑层以通用软件层为基础,通过对公共软件的接口进行封装,面向业务层提供统一的公共软件服务层,并在此基础上开发公共业务组件,业务支撑平台提供的公共软件包括:用户管理、权限验证、日志管理、scorm解析组件、异常管理等。5、业务层:基于应用支撑层构建业务应用,主要服务于教员、学员,包含了课程中心、个人空间、题库中心、社区、分析中心、管理平台等。6、表现层:本系统通过web页面,app的形式提供给客户访问。7、安全保障:依托工程系统安全指南,重点设计身份鉴别、访问控制、安全审计等方面内容,以满足系统安全相关要求,应用系统的安全体系建设将严格按照工程办安全保障体系的建设中要求的相应标准和规范来进行。2.3.3. 系统工作流程【编写说明:图示说明系统的工作流程情况。若本系统所涉及的业务内容较多时,应分别画图请斌总,露总补充。】2.4. 总体界面设计【编写说明:说明本系统中界面设计原则(含要求、限定等),设计思路(如使用XML形成界面菜单,采用CSS提供多套样式风格等),以及设计风格(如配色、操作等)。对于后台接口类的情况本节可写“无”。】2.4.1. 设计原则1、采用主流页面宽度、兼容移动终端访问,核心功能提供APP应用PC端页面宽度固定在当前的主流宽度(1200px),以符合当前绝大部分用户的使用环境;通过响应式布局,支持用户通过主流移动终端访问网站,方便用户随时随地进行学习。针对核心功能,提供APP应用(支持IOS与安卓系统),帮助用户实现更好的学习体验。客户端浏览器支持Internet Explorer 9及后续主流版本、Google Chrome 32及后续主流版本、Mozilla Firefox 32及后续主流版本和Apple Safari 6及后续主流版本,良好的兼容性保证用户获得好的浏览效果。2、扁平设计、突出重点内容顺应时下扁平化设计潮流,结合在线学习网站需要阅读性好、吸引性高、重点突出等要求;在布局、色彩搭配上做了深入考究。布局方面,采用时下流行的无边框设计,多利用“图片+留白”的设计方式,适当加大各模块间间距,使用户阅读感觉更加流畅;界面控件使用扁平设计手段,主要通过颜色和面积大小来做轻重的区分;整体页面大气、简约,突出整个网站的可读性体验。色彩方面,主色调定义为绿色调,绿色具有黄色和蓝色的两种成分的色,作为中性的颜色,绿色往往代表谦虚、智慧和生命力,非常符合学习平台的基调。深色背景色作为辅助色,将页面中每个功能版块的层次拉开,为了避免沉重感,采用了红、橙、蓝色等多种点缀色,丰富网站的色彩层次。在内容密集页面(如试题页面、考试页面),采用灰色作为背景色,营造良好的阅读感受,减轻视觉疲劳。2.4.2. 设计