分布式系统的模型

传统上,在多台计算机上运行整体式系统意味着将系统拆分为单独的客户端和服务器组件。 在此类系统中,客户端组件处理用户界面,服务器提供后端处理,例如数据库访问、打印等。 随着计算机激增、成本下降以及通过更高的带宽网络连接,将软件系统拆分为多个组件变得更加方便,每个组件在不同的计算机上运行并执行专用功能。 此方法简化了开发、管理和管理,并且通常提高了性能和稳定性,因为一台计算机发生故障不一定会禁用整个系统。

在许多情况下,系统在客户端上显示为执行必要操作的不透明云,即使分布式系统由单个节点组成,如下图所示。

客户端访问 rpc 服务器系统中的服务,这些服务器在外部客户端上显示为不透明的云

云的不透明度是保留的,因为计算操作是代表客户端调用的。 因此,客户端可以在云中查找 (节点) 的计算机,并请求给定的操作;在执行操作时,该计算机可以在云中的其他计算机上调用功能,而无需向客户端公开其他步骤或执行这些步骤的计算机。

通过这种范例,分布式、类似于云的系统的机制可以分解为多个单独的数据包交换或单个节点之间的会话。

传统的客户端-服务器系统具有两个具有固定角色和职责的节点。 新式分布式系统可以具有两个以上的节点,其角色通常是动态的。 在一个会话中,一个节点可以是客户端,在另一个会话中,节点可以是服务器。 在许多情况下,公开功能的最终使用者是用户坐在键盘旁观看输出的客户端。 在其他情况下,分布式系统在无人参与的情况下执行后台操作。

分布式系统可能没有用于每个特定数据包交换的专用客户端和服务器,但请务必记住存在调用方、 (或发起方,这两者通常称为客户端) 。 还有呼叫的接收方 (通常称为服务器) 。 无需采用分布式系统的请求-回复格式进行双向数据包交换;通常,消息仅以一种方式发送。