architecture
架构定义:软件架构指软件系统的顶层结构
系统与子系统
1) 系统(System): 泛指由一群有关联的个体组成,根据某种规则运作,能完成个别元件不能单独完成的工作的群体。它的意思是“总体”“整体”或“联盟”
2) 子系统(Sub Sysytem): 也是由一群有关联的个体所组成的系统,多半会是更大系统中的一部分
模块与组件
1) 软件模块(Module): 是一套一致而互相有紧密关连的软件组织。它分别包含了程序和数据结构两部分
2) 软件组件(Component): 定义为自包含的、可编程的、可重用的、与语言无关的软件单元,软件组件可以很容易被用于组装应用程序中
从逻辑的角度来拆分系统后,得到的单元就是“模块”,划分模块的主要目的是职责分离
从物理的角度来拆分系统后,得到的单元就是“组件”,划分组件的主要目的是单元复用
示例:
学生信息管理系统,逻辑角度拆分成 登录注册模块、个人信息模块等,物理角度拆分成web服务组件、存储组件
框架与架构
1) 框架(Framework): 框架关注的是“规范”,指的是为了实现某种功能的软体组件规范,也指为了实现某个软体组件规范时,提供规范所要求之基础功能的软件产品
2) 架构(Architecture): 架构关注的是“结构”
MVC开发规范,spring mvc是实现mvc的软件产品,都称之为框架
架构设计的真正目的: 是为了解决软件系统复杂度带来的问题
高性能 衡量指标: tps/qps,p95/p99,response time
不可用时间计算:
年度总时间=365*24*60=525600分钟
网站不可用时间=525600*(1-99.99%)=52.56分钟
可扩展 衡量指标: 应对需求变化扩展容易