案例篇-架构设计相关概念
- 1. 架构风格的概念
- 2. 五大架构风格有哪些
- 3. MVC架构含义
- 4. 云计算架构
- 5. 云原生架构设计原则
- 6. ESB的主要功能包括
- 7. 质量属性的含义及其设计策略
- 8. EJB中的 Bean 分三种类型
- 9. 风险点、敏感点、权衡点的含义
- 10. REST 的5个原则
1. 架构风格的概念
软件架构风格是描述特定软件系统组织方式的惯用模式。
组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义。
2. 五大架构风格有哪些
-
数据流风格【Data Flow】:批处理【Batch Sequential】、管道-过滤器【Pipes and Filters】;
-
调用/返回风格【Call/Return】:主程序/子程序【Main Program and Subroutine】、面向对象【Object-oriented】、分层架构【Layered System】;
-
独立构件风格【Independent Components】:进程通信【Communicating Processes】、事件驱动系统(隐式调用)【Event system】;
-
虚拟机风格【Virtual Machine】:解释器【interpreter】、规则系统【Rule-based System】;
-
以数据为中心(仓库风格)【Data-centered】:数据库系统【Database System】、黑板系统【Blackboard System】、超文本系统【Hypertext System】;
补充:闭环控制架构(过程控制):经典应用有空调温控,定速巡航;
3. MVC架构含义
MVC是模型(Model) - 视图( View) - 控制器(Controller)的缩写,用一种业务逻辑。数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
模型(Model)是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存储数据。
视图( View)是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。
控制器(Controller)是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
4. 云计算架构
- 【管理层】:提供对所有层次云计算服务的管理功能。
- 【用户访问层】:方便用户使用云计算服务所需的各种支撑服务,针对每个层次的云计算服务都需要提供相应的访问接口。
- 【应用层】:提供软件服务,如:财务管理,客户关系管理,商业智能。
- 【平台层】:为用户提供对资源层服务的封装,使用户可以构建自己的应用。
- 【资源层】:提供虚拟化的资源,从而隐藏物理资源的复杂性。如:服务器,存储。
5. 云原生架构设计原则
- 服务化原则:使用微服务
- 弹性原则:可根据业务变化自动伸缩
- 可观测原则:通过日志、链路跟踪和度量
- 韧性原则:面对异常的抵御能力
- 所有过程自动化原则:自动化交付工具
- 零信任原则:默认不信任网络内部和外部的任何人/设备/系统
- 架构持续演进原则:业务高速迭代情况下的架构与业务平衡
6. ESB的主要功能包括
ESB是传统中间件技术与XML、Web服务等技术结合的产物,主要支持异构系统集成。ESB基于内容的路由和过滤,具备复杂数据的传输能力,并可以提供一系列的标准接口。主要功能包括:
(1)应用程序的位置透明性
(2)传输协议转换
(3)消息格式转换
(4)消息路由
(5)消息增强
(6)安全支持
(7)监控和管理
7. 质量属性的含义及其设计策略
(1)性能:是指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理事件的个数。
代表参数:响应时间、吞吐量
设计策略:优先级队列、资源调度
(2)可用性:是系统能够正常运行的时间比例。
代表参数:故障间隔时间
设计策略:冗余、心跳线
(3)可靠性:是指软件系统在应用或错误面前,在意外或错误使用的情况下维持软件系统功能特性的基本能力。
(4)健壮性:是指在处理或环境中,系统能够承受压力或变更的能力。
(5)安全性:是指系统向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。
安全性又可划分为机密性、完整性、不可否认性及可控性等特性。
设计策略:追踪审计
(6)可修改性:是指能够快速地以较高的性能价格比对系统进行变更的能力。
通常以某些具体的变更为基准,通过考察这些变更的代价衡量可修改性。
设计策略:接口-实现分离、抽象、信息隐藏
(7)可变性:是指体系结构经扩充或变更成为新体系结构的能力。
(8)易用性:是衡量用户使用一个软件产品完成指定任务的难易程度。
(9)可测试性:是指软件发现故障并隔离、定位其故障的能力特性,以及在一定的时间和成本前提下,进行测试设计、测试执行的能力。
(10)功能性:是系统所能完成所期望工作的能力。
(11)互操作性:是指系统与外界或系统与系统之间的相互作用能力。
8. EJB中的 Bean 分三种类型
- Session Bean:描述了与客户端的一个短暂的会话。当客户端的执行完成后,Session Bean和它的数据都将消失;
- Entity Bean:描述了存储在数据库表中的一行持久稳固的数据,如果客户端终止或者服务结束,底层的服务会负责Entity Bean数据的存储; - Message-Driven Bean:结合了Session Bean和Java信息服务(JMS)信息监听者的功能,它允许一个商业组件异步地接受JMS消息。
9. 风险点、敏感点、权衡点的含义
- 风险点:是指架构设计中潜在的、存在问题的架构决策所带来的隐患。
- 敏感点:是指为了实现某种特定的质量属性,一个或多个构件所具有的特性。
- 权衡点:是影响多个质量属性的特性,是多个质量属性的敏感点。
10. REST 的5个原则
(1)网络上的所有事物都被抽象为资源。
(2)每个资源对应一个唯一的资源标识。
(3)通过通用的连接件接口对资源进行操作。
(4)对资源的各种操作不会改变资源标识。
(5)所有的操作都是无状态的。