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 服务器.
   426   427   428   429   430   431   432   433   434   435   436