首页 理论教育 新教学基础数据管理子系统优化

新教学基础数据管理子系统优化

时间:2023-10-21 理论教育 版权反馈
【摘要】:教师、学生、管理者和教务人员统一称为用户。通过对以上基层数据的维护建立起AI交互教学管理子系统的初步信息,在此基础上系统进一步扩展。

新教学基础数据管理子系统优化

基础数据管理子系统主要对两种对象进行管理:一是系统的基础数据;二是各个子系统之间的通信数据和接口服务数据,包括Session、配置信息、服务状态、用户状态、用户环境、服务接口等数据的同步管理。

6.5.1.1 基础数据管理

在AI交互教学管理平台中,基础数据管理子系统主要是针对基础数据进行管理,如对教师、学生、课程、班级、排课、角色、权限、服务器、消息、节点、管理者、教务员、日志、维护等基础数据进行管理。

教师、学生、管理者和教务人员统一称为用户。用户的基本信息如下:用户名、注册名、类别(学生、教师、教务、管理)、头像、角色、有效时间、失效时间、状态、最近一次登录时间、登录IP、登录地域等。

课程:课程名、编码、学时、教材版本。

班级:班级名、编码、分配教室、学生数量、指导员、当前学年、起始时间。

角色:角色名、角色编码。

权限:权限名、编码(对界面上的每一个操作定义一个编码)、模块名、模块编码、URL路径、创建时间、是否失效。

服务器(包含节点):名称、固定IP、维护人、位置、创建时间、功能说明、基本配置情况、账户、管理员密码、配置文件路径。

消息(指新闻、通知、公告):消息标题、内容、发布人、消息类型、附件列表、生效时间、失效时间、阅读次数、发布时间。

日志:模块编码、消息、访问者IP地址、动作、时间、日志类型。

维护:维护标签、动作、文件名、存放地址、执行人

排课:日期、时间、课程名、课程编码、教师编码、创建时间。

指纹表:用户ID、指纹数据、采集时间。

人脸表:用户ID、人脸数据、采集时间。

通过对以上基层数据的维护建立起AI交互教学管理子系统的初步信息,在此基础上系统进一步扩展。

6.5.1.2 服务器间的数据同步

Active MQ是一种开源的、基于JMS(Java Message Service)规范的消息中间件的实现。ActiveMQ的设计目标是提供标准的、面向消息的、能够跨越多语言和多系统的应用集成消息通信中间件。在AI交互教学平台中,各个子系统服务器之间采用ActiveMQ来实现服务器间的数据同步功能。(www.xing528.com)

(1)Active MQ的特点

支持来自Java、C、C++、C#、Ruby、Perl、Python、PHP的各种跨语言客户端和协议

完全支持JMS客户端和Message Broker中的企业集成模式

支持许多高级功能,如消息组、虚拟目标、通配符和复合目标

完全支持JMS1.1和J2EE1.4,支持瞬态、持久、事务和XA消息

Spring支持,以便ActiveMQ可以轻松嵌入Spring应用程序中,并使用Spring的XML配置机制进行配置

专为高性能集群、客户端-服务器,基于对等的通信而设计

CXF和Axis支持,以便ActiveMQ可以轻松地放入这些Web服务堆栈中以提供可靠的消息传递

可以用作内存JMS提供程序,非常适合单元测试JMS

支持可插拔传输协议,例如in-VM、TCP、SSL、NIO、UDP、多播、JGroups和JXTA传输

使用JDBC和高性能日志支持非常快速的持久性

(2)数据的持久化

为了避免系统因意外宕机后丢失数据,MQ需要做到重启后可以恢复,这里就涉及持久化机制。Active MQ的消息持久化机制有JDBC、AMQ、KahaDB和LevelDB,无论使用哪种持久化方式,消息的存储逻辑都是一致的:在发送者将消息发送出去后,消息中心首先将消息存储到本地数据文件、内存数据库或者远程数据库等,然后试图将消息发送给接收者,发送成功则将消息从存储中删除,发送失败则继续尝试。消息中心启动以后首先要检查指定的存储位置,如果有未发送成功的消息,则需要把消息发送出去。

一是JDBC持久化。使用JDBC持久化方式,数据库会创建三个表:activemq_msgs、activemq_acks和activemq_lock。activemq_msgs用于存储消息,Queue和Topic都存储在这个表中。配置持久化的方式,都是修改安装目录下conf/acticvemq.xml文件,首先定义一个mysql-ds的MySQL数据源,然后在persistence Adapter节点中配置JDBCPersistenceAdapter并引用刚才定义的数据源。本系统采用JDBC数据持久化方式。下面列出了JDBC的配置方法:

二是AMQ方式。虽然AMQ方式的性能高于JDBC,写入消息时,会将消息写入日志文件,由于是顺序追加写,性能很高。为了提升性能,创建消息主键索引,并且提供缓存机制,进一步提升性能,每个日志文件的大小都是有限制的(默认32MB,可自行配置)。虽然AMQ性能略高于下文的Kaha DB方式,但是由于其重建索引时间过长,而且索引文件占用磁盘空间过大,所以不推荐使用。

三是KahaDB方式。KahaDB是从Active MQ 5.4版本开始默认的持久化插件,KahaDB恢复时间远远短于其前身AMQ,并且使用更少的数据文件,所以其可以完全代替AMQ。KahaDB的持久化机制同样基于日志文件、索引和缓存。

四是LevelDB方式。从ActiveMQ 5.6版本之后,又推出了LevelDB的持久化引擎。目前默认的持久化方式仍然是KahaDB,不过LevelDB持久化性能高于KahaDB,使用LevelDB可能是趋势。Active MQ 5.9版本提供了基于LevelDB和Zookeeper的数据复制方式,用于Master-Slave方式的首选数据复制方案。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈