什么是系统架构师?什么是系统架构?

news2024/11/15 19:49:58

1. 什么是系统架构师?

系统架构设计师(System Architecture Designer)是项目开发活动中的关键角色之一。系统架构是系统的一种整体的高层次的结构表示,是系统的骨架和根基其决定了系统的健壮性和生命周期的长短

系统架构设计师(系统架构设计器)是项目开发活动中的关键角色之一。系统架构是系统的一种整体的高层次的结构表示,是系统的骨架和根基,其决定了系统的健壮性和生命周期的长短.本章首先从架构定义、发展历程、典型架构和未来发展等方面概要说明,给读者建立一个架构的整体概念;然后对系统架构设计师的定义、职责、范围和工作内容等进行讲解,并说明了对于一名合格的系统架构设计师的要求。

2. 系统架构的概述

自1946年世界上第一台计算机诞生,对人类的计算工具产生了革命性变革。冯诺依曼提出了计算机由运算器,控制器,存储器,输入和输出设备五部分组成,计算机的内部采用二进制。

计算机是全球信息化发展的核心载体,随着各种基础技术突飞猛进的发展,信息系统的规模越来越大、复杂程度越来越高、系统的结构显得越来越重要。如果在搭建系统时未能设计出优良的结构,势必对系统的可靠性、安全性、可移植性、可扩展性、可用性和可维护性等方面产生重大影响。

因此,系统架构(System Architecture)是系统的一种整体的高层次的结构表示,是系统的骨架和根基,也决定了系统的健壮性和生命周期的长短。

系统架构设计师是承担系统架构设计的核心角色,他不仅是连接用户需求和系统进一步设计与实现的桥梁,也是系统开发早期阶段质量保证的关键角色。随着系统规模和复杂性的提升,系统架构设计师在整个项目研制中的主导地位愈加重要。

可以说,系统架构师就是项目的总设计师,他是一个既需要掌控整体又需要洞悉局部瓶颈,并依据具体的业务场景给出解决方案的总体设计人员;他要确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节、扫清主要难点的技术人员;他要掌握技术团队的能力需要,给出项目管理方法,采用合适生命周期模型,具备以自身为核心形成团队的能力,并在项目进度计划和经费分配等方面开展评估,以预防项目风险。

3. 系统架构的定义

这里的架构(Architecture)定义来源于IEEE 1471-2000:“IEEE's Recommand Practice forArchitectural Description of Software-Intensive Systems.”标准,本标准主要针对软件密集系统进行了架构描述,其对架构定义如下: 这里的架构(体系结构)ieee 1471-2000:“ieee对软件密集型系统体系结构描述的推荐和实践”。

标准,本标准主要针对软件密集系统进行了架构描述,其对架构定义如下:

  • 架构是体现在组件中的一个系统的基本组织、它们彼此的关系与环境的关系及指导它的设计和发展的原则。
  • 系统是组织起来完成某一特定功能或一组功能的组件集。系统这个术语包括了单独的应用程序、传统意义上的系统、子系统、系统之系统、产品线、整个企业及感兴趣的其他集合。系统用于完成其环境中的一个或多个任务。 
  • 环境或者上下文决定了对这个系统的开发、运作、政策以及会对系统造成其他影响的环境和设置。 
  • 任务是由一个或者多个利益相关者通过系统达到一些目标的系统的一个用途或操作。

系统架构设计的作用主要包含以下几点:

  • 解决相对复杂的需求分析问题;
  • 解决非功能属性在系统占据重要位置的设计问题;
  • 解决生命周期长、扩展性需求高的系统整体结构问题;
  • 解决系统基于组件需要的集成问题;
  • 解决业务流程再造难的问题。

4.软件架构的分类和建模方法

4.1 分层架构

分层架构(Layered Architecture)是最常见的软件架构,也是事实上的标准架构。这种架构将软件分成若干个水平层,每一层都有清晰的角色和分工,不需要知道其他层的细节。层与层之间通过接口进行通信。分层架构通常明确约定软件一定要分成多少层,但是,最常见的是四层结构,如下图所示。

  • 表现层(Presentation Layer):用户界面,负责视觉和用户互动;
  • 业务层(Business Layer):实现业务逻辑;
  • 持久层(Persistence Layer):提供数据,SQL语句就放在这一层;
  • 数据库(Database Layer):保存数据。

4.2 事件驱动架构

事件(Event)是状态发生变化时软件发出的通知。事件驱动架构(Event-driven Architecture)是通过事件进行通信的软件架构,它分成四个部分,如下图所示。

  • 事件队列(Event Queue):接收事件的入口;
  • 分发器(Event Mediator):将不同的事件分发到不同的业务逻辑单元;
  • 事件通道(Event Channel):分发器与处理器之间的联系渠道;
  • 事件处理器(Event Processor):实现业务逻辑,处理完成后会发出事件,触发下一步操作。

4.3 微核架构

微核架构(Microkernel Architecture)又称为插件架构(Plug-in Architecture),是指软件的内核相对较小,主要功能和业务逻辑都通过插件实现,如下图所示。


内核(Core)通常只包含系统运行的最小功能。插件则是互相独立的,插件之间的通信应该减少到最低,避免出现互相依赖的问题。

4.4 微服务架构

微服务架构(Microservices Architecture)是服务导向架构(Service-Oriented Architecture,SOA)的升级。每一个服务就是一个独立的部署单元(Separately Deployed Unit)。这些单元都是分布式的,互相解耦,通过远程通信协议(比如 REST、SOAP)联系,如下图所示。

微服务的三种实现模式:

  • RESTful API模式:服务通过API提供,云服务就属于这一类;
  • RESTful应用模式:服务通过传统的网络协议或者应用协议提供,背后通常是一个多功能的应用程序,常见于企业内部;
  • 集中消息模式:采用消息代理(Message Broker)可以实现消息队列、负载均衡、统一日志和异常处理,缺点是会出现单点失败,消息代理可能要做成集群。

4.5 云架构

云架构(Cloud Architecture)主要解决扩展性和并发的问题,是最容易扩展的架构。

它的高扩展性体现在将数据都复制到内存中,变成可复制的内存数据单元,然后将业务处理能力封装成一个个处理单元(Processing Unit)。若访问量增加,就新建处理单元;若访问量减少,就关闭处理单元。由于没有中央数据库,所以扩展性的最大瓶颈消失了。由于每个处理单元的数据都在内存里,需要进行数据持久化。


云架构主要分成两部分:处理单元(Processing Unit)和虚拟中间件(Virtualized Middleware),如下图所示。

(1)处理单元:实现业务逻辑。


(2)虚拟中间件:负责通信、保持会话控制(sessions)、数据复制、分布式处理和处理单元的部署。

这里,虚拟中间件又包含四个组件:

  • 消息中间件(Messaging Grid):管理用户请求和会话控制(sessions),当一个请求进来以后,它决定分配给哪一个处理单元。
  • 数据中间件(Data Grid):将数据复制到每一个处理单元,即数据同步。保证某个处理单元都得到同样的数据。
  • 处理中间件(Processing Grid):可选,如果一个请求涉及不同类型的处理单元,该中间件负责协调处理单元。
  • 部署中间件(Deployment Manager):负责处理单元的启动和关闭,监控负载和响应时间,当负载增加,就新启动处理单元,负载减少,就关闭处理单元。

5. 系统架构的常用建模方法

主要分为四种:结构模型,框架模型,动态模型,过程模型。

  • 结构模型:这是一个最直观、最普遍的建模方法。此方法以架构的构件、连接件和其他概念来刻画结构。并力图通过结构来反映系统的重要语义内容,包括系统的配置、约束、隐含的假设条件、风格和性质。研究结构模型的核心是架构描述语言。
  • 框架模型:框架模型与结构模型类似,但它不太侧重描述结构的细节,而更侧重整体的结构。框架模型主要以一些特殊的问题为目标建立只针对和适应问题的结构。
  • 动态模型:动态模型是对结构或框架模型的补充,主要研究系统的“大颗粒”行为的性质。例如,描述系统的重新配置或演化。这里的动态可以是指系统总体结构的配置、建立或拆除通信或计算的过程,这类系统模型常是激励型的。
  • 过程模型:过程模型是研究构造系统的步骤和过程,其结构是遵循某些过程脚本的结果。

6. 软件架构的应用场景

软件架构发展至今,已随着信息技术的广泛应用而成为各个领域的关键技术能力。

概括来讲,软件架构风格在实践中已被反复使用,不同的架构风格具有各自的优缺点和应用场景,比如

  1. 管道-过滤器风格适用于将系统分成若干独立的步骤;
  2. 主程序/子系统和面向对象的架构风格可用于对组件内部进行设计;
  3. 虚拟机风格经常用于构造解释器或专家系统;
  4. C/S和B/S风格适合于数据和处理分布在一定范围,通过网络连接构成系统;
  5. 平台/插件风格适用于具有插件扩展功能的应用程序;
  6. MVC风格被广泛地应用于用户交互程序的设计;
  7. SOA风格应用在企业集成等方面;
  8. C2风格适用于GUI软件开发,用以构建灵活和可扩展的应用系统等。

而对于现代大型软件,很少使用单一的架构风格进行设计与开发,而是混合多种风格,从不同视角描述大型软件系统的能力,并可保证软件系统的可靠性、可扩展性、可维护性等非功能属性的正确描述。
 

7.架构师应该具备的专业素质

  1. 掌握业务领域的知识。
  2. 掌握技术知识
  3. 掌握设计技能
  4. 具备编程能力
  5. 具备沟通能力
  6. 具备决策能力
  7. 知道组织策略
  8. 也是谈判专家

8. 架构师的知识结构

架构设计师综合的知识能力结构主要包括10个方面。

(1)战略规划能力。

(2)业务流程建模能力。

(3)信息数据架构能力。

(4)技术架构设计和实现能力。

(5)应用系统架构的解决和实现能力。

(6)基础IT知识及基础设施、资源调配的能力。

(7)信息安全技术支持与管理保障能力。

(8)IT审计、治理与基本需求的分析和获取能力。

(9)面向软件系统可靠性与系统生命周期的质量保障服务能力。

(10)对新技术与新概念的理解、掌握和分析能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1083808.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

允许访问:掌握权限的艺术

回到20世纪,网络攻击更难实施,因为大多数计算机没有联网,互联网并不普及,只有少数人群可以访问计算机,更重要的是,没有足够的动机来进行攻击。 访问控制政策 而今天,情况完全不同。在糟糕的数据…

【特纳斯电子】血氧饱和度监测仪设计-实物设计

视频及资料链接:血氧饱和度监测仪设计-实物设计 - 电子校园网 编号: T5662203M-SW 设计简介: 本设计是基于STM32的血氧饱和度监测仪系统,主要实现以下功能: 1. STM32单片机作为微处理器 2. MAX30102进行心率血氧检…

A股风格因子看板 (2023.10 第03期)

该因子看板跟踪A股风格因子,该因子主要解释沪深两市的市场收益、刻画市场风格趋势的系列风格因子,用以分析市场风格切换、组合风格暴露等。 今日为该因子跟踪第03期,指数组合数据截止日2023-09-30,要点如下 近1年A股风格因子检验统…

【环境】ubuntu下anaconda虚拟环境中安装的pytorch终于配置成功了!

前请提要 配置情况:双系统——win10ubuntu20.04;anaconda安装与虚拟环境创建:在安装conda的过程中,我修改了安装路径(很清楚的记得);昨晚的状态:通过pytorch中的conda命令&#xff…

Linux磁盘常见知识

目录 一、基础概念 1.1 文件系统类型 1.2 主分区、扩展分区、逻辑分区三者关系 1.3 UUID 1.4 lvm逻辑卷管理系统 二. 常用命令 2.1 查看命令 2.2 分区命令 2.3 格式化命令 1.4 挂载命令 三、扩容根目录 一、基础概念 1.1 文件系统类型 文件系统类型决定了向分区中存放、读取数…

再一次整理一下spring框架步骤

1.pom.xml依赖 2.applicationbean.xml 3.类 小树叶可以跟bean联动起来 不写接口直接写类 实现类 4.测试 两种方法的实现

第二证券:锂矿板块发力走高,江特电机涨停,中矿资源等拉升

锂矿板块12日盘中发力走高,到发稿,江特电机涨停,中矿资源、融捷股份涨超4%,天齐锂业、天华新能、永兴资料、赣锋锂业等涨逾3%。 音讯面上,江特电机“探转采”作业取得开展。 10月9日,国家天然资源部官网闪…

2023年中国鸡蛋市场供需现状、市场规模及产品价格走势分析[图]

鸡蛋具有高营养、易消化、用途广等特点,已成为世界公认的必备优质食材,它同肉品、乳品、蔬菜、粮食一样,是人们日常生活中的重要营养食品。鸡蛋的主要品种包括谷物蛋、绿色蛋、素养蛋、OMG营养蛋等。 蛋鸡是指专门产蛋以供应人们食用和加工蛋…

获央视报道 联通智网科技全面引领车联网发展

当前,我国正由交通大国阔步迈向交通强国,涌现出了一批交通行业的专精特新企业,带动了我国交通行业的蓬勃发展。联通智网科股份有限公司作为中国联通在车联网领域的专精特新企业,一直坚持融合创新并积极探索车联网和智慧交通相关领…

Unity基础课程之物理引擎8-扔保龄球游戏案例(完)

三个脚本: 1.给求添加力 2.分数管理器 3.检测是否发生碰撞 ----------------------------------------------- 脚本源码 1.给求添加力 using System.Collections; using System.Collections.Generic; using UnityEngine;public class RoleControl : MonoBeha…

通讯网关软件022——利用CommGate X2MQTT实现MQTT访问MSSQL服务器

本文介绍利用CommGate X2MQTT实现MQTT访问MS SQL数据库。CommGate X2MQTT是宁波科安网信开发的网关软件,软件可以登录到网信智汇(http://wangxinzhihui.com)下载。 【案例】如下图所示,实现上位机通过MQTT来获取MS SQL数据库的数据。 【解决方案】设置网…

EDUSRC-记某擎未授权与sql注入

目录 360天擎 - 未授权与sql注入 信息收集 FOFA语法 鹰图搜索 360天擎未授权访问 - 数据库信息泄露 漏洞复现 修复方案 360天擎终端安全管理系统ccid处SQL注入 漏洞复现 手动测试方法 修复方案 360天擎 - 未授权与sql注入 通常访问的页面如下,存在登录框…

Vue2 router详解

vue2 router详解 一、前端路由的概念与原理1. 什么是路由2. SPA与前端路由3. 什么是前端路由4. 前端路由的工作方式5. 实现简易的前端路由 二、vue-router的基本用法1. 什么是 vue-router2. vue-router 安装和配置的步骤2.2 创建路由模块2.3 导入并挂载路由模块2.4 声明路由链接…

怎么把人声和BGM分开?只想要人声部分~

当我们在听一段人声和背景音混合在一起的视频时,会因为周围环境比较嘈杂就很难听清音频了,这时,我们可以利用音分轨人声分离软件来搞定,快速提取人声部分! 第一步:打开【音分轨】APP,进入首页点…

Remix 开发小技巧

文章目录 请求搜索参数重定向进行服务器端分页从 URL 读取查询参数不要覆盖其他查询参数使用提交按钮而不是链接向按钮添加标签 Loaders & Actions 中中止异步调用全局类型及类型安全 请求搜索参数重定向 假设您要确保始终设置特定的搜索参数。为此,您可以首先…

MyBatis基础之结果集映射

基本概念 [!danger] 注意 配置结果集映射,只用看 SQL 执行结果,不看 SQL 语句! 在前面的内容中,由于我们的 PO 类的属性名与数据库中表的列名是一致的,因此,在 Mapper.xml 配置文件中,Mybatis 省…

对paddleOCR中的字符识别模型转ONNX

对paddle OCR中的模型转换成ONNX。 转换代码: import os import sys import yaml import numpy as np import cv2 import argparse import paddle from paddle import nnfrom argparse import ArgumentParser, RawDescriptionHelpFormatter import paddle.distribu…

没有执行力,一切都是空谈!如何提高执行力

决定人生高度的并非空谈,而是实干,没有执行力一切都是零。 执行力对于达成目标至关重要。即使将目标细分拆解得再细致,若无法切实执行,一切仍然是徒劳。 一旦制定目标,必须进行层层细分的拆解,包括每日的…

信钰证券:汇金增持提振市场情绪 保险、银行等板块集体拉升

12日,两市股指盘中全线走高,沪指一度克复3100点,上证50指数涨超1%。 稳妥、银行、券商板块团体拉升,到发稿,银行板块方面,瑞丰银行涨约6%,盘中一度涨停;紫金银行、渝农银行、西安银…

Python获取本机IP地址的几种方式~转

Python获取本机IP地址的几种方式 目录 1、使用专用网址 2、使用自带socket库 3、使用第三方netifaces库 1、使用专用网站 获取的是公网IP。 网址: http://myip.ipip.net 代码: import requests res requests.get(https://myip.ipip.net, timeout5)…