1.质量属性效用树
1.主要关注性能,可用性,安全性和可修改性(升级)进行分析
2.架构风格
2.1.分类
1. 解释器(interpreter):灵活性最高,建模为有向无环图,采用工作流方式灵活定义应用流程
2.管道-过滤器:
3.隐式调用:
2.2.灵活性
1. 解释器(interpreter):灵活性最高,建模为有向无环图,采用工作流方式灵活定义应用流程
2.管道-过滤器:灵活性较差,数据处理流程一般是确定性的
3.隐式调用:分为若干个松耦合组合,需要增加额外控制方式,灵活性较差
2.3.可扩展性
1. 解释器(interpreter):通过解释器机制动态添加或者删除算法组件,支持动态调用,可扩展性最好
2.管道-过滤器:增加或者减少需要停止平台重新部署,可扩展性最差
3.隐式调用:支持动态增加和删除函数,可扩展性较高
2.描述对象动态交互关系模型
1.功能模型:系统功能,指出系统应该做什么
2.动态模型:系统控制结构,指出系统应该什么时候做
3.对象模型:系统数据结构,定义做事情的实体
3.数据架构设计
3.1.数据定义
1. 划分系统边界,明确数据引用关系,定义应用系统间的接口
2.定义数据模型包括:数据概念模型,数据逻辑模型,数据物理模型和数据标准
3.2.数据分布
1.包括数据业务,数据分析与数据存储
2.数据业务:在业务各环节创建,引用,修改或删除
3.数据分析:分析数据与应用系统各功能的关系,系统间的引用关系
4.数据存储:分为集中存储和分布式存储。数据集中趋势和离散程度(数据差异程度)是数据分布两大特征
3.3.数据管理
1. 明确数据责任主体,统一公司范围数据定义,明确数据与过程关系,明确数据间关系,统一数据源
2.制定各项管理制度
4.数据库
4.1.范式
4.1.1.规范范式
1. 3NF和BCNF标准
4.1.2.反规范化(提高查询效率,增加冗余)
1.增加冗余列
2.增加派生列(存储计算结果,减少查询时的计算)
3.重新组表(表关联合成一个表)
4.表分割:将大表分割(垂直/水平)
4.1.3.冗余导致数据不一致
1.应用程序同步:同一事务内同时更新
2.触发器同步:数据库自动触发执行
3.批处理同步:对实时性要求性不高的情况下,周期延迟一段事件再同步触发
4.2.Redis缓存
4.2.1.数据结构
1. String
2.List:先进先出
3.Hash
4.Set:无序不重复
5.ZSet:排序,每个元素关联一个score,根据score排序
4.2.2.缓存数据库同步
1. 如果没有命中缓存,则读数据库,更新缓存
2.更新时,更新数据库,把缓存失效
5.云端
5.1.与对比本地客户端好处
1.本地会受硬件存储能力等限制,云无此限制
2.很难升级拓展,云端随时升级