• 架构
  • 架构的定义
  • 最高层次的系统分解.
  • 系统中不易改变的决定.
  • 主观上的,对系统的组成部分和各部分件交互关系的设计的可共享的理解.
  • 层次
  • 如何分层,以及层间如何协作.
  • 企业应用
  • 虽然部分模式适合于所有软件,但是大多数模式仅适合于某些特定领域和分支.
  • 特征
  • 持久化数据.
  • 程序多次运行都需要这些数据.
  • 数据的生命周期可能比软件都要长.数据可能会需要在不同的软件间迁移.
  • 数据本身的结构可能会被扩展,以在不影响既有信息情况下,表示更多的新信息.
  • 大数据.
  • 多人同时访问数据
  • 大量操作数据的UI.
  • 通常需要与散布在企业周围的其他企业应用集成.
  • 业务逻辑:很多的"一次性特殊情况"最终导致复杂的业务"无逻辑".
  • 性能
  • 配置上的重大变化会使得某些性能优化失效.
  • 升级硬件,DB时,必须重新确认优化的有效性.可能一些优化措施在新硬件条件下反而会影响性能.
  • 响应时间.
  • 系统完成一次外部请求处理所需要的时间.
  • 响应性
  • 系统响应请求的速度有多快.
  • 当请求处理期间,若系统一直处于等待状态,那么响应时间=响应性.
  • 可以对用户提供一些表明系统已经接到请求的信息(如进度条),会提高响应性.
  • 等待时间
  • 获得系统任何形式的响应的最小时间.即使是什么都不做的响应.
  • 本机上时一般等待时间很小.但是远程调用由于传输的问题,可能数秒.
  • 吞吐率
  • 给定时间内能够处理多大的请求量.
  • 负载
  • 系统当前的负荷的描述.(如当前有多少用户与系统链接).
  • 负载一般作为其它性能指标的背景.在10个用户下,响应时间1秒.
  • 负载敏感度
  • 响应时间随负载变化的程度.
  • 衰减.
  • 效率
  • 性能除以资源
  • 可伸缩性
  • 向系统中增加资源(通常是硬件)对系统性能的影响.
  • 垂直可伸缩性.提高单个服务器的性能.
  • 水平可伸缩性.增加服务器的数量.
  • 对于企业应用,提高硬件的可伸缩性比关注容量或效率更重要.
  • 从用户角度,响应性比响应时间更重要.
  • 模式
  • 模式的核心是特定的解决方案
  • 该方案具有足够的通用性,能够解决重复出现的问题.
  • 模式都是不完备的半成品.