Page 427 - 《软件学报》2025年第12期
P. 427
5808 软件学报 2025 年第 36 卷第 12 期
3) 对象检索引擎: 向用户提供关键字搜索和路径匹配搜索功能, 关键字搜索使用基于科研数据对象属性建立
的关键字索引实现, 路径匹配搜索使用基于关系对象建立的关系索引实现.
4) 复现执行引擎: 实现了在线代码执行和论文复现. 调用数据管理模块在一次论文复现中汇聚分散式存储的
多个数据对象, 为代码执行分配算力, 并持续监控代码执行状态.
5) 分散式对象存储: 科研数据对象以分散式存储的形式保存在全球各地的数据仓库中. 这些数据仓库可以由
数据所有者维护或第三方机构维护. 这些数据仓库中的科研数据对象由数据管理模块进行管理.
6) 标识解析服务: 标识解析服务负责全体科研数据对象的标识分配和寻址. 在创建科研数据对象时, 由标识解
析服务为新创建的科研数据对象分配一个全局唯一的标识; 在对科研数据对象进行访问、更新、删除等操作时,
标识解析服务通过给定的标识定位目标科研数据对象, 并返回其所在的数据仓库.
控制器
搜索请求 对象访问请求 复现请求
对象检索引擎 数据管理模块 复现执行引擎
数据对象 搜索请求
索引 搜索单元 分发 标识解析器 复现任务管理
数据属性集
分散式数据对象存储
数据实体 执行实例管理
操作执行器
科研数据对象
科研代码仓库 科研数据集仓库 论文数据仓库 关系对象仓库
数据标识 执 执 执
标识解析服务 行 行 行
标识索引 实 实 实
例 例 例
标识分配 标识寻址
1 ··· n
图 2 ReproLink 总体架构
3.2 数据管理模块
ReproLink 中的数据分散式地存储于数据源的数据仓库中, 在用户访问数据、复现过程中使用数据时, 由数据
管理模块和各个数据仓库通信, 以汇聚来自不同主体的多源异构的数据. 除此之外, 数据管理模块还负责对系统中
的科研数据对象进行创建、修改、删除等操作. 数据管理模块包含 3 个子模块, 分别是标识索引、标识解析器、
操作执行器.
ReproLink 中的科研数据对象分散式地存储于各个数据仓库中, 为了对给定标识的科研数据对象执行某项操
作, 需要先获得这个科研数据对象所在仓库的地址, 这一操作通过标识索引完成. 标识索引是一个关系型数据库,
其中每一行的内容为一个科研数据对象的标识、类型、所在仓库地址, 表 2 给出了标识索引的一个示例. 这个数
据库在标识列上建立索引, 可以根据标识快速定位数据行. 数据管理模块收到对科研数据对象的访问、修改、删
除请求时先使用请求中的标识在本地的标识索引中查询此标识对应的仓库地址和基本属性, 接着使用操作执行器
向该仓库地址发送对此科研数据对象的请求.
若在本地的标识索引中不存在所请求的标识, 数据管理模块会通过标识解析器使用 IRP 协议向外部的标识解
析服务发出标识解析请求. 若这一请求同样失败, 则说明数据管理模块收到的请求中的标识是非法标识, 因此返回
错误信息. 若标识解析服务成功返回了请求对象的地址和基本属性, 则数据管理模块将这一标识对应的地址和基
本属性存入标识索引, 从而后续对于同一数据对象的操作可以直接使用本地的标识索引.

