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