论文部分内容阅读
现阶段,大多数Web服务组合算法侧重于寻找一个服务质量(Quality of Service,QoS)最优的服务组合方案,但是单一的服务组合方案不能很好的满足用户的偏好需求,并且单一的选择容易给系统带来性能瓶颈隐患;同时,由于网络环境动态变化导致的服务失效问题的存在,使得单一服务组合方案的可用性大大降低。因此,为用户提供基于QoS的Topk个服务组合方案,更具可用性和有效性。然而,现有的基于QoS的Topk服务组合算法,不能保证求得的Topk服务组合结果的精度和时间性能。为此,本文在服务依赖图的基础上,提出了解决服务组合Topk问题的QWSC-K算法。该算法利用服务依赖图构建服务之间的关系,进而采用多种优化策略来提高算法的运行效率:首先,通过前向层次过滤和后向层次过滤去除同服务请求参数无关的服务,缩减遍历的服务集空间;然后,采用一种组合路径序列的方式来表示生成的服务组合,避免耗时的组合回溯过程;最后,在搜索遍历过程中,利用动态规划的思想约减组合路径序列的数量,减少组合路径序列的合并开销。与此同时,为了保证了服务组合结果的精度,在遍历过程中,利用优先队列保存组合路径序列,避免了局部最优的情况的出现。同时,已有的服务组合方法大多都假定在服务固定不变的静态环境下,如何求取服务QoS最优或是近似最优的组合服务。然而,互联网上动态变化的服务环境,使得原有的服务组合方案可能由于包含任一失效服务而无法继续使用。现阶段虽然有针对动态环境的服务组合算法的研究,但大多数侧重于对最优服务组合进行动态的更新,缺少对Topk服务组合算法进行专门性的研究。为此,本文在QWSC-K的基础上提出了动态环境下的Topk服务组合算法DQWSC-K。该算法主要是利用发布/订阅网络,监控和获取服务变化的动态事件来更新原有的服务依赖图,然后在更新后的服务依赖图上,利用增量自适应算法仅更新部分受影响服务的状态,而不用搜索整个服务集空间。同已有的方法相比,DQWSC-K算法通过缓存中间的遍历结果,并对中间结果进行动态的更新,来避免低效率的重新计算,能够在保证服务组合质量的前提下获得更高的算法性能。最后,在静态环境中,通过与现有算法的对比实验,验证了本文提出的QWSC-K算法在时间性能和服务组合结果精度上都具有优势;而在动态环境中,通过与重新计算方式的比较,验证了本文提出的DQWSC-K算法具有良好的性能优势。