Skip to content

基本概念

本章中,笔者将介绍AOI评测系统的几个基本概念。

跟随本章的指引,你将知晓AOI系统的设计思路,并为使用AOI系统做好准备。

AOI基本概念

AOI系统中有如下基本概念:

名称代码名称描述
用户user系统中的用户,对应唯一的自然人
组织org一个组织。所有的小组、题目、比赛、计划、解答等实体都属于特定的组织
小组group组织中的一些成员构成的集合
题目problem一道题目,是评测数据的基本单元
比赛contest题目的集合,需要报名后方可参赛。参赛后可以在比赛内提交比赛的题目
计划plan比赛的集合,需要报名后方可参加。参加后可以按照一定的规则报名其中的比赛
解答solution评测的基本单元,是对一道题的提交,可能在也可能不在一场比赛内
执行器runner执行具体的评测和排行榜计算的,注册在特定组织下的执行程序

其中,组织可以认为是权限/资源控制的隔离单位。每个组织需要配置自己的OSS和Runner。当然,这意味着不同组织之间的资源完全隔离。

目前,比赛/计划只能添加同组织下的题目/比赛。该限制可能在未来的版本中放开。

AOI权限模型

AOI的权限模型是基于控制实体(Principal)的。控制实体是用户或小组,每个可控对象均具有自己的ACL列表,记录了每个控制实体的权限。 用户所具备的权限为其所属所有控制实体的权限的并集。

具备基于控制实体的权限控制能力的对象有:

  • 题目
  • 比赛
  • 计划

AOI系统架构

Arch

Released under the AGPL-3.0 License.