【软考系统架构设计师】系统架构师必知必会中篇(系统架构设计)
系统架构师必知必会中篇
六. 中间件技术
1. 中间件概念
- 中间件是一种独立的系统软件或服务程序,可以帮助分布式应用软件在不同的技术之间共享资源。
- 中间件是构件的一种。构件在原则上是可以独立部署的,但是并不是所有构件都需要独立部署。
2. 中间件作用
- 负责客户机与服务器之间的连接和通信,以及客户机与应用层之间的高效率通信机制。
- 提供应用层不同服务之间的互操作机制,以及应用层与数据库之间的连接和控制机制。
- 提供多层构架的应用开发和运行的平台,以及应用开发框架,支持模块化的应用开发;
- 屏蔽硬件,操作系统,网络和数据库的差异
- 提供应用的负载均衡和高可用性,安全机制与管理功能,以及交易管理机制,保证交易的一致性。
- 提供一组通用的服务去执行不同的功能,避免重复的工作和使应用之间可以协作。
3. 主要的中间件
- 远程过程调用
- 对象请求代理
- 远程方法调用
- 面向消息的中间件
- 事务处理监控器
4. 采用中间件技术的优点
- 面向需求
设计师集中精力于业务逻辑本身 - 业务的分割和包容性
业务开发人员可以按照不同的业务进行功能的划分,体现为不同的接口或交互模式。 - 设计与实现隔离
构件对外发生作用或者与其他构件的交互都是通过接口进行的,构件使用者只需要知道构件的接口,而不必关心其内部实现,这是设计与实现分离的关键。 - 隔离复杂的系统资源
很重要的一个功能就是将系统资源与应用构件隔离,这是保证构件可复用,甚至即插即用的基础。与中间件的意图也是一致的。 - 符合标准的交互模型
实现了架构的模型,实现了标准的协议。 - 软件复用
中间件提供了构件封装,交互规则,与环境的隔离,这些都为软件复用提供了方便的解决方案。 - 提供对应用构件的管理
基于中间件的软件可以方便的进行管理,因为构件总可以通过标识机制进行划分。
5. Cobra中间件技术
- Cobra是公共对象请求代理体系结构的简称。
- Cobra体系的主要内容包括了以下的几个部分
1)对象请求代理
负责对象在分布的环境中透明的收发请求和响应,它是构件分布对象应用,在异构或者同构环境下实现应用间互操作的基础。
ORB的作用就是衔接各方,相当于信息交换的一个总线的结构。
2)对象服务
为使用和实现对象而提供的基本对象集合,这些服务应独立于应用领域。
3)公共设施
向终端用户提供一组共享服务接口,例如系统管理,组合文档,电子邮件等。
4)应用接口
由销售商提供的可控制其接口的产品,相应与传统的应用层表示,处于参考模型的最高层。
5)领域接口
为应用领域服务而提供的接口,如OMG组织为PDM系统制定的规范。
组成部分 | 说明 |
---|---|
伺服对象Servant | Cobra对象的真正实现,负责完成客户端请求 |
对象适配器OA | 用于屏蔽ORB内核的实现细节,为服务器对象的实现者提供抽象接口,以便他们能够使用ORB内部的某些功能 |
对象请求代理ORB | 解析调用并负责查找实现该请求的对象,将参数传给找到的对象,并调用方法返回结果。客户方不需要了解服务对象的位置,通信方式,实现,激活或新存储机制 |
七. 软件架构建模(4+1视图)
4+1视图 | 说明 |
---|---|
场景视图 | UML用例视图 |
逻辑视图 | 最终用户的功能需求 |
开发视图 | 开发人员的软件管理 |
进程视图 | 系统集成人员,性能可扩充性,吞吐量 |
物理视图 | 系统工程人员,系统拓扑,安装,通信等 |
1. 架构模型
4+1视图 | 说明 |
---|---|
结构模型 | 以架构的构件,连接件及其他概念来刻画结构 |
框架模型 | 不太侧重描述结构的细节,而更加侧重于整体的结构 |
动态模型 | 系统的大颗粒的行为性质 |
过程模型 | 构建系统的步骤和过程 |
功能模型 | 由一组功能构件按层次组成,下层向上层提供服务 |
2. 需求的获取
- 使用用例可以去获取功能需求;使用场景可以去获取非功能需求
- 需求可能很多,但是需求的优先级是不一样的,所以要考虑需求的优先级,针对非功能需求来说,就是场景的优先级。
八. 软件架构评估的方法
1. 架构评估内容
- 分析软件架构对场景的支持程度
- 设计用于实现待评估质量属性的场景
- 确定应用领域的功能和软件架构之间的映射关系。
2. 架构评估方式
- 基于问卷调查(检查表)的方式
- 基于度量的方式
- 基于场景的方式
评估方式 | 问卷调查 | 检查表 | 场景 | 度量 |
---|---|---|---|---|
通用性 | 通用 | 特定领域 | 特定系统 | 通用或特定领域 |
评估者对架构的了解程度 | 粗略了解 | 无限制 | 中等了解 | 精确了解 |
实施阶段 | 早 | 中 | 中 | 中 |
客观性 | 主观 | 主观 | 较主观 | 客观 |
3. 架构权衡分析方法(ATAM)
1)概念定义
- 在SAAM的基础上发展起来的,主要针对性能,实用性(可用性),安全性和可修改性,在系统开发之前,对这些质量属性进行评价和折衷。
- 场景之间有平衡关系,可以通过投票来决定。
2)实施步骤
- 描述和介绍阶段
- 描述ATAM方法(评估小组负责人)
- 描述业务动机(项目决策者:业务角度)
- 描述架构(首席架构师)
- 调查和分析阶段
- 确定架构方法
- 确定质量属性效用树
- 分析架构方法(评估小组)
- 测试阶段
- 讨论场景和对场景进行分级
- 分析架构方法(项目干系人投票)
- 报告阶段(架构设计师)
- 描述评估结果(评估小组负责人:评估方法)
3)四个阶段
- 第一阶段:场景和需求收集
收集场景
收集需求/环境/约束 - 第二阶段:架构视图和场景实现
描述架构视图
实现场景 - 第三阶段:属性模型构造和分析
特定属性分析(优秀的单一理论) - 第四阶段:折中
标志折中
标志敏感度
4)质量效用树
4. 软件架构分析法(SAAM)
1)概念背景
- 最初用来分析架构的可修改性,后扩展到其他的质量属性。
- 它包括了问题描述,需求说明和架构描述三个阶段。
- 在场景开发和架构描述之后,我们就可以对单个场景进行评估,然后可以多个场景交互评估,最后比较多个框架后进行总体评估。
2)六个步骤
- 形成场景
- 描述架构<