知识卡片
动态重配置的四种典型模式
内容
动态重配置模式说明了软件架构中组件是如何协作、又如何通过协作完成”从一种配置转化为另一种配置”这一过程的,书中给出四种典型模式,各自对应不同的系统拓扑形态。主从(Master-Slave)模式:主组件接收客户端请求、把工作划分给从组件,再合并解释总结从组件的响应;从组件在未被分配工作时处于空闲状态,等待新任务重新激活;该模式用两个正交状态图描述——主操作状态图定义主组件的操作状态,主重配置状态图描述主组件如何安排重配置过程。中央控制(Centralized Control)模式:广泛用于实时系统,一个中央控制器控制多个组件,其状态图只维持”空闲/非空闲”两种状态。客户端/服务器(Client/Server)模式:客户端组件需要服务器组件提供的服务,两者通过同步消息交互;重配置的时机是客户端发起的事务完成之后可添加或删除客户端组件,顺序服务器完成当前事务(或并发服务器完成当前事务集合、并把新事务在消息缓冲中排队完毕)之后可添加或删除服务器组件——即重配置只能发生在”当前工作单元结束”的安全节点,而不能在事务进行中随意插入。分布式控制(Decentralized Control)模式:系统功能整合在多个分布式控制组件之中,广泛用于分布式应用,有环形模式(每个组件功能相同,左右各有一个前驱和后继与之交互)和顺序模式(每个组件用相同连接方式与自己的前驱后继交互,向前驱发送请求并获得响应)等相似变体。这四种模式的共同特点是:重配置动作都被限定在”组件当前工作状态允许被打断”的特定时机点上(空闲态、事务完成后),这正是[[动态软件架构DSA与动态重配置DR的原理]]中”演化操作原子性”要求在具体拓扑模式层面的落地体现——脱离了这些安全时机点谈重配置,就会破坏系统状态的一致性。
参考来源
- 位置:《软件架构理论与实践》第9章《软件架构的演化和维护》"9.2.2 软件架构动态演化"节之"4.动态重配置"(源文件:_epub-src/OEBPS/text00073.html)
- 结论依据:原文分别说明主从模式、中央控制模式、客户端/服务器模式、分布式控制模式的组件协作方式与重配置的具体时机("当客户端发起的事务完成之后可以添加或删除客户端组件;当顺序服务器完成了当前的事务……可以添加或删除服务器组件"),直接支撑本卡片结论。
- 原始内容:在客户端/服务器重配置模式中,当客户端发起的事务完成之后可以添加或删除客户端组件;当顺序服务器(sequential server)完成了当前的事务,或者并发服务器(concurrent server)完成了当前事务的集合,且将新的事务在服务器消息缓冲中排队完毕之后,可以添加或删除服务器组件。