与具有明确系统边界传统软件开发不同,组合服务处于完全开放、动态的环境中,其构造和执行依赖于第三方组件服务,并且在运行时需要进行演化以适应环境和业务需求的不断变化。这种动态性尽管给组合服务的开发带来很强的灵活性,但是却给系统的正确性和可靠性带来很大的影响。鉴于目前业界普遍对具有自管理能力的动态服务组合的迫切需求,课题借鉴自治计算的思想,深入研究动态服务组合自治愈关键技术,包括组合服务运行时监控、异常分析与诊断以及故障恢复机制。重点研究考虑隐式交互的组合服务运行时监控技术、基于统计学习的两阶段异常分析与诊断机制、基于规划和冗余容错的故障自恢复机制,建立面向动态服务组合的自治愈框架,实现具备自愈能力的组合服务支撑软件系统,从而提高动态服务组合的可用性、可靠性和可信性,降低系统维护成本。
web services composition;self-healing;runtime monitoring;statistical learning;fault handling
与具有明确系统边界的传统软件开发不同,组合服务处于完全开放、动态的环境中,其构造和执行依赖于第三方服务。这种动态性尽管给组合服务的开发带来很强的灵活性,但是却给系统的正确性和可靠性带来很大的影响。本课题提出了一套针对组合服务的自治愈方法并设计了相应的框架以提高组合服务在运行时的可靠性。本课题完成预期计划的研究目标,取得了如下研究成果1)总结出一类以数据为中心的服务性质(Property),并提出参数化的行为约束描述语言(Par-BCL)支持刻画与共享数据相关的时序约束;2)提出一种以数据为中心的Web服务性质运行时高效验证方法,设计了一种参数化的事件模式监控模型以及基于索引机制的高效监控算法,快速检测约束是否违背;3)提出一种以数据为中心的Web服务性质运行时实施方法,保证服务之间由于共享资源引起的隐式交互不会导致整体应用的不一致,提高了组合服务在运行时的可靠性;4)提出了两种Web服务行为约束的自动生成方法,通过分析Web服务错误描述信息以及挖掘组合服务的历史执行日志,支持自动产生Web服务性质和使用规则;5)在上述关键技术的研究基础上开发面向组合服务的运行时监管系统,保证了组合服务运行时的可靠性。