软件体系结构【复习】

2024-02-21 22:30
文章标签 复习 软件体系结构

本文主要是介绍软件体系结构【复习】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

软件体系结构【复习】

考试卷面 40%

平时成绩 30%*3 大作业 10% 考勤 一共60%

名词解释不能只写一句话

大部分客观题 PPT有答案

大题15分 共三十分 答题要点在卷面上考试卷面 40%

文章目录

  • 软件体系结构【复习】
    • 第一章 概述
      • 1. 软件体系的概念
      • (考)软件体系架构6个定义
      • 2. 软件体系结构设计需要考虑的11个影响因素
      • 3. 软件体系结构设计涉及的7个方面
      • 4. 当前和未来软件的6个特点
      • 5. 当前和未来软件5大要求
      • 6. 好的软件体系结构的6个特征
      • 7. 软件体系结构的生命周期
      • 8. 软件体系结构的重要性
      • 9. 目前软件体系结构研究热点
      • 10.软件体系结构研究派门之争
        • 10.1 学院派
        • 10.2 实用派
      • 11. 软件体系结构研究的范畴
      • 12. 软件体系结构研究存在的不足
    • 第二章 风格与模式
      • 13. 软件体系结构最基本构件
        • 13.1 组件
          • 组件(构件,部件)
          • 组件的实现形式
          • 组件的分类
          • 组件的5个特性
        • 13.2 连接器
          • 连接的两个要素
          • 连接的5个特性
          • 连接不匹配解决方案
      • 14. 软件体系结构的风格
      • 15. 数据流风格——批处理、管道和过滤器
          • 过程
          • 特性
          • 优点
          • 弱点
      • 16. Windows架构
          • 硬件抽象层(HAK)
          • 设备及文件系统驱动程序
          • 内核
          • Windows执行体
          • Ntdll.dll
          • 系统进程
          • 服务进程
          • 应用进程
          • 环境子系统
      • 17. Linux架构
          • 内核结构体系(Kernal Space)
      • 18. Harmony架构
        • 18.1 设计理念
          • 微内核
          • 全场景
          • 分布式
          • 架构图
        • 18.2 对比
      • 19. 应用软件体系结构
          • 单体架构
          • SOA架构
          • 微服务架构

第一章 概述

1. 软件体系的概念

软件体系结构的兴起

软件危机,软件技术的发展不能达到人们对软件的期望

人们对软件的要求

  1. 足够的快

  2. 非常安全可靠

  3. 非常的便宜

  4. 足够的智能

  5. 操作非常的方便

  6. 界面或接口非常的友好

软件危机的主要表现

(书上说)

1.用户对完成的软件产品不满意;

2.软件质量常常不高;(例如:越来越慢…)

3.软件的质量不可靠;

4.软件开发常常缺乏适当的文档资料;

5.对软件开发的成本和时间估计常常不准确

6.软件技术发展的速度远远赶不上形势的需要。

(授课的说)

1.软件的开发受到硬件条件的制约;(windows,IBM370…)

2.软件的需求分析不够充分;

3.软件的开发受到开发者、用户、时期的局限;

4.软件的开发受到理论、算法的局限;

5.软件开发的复用技术与技术壁垒;

6.软件成本日益增长;

7.软件的版权问题。

软件体系结构是基于体系结构的软件开发方法

  • 在引入了体系结构的软件开发之后,应用系统的构造过程变为
  • 问题定义—>软件总体需求—>软件体系结构—>软件设计—>软件实现
  • 可以认为软件体系结构架起了软件需求与软件设计之间的一座桥梁。

(考)软件体系架构6个定义

许多专家学者从不同角度和不同侧面对软件体系结构进行了刻画,较为典型的定义有:

  • Garlan & Shaw**:软件体系结构(SA)是一个三元组:SA={ 组件,连接器, 约束 }**
  • Hays Roth :软件体系结构(SA)是一个四元组:SA={ 组件,接口,连接,连接语义 }
  • Perry & Wolf:软件体系结构(SA)是一个三元组:SA={ 组件,形式, 准则 }
  • Vestal:软件体系结构(SA)是一个三元组:SA={ 组件,风格,互操作通用模式 }
  • IEEE 610.12-1990**:软件体系结构(SA)是一个四元组:SA={ 组件,连接器,环境,原理 }**
  • Boehm**:软件体系结构(SA)是一个五元组:SA={ 组件,连接件,约束,需求,原理 }**

定义1和定义2 都强调了体系结构是由组件、连接件及其约束(或连接语义)组成的。即从构造的角度,审视软件体系结构。

定义3和定义4 出于可用性的考虑,通过强调体系结构风格(模式)和规则等,精化了定义1和定义2,例如,引入一组专有的特性(properties)和关系(relationship),来描述构成结构的实体。

定义5 和定义6 不仅强调了体系结构的基本构成,还强调了体系结构的环境。不同的环境(需求,设计决策),将影响设计与演化的原理。即以质量角度,审视软件体系结构。

结论:软件体系结构是组件和连接件构成的拓扑结构,定义了软件开发的原则、约束和环境的适应。

Garlan & Shaw**:软件体系结构(SA)是一个三元组:SA={ 组件,连接器, 约束 }**

组件(component)

可以是一组代码,如程序的模块,也可以是一个独立的程序(如数据库的SQL服务器)。

连接件(connector)

作为一种成份,是关系的抽象,用以表示构件之间的相互作用。如过程调用、管道、远程过程调用等。

约束(constrain)

用于对构件和连接件的语义说明。

Hays Roth :软件体系结构(SA)是一个四元组:SA={ 组件,接口,连接,连接语义 }

组件(component):

构成软件系统的实体,包括一组处理组件和一组数据组件。

接口(interface):

每个个组件都有一个接口。

连接(connection):

组件之间关系的模型,用于生成系统的拓扑结构。

连接语义(connection semantics)

用于连接的语义描述。包括静态连接语义(如实例连接)和动态连接语义,如消息连接(过程调用),信息转换协议(如管道)等。

Perry & Wolf:软件体系结构(SA)是一个三元组:SA={ 组件,形式, 准则 }

形式(form):

用于描述构成结构的实体,包括连接元素,是专有的特性和关系。

准则(rational)

是组件组合的“生成”规则。

Vestal:软件体系结构(SA)是一个三元组:SA={ 组件,风格,互操作通用模式 }

风格(style):

组件按照特定的方式组成特定结构,该结构应有利于上下文环境下的特定系列问题的解决。

互操作通用模式(common patterns of interaction)

关系的模型化。用于生成系统的拓扑结构。

IEEE 610.12-1990**:软件体系结构(SA)是一个四元组:SA={ 组件,连接器,环境,原理 }**

体系结构是以组件、组件之间的关系、组件与环境之间的关系为内容的某一系统的基本组织结构,以及指导上述内容设计与演化的原理

Boehm**:软件体系结构(SA)是一个五元组:SA={ 组件,连接件,约束,需求,原理 }**

原理(rationale):

为能够展示由组件、连接件和约束所定义的系统在实现时如何满足系统不同人员需求的原理。

2. 软件体系结构设计需要考虑的11个影响因素

软件基础

  1. 功能
  2. 成本
  3. 兼容性

软件质量层面

  1. 容量
  2. 安全性
  3. 可用性
  4. 出错容忍程度
  5. 性能
  6. 吞吐量
  7. 技术混合
  8. 恢复能力

30年后的今天挑战的不是速度、成本和性能,而是复杂度的问题

3. 软件体系结构设计涉及的7个方面

1.用法

2.功能

3.性能

4.伸缩能力

5.重用

6.经济上和技术上的冲突和平衡

7.美学的观点

4. 当前和未来软件的6个特点

  1. 无统一控制的广泛分布性

  2. 高度自主性

  3. 任务不可预测性

  4. 人、设备和软件的多重异构性

  5. 强个性化和灵活性

  6. 连接环境的多样性

5. 当前和未来软件5大要求

  1. 开放结构——软件实体具有目标制导能力和多目标的特征协同能力,从而使系统的效果体现出相容的多目标性;

  2. 动态协同——软件实体之间多种方式的互连、互通、协作和联盟;

  3. 在线演化——结构和实体的演化能力,包括:元素数目的可变性、结构关系的可调节性和结构形态的动态可配置性;

  4. 环境感知——软件实体具有感知外部运行和使用环境的能力;

  5. 自主适应 ——软件实体具有相对独立性、主动性和自适应性;

6. 好的软件体系结构的6个特征

  1. 可伸缩性的

  2. 简单

  3. 亲切的

  4. 关系清楚明了

  5. 职责分布明确

  6. 效益和技术平衡

7. 软件体系结构的生命周期

  1. 软件体系结构的非形式化描述——初始设计,软件设计师用非形式化的自然语言表示概念、原则;

  2. 软件体系结构的规范描述和分析——通过运用合适的形式化数学理论模型对第一阶段体系结构的非形式化描述进行规范定义;

  3. 软件体系结构的求精及其验证——大型系统的软件体系结构总是通过从抽象到具体,逐步求精而后得到的;

  4. 软件体系结构的实施——将求精后的软件体系结构实施于系统的设计中,并将软件体系结构的组件与连接件等有机地组织在一起,形成系统设计的框架;

  5. 软件体系结构的演化和扩展——在实施软件体系结构时,根据系统的需求,对软件体系结构的扩展和改动;

  6. 软件体系结构的提供、评价和度量

  7. 软件体系结构的终结——不能达到系统设计的要求,不能适应系统的发展。

非形式化描述—>规范描述和分析—>求精及其验证—>实施—>演化和扩展—>提供、评价和度量—>终结

自顶而下逐步求精,确定目标,有序控制

8. 软件体系结构的重要性

  1. 整个软件开发的开端;

  2. 软件开发的基本的指导方针;

  3. 给予后继开发人员的指导和约束;

  4. 对软件质量的重大保证;

  5. 软件修改、变动的保证和约束;

  6. 提供了软件的可重用性。

9. 目前软件体系结构研究热点

  1. 软件体系结构风格;
  2. 软件体系结构质量评价;
  3. 软件体系结构性能评价;
  4. 软件体系结构描述语言;
  5. 软件体系结构基础理论;
  6. 软件体系结构求精方法研究
  7. 软件体系结构设计方法;
  8. 软件体系结构抽象模型;
  9. 实用软件体系结构
  10. 基于软件体系结构的软件开发方法。

10.软件体系结构研究派门之争

10.1 学院派
  1. 关注体系结构模型的解析与评估;
  2. 单个模型;
  3. 严格的建模符号;
  4. 强有力的分析技术;
  5. 专门目标的解决方案;
  6. 与实现无关
10.2 实用派
  1. 关注广泛范围内的开发问题;
  2. 多个模型集;
  3. 强调的是实践可行性而非精确性;
  4. 将体系结构看成是开发中的一幅蓝本;
  5. 通用目的的解决方案;
  6. 考虑实现

11. 软件体系结构研究的范畴

  1. ADL——体系结构描述语言;

  2. 体系结构的知识;

  3. 基于软件体系结构的软件开发环境和工具;

  4. 体系结构的形式化描述。

12. 软件体系结构研究存在的不足

  1. 缺乏统一的软件体系结构的概念,导致体系结构的研究范畴模糊.

  2. ADL繁多,缺乏统一的ADL的支持.

  3. 软件体系结构研究缺乏统一的理论模型支持.

  4. 尽管出现了多种标准规范或建议标准,但仍很难操作.

  5. 有关软件体系结构性质的研究尚不充分.

  6. 软件体系结构理论研究与环境支持不同步,导致体系结构应用上的困难.

  7. 缺乏有效的体系结构复用方案.

  8. 体系结构发现方法研究相对欠缺.

第二章 风格与模式

13. 软件体系结构最基本构件

组件与连接器是软件体系结构的两大构成部分;

组件是软件的组成单元,是软件功能的设计和承载体;

连接器是专门承担组件连接作用的部件,连接的本质是实现连接机制信息交换协议

13.1 组件
组件(构件,部件)
  • 组件是软件结构块单元,每个组件承担着一定的功能,如中断程序、设备驱动程序、过程、功能库、文件等;

  • 组件是模块、类、对象等相关功能的集合

  • 组件是封装的实体,一个组件至少有一个接口,接口是组件与外界连接的窗口。

组件的实现形式
  • 最简单的组件是基本的位、字节数、整数、实数、数组、队列等等,这类组件没有行为能力,只是表达数据;
  • 有行为能力的组件是各类的对象,因此,组件的实现形式就是对象,如用于界面设计的可视控件、输入/输出组件、OLE对象、DCOM/CORBA组件等;
  • 组件软化的硬件层有:时钟、中断控制、存储器管理、堆栈管理、I/O控制等;
  • 在基础控制描述层有:数组、结构、树、文件、对象、状态、函数库/包,模块等;
  • 在资源及管理调度层:注册表、DLL、ODBC、菜单、表单等;
  • 在系统结构模式层有:生成规则、黑板、域名服务、路由服务、浏览器、解释器、设计模式、框架等。
组件的分类
  • 根据组件的作用分类:

    • 负责系统运行管理的控制组件:

      • 如任务管理器、黑板系统中的黑板、网络中的路由服务等
    • 负责组件之间协作关系的协调组件;

      • 如:消息消息管理,中断控制,I/O控制等
    • 为其它组件提供服务功能的服务组件;

      • 如:中间件,DLL等
    • 负责安全检查和信息转接的信息控制组件;

      • 如:域名服务等,
    • 负责组件连接和转换功能的连接组件。

      • 如:解释器,浏览器等。
  • 根据组件的概念层次分类

    • 基础组件
    • 中层组件
    • 高层组件

  • 根据组件应用分类
    • 通用组件
    • 专用组件
组件的5个特性

接口特性、运行特性、远程服务特性、关联特性、动态特性

  • 接口特性——与其它组件通信

    • 完备性
    • 最小化
    • 正交性
    • 方便
    • 高效
  • 运行特性——完成组件的功能

    • 数据的采集、传送、存储、计算等
    • 调度:进程/线程的产生、撤消、通信、管理
    • 多任务并发处理,任务分配,并行计算
  • 远程服务特性——多线程

    • 接受网络上的多源请求
    • 服务代理
    • 信息交互
  • 关联特性——获取相关组件的地址信息

    • 实地址
    • 路由地址
    • IP地址
    • MAC地址
  • 动态特性

    • 组件的运行调度——资源分配、并行处理
    • 组件的生存期管理——进程的产生、撤消
13.2 连接器

​ 连接是组件之间建立和维护行为关联和信息传送的途径;

连接的两个要素
  • 连接机制——硬件是连接的物质基础

硬件层:中断、存储、栈、I/O、DMA等;

基础控制描述层:事件、流、文件等;

资源和管理层:进程、线程、同步、并发、消息、远程调用;

系统结构模式层:编译器、解释器、浏览器、中间件等。

  • 连接协议——信息交换规则

什么是协议?

一种成文的公约集,相互通信系统间的信息交换格式、能被收/发双方接受的传送信息内容的一组定义 。

连接之所在,协议亦所在

连接的5个特性
  1. 连接的方向性,如:发送、接收

  2. 连接的角色,如发送者,接收者,客户端,服务器

  3. 连接的触发,如电话提机,鼠标操作

  4. 连接的响应,被叫方的响应时间、方式、处理的实时性、并发的能力等。

  5. 连接的层次——连接是严格接层次进行的,如OSI模型

连接不匹配解决方案

​ 连接不匹配的原因有多方面的,如实现机制、协议、特性等。若A与B连接不匹配,可以考虑的措施有:

  1. 修改组件(改变A或B互相适应)
  2. 引入中间件(直接引入转换器;在外部建立信息交换表示、发布信息交换通用标准)
  3. 采用握手技术(在经常变动的系统中,识别和确认对方)
  4. 进行包装(代理技术)

14. 软件体系结构的风格

  1. 数据流风格——批处理、管道和过滤器
  2. 调用与返回风格——主/子程序、OOD、层次结构
  3. 独立组件风格——通信进程、事件隐式调用
  4. 虚拟机风格——解释器、规则基系统
  5. 以数据为中心风格——数据库系统、黑板系统、超文本系统
  6. 过程控制风格——过程控制、模拟器
  7. 客户-服务器风格
  8. C2风格——基于消息广播且面向图形用户界面的Chiron2风格
  9. 异构风格——不同的风格构成

15. 数据流风格——批处理、管道和过滤器

​ 比较有代表性的是批作业序列风格、管道/过滤器风格——在操作系统中可见。如:dir | sort

操作系统中可以找到非常明显的数据流,处理过程通常在数据流的路线上“自顶向下、逐步求精”,并且,处理过程依赖于执行过程,而不是数据到来的顺序;

每个组件都有一组输入和输出,组件读输入的数据流,经过内部处理,然后产生输出数据流

管道本质是多进程共享文件,有两个描述符:

管道长度通常受限,因此

  • 空间足够,数据写入后返回
  • 空间不够,将能容纳的部分写入,其余阻塞等待空余再写入
  • 读取管道只判断管道是否为空

管道链接相邻的过滤器,过滤器具有数据处理功能

  • 过滤器从管道读取,再输出到管道
过程
  1. 把系统任务分成几个独立的处理阶段,前一阶段的输出是后一阶段的输入,所有阶段用数据流连接起来;
  2. 定义沿着管道传输的数据格式;
  3. 定义管道的连接;
  4. 设计和实现过滤器
  5. 设计出错处理策略
  6. 建立处理流水线——根据识别车牌的用途
特性
  • 每一过滤器都是独立的整体,相互之间互不影响;

  • 每一过滤器只关心输入的数据、数据处理和数据的输出;

  • 结果的正确性依赖于每级过滤器处理的结果。

优点
  1. 使得组件具有良好的隐蔽性和高内聚、低耦合的特点;

  2. 允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成;

  3. 支持软件复用。

  4. 系统维护和增强系统性能简单。新的过滤器可以添加到现有系统中来;旧的可以被改进的过滤器替换掉;

  5. 支持并行执行。每个过滤器是作为一个单独的任务完成,因此可与其它任务并行执行。这比下面将要阐述的一种“主-子程序风格”的单线程操作要灵活得多。

  6. 具有清晰的拓扑结构,便于系统性能分析。

弱点
  1. 通常导致进程成为批处理的结构。这是因为虽然过滤器可增量式地处理数据,但它们是独立的,所以设计者必须将每个过滤器看成一个完整的从输入到输出的转换。

  2. 不适合处理交互的应用。当需要增量地显示改变时,这个问题尤为严重。

  3. 系统开销大,复杂度高。因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。

  4. 共享信息代价高,不灵活

  5. 不同层次难以并行处理

16. Windows架构

Windows系统是分层的架构,主要分为内核模式用户模式:

  • 内核模式自下而上分为硬件抽象层(HAL)-> 内核和驱动层 -> 执行体,以及窗口管理系统。

  • 用户模式主要是NTDLL抽象层,以及各种进程,如:底层的系统支持进程 -> 服务进程 -> 用户应用程序。

硬件抽象层(HAK)
  1. 位于操作系统 内核与硬件电路之间的接口层,其目的在于将硬件抽象化;

  2. 隐藏了特定平台的硬件接口细节;为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。

  3. 从软硬件测试的角度来看,软硬件的测试工作都可分别基于硬件抽象层来完成,使得软硬件测试工作的并行进行成为可能。

  4. Windows内部组件以及用户编写的驱动程序通过hal.dll访问硬件。

设备及文件系统驱动程序

运行在内核模式下,主要为发起I/O请求的用户线程中,设备驱动程序主要分为以下几种:

  1. 硬件设备驱动程序

  2. 文件系统驱动程序

  3. 文件系统过滤驱动程序

  4. 网络重定向器和服务器

  5. 协议驱动程序

  6. 内核流式驱动程序

内核

Ntoskrnl.exe :是 Windows 操作系统的一个重要内核程序文件,里面存储了大量的二进制内核代码,用于调度系统。在系统经过预启动和启动阶段后进入内核调用阶段时由 Ntldr 调用 ntoskrnl.exe

svchost.exe:是微软Windows操作系统中的系统文件,微软官方对它的解释是:svchost.exe 是从动态链接库 (DLL) 中运行的服务的通用主机进程名称。这个程序对系统的正常运行是非常重要,而且是不能被结束的。许多服务通过注入到该程序中启动,所以会有多个该文件的进程。

NTLDR:是一个隐藏的,只读的系统文件,位置在系统盘的根目录,用来装载操作系统

WOW64: windows on windows

内核补丁保护 :( 英语:Kernel Patch Protection ) ,俗名PatchGuard,是 Microsoft Windows 64位( x64 )版本中预防对 内核 进行修补的一种特性。 该特性2005年在 Windows XP 与 Windows Server 2003 Service Pack 1的64位版本中首次推出。

Windows执行体

Windows执行体是Ntoskrnl.exe的上层(其下层是内核),包含了基本的操作系统服务,比如内存管理、进程和线程管理、安全性、I/O、网络和跨进程通信等。主要包含以下组件:

  1. 配置管理器—注册
  2. 进程和线程管理器——创建和撤消
  3. 安全应用监视器——安全策略
  4. I/O管理器:——设备无关的I/O
  5. 即插即用(pnp)管理器——确定驱动,加载驱动。
  6. 电源管理器——降低电源电耗。
  7. WDM Windows管理规范例程——接受来自用户的WMI服务命令。
  8. 高速缓存管理器——I/O操作的性能
  9. 内存管理器——虚拟内存
  10. 逻辑预取器——加速系统和进程启动过程
Ntdll.dll

Ntdll.dll是一个特殊系统支持库主要用于子系统dll,主要包含两种类型函数:

  1. 系统服务分发存根(stub),在用户模式下调用Windows执行体系统服务。

  2. 内部支持函数,供子系统、子系统dllexe映像文件使用

Ntdll.dll里面提供的函数大多未文档化,并以Nt开头命名。

系统进程
  1. Idle进程(特殊进程,其实是CPU空闲时间)
  2. System进程(特殊进程,包含大多数内核模式系统进程)
  3. 会话管理器(Smss.exe)
  4. 本地会话管理器(Lsm.exe)
  5. 会话初始化(Wininit.exe)
  6. 登录进程(Winlogon.exe)
  7. 服务控制管理器(Services.exe)
  8. 本地安全认证服务器(Lsass.exe)
服务进程

​ Service进程是由SCM启动的,它们与user logon是独立的,因为有些service的启动时机比winlogon.exe还早。

​ Task Scheduler和Print Spooler都是services。

应用进程

就是应用程序运行

环境子系统

​ 环境子系统就是针对Windows不同版本(如:Windows 7 旗舰版,Windows Server2008 R2这种)上的运行环境。每个exe可执行映像,未必可在所有版本Windows系统上运行。

​ VC++中link命令的/SUBSYSTEM修饰符可以指定该exe映像的可执行环境(如:dll集)。

​ 环境子系统进程Csrss.exe(Client/Server Run-Time Subsystem)就是客户机/服务器运行时子系统,子系统由会话管理器(Session Manager)(Smss.exe)进程启动。

17. Linux架构

内核结构体系(Kernal Space)
  1. **Arch目录:存放处理器相关的代码。**下设子目录,分别对应具体的CPU,每个子目录有boot,mm,以及kernel三个子目录,分别对应系统引导以及存储管理,和系统调用

  2. **Include目录:内核所需要的大部分头文件目录。**与平台无关的在include/linux子目录下,与平台相关的则放在include相应的子目录中。

  3. fs目录:存放各种文件系统的实现代码。

  4. init目录:init子目录包含核心的初始化代码(不是系统的引导代码)。其包含两个文件main.c和version.c,可以用来研究核心如何工作。

  5. ipc目录:包含核心进程间的通信代码。

  6. **kernel目录:包含内核管理的核心代码。**与硬件相关代码放在arch/*/kernel目录下。

  7. **mm目录:包含了所有的内存管理代码。**与硬件相关的内存管理代码位于arch/*/mm目录下。

  8. scripts目录:包含用于配置核心的脚本文件。

  9. **lib目录:包含了核心的库代码,**与硬件相关的库代码被放在arch/*/lib/目录下

由下往上分别(不能缩写! 顺序不能写错):

  • Arch
  • Device Drivers(DD) 设备驱动程序
  • Memory Management(MM) 内存管理
  • Network Stack 网络堆栈
  • Process Management(PM) 流程管理
  • Virtual File System(VFS) 虚拟文件系统
  • System Call Interface(SCI) 系统调用接口

Linux layers

  1. User space interfaces

  2. Virtual

  3. Bridges

  4. Logical

  5. Device control

  6. hardware interfaces

  7. Electronics

Linux Function

  1. Human interface
  2. System
  3. Processing
  4. Memory
  5. Storage
  6. Networking

18. Harmony架构

面向未来的操作系统:分布式、物联网、微内核

操作系统层面解决设备间的有效协同

  • 在操作系统层面统一物联网设备的通信接口,为用户提供统一使用体验,为开发者提供统一开发方案
  • 在设备通信层面,打通物联网之间的桥梁,构建多设备的统一体,方便进行数据和指令的互通
  • 在应用程序层面,实现在多个物联网设备上进行应用协同
18.1 设计理念
微内核

​ 微内核具有高稳定性、高安全性、高可维护性和高实时性。由于轻便的内核设计使得系统保持低功耗低内存占用,因此鸿蒙操作系统选择了微内核。

​ 当然也存在一些缺点:最为主要的就是性能较低,因为许多重要且常用的系统组件被移出内核,但这些组件又需要内核IPC的支持,所以没有变成主流。

​ 但是鸿蒙操作系统采用了==确定时延引擎和高性能 IPC==两大技术弥补了微内核低性能的缺陷。确定时延引擎可以为请求 IPC 调度的系统组件设置优先级,优先调度用户界面更新等重要功能组件,从而提高系统的实时性和流畅度。

确定时延引擎具备==优先调度、优先级矫正、预留服务==三项技术。

全场景

华为提出8+1+N

1 代表了手机

8 代表了 8 种常用设备(PC、平板、智慧屏、音箱、眼镜、手表、车机、耳机)

N 代表了更加广泛的物联网设备

通过鸿蒙操作系统,有机的结合在一起,形成统一的超级智能终端实现软件的伸缩和硬件的伸缩

全场景操作系统的优势就是可以利用其分布式的特征整合硬件资源。例如,在一个区域内,如家庭中,实现分布式任务调度、分布式数据管理等。

全场景操作系统利用其分布式特征进行硬件资源整合,实现分布式任务调度、分布式数据管理

跨地区的物联网设备也能形成集群提供统一服务。在物联网技术的推动下,鸿蒙操作系统可以实现跨设备的无缝协同一次开发多端部署的要求。

分布式

鸿蒙操作系统从底层就具备了分布式操作系统的特性,包括:

  1. 分布式软总线
  2. 分布式设备虚拟化
  3. 分布式数据管理
  4. 分布式任务调度等关键技术。
架构图

  1. 组播源发现协议(Multicast Source Discovery Protocol);多播源发现协议;实现组播源发现协议

  2. DFX是一个媒体播放器专用的音效Plug-In外挂软件,对MP3声音文件纠错、分析频率、和声背景音复原,立体声增强分布,3D 环绕,重低音增强等功效。

  3. HarmonyOS提供了三种Ability,分别可以基于Page模板、Service模板、Data模板三种模板来方便的构建这三种能力;

18.2 对比

19. 应用软件体系结构

三个阶段:

单体(all in one)—> SOA(单体垂直拆分,将重复功能抽离为组件)—> 微服务(SOA基础上水平拆分,将一切组件化、服务化)

单体架构

单体架构就是把所有的业务逻辑和控制逻辑全部都放在了一起(All in one)。如 ERP

SOA架构

​ 单体架构垂直拆分演变出了SOA( Service-Oriented Architecture),将重复功能或模块抽取成组件的形式,对外提供服务,在项目与服务之间使用**ESB(企业服务总线)**的形式作为通信的桥梁。

微服务架构

​ 微服务架构(Microservice Architecture)是一种架构概念,主要作用是将功能分解到离散的各个服务当中,从而降低系统的耦合性,并提供更加灵活的服务支持

​ 如果不仅按照垂直方向拆分,同时也按照水平方向进行进一步拆分,那也就是微服务的架构模式了,微服务架构强调的一个重点是“业务需要彻底的组件化和服务化”,

这篇关于软件体系结构【复习】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/733269

相关文章

【408数据结构】散列 (哈希)知识点集合复习考点题目

苏泽  “弃工从研”的路上很孤独,于是我记下了些许笔记相伴,希望能够帮助到大家    知识点 1. 散列查找 散列查找是一种高效的查找方法,它通过散列函数将关键字映射到数组的一个位置,从而实现快速查找。这种方法的时间复杂度平均为(

计算机基础知识复习9.6

点对点链路:两个相邻节点通过一个链路相连,没有第三者 应用:PPP协议,常用于广域网 广播式链路:所有主机共享通信介质 应用:早期的总线以太网,无线局域网,常用于局域网 典型拓扑结构:总线型 星型(逻辑总线型) 介质访问控制  静态划分信道 信道划分介质访问控制 频分多路复用FDM 时分多路复用TDM 波分多路复用WDM 码分多路复用CDM 动态分配信道 轮询访问介质访问控

【抽代复习笔记】28-群(二十二):四道子群例题

例1:证明,循环群的子群是循环群。 证:设G = (a),H ≤ G。 (1)若H = {e},则H是一阶循环群; (2)设H至少包含2个元素,即设H = {...,a^(-k),a^(-j),a^(-i),a^0,a^i,a^j,a^k,...}, 其中a^i是H中正指数最小的元素,0<i<j<k, 下证a^i是H的生成元: 对任意的a^t∈H(t∈Z),存在q∈Z,使得t = qi

西方社会学理论教程复习重点

一.名词解释 1.社会静力学:旨在揭示人类社会的基本秩序。它从社会的横断面,静态的考察人类社会的结构和制度,寻找确立和维护人类社会的共存和秩序的原则。 2.社会动力学:纵观人类理性和人类社会发展的先后必要阶段,所叙述的是这一基本秩序在达到实证主义这一最终阶段之前所经过的曲折历程。 3.社会事实:一切行为方式,不论它是固定的还是不固定的,凡是能从外部给予个人以约束的,或者说是普遍存在于该社会各

完整版自考西方文论选复习笔记资料

西方文论选读复习资料 1.柏拉图:古希腊哲学家,苏格拉底的学生。公园前387年在雅典城外建立学园开始授徒讲学,撰写对话。柏拉图的作品即《柏拉图文艺对话集》中讨论美学和文艺理论问题较多的有:《大希庇阿斯》、《伊安》、《高吉阿斯》、《会饮》、《斐德若》、《理想国》、《斐利布斯》、《法律》等。 ▲柏拉图《伊安》和《斐若德》内容:主要阐述了"迷狂说"和"灵魂回忆说":柏拉图认为,高明的诗人都是凭灵

ia复习笔记

HCIA 常用配置以及快捷键:! 查看时间:display clock;修改时间:clock datetime 11:11:11 2023-1-1 查看设备当前的配置:display current-configuration;查看已保存的配置:display saved-configuration;保存配置:save;查看历史的十条命令:display history-command;

android kotlin复习 Anonymous function 匿名函数

1、还是先上个图,新建kt: 2、代码: package com.jstonesoft.myapplication.testfun main(){val count = "helloworld".count()println(count);println("------------------------")var count2 = "helloworld".count(){it ==

C++复习day05

类和对象 1. 面向对象和面向过程的区别是什么?(开放性问题) 1. **抽象级别**:- **面向对象**:以对象(数据和方法的集合)为中心,强调的是数据和行为的封装。- **面向过程**:以过程(函数或子程序)为中心,强调的是步骤和顺序。2. **数据和方法的关系**:- **面向对象**:数据和处理数据的方法封装在对象中,对象可以包含数据和操作数据的方法。- **面向过程**:数据和处理

java复习第十课,方法的本质,形参和实参(很重要)

java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,声明格式: 修饰符[public]  修饰符2[static]  返回值类型[int、String等]  方法名 (形参列表){ java语句列表..... } 形式参数:在方法被调用时用于接受外界输入的数据 实参:调用方法时实际传递给方法的数据 返回值:方法在执行完毕后返还给调用它的环境的数据 返回值类型:事先约

java复习第九课,break和continue语句

break:终止整个循环。在任何循环语句的主题部分,均可用break控制循环流程。break用于强行推出循环,不执行循环剩下的语句。 比如:当我循环打印1到10的数字,在数字8后加break,遇到break语句后,强行跳出循环体,不在往下执行。 continue:终止当次循环,执行下一次。语句用在循环语句体重,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环