架构(计算机术语)_百度百科

文章推薦指數: 80 %
投票人數:10人

架构,又名软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。

架构描述语言(ADL)用于描述软件的体系架构。

现在已有多种架构描述 ... 百度首页 网页 新闻 贴吧 知道 网盘 图片 视频 地图 文库 百科 首页 历史上的今天 百科冷知识 图解百科 秒懂百科 懂啦 秒懂本尊答 秒懂大师说 秒懂看瓦特 秒懂五千年 秒懂全视界 特色百科 数字博物馆 非遗百科 恐龙百科 多肉百科 艺术百科 科学百科 用户 蝌蚪团 热词团 百科校园 分类达人 百科任务 百科商城 知识专题 权威合作 合作模式 常见问题 联系方式 下载百科APP 个人中心 架构是一个多义词,请在下列义项上选择浏览(共2个义项) 添加义项 ▪计算机术语 ▪汉语词汇 收藏 查看我的收藏 0 有用+1 已投票 0 架构 (计算机术语) 播报 编辑 锁定 上传视频 本词条由“科普中国”科学百科词条编写与应用工作项目 审核 。

架构,又名软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。

架构描述语言(ADL)用于描述软件的体系架构。

现在已有多种架构描述语言,如Wright(由卡内基梅隆大学开发),Acme(由卡内基梅隆大学开发),C2(由UCI开发),Darwin(由伦敦帝国学院开发)。

ADL的基本构成包括组件、连接器和配置。

[1]  中文名 架构 外文名 Softwarearchitecture 别    名 软件架构 目录 1 特性 2 软件架构 3 历史 4 设计目标 5 种类 6 构架模式 7 构架设计图 8 架构师 架构特性 播报 架构是对存储在ActiveDirectory中的对象类别和属性的描述。

对于每一个对象类别来说,该架构定义了对象类必须具有的属性,它也可以有附加的属性,并且该对象可以是它的父对象。

可以动态更新的ActiveDirectory架构。

应用程序可以使用新的属性和类扩展该架构,并能立刻使用该扩展。

通过在ActiveDirectory中创建或修改存储在ActiveDirectory中的架构对象来完成架构的更新。

与ActiveDirectory中的所有对象一样,架构对象能访问控制列表,因此只有授权的用户才可以更改架构。

架构软件架构 播报 软件架构(softwarearchitecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。

软件架构是一个系统的草图。

软件架构描述的对象是直接构成系统的抽象组件。

各个组件之间的连接则明确和相对细致地描述组件之间的通讯。

在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。

在面向对象领域中,组件之间的连接通常用接口(计算机科学)来实现。

软件体系结构是构建计算机软件实践的基础。

与建筑师设定建筑项目的设计原则和目标,作为绘图员画图的基础一样,一个软件架构师或者系统架构师陈述软件构架以作为满足不同客户需求的实际系统设计方案的基础。

软件构架是一个容易理解的概念,多数工程师(尤其是经验不多的工程师)会从直觉上来认识它,但要给出精确的定义很困难。

特别是,很难明确地区分设计和构架:构架属于设计的一方面,它集中于某些具体的特征。

在“软件构架简介”中,DavidGarlan和MaryShaw认为软件构架是有关如下问题的设计层次:“在计算的算法和数据结构之外,设计并确定系统整体结构成为了新的问题。

结构问题包括总体组织结构和全局控制结构;通信、同步和数据访问的协议;设计元素的功能分配;物理分布;设计元素的组成;定标与性能;备选设计的选择。

”但构架不仅是结构。

IEEEWorkingGrouponArchitecture把其定义为“系统在其环境中的最高层概念”。

构架还包括“符合”系统完整性、经济约束条件、审美需求和样式。

它并不仅注重对内部的考虑,而且还在系统的用户环境和开发环境中对系统进行整体考虑,即同时注重对外部的考虑。

在RationalUnifiedProcess中,软件系统的构架(在某一给定点)是指系统重要构件的组织或结构,这些重要构件通过接口与不断减小的构件与接口所组成的构件进行交互。

从和目的、主题、材料和结构的联系上来说,软件架构可以和建筑物的架构相比拟。

一个软件架构师需要有广泛的软件理论知识和相应的经验来实施和管理软件产品的高级设计。

软件架构师定义和设计软件的模块化,模块之间的交互,用户界面风格,对外接口方法,创新的设计特性,以及高层事物的对象操作、逻辑和流程。

一般而言,软件系统的架构(Architecture)有两个要素:1.它是一个软件系统从整体到部分的最高层次的划分。

一个系统通常是由元件组成的,而这些元件如何形成、相互之间如何发生作用,则是关于这个系统本身结构的重要信息。

详细地说,就是要包括架构元件(ArchitectureComponent)、联结器(Connector)、任务流(Task-flow)。

所谓架构元素,也就是组成系统的核心"砖瓦",而联结器则描述这些元件之间通讯的路径、通讯的机制、通讯的预期结果,任务流则描述系统如何使用这些元件和联结器完成某一项需求。

2.建造一个系统所作出的最高层次的、以后难以更改的,商业的和技术的决定。

在建造一个系统之前会有很多的重要决定需要事先作出,而一旦系统开始进行详细设计甚至建造,这些决定就很难更改甚至无法更改。

显然,这样的决定必定是有关系统设计成败的最重要决定,必须经过非常慎重的研究和考察。

架构历史 播报 早在1960年代,诸如E·W·戴克斯特拉就已经涉及软件架构这个概念了。

自1990年代以来,部分由于在RationalSoftwareCorporation和Microsoft内部的相关活动,软件架构这个概念开始越来越流行起来。

卡内基梅隆大学和加州大学埃尔文分校在这个领域作了很多研究。

卡内基·梅隆大学的MaryShaw和DavidGarlan于1996年写了一本叫做SoftwareArchitectureperspectiveonanemergingdiscipline的书,提出了软件架构中的很多概念,例如软件组件、连接器、风格等等。

加州大学埃尔文分校的软件研究院所做的工作则主要集中于架构风格、架构描述语言以及动态架构。

计算机软件的历史开始于五十年代,历史非常短暂,而相比之下建筑工程则从石器时代就开始了,人类在几千年的建筑设计实践中积累了大量的经验和教训。

建筑设计基本上包含两点,一是建筑风格,二是建筑模式。

独特的建筑风格和恰当选择的建筑模式,可以使它成为一个独一无二的建筑。

下面的照片显示了中美洲古代玛雅建筑,Chichen-Itza大金字塔,九个巨大的石级堆垒而上,九十一级台阶(象征着四季的天数)夺路而出,塔顶的神殿耸入云天。

所有的数字都如日历般严谨,风格雄浑。

难以想象这是石器时代的建筑物。

图1、古玛雅建筑 图1位于墨西哥Chichen-Itza(在玛雅语中chi意为嘴chen意为井)的古玛雅建筑。

(摄影:作者) 软件与人类的关系是架构师必须面对的核心问题,也是自从软件进入历史舞台之后就出现的问题。

与此类似地,自从有了建筑以来,建筑与人类的关系就一直是建筑设计师必须面对的核心问题。

英国首相丘吉尔说,我们构造建筑物,然后建筑物构造我们(Weshapeourbuildings,andafterwardsourbuildingsshapeus)。

英国下议院的会议厅较狭窄,无法使所有的下议院议员面向同一个方向入座,而必须分成两侧入座。

丘吉尔认为,议员们入座的时候自然会选择与自己政见相同的人同时入座,而这就是英国政党制的起源。

Party这个词的原意就是"方"、"面"。

政党起源的关键就是建筑物对人的影响。

在软件设计界曾经有很多人认为功能是最为重要的,形式必须服从功能。

与此类似地,在建筑学界,现代主义建筑流派的开创人之一LouisSullivan也认为形式应当服从于功能(Formsfollowsfunction)。

几乎所有的软件设计理念都可以在浩如烟海的建筑学历史中找到更为遥远的历史回响。

最为著名的,当然就是模式理论和XP理论。

架构设计目标 播报 正如同软件本身有其要达到的目标,软件架构设计要达到如下的目标:1.可靠性(Reliable)。

软件系统对于用户的商业经营和管理来说极为重要,因此软件系统必须非常可靠。

2.安全性(Secure)。

软件系统所承担的交易的商业价值极高,系统的安全性非常重要。

3.可扩展性(Scalable)。

软件必须能够在用户的使用率、用户的数目增加很快的情况下,保持合理的性能。

只有这样,才能适应用户的市场扩展得可能性。

4.可定制化(Customizable)。

同样的一套软件,可以根据客户群的不同和市场需求的变化进行调整。

5.可伸缩(Extensible)。

在新技术出现的时候,一个软件系统应当允许导入新技术,从而对现有系统进行功能和性能的扩展。

6.可维护性(Maintainable)。

软件系统的维护包括两方面,一是排除现有的错误,二是将新的软件需求反映到现有系统中去。

一个易于维护的系统可以有效地降低技术支持的花费。

7.客户体验(CustomerExperience)。

软件系统必须易于使用。

8.市场时机(TimetoMarket)。

软件用户要面临同业竞争,软件提供商也要面临同业竞争。

以最快的速度争夺市场先机非常重要。

架构种类 播报 图2、一个逻辑架构的例子 根据我们关注的角度不同,可以将架构分成三种:1.逻辑架构、软件系统中元件之间的关系,比如用户界面,数据库,外部系统接口,商业逻辑元件,等等。

如图是一个逻辑架构的例子 从上面这张图中可以看出,此系统被划分成三个逻辑层次,即表象层次,商业层次和数据持久层次。

每一个层次都含有多个逻辑元件。

比如WEB服务器层次中有HTML服务元件、Session服务元件、安全服务元件、系统管理元件等。

2.物理架构、软件元件是怎样放到硬件上的。

比如下面这张物理架构图描述了一个分布于北京和上海的分布式系统的物理架构,图中所有的元件都是物理设备,包括网络分流器、代理服务器、WEB服务器、应用服务器、 图3、一个物理架构的例子 报表服务器、整合服务器、存储服务器。

主机等等。

如图是一个物理架构的例子3.系统架构、系统的非功能性特征,如可扩展性、可靠性、强壮性、灵活性、性能等。

系统架构的设计要求架构师具备软件和硬件的功能和性能的过硬知识,这一工作无疑是架构设计工作中最为困难的工作。

此外,从每一个角度上看,都可以看到架构的两要素:元件划分和设计决定。

首先,一个软件系统中的元件首先是逻辑元件。

这些逻辑元件如何放到硬件上,以及这些元件如何为整个系统的可扩展性、可靠性、强壮性、灵活性、性能等做出贡献,是非常重要的信息。

其次,进行软件设计需要做出的决定中,必然会包括逻辑结构、物理结构,以及它们如何影响到系统的所有非功能性特征。

这些决定中会有很多是一旦做出,就很难更改的。

为了讨论和分析软件构架,必须首先定义构架表示方式,即描述构架重要方面的方式。

在RationalUnifiedProcess中,软件构架文档记录有这种描述。

我们决定以多种构架视图来表示软件构架。

每种构架视图针对于开发流程中的涉众(例如最终用户、设计人员、管理人员、系统工程师、维护人员等)所关注的特定方面。

构架视图显示了软件构架如何分解为构件,以及构件如何由连接器连接来产生有用的形式,由此记录主要的结构设计决策。

这些设计决策必须基于需求以及功能、补充和其他方面的约束。

而这些决策又会在较低层次上为需求和将来的设计决策施加进一步的约束。

构架由许多不同的构架视图来表示,这些视图本质上是以图形方式来摘要说明“在构架方面具有重要意义”的模型元素。

在RationalUnifiedProcess中,您将从一个典型的视图集开始,该视图集称为“4+1视图模型”。

它包括:用例视图:包括用例和场景,这些用例和场景包括在构架方面具有重要意义的行为、类或技术风险。

它是用例模型的子集。

逻辑视图:包括最重要的设计类、从这些设计类到包和子系统的组织形式,以及从这些包和子系统到层的组织形式。

它还包括一些用例实现。

它是设计模型的子集。

实施视图:包括实施模型及其从模块到包和层的组织形式的概览。

同时还描述了将逻辑视图中的包和类向实施视图中的包和模块分配的情况。

它是实施模型的子集。

进程视图:包括所涉及任务(进程和线程)的描述,它们的交互和配置,以及将设计对象和类向任务的分配情况。

只有在系统具有很高程度的并行时,才需要该视图。

在RationalUnifiedProcess中,它是设计模型的子集。

配置视图:包括对最典型的平台配置的各种物理节点的描述以及将任务(来自进程视图)向物理节点分配的情况。

只有在分布式系统中才需要该视图。

它是部署模型的一个子集。

构架视图记录在软件构架文档中。

您可以构建其他视图来表达需要特别关注的不同方面:用户界面视图、安全视图、数据视图等等。

对于简单系统,可以省略4+1视图模型中的一些视图。

虽然以上视图可以表示系统的整体设计,但构架只同以下几个具体方面相关:模型的结构,即组织模式,例如分层。

基本元素,即关键用例、主类、常用机制等,它们与模型中的各元素相对。

几个关键场景,它们表示了整个系统的主要控制流程。

记录模块度、可选特征、产品线状况的服务。

构架视图在本质上是整体设计的抽象或简化,它们通过舍弃具体细节来突出重要的特征。

在考虑以下方面时,这些特征非常重要:1.系统演进,即进入下一个开发周期。

2.在产品线环境下复用构架或构架的一部分。

3.评估补充质量,例如性能、可用性、可移植性和安全性。

4.向团队或分包商分配开发工作。

5.决定是否包括市售构件。

6.插入范围更广的系统。

[1]  架构构架模式 播报 构架模式是解决复杂构架问题的现成形式。

构架框架或构架基础设施(中间件)是可以在其上构建某种构架的构件集。

许多主要的构架困难应在框架或基础设施中进行解决,而且通常针对于特定的领域:命令和控制、MIS、控制系统等等。

根据构架模式最适用的系统的特征将其分类,其中一个类别处理更普遍的结构问题。

下表显示了【BUS96】中所提供的类别和这些类别所包含的模式。

类别模式结构层管道和过滤器黑板分布式系统代理交互系统模型-视图-控制器表示-抽象-控制自适应系统反射微核为阐明其含义,下面将详述其中的两个。

完整说明请参见【BUS96】。

模式以下列广泛使用的形式来表示:模式名、环境、问题、影响,描述应考虑的不同问题方面、解决方案、基本原理、结果环境、示例、模式名层、环境、需要进行结构分解的大系统、问题必须处理不同抽象层次的问题的系统。

例如:硬件控制问题、常见服务问题和针对于不同领域的问题。

最好不要编写垂直构件来处理所有抽象层次的问题。

否则要在不同的构件中多次处理相同的问题(可能会不一致)。

影响:系统的某些部分应当是可替换的;构件中的变化不应波动;相似的责任应归为一组;构件大小--复杂构件可能要进行分解解决办法:将系统分成构件组,并使构件组形成层叠结构。

使上层只使用下层(决不使用上层)提供的服务。

尽量不使用非紧邻下层提供的服务(不跳层使用服务,除非中间层只添加通过构件)。

示例:1.通用层 通用层 严格的分层构架规定设计元素(类、构件、包、子系统)只能使用下层提供的服务,服务可以包括事件处理、错误处理、数据库访问等等。

相对于记录在底层的原始操作系统级调用,它包括更明显的机制。

2.业务系统层 业务系统层 右图显示了另一个分层示例,其中有垂直特定应用层、水平层和基础设施层。

注意:此处的目标是采用非常短的业务“烟囱”并实现各种应用程序间的通用性。

否则,就可能有多个人解决同一问题,从而导致潜在的分歧。

环境:没有解决问题的确定方法(算法)或方法不可行的领域。

例如AI系统、语音识别和监视系统。

问题:多个问题解决顾问(知识顾问)必须通过协作来解决他们无法单独解决的问题。

各顾问的工作结果必须可以供所有其他顾问访问,使他们可以评估自己是否可以参与解决方案的查找并发布其工作结果。

影响:知识顾问参与解决问题的顺序不是确定的,这可能取决于问题解决策略;不同顾问的输入(结果或部分解决方案)可能有不同的表示方式;各顾问并不直接知道对方的存在,但可以评估对方发布的工作解决办法:多名知识顾问都可访问一个称为“黑板”的共享数据库。

黑板提供监测和更新其内容的接口。

控制模块/对象激活遵循某种策略的顾问。

激活后,顾问查看黑板,以确定它是否能参与解决问题。

如果顾问决定它可以参与,控制对象就可以允许顾问将其部分(或最终)解决方案放置于黑板上。

示例: 使用UML建模的结构或静态视图 以上显示了使用UML建模的结构或静态视图。

它将成为参数化协作的一部分,然后会绑定到实参上对模式进行实例化。

构架风格软件构架(或仅是构架视图)可以具有名为构架风格的属性,该属性减少了可选的形式,并使构架具有一定程度的一致性。

样式可以通过一组模式或通过选择特定构件或连接器作为基本构件来定义。

对给定系统,某些样式可作为构架描述的一部分记录在构架风格指南(RationalUnifiedProcess中设计指南文档的一部分)中。

样式在构架的可理解性与完整性方面起着主要的作用。

架构构架设计图 播报 构架视图的图形描述称为构架设计图。

对于以上描述的各种视图,设计图由以下统一建模语言图组成【UML99】:逻辑视图:类图、状态机和对象图。

进程视图:类图与对象图(包括任务-进程与线程)。

实施视图:构件图。

部署视图:配置图。

用例视图:用例图描述用例、主角和普通设计类;顺序图描述设计对象及其协作关系。

构架设计流程在RationalUnifiedProcess中,构架主要是分析设计工作流程的结果。

当项目再次进行此工作流程时,构架将在一次又一次迭代中不断演化、改进、精炼。

由于每次迭代都包括集成和测试,所以在交付产品时,构架就相当强壮了。

构架是精化阶段各次迭代的重点,构架的基线通常会在此阶段结束时确定。

架构架构师 播报 软体设计师中有一些技术水平较高、经验较为丰富的人,他们需要承担软件系统的架构设计,也就是需要设计系统的元件如何划分、元件之间如何发生相互作用,以及系统中逻辑的、物理的、系统的重要决定的做出。

这样的人就是所谓的架构师(Architect)。

在很多公司中,架构师不是一个专门的和正式的职务。

通常在一个开发小组中,最有经验的程序员会负责一些架构方面的工作。

在一个部门中,最有经验的项目经理会负责一些架构方面的工作。

但是,越来越多的公司团体认识到架构工作的重要性,并且在不同的组织层次上设置专门的架构师位置,由他们负责不同层次上的逻辑架构、物理架构、系统架构的设计、配置、维护等工作。

架构师分类按照职责的不同,架构师通常分为企业架构师、信息架构师、数据库架构师、业务架构师、技术架构师、系统架构师等。

百度百科内容由网友共同编辑,如您发现自己的词条内容不准确或不完善,欢迎使用本人词条编辑服务(免费)参与修正。

立即前往>> 参考资料 1.    (美)BehrouzForouzan著,刘艺瞿高峰译.《计算机科学导论》:机械工业出版社,2010 图集 架构的概述图(1张) V百科往期回顾 权威合作编辑 “科普中国”科学百科词条编写与应用工作项目 “科普中国”是为我国科普信息化建设塑造的全... 什么是权威编辑 资源提供 中国电子学会 中国电子学会(ChineseInstit... 提供资源类型:内容 什么是资源合作 词条统计 浏览次数:次 编辑次数:4次历史版本 最近更新: w_ou(2021-04-16) 1 特性 2 软件架构 3 历史 4 设计目标 5 种类 6 构架模式 7 构架设计图 8 架构师 为您推荐广告 搜索发现 新手上路 成长任务 编辑入门 编辑规则 本人编辑 我有疑问 内容质疑 在线客服 官方贴吧 意见反馈 投诉建议 举报不良信息 未通过词条申诉 投诉侵权信息 封禁查询与解封 ©2022 Baidu 使用百度前必读 | 百科协议 | 隐私政策 | 百度百科合作平台 | 京ICP证030173号  京公网安备11000002000001号 进入词条 清除历史记录关闭 播报 编辑 收藏 赞 登录 扫码下载百科APP 领取50财富值奖励 分享到微信朋友圈 打开微信“扫一扫”即可将网页分享至朋友圈 选择朗读音色 00:00 00:00



請為這篇文章評分?