软件模式与软件体系结构概述 | 青训营笔记

114 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天

软件模式

定义

软件模式描述了特定设计情形下反复出现的设计问题,并提供了已得到充分证明的通用解决方案摘要。解决方案摘要描述模式的组件、组件的职责和关系,以及这些组件协作的方式。

软件模式的层次分类

  • 架构模式
  • 设计模式
  • 代码模式

软件体系(架构模式)

软件架构的目标

  1. 可靠性(Reliable)
  2. 安全性(Secure)
  3. 可扩展性(Scalable)
  4. 可定制化(Customizable
  5. 可延伸性(Extensible)
  6. 可维护性(Maintainable)
  7. 客户体验(Customer Experience)
  8. 市场时机(Time to Market)

软件体系结构风格经典分类

Pasted image 20230213224439.png

分布式系统模式-代理broker模式

结构

Broker模式包含了6类组件:客户端client、客户端代理client-side proxy、代理(中介)broker、网桥bridge(可选组件)、服务器代理server-side proxy、服务器server 注:这里的客户端为发送RPC的server

动态特性

  1. 服务注册
  2. 客户端向服务器发送请求(同步或异步)
  3. 不同代理间通过网桥交互

实现

  1. 定义对象模型或使用现有模型
  2. 决定系统应提供什么样的组件互操作性。为支持互操作性,可指定二进制标准,也可引入一种高级接口定义语言(IDL)
  3. 规定broker组件向客户端和服务器提供的API
  4. 使用proxy对象隐藏客户端和服务器的实现细节
  5. 设计broker组件,可与上面3、4两步同步进行
    • 给出client-side proxies和server-side proxies之间交互协议的细节
    • 对于网络中每一台参与的机器都必须提供一个本地broker供其使用
    • 客户端调用服务器的方法时,broker将所有结果和异常返回给客户端
    • 如果proxies没有提供调用参数和结果的包封(marshaling)和解封(unmarshaling)机制 ,那么broker就要提供这个功能
    • Broker应该包括一个目录服务,用来将服务器标识与服务器地址关联起来
    • Broker可能需要提供名字服务,为服务器生成唯一标识
    • 如果支持动态方法调用,则需要broker根据记住的服务器类型信息,动态生成调用
    • 实现相应的故障处理机制
  6. 实现IDL编译器

MVC模式

  • 模型(model) 组件封装核心数据和功能,独立于输出表示方式和输入行为。
  • 视图(view) 组件向用户显示信息。视图从模型那里获取它显示的信息, 一个模型可以有多个视图。
  • 每个视图都有相关联的控制器(controller)组件。控制器接受输入,通常是表示鼠标移动、鼠标按钮激活或键盘输入的事件。事件被转换为服务请求,而服务请求要么被发送给模型,要么被发送给视图。用户只通过控制器与系统交互。

三层架构

Pasted image 20230213230231.png

引用

  • 《面向模式的软件体系结构 - 卷1 模式系统》