基本概念
本章中,笔者将介绍AOI评测系统的几个基本概念。
跟随本章的指引,你将知晓AOI系统的设计思路,并为使用AOI系统做好准备。
AOI基本概念
AOI系统中有如下基本概念:
名称 | 代码名称 | 描述 |
---|---|---|
用户 | user | 系统中的用户,对应唯一的自然人 |
组织 | org | 一个组织。所有的小组、题目、比赛、计划、解答等实体都属于特定的组织 |
小组 | group | 组织中的一些成员构成的集合 |
题目 | problem | 一道题目,是评测数据的基本单元 |
比赛 | contest | 题目的集合,需要报名后方可参赛。参赛后可以在比赛内提交比赛的题目 |
计划 | plan | 比赛的集合,需要报名后方可参加。参加后可以按照一定的规则报名其中的比赛 |
解答 | solution | 评测的基本单元,是对一道题的提交,可能在也可能不在一场比赛内 |
执行器 | runner | 执行具体的评测和排行榜计算的,注册在特定组织下的执行程序 |
其中,组织可以认为是权限/资源控制的隔离单位。每个组织需要配置自己的OSS和Runner。当然,这意味着不同组织之间的资源完全隔离。
目前,比赛/计划只能添加同组织下的题目/比赛。该限制可能在未来的版本中放开。
AOI权限模型
AOI的权限模型是基于控制实体(Principal)的。控制实体是用户或小组,每个可控对象均具有自己的ACL列表,记录了每个控制实体的权限。 用户所具备的权限为其所属所有控制实体的权限的并集。
具备基于控制实体的权限控制能力的对象有:
- 题目
- 比赛
- 计划