Page 130 - 《软件学报》2021年第5期
P. 130

1354                                     Journal of Software  软件学报 Vol.32, No.5,  May 2021

                 之前无法得到满足的用户需求数量降为 0.使用了具有简单版本依赖的服务集合 1 的实验 1 与复杂版本依赖关
                 系的服务集合的实验 2 在系统演化之后,未满足用户需求数量均降到 0,且用户的平均响应时间保持相对稳定.
                 需要注意的是:在每次演化过程中,平均响应时间均为先增加后减少.因为在每次演化之后,系统需要从 Gateway
                 向 Cluster Agent 发送请求以为每个需求重新计算路由信息,导致了平均响应时间的增加.在 Gateway 中缓存路
                 由信息后,Gateway 无需再向 Cluster Agent 发送请求,因此平均响应时间降低.此外,表 1 中的服务可用性表明:
                 在不同的服务依赖复杂程度下,该系统均能够很好地针对用户需求变化进行自演化,且具有较高的服务可用性.
                    为了研究不同时间窗口的影响,设置了具有不同演化时间窗口大小的实验 3.实验 3 与实验 2 的设置包括服
                 务升级时间和用户设置等基本相同,但时间窗口设置为 10 分钟.实验结果显示在图 6(c)和表 1 中.结果表明:随着
                 时间窗口的增大,系统需要更多的时间来发现未满足的需求,因此服务的可用性降低了很多.但较大的时间窗口
                 会降低相同时间内系统演化的次数.实验 2 系统共演化了 5 次,而实验 3 系统演化了 4 次,考虑到每次演化过程
                 都会导致平均响应时间的波动,当时间窗口设置较大时,其他用户受到系统演化的影响就越小.












                                             (a)  实验 1:服务集合 1,演化时间窗口为 5 分钟











                                             (b)  实验 2:服务集合 2,演化时间窗口为 5 分钟











                                              (c)  实验 3:服务集合 2,时间窗口为 10 分钟

                            Fig.6    Average response time and count of failed demands in service upgrade scenario
                                    图 6   服务升级实验场景下的平均响应时间和失败需求数量

                 4.1.2    场景 2:新用户需求
                    该实验对现实世界中的另一种常见情况进行了模拟:用户提出新要求后,开发者发布了新版本服务以满足
                 用户的新需求.该场景下的用户设置与实验 1~实验 3 不同,部分用户会主动提出新需求,且这些需求无法通过系
                 统中的服务集合满足.在新需求出现后,能够满足这些新需求的服务在随机的时间内注册到系统.分别使用服务
   125   126   127   128   129   130   131   132   133   134   135