oat-sa/extension-tao-offline

一个辅助设置离线环境的扩展。通过测试中心标识设置同步和加密

安装量: 2,457

依赖项: 0

建议者: 0

安全性: 0

星标: 1

关注者: 51

分支: 0

开放性问题: 1

类型:tao-extension


README

TAO Logo

GitHub GitHub release GitHub commit activity

TAO Offline 功能为学校提供了在互联网连接不稳定的环境中进行评估的可能性。它使用虚拟机(VM)和中央服务器(CS)。评估在包含 TAO 安装以及测试的虚拟机上执行。最后,测试结果将与中央服务器同步。

安装说明

这些说明假设您已经在系统上安装了 TAO。如果没有,请访问package/tao并按照安装说明进行操作。

将扩展添加到您的 TAO composer 和自动加载器

composer require oat-sa/extension-tao-offline

从项目根目录通过 CLI 安装扩展

Linux

sudo php tao/scripts/installExtension oat-sa/extension-tao-offline

Windows

php tao\scripts\installExtension oat-sa/extension-tao-offline

作为系统管理员,您也可以通过 TAO 扩展管理器安装它

  • 设置(菜单右侧的齿轮)-> 扩展管理器
  • 在右侧选择 taoOffline,勾选复选框并点击 安装

同步和加密

同步

同步过程基于两个参与者,客户端服务器,它安装在虚拟机上,以及中央服务器。

设置客户端服务器

以下脚本需要在 TAO 实例上运行以创建客户端服务器

sudo -u www-data php index.php '\oat\taoOffline\scripts\tools\setup\SetupClientServer'

在已安装 extension-tao-encryption 的系统上,脚本将带有加密设置它。

通过执行以下命令将实例指向特定的服务器

sudo -u www-data php index.php '\oat\taoSync\scripts\tool\RegisterHandShakeRootURL' --rootUrl=http://tao-central.dev/

设置中央服务器

运行以下命令将 TAO 实例转换为中央服务器。

sudo -u www-data php index.php 'oat\taoOffline\scripts\tools\setup\SetupCentralServer'

同样,具有 taoEncryption 的实例将受益于加密。

可用的同步类型

  • 中央服务器到虚拟机
    • 测试中心
    • 用户
    • 交付
    • 资格
    • LTI 消费者
  • 虚拟机到中央服务器
    • 测试会话
    • 结果
    • 结果日志
    • LTI 用户

工作流程概述

Overview workflow

序列图

Sequence Diagram

加密同步用户

每个用户都被分配了一个应用程序密钥,用于解密交付内容。可以在配置文件 config/taoSync/syncService.conf.php 中的 excludedProperties 下找到同步过程中排除的属性。加密的属性在 config/taoEncryption/encryptUserSyncFormatter.conf.php 中定义。

Synchronizing users

加密同步交付

在同步交付过程中,测试包被发送到客户端。客户端随后导入测试并生成交付。

注意:如果您正在同步已在虚拟机上存在的交付,将创建一个新的测试导入。

Synchronizing Deliveries

加密同步结果

结果 chunkSize 是一个重要的配置参数,需要预先设置;默认值为 10。它可以根据结果中包含的变量数量进行设置。

例如,如果您有一个包含100个项目(这意味着大约400个变量)的测试,总请求将包含大约4000个变量。这种情况可能会导致服务器过载。在这种情况下,建议将chunkSize减少到更小的值。

需要发送的结果的状态可以在config/taoSync/resultService.conf.php中的statusExecutionsToSync下进行配置。每个对服务器的请求都将包括结果的数量。在所有结果都发送完毕后,进程将停止。

Synchronizing Results

同步结果 - 日志

每个结果日志都会与中央服务器同步,以维护测试的历史记录。每次请求发送的日志数量在config/taoSync/SyncDeliveryLogService.conf.php中的配置中定义。