在分布式架构中,组件呈现在不同的平台上,多个组件可以通过通信网络相互协作,以实现特定的目标或目标。
中间件作为分布式系统的基础设施
分布式架构的基础是其透明度、可靠性和可用性。
下表列出了分布式系统中不同形式的透明度 -
优势
缺点
集中式系统与分布式系统
客户端-服务器体系结构
客户端-服务器架构是最常见的分布式系统架构,它将系统分解为两个主要的子系统或逻辑进程 -
在此体系结构中,应用程序被建模为一组由服务器和一组使用这些服务的客户端提供的服务。服务器不需要知道客户端,但客户端必须知道服务器的身份,处理器到进程的映射不一定是 1:1
客户端-服务器架构根据客户端的功能可以分为两种模型:
瘦客户端模型
在瘦客户端模型中,所有的应用程序处理和数据管理都由服务器进行。客户端只需负责运行演示软件。
胖客户端模型
在胖客户端模型中,服务器只负责数据管理。客户端上的软件实现应用程序逻辑以及与系统用户的交互。
多层体系结构(n-tier 体系结构)
多层体系结构是一种客户端-服务器体系结构,其中表示、应用程序处理和数据管理等功能在物理上是分开的。通过将应用程序分成几层,开发人员可以选择更改或添加特定层,而不是重新设计整个应用程序。它提供了一个模型,开发人员可以通过该模型创建灵活且可重用的应用程序。
多层体系结构最普遍的用途是三层体系结构。三层体系结构通常由表示层、应用层和数据存储层组成,并且可以在单独的处理器上执行。
表示层
表示层是应用程序的最顶层,用户可以通过它直接访问,例如网页或操作系统 GUI(图形用户界面)。该层的主要功能是将任务和结果转换为用户可以理解的内容。它与其他层进行通信,以便将结果放置到浏览器/客户端层和网络中的所有其他层。
应用层(业务逻辑层、逻辑层或中间层)
应用层协调应用程序、处理命令、做出逻辑决策、评估和执行计算。它通过执行详细处理来控制应用程序的功能。它还在两个周围层之间移动和处理数据。
数据层
在此层中,信息从数据库或文件系统中存储和检索。然后,将信息传回进行处理,然后传回给用户。它包括数据持久性机制(数据库服务器、文件共享等),并为应用层提供 API(应用程序编程接口),该接口提供管理存储数据的方法。
Broker 架构风格
Broker Architectural Style 是一种用于分布式计算的中间件架构,用于协调和启用已注册服务器和客户端之间的通信。在这里,对象通信通过称为对象请求代理(软件总线)的中间件系统进行。
Broker 架构样式的组件
代理架构风格的组成部分通过以下标题进行讨论 -
代理
Broker 负责协调通信,例如转发和调度结果和异常。它可以是面向调用的服务,也可以是面向文档或消息的代理,客户端向其发送消息。
存根
存根在静态编译时生成,然后部署到客户端,客户端用作客户端的代理。客户端代理充当客户和经纪人之间的中介,并在他们和客户之间提供额外的透明度;远程对象看起来像本地对象。
代理在协议级别隐藏 IPC(进程间通信),并执行参数值的封送处理和来自服务器的结果的取消封送。
骨架
骨架由服务接口编译生成,然后部署到服务器端,作为服务器端的代理。服务器端代理封装了低级系统特定的网络功能,并提供高级 API 来调解服务器和代理。
它接收请求,解压缩请求,取消封送方法参数,调用合适的服务,并在将结果发送回客户端之前封送结果。
桥
网桥可以基于不同的通信协议连接两个不同的网络。它调解不同的代理,包括 DCOM、.NET 远程和 Java CORBA 代理。
桥接是可选组件,当两个代理互操作并以一种格式获取请求和参数并将它们转换为另一种格式时,它会隐藏实现细节。
CORBA 中的代理实现
CORBA 是对象请求代理的国际标准,对象请求代理是一种中间件,用于管理 OMG(对象管理组)定义的分布式对象之间的通信。
面向服务的体系结构 (SOA)
服务是业务功能的一个组件,它是定义明确、自包含、独立、已发布的,并且可通过标准编程接口使用。服务之间的连接由通用的、通用的面向消息的协议(如 SOAP Web 服务协议)执行,该协议可以在服务之间松散地传递请求和响应。
面向服务的体系结构是一种客户端/服务器设计,它支持业务驱动的 IT 方法,其中应用程序由软件服务和软件服务使用者(也称为客户端或服务请求者)组成。
SOA 的特性
面向服务的架构提供以下功能:
SOA 操作
下图说明了 SOA 是如何运作的 -