论文部分内容阅读
将多个服务组合起来形成服务流程提供更为强大的功能已经成为一种普遍应用。在服务流程执行时,服务流程引擎解释流程逻辑并进行服务调用。为了加速服务流程的执行,可以将服务调用的数据进行缓存从而有可能直接使用缓存数据、避免服务的重复调用。本文提出了一种考虑服务在流程中关系的组合缓存机制。首先对服务流程缓存问题进行建模,提出了组合缓存的策略,定义了基于链表的组合缓存数据结构,讨论了缓存更新的策略。通过对服务调用时间的节省和存储花费分析决定缓存空间的分配。本文首先介绍了服务流程缓存的相关技术,重点介绍了科学工作流中的中间数据存储以及语义缓存技术。接着给出了基于时间代价的缓存划分算法。该算法将缓存划分为多块使用,实现了缓存组合。而后文章针对缓存块,介绍其结构并对其匹配策略、维护策略和收益花费进行了分析。最后文章使用了一个看电影的服务流程实例,通过模拟实验,测试了使用了服务流程组合缓存后,服务流程的执行时间,维护花费包括更新时间代价和存储空间,以及组合缓存的网络开销包括缓存的访问次数。实验结果表明与各个服务独立缓存相比,组合缓存更显著地加速了流程执行,同时,其使用的总体资源较少,服务失效时的缓存更新时间也更少。