第2章 体系结构
分布式系统往往是由各种复杂的系统组成,其组件按定义分散在多台机器之中。要掌握这些复杂性,关键是恰当地组织好这些系统。察看分布式系统的组织结构的方法有多种,其中常见的一种是区分软件组件集的逻辑组织和实际物理实现的差别。
分布式系统的组织结构主要是指组成该系统的软件组件,这种软件体系结构(software architecture)告诉我们不同的软件组件是如何组织的,它们应如何相互作用。本章我们首先来看看一些常见的组织(分布式)计算机系统的实用方法。
分布式系统的真正实现要求我们真实地把软件组件放置在真实的机器上。这样做的选择有多种。软件体系结构的*终实例又称为系统体系结构(system architecture)。本章我们将看看传统的集中式体系结构,其中,单个服务器实现了大多数的软件组件(及其功能),而远程客户使用简单的通信方法就可以访问该服务器。另外,我们还将察看非集中式体系结构,其中的每个机器起着同等的作用,就像混合组织结构一样。
正如在第1章中所介绍的那样,分布式系统一个重要的目标是,通过提供一个中间件层,把应用程序与底层平台分开。采用这样一层是一个重要的体系结构决策,其目的是提供分布式透明性。然而,要获得透明性是需要付出代价的,需要不同的技术来使得中间件为可适应的。本章将介绍一些更为常见的实用技术,它们本身也影响着中间件的组织结构。
通过使分布式系统监视自己的行为,当需要时采取适当的措施,就可以获得适应性。这就导致了自治系统(Autonomic Systems)的出现。这种分布式系统经常组成反馈控制循环的形式,形成了系统设计中一个重要的体系结构元素。本章将用一节的篇幅来介绍自治分布式系统。
……