导图社区 系统架构师第一章思维导图
系统架构师 软考高级,系统架构(System Architecture) 是系统的一种整体的高层次的结构表示。
社区模板帮助中心,点此进入>>
互联网9大思维
产品立项报告
产品经理如何做好项目管理
经验分享:产品经理必懂的产品思维
产品诞生过程
产品周期图
计算机操作系统思维导图
开门红的思考
招创智搜
网易星球
系统架构师
系统架构(System Architecture) 是系统的一种整体的高层次的结构表示
软件架构描述语言
C2SADL
基于组件和消息
Wright
分布、并发类型
A C M E
架构互换
UniCon
基于组件和连接
Rapide
基于事件
Darwin、MetaH、Aesop、Weaves、SADL、xADL
架构分析的内容
结构分析
功能分析
非功能分析
目的:系统被实际构造 之前预测其质量属性。
架构分析常用的方法
软件架构分析方法SAAM
架构权衡分析法ATAM
成本效益分析法CBAM
基于场景的架构再工程SBAR
架构层次的软件可维护性预测ALPSM
软件架构评估模型S A E M等
架构设计常用的方法
工件驱动(artifact-driven)
用例驱动(usecase-driven)
模式驱动(pattern-driven)
域驱动(domain-driven)
属性驱动设计(attribute-driven design)
软件架构风格
数据流风格
调用/返回风格
独立组件风格
虚拟机风格
仓库风格。
软件架构的常用分类
分层架构
最常见的是四层结构
表现层(Presentation Layer): 用户界面,负责视觉和用户互动;
业务层(Business Layer): 实现业务逻辑;
持久层(Persistence Layer): 提供数据, SQL语句就放在这一层;
数据库(Database Layer): 保存数据。
用户的请求将依次通过这四层的处理,不能跳过其中任何一层
事件驱动架构
事件(Event) 是状态发生变化时软件发出的通知
● 事件队列(Event Queue): 接收事件的入口;
● 分发器(Event Mediator): 将不同的事件分发到不同的业务逻辑单元;
● 事件通道(Event Channel): 分发器与处理器之间的联系渠道;
对于简单的项目,事件队列、分发器和事件通道可以合为一体
● 事件处理器(Event Processor): 实现业务逻辑,处理完成后会发出事件,触发下一步操作。
微核架构
又称为插件架构,指软件的 内核相对较小,主要功能和业务逻辑都通过插件实现
内核(Core) 通常只包含系统运行的最小功能。插件则是互相独立的,插件之间的通信应该减少到最低,避免出现互相依赖的问题。
微服务架构
是服务导向架构(Service-Oriented Architecture,SOA)的升级。每一个服务就是一个独立的部署单元(Separately Deployed Unit)。这些单元都是分布式的,互相解耦,通过远程通信协议(比如REST、SOAP) 联系
RESTfulAPI模式:服务通过API提供,云服务就属于这一类;
RESTful 应用模式:服务通过传统的网络协议或者应用协议提供,背后通常是一个多功能的应用程序,常见于企业内部;
集中消息模式:采用消息代理(Message Broker) 可以实现消息队列、负载均衡、统一日志和异常处理,缺点是会出现单点失败,消息代理可能要做成集群
云架构
主要解决扩展性和并发的问题,是最容易扩展的架构,它的高扩展性体现在将数据都复制到内存中,变成可复制的内存数据单元,然后将业务处理能力封装成一个个处理单元(Processing Unit)
处理单元(ProcessingUnit)
实现业务逻辑。
虚拟中间件(Virtualized Middleware),
负责通信、保持会话控制(sessions)、数据复制、分布式处理和处理单 元的部署。
消息中间件(Messaging Grid): 管理用户请求和会话控制(sessions), 当一个请求进来以后,它决定分配给哪一个处理单元。
● 数据中间件(Data Grid): 将数据复制到每一个处理单元,即数据同步。保证某个处理单元都得到同样的数据。
● 处理中间件(Processing Grid): 可选,如果一个请求涉及不同类型的处理单元,该中间件负责协调处理单元。
● 部署中间件(Deployment Manager): 负责处理单元的启动和关闭,监控负载和响应时间,当负载增加,就新启动处理单元,负载减少,就关闭处理单元。
系统架构的常用建模方法
动态模型
动态模型是对结构或框架模型的补充
过程模型
过程模型是研究构造系统的步骤和过程
结构模型
研究结构模型的核心是架构描述语言
框架模型
侧重整体的结构。框架模型主要以一些特殊的问题为目标建立只针对和适应问题的结构
架构设计师的任务与组成
(1)领导与协调整个项目中的技术活动(分析、设计和实施等)。
(2)推动主要的技术决策并最终表达为系统架构。
(3)确定系统架构,并促使其架构设计的文档化,这里的文档化应包括需求、设计、实施和部署等“视图”。