论文部分内容阅读
Web服务是一种新型的因特网软件,它部署在全球网络的各处,并能通过标准协议相互调用。因此,通过使用这种技术,不同服务提供商提供的服务能够很容易的集成为流程形成一个综合的服务。选择和集成Web服务可以通过静态的方法,也可以通过动态的方法。这些方法的选择是根据服务的功能要求和性能约束决定的。但是不论选择哪种方法,对于由Web服务组成的分布式的应用程序来说,该综合服务的性能质量是通过运行时的性能(如,端到端延迟、整体成本、服务的可靠性和可用性等)来度量的,而不是个别服务组件的质量。用户所关心的也只是所能获得的最终组合流程的性能,而不会关心具体的服务组件。这就需要一个机制来保证组合的Web服务的流程整体的组合代价是在可接受的范围内。本文研究了着眼于流程整体性能约束下的服务组合优化问题。本文建立了组合代理来处理Web服务用户和提供商之间通讯、协调和选择的工作。这个组合代理收集服务提供商的可度量信息;接收来自用户的服务请求:然后选择出可能满足用户请求里的功能需求的服务;并根据流程的整体性能约束进一步挑选恰当的服务;并与服务提供商协商获得服务的服务性能承诺。这种方式使本来面向专业领域的Web服务能够更容易的被普通用户所使用,大大减小了用户的使用成本,并可处理各服务之间交互所出现的问题,提高了系统的可靠性。在服务选择中为了满足流程整体性能约束,我们设计了一种服务选择算法,来在组合代理中使用。这个算法的目标是在满足流程整体组合代价约束的基础上,使整个流程中用户定义的利益函数取得最大值。我们在选择算法中根据服务成本、服务响应时间、服务的负载情况、和网络延迟等性能属性来选择最符合流程性能约束的服务。我们把组合代价约束的服务选择问题分成单约束的服务选择和多重约束的服务选择。我们可以把单约束的服务选择看作是多选择的背包问题,把多重约束的服务选择抽象为多尺度的多选择背包问题,也可抽象为多约束的最优路径问题。就这些问题我们分别展开讨论及分析,并给出高效的解决方法。这些算法保证了在服务组合中生成的服务流程,在满足用户的功能性的需求的基础上,根据用户对组合服务性能的要求,获得整体性能更高的组合服务,并可进一步最大化服务的利益函数,获得最好的服务组合结果。最后,该方法在SmartFlow模式中进行了应用,并获得了良好的效果。