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

【新版】系统架构设计师 - 案例分析 - 架构设计<架构风格和质量属性>

在这里插入图片描述

个人总结,仅供参考,欢迎加好友一起讨论

文章目录

  • 架构 - 案例分析 - 架构设计<架构风格和质量属性>
  • 例题1
  • 例题2
  • 例题3
  • 例题4
  • 例题5
  • 例题6

架构 - 案例分析 - 架构设计<架构风格和质量属性>

例题1

某软件公司为其新推出的字处理软件设计了一种脚本语言,专门用于开发该字处理软件的附加功能插件。 为了提高该语言的编程效率,公司组织软件工具开发部门为脚本语言研制一套集成开发环境。软件工具开发部门根据字处理软件的特点,对集成开发环境进行了需求分析,总结出以下3项核心需求:

(1)集成开发环境需要提供对脚本语言的编辑、语法检查、解释、执行和调试等功能的支持,并要实现各种功能的灵活组合、配置与替换。

(2)集成开发环境需要提供一组可视化的编程界面,用户通过对界面元素拖拽和代码填充的方式就可以完成功能插件核心业务流程的编写与组织。

(3)在代码调试功能方面,集成开发环境需要实现在脚本语言编辑界面中的代码自动定位功能。具体来说,在调试过程中,编辑界面需要响应调试断点命中事件,并自动跳转到当前断点处所对应的代码。

针对上述需求,软件工具开发部门对集成开发环境的架构进行分析与设计,王工认为该集成开发环境应该采用管道-过滤器的架构风格实现,李工则认为该集成开发环境应该采用以数据存储为中心的架构风格来实现。公司组织专家对王工和李工的方案进行了评审,最终采用了李工的方案。

【问题1】

请用200字以内的文字解释什么是软件架构风格,并从集成开发环境与用户的交互方式、集成开发环境的扩展性、集成开发环境的数据管理三个方面说明为什么最终采用了李工的设计方案。

参考答案:

软件架构风格是指描述特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义。

从集成开发环境与用户的交互方式看,用户通常采用交互式的方式对脚本语言进行编辑、解释执行与调试。 在这种情况下,采用以数据存储为中心的架构风格能够很好地支持交互式数据处理,而管道-过滤器架构风格则对用户的交互式数据处理支持有限。

从集成开发环境的扩展性来看,系统核心需求要求实现各种编辑、语法检查、解释执行等多种功能的灵活组织、配置与替换。在这种情况下,采用以数据存储为中心的架构风格,以数据格式解耦各种功能之间的依赖 关系,并可以灵活定义功能之间的逻辑顺序。管道-过滤器架构风格同样以数据格式解耦数据处理过程之间的依赖关系,但其在数据处理逻辑关系的灵活定义方面较差。

从集成开发环境的数据管理来看,集成开发环境需要支持脚本语言、语法树(用于检查语法错误)、可视化模型、调试信息等多种数据类型,并需要支持数据格式的转换。以数据存储为中心的架构将数据存储在统一 的中心存储器中,中心存储器能够表示多种数据格式,并能够为数据格式转换提供各种支持。管道-过滤器架构风格通常只能支持有限度的数据格式,并且在数据格式转换方面的灵活性较差。

【问题2】

在对软件系统架构进行设计时,要对架构需求进行分析,针对特定需求选择最为合适的架构风格,因此实际的软件系统通常会混合多种软件架构风格。请对核心需求进行分析,说明为了满足需求(2)和(3),分别应采用何种架构风格,并概要说明采用相应架构风格后的架构设计过程。

参考答案:

为了满足需求(2),应该采用解释器架构风格。具体来说,需要:①为可视化编 程元素及其拖拽关系定义某种语言,并描述其语法与语义;②编写解释器对该语言进行解释;③生成对应的脚本语言程序。

为了满足需求(3),应该采用隐式调用架构风格。具体来说,首先需要定义“断点在调试过程中命中”这一事件,并实现当断点命中后的屏幕定位函数。集成开发环 境维护一个事件注册表结构,将该事件与屏幕定位函数关联起来形成注册表中的一个 记录项。在调试过程中,集成开发环境负责监听各种事件,当“断点在调试过程中命 中”这一事件发生时,集成开发环境查找事件注册表,找到并调用屏幕定位函数,从而实现脚本语言编辑界面与调试代码的自动定位。

例题2

某网上购物电子商务公司拟升级正在使用的在线交易系统,以提高用户网上购物在线支付环节的效率和安全性。在系统 的需求分析与架构设计阶段,公司提出的需求和关键质量属性场景如下:

(a)正常负载情况下,系统必须在0.5秒内对用户的交易请求进行响应;

(b)信用卡支付必须保证99.999%的安全性;

(c)对交易请求处理时间的要求将影响系统的数据传输协议和处理过程的设计;

(d)网络失效后,系统需要在1.5分钟内发现错误并启用备用系统;

(e)需要在20人月内为系统添加一个新的CORBA 中间件;

(f)交易过程中涉及到的产品介绍视频传输必须保证画面具有600*480的分辨率,20帧/秒的速率;

(g)更改加密的级别将对安全性和性能产生影响;

(h)主站点断电后,需要在3秒内将访问请求重定向到备用站点;

(i)假设每秒用户交易请求的数量是10个,处理请求的时间为30毫秒,则“在1秒内完成用户的交易请求”这一要求是可以实现的;

(j)用户信息数据库授权必须保证99.999%可用;

(k)目前对系统信用卡支付业务逻辑的描述尚未达成共识,这可能导致部分业务功能模块的重复,影响系统的可修改性;

(l)更改Web界面接口必须在4人周内完成;

(m)系统需要提供远程调试接口,并支持系统的远程调试。

在对系统需求和质量属性场景进行分析的基础上,系统的架构师给出了三个候选的架构设计方案。公司目前正在组织系 统开发的相关人员对系统架构进行评估。

【问题1】

在架构评估过程中,质量属性效用树 (utilitytree) 是对系统质量属性进行识别和优先级排序的重要工具。请给出合适的质量属性,填入下图中(1)、(2)空白处;并选择题干描述的(a)~(m),填入(3)~(6)空白处,完成该系统的效用树。

在这里插入图片描述

参考答案:

(1)可修改性(2)可用性

(3)(a)(f)

(4)(e)(l)

(5)(d)(h)

(6)(b)(j)

【问题2】

在架构评估过程中,需要正确识别系统的架构风险、敏感点和权衡点,并进行合理的架构决策。请用300字以内的文字给出系统架构风险、敏感点和权衡点的定义,并从题干(a)~(m)中各选出1个对系统架构风险、敏感点和权衡点最为恰当的描述。

参考答案:

系统架构风险是指架构设计中潜在的、存在问题的架构决策所带来的隐患。

敏感点是指为了实现某种特定的质量属性, 一个或多个构件所具有的特性。

权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。

风险点:(k)

敏感点:(c)

权衡点:(g)

另外:非风险点:(i),可测试性:(m)

例题3

某电子商务公司拟升级其会员与促销管理系统,向用户提供个性化服务,提高用户的粘性。在项目立项之初,公司领导层一致认为本次升级的主要目标是提升会员管理方式的灵活性,由于当前用户 规模不大,业务也相对简单,系统性能方面不做过多考虑,新系统除了保持现有的四级固定会员制度 外,还需要根据用户的消费金额、偏好、重复性等相关特征动态调整商品的折扣力度,并支持在特定的活动周期内主动筛选与活动主题高度相关的用户集合,提供个性化的打折促销活动。在需求分析与架构设计阶段,公司提出的需求和质量属性描述如下:

(a)管理员能够在页面上灵活设置折扣力度规则和促销活动逻辑,设置后即可生效;

(b)系统应该具备完整的安全防护措施,支持对恶意攻击行为进行检测与报警;

(c)在正常负载情况下,系统应在0.3秒内对用户的界面操作请求进行响应;

(d)用户名是系统唯一标识,要求以字母开头,由数字和字母组合而成,长度不少于6个字符。

(e)在正常负载情况下,用户支付商品费用后在3秒内确认订单支付信息;

(f)系统主站点电力中断后,应在5秒内将请求重定向到备用站点;

(g)系统支持横向存储扩展,要求在2人天内完成所有的扩展与测试工作;

(h)系统宕机后,需要在10秒内感知错误,并自动启动热备份系统;

(i)系统需要内置接口函数,支持开发团队进行功能调试与系统诊断;

(j)系统需要为所有的用户操作行为进行详细记录,便于后期查阅与审计;

(k)支持对系统的外观进行调整和配置,调整工作需要在4人天内完成。

在对系统需求、质量属性描述和架构特性进行分析的基础上,系统架构师给出了两种候选的架构设计方案,公司目前正在组织相关专家对系统架构进行评估。

【问题1】

在架构评估过程中,质量属性效用树 (utility tree)是对系统 质量属性进行识别和优先级排序的重要工具。请将合适的质量属性,填入下图中(1)、(2)空白处,并选择题干描述的(a)~(k),填入(3)~(6)空白处,完成该系统的效用树。

在这里插入图片描述

参考答案:

(1)安全性(2)可修改性

(3)(e)

(4)(j)

(5)(h)

(6)(k)

另外:

(a)客户提的需求

(d)需求

(i)可测试性

【问题2】

针对该系统的功能,李工建议采用面向对象的架构风格,将折扣力度计算和用户筛选分别封装为独立对象,通过对象调用实现对 应的功能:王工则建议采用解释器(interpreters) 架构风格, 将折扣力度计算和用户筛选条件封装为独立的规则,通过解释规 则实现对应的功能。请针对系统的主要功能,从折扣规则的可能 改性、个性化折扣定义灵活性和系统性能三个方面对这两种架构 风格进行比较与分析,并指出该系统更适合采用哪种架构风格。

参考答案:

面向对象风格通过编写新的规则实现代码,并通过应用重启或热加载添加规则,可修改性稍差;解释器风格通过编写新的规则文件,并通过导入资源文件或外部配置添加规则,可修改性较好。

面向对象风格通过策略模式定义规则对象,规则以程序逻辑实现,灵活性较差,解释器风格可灵活定义规则计算表达式,灵活性更好。

面向对象风格以编译后代码运算规则,性能好;而虚拟机风格需要加载规则,解析规则,规则运算,再得出结果,性能较差。

面向对象风格:效率高质量高易维护,可修改性高,灵活性稍差,性能好;解释器风格:可修改性高,个性化和灵活性强,性能较差;

由于本项目的目标是提升灵活性,并且规模不大,因此建议采用解释器风格。

例题4

某软件公司拟为某市级公安机关开发一套特种车辆管理与监控系统,以提高特种车辆管理的效率和准确性。在系统需求分析与架构设计阶段,用户提出的部分需求和关键质量属性场景如下:

(a)系统用户分为管理员、分管领导和普通民警等三类;

(b)正常负载情况下,系统必须在0.5秒内对用户的车辆查询请求进行响应;

(c)系统能够抵御99.999%的黑客攻击;

(d)系统的用户名必须以字母开头,长度不少于5个字符;

(e)对查询请求处理时间的要求将影响系统的数据传输协议和处理过程的设计;

(f)网络失效后,系统需要在2分钟内发现并启用备用网络系统;

(g)在系统升级时,需要保证在1个月内添加一个新的消息处理中间件;

(h)查询过程中涉及到的车辆实时视频传输必须保证20帧/秒的速率,且画面具有600×480的分辨率;

(i)更改系统加密的级别将对安全性和性能产生影响;

(j)系统主站点断电后,需要在3秒内将请求重定向到备用站点;

(k)假设每秒中用户查询请求的数量是10个,处理请求的时间为30毫秒,则“在1秒内完成用户的查询请求”这一要求是可以实现的;

(l)对用户信息数据的授权访问必须保证99.999%的安全性;

(m)目前对“车辆信息实时监控”业务逻辑的描述尚未达成共识,这可能导致部分业务功能模块的重复,影响系统的可修改性;

(n)更改系统的Web界面接口必须在1周内完成;

(o)系统需要提供远程调试接口,并支持系统的远程调试

【问题1】

在架构评估过程中,需要正确识别系统的架构风险、敏感点和权衡点,并进行合理的架构决策。请用300字以内的文字给出系统架构风险、敏感点和权衡点的定义,并从题干描述中的(a)~(o)各选出1个属于系统架构风险、敏感点和权衡点的描述。

参考答案:

系统架构风险是指架构设计中潜在的、存在问题的架构决策所带来的隐患。

敏感点是指为了实现某种特定的质量属性,一个或多个系统组件所具有的特性。

权衡点是指影响多个质量属性,并对多个质量属性来说都是敏感点的系统属性。

风险点:(m)

敏感点:(e)

权衡点:(i)

解释:

系统的架构风险、敏感点和权衡点是对质量属性效用树进行分析的主要依据,根据相关概念,题干中“对查询请求处理时间的要求将影响系统的数据传输协议和处理过程的设计”描述的是敏感点;

“目前对‘车辆信息实时监控’业务逻辑的描述尚未达成共识,这可能导致部分业务功能模块的重复,影响系统的可修改性”描述的是系统的架构风险;

“更改系统加密的级别将对安全性和性能产生影响”描述的是权衡点。

另外:

(a)需求(b)性能(c)安全性(d)需求(e)敏感点(f)可用性(g)可修改性

(h)性能(i)权衡点(j)可用性(k)非风险(l)安全性(m)风险点(n)可修改性(o)可测试性

例题5

某电子商务公司拟升级目前正在使用的在线交易系统,以提高客户网上购物时在线支付环节的效率和安全性。公司研发部门在需求分析的基础上,给出了在线交易系统的架构设计。公司组织相关人员召开了针对架构设计的评估会议,会上用户提出的需求、架构师识别的关键质量属性场景和评估专家的意见等内容部分列举如下:

(a)在正常负载情况下,系统必须在0.5秒内响应用户的交易请求;

(b)用户的信用卡支付必须保证99.999%的安全性;

(c)系统升级后用户名要求至少包含8个字符;

(d)网络失效后,系统需要在2分钟内发现错误并启用备用系统;

(e)在高峰负载情况下,用户发起支付请求后系统必须在10秒内完成支付功能;

(f)系统拟采用新的加密算法,这会提高系统安全性,但同时会降低系统的性能;

(g)对交易请求处理时间的要求将影响系统数据传输协议和交易处理过程的设计;

(h)需要在30人月内为系统添加公司新购买的事务处理中间件;

(i)现有架构设计中的支付部分与第三方支付平台紧耦合,当系统需要支持新的支付平台时,这种设计会导致支付部分代码的修改,影响系统的可修改性;

(j)主站点断电后,需要在3秒内将访问请求重定向到备用站点;

(k)用户信息数据库授权必须保证99.999%可用;

(l)系统需要对Web界面风格进行修改,修改工作必须在4人月内完成;

(m)系统需要为后端工程师提供远程调试接口,并支持远程调试。

【问题1】

在架构评估过程中,需要正确识别系统的架构风险、敏感点和权衡点,并进行合理的架构决策。请用300字以内的文字给出系统架构风险、敏感点和权衡点的定义,并从题干(a)~(m)中各选出1个对系统架构风险、敏感点和权衡点最为恰当的描述。

参考答案:

系统架构风险是指架构设计中潜在的、存在问题的架构决策所带来的隐患。

敏感点是指为了实现某种特定的质量属性,一个或多个系统组件所具有的特性。

权衡点是指影响多个质量属性,并对多个质量属性来说都是敏感点的系统属性。

风险点:(i)

敏感点:(g)

权衡点:(f)

另外:

(a)性能(b)安全性(c)需求(d)可用性(e)性能(f)权衡点(g)敏感点

(h)可修改性(i)风险点(j)可用性(k)安全性(l)可修改性(m)可测试性

例题6

某公司欲为某教育机构开发一个在线教育平台,支持用户完成网上下单购买课程,在线点播视频,在线测试等功能。在系统开发之初,企业对该平台提出了如下要求和质量场景:

(a)10000用户并发点播视频时,视频不卡顿;

(b)用户口令在保存进数据库之前,必须进行MD5码处理;

(c)视频点播支持多平台,当一个平台出现故障后,30秒内将用户请求切换至另一平台;

(d)平台支持的高清视频码率至少达到3Mb/s;

(e)学员不必查看帮助文档,也能正常使用系统;

(f)学员信息数据库授权必须保证99.9%可用;

(g)更改视频加密的方式将对安全性和性能产生影响;

(h)目前对学员学习情况分析功能尚未达成共识,这可能导致部分业务功能模块开发后期需要调整;

(i)用户名要求必须以字母开头,可以包含下划线和数字,长度不少于6个字符;

(j)系统要扩容时,应保证在2人·月内完成所有的部署与测试工作;

(k)对用户隐私的保护要求将影响系统的数据传输协议和处理过程的设计;

(l)系统对学员的操作行为有完整的日志记录;

(m)系统必须提供远程调试接口,并支持系统的远程调试;

(n)更新系统的 Web界面接口必须在1人月内完成;

(o)若每秒学员交卷请求的数量是30个,处理单个请求的时间为20毫秒,则系统保证在1秒内完成用户的请求是可以做到的;

(p)当在线教育平台发生网络失效后,需要在60秒内发现错误并启用备用网络。

在对系统需求,质量属性描述和架构特性进行分析的基础上,系统的架构师给出了三个候选的架构设计方案,公司目前正在组织系统开发的相关人员对系统架构进行评估。

【问题1】

在架构评估过程中,质量属性效用树 (utility tree)是对系统 质量属性进行识别和优先级排序的重要工具。请将合适的质量属性,填入下图中(1)~(4)空白处,并选择题干描述的(a)~(p),填入(5)~(8)空白处,完成该系统的效用树。

在这里插入图片描述

参考答案:

(1)性能(2)安全性(3)可用性(4)可修改性

(5)(d)

(6)(b)(i)

(7)(p)

(8)(j)

另外:

(a)性能(b)安全性(c)可用性(d)性能(e)易用性(f)安全性(g)权衡点(h)风险点

(i)需求(j)可修改性(k)敏感点(l)安全性(m)可测试性(n)可修改性(o)非风险点(p)可用性

【问题2】

在架构设计过程中,除了需要考虑经典的4大质量属性,还要考虑其它属性,如:易用性,可测试性。题目中(9)是易用性的示例,(10)是可测试性的示例。

参考答案:

(9)(e)

(10)(m)

【问题3】

在架构评估过程中;需要正确识别系统的架构风险点、非风险点、敏感点和权衡点,并进行合理的架构决策。请用300字以内的文字给出系统架构风险点、非风险点、敏感点和权衡点的定义,并从题干描述中的(a)~(p)各选出1个属于系统架构风险点、非风险点、敏感点和权衡点的描述。

参考答案:

敏感点是一个或多个构件(和/或构件之间的关系)的特性,它能影响系统的某个质量属性。

权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。

风险点是指架构设计中潜在的、存在问题的架构决策所带来的隐患。

非风险点是指不会带来隐患的分析与描述。

敏感点:(k)

权衡点:(g)

风险点:(h)

非风险点:(p)

个人总结

  • 1个质量属性的改变,影响到1-N个功能设计等等,这是敏感点。(质量属性影响功能)
  • 1个功能的设计或者实现,影响到1-N个质量属性等等,这属于权衡点。(功能影响到质量属性)
  • 风险点,是某一个出现的问题影响到质量属性。
  • 非风险点,某个问题,可以接受的。

相关文章:

【新版】系统架构设计师 - 案例分析 - 架构设计<架构风格和质量属性>

个人总结,仅供参考,欢迎加好友一起讨论 文章目录 架构 - 案例分析 - 架构设计<架构风格和质量属性>例题1例题2例题3例题4例题5例题6 架构 - 案例分析 - 架构设计<架构风格和质量属性> 例题1 某软件公司为…...

C++ - 红黑树 介绍 和 实现

前言 前面 学习了 AVL树,AVL树虽然在 查找方面始终拥有 O(log N )的极高效率,但是,AVL 树在插入 ,删除等等 修改的操作当中非常的麻烦,尤其是 删除操作,在实现当中细节非常多,在实现上非常难掌控…...

【蓝桥杯选拔赛真题62】Scratch判断小球 少儿编程scratch图形化编程 蓝桥杯选拔赛真题解析

目录 scratch判断小球 一、题目要求 编程实现 二、案例分析 1、角色分析...

Spring面试题15:Spring支持几种bean的作用域?singleton、prototype、request的区别是什么?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:Spring支持几种bean的作用域? Spring支持以下几种Bean的作用域: Singleton(单例):这是Spring默认的作用域。使用@Scope(“singleton”)注解或…...

Spring Boot中Tomcat服务器参数解析及高并发控制

Spring Boot中Tomcat服务器参数解析及高并发控制 Spring Boot 集成了多种服务器,默认使用了Tomcat 服务器。在高并发情况下,合理地配置 Tomcat 服务器参数对于控制请求量和提高系统的稳定性至关重要。本文将解释 Spring Boot 中涉及 Tomcat 服务器的一些…...

Python 运行代码

一、Python运行代码 可以使用三种方式运行Python,如下: 1、交互式 通过命令行窗口进入 Python 并开始在交互式解释器中开始编写 Python 代码 2、命令行脚本 可以把代码放到文件中,通过python 文件名.py命令执行代码,如下&#xff…...

【ROS入门】使用 ROS 话题(Topic)机制实现消息发布与订阅及launch文件的封装

文章结构 任务要求话题模型实现步骤创建工作空间并初始化创建功能包并添加依赖创建发布者代码(C)创建订阅方代码(C)配置CMakeLists.txt执行启动roscore编译启动发布和订阅节点 launch封装执行 任务要求 使用 ROS 话题(Topic)机制…...

【企业级SpringBoot单体项目模板 】——Mybatis-plus自动代码生成

😜作 者:是江迪呀✒️本文关键词:SpringBoot项目模版、企业级、模版☀️每日 一言:我们之所以这样认为,是因为他们这样说。他们之所以那样说,是因为他们想让我们那样认为。所以实践才是检验真理…...

怒刷LeetCode的第14天(Java版)

目录 第一题 题目来源 题目内容 解决方法 方法一:动态规划 方法二:栈 方法三:双指针 第二题 题目来源 题目内容 解决方法 方法一:二分查找 方法二:线性扫描 方法三:递归 第三题 题目来源 …...

c语言 static

1、静态局部变量在程序加载时初始化,静态局部变量的初始值写入到了data段: 如下代码test_symbol.c int f() {static int x 0;return x; }int g() {static int x 9;return x; }使用命令gcc -c test_symbol.c -o test_symbol 编译 使用命令 readelf -a …...

java基础3

输入一个班学生的成绩,先显示所有及格的成绩,再显示所有不及格的成绩,最后显示及格人数和不及格人数 import java.util.Scanner; public class Hello{public static void main(String [] args) {int SIZE5;double grade[] new double[SIZE]…...

LeetCode 1194.锦标赛优胜者

数据准备 Create table If Not Exists Players (player_id int, group_id int); Create table If Not Exists Matches (match_id int, first_player int, second_player int, first_score int, second_score int); Truncate table Players; insert into Players (player_id, g…...

多旋翼无人机组合导航系统-多源信息融合算法(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

如何用ArkUI实现一个加入购物车效果?

关键词:ArkUI的动效能力,动效开发,ArkUI动画 我们在购买商品时,往往习惯将商品先加入购物车,然后在购物车里确认后再下订单,这是一个典型的访问者模式。对于这个高频场景,增添一些动效可以增加a…...

ChatGLM GPT原理介绍

图解GPT 除了BERT以外,另一个预训练模型GPT也给NLP领域带来了不少轰动,本节也对GPT做一个详细的讲解。 OpenAI提出的GPT-2模型(https://openai.com/blog/better-language-models/) 能够写出连贯并且高质量的文章,比之前语言模型效果好很多。GPT-2是基于Transformer搭建的,相…...

2015年蓝桥杯省赛C/C++ A组 灾后重建题解(100分)

10. 灾后重建 Pear市一共有N&#xff08;<50000&#xff09;个居民点&#xff0c;居民点之间有M&#xff08;<200000&#xff09;条双向道路相连。这些居民点两两之间都可以通过双向道路到达。这种情况一直持续到最近&#xff0c;一次严重的地震毁坏了全部M条道路。 震后…...

Elasticsearch(四)深分页Scroll

一、前言 1.1、scroll与fromsize区别 ES对于fromsize的个数是有限制的&#xff0c;二者之和不能超过1w。当所请求的数据总量大于1w时&#xff0c;可用scroll来代替fromsize。 fromsize在ES查询数据的方式步骤如下&#xff1a; 1、先将用户指定的关键字进行分词&#xff1b;…...

JavaWeb后端开发 JWT令牌解析 登录校验 通用模板/SpringBoot整合

目录 实现思路 会话跟踪的三个方案--引出Jwt令牌技术 1.访问cookie的值,在同一会话的不同请求之间共享数据 2.session 3.现代普遍采用的令牌技术--JWT令牌 JWT令牌技术 ​第一步--生成令牌 1.引入依赖 2.生成令牌 第二步--校验令牌 第三步--登录下发令牌 需要解决的…...

Sparta工具用法描述之信息收集(漏洞分析)

声明:本文仅做学习与交流,任何用于非法用途、行为等造成他人损失的,责任自负。本文不承担任何法律责任。 Sparta是python GUI应用程序,它通过在扫描和枚举阶段协助渗透测试仪来简化网络基础结构渗透测试。 通过点击并单击工具箱并以方便的方式显示所有工具输出,它可以使测…...

Vue复选框批量删除示例

Vue复选框批量删除 通过使用v-model指令绑定单个复选框 例如<input type"checkbox" id"checkbox" v-model"checked"> 而本次我们要做的示例大致是这样的&#xff0c;首先可以增加内容&#xff0c;然后通过勾选来进行单独或者批量删除&…...

Docker自定义镜像

一、镜像结构 镜像是将应用程序及其需要的系统函数库、环境、配置、依赖打包而成。 镜像是分层结构&#xff0c;每一层称为一个Layer BaseImage层&#xff1a;包含基本的系统函数库、环境变量、文件系统其它&#xff1a;在BaseImage基础上添加依赖、安装程序、完成整个应用的…...

ardupilot的编译过程

环境 树莓派4b ubuntu20.04 git 2.25.1 python3.8.10 pixhawk2.4.8 下载源码 &#xff08;已经配置好git环境和ssh&#xff09; git clone --recurse-submodules gitgithub.com:ArduPilot/ardupilot.gitcd ardupilotgit status使用git status检查是否下载完整 如果不完整&a…...

Unity中Shader实现模板测试Stencil

文章目录 前言一、UI中的遮罩1、Mask ——> 模板测试2、RectMask2D ——> UNITY_UI_CLIP_RECT 二、模板缓冲区Stencil一般是和Pass平行的部分&#xff0c;Pass部分写的是颜色缓冲区Stencil:Comp&#xff08;比较操作&#xff09;Pass(模版缓冲区的更新) 三、实际使用1、在…...

多线程与并发

多线程与高并发 线程的创建方式1.继承Thread类 重写run方法2.实现Runnable接口 重写run方法3. 实现Callable 重写call方法&#xff0c;配合FutureTask 线程的使用1.线程的状态1.1. 传统操作系统层面5种状态1.2.Java中给线程准备的6种状态 2.线程的常用方法2.1 获取当前线程2.2 …...

手写call方法

Function.prototype.myCallfunction (context,args) {console.log(arguments)//context 表示call里面的第一个参数也就是需要改变this指向的那个对象。//this表示这个方法//把这个方法挂到需要改变指向的对象身上调用&#xff0c;相当于把this指向了这个对象身上&#xff0c;从…...

基于FPGA的图像直方图统计实现,包括tb测试文件和MATLAB辅助验证

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1、图像数据传输 4.2、直方图统计算法 4.3、时序控制和电路设计 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 vivado2019.2 matlab2022a 3.部分核心程序 timescal…...

数据库:Hive转Presto(一)

本人因为工作原因&#xff0c;经常使用hive以及presto&#xff0c;一般是编写hive完成工作&#xff0c;服务器原因&#xff0c;presto会跑的更快一些&#xff0c;所以工作的时候会使用presto验证结果&#xff0c;所以就要频繁hive转presto&#xff0c;为了方便&#xff0c;我用…...

Responder

环境准备 操作系统:Kali Linux工具:responder,john,evil-winrm PS:输入以下命令解决靶场环境无法打开问题 #echo "<靶机IP> unika.htb">>/etc/hostsresponder工具 [Kali 官网] 手册地址:https://www.kali.org/tools/responder/ 摘要: This package c…...

基于下垂控制的并网逆变器控制MATLAB仿真模型

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 主要模块&#xff1a; 建议使用MATLAB2021b及以上版本打开&#xff01; 功率计算模块、下垂控制模块、电压电流双环控制模块、虚拟阻抗压降模块 扰动设置&#xff1a; 在0.5秒到2秒始端设置0.25Hz的电网频…...

android获取RAM、CPU频率、系统版本、CPU核数

参考链接&#xff1a; https://www.jianshu.com/p/76d68d13c475 https://github.com/matthewYang92/Themis 获取CPU频率、核数的逻辑&#xff0c;是通过文件操作实现的&#xff0c;Android是基于Linux系统的&#xff0c;所以该方式针对不同的手机都是可靠的操作方式。 RAM&am…...