当前位置: 首页 > news >正文

2025系统架构师(一考就过):案例之五:典型架构、架构演化、人工智能、云计算、大数据

在这里插入图片描述
在这里插入图片描述

六、中间件技术、典型架构

◆中间件:在一个分布式系统环境中处于操作系统和应用程序之间的软件,可以在不同的技术之间共享资源,将不同的操作系统、数据库、异构的网络环境以及若干应用结合成一个有机的协同工作整体。
◆中间件位于客户机/服务器的操作系统之上,管理计算机资源和网络通信,有如下特点
(1)中间件是一类软件,而非一种软件:
(2)中间件不仅仅实现互连,还要实现应用之间的互操作
(3)中间件是基于分布式处理的软件,最突出的特点是其网络通信功能

◆中间件的任务是使应用程序开发变得更容易,通过提供统一的程序抽象,隐藏异构系统和分布式系统下低级别编程的复杂度。

主要的中间件有五类:
数据库访问中间件: 通过一个抽象层访问数据库,从而允许使用相同或相似的代码访问不同的数据库资源**。典型的技术如Windows平台的ODBC和Iava平台的JDBC等。
◆ 远程过程调用(RPC): 是一种广泛使用的分布式应用程序处理方法**。一个应用程序使用RPC来“远程”执行一个位于不同地址空间内的过程,从效果上看和执行本地调用相同。(远程过程调用:在一台电脑上调用另一台电脑/服务器上的服务、软件等)
◆面向消息中间件(MOM):利用高效可靠的消息传递机制进行平台无关的数据交流,并可基于数据通信进行分布系统的集成。通过提供消息传递和消息排队模型,可在分布环境下扩展进程间的通信,并支持多种通信协议、语言、应用程序、硬件和软件平台。典型的产品如IBM的MaSeries。
分布式对象中间件:随着对象技术与分布式计算技术的发展,,两者相互结合形成了分布式对象技术,并发展成为当今软件技术的主流方向。典型的产品如OMG的CORBA、Sun的RMI/EJB、Microsoft的DCOM等。
事务中间件:也称事务处理监控器(TPM)最早出现在大型机上。事务处理监控程序位于客户和服务器之间,完成事务管理与协调、负载平衡、失效恢复等任务,提高系统的整体性能。

典型架构:

J2EE核心技术
◆J2EE平台采用了多层分布式应用程序模型,实现不同逻辑功能的应用程序被封装到不同的构件中,处于不同层次的构件被分别部署到不同的机器中。
四层结构:

客户层组件:J2EE应用程序可以是基于web方式的,也可以是基于传统方式的静态的HTML(标准通用标记语言下的一个应用)页面和Applets是客户层组件
web 层组件:J2EEweb层组件可以是JSP 页面或Servlet.
业务层组件:业务层代码的逻辑用来满足特定领域的业务逻辑处理。
信息系统层:企业信息系统层处理企业信息系统软件包括企业基础建设系统例如企业资源计划(ERP),大型机事务处理,数据库系统,和其它的遗留信息系统.例如,J2EE应用组件可能为了数据库连接需要访问企业信息系统。

在这里插入图片描述

JSP+Servlet+JavaBean+DAO
◆JSP:用于显示、收集数据的部分。作为MVC中的视图V。
◆Servlet:作为业务逻辑层,用于处理复杂的业务逻辑,如验证数据、实例化avaBean、调用DAO连接数据库等。作为MVC中的控制器C。在其中会调用Service方法处理服务。
◆JavaBean:用于数据的封装,方便将査询结果在servlet与jsp页面之间进行传递等。
◆DAO:用于连接数据库及进行数据库的操作如:查询、删除、更改等。
DAO与JavaBean合在一起为MVC中的模型M。

◆基本流程:JSP发一个数据到servlet,servlet收到后做下解析再根据数据调用相应的service服务,service如果有要调用数据库就通过DAO跟数据库交互,使用iavaBean完成封装,返回结果给servlet,servlet再返口给JSP.
重量级与轻量级之争
◆重量级框架占用资源过多,在开发的过程中效率很低;大部分时间花在配置、运行的过程上,修改复杂;单元测试也比较麻烦。但在大量运行过程中会表现出优异的效果,也即开发麻烦,运行性能高。
◆轻量级框架提高了开发的速度;立即可以看到结果;做单元测试非常简单;大量线程可供参考的开源代码。开发简单,但运行性能低。

◆**.NET平台**
.NET框架处于操作系统和.NET应用语言之间,只适用于微软系统,而J2EE支持跨平台,任何安装了JVM的平台。
◆**.NET和J2EE之争**
1、JVM(将所有JAVA代码都编译为字节码,由JVM解释执行)和CLR(.NET核心技术,类似于JVM生成中间代码CLR,编译执行)。
2、对多层分布式应用的支持,二者都支持多层分布式应用程序的开发:在表示层的平台支持上,J2EE客户端支持多个平台,.NET只能在微软系统上运行,也正是因此,.NET会对微软系统上的应用进行优化;在业务层,J2EE占优势,因为有许多开源的项目和代码供参考,开发就变得简单:
在数据层,二者都支持多种数据库,都非常优秀。
3、安全性,由于JAVA在.NET之后出来,借鉴了.NET优点,JAVA在运行时动态验证,.NET是静态全面验证,二者都非常优秀,不分上下。
4、应用程序的部署,J2EE的部署相对来说较复杂,针对不同的系统要特别布置。
5、可移植性,显然J2EE占优势,一次开发,到处运行。
6、外部支持:J2EE占优势,得到了很多厂家的支持,.NET只是微软一家。

七、软件架构的演化和维护

1、定义

◆软件架构的演化和维护就是对架构进行修改和完善的过程,目的就是为了使软件能够适应环境的变化而进行的纠错性修改和完善性修改等,是一个不断迭代的过程,直至满足用户需求。
◆本质上讲,软件架构的演化就是软件整体结构的演化,演化过程涵盖软件架构的全生命周期,包括软件架构需求的获取、软件架构建模、软件架构文档、软件架构实现以及软件架构维护等阶段。
◆软件架构演化的重要性体现在:
一是架构是整个系统的骨架,是软件系统具备诸多好的特性的保障;
二是软件架构作为软件蓝图为人们宏观管控软件系统的整体复杂性和变化性提供了一条有效途径。
◆软件架构的演化能降低软件演化的成本的原因:
(1)对系统的软件架构进行的形式化、可视化表示提高了软件的可构造性,便于软件演化。
(2)软件架构设计方案涵盖的整体结构信息、配置信息、约束信息等有助于开发人员充分考虑未来可能出现的演化问题、演化情况和演化环境。
(3)架构设计时对系统组件之间的耦合描述有助于软件系统的动态调整。

◆软件架构的定义包含组件、连接件、约束三大要素,这类软件架构演化主要关注的就是这三者之间的添加、修改和删除等。

2、面向对象软件架构演化

对象演化:在顺序图中,组件的实体是对象,会对架构设计的动态行为产生影响的演化只包括AddObject(AO)和DeleteObject(DO)两种。
◆AO 表示在顺序图中添加一个新的对象。这种演化一般是在
系统需要添加新的对象
来实现某种新的功能,或需要将现有对象的某个功能独立以增加架构灵活性的时候发生。
DO 删除顺序图中现有的一个对象。这种演化一般在系统需要移除某个现有的功能,或需要合并某些对象及其功能来降低架构的复杂度的时候发生。
◆消息演化:将消息演化分为 AddMessage(AM)、DeleteMessage(DM)、SwapMessageOrder(SMO)、OverturnMessage(OM)、ChangeMessageModule(CMM)5种。
AM 增添一条新的消息
, 产生在对象之间需要增加新的交互行为的时候。**DM 删除当前的一条消息,**产生在需要移除某个交互行为的时候,是AM 的逆向演化。SMO 交换两条消息的时间顺序,发生在需要改变两个交互行为之间关系的时候。OM 反转消息的发送对象与接收对象,发生在需要修改某个交互行为本身的时候。CMM 改变消息的发送或接收对象,发生在需要修改某个交互行为本身的时候。

复合片段演化:复合片段是对象交互关系的控制流描述,表示可能发生在不同场合的交互,与消息同属于连接件范畴。复合片段的演化分为AddFragment(AF)、DeleteFragment(DF)、FragmentTypeChange(FTC)和FragmentConditionChange(FCC)。
FCC 改变复合片段内部执行的条件,发生在改变当前控制流的执行条件时。自动机中与控制流执一个是符合条件时的转移,另一个是不符合条件时的转移,因此每次发生FFC 演化时会同时修改这两个转移的触发事件。
AF 在某几条消息上新增复合片段,发生在需要增添新的控制流时。复合片段所产生的分支是不同类型的。
DF 删除某个现有的复合片段,发生在需要移除当前某段控制流时。DF 与AF 互为逆向演化过程。
FTC 改变复合片段的类型,发生在需要改变某段控制流时。类型演化意味着交互流程的改变,一般伴随着条件、内部执行序列的同时演化,可以视为复合片段的删除与添加的组合。
◆约束演化:即直接对约束信息进行添加和删除。
AC(Add Constraint)直接添加新的约束信息,会对架构设计产生直接的影响,需要判断当前设计是否满足新添加的约束要求。
DC(Delete Constraint)直接移除某条约束信息
,发生在去除某些不必要条件的时候,一般而言架构设计均会满足演化后的约束。

3、软件架构演化方式的分类

按**软件架构的实现方式和实施粒度分类:**基于过程和函数的演化、面向对象的演化、基于组件的演化和基于架构的演化。

按照研究方法分类:对演化的支持(如代码模块化的准则、代码重构等)、版本和工程的管理工具、架构变换的形式方法、架构演化的成本收益分析

按照按照演化过程是否处于系统运行时期分类:静态演化和动态演化。

演化时期包括:设计时演化、运行前演化、有限制运行时演化、运行时演化。

◆软件架构静态演化主要是在设计时演化以及运行前演化。与此相对应的维护方法有3类: 更正性维护、适应性维护和完善性维护。
◆软件的静态演化一般包括如下5个步骤。

  • 软件理解:查阅软件文档,分析软件架构,识别系统组成元素及其之间的相互关系,提取系统的抽象表示形式。
  • 需求变更分析:静态演化往往是由于用户需求变化、系统运行出错和运行环境发生改变等原因所引起的,需要找出新的软件需求与原有的差异。
  • 演化计划:分析原系统,确定演化范围和成本,选择合适的演化计划。
  • 系统重构:根据演化计划对系统进行重构,使之适应当前的需求。
  • 系统测试:对演化后的系统进行测试,查找其中的错误和不足之处。

◆一次完整软件架构演化过程可以看作经过一系列原子演化操作组合而成。所谓原子演化操作是指基于UML模型表示的软件架构,在逻辑语义上粒度最小的架构修改操作。每经过一次原子演化操作架构会形成一个演化中间版本。
◆架构演化的可维护性度量基于组件图表示的软件架构,在较高层次上评估架构的某个原子修改操作对整个架构所产生的影响。这些原子修改操作包括增加/删除模块间的依赖、增加/删除模块间的接口、增加/删除模块、拆分/聚合块等。
◆架构演化的
可靠性评估
基于用例图、部署图和顺序图,分析在架构模块的交互过程中某个原子演化操作对交互场景的可靠程度的影响。这些原子修改操作包括增加/删除消息、增加/删除交互对象、增加/删除/修改消息片段、增加/ 删除用例执行、增加/删除角色等。
◆动态演化是在系统运行期间的演化,需要在不停止系统功能的情况下完成演化,较之静态演化更加困难。具体发生在有限制的运行时演化和运行时演化阶段。

◆架构的动态演化主要来自两类需求:
①软件内部执行所导致的体系结构改变,例如,许多服务器端软件会在客户请求到达时创建新的组件来响应用户需求;
②软件系统外部的请求对软件进行的重配置,例如,操作系统在升级时无须重新启动,在运行过程中就完成对体系结构的修改。
◆软件的动态性分为3个级别:
交互动态性,要求数据在固定的结构下动态交互;
结构动态性,允许对结构进行修改,通常的形式是组件和连接件实例的添加和删除,这种动态性是研究和应用的主流;
架构动态性,允许软件架构的基本构造的变动,即结构可以被重定义,如新的组件类型的定义。
◆根据所修改的内容不同,软件的动态演化主要包括以下4个方面

  • 属性改名:目前所有的ADL都支持对非功能属性的分析和规约,而在运行过程中,用户可能会对这些指标进行重新定义(如服务响应时间)
  • 行为变化:在运行过程中,用户需求变化或系统自身服务质量的调节都将引发软件行为的变化。
  • 拓扑结构改变:如增删组件,增删连接件,改变组件与连接件之间的关联关系等。
  • 风格变化:一般软件演化后其架构风格应当保持不变,如果非要改变软件的架构风格,也只能将架构风格变为其衍生风格,如两层C/S到三层C/S。

◆目前,实现软件架构动态演化的技术主要有两种:采用动态软件架构(DSA)和进行动态重配置(DR)。DSA 是指在运行时刻会发生变化的系统框架结构,允许在运行过程中通过框架结构的动态演化实现对架构的修改;DR从组件和连接件的配置入手,允许在运行过程中增删组件,增删连接件修改连接关系等操作。
◆实现软件架构动态演化的基本原理是使DSA 在可运行应用系统中以一类有状态、有行为、可操作的实体显式地表示出来,并且被整个运行环境共享,作为整个系统运行的依据。也就是说,运行时刻体系结构相关信息的改变可用来触发、驱动系统自身的动态调整。
◆系统必须提供SA动态演化的一些相关功能:保存当前软件架构信息的功能、设置监控机制监视系统有无需求变化、保证演化操作原子性。
◆DSA 实施动态演化大体遵循以下4 步:①捕捉并分析需求变化;②获取或生成体系结构演化策略
③根据步骤2 得到的演化策略,选择适当的演化策略并实施演化;④演化后的评估与检测
◆基于软件动态重配置的软件架构动态演化主要是指在软件部署之后对配置信息的修改,常常被用于系统动态升级时需要进行的配置信息修改。一般来说,动态重配置可能涉及的修改有:
①简单任务的相关实现修改; ②工作流实例任务的添加和删除;③组合任务流程中的个体修改;④任务输入来源的添加和删除;⑤任务输入来源的优先级修改;⑥组合任务输出目标的添加和删除;⑦组合任务输出目标的优先级修改等。
动态重配置模式:主从模式、中央控制模式、客户端/服务器模式、分布式控制模式。

4、软件架构演化评估方法

◆根据演化过程是否己知可将评估过程分为:演化过程已知的评估和演化过程未知的评估
◆演化过程己知的评估其目的在于通过对架构演化过程进行度量,比较架构内部结构上的差异以及由此导致的外部质量属性上的变化,对该演化过程中相关质量属性进行评估。

◆架构演化评估的执行过程如图所示。图中A0和An表示一次完整演化前后的相邻版本的软件架构。每经过一次原子演化,即可得到一个架构中间演化版本Ai。对每个中间版本架构进行度量,得到架构Ai的质量属性度量值Qi。D(i-1,i)是版本间的质量属性距离。

在这里插入图片描述

◆基于度量的架构演化评估方法,其基本思路在于通过对演化前后的软件架构进行度量,比较架构内部结构上的差异以及由此导致的外部质量属性上的变化。具体包括:架构修改影响分析、监控演化过程、分析关键演化过程。
◆当演化过程未知时,我们无法像演化过程已知时那样追踪架构在演化过程中的每一步变化,只能根据架构演化前后的度量结果逆向推测出架构发生了哪些改变,并分析这些改变与架构相关质量属性的关联关系。

在这里插入图片描述

5、大型网站架构演化

在这里插入图片描述

单体架构(左)、垂直架构(右)

主要解决大数据和高并发的问题:

第一阶段:单体架构:一个服务器承担所有任务。

第二阶段:垂直架构:每台服务器分别承担不同任务。

第三阶段:使用缓存改善网站性能
第四阶段:使用服务集群改善网站并发处理能力:增加服务器,增加高并发
第五阶段:数据库读写分离:解决大数据量
第六阶段:使用反向代理和CDN加速网站响应:增加高并发
第七阶段:使用分布式文件系统和分布式数据库系统
第八阶段:使用NoSQL和搜索引擎:针对并发
第九阶段:业务拆分
第十阶段:分布式服务

在这里插入图片描述

软件架构维护过程一般涉及架构知识管理、架构修改管理和架构版本管理。

架构知识=架构设计+架构设计决策。

架构修改管理:建立一个隔离区域保障该区域中任何修改对其他部分的影响比较小,甚至没有影响。

架构版本管理:软件架构演化的版本控制、使用和评级等提供可靠依据,为架构演化度量奠定基础。

八、软件可靠性管理、设计

软件可靠性模型是指为预计或估算软件的可靠性所建立的可靠性框图和数学模型。

影响软件可靠性的主要因素包括:运行环境、软件规模、软件内部结构、软件的开发方法和开发环境、软件的可靠性投入。

◆软件可靠性管理是软件工程管理的一部分,它以全面提高和保证软件可靠性为目标,以软件可靠性活动为主要对象,是把现代管理理论用于软件生命周期中的可靠性保障活动的一种管理形式。
◆软件可靠性管理的内容包括软件工程各个阶段的可靠性活动的目标、计划、进度、任务和修正措施等。可靠性各阶段设计任务如下:
◆需求分析阶段:确定可靠性目标、分析影响因素、确定验收标准、制定框架、制定文档编写规范、制定初步计划、确定数据收集规范。
◆概要设计阶段:确定可靠性度量、制定详细验收方案、可靠性设计、收集数据、调整计划、明确后续阶段详细计划、编制文档。
◆详细设计阶段:可靠性设计、预测、调整计划、收集数据、明确后续阶段详细计划、编制文档。
◆编码阶段:可靠性测试(单元)、排错、调整计划、收集数据、明确后续阶段详细计划、编制文档。
◆测试阶段:可靠性测试(集成和系统)、排错、可靠性建模、评价、调整计划、收集数据、明确后续阶段详细计划、编制文档。
◆实施阶段:可靠性测试(验收)、排错、收集数据、调整型、评价、编制文档。

◆实践证明,保障软件可靠性最有效、最经济、最重要的手段是在软件设计阶段采取措施进行可靠性控制。
◆可靠性设计其实就是在常规的软件设计中,应用各种方法和技术,使程序设计在兼顾用户的功能和性能需求的同时,全面满足软件的可靠性要求。
◆软件可靠性设计原则:
(1)软件可靠性设计是软件设计的一部分,必须在软件的总体设计框架中使用,并且不能与其他设计原则相冲突。
(2)软件可靠性设计在满足提高软件质量要求的前提下,以提高和保障软件可靠性为最终目标。
(3)软件可靠性设计应确定软件的可靠性目标,不能无限扩大化,并且排在功能度、用户需求和开发费用之后考虑。
◆软件可靠性设计技术主要有容错设计、检错设计和降低复杂度设计等技术。

提高系统可靠性的技术可以分为避错(排错)技术和容错技术。避错是通过技术评审、系统测试和正确性证明等技术,在系统正式运行之前避免、发现和改正错误。
容错是指系统在运行过程中发生一定的硬件故障或软件错误时,仍能保持正常工作而不影响正确结果的一种性能或措施。容错技术主要是采用冗余方法来消除故障的影响。
冗余是指在正常系统运行所需的基础上加上一定数量的资源,包括信息、时间、硬件和软件。冗余是容错技术的基础,通过冗余资源的加入,可以使系统的可靠性得到较大的提高。主要的冗余技术有结构冗余(静态、动态、混合)、信息冗余(校验码)、时间冗余(一个版本执行多次(时间),选择多次结果中的结果)和冗余附加4种。
软件容错的主要方法是提供足够的冗余信息和算法程序,使系统在实际运行时能够及时发现程序设计错误,采取补救措施,以提高系统可靠性,保证整个系统的正常运行。
软件容错技术主要有N 版本程序设计(静态冗余)、恢复块方法(动态冗余)和防卫式程序设计

动态冗余:主机、备份机切换。

◆N版本程序设计:其设计思想是用N个具有相同功能的程序同时执行一项计算,结果通过多数表决来选择。其中N个版本的程序必须由不同的人独立设计,使用不同的方法、设计语言、开发环境和工具来实现,目的是减少N个版本的程序在表决点上相关错误的概率。

在这里插入图片描述

恢复块设计(动态冗余): 动态冗余又称为主动冗余,它是通过故障检测、故障定位及故障恢复等手段达到容错的目的。其主要方式是多重模块待机储备,当系统检测到某工作模块出现错误时,就用一个备用的模块来替代它并重新运行。各备用块在其待机时,可与主块一样工作,也可以不工作。前者叫热备份系统(双重系统),后者叫冷备份系统(双工系统、双份系统)。

在这里插入图片描述

恢复块方法N版本程序设计
硬件运行环境单机多机
错误检测方法验证测试程序表决
恢复策略后向恢复(出现错误,往后退一步:主机暂停,备份机顶上,但当时主机执行到了第三步,在第三步出现了错误,备份机是顶上顶到第二步,所以后退一步了)前向恢复(直接恢复到当前步骤,没有停顿过程,直接当前步骤继续)
实时性

防卫式程序设计: 是一种不采用任何传统的容错技术就能实现软件容错的方法,对于程序中存在的错误和不一致性,防卫式程序设计的基本思想是通过**在程序中包含错误检查代码和错误恢复代码,使得一旦发生错误,程序就能撤销错误状态,恢复到一个已知的正确状态中去。**其实现策略包括错误检测、破坏估计和错误恢复三个方面。

双机容错技术:是一种软硬件结合的容错应用方案。该方案是由两台服务器和一个外接共享磁盘阵列及相应的双机软件组成。
◆双机容错系统采用**“心跳”方法保证主系统与备用系统的联系。所谓心跳,是指主从系统之间相互按照一定的时间间隔发送通信信号**,表明各自系统当前的运行状态。一旦心跳信号表明主机系统发生故障,或者备用系统无法收到主系统的心跳信号,则系统的高可用性管理软件认为主系统发生故障,立即将系统资源转移到备用系统上,备用系统替代主系统工作,以保证系统正常运行和网络服务不间断。
◆工作模式: 双机热备模式;双机互备模式;双机双工模式

双机热备:主机运行,备机不运行,出错误时备机运行、顶上。

双机互备:每个机提供不同服务,双机互相备份,都运行。

双机双工:每个机提供相同服务,并且互相备份。

集群技术就是将多台计算机组织起来进行协同工作,它是提高系统可用性和可靠性的一种技术。在集群系统中,每台计算机均承担部分计算任务和容错任务,当其中一台计算机出现故障时,系统使用集群软件将这台计算机从系统中隔出离去,通过各计算机之间的负载转嫁机制完成新的负载分担,同时向系统管理人员发出警报。集群系统通过功能整合和故障过渡,实现了系统的高可用性和可靠性。
◆特点:可伸缩性、高可用性、可管理性、高性价比、高透明性。
◆分类:高性能计算集群、负载均衡集群、高可用性集群。

负载均衡集群系统中的一项重要技术,可以提高集群系统的整体处理能力,也提高了系统的可靠性,最终目的是加快集群系统的响应速度,提高客户端访问的成功概率。集群的最大特征是多个节点的并行和共同工作,如何让所有节点承受的负荷平均,不出现局部过大负载或过轻负载的情况,是负载均衡的重要目的。
◆比较常用的负载均衡实现技术主要有以下几种:
(1)基于特定软件的负载均衡(应用层)。很多网络协议都支持重定向功能,例如,基于HTTP重定向服务,其主要原理是服务器使用HTTP重定向指令,将一个客户端重新定位到另一个位置。服务器返回一个重定向响应,而不是返回请求的对象。客户端确认新地址然后重发请求,从而达到负载均衡的目的。
(2)基于DNS的负载均衡属于传输层负载均衡技术,其主要原理是在DNS服务器中为同一个主机名配置多个地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的节点上去,使得不同的客户端访问不同的节点,从而达到负载均衡的目的。
(3)基于NAT的负载均衡。将一个外部IP地址映射为多个内部IP 地址,对每次连接需求动态地转换为一个内部节点的地址,将外部连接请求引到转换得到地址的那个节点上从而达到负载均衡的目的。
(4)反向代理负载均衡。将来自internet上的连接请求以反向代理的方式动态地转发给内部网络上的多个节点进行处理,从而达到负载均衡的目的。
(5)混合型负载均衡

正向代理:客户端 通过一个代理 来访问 服务器。对于服务器来说不知道是哪个客户端访问的。

反向代理:服务器 通过一个代理 给客户端提供服务。对于客户端来说不知道哪个服务器提供的服务。

九、未来信息综合技术

1、信息物理系统

信息物理系统(CPS)控制系统、嵌入式系统的扩展与延伸,其涉及的相关底层理论技术源于对嵌入式技术的应用与提升。
◆CPS 通过集成先进的感知、计算、通信、控制等信息技术和自动控制技术,构建了物理空间与信息空间中人、机、物、环境、信息等要素相互映射、适时交互、高效协同的复杂系统,实现系统内资源配置和运行的按需响应、快速迭代、动态优化。
◆CPS的本质就是构建一套信息空间与物理空间之间基于数据自动流动的状态感知、实时分析、科学决策、精准执行的
闭环赋能体系
,解决生产制造、应用服务过程中的复杂性和不确定性问题,提高资源配置效率,实现资源优化。
1.CPS 的体系架构
(1)单元级CPS。是具有不可分割性的CPS最小单元,是具备可感知、可计算、可交互、可延展、自决策功能的CPS 最小单元,一个智能部件、一个工业机器人或一个智能机床都可能是一个CPS 最小单元。
(2)系统级CPS多个最小单元(单元级)通过工业网络(如工业现场总线、工业以太网等),实现更大范围、更宽领域的数据自动流动,实现了多个单元级CPS 的互联、互通和互操作,进一步提高制造资源优化配置的广度、深度和精度。包含互联互通、即插即用、边缘网关、数据互操作、系统控制、监视与诊断等功能。其中互连互通、边缘网关和数据互操作主要实现单元级CPS 的异构集成;即插即用主要在系统级CPS实现组件管理,包括组(单元级CPS)的识别,配置,更新和删除等功能;协同控制是指对多个单元级CRS的联动和协同控制等;监视与诊断主要是对单元级CPS 的状态实时监控和诊断其是否具备应有的能力。

(3)SoS级。多个系统级CPS的有机组合构成SoS级CPS。 主要实现数据的汇聚,其主要功能包括:数据存储、数据融合、分布式计算、大数据分析、数据服务,并在数据服务的基础上形成了资产性能管理和运营优化服务。
2.CPS的技术体系
可以分为四大核心技术要素即**“一硬”(感知和自动控制)、“一软”(工业软件)、“一网”(工业网络)、"一平台”(工业云和智能服务平台)。**
其中感知和自动控制是CPS实现的硬件支撑;

工业软件固化了CPS计算和数据流程的规则,是CPS的核心;

工业网络是互联互通和数据传输的网络载体;

工业云和智能服务平台是CPS 数据汇聚和支撑上层解决方案的基础,对外提供资源管控和能力服务。

CPS 的典型应用场景:智能设计、智能生产、智能服务、智能应用。

2、人工智能

人工智能(AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能研究包括机器人、自然语言处理、计算机视觉和专家系统等。

人工智能关键技术:
1.自然语言处理(NLP):研究实现人与计算机之间用自然语言进行有效通信的各种理论和方法。
主要包括机器翻译(从一种自然语言到另外一种自然语言的翻译)、语义理解(利用计算机理解文本篇章内容,并回答相关问题)和问答系统(让计算机像人类一样用自然语言与人交流)等
2.计算机视觉。 让计算机拥有类似人类提取、处理、理解和分析图像以及图像序列的能力
3.知识图谱。就是把所有不同种类的信息连接在一起而得到的一个关系网络,提供了从“关系”的角度去分析问题的能力。一般用于反欺诈、不一致性验证等问题。
4.人机交互(HCI)。主要研究人和计算机之间的信息交换。
5.虚拟现实或增强现实(VR/AR)
6.机器学习(ML)。是以数据为基础,通过
研究样本数据寻找规律
,并根据所得规律对未来数据进行预测。目前,机器学习广泛应用于数据挖掘、计算机视觉、自然语言处理、生物特征识别等领域

◆按照学习模式的不同,机器学习可分为监督学习、无监督学习、半监督学习、强化学习。其中监督学习需要提供标注的样本集,无监督学习不需要提供标注的样本集,半监督学习需要提供少量标注的样本,而强化学习需要反馈机制。
◆监督学习是利用已标记的有限训练数据集,通过某种学习策略/方法建立一个模型,从而实现对新数据/实例的标记(分类)/映射。在自然语言处理、文本挖掘等领域应用。
◆无监督学习是利用
无标记
的有限数据,描述隐藏在未标记数据中的结构/规律。用于经济预测、数据挖掘、图像处理、模式识别等。
◆半监督学习可以利用少量的标注样本和大量的未标识样本进行训练和分类,从而达到
减少标注代价、提高学习能力的目的
。例如,图论推理算法或者拉普拉斯支持向量机等。
◆强化学习可以学习从环境状态到行为的映射,使得智能体选择的行为能够获得环境的最大奖赏,最终目标是使外部环境对学习系统在某种意义下的评价最佳。在机器人控制、无人驾驶、工业控制等领域获得成功应用。

按照学习方法的不同,机器学习可分为传统机器学习和深度学习。区别在于,传统机器学习的领域特征需要手动完成,且需要大量领域专业知识;深度学习不需要人工特征提取,但需要大量的训练数据集以及强大的GPU 服务器来提供算力。

传统机器学习从一些观测(训练)样本出发,试图发现不能通过原理分析获得的规律,实现对未来数据行为或趋势的准确预测。在自然语言处理、语音识别、图像识别、信息检索等许多计算机领域获得了广泛应用。
深度学习是一种基于多层神经网络并以海量数据作为输入规则的自学习方法,依靠提供给它的大量实际行为数据(训练数据集),进行参数和规则调整。深度学习更注重特征学习的重要性。

3、机器人

◆机器人技术已经准备进入4.0 时代。所谓机器人4.0时代,就是把云端大脑分布在各个地方,充分利用边缘计算的优势,提供高性价比的服务,把要完成任务的记忆场景的知识和常识很好地组合起来,实现规模化部署。特别强调机器人除了具有感知能力实现智能协作,还应该具有一定的理解和决策能力,进行更加自主的服务。
◆我们目前的服务机器人大多可以做到物体识别和人脸识别。在机器人4.0时代,我们需要加上
更强的自适应能力。

◆机器人4.0的核心技术
1.云-边-端的无缝协同计算。云-边-端一体的机器人系统是面向大规模机器人的服务平台,信息处理和生成主要在云-边-端上分布处理完成。通常情况下,云侧可以提供高性能的计算和知识存储,边缘侧用来进一步处理数据并实现协同和共享。机器人端只用完成实时操作的功能。
2.持续学习与协同学习。希望机器人可以通过少量数据来建立基本的识别能力,然后可以自主地去找到更多的相关数据并进行自动标注。然后用这些自主得到的数据来对自己已有的模型进行重新训练来提高性能。
3.知识图谱。需要
更加动态和个性化的知识
;需要和机器人的感知与决策能力相结合
4.场景自适应。主动观察场景内人和物之间的变化,预测可能发生的事件,从而影响之后的行动模式。这个技术的关键问题在于场景预测能力。就是机器人通过对场景内的各种人和物进行细致的观察,结合相关的知识和模型进行分析,并预测之后事件即将发生的时间,改变自己的行为模式。

5.数据安全。既要保证端到端的安全传输,也要保障服务器端的安全存储。

4、边缘计算

◆边缘计算将数据的处理、应用程序的运行甚至一些功能服务的实现,由网络中心下放到网络边缘的节点上。在网络边缘侧的智能网关上就近采集并且处理数据,不需要将大量未处理的原生数据上传到远处的大数据平台。
◆采用边缘计算的方式,海量数据能够就近处理,大量的设备也能实现高效协同的工作,诸多问题迎刃而解。因此,边缘计算理论上可满足许多行业在敏捷性、实时性、数据优化、应用智能以及安全与隐私保护等方面的关键需求。

◆边缘计算的业务本质是云计算在数据中心之外汇聚节点的延伸和演进。 主要包括云边缘、边缘云和云化网关三类落地形态;以**“边云协同”和“边缘智能”为核心能力发展方向;软件平台需要考虑导入云理念、云架构、云技术,提供端到端实时、协同式智能、可信赖、可动态重置等能力;硬件平台需要考虑异构计算能力**。

(1)云边缘:是云服务在边缘侧的延伸,逻辑上仍是云服务,主要的能力提供依赖于云服务或需要与云服务紧密协同。
(2)边缘云:是在
边缘侧构建中小规模云服务能力,边缘服务能力主要由边缘云提供。

(3)云化网关:以云化技术与能力重构原有嵌入式网关系统,云化网关在边缘侧提供协议/接口转换、边缘计算等能力,部署在云侧的控制器提供边缘节点的资源调度、应用管理与业务编排等能力。

假设云计算是整个计算机智能系统的大脑,那么边缘计算就是眼睛耳朵和手脚,它们将协同互补,发挥关键作用。

目前大家理解的云计算是集中式的软硬件资源管理、调度、售卖

在这里插入图片描述

边缘云是由大规模地域分散的边缘云节点相互协同组成分布式云,一般会部署在“热点”区域

在这里插入图片描述

单个节点主要包含计算存储网络,多个节点组成一朵云

在这里插入图片描述

边缘云本质上还是“云”,具备云计算所有特点(资源池化、弹性伸缩、安全可靠)。

不仅如此,它也具备低延时、终端云化的优势。

在这里插入图片描述

云-边-端

云边缘(Cloud Edge )

  • 定义:云边缘是指 云服务只在网络边缘的延伸,其核心思想是将云计算的功能和服务带到离用户更近的位置。这种方式可以有效地降低延迟,提高用户体验。
  • 特点:
    • 依赖云服务:云边缘的计算和存储能力主要依赖于中心云的数据中心,强调与云服务的紧密协作。
    • 应用场景:适用于需要快速响应和低延迟的应用,如视频监控、智能交通等
    • 逻辑结构:在逻辑上仍然是云服务的一部分,用户可以享受到云计算的强大功能。

边缘云(Edge Cloud)

  • 定义: 边缘云是指在网络边缘构建的小规模云服务能力,其服务能力主要由边缘云提供,而不是依赖于中心云。边缘云可以在本地环境中独立运行,提供计算和存储服务。
  • 特点:
    • 独立性: 边缘云可以在边缘位置独立运行,提供计算和存储服务,减少对中心云的依赖
    • 应用场景:适用于多接入边缘计算(MEC)、内容分发网络(CDN)等场景,能够快速响应本地需求。
    • 管理能力: 边缘云通常需要中心云提供管理和调度能力,但其计算和存储能力是自主的。

主要区别
1.依赖关系
云边缘: 依赖于中心云的服务和能力,强调与云的协同。
边缘云: 在边缘位置独立提供服务,具有更高的自主性,
2.服务能力
云边缘: 主要是云服务的延伸,强调与云的协同。
边缘云: 提供独立的云服务能力,能够在边缘处理数据和应用。
3.应用场景:
云边缘: 适合需要快速响应的应用,与云服务紧密结合
边缘云: 适合需要在边缘进行数据处理和存储的场景,能够减少对中心云的依赖。

5、数字孪生

◆数字孪生体技术是跨层级、跨尺度的现实世界和虚拟世界建立沟通的桥梁。
◆数字孪生体是现有或将有的物理实体对象的数字模型,通过实测、仿真和数据分析来实时感知、诊断、预物理实体对象的状态,通过优化和指令来调控物理实体对象的行为,通过相关数字模型间的相互学习来进化自身,同时改进利益相关方在物理实体对象生命周期内的决策。
◆关键技术
1.建模。建模的目的是将我们对物理世界的理解进行简化和模型化。而数字孪生体的目的或本质是通过数字化和模型化,用信息换能量,以使少的能量消除各种物理实体、特别是复杂系统的不确定性。需求指标、生存期阶段和空间尺度构成了数字孪生体建模技术体系的三维空间。
2.仿真。如果说建模是模型化我们对物理世界或问题的理解,那么仿真就是验证和确认这种理解的正确性和有效性。所以,数字化模型的仿真技术是创建和运行数字孪生体、保证数字孪生体与对应物理实体实现有效闭环的核心技术。
仿真是将**包含了确定性规律和完整机理的模型转化成软件的方式来模拟物理世界的一种技术。**只要模型正确,并拥有了完整的输入信息和环境数据,就可以基本准确地反映物理世界的特性和参数。

**3.其他技术。**VR、AR 以及MR 等增强现实技术、数字线程、系统工程和MBSE、物联网、云计算、雾计算、边缘计算、大数据技术、机器学习和区块链技术。
◆数字孪生体主要应用于制造、产业、城市和战场。

6、云计算

◆云计算概念的内涵包含两个方面: 平台和应用。平台即基础设施,其地位相当于PC上的操作系统,云计算应用程序需要构建在平台之上;云计算应用所需的计算与存储通常在“云端”完成,客户端需要通过互联网访问计算与存储能力。
◆云计算的服务方式

1)软件即服务(Saas)。在SaaS 的服务模式下,服务提供商将应用软件统一部署在云计算平台上。客户根据需要通过互联网向服务提供商订购应用软件服务,服务提供商根据客户所订购软件的数量、时间的长短等因素收费,并且通过标准浏览器向客户提供应用服务。
2)平台即服务(Paas)。在Paas 模式下,服务提供商将分布式开发环境与平台作为一种服务来提供。这是一种分布式平台服务,厂商提供开发环境、服务器平台、硬件资源等服务给客户,客户在服务提供商平台的基础上定制开发自己的应用程序,并通过其服务器和互联网传递给其他客户。

3)基础设施即服务(laas)。 在 laaS 模式下,服务提供商将多台服务器组成的“云端”基础设施作为计量服务提供给客户。具体来说,服务提供商将内存、I/O 设备、存储和计算能力等整合为一个虚拟的资源池,为客户提供所需要的存储资源、虚拟化服务器等服务。
在灵活性方面,Saas > PaaS > laaS 灵活性依次增强。
在方便性方面,laaS > Paas > Saas 方便性依次增强。

云计算部署模式:

公有云:云基础设施是公开的,价格低廉。

社区云:云基础设施分配给一些社区组织专有。

私有云:云基础服务设施分配给多种用户组成的单个组织。

混合云:公有云、私有云和社区云的组合。

7、大数据

大数据是指其大小或复杂性无法通过现有常用的软件工具,以合理的成本并在可接受的时限内对其进行捕获、管理和处理的数据集。这些困难包括数据的收入、存储、搜索、共享、分析和可视化。
大数据的特点: 大规模、高速度、多样可变性、复杂性等。

大数据分析的分析步骤,大致分为数据获取/记录、信息抽取/清洗/注记、数据集成/聚集/表现、数据分析/建模和数据解释5个主要阶段。

相关文章:

2025系统架构师(一考就过):案例之五:典型架构、架构演化、人工智能、云计算、大数据

六、中间件技术、典型架构 ◆中间件:在一个分布式系统环境中处于操作系统和应用程序之间的软件,可以在不同的技术之间共享资源,将不同的操作系统、数据库、异构的网络环境以及若干应用结合成一个有机的协同工作整体。 ◆中间件位于客户机/服务器的操作系…...

【随手笔记】利尔达NB模组

1.名称 移芯EC6263GPP 参数 指令备注 利尔达上电输出 [2025-03-04 10:24:21.379] I_AT_WAIT:i_len2 [2025-03-04 10:24:21.724] LI_AT_WAIT:i_len16 [2025-03-04 10:24:21.724] [2025-03-04 10:24:21.733] Lierda [2025-03-04 10:24:21.733] [2025-03-04 10:24:21.745] OK移…...

Mybatis 中#{} 和${} 的区别是什么?

在 MyBatis 中,#{} 和 ${} 都是用于动态 SQL 语句中的占位符,但是它们的作用和使用方式是不同的。下面是它们的区别: 1. #{} —— 用于防止 SQL 注入和自动类型处理 #{} 是用来将参数安全地传递到 SQL 语句中,它会将传递的参数值…...

nginx+keepalived负载均衡及高可用

1 项目背景 keepalived除了能够管理LVS软件外,还可以作为其他服务的高可用解决方案软件。采用nginxkeepalived,它是一个高性能的服务器高可用或者热备解决方案,Keepalived主要来防止服务器单点故障的发生问题,可以通过其与Nginx的…...

数据结构理论

目录 基本概念和术语 数据 数据元素 数据项 数据对象 数据结构 数据的结构 逻辑结构 存储结构(物理结构) 数据类型 定义 原子数据类型 结构数据类型 抽象数据类型(Abstract Data Type,ADT) 算法和算法分…...

【心得】一文梳理高频面试题 HTTP 1.0/HTTP 1.1/HTTP 2.0/HTTP 3.0的区别并附加记忆方法

面试时很容易遇到的一个问题—— HTTP 1.0/HTTP 1.1/HTTP 2.0/HTTP 3.0的区别,其实这四个版本的发展实际上是一环扣一环的,是逐步完善的,本文希望帮助读者梳理清楚各个版本之间的区别,并且给出当前各个版本的应用情况,…...

在Spring Boot项目中导出复杂对象到Excel文件

在Spring Boot项目中导出复杂对象到Excel文件&#xff0c;可以利用Hutool或EasyExcel等库来简化操作。这里我们将详细介绍如何使用Hutool和EasyExcel两种方式来实现这一功能。 使用Hutool导出复杂对象到Excel 首先确保你的pom.xml中添加了Hutool的依赖&#xff1a; <depe…...

spark 常见操作命令

配置虚拟机 配置即让自己的虚拟机可以联网&#xff0c;和别的虚拟机通讯 一、配置vm虚拟机网段。 具体设置为&#xff1a;虚拟机左上角点击编辑→虚拟网络编辑器&#xfffc; 选择VMnet8&#xff0c; 要改动两个地方&#xff08;注意&#xff1a;它会需要管理员权限&#xff…...

深入理解设计模式中的工厂模式(Factory Pattern)

各类资料学习下载合集 ​​https://pan.quark.cn/s/8c91ccb5a474​​ 工厂模式是创建对象的一种设计模式,属于创建型设计模式。它提供了一种方法来创建对象,而无需在代码中直接指定对象的具体类。工厂模式通过将对象的创建过程封装起来,使得代码更加灵活、可维护…...

DPDK网络开发

DPDK&#xff08;Data Plane Development Kit&#xff09;是一个用于快速数据包处理的开源库&#xff0c;广泛应用于高性能网络应用开发。 环境准备 硬件要求 NIC&#xff08;网络接口卡&#xff09;&#xff1a;支持DPDK的网卡&#xff0c;如Intel的82599、X710等。 CPU&am…...

第三节:基于Winform框架的串口助手小项目---串口操作《C#编程》

知识是无尽的宝藏&#xff0c;学习的过程虽有挑战&#xff0c;但每一次突破都是对自我的升华&#xff0c;向着更优秀的自己全力进发。 -----------WHAPPY 本节将重点介绍&#xff0c;如何修改控件的属性、SerialPort类的使用及实现串口初始化的操作 1.修改控件属性 修改属性…...

机器学习核函数

在机器学习中&#xff0c;核函数&#xff08;Kernel Function&#xff09;是一个非常重要的概念&#xff0c;特别是在支持向量机&#xff08;SVM&#xff09;等算法中有着广泛的应用。下面从定义、作用、常见的核函数类型、工作原理等方面详细介绍&#xff1a; 定义&#xff1…...

linux中使用firewall命令操作端口

一、开放端口 1. 开放一个端口 sudo firewall-cmd --zonepublic --add-port8443/tcp --permanent sudo firewall-cmd --reload 2. 开放一组连续端口 sudo firewall-cmd --zonepublic --add-port100-500/tcp --permanent sudo firewall-cmd --reload 3. 一次开放多个不连续…...

【金融量化】Ptrade中的基础交易与高级量化交易策略的下单接口

1 基础交易与订单管理接口 1. order 功能&#xff1a;用于按指定数量买卖股票或其他金融产品。 参数&#xff1a; security&#xff1a;股票代码&#xff08;字符串类型&#xff09;。amount&#xff1a;交易数量&#xff08;整数类型&#xff09;&#xff0c;正数表示买入&…...

解决docker认证问题 failed to authorize: failed to fetch oauth token

报错信息[bash1]解决方案 全局代理打开“buildkit”: false &#xff0c;见[图1] [bash1] >docker build -t ffpg . [] Building 71.8s (3/3) FINISHED docker:desktop-linux> [internal] load bui…...

从“人力投放”到“智能战争”,谁能抢占先机?

流量成本飙升、用户行为碎片化、广告创意同质化……传统网络推广模式正面临失效危机。而AI技术的爆发&#xff0c;正在彻底改写游戏规则。小马识途营销顾问解析&#xff1a;“AI如何颠覆网络推广逻辑&#xff1f;企业又该如何借势破局&#xff1f;” 一、精准营销&#xff1a;…...

STM32_IIC外设工作流程

STM32 IC 外设工作流程&#xff08;基于寄存器&#xff09; 在 STM32 中&#xff0c;IC 通信主要通过一系列寄存器控制。理解这些寄存器的作用&#xff0c;能够帮助我们掌握 IC 硬件的运行机制&#xff0c;实现高效的数据传输。本文以 STM32F1&#xff08;如 STM32F103&#x…...

Python 爬取唐诗宋词三百首

你可以使用 requests 和 BeautifulSoup 来爬取《唐诗三百首》和《宋词三百首》的数据。以下是一个基本的 Python 爬虫示例&#xff0c;它从 中华诗词网 或类似的网站获取数据并保存为 JSON 文件。 import requests from bs4 import BeautifulSoup import json import time# 爬取…...

浅浅初识AI、AI大模型、AGI

前记&#xff1a;这里只是简单了解&#xff0c;后面有时间会专门来扩展和深入。 当前&#xff0c;人工智能&#xff08;AI&#xff09;及其细分领域&#xff08;如AI算法工程师、自然语言处理NLP、通用人工智能AGI&#xff09;的就业前景呈现高速增长态势&#xff0c;市场需求…...

Spring40种注解(下)!!

Spring Bean 注解 ComponentScan ComponentScan注解用于配置Spring需要扫描的被组件注解注释的类所在的包。 可以通过配置其basePackages属性或者value属性来配置需要扫描的包路径。value属性是basePackages的别名。 Component Component注解用于标注一个普通的组件类&#…...

DeepSeek 系列模型:论文精读《A Survey of DeepSeek Models》

引言&#xff1a;一篇快速了解 DeepSeek 系列的论文。我在翻译时加入了一些可以提高 “可读性” 的连词 ✅ NLP 研 2 选手的学习笔记 笔者简介&#xff1a;Wang Linyong&#xff0c;NPU&#xff0c;2023级&#xff0c;计算机技术 研究方向&#xff1a;文本生成、大语言模型 论文…...

LeetCode hot 100—环形链表 II

题目 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部…...

【AI】【Unity】关于Unity接入DeepseekAPI遇到的坑

前言 由于deepseek网页端在白天日常抽风&#xff0c;无法正常的使用&#xff0c;所以调用API就成了目前最好的选择&#xff0c;尤其是Deepseek的API价格低得可怕&#xff0c;这不是和白送的一样吗&#xff01;然后使用过很多本地部署接入API的方式&#xff0c;例如Chatbox、Pa…...

计算机视觉算法实战——医学影像分割(主页有源码)

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ ​​​ 1. 领域简介✨✨ 医学影像分割是计算机视觉在医疗领域的重要应用&#xff0c;旨在从CT、MRI、X光等医学图像中精确分割出目标区域&…...

51单片机——存储类型

主要内容&#xff1a;区分data,bdata,idata,pdata,xdata,code 8051系列单片机存储器结构的特点&#xff1a;ROM和RAM独立编址 8051系列单片机将程序存储器&#xff08;ROM&#xff09;和数据存储器&#xff08;RAM&#xff09;分开&#xff0c;并有各自的寻址机构和寻址方式。…...

python19-if和match的美

课程&#xff1a;B站大学 记录python学习&#xff0c;直到学会基本的爬虫&#xff0c;使用python搭建接口自动化测试就算学会了&#xff0c;在进阶webui自动化&#xff0c;app自动化 分支语句那些事儿 if 条件判断if...else 判断语句if...elif...else 多重条件分支嵌套也能在 e…...

期权有哪些用处?期权和期货比优势在哪?

期权如同金融市场的“瑞士军刀”&#xff0c;既能防御风险&#xff0c;又能主动出击。相较于期货的“刚性对决”&#xff0c;期权更像“柔性博弈”——通过策略组合在不确定性中捕捉确定性收益。 期权有哪些用处&#xff1f; 期权的核心价值在于其非对称性——买方风险有限&am…...

【html期末作业网页设计】

html期末作业网页设计 作者有话说项目功能介绍 网站结构完整代码网站样图 作者有话说 目前&#xff0c;我们的项目已经搭建了各页面的基本框架&#xff0c;但内容填充还不完善&#xff0c;各页面之间的跳转逻辑也还需要进一步优化。 我们深知&#xff0c;一个好的项目需要不断…...

ComfyUI AnimeDiff动画参数总结

ComfyUI AnimeDiff动画参数总结 一、动画生成核心参数 参数名称建议值/范围作用说明备注步数&#xff08;Steps&#xff09;15-25控制AI计算迭代次数&#xff0c;越高细节越精细&#xff0c;但耗时更长推荐20步&#xff0c;显存不足可降至15步CFG值7.0-8.5提示词对画面的控制…...

基于Three.js的多视图3D Tiles同步可视化技术解析

文章目录 基于Three.js的多视图3D Tiles同步可视化技术解析一、技术背景与价值二、核心实现原理2.1 视口分割算法2.2 视角同步机制三、关键代码解析3.1 渲染管线优化3.2 3D Tiles加载四、交互系统实现4.1 多视图事件分发4.2 射线拾取优化五、性能优化方案5.1 渲染性能指标5.2 W…...

7、什么是死锁,如何避免死锁?【高频】

&#xff08;1&#xff09;什么是死锁&#xff1a; 死锁 是指在两个或多个进程的执行时&#xff0c;每个进程都持有资源&#xff0c;并都在等待其他进程 释放 它所需的资源&#xff0c;如果此时所有的进程一直占有资源而不释放&#xff0c;就导致了死锁。 死锁只有同时满足 四…...

自动化学习-使用git进行版本管理

目录 一、为什么要学习git 二、git是什么 三、git如何使用 1、git的下载安装和配置 2、git常用的命令 3、gitee远程仓库的使用 &#xff08;1&#xff09;注册 &#xff08;2&#xff09;创建仓库 &#xff08;3&#xff09;配置公钥&#xff08;建立电脑和git…...

前端大文件上传

一、切片上传技术原理 切片上传是把大文件分割成多个较小的切片&#xff0c;分别上传这些切片&#xff0c;最后在服务器端将它们合并成完整文件。这种方式能有效应对网络不稳定导致的上传失败问题&#xff0c;还可利用多线程并行上传&#xff0c;提升上传效率。 二、前端实现…...

【网络】实现电脑与笔记本电脑之间的直接网络连接

要实现电脑与笔记本电脑之间的直接网络连接&#xff0c;可以通过有线或无线两种方式。以下是详细的步骤指南&#xff1a; 一、有线直连&#xff08;通过网线&#xff09; 1. 准备工具 网线&#xff1a;使用交叉网线&#xff08;适用于旧设备&#xff09;或普通直连网线&#…...

“深入浅出”系列之音视频开发:(12)使用FFmpeg实现倍速播放:技术细节与优化思路

一、前言 在音视频处理领域&#xff0c;倍速播放是一个常见的需求&#xff0c;尤其是在视频播放器、在线教育平台等场景中&#xff0c;用户常常需要以不同的速度播放视频内容。然而&#xff0c;实现一个高质量的倍速播放功能并不容易&#xff0c;尤其是在处理音频时&#xff0…...

qt作业day2

1&#xff1a;在注册登录的练习里面&#xff0c;追加一个QListWidget 项目列表 要求&#xff1a;点击注册之后&#xff0c;将账号显示到 listWidget上面去 以及&#xff0c;在listWidget中双击某个账号的时候&#xff0c;将该账号删除 .h #ifndef WIDGET_H #define WIDGET_H …...

Qt:day1

一、作业 写1个Widget窗口&#xff0c;窗口里面放1个按钮&#xff0c;按钮随便叫什么&#xff1b; 创建2个Widget对象&#xff1a; Widget w1, w2; w1.show(); w2不管&#xff1b; 要求&#xff1a; 点击 w1.btn&#xff0c;w1隐藏&#xff0c;w2显示&#xff1b; 点击 w2.btn&…...

基于微信小程序的停车场管理系统的设计与实现

第1章 绪论 1.1 课题背景 随着移动互联形式的不断发展&#xff0c;各行各业都在摸索移动互联对本行业的改变&#xff0c;不断的尝试开发出适合于本行业或者本公司的APP。但是这样一来用户的手机上就需要安装各种软件&#xff0c;但是APP作为一个只为某个公司服务的一个软件&a…...

详细Linux基础知识(不断完善)

终端类型分类 1. 物理终端 直接连接到计算机的硬件设备2. 虚拟终端 通过快捷键切换的文本模式界面: Ctrl + Alt + F1 # 登录窗口 Ctrl + Alt + F2 # 当前图形界面 Ctrl + Alt + F3 # 虚拟命令终端 Ctrl + Alt + F4-F6 # 备用虚拟终端3. 图形终端 模拟终端:图形环境中的…...

类和对象-继承-C++

1.定义 面向对象的三大特征之一&#xff0c;为了减少重复的代码 2.语法 class 子类 &#xff1a;继承方式 父类 &#xff08;子类也叫派生类&#xff0c;父类也称为基类&#xff09; 例&#xff1a;class age&#xff1a;public person&#xff1b; #include<iostrea…...

初阶数据结构(C语言实现)——3顺序表和链表(1)

目录 【本节目标】1. 线性表2.顺序表2.1概念及结构2.2 接口实现2.2.0 动态顺序表2.2.1 顺序表初始化SLInit&#xff08;&#xff09;2.2.2 销毁和打印2.2.3 尾插SLPushBack&#xff08;&#xff09;2.2.4 尾删SLPopBack&#xff08;&#xff09;2.2.5 头插2.2.6 头删2.2.7 插入…...

nuxt常用组件库html-validator、@nuxtjs/i18n、@nuxt/image、@unocss/nuxt使用解析

html-validator 主要用于自动验证nuxt服务器呈现的HTML(SSR和SSG)&#xff0c;以检测可能导致水合错误的HTML常见问题&#xff0c;有助于减少水合错误&#xff0c;检测常见的可访问性错误。 安装 npx nuxilatest module add html-validator配置 若自动更新nuxt.config.ts配置文…...

4G工业路由器在公交充电桩中的应用与优势

随着电动公交车的普及&#xff0c;公交充电桩的稳定运行和高效管理是交通营运部门最关心的问题。4G工业路由器凭借其卓越的数据采集和通讯能力&#xff0c;成为实现充电桩智能化管理的关键。 公交充电桩运维管理需求概述&#xff1a; 1.实时性&#xff1a;实时监控充电状态、剩…...

matlab 四维数据可视化(已解决)

虽然这不是传统意义上的“4维可视化”&#xff0c;但你可以通过在三维空间中表示两个维度来间接展示4维数据。例如&#xff0c;你可以使用颜色来表示第四个维度。 clc clear close all% 假设X, Y, Z为你的三维数据&#xff0c;C为第四维数据 X rand(100, 1); Y rand(100, 1);…...

歌曲分类和流行度预测

1. 项目介绍 本项目从kaggle平台上下载了数据集&#xff0c;该数据集包含了3万多首来自Spotify API 的歌曲&#xff0c;共有23个特征。首先对数据集进行预处理&#xff0c;如重复行、缺失值、标准化处理等。再对预处理后的数据进行探索性分析&#xff0c;观察各变量的分布情况&…...

经验分享:用一张表解决并发冲突!数据库事务锁的核心实现逻辑

背景 对于一些内部使用的管理系统来说&#xff0c;可能没有引入Redis&#xff0c;又想基于现有的基础设施处理并发问题&#xff0c;而数据库是每个应用都避不开的基础设施之一&#xff0c;因此分享个我曾经维护过的一个系统中&#xff0c;使用数据库表来实现事务锁的方式。 之…...

oracle decode

1. 基本语法 DECODE(expression, search1, result1, search2, result2, ..., default_result) expression &#xff1a;需要比较的表达式或列。search1, search2, ... &#xff1a;要匹配的值。result1, result2, ... &#xff1a;当 expression 等于 search 时返回的结果。def…...

让后台界面布局更灵活:在GrapesJS中复刻Java的五区式布局

当你想要在可视化编辑器中做一个类似Java BorderLayout 的五区布局&#xff0c;却发现市面上大多只能“简单拼接”而难以自由扩展时&#xff0c;你或许就需要一个更灵活的布局管理器来帮忙。本篇文章就从这个痛点开始&#xff0c;带你一步步揭秘如何用 GrapesJS 自定义并实现一…...

【网络安全 | 漏洞挖掘】分享21个基础漏洞案例

未经许可,不得转载。 文章目录 案例1:绕过500状态码案例2:修改前端实现任意文件上传案例3:Nmap扫描端口命令案例4:绕过限制实现任意文件读取案例5:删除任意目录文件案例6:锁定任意账户案例7:重置任意用户密码案例8:接管任意账户方法一方法二案例9:功能校验机制绕过案…...

期权适合什么类型的投资者交易?

财顺小编本文主要介绍期权适合什么类型的投资者交易&#xff1f;期权适合的投资者类型需结合其风险偏好、投资目标及市场判断能力综合评估。 期权适合什么类型的投资者交易&#xff1f; 1. 风险管理型投资者&#xff08;稳健型&#xff09; 适用场景&#xff1a;持有股票、大…...