1.云原生技术原理,并指出云原生技术的主要架构模式有哪些?
云原生架构是基于云原生技术的一组架构原则和设计模式的集合,旨在将云应用中非业务代码部分进行最大化的剥离,从而让云设施接管应用中原有的大量非功能特性(如弹性、韧性、安全、可观测性、灰度等),使业务不再有非功能特性业务中断困扰的同时,具备轻量、敏捷、高度自动化特点。
主要架构模式
1.1 服务化架构模式:典型模式是微服务和小服务模式。通过服务化架构,把代码模块关系和部署关系进行分离,每个接口可以部署不同数量的实例,单独扩容,从而使得整体的部署更经济。
1.2 Mesh化架构模式:把中间件框架(如RPC、缓存、异步消息等)从业务进程中分离,让中间件SDK与业务代码进一步解耦,从而使得中间件升级对业务进程没有影响,甚至迁移到另一个平台的中间件也对业务透明。分离后在业务进程中只保留很”薄“的Client部分,Client通常很少变化,只负责与Mesh进程通信,原来需要在SDK中处理的流量控制、安全等逻辑由Mesh进程完成。
1.3.Serverless 模式:将“部署”这个动作从运维中“收走”,使开发者不用关心应用运行地点、操作系统、网络配置、CPU性能等。从架构抽象上看,当业务流量到来/业务事件发生时,云会启动或调度一个已启动的业务进程进行处理,处理完成后云自动会关闭/调度业务进程,等待下一次触发,也就是把应用的整个运行都委托给云。
1.4 存储计算分离模式:在云环境中,推荐把各类暂态数据(如Session)、结构化与非结构化持久数据都采用云服务来保存,从而实现存储计算分离。
1.5 分布式事务模式:大颗粒度的业务需要访问多个微服务,必然带来分布式事务的问题,否则数据就会出现不一致。架构师需要根据不同的场景选择合适的分布式事务模式。
1.6 可观测架构:可观测架构包括Logging、Tracing、Metrics 三个方面,其中Logging提供多个级别的详细信息跟踪,由应用开发者主动提供;Tracing提供一个请求从前端到后端的完整调用链路跟踪,对于分布式场景尤其有用;Metrics则提供对系统量化的多维度度量。
1.7 事件驱动架构:本质上是一种应用/组件间的集成架构模式。可用于服务解耦、增强服务韧性、数据变化通知等场景中。
2.请从交互方式、数据结构、控制结构和扩展方法4个方面对两种架构风格(管道-过滤器、数据仓储)进行比较。
2.1 交互方式:管道过滤器的构件是顺序交互,前一个构件的输出是后一个构件的输入;数据仓库是星型交互,构件都和一个共享数据库进行交互。因此数据仓库风格更加灵活。
2.2 数据结构:管道过滤器是基于数据流结构的,构件之间传递数据结构可能是结构体等常规数据结构;而数据仓库是基于数据库结构的,构件之间传递数据是基于关系数据库。因此数据仓库风格会更加实用。
2.3 控制结构:管道过滤器是数据流顺序传递,数据仓库是面向应用,由业务功能驱动,因此更加灵活。
2.4 扩展方法:管道过滤器因为是顺序结构,通过接口适配扩展;数据仓库可以直接通过数据库内增加数据,通过模型适配,更加灵活。
3.鸿蒙操作系统层次架构图

4.请列举出鸿蒙操作系统的四个技术特性
4.1 分布式架构首次用于终端OS,实现跨终端无缝协同体验。
4.2 确定时延引擎和高性能IPC技术实现系统天生流畅。
4.3 基于微内核架构重塑终端设备可信安全。
4.4 通过统一IDE支撑一次开发,多端部署,实现跨终端生态共享。
5.在HarmonyOS架构中,重点关注于分布式架构所带来的优势,主要体现在哪四个方面,以及其分别含义是什么?
5.1 分布式软总线:分布式软总线是多种终端设备的统一基座,为设备之间的互连互通提供了统一的分布式通信能力,能够快速发现并连接设备,高效地分发任务和传输数据。
5.2 分布式设备虚拟化:分布式设备虚拟化平台可以实现不同设备的资源融合、设备管理、数据处理,多种设备共同形成一个超级虚拟终端。针对不同类型的任务,为用户匹配并选择能力合适的执行硬件,让业务连续地在不同设备间流转,充分发挥不同设备的资源优势。
5.3 分布式数据管理:分布式数据管理基于分布式软总线的能力,实现应用程序数据和用户数据的分布式管理。用户数据不再与单一物理设备绑定,业务逻辑与数据存储分离,应用跨设备运行时数据无缝衔接,为打造一致、流畅的用户体验创造了基础条件。
5.4分布式任务调度:分布式任务调度构建统一的分布式服务管理(发现、同步、注册、调用)机制,支持对跨设备的应用进行远程启动、远程调用、远程连接以及迁移等操作,能够根据不同设备的能力、位置、业务运行状态、资源使用情况,以及用户的习惯和意图,选择合适的设备运行分布式任务。
6.质量属性
6.1 性能:指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理的事件的个数。如响应时间、吞吐量。
设计策略: 优先级队列、增加计算资源、减少计算开销、引入并发机制、采用资源调度等。
6.2 可靠性:是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力。如MTTF、 MTBF、MTTR。
设计策略:心跳、Ping/Echo、 冗余、选举。
6.3 可用性:是系统能够正常运行的时间比例,经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。如故障间隔时间。
设计策略:心跳、Ping/Echo、 冗余、选举。
6.4 安全性:是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。如保密性、完整性、不可抵赖性、可控性。
设计策略:入侵检测、用户认证、用户授权、追踪审计。
6.5 可修改性:指能够快速的以较高的性能价格比对系统进行变更的能力。通常以某些具体的变更为基准,通过考察这些变更的代价衡量。
设计策略:接口-实现分类、抽象、信息隐藏。
6.6 功能性:是系统所能完成所期望的工作的能力。一项任务的完成需要系统中许多或大多数构件的相互协作。
6.7 可变性:指体系结构经扩充或变更而成为新体系结构的能力。这种新体系结构应该符合预先定义的规则,在某些具体方面不同于原有的体系结构。当要将某个体系结构作为一系列相关产品的基础时,可变性是很重要的。
6.8 互操作性:作为系统组成部分的软件不是独立存在的,经常与其他系统或自身环境相互作用。为了支持互操作性,软件体系结构必须为外部可视的功能特性和数据结构提供精心设计的软件入口。程序和用其他编程语言编写的软件系统的交互作用就是互操作性的问题,也影响应用的软件体系结构。
7.质量属性场景
7.1 刺激源(Source): 这是某个生成该刺激的实体(人、计算机系统或者任何其他刺激器)。
7.2 刺激(Stimulus):该刺激是当刺激到达系统时需要考虑的条件。
7.3 环境(Environment):该刺激在某些条件内发生。当激励发生时,系统可能处于过载、运行或者其他情况。
7.4 制品(Artifact):某个制品被激励。这可能是整个系统,也可能是系统的一部分。
7.5 响应(Response):该响应是在激励到达后所采取的行动。
7.6 响应度量(Measurement):当响应发生时,应当能够以某种方式对其进行度量,以对需求进行测试。
8.什么是分层数据流图中父图与子图的平衡?如何保持
父图与子图之间平衡是指任何一张DFD子图边界上的输入/输出数据流必须与其父图对应加工的输入/输出数据流保持一致。
父图中某个加工的一条数据流对应子图中的几条数据流而子图中组成的这些数据流的数据项全体正好等于父图中的这条数据流,那么它们仍然是平衡。
9.在面向对象软件分析过程中,状态机图和活动图用于建立软件的动态模型,主要描述系统随时间变化的行为,请分别阐述这两种图的概念和特点。
9.1 状态图用来描述对象状态和事件之间的关系,强调一个实体基于事件反应的动态行为。状态图适合用于表述在不同用例之间的对象行为。
9.2 活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现系统的行为,强调了行为活动的顺序和条件控制。活动图是由状态图变化而来的,他们各自用于不同的目的。活动图依据对象状态的变化来捕获动作(将要执行的工作或活动)与动作的结果。活动图中一个活动结束后立即进入下一个活动(在状态图中,状态的变迁可能需要事件的触发)。
10.用300字说明RUP中9个核心工作流的主要作用。
RUP软件开发生命周期是一个二维的软件开发模型,RUP 中有9个核心工作流,这9个核心工作流如下。
10.1 业务建模: 理解待开发系统所在的机构及其商业运作,确保所有参与人员对待开发系统所在的机构有共同的认识,评估待开发系统对所在机构的影响。
10.2 需求: 定义系统功能及用户界面,使客户知道系统的功能,使开发人员理解系统的需求,为项目预算及计划提供基础。
10.3 分析与设计:把需求分析的结果转化为分析与设计模型。
10.3 实现:把设计模型转换为实现结果,对开发的代码做单元测试,将不同实现人员开发的模块集成为可执行系统。
10.4 测试:检查各子系统之间的交互、集成,验证所有需求是否均被正确实现,对发现的软件质量上的缺陷进行归档,对软件质量提出改进建议。
10.5 部署:打包、分发、安装软件,升级旧系统;培训用户及销售人员,并提供技术支持。
10.6 配置与变更管理:跟踪并维护系统开发过程中产生的所有制品的完整性和一致性。
10.7 项目管理:为软件开发项目提供计划、人员分配、执行、监控等方面的指导,为风险管理提供框架。
10.8 环境: 为软件开发机构提供软件开发环境,即提供过程管理和工具的支持。
11. 敏感点与权衡点
敏感点和权衡点是关键的架构决策。
11.1 敏感点是一个或多个构件(和/或构件之间的关系)的特性。研究敏感点可使设计人员或分析员明确在搞清楚如何实现质量目标时应注意什么。
11.2 权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。例如,改变加密级别可能会对安全性和性能产生非常重要的影响。提高加密级别可以提高安全性,但可能要耗费更多的处理时间,影响系统性能。如果某个机密消息的处理有严格的时间延迟要求,则加密级别可能就会成为一个权衡点。
12.目前架构评估方法主要有SAAM与ATAM,请说明使用这两种方法进行架构评估的步骤或阶段。
12.1 SAAM分析评估体系结构包括五个步骤:场景开发、架构描述、单个场景评估、 场景交互和总体评估。
12.2 ATAM分为九个步骤:描述ATAM方法、描述业务动机、描述体系结构、确定体系结构方法、生成质量属性效用树、分析体系结构方法、讨论和分级场景、分析体系结构方法、描述评估结果。
13. NoSQL数据的基本特点
13.1 优点:
- NoSQL数据库支持高并发数据访问,性能较高。
- NoSQL数据库的数据存储结构松散,能够灵活支持多种类型的数据格式。
- NoSQL数据库能够支持海量数据的存储,且易于横向扩展。
- NoSQL数据库基于分布式数据存储,不存在单点故障和性能瓶颈,系统可用性高。
13.2 缺点 :
- 数据模型和查询语言没有经过数学验证。不支持ACID特性等。