架构到底是什么?

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

PS:本系列文章都是在极客时间学习的笔记,只做学习,不用于商业用途,如有侵权,请联系作者删除,谢谢!

以下三组概念的意义:

1. 系统与子系统

系统的定义:系统泛指由一群有关联的个体组成,根据某种规则运作,能完成个别元件不能单独完成的工作的群体。它的意思是“总体”“整体”或“联盟”。

根据系统的定义可知:系统是由有关联关系的个体组成的,并且个体之间存在某种运作规则,并且这些个体组成系统之后,系统产生了一种新的能力,能完成单个个体无法独自完成的能力。

子系统的定义:子系统也是由一群有关联的个体所组成的系统,多半会是更大系统中的一部分。

从定义看,子系统也是一种系统,从观察者的角度看,子系统是系统的一部分。

一个系统的架构,只包括顶层这一个层级的架构,而不包括下属子系统层级的架构。

2.模块与组件

软件模块(Module)是一套一致而互相有紧密关连的软件组织。它分别包含了程序和数据结构两部分。现代软件开发往往利用模块作为合成的单位。模块的接口表达了由该模块提供的功能和调用它时所需的元素。模块是可能分开被编写的单位。这使它们可再用和允许人员同时协作、编写及研究不同的模块。软件组件定义为自包含的、可编程的、可重用的、与语言无关的软件单元,软件组件可以很容易被用于组装应用程序中。

上面是模块和组件的定义,两者主要区别在于视角不同,从业务角度拆分出来的叫模块,从部署角度拆分出来的叫组件

如果你是业务系统的架构师,首先需要思考怎么从业务逻辑的角度把系统拆分成一个个模块角色,其次需要思考怎么从物理部署的角度把系统拆分成组件角色

3.框架与架构

软件框架(Software framework)通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。

框架是组件规范,框架提供基础功能的产品,框架典型的例子就是Spring MVC

软件架构指软件系统的“基础结构”,创造这些基础结构的准则,以及对这些结构的描述。

框架关注的是“规范”,架构关注的是“结构”。

框架是一整套开发规范,架构是某一套开发规范下的具体落地方案,包括各个模块之间的组合关系以及它们协同起来完成功能的运作规则。

软件架构指软件系统的顶层(Rank)结构,它定义了系统由哪些角色(Role)组成,角色之间的关系(Relation)和运作规则(Rule)。

因为这个定义中的 4 个关键词,都可以用 R 开头的英文单词来表示,分别是 Rank、Role、Relation 和 Rule,所以我把定义简称为“4R 架构定义”,每个 R 的详细解释如下。第一个 R,Rank。它是指软件架构是分层的,对应“系统”和“子系统”的分层关系。通常情况下,我们只需要关注某一层的架构,最多展示相邻两层的架构,而不需要把每一层的架构全部糅杂在一起。无论是架构设计还是画架构图,都应该采取“自顶向下,逐步细化”的方式。

第二个 R,Role。它是指软件系统包含哪些角色,每个角色都会负责系统的一部分功能。架构设计最重要的工作之一就是将系统拆分为多个角色。最常见的微服务拆分其实就是将整体复杂的业务系统按照业务领域的方式,拆分为多个微服务,每个微服务就是系统的一个角色。

第三个 R,Relation。它是指软件系统的角色之间的关系,对应到架构图中其实就是连接线,角色之间的关系不能乱连,任何关系最后都需要代码来实现,包括连接方式(HTTP、TCP、UDP 和串口等)、数据协议(JSON、XML 和二进制等)以及具体的接口等。

第四个 R,Rule。它是指软件系统角色之间如何协作来完成系统功能。我们在前面解读什么是“系统”的时候提到过:系统能力不是个体能力之和,而是产生了新的能力。那么这个新能力具体如何完成的呢?具体哪些角色参与了这个新能力呢?这就是 Rule 所要表达的内容。在架构设计的时候,核心的业务场景都需要设计 Rule。

在实际工作中,为了方便理解,Rank、Role 和 Relation 是通过系统架构图来展示的,而 Rule 是通过系统序列图(System Sequence Diagram)来展示的。

什么是业务架构、数据架构、应用架构和技术架构 它涉及的是应用软件的设计和部署,支持业务和数据处理需要哪些应用系统,完成从业务到IT的转换,以确保它们有效支持公司的业务需求。减少数据冗余,解决企业数据孤岛,信息化程度低的问题,提高数据的质量和一致性,通过提供清晰、准确的数据,加快决策过程。技术架构的主要目的是提供一个稳定、可靠且安全的技术环境,使企业的相关软件硬件系统都能够实现其业务目标,优化技术资源的配置和使用,降低成本,提高系统的性能和可用性。根据现有架构和先前的纪录和整合,设计新的或改进的业务流程,确保流程的高效和符合战略目标。 阅读详情

相关推荐

怎么区别业务架构、软件架构、系统架构、解决方案架构、企业架构

在网上也看了很多关于架构方面的文章,林林总总,总感觉没有说的太清楚,可能是每个人的理解不一样,我自己也在繁杂的文章中总结一些架构方面的划分,记录一下。 解决方案架构:解决方案架构,顾名思义,解决方案就是解决某一类共例的痛点问题,解决方案和系统是一个包含的关系,为了解决这个共性问题,我们应该提供哪些功能,这些功能应该由哪些系统提供,因此解决方案也是一个行业的标准,通过这套解决方案,可以解决行业内某一个共性问题。比如行业内的OA系统、ERP系统。OA系统可以拆成人力资源管理系统、考勤系统等。 业务架构:..

u012805576的博客 1万+

什么是架构以及架构的分类

写这篇文章的目的是弄明白到底什么是架构,我们在开发设计过程中会遇到各种各样的图,到底哪些是属于架构图?别人让你画架构图的时候,你要知道你画的到底是不是架构图,怎么画架构图。 一、什么是架构 把一个整体(完成人类生存的所有工作)切分成不同的部分(分工),由不同角色来完成这些分工,并通过建立不同部分相互沟通的机制,使得这些部分能够有机的结合为一个整体,并完成这个整体所需要的所有活动,这就是架构。 边界划分:根据要解决的问题,对目标系统的边界进行界定。 能力划分:对目标系统按某个原则的进行切分。切分的原则,要便

maoyeqiu的专栏 2万+

软件架构的演进,了解单体架构,垂直架构,SOA架构和微服务架构的变化历程

软件架构演进         软件架构的发展经历了从单体结构、垂直架构、SOA架构到微服务架构的过程,博客里写到了这四种架它们的特点以及优缺点分析,个人学习之用,仅供参考!1.1.1      单体架构        特点:1、所有的功能集成在一个项目工程中。2、所有的功能打一个war包部署到服务器。3、应用与数据库分开部署。4、通过部署应用集群和数据库集群来提高系统的性能。 优点:1、项目架构简...

oschina_41740100的博客 1万+

什么是架构

架构,又名软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。架构描述语言(ADL)用于描述软件的体系架构。软件架构(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口。

weixin_43322048的博客 2万+

架构】GPU架构总结

在之前的 SM 概览图以及上图里,可以注意到 SM 内有两个 Warp Scheduler 和两个 Dispatch Unit. 这意味着,同一时刻,会并发运行两个 warp,每个 warp 会被分发到一个 Cuda Core Group(16 个 CUDA Core), 或者 16 个 load/store 单元,或者 4 个 SFU 上去真正执行,且每次分发只执行 一条 指令,而 Warp Scheduler 维护了多个(比如几十个)的 Warp 状态。在提升性能的同时,H100的功耗也在大幅上升。

qq_43543209的博客 1万+

一文搞懂各种架构(业务架构、应用架构、数据架构...

01 什么是架构架构本质02 架构分层和分类03 架构的级别04应用架构的演进05衡量架构的合理性06 常见架构误区07 架构知识体系01 什么是架构架构本质在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识这个世界的基础,并用来沟通的手段,如果对架构概念理解不一样,那沟...

weixin_45727359的博客 3万+

什么是架构

1 架构定义 架构本质是关注点分离 2 架构视图 企业架构 业务架构 系统架构 技术架构 应用架构 数据架构 基础架构 部署架构 软件架构 逻辑架构 开发架构 运行架构 安全架构 3 架构原则 4 设计原则 5.架构设计方法 6.架构风格和约束 7.架构演进...

zhengide的博客 2万+

什么是软件架构?常用的软件架构

软件架构所指的就是说相应的系列性的抽象模式,可以为设计大型软件系统的各个方面提供相应的指导。从本质上来看,软件架构是属于一种系统草图。在软件架构所描述的对象就是直接的进行系统抽象组件构成。连接系统的各个组件之间就是做到把组件之间所存在的通讯比较明确与相对细致的实施描述。处于相应的系统实现环节,那么就会使得细化这些抽象组件成为现实的组件,比如可以是具体的某个类或者是对象。从面向对象领域进行分析,那么各个组件之前实施的连接实现往往是接口。...

qq_41854911的博客 1万+

什么是4A架构:业务架构、数据架构、应用架构、技术架构

4A架构是企业数字化转型的核心方法论,包含业务架构(BA)、数据架构(DA)、应用架构(AA)和技术架构(TA)四个层次。该架构通过分层解耦和协同设计,将企业战略转化为可执行的技术方案,有效避免系统孤岛。业务架构聚焦战略落地,数据架构保障数据资产化,应用架构实现功能模块化,技术架构提供底层支撑。四者纵向穿透、横向协同,形成从战略到技术的完整闭环。实施时需坚持业务驱动、统一语言、持续迭代等原则,借助工具赋能降低落地门槛,最终实现业务敏捷性和系统弹性的双重提升。

lovehu6686的博客 2273

架构漫谈:业务架构、应用架构与基础架构

软件开发就是把一个复杂的问题分解为一系列简单的问题,再把一系列简单的解决方案组合成一个复杂的解决方案。而软件开发中最大的挑战,就是即能够快速高效地针对需求、环境的变化做出改变,也能够持续提供稳定、高可用的服务。而软件架构,就是软件系统的骨骼与框架。 所谓架构,见仁见智,很难有一个明确或标准的定义;但架构并非镜花水月或阳春白雪,有系统的地方就需要架构,大到航空飞机,小到一个电商系统里面的一个功能组...

forBurnInG的专栏 2万+

架构分类:软件架构、系统架构

转自:微点阅读https://www.weidianyuedu.com 在实际工作中,我们经常听到“架构”和“架构师”这样的名词,并不新鲜,但是总让很多刚入门的人感觉很神秘,甚至是高深莫测。很少有人对“架构”有全面的了解和认识能并说清楚架构是什么,更谈不上掌握了。事实上,也只有极少数人能成为或者被冠以“架构师”这样的title。为此,笔者总结了对架构的一些理解,希望能够补充很多初入门的人在这方面认识上的不足,纠正一些误解。高手和老鸟就直接跳过吧。 架构的分类 对于“架构”来讲,理论上划分了5种..

ysds20211402的博客 5682

一文搞懂架构(业务架构、数据架构、技术架构...)

在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。在不同的书籍上, 不同的作者, 对于架构的定义也不统一, 角度不同, 定义不同。此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前,我们先讨论架构的概念定义, 因为概念是人认识这个世界的基础和用来沟通的手段,如果对架构概念理解不一样,那沟通起来自然不顺畅,本文根据相关资料进行总结。

IT人IT事 1万+

什么是架构架构如何演进?

系统架构(System Architecture) 是描述单个或多个系统整体结构的设计蓝图,定义了系统的组件划分、部署策略、交互方式以及非功能性需求(性能、可用性、可扩展性...)。系统架构通过集群实现资源聚合与高可用,借助分布式提升容错与扩展性,并依托弹性机制动态适应变化。其核心目标是通过结构化设计实现系统功能的高效运行、资源的灵活调度以及对外部环境变化的动态适应能力。

IT孟德的编程世界 4954

架构——业务架构、数据架构和技术架构的关系

业务架构是对企业业务的一种抽象描述,它从业务的视角出发,梳理业务流程、划分业务模块,明确各业务模块之间的关系,旨在确保业务目标的顺利实现。它是企业战略与实际业务运营之间的桥梁,将抽象的战略目标转化为具体可执行的业务活动和流程。在软件项目中,业务架构扮演着至关重要的角色。它就像是软件系统的 “业务蓝图”,为后续的数据架构和技术架构设计提供了方向和依据。通过清晰的业务架构设计,开发团队能够更好地理解业务需求,准确把握业务的核心流程和关键环节,从而避免在开发过程中出现需求理解偏差、功能设计不合理等问题。

oopxiajun博客专栏 2675

业务架构、数据架构、应用架构和技术架构

业务架构是企业架构的关键组成部分,或者说它就是企业架构设计的最基本。它定义了组织的业务策略、组织结构、治理、关键业务流程以及业务功能。其核心在于将组织的业务需求与信息技术资源相对接,确保企业策略得以有效执行。技术架构定义了支持企业业务运行的技术基础设施的框架,包括硬件、软件、网络资源及服务。它确保所有技术组件都能有效地协同工作,支持企业的应用和数据架构。应用架构定义了企业中的应用系统的结构和行为,以及这些系统之间的关系和它们与业务目标的对接方式。

javaDB_EAD的专栏 4307

逻辑架构、开发架构、运行架构、物理架构、数据架构

在实际工作中,我们经常听到“架构”和“架构师”这样的名词,并不新鲜...

weixin_34161029的博客 7704

【基础架构】——架构到底是指什么

摘要 本文探讨了软件架构的定义及相关概念。首先指出技术人员对"架构"理解的模糊性,强调明确架构定义对设计、讲解和学习架构的重要性。随后厘清三组关键概念:1)系统与子系统,指出架构仅关注顶层层级;2)模块与组件,前者是业务逻辑单元,后者是物理部署单元;3)框架与架构,前者是规范,后者是结构。最后提出"4R架构定义":架构是系统的顶层(Rank)结构,由角色(Role)、关系(Relation)和规则(Rule)组成。通过微信等案例,说明应从适当层级、明确角色分工及交互规

小志的博客 1288
上一篇: 《编程珠玑》——开篇
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值