Web 架构的关键属性及五种风格

评估 Web 架构的关键属性

HTTP 协议应当在以下属性中取得可接受的均衡:

  1. 性能 Performance:影响高可用的关键因素
  2. 可伸缩性 Scalability:支持部署可以互相交互的大量组件
  3. 简单性 Simplicity:易理解、易实现、易验证
  4. 可见性 Visiable:对两个组件间的交互进行监视或者仲裁的能力。如缓存、分层设计等
  5. 可移植性 Portability:在不同的环境下运行的能力
  6. 可靠性 Reliability:出现部分故障时,对整体影响的程度
  7. 可修改性 Modifiability:对系统作出修改的难易程度,由可进化性、可定制性、可扩展性、可配置性、可重用性构成

架构属性:性能

  • 网络性能 Network Performance
    Throughput 吞吐量:小于等于带宽 bandwidth
    • Overhead 开销:首次开销,每次开销
  • 用户感知到的性能 User-perceived Performance
    • Latency 延迟:发起请求到接收到响应的时间
    • Completion 完成时间:完成一个应用动作所花费的时间
  • 网络效率 Network Efficiency
    • 重用缓存、减少交互次数、数据传输距离更近、COD

架构属性:可修改性

• 可进化性 Evolvability:一个组件独立升级而不影响其他组件
• 可扩展性 Extensibility :向系统添加功能,而不会影响到系统的其他部分
• 可定制性 Customizability :临时性、定制性地更改某一要素来提供服务,
不对常规客户产生影响
• 可配置性 Configurability :应用部署后可通过修改配置提供新的功能
• 可重用性 Reusabilit :组件可以不做修改在其他应用在使用

5 种架构风格

数据流风格 Data-flow Styles

  • 管道与过滤器 Pipe And Filter,PF
    • 每个 Filter 都有输入端和输出端,只能从输入端读取数据,处理后再从输出端产生数据
  • 统一接口的管道与过滤器 Uniform Pipe And Filter,UPF
    • 在 PF 上增加了统一接口的约束,所有 Filter 过滤器必须具备同样的接口

复制风格 Replication Styles

  • 复制仓库 Replicated Repository, RR
    • 多个进程提供相同的服务,通过反向代理对外提供集中服务
  • 缓存 $
    • RR的变体,通过复制请求的结果,为后续请求复用

分层风格 Hierarchical Styles


移动代码风格 Mobile Code Styles

  • 虚拟机 Virtual Machine, VM
    • 分离指令与实现
  • 远程求值 Remote Evaluation, REV
    • 基于 CS 的 VM,将代码发送至服务器执行
  • 按需代码 Code on Demand, COD
    • 服务器在响应中发回处理代码,在客户端执行
  • 优秀的可扩展性和可配置性,提升用户可察觉性能和网络效率
    • 分层、按需代码、缓存、无状态、客户端服务器
    Layered-Code-on-Demand-Client-Cache-Stateless-Server, LCODC$SS
    • LC$SS+COD
  • 移动代理 Mobile Agent, MA
    • 相当于 REV+COD

点对点风格 Peer-to-Peer Styles

风格演化

posted @ 2020-09-15 09:29  james_cai  阅读(459)  评论(0编辑  收藏  举报