1. 质量属性
- 质量属性效用数、质量属性判断 (1-5重点)
(1)性能 => 规定时间内完成某项功能
指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理的事件个数。如响应时间、吞吐量。设计策略:优先级队列、增加计算资源、减少计算开销、引入并发机制、采用资源调度
(2)可靠性
软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力,如MTTF、MTBF、MTTR。设计策略:心跳、Ping/Echo、冗余、选举
(3)可用性(与可靠性无法区分时优先选择可用性)
系统能够正常运行的时间比例,经常用两次故障之间的时间长度或在出现故障时系统能够回复正常的速度来表示。如故障间隔时间。设计策略: 心跳、Ping/Echo、冗余、选举
(4)安全性
系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。如保密性、完整性、不可抵赖性、可控性。设计策略:入侵检测、用户认证、用户授权、追踪审计
(5) 可修改性
能够快速的以较高的性能价格比对系统进行变更的能力。设计策略:接口-实现分离、抽象、信息隐藏
(6) 功能性
系统所能完成所期望的工作的能力。
(7)可变性
体系结构经过扩充或变更变为新的体系结构的能力
(8)互操作性
经常与其他系统或自身环境相互作用
必背概念
- 软件架构风格
指描述特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义 - 架构风险
指架构设计中潜在的、存在问题的架构决策所带来的隐患 - 风险点与非风险点
可能引起风险的因素,可称为风险点。某个做法如果有隐患,有可能导致一些问题,则为风险点;如果某件事是可行的,可接受的,则为非风险点 - 敏感点
指为了实现某种特定的质量属性,一个或多个构件所具有的特性 - 权衡点
是影响多个质量属性的特性,是多个质量属性的敏感点 (如: 增加安全性会影响性能)
2、架构风格
image.png
-
案例分析常考
image.png
3. 典型的架构(面向对象、J2EE、MVC)
- MVC架构(分层架构)
MVC强制性的把一个应用的输入、处理、输出流程按照视图、控制、模型的方式进行分离,形成三个核心模块:控制器、模型、视图
(1)控制器(Controller)
应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
(2)模型(Model)
应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。模型表示业务数据和业务逻辑。
(3)视图(View)
应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。是用户看到并与之交互的界面。视图向用户显示相关的数据,并能接收用户输入的数据,但是它并不进行任何实际的业务处理。
(4)优点
a. MVC分层有助于管理负责的应用程序,因为可以在一个时间内专门关注一个方面,例如:可以不依赖业务逻辑的情况下专注视图设计。同时也应用程序的测试更加容易。
b. MVC分层简化了分组开发,不同的开发人员可以同时开发视图、控制器逻辑和业务逻辑。
image.png - J2EE四层结构
image.png
(1)客户层组件: Html、 Applet
(2)web层组件: JSP、Serverlet
(3)应用层组件: javaBean
(4)信息系统层
JSP: 用于显示、收集数据的部分。作为MVC中的视图V
Servlet: 作为业务逻辑层,用于处理复杂的业务逻辑,如验证数据、实例化JavaBean、调用DAO连接数据库。作为MVC中的控制器C
JavaBean: 用于数据的封装,方便将查询结果在servlet与jsp之间进行传递
DAO: 用于连接数据库及进行数据库的操作
DAO与JavaBean合在一起为MVC中的M
基本流程: JSP发一个数据到servlet,servlet收到后做下解析再根据数据调用相应的service去服务,service如果有要调用数据库就通过DAO跟数据库交互,使用javaBean完成封装,返回结果给servlet,servlet再返回给JSP。 - 面向服务的架构SOA
SOA是一种设计理念,其中包含多个服务,服务之间通过相互依赖最终提供一系列完整的功能。各个服务通常以独立的形式部署运行,服务之间通过网络进行调试
image.png
企业服务总线ESB:简单来说是一根管道,用来连接各个服务节点。ESB的存在是为了集成基于不同协议的不同服务,ESB做了消息的转化、解释以及路由的工作,以此来让不同的服务互联互通
image.png
ESB特点:
(1)SOA的一种实现方式,ESB在面向服务的架构中起到的是总线的作用,将各种服务进行连接与整合
(2) 描述服务的元数据和服务注册管理
(3) 在服务请求者和提供者之间传递数据,以及对这些数据进行转换的能力,并支持由时间中总结出来的一些模式如同步模式、异步模式等
(4)发现、路由、匹配和选择的能力,以支持服务之间的动态交互,结偶服务请求者和服务提供者。
- 架构评估(考的较少)