论文部分内容阅读
Web服务是当前SOA实现的主流技术,越来越多的企业需要在SOA体系结构和Web服务技术框架下将企业已有的应用以Web服务的形式发布,并整合业务伙伴的Web服务以实现功能聚合、提供新的组合服务。组合服务流程由多个成分Web服务构建并使用BPEL4WS等规范语言描述。组合服务流程被部署到BPEL4WS执行引擎上运行,由引擎接照事先编排的顺序调用各成分Web服务来实现对流程的执行。Web服务组合执行引擎的QoS(服务质量)能否有效得到保证是服务组合能否实用化的关键影响因素。本论文深入分析了Web服务组合执行引擎WebJetFlow现有的运行机制,该引擎虽然是一个多线程的BPEL4WS执行引擎,但是并没有一个有效的线程管理机制,伴随着引擎的长时间运行将会产生大量匿名线程,严重影响引擎运行效率,因此我们将双线程池模型引入引擎当中,提高了引擎的执行效率。由于服务实现中的各种原因,有些Web服务可能要花费相当长的时间才能响应请求,而这种延迟还可能导致某些传输机制超时。因此我们在WebJetFlow中将长生命周期的服务调用转换为异步调用,减少引擎等待Web服务返回结果的时间,以此提高引擎对流程并发访问的执行效率。考虑到目前主流的BPEL4WS引擎的运行模式都是“尽力而为”模式,对任何服务请求都不考虑服务质量的等级,在重负载情况下,引擎将会非常忙碌,甚至拒绝接受超过负载之后的服务请求。为此,我们将支持SLA服务分级的机制引入了WebJetFlow。引擎根据与客户签署的SLA协约中所约定的服务质量等级,调度引擎的资源,在满足QoS约束的条件下优先处理高SLA等级的请求,使更重要的服务请求能得到更好的服务,使组合服务的运行场景更贴近真正的商业逻辑。本论文通过进一步改进WebJetFIow的系统设计、完善和优化其运行机制,为基于互联网的服务组合的运行提供了服务质量保证。