2.5 小结
如2.2节所展示的,从底层物理特性角度,例如,系统的规模、系统内在的异构性、从特性角度(如安全)提供端到端解决方案的实际需求等,分布式系统的复杂性正在增加。这使得从模型角度理解和探讨分布式系统显得更加重要。本章考虑了底层物理模型,并深度考察了支撑分布式系统的体系结构模型和基础模型。
本章从所包含的体系结构模型角度给出了描述分布式系统的方法,明晰了这个设计空间的内涵,包括查看什么在通信以及这些实体如何通信等核心问题,以及基于给定物理基础设施,考虑每个元素可以扮演的角色与合适的放置策略,并把它们补充到设计中去。本章还介绍了体系结构模式在由底层核心元素(例如上述的客户-服务器模型)构造复杂设计中发挥的关键作用,给出了支持分布式系统的中间件解决方案的主要类型,包括基于分布式对象、组件、Web服务和分布式事件的解决方案。
从体系结构模型角度看,客户-服务器方法是一种常见的体系结构模型——Web和其他互联网服务(如FTP、新闻和邮件以及Web服务和DNS)均基于这个模型,文件归档和其他本地服务也是如此。像DNS这种有大量的用户并管理大量信息的服务是基于多个服务器的,并使用数据分区和复制来提高可用性和容错能力。客户和代理服务器上的缓存得到广泛使用以提高服务的性能。76不过,现在有许多方法对分布式系统进行建模,包括各种可替代的观点,如对等计算和更多的面向问题的抽象(如对象、组件或服务)。
基础模型补充了体系结构模型,它们帮助从诸如性能、可靠性和安全角度对分布式系统的特性进行推理。特别地,我们给出了交互模型、故障模型和安全模型。它们识别出构造分布式系统的基本组件的共同特征。交互模型关注进程和通信通道的性能以及全局时钟的缺乏。它将同步系统看成在进程执行时间、消息传递时间和时钟漂移上有已知范围的系统,将异步系统看成在进程执行时间、消息传递时间和时钟漂移上没有限制的系统——这是对互联网行为的描述。
故障模型将分布式系统中的进程故障和基本的通信通道故障进行了分类。屏蔽是一项技术,依靠它,可将不太可靠的服务中的故障加以屏蔽,并基于此构造出较可靠的服务。特别是,通过屏蔽基本的通信通道的故障,可从基本的通信通道构造出可靠的通信服务。例如,遗漏故障可通过重传丢失的消息加以屏蔽。完整性是可靠通信的一个性质——它要求接收到的消息与发送的消息一致,并且没有消息被发送两次。有效性是可靠通信的另一个性质——它要求发送消息缓冲区中的任何消息最终都能传递到接收消息缓冲区。
安全模型可识别出在一个开放的分布式系统中对进程和通信通道可能的威胁。有些威胁与完整性有关:恶意用户可能篡改消息或重放消息。其他的威胁则会损害私密性。另一个安全问题是发送消息所代表的主体(用户或服务器)的认证。安全通道使用密码技术来确保消息的完整性和私密性,并使得相互通信的主体可以进行验证。