oat-sa/extension-tao-sync

TAO 离线客户端数据的同步。

安装数: 3,132

依赖: 2

建议者: 0

安全性: 0

星标: 1

关注者: 47

分支: 1

开放问题: 0

类型:tao-extension

v9.2.3 2023-08-10 16:18 UTC

This package is auto-updated.

Last update: 2024-09-16 16:10:03 UTC


README

TAO Logo

GitHub GitHub release GitHub commit activity

此扩展的目的是同步本地和远程服务器。

所有类型的数据和结果都可以同步。所有HTTP请求都必须按照OAuth 2标准进行签名,所有数据都进行了加密。

重要提示:虽然本文使用美式拼写在某些历史原因下,一些命令行指令使用英国拼写在某些历史原因下,例如 synchronisation 而不是 synchronization

安装说明

这些说明假设您已经在系统上安装了TAO。如果没有,请访问 package/tao 并遵循安装说明。

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

composer require oat-sa/extension-tao-sync

从项目根目录使用CLI安装扩展

Linux

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

Windows

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

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

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

同步

数据同步

在准备交付执行之前,同步过程需要从中央服务器获取以下类型的数据对象

  • test-center
  • 管理员
  • 监考官
  • 应试者
  • 资格
  • 交付

taoSync/syncService 配置中将 chunkSize 参数设置为定义每个请求的数据量,$type 指的是上面的列表,例如 test-center

$ sudo -u www-data php index.php '\oat\taoSync\scripts\tool\synchronisation\SynchronizeData' [--type=$type]

当发布交付时,它导出QTI测试包的快照。这个快照将在同步过程中使用。

结果同步

一旦客户端服务器有了交付结果,一个脚本就会将其发送到中央服务器。只有完成的交付执行将被发送,结果只会提交一次。当发送交付执行时,同步历史将被更新以记录操作。您可以将 deleteAfterSend 参数设置为 true 来在同步后删除结果。

要配置每个请求的数据量,请在 taoSync/resultService 配置中使用 chunkSize 参数。

执行以下命令来同步结果

$ sudo -u www-data php index.php '\oat\taoSync\scripts\tool\synchronisation\SynchronizeResult'

同步所有数据和结果

要同时同步数据和结果,请使用以下命令

$ sudo -u www-data php index.php '\oat\taoSync\scripts\tool\synchronisation\SynchronizeAll'

OAuth凭证

生成凭证以允许用户连接到平台

此命令创建一个带有OAuth凭证的消费者。

$ sudo -u www-data php index.php '\oat\taoSync\scripts\tool\OAuth\GenerateOAuthCredentials'

此命令的输出将包含以下数据

  • 密钥
  • 密钥
  • 令牌URL

注意:将 -cmd 标志添加到此命令以在客户端服务器上执行。

将OAuth凭证导入到客户端服务器

以下命令将您上面创建的消费者导入到客户端服务器。参数是前面命令的输出,$rootUrl 是主机服务器的域名。

$ sudo -u www-data php index.php 'oat\taoSync\scripts\tool\OAuth\ImportOAuthCredentials' -k $key -s $secret -tu $tokenUrl -u $rootUrl

将同步范围限制为测试中心标识符

为了能够将同步操作绑定到测试中心的组织ID,平台需要注册一个test-center属性。SyncService还必须注册新的同步器,以便按组织ID进行处理。

$ sudo -u www-data php index.php '\oat\taoSync\scripts\tool\RegisterSyncServiceByOrgId'

注意 测试中心组织ID是http://www.taotesting.com/ontologies/synchro.rdf#organisationId