分布式系统的类别和漏洞
1.1 分布式系统的类
存在多种观点、模型和部署来表征分布式系统。这些包括在物理资源聚合级别(例如,点对点或云系统)定义分布式系统,在中间件级别(例如,发布-订阅、分布式对象平台或Web服务)定义它,或者根据分布式系统提供的服务(例如,数据库或分类账)定义它。虽然文献中存在一系列定义,但分布式系统可以通过链接资源的协调模式或利用它们的服务的规范进行广泛分类。一个广泛的类别是分散控制,其中单个资源主要与其“相邻”资源相互作用。另一大类通过通信过程(如消息传递)将分布式资源连接起来,以实现各种形式的虚拟控制/协调控制。因此,基于这种通信和协调模型,分布式系统可以分为以下两大类。
- 在没有集中协调服务的情况下,分布式实体之间的分散点对点交互:点对点系统(P2P)系统代表了这类分布式系统。分散式非定时控制是此类系统的突出特征。例如,Kademlia,Napster,Gnutella等系统以及许多其他分布式文件和音乐共享/存储系统,无线传感器网络以及在线游戏系统都属于此类别。
- 跨分布式资源和服务的协调聚类:这是一个广泛的类,当细分为两个协调子类时,最好理解,即(a)资源的协调以及(b)服务的协调。我们将在本章中使用这两个协调抽象。分布式系统的范围包括客户端-服务器模型、n层多租户模型、弹性按需地理分散的资源聚合(云-公共、私有、混合、多云、大数据服务、高性能计算)和事务性服务,如数据库、账本、存储系统或键值存储(KVS)。Google File System、Amazon Web Services、Azure和Apache Cassandra就是这类的简单示例。虽然此类可能看起来既广泛又多样,但协调抽象(针对资源或服务)直接表征了分布式的类型系统分为这两个子类。在这两种情况下,这些系统通常通过通信交换和协调服务进行协调,其预期结果是提供“虚拟集中式系统”。其中确保因果关系、任务顺序、复制处理和一致性等属性。在文献中,客户端-服务器系统、云计算、移动计算、分布式数据库等都有离散的定义,尽管提供虚拟的“集中/协调”行为是它们的共同特征。
注意:
分布式系统中有许多细微的安全性。一种观点侧重于在资源和服务分散的分布式系统中提供安全性的概念和机制。另一种观点考虑使用分发作为提供安全性的一种手段,例如,密钥的分散与集中式密钥存储或使用虚拟机(VM)来分区和隔离资源和应用程序。此KA侧重于前一类“分布式系统中的安全性”。但是,它还讨论了后一种观点,因为分散的安全机制通常在逻辑上在分散的资源上执行,从而导致需要上述类别分散或协调集群。
值得强调的是,分布式系统架构通常是多个层的聚合,其中每一层都建立在下层提供的服务和整个发行版提供的协调服务之上。在最低级别,特定设备中的资源(内存、计算、存储、通信)通过该设备上提供的操作系统原语进行访问。分布式服务,例如命名、时间同步、分布式文件系统,是通过在各个设备上运行的不同组件和服务的交互来组装的。较高层建立在较低层和服务之上,以提供其他功能和应用程序。每个级别的分布式系统不同组件之间的交互由支持许多不同通信方式的中间件框架提供:消息传递、远程过程调用(RPC)、分布式对象平台、发布-订阅体系结构、企业服务总线。因此,分布式应用程序通过分布式组件和服务的交互和协调以分层(或分层)的方式实现。在这些架构中,每一层的去中心化和协调可能不同,从而导致去中心化和协调模式的混合组合。我们向读者推荐操作系统和虚拟化CyBOK知识领域,了解有关访问基本资源和书籍,以进一步阅读有关分布式系统体系结构和中间件的信息。