Page 431 - 《软件学报》2025年第12期
P. 431
5812 软件学报 2025 年第 36 卷第 12 期
21. if GetInputReproductionUnits(r) = ∅ then
22. Ready ← Ready∪{r}
23. end if
24. end for
25. while Ready , ∅ do
26. Get an element r from Ready
27. Ready ← Ready−{r}
28. result ← ExecuteOneReproductionUnit(r, Results)
29. DoManager.CreateRelationship(r, result, (output, reproduction, dataset))
30. Results[r] ← result
31. Done ← Done∪{r}
32. for r ∈ {r |r ∈ GetInputReproductions(r )) do
′
′
′
33. if GetInputReproductions(r ) ⊂ Done then
′
34. Ready ← Ready∪{r }
′
35. end if
36. end for
37. end while
38. end function
3.5 分散式数据对象存储和标识解析服务
ReproLink 中的科研数据对象以分散式存储的形式保存于世界各地的科研数据仓库中, 数据所有者可以在本
地建立自己的科研数据仓库以保存其拥有的科研数据对象, 也可以将属于自己的数据对象托管在第三方的科研数
据仓库中. 科研数据仓库基于 DOA 中的数字对象仓库实现, 使用 DOIP 协议对外提供服务. DOIP 协议支持 TCP、
UDP、TLS 等多种不同的传输层协议, 在异构协议的基础上对外提供了一个统一的接口.
标识解析服务基于 DOA 中的标识解析系统实现. 标识解析服务维护了这些科研数据对象的一个中心化索引.
在创建科研数据对象时, 数据管理模块首先通过标识解析服务注册该科研数据对象, 标识解析服务会为这数据对
象分配一个全局唯一的数据标识. 在对数据对象进行获取、更新、删除操作时, 数据管理模块先向标识解析服务
请求该数据对象所在的数据对象仓库以及此仓库支持的数据交换协议, 再使用合适的协议和存储该数据对象的仓
库通信.
4 系统测试与应用验证
本节对 ReproLink 的数据管理模块和对象检索引擎进行了性能测试, 测试结果表明 ReproLink 具有较高的吞
吐率和较低的延迟, 且在节点数量增加时具有良好的可扩展性. 接着, 本节对 ReproLink 进行了用户体验研究, 用
户普遍认为 ReproLink 具有较好的易用性和实用性. 最后, 本节在 3 个领域的实际场景中对 ReproLink 进行了实
例分析, 体现了 ReproLink 对于不同的科研领域具有一定的普适性.
4.1 性能测试
本节的性能测试主要关注 ReproLink 的数据管理模块和对象检索引擎的性能. 对于复现执行引擎, 由于其功
能为执行第三方代码, 吞吐率主要由第三方代码的运行时间决定, 因此本节不对复现执行引擎进行性能测试.
4.1.1 测试设置
本节的测试使用阿里云 ecs.g7.large 型实例作为测试环境, 其具体配置见表 4. 在可扩展性实验中, 测试使用最
多 32 台阿里云 ecs.g7.large 服务器; 在其他实验中, 测试使用两台阿里云 ecs.g7.large 服务器.

