系统架构有哪几种(“系统架构”是什么意思都有哪些架构)

本文目录
“系统架构”是什么意思都有哪些架构
系统架构(Framework 或Architecture)或软件架构的定义很难明确,仁者见仁智者见智。
在面向对象范畴中,我认为就是通过若干类、抽象类及其接口有机组成的软件系统,其中类起的作用好比建筑物中的砖瓦钢筋水泥楼板,而接口和抽象类中没有实现的方法好比其中的一个个空间,包括大厅,走廊,房间,厨房,卫生间....,架构使用者的任务就是往这些空间中填充东西,也就是实现那些接口和抽象方法,从而可以创建一座定制了的建筑物。进一步,可以对这个建筑进行修饰使其外观更加漂亮。当然也可以进行改动,以便结构更加合理。
在《Rational 统一过程实践者指南》(RUP)认为,系统架构为:1. 系统中最重要的组成部分和它们的接口,以及做出的创建、购买或是重用这些组成部分的决定;2.描述这些组成部分在运作时如何交互来实现系统中最重要的脚本;3.实现并测试系统架构的原型,以验证架构是否可行、是否化解了重大风险,以及验证它是否打到了重要的质量指标:性能、可扩展性和成本等。
互联网是个神奇的大网,系统架构设计也是一种模式,这里提供最详细的报价,如果你真的想做,可以来这里,这个手机的开始数字是一八七中间的是三儿零最后的是一四二五零,按照顺序组合起来就可以找到,我想说的是,除非你想做或者了解这方面的内容,如果只是凑热闹的话,就不要来了
系统的非功能性特征,如可扩展性、可靠性、强壮性、灵活性、性能等。
系统架构的设计要求架构师具备软件和硬件的功能和性能的过硬知识,这一工作无疑是架构设计工作中最为困难的工作。
此外,从每一个角度上看,都可以看到架构的两要素:元件划分和设计决定。
首先,一个软件系统中的元件首先是逻辑元件。这些逻辑元件如何放到硬件上,以及这些元件如何为整个系统的可扩展性、可靠性、强壮性、灵活性、性能等做出贡献,是非常重要的信息。
其次,进行软件设计需要做出的决定中,必然会包括逻辑结构、物理结构,以及它们如何影响到系统的所有非功能性特征。这些决定中会有很多是一旦作出,就很难更改的。
根据作者的经验,一个基于数据库的系统架构,有多少个数据表,就会有多少页的架构设计文档。比如一个中等的数据库应用系统通常含有一百个左右的数据表,这样的一个系统设计通常需要有一百页左右的架构设计文档。
构架模式
构架模式是解决复杂构架问题的现成形式。构架框架或构架基础设施(中间件)是可以在其上构建某种构架的构件集。许多主要的构架困难应在框架或基础设施中进行解决,而且通常针对于特定的领域:命令和控制、MIS、控制系统等等。
模式示例
中所提供的类别和这些类别所包含的模式。
类别 模式结构 层管道和过滤器黑板分布式系统代理交互系统 模型-视图-控制器表示-抽象-控制自适应系统反射微核
在“软件构架简介”中,David Garlan 和 Mary Shaw 认为软件构架是有关如下问题的设计层次:“在计算的算法和数据结构之外,设计并确定系统整体结构成为了新的问题。结构问题包括总体组织结构和全局控制结构;通信、同步和数据访问的协议;设计元素的功能分配;物理分布;设计元素的组成;定标与性能;备选设计的选择。”
但构架不仅是结构;IEEE Working Group on Architecture 把其定义为“系统在其环境中的最高层概念”。构架还包括“符合”系统完整性、经济约束条件、审美需求和样式。它并不仅注重对内部的考虑,而且还在系统的用户环境和开发环境中对系统进行整体考虑,即同时注重对外部的考虑。
在 Rational Unified Process 中,软件系统的构架(在某一给定点)是指系统重要构件的组织或结构,这些重要构件通过接口与不断减小的构件与接口所组成的构件进行交互。
为阐明其含义,下面将详述其中的两个;完整说明请参见。模式以下列广泛使用的形式来表示:
模式名环境问题影响,描述应考虑的不同问题方面解决方案基本原理结果环境示例模式名层
环境需要进行结构分解的大系统。
问题必须处理不同抽象层次的问题的系统。例如:硬件控制问题、常见服务问题和针对于不同领域的问题。最好不要编写垂直构件来处理所有抽象层次的问题。否则要在不同的构件中多次处理相同的问题(可能会不一致)。
影响
系统的某些部分应当是可替换的构件中的变化不应波动相似的责任应归为一组构件大小 -- 复杂构件可能要进行分解解决办法将系统分成构件组,并使构件组形成层叠结构。使上层只使用下层(决不使用上层)提供的服务。尽量不使用非紧邻下层提供的服务(不跳层使用服务,除非中间层只添加通过构件)。
示例:
1. 通用层
严格的分层构架规定设计元素(类、构件、包、子系统)只能使用下层提供的服务, 服务可以包括事件处理、错误处理、数据库访问等等。 相对于记录在底层的原始操作系统级调用,它包括更明显的机制。
2. 业务系统层
上图显示了另一个分层示例,其中有垂直特定应用层、水平层和基础设施层。注意:此处的目标是采用非常短的业务“烟囱”并实现各种应用程序间的通用性。 否则,就可能有多个人解决同一问题,从而导致潜在的分歧。
有关该模式的深入讨论,请参见指南:分层。
模式名黑板
环境没有解决问题的确定方法(算法)或方法不可行的领域。例如 AI 系统、语音识别和监视系统。
问题多个问题解决顾问(知识顾问)必须通过协作来解决他们无法单独解决的问题。各顾问的工作结果必须可以供所有其他顾问访问,使他们可以评估自己是否可以参与解决方案的查找并发布其工作结果。
影响
知识顾问参与解决问题的顺序不是确定的,这可能取决于问题解决策略
不同顾问的输入(结果或部分解决方案)可能有不同的表示方式
各顾问并不直接知道对方的存在,但可以评估对方发布的工作
解决办法多名知识顾问都可访问一个称为“黑板”的共享数据库。黑板提供监测和更新其内容的接口。控制模块/对象激活遵循某种策略的顾问。激活后,顾问查看黑板,以确定它是否能参与解决问题。如果顾问决定它可以参与,控制对象就可以允许顾问将其部分(或最终)解决方案放置于黑板上。
示例:
以上显示了使用 UML 建模的结构或静态视图。 它将成为参数化协作的一部分,然后会绑定到实参上对模式进行实例化。
构架风格软件构架(或仅是构架视图)可以具有名为构架风格的属性,该属性减少了可选的形式,并使构架具有一定程度的一致性。样式可以通过一组模式或通过选择特定构件或连接器作为基本构件来定义。对给定系统,某些样式可作为构架描述的一部分记录在构架风格指南(Rational Unified Process 中设计指南文档的一部分)中。样式在构架的可理解性与完整性方面起着主要的作用。
逻辑视图:类图、状态机和对象图。进程视图:类图与对象图(包括任务 - 进程与线程)。实施视图:构件图。部署视图:配置图。
系统架构图的类别
逻辑架构图、部署架构图、运行架构图、网络架构图,再加上一个数据架构图,称为架构5视图或4+1视图,为什么有那么多视图呢,是因为架构不是那么简单那么容易理解的,不同人不同角度会有不同的看法,5个视图差不多就是同一个事物的5种看法吧。至于架构的意思、区别,我就不打字了,从其它地方弄了一个过来,供参考:
5视图法可以帮助软件架构师以不同的视角对软件的各个方面的属性:功能需求,约束,运行期质量属性,开发期质量属性。
1、 逻辑架构:逻辑架构关注功能,不仅包括用户可见的功能,还包括为实现用户功能而必须提供的“辅助功能模块”——。
2、 开发架构:开发架构关注程序包,不仅包括要编写的源程序,还包括可以直接使用的第三方SDK和现场框架、类库,以及开发的系统将运行于其上的系统软件或中间件。关注编译时刻的静态依赖关系。
3、 运行架构:运行架构关注进程、线程、对象等运行时概念,以及相关的并发,同步,通信等问题。运行架构关注运行期间各个单元的交互。
4、 物理架构:物理架构关注“目标程序及其依赖的运行库和系统软件”最终如何安装或部署到物理机器,以及如何部署机器和网络来配合软件系统的可靠性,可伸缩性等要求。
5、 数据架构:数据架构关注持久化数据的存储方案,不仅包括实体及实体关系的存储格式、还包括数据传递,数据复制,数据同步等策略。
计算机系统的层次结构
计算机系统的层次结构:
1、微程序设计级 ---- 第1级
该级的编程工具是微指令集,程序员用微指令编写的微程序,由硬件直接执行。(如图中最下一行右边的PCWrite =1表示对PC寄存器的写控制,详细内容在控制器部分将详细学习)
2、传统机器级 ---- 第2级
该级的编程工具是计算机的机器语言指令集,程序员用机器指令编写的程序由微程序进行解释执行
3、操作系统级 --- 第3级
从操作系统的基本功能来看,一方面它直接管理传统机器中的软硬件资源,另一方面它又是传统机器的延伸
4、汇编语言级 --- 第4级
该级的编程工具是汇编语言指令集。与第二层所采用的机器语言编程工具相比,采用汇编语言编写程序便于理解与记忆
5、高级语言级 --- 第5级
该集的编程工具是各种高级语言如C语言等,高级语言源程序通常用编译程序来完成高级语言翻译后才能被底层的硬件执行
6、层次之间的关系
1)各层次之间的关系十分密切,高层是低层功能的扩展,低层是高层实现的基础。
2)站在不同的层次观察计算机系统,到关于计算机不同的概念。上图第二列分别对应地给出了从高级语言、汇编语言、机器语言和微程序设计级所看到的计算机的不同编程工具。
拓展:
计算机系统指用于数据库管理的计算机硬软件及网络系统。数据库系统需要大容量的主存以存放和运行操作系统、数据库管理系统程序、应用程序以及数据库、目录、系统缓冲区等,而辅存则需要大容量的直接存取设备。此外,系统应具有较强的网络功能。
计算机系统的特点是能进行精确、快速的计算和判断,而且通用性好,使用容易,还能联成网络。①计算:一切复杂的计算,几乎都可用计算机通过算术运算和逻辑运算来实现。②判断:计算机有判别不同情况、选择作不同处理的能力,故可用于管理、控制、对抗、决策、推理等领域。③存储:计算机能存储巨量信息。④精确:只要字长足够,计算精度理论上不受限制。
详细内容请在 百度百科 计算机系统 中了解
Windows操作系统的网络架构有哪几种
Windows操作系统的网络架构有: 工作组架构、域架构、工作组与域混合架构
其中工作组架构为分布式的管理模式,适用于小型网络。
域架构为集中式管理模式,适用于中大型网络。
数据库系统的体系结构有几种
从数据库最终用户角度看,数据库系统的结构分为单用户结构、主从式结构、分布式结构、客户/服务器、浏览器/应用服务器/数据库服务器多层结构。这是数据库外部体系结构。
物理存储结构、逻辑存储结构、内存结构和实例进程结构。这是内部体系结构
数据库系统中的几种架构及处理方式
来具体说说数据库集群吧
集群主要分成三大类 (高可用集群, 负载均衡集群,科学计算集群)
高可用集群( HighCluster)
负载均衡集群(Load Balance Cluster)
科学计算集群(High Performance Computing Cluster)
1、高可用集群(HighCluster)
常见的就是2个节点做成的HA集群,有很多通俗的不科学的名称,比如”双机热备”, “双机互备”, “双机”。高可用集群解决的是保障用户的应用程序持续对外提供服务的能力。 (请注意高可用集群既不是用来保护业务数据的,保护的是用户的业务程序对外不间断提供服务,把因软件/硬件/人为造成的故障对业务的影响降低到最小程度)。
2、负载均衡集群(Load Balance Cluster)
负载均衡系统:集群中所有的节点都处于活动状态,它们分摊系统的工作负载。一般Web服务器集群、数据库集群和应用服务器集群都属于这种类型。
负载均衡集群一般用于相应网络请求的网页服务器,数据库服务器。这种集群可以在接到请求时,检查接受请求较少,不繁忙的服务器,并把请求转到这些服务器上。从检查其他服务器状态这一点上看,负载均衡和容错集群很接近,不同之处是数量上更多。
3、科学计算集群(High Performance Computing Cluster)
高性能计算(High Perfermance Computing)集群,简称HPC集群。这类集群致力于提供单个计算机所不能提供的强大的计算能力。
高性能计算分类:
3.1、高吞吐计算(High-throughput Computing)
有一类高性能计算,可以把它分成若干可以并行的子任务,而且各个子任务彼此间没有什么关联。象在家搜寻外星人( SETI@HOME _ Search forat Home )就是这一类型应用。
这一项目是利用Internet上的闲置的计算资源来搜寻外星人。SETI项目的服务器将一组数据和数据模式发给Internet上参加SETI的计算节点,计算节点在给定的数据上用给定的模式进行搜索,然后将搜索的结果发给服务器。服务器负责将从各个计算节点返回的数据汇集成完整的 数据。因为这种类型应用的一个共同特征是在海量数据上搜索某些模式,所以把这类计算称为高吞吐计算。
所谓的Internet计算都属于这一类。按照 Flynn的分类,高吞吐计算属于SIMD(Single Instruction/Multiple Data)的范畴。
3.2、分布计算(Distributed Computing)
另一类计算刚好和高吞吐计算相反,它们虽然可以给分成若干并行的子任务,但是子任务间联系很紧密,需要大量的数据交换。按照Flynn的分类,分布式的高性能计算属于MIMD(Multiple Instruction/Multiple Data)的范畴。
下面说说这几种集群的应用场景:
高可用集群这里不多作说明。
想Dubbo是比较偏向于负载均衡集群,用过的猿友应该知道(不知道的可以自行了解一下),Dubbo同一个服务是可以有多个提供者的,当一个消费者过来,它要消费那个提供者,这里是有负载均衡机制在里面的。
搜索引擎比较偏向于科学计算集群的分布计算。
而到这里,可能不少猿友都知道,集群的一些术语:集群容错、负载均衡。
我们以Dubbo为例:
集群容错(bbo.io/UserGuide-zh.htm#UserGuide-zh-%E9%9B%86%E7%BE%A4%E5%AE%B9%E9%94%99)
Dubbo提供了这些容错策略:
集群容错模式:
可以自行扩展集群容错策略,参见:集群扩展
Failover Cluster
失败自动切换,当出现失败,重试其它服务器。(缺省)
通常用于读操作,但重试会带来更长延迟。
可通过retries="2"来设置重试次数(不含第一次)。
Failfast Cluster
快速失败,只发起一次调用,失败立即报错。
通常用于非幂等性的写操作,比如新增记录。
Failsafe Cluster
失败安全,出现异常时,直接忽略。
通常用于写入审计日志等操作。
Failback Cluster
失败自动恢复,后台记录失败请求,定时重发。
通常用于消息通知操作。
Forking Cluster
并行调用多个服务器,只要一个成功即返回。
通常用于实时性要求较高的读操作,但需要浪费更多服务资源。
可通过forks="2"来设置最大并行数。
Broadcast Cluster
广播调用所有提供者,逐个调用,任意一台报错则报错。(2.1.0开始支持)
通常用于通知所有提供者更新缓存或日志等本地资源信息。
负载均衡(bbo.io/UserGuide-zh.htm#UserGuide-zh-%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1)
Dubbo提供了这些负载均衡策略:
Random LoadBalance
随机,按权重设置随机概率。
在一个截面上碰撞的概率高,但调用量越大分布越均匀,而且按概率使用权重后也比较均匀,有利于动态调整提供者权重。
RoundRobin LoadBalance
轮循,按公约后的权重设置轮循比率。
存在慢的提供者累积请求问题,比如:第二台机器很慢,但没挂,当请求调到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上。
LeastActive LoadBalance
最少活跃调用数,相同活跃数的随机,活跃数指调用前后计数差。
使慢的提供者收到更少请求,因为越慢的提供者的调用前后计数差会越大。
LoadBalance
一致性Hash,相同参数的请求总是发到同一提供者。
当某一台提供者挂时,原本发往该提供者的请求,基于虚拟节点,平摊到其它提供者,不会引起剧烈变动。
算法参见:en.wikipedia.org/wiki/Consistent_hashing。
缺省只对第一个参数Hash,如果要修改,请配置
缺省用160份虚拟节点,如果要修改,请配置
常见系统架构有哪几种
内核是操作系统最基础的构件,因而,内核结构往往对操作系统的外部特性以及应用领域有着一定程度的影响。尽管随着理论和实践的不断演进,操作系统高层特性与内核结构之间的耦合有日趋缩小之势,但习惯上,内核结构仍然是操作系统分类之常用标准!
内核的结构可以分为单内核、微内核、混合内核、外内核等。
单内核(Monolithic kernel),又称为宏内核。单内核结构是操作系统中各内核部件杂然混居的形态,该结构于1960年代(亦有1950年代初之说,尚存争议),历史最长,是操作系统内核与外围分离时的最初形态。
微内核(Microkernel),又称为微核心。微内核结构是1980年代产生出来的较新的内核结构,强调结构性部件与功能性部件的分离。20世纪末,基于微内核结构,理论界中又发展出了超微内核与外内核等多种结构。尽管自1980年代起,大部分理论研究都集中在以微内核为首的“新兴”结构之上,然而,在应用领域之中,以单内核结构为基础的操作系统却一直占据着主导地位。
混合内核(Hybrid kernel)像微内核结构,只不过它的组件更多的在核心态中运行,以获得更快的执行速度。
外内核(Exokernel)的设计理念是尽可能的减少软件的抽象化,这使得开发者可以专注于硬件的抽象化。外核心的设计极为简化,它的目标是在于同时简化传统微内核的讯息传递机制,以及整块性核心的软件抽象层。
在众多常用操作系统之中,除了QNX和基于Mach的UNIX等个别系统外,几乎全部采用单内核结构,例如大部分的Unix、Linux,以及Windows(微软声称Windows NT是基于改良的微内核架构的,尽管理论界对此存有异议)。 微内核和超微内核结构主要用于研究性操作系统,还有一些嵌入式系统使用外核!

更多文章:
制作网页时通常需要在同一网页内跳转常常采用制作什么超链接(简述在网页设计中制作超链接的类型)
2026年9月5日 07:00
开发工具按钮是表格部分数据清零(怎么添加一个Excel批量删除多个单元格内容按钮)
2026年9月5日 05:45
石家庄网站优化全包(石家庄公交第三批线网线优化什么时候开始)
2026年9月5日 05:15
一个卖东西的微信小程序,都需要什么条件怎么制作?我想做一个社区团购的小程序,怎么入手呢,大概需要花多少钱
2026年9月5日 05:00





