APP下载

教师专业发展平台的设计与实现

2020-02-26吴亚明陈跃娟

绥化学院学报 2020年8期
关键词:数据库微信用户

吴亚明 陈跃娟

(1.绥化学院信息工程学院;2.绥化学院外国语学院 黑龙江绥化 152061)

2018年4月,教育部正式发布《教育信息化2.0行动计划》。[1]该计划的提出符合新时代发展的特点,顺应了现代信息技术推动教育变革的大潮流,推动了教学理念、教学模式的更新,也对教师的专业发展提出了更高的要求。教师专业发展平台设计的主要目的是通过网络形式,为教师专业发展提供一个学习和交流的互动平台。依托信息技术的优势,实现教师的专业发展对教育水平和教学能效的提升有着极其重要的作用。

一、教师专业发展平台核心功能

(一)各学校教师能登录平台,在线学习,上传下载资料,发布教学及学术文章,交流讨论。

(二)各学校教师能查看学习进度,完成在线考核,查看个人成绩。

(三)平台可以发布公告、消息、通知,衔接教育部平台入口,及时发布权威性的官方或业界政策、新闻。

(四)平台支持教师个人或团体组织进行权限认证,可以为相关资料文件访问设置私密或公开。

(五)平台支持同名微信公众号,可以推送消息到个人微信。

(六)平台支持举办学术会议,各学校教师可以在线报名与申请。

(七)平台可以对相关学术会议、学校及教师的各项成果进行统计,图形化历年走向趋势。

二、教师专业发展平台总体设计

(一)系统软件模式设计。系统在软件设计上采用的是基于B∕S模式的三层结构,这三层分别是数据访问层、业务逻辑层、表示层。数据层中不包含任何的代码,只有数据库和数据存储的过程;业务逻辑层主要存放数据访问及其逻辑代码;表示层则实现业务逻辑层的方法调用。因为表示层只能和业务逻辑层交互,不能直接对数据访问层的数据库访问,因此这样的三层设计模式提高了数据的安全性。三层体系结构也提高了系统的开发速度,在该模式下不同的开发人员只要遵循接口的统一标准,利用相同对象模型的实体类,可实现系统分散开发。另外,该模式还有利于系统移植,如果需要把C∕S模式的系统转换为B∕S模式系统,只要修改三层架构的表示层便可实现,而不必修改数据访问层和业务逻辑层便可以把系统快速移植到网络上。同时,软件在设计时采用了面向对象的设计方法,能够更好地实现软件的模块化,达到规范软件设计过程的目的,增强了系统的可维护性和可扩展性。

(二)系统网络架构设计。因为该平台并不是针对某一个学校专门定制的,只要是把该平台发布到外网上,各用户即可通过域名解析系统找到IP地址进行访问。鉴于这种情况,为了系统的网络安全性考虑,用户访问必须经过防火墙过滤,平台可以针对用户的安全级别,随时修改防火墙设置。

(三)数据库的连接原理。平台在开发时选取MySQL数据库,MySQL是一个小型的关系型数据库系统,它具有体积小、速度快、成本低等特点,它最大的优点是能通过主从复制实现数据的同步,通过读写分离实现数据的并发。具体流程是master先在每个事务更新数据完成之前,将该操作记录串行地写入到binlog文件中。然后,salve开启一个I∕O Thread,该线程在master打开一个普通连接,主要工作是binlog dump process。如果读取的进度已经和master同步,就进入睡眠状态等待master产生下一个事件,来完成利用I∕O线程写中继日志的目的。[2]最后,SQL Thread会读取中继日志,并顺序执行该日志中的SQL事件,从而与主数据库中的数据保持一致。在本系统中前台是使用PDO连接数据库,创建PDO基类的实例,类名使用PDO,在构造函数中给出连接的数据库源,如果存在用户名和密码,在构造类中也一并给出,无论连接有什么异常,都会给出一个PDOException异常对象,通过异常的捕获或set_exception_handler()来处理连接错误。

(四)服务器的原理及配置。本系统采用Nginx作为WEB服务器,Nginx不仅可以作为一个HTTP服务器进行网站的发布处理,也可以作为反向代理进行负载均衡的实现,不同的服务单元可以在负载均衡的作用下将流量负载分摊,这样就保证了服务器的响应速度,最终给用户良好的体验。同时,Nginx还具有IMAP、POP3、SMTP代理服务器的身份。Nginx上不能直接对PHP页面处理,它仅仅是个WEB服务器,所以想要发布PHP项目需要在服务器上安装PHP解释器,然后找到Nginx服务器的配置文件,指定PHP的部署位置,正常的情况下不需要重新启动Nginx和PHP解释器就可以访问PHP主页。

(五)缓存设计。对于一个访问量较大的网站,在开发时,必须考虑系统缓存的设计。本平台在开发时采用redis缓存、队列、异步通信等方法,来解决页面访问和点击量迅速上升时所造成的页面缓慢,出现502错误、504错误或者页面空白等现象。同时,配合了RabbitMQ(消息中间件)进行消息扩散与延迟发送,能有效地通知各个学校教师相关信息。相关页面和图片还做了一些静态处理,用以减轻主服务器压力,避免js与css加载缓慢而产生的对用户的影响。

三、教师专业发展平台主要功能实现

(一)单点登录。在教师专业发展平台的开发中,使用了单点登录的技术。单点登录英文全称Single Sign On,简称SSO。它的功能就是在多个应用系统共同存在的情况下,用户只需在一个系统中登录,被它信任的应用系统就可以任意访问不需单独登录。[3]因为教师专业发展平台可以被多个地区、多所学校共同使用,使用平台的教师会越来越多,所以平台中的发布系统、查询系统、报名系统、数据统计分析、微信公众号等每个功能模块都可单独成立服务。如果全部功能模块放在一个网站里作为整体功能,使用的数据便都在同一数据库。假如其中某个业务挂掉,一定会影响其他功能,造成整个系统的全局瘫痪。因此,将所有功能模块升级为单独的服务,互不影响。即使查询服务瘫痪也不会影响报名服务,发布服务出现瘫痪也不会影响资料上传服务。这样的设置大大提升了平台的安全性与稳定性。如果网站中用户每次使用一项功能都需要用户认证,这不仅影响用户的良好体验,而且各个子系统重复被认证授权的逻辑也是不可行的。单点登录技术的使用可以完美地解决重复认证的问题。

(二)消息推送。当有新的活动、政策、新闻消息,通过微信公众号或者手机端app通知到用户是比较方便且有效的方式。相关学术会议、学校及教师成果的各项统计报告及图形化历年走向趋势等都可以在微信公众号里随时发布。该平台消息推送的原理是把微信配置的内容放到config.php中,并且把微信公众号接口所需的access_token存储,以post方式请求URL并发送模板消息。

另外一个接收消息的方式是手机短信。例如报名成功后,几分钟后,手机会收到报名成功通知以及后续考试日期安排等。此种方式的工作原理是后端使用rabbitmq将各种业务的消息放进队列里,由其自动发放。

(三)权限体系。在教师专业发展平台上,一个用户可以有多个角色,可以是平台上资源的访问者、可以是资源的共享者、可以是学术会议的举办、可以参加其他用户举办的学术交流,也可以报名参见某种培训。也就是说,一个用户可以拥有若干角色,不同的角色又有不同权限,即角色和权限之间通常是多对多的关系。在平台开发时考虑到以上情况,所以采用RBAC(基于角色的权限控制)的用户角色权限设计方案,模型的核心是角色加入到了用户和权限之间。[4]取消了用户和权限的直接关联,改为通过用户关联角色、角色关联权限的方法来间接地赋予用户权限。

随着教师专业发展平台用户的逐渐增多,如果给系统用户逐个授权(授角色),无疑会增加系统的负担。在RBAC设计方案中,不仅可以给用户授权,而且还可以给用户分组并给用户组授权。这样用户个人便拥有了个人权限和用户组权限之和。在应用系统中,权限可理解成对功能模块的增删改查操作,对某个菜单的访问,对网站页面上某个按钮、图片的操作。同时,权限可以分类,功能操作分一类,菜单、文件、按钮的操作分为另一类。这样在对数据表建模时,用不同的权限值表示不同的权限类型,建立一个“用户——角色——权限——资源”的模型,在这个模型的作用下,对系统的权限扩展或变更就变得非常方便,只需建立一个新的关联表即可。

(四)查询系统。教师利用平台学习时,会频繁使用资料库。使用资料库的主要操作就是进行资源的查询,查询功能会重点使用搜索,在模糊搜索中对关键词的划分就尤为重要。在本平台开发中引用了OpenSearch(开放搜索)技术,它是阿里云开放搜索的简称,提供了搜索托管服务,针对用户的结构化数据搜索需求,实现搜索排序,完成数据自由定制。另外,主流阿里云存储产品还能实现数据自动对接、自动同步更新,开发者只需要在控制台中授权,数据就可以自动同步至OpenSearch中,后续数据的更新也可以自动实时同步。一张OpenSearch表可同时为多个rds(关系型数据库服务)及TDDL(分布式数据访问引擎)提供支持,而且还提供很多字段处理插件,能很好地满足平台使用者的搜索需求,解决平台开发的查询技术瓶颈。

(五)在线讨论。在该平台中还有一个重要的功能就是在线讨论,它为教师之间进行交流提供了一个特殊的空间,这也是网络的重要特性之一。虽然现在很多人都使用微信群互相联系,但是一些涉及到论文的知识产权或者版权一类的内容不方便在微信里或者向外界发送。平台可以支持一个在线的聊天室,虽然使用go语言或者nodejs比PHP更加适合,但是学习平台毕竟不会向直播平台那样高访问、大并发,所以使用PHP支持此功能足以。在聊天室中,教师可以随时在线即时问答,比留言更具互动性。如果讨论话题需要一些外界资料,可以通过教师自己的博客链接或者网站内的其他外部链接实现与外界交流。在平台内部,访问一些公开的课件或学习视频等资料可以使用链接的形式转发,比文件本身的转发安全系数更高。

(六)状态设置。在平台的聊天功能界面中,为区分在线教师和离线教师,设置了“在线”和“离线”两种状态,在线教师可以实时交流,而离线教师不支持交流功能,状态的设置是通过bootstrap(一种前端框架)实现的,bootstrap已经有很多款成熟的框架界面支持在线聊天功能界面,前端用jquery和ajax向服务器端提交数据即可。因为考虑这个功能不会有大量数据,也不需要持久对话,聊天记录可以临时存放在redis或者db里,每隔一段时间清理。

以上就是平台搭建的架构设计与实现方案,它不仅是一个具备资源的学习平台,更是推动教育改革的有力助手。教师是教学活动的主导,只有提升教师的专业水平,教学质量的提升才能成为一种可能。教师专业发展平台的设计和使用可以有效实现技术、资源和教师的无缝对接,随时随地为教师提供自我成长的机会,为专家、学校、教育主管部门和教师的沟通搭建桥梁。教师专业发展平台所具有的开放性、广泛性和平等性等特点,能够突破时间和地域的限制,成为教师在线学习、知识管理、资源共享、同伴交流和自我反思的有效途径[5]。

猜你喜欢

数据库微信用户
微信
数据库
关注用户
关注用户
数据库
关注用户
数据库
数据库
微信
微信