高级系统架构师必知的经纪人Broker设计

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高级系统架构师必知的经纪人Broker设计相关的知识,希望对你有一定的参考价值。

什么是经纪人(Broker)解决方案


每个网络节点的本地Broker 代表系统中的领域对象进行协商并实现进程间通信的功能。远程领域对象的显式接口采用Client Proxy(客户端代理)的方式在其客户端的地址空间实现,并处理所有与Broker 之间的交互。


此外,无论是本地的对象还是远程的,Broker 都为领域对象提供注册其网络位置和所公开的显式接口的功能,并允许它们获取其它所有己注册的领域对象的显式接口。


因此,在分布式系统中,通过使用一系列的Broker,可以从应用的功能中,隔离并封装通信基础设施的细节,这样客户端可以像使用本地服务一样,调用远程服务的方法。

技术分享

Broker 有两个重要优点:


封装性:使得应用程序开发人员专注于提供必要的领域功能,他们不需要关心底层的网络问题。


位置无关性:允许客户端采用与访问同一地址空间领域对象相同的方式来访问远程领域对象,从而支持计算机网络中的灵活部署。


位置无关性还有利于提升系统的可伸缩性和可用性,因为它可以通过复制和联合领域对象有效地利用网络中可用的集体计算能力。位置无关性对于产品线架构环境来说非常重要,因为不同的产品线实例具有不同的功能性和操作上的需求。


领域对象不要直接处理网络问题


问题:怎样才能够保护仓库管理流程控制系统中的领域对象,使其不必直接处理网络问题并在它们之间提供位置无关的交互机制呢?


对策:利用经纪人(Broker)解决方案,隔离业务和通信基础设施的关系。


解决方案:为网络桥接设计合理的经纪人(Broker),以便分布式的领域时象能互相发现、访问并彼此交流,就像它们部署在一起一样。


这种设计可以帮助我们从应用的功能中,隔离并封装通信基础设施的细节。Broker 系统的封装性和位置无关性,有利于提升系统的可伸缩性和可用性,位置无关性对于产品线系统环境来说非常重要,因为不同的产品线实例具有不同的功能性和操作上的需求。


仓库流程控制系统的网络桥接


如何帮助我们从应用的功能中,隔离并封装通信基础设施的细节,从而保证系统的封装性和位置无关性,有利于提升系统的可伸缩性和可用性呢?通过经纪人(Broker)设计解决方案可以帮助我们解决这类问题。


位置无关性对于产品线系统环境来说非常重要,因为不同的产品线实例具有不同的功能性和操作上的需求。下图描绘了仓库管理流程控制系统的表现层和业务处理层中使用基于Broker 模式的通信基础设施的情况。在该图中,MFC 指的是物流控制(Material Flow Control)。我们假定位于同一层中的领域对象处于同一位置。

技术分享

为了满足操作大型仓库所需要的性能和吞吐量方面的要求,规定在流程控制系统的Broker 模式中,所有的进程间通信都是异步和面向消息的。调用客户端代理的一个方法会发出一个特定类型的异步消息(请求报文)。远程调用的结果通过“响应报文”异步返回。


然而,纯粹的异步通信机制经常难以理解,更难以在应用服务的实现中正确而有效地使用。


因此客户端代理还要完成以下任务:将异步通信机制封装起来,并向客户端领域对象提供它们所需要的特定通信和调用模型。这种封装有助于应用开发人员以一种更直接、易懂和方便的方式来使用异步通信机制。


本文出自 “中科院计算所培训” 博客,谢绝转载!

以上是关于高级系统架构师必知的经纪人Broker设计的主要内容,如果未能解决你的问题,请参考以下文章

架构师必知必会系列系统架构设计需要知道的5大精要(5 System Design fundamentals)...

9大架构设计场景,架构师必知必会

架构师必知必会常见的NoSQL数据库种类以及使用场景

架构实践架构师必知必会的 5 种业界主流的架构风格

架构实践架构师必知必会的 5 种业界主流的架构风格

架构师必知10大移动Web开发框架