陈力莘 杜诗雨 黄琛霖 梁子炜
摘 要:为解决高校传统教学平台操作复杂、使用流程繁琐的问题,文章提出并实现了一个更人性化且易于对存储系统进行水平扩展的一体化教学云平台。存储技术采用BFS百度文件系统,数据库管理系统融合MySQL及Redis各自的优势,Web前后端采用Symfony框架,并结合WebUploder实现文件传输功能。该软件可在高吞吐情况下保证低延迟和持续可用性,并较大提升了用户友好性。
关键词:分布式;云存储;教学云
1 针对传统教学方式的弊端设计分布式文件系统
1.1 传统教学方式的弊端
在传统教学环境中,为方便学生下载教学资源和提交作业,老师一般采用搭建文件传送(输)协议(File Transfer Protocol,FTP)服务器的方式,学生可通过FTP服务器下载资料或提交作业。此方案存在不少弊端。例如跨平台兼容性问题,若服务端与客户端的操作系统不同,时常会出现无法连接的情况。并且,若为多门课程单独架设FTP服务器,会导致硬件和网络资源利用率较低,造成资源浪费。
除使用传统FTP服务器,目前绝大多数高校都有自己的教学平台,如Bb平台等。但目前教学平台也有不足之处,如操作流程较为繁琐,学生需要点击多层链接才能获取目标资源,同时,老师也需要经过繁琐的流程才能在平台上开一门新课,而且不支持大文件传输,如音频、视频等多媒体资源。为了解决上述问题,本文提出一套基于分布式存储技术的教学云平台解决方案。为了在高吞吐量下保持低延迟和持续可用性,并考虑个性化功能实现的良好编程接口需求,本文选择百度的基本文件系统(Basic File System,BFS)作為分布式存储平台[1]。
Redis数据库管理系统采用key-value数据存储模式,很好地弥补了关系型数据库在大量数据存储中读写速度慢等不足。因此,在数据库管理系统实现中,本文选择了关系型数据库MySQL与非关系型数据库Redis相结合的策略。用MySQL来存储用户信息、课程信息和教学资源等需长期保存的数据,用Redis来存储访问频率高的数据,如用户的token等。
1.2 分布式文件系统的功能
本校园云平台的需求来源于同学和老师在日常学习和教学活动过程中的反馈和意见,面向的用户角色主要有学生、老师和系统维护管理人员。
学生模块主要有注册和登录、添加课程、下载教学资源、提交作业等功能;教师模块主要有发布课程、上传教学资源、发布作业、批改作业等功能;管理员模块主要有课程信息管理、用户信息管理、数据分析等功能。综合实际,本系统实现的功能模块如下。
(1)注册、登录:学生填写用户信息后进行注册,通过手机短信验证之后可以登录。教师和管理员通过用户名和密码登录。
(2)添加课程:学生添加感兴趣的课程后可完成作业或下载资源。
(3)发布课程:教师能够发布自己的课程。
(4)上传/下载资源:教师能够上传关于自己课程的教学资源;学生只能下载教学资源不能上传资源。
(5)发布/提交/批改作业:教师可以发布课程相应的作业;学生写完作业后提交作业;教师可以对学生提交的作业进行批改。
(6)课程/用户信息管理:管理员登录后可以对课程信息或用户信息进行增加、删除、查询、修改等操作。
(7)数据可视化:管理员登录后可以通过。
2 系统架构与系统相关设计
2.1 系统架构
系统采用浏览器/服务器模式(Browser/Server,B/S)架构设计,由存储层、数据层、业务逻辑层和视图层组成。为了给用户提供体验性较好的可视化界面,整个教学云平台的架构中加入了Web Server,方便用户通过客户端浏览器直观地访问,教学云平台系统整体架构如图1所示。
(1)存储层:存储业务层中读取、存储过程中的数据。
数据库存储:教学云平台采用MySQL关系型数据库和Redis非关系型内存数据库相结合的方法,MySQL用于存储用户、课程信息,Redis用来存储高频率访问的数据。并且设置主从数据库来实现数据库的读写分离,主数据库负责“写操作”,从数据库负责“读操作”,这样不仅可充分发挥这两种数据库的优势,还可提供更加有效、可靠的数据存储性能。
文件系统存储:BFS百度文件系统作为本平台的文件存储物理层,能够将文件分布存储在多个计算机节点上,实现数据冗余、文件自动备份、动态增加存储容量的功能,不仅能够存储平台所有教学资源,还能够保证在高吞吐量下文件系统的可用性和性能的稳定性。
(2)数据层:存储和读取数据的核心模块。
(3)业务逻辑层:连接视图层和存储层的中间桥梁,处理浏览器界面的请求和数据操作,并对业务进行跳转调度。
(4)Web控制系统:采用Symfony框架,实现模型—视图—控制(Model-View-Control,MVC)框架结构。业务层根据界面层的用户需要定制相应的业务类,再进行跳转调度,调度相应的数据模型来完成业务请求。
2.2 数据库设计
教学云平台数据库系统融合了关系型数据库MySQL和非关系型数据库Redis,数据库系统数据读取过程如图2所示。
3 结语
为解决高校传统教学平台操作复杂、使用流程繁琐的问题,本文提出并实现了一个更符合师生需求且易于对存储系统进行水平扩展的一体化教学云平台,给出了系统组件的选择、数据库设计方案及前端设计的基本原理。该教学云平台已在学校部分教师的教学中得到应用,获得师生好评。
[參考文献]
[1]徐俊,王庆华,赵云龙.基于改进HDFS的冠名号小文件分布式存储研究[J].电脑知识与技术,2014(17):3980-3985.
Abstract:In order to solve the problems of complex operation and cumbersome use process of traditional teaching platform in colleges and universities, improving user experience, this paper analyzed the shortcomings of the overall framework of the existing teaching platform in the university, and proposed and implemented an integrated teaching cloud platform solution that is more user-friendly as well as easier to horizontally expand the storage system. This scheme adopts the mainstream PHP MVC framework Symfony, combining with Web Uploder file upload component, using hybrid database system that integrates the advantages of MySQL and Redis, and adopts Baidu distributed file system, which can guarantee low latency and continuous availability in the case of high throughput. Based on this, we implemented a teaching cloud platform with better UI experience and support for concurrent upload of large files.
Key words:distributed; cloud storage; teaching cloud platform