论文部分内容阅读
随着Web Services技术和分布式系统的日益发展和广泛应用,我们对其可靠性、可用性和安全性的要求越来越高。高可用性的系统要求在部分部件发生故障或遭受攻击的情况下,仍然可以持续提供正确的服务。而这些故障中拜占庭故障是使服务中断和错误的重要原因。拜占庭故障是分布式系统在执行某个算法期间发生的任意的故障。它包含我们通常所说的崩溃故障和发送疏漏故障等。当有拜占庭故障发生时,系统可能会按照非预期的方式做出回应,除非该系统被设计为拜占庭故障容忍的。然而分布式的Web Services服务商往往需要在非安全可靠的网络环境中也能持续提供服务。Web Services架构不仅需要抵御良性故障还要容忍拜占庭故障。本文的主要工作和创新点如下:本文详细介绍了故障容忍的研究进展,总结各种同步和异步环境下的解决方案,分析了使用状态机复制技术和决议证书技术构建容错系统,并深入研究了拜占庭容错算法的过程。本文针对传统的拜占庭故障容忍算法在消息验证上使用公钥签名体系效率不高的问题,引入了消息认证码作为公钥签名的替代方案,提出了消息认证码向量概念。为了解决消息认证码不能向第三方证明已有证书这一固有缺陷,本文改进了视图变更协议,通过将决议证书和消息确认技术相结合,节点主动请求证书,从而设计出一种改进的BYZMV算法。针对以往的研究者大多是通过建立自有协议来达到节点间的一致性目标,在复杂的网络环境中不能保证消息的可靠到达,容易被防火墙拦截而导致容错算法失败的情况,本文深入研究了在Internet环境中建立可拜占庭容错的WebServices系统,该系统将容错协议封装在通用的SOAP中,避免自有协议在通过防火墙时被拦截的问题。同时,本文提出了模块化和插件化的故障容忍体系,使得我们可以在已经投入使用的Web Services环境中,无缝地加入容错功能,实现对用户透明的Web Services故障容忍服务。本文采用了Axis2C作为Web Services引擎,实现了一个容错Web Services服务端和客户端,重点设计并实现了容错模块FT的关键部分。容错逻辑模块包括消息输出流处理器和输入流处理器。最后,本文通过编程实验并分析其结果,说明了该系统可以在一个具有n个节点的分布式Web Services系统中,抵御少于n/3个发生故障的节点,展示了建立可拜占庭容错的Web Services架构的可行性。