【系统架构师】-案例篇(十一)质量属性、瘦客户端与Web系统架构

1、架构评估中的质量属性

① 性能,是指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理的事件的个数。

② 可靠性,是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力。

③ 可用性,是系统能够正常运行的时间比例。

④ 安全性,是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。

⑤ 可修改性,是指能够快速地以较高的性价比对系统进行变更的能力。

⑥ 功能性,是系统能完成所期望的工作的能力。

⑦ 可变性,是指架构经扩充或变更而成为新架构的能力。

⑧ 互操作性,作为系统组成部分的软件不是独立存在的,通常与其他系统或自身环境相互作用。

(a) 用户界面支持用户的个性化定制; 【互操作性】

(b) 系统需要支持当前主流的标准和服务,特别是通信协议和平台接口;【互操作性】

(c) 用户操作的响应时间应不大于3秒,竞价板块不大于1秒;【性能】

(d) 系统具有故障自行诊断和快速恢复能力;【可靠性】

(e) 用户密码需要加密传输;【安全性】

(f) 系统需要存储不少于10T的附件;【性能】

(g) 用户操作停滞时间超过定时限需要重新登录验证;【安全性】

(h) 系统能识别供应商异常的报价并防止干扰评选;【可修改性】

(i) 系统在过载时竞价功能可降级,保证发布和公示不受影响。【可用性】

2、瘦客户端与胖客户端相比有以下优势:

安全性:瘦客户端的安全性较高,业务逻辑在服务端。

灵活性:瘦客户端的灵活性较高。

系统升级与维护:瘦客户端的系统升级与维护成本较低。

不足

性能弱:由于瘦客户端的大部分工作都在服务器端进行,服务器的负担很重。

功能简单:瘦客户端只能完成浏览、查询、数据输入等简单功能,绝大部分工作由服务器承担。

网络依赖:瘦客户端必须总是具有网络连接才能使用。

4、MVC架构的脆弱性主要表现在:

(1)MVC架构的复杂性带来脆弱性。MVC架构增加了系统结构和实现的复杂性。比如说一个简单的界面,如果严格遵循MVC方式,使得模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。

(2)视图与控制器间紧密连接的脆弱性。视图与控制器是相互分离但却是联系紧密的部件,没有控制器的存在,视图应用是很有限的。反之亦然,这样就妨碍了它们的独立重用。

(3)视图对模型数据的低效率访问的脆弱性。依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问也将损害操作性能。

技术描述常见支持软件
负载均衡采用软件级和硬件级负载均衡实现分流和后台减压HAProxy、LVS
缓存服务器存储静态文件、减少网络交换量、加速响应请求Squid、Memcached
分布式文件系统文件存储系统、快速查找文件FastDFS、HDFS
Web应用服务器加速 对请求进行处理JBoss、Tomcat、Jetty
分布式数据库缓存、分割数据、加速数据查找MongoDB、Mysql

5、针对 B2C 商务购物平台的网络威胁始终存在,鉴别的基本目的是防止其他实体占用和独立操作被鉴别实体的身份鉴别的方式主要有哪些?

(1)已知的,如一个秘密的口令。

(2)拥有的,如IC卡、令牌等。

(3)不改变的特性,如生物特征,如人脸、指纹。

(4)相信可靠的第三方建立的鉴别(递推),如支付宝快捷登录、实名认证等

(5)环境(如主机地址等)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/837376.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android 11 输入系统之InputDispatcher和应用窗口建立联系

InputDispatcher把输入事件传给应用之前,需要和应用窗口建立联系,了解了这个过程,就清楚了APP进程和InputDispatcher线程也就是SystemServer进程之间是如何传输数据了 我们向窗口addView的时候,都会调用到ViewRootImpl的setView方…

Canvas简历编辑器-我的剪贴板里究竟有什么数据

Canvas简历编辑器-我的剪贴板里究竟有什么数据 在这里我们先来聊聊我们究竟应该如何操作剪贴板,也就是我们在浏览器的复制粘贴事件,并且在此基础上聊聊我们在Canvas图形编辑器中应该如何控制焦点以及如何实现复制粘贴行为。 在线编辑: https://windrun…

Docker 部署 Nginx 实现一个极简的 负载均衡

背景: Nginx是异步框架的网页服务器,其常用作反向代理(负载均衡器)。在一般的小项目中, 服务器不多, 如果不考虑使用服务注册与发现, 使用Nginx 可以容易实现负载均衡。 在特此写一个快速入门 Nginx 的技术贴, 使用 Docker 部署 Nginx, 实现一个极简的加权轮询负载均…

现在的原创内容博客 SEO 最好就选谷歌和必应!

当我们在国内讨论搜索引擎优化的时候,我们经常讨论的是百度 SEO,很少提及 Bing 搜索与 Google 搜索,但随着跨境电商的崛起,在国内做外贸 SEO 的小伙伴越来越多,有效的了解 Bing 搜索与 Google 搜索的优化规则是很有必要…

2024年武侯区建设企业科技创新平台申报范围条件、奖励标准和材料

一、申报对象 支持企业围绕数字健康、消费电子、新型材料等重点领域,布局建设一批重点实验室、创新中心、企业技术中心等高端研发平台,着力突破产业关键技术。实施产业链人才开源计划,支持链主企业为上下游关联配套企业提供技术与人才支持、…

(第17天)栈与队列理论基础

目录 栈栈的逻辑结构基于逻辑结构的特性 栈的底层实现 队列队列的逻辑结构基于逻辑结构的特性 队列的底层实现 总结 栈 栈的逻辑结构 栈是一种先入后出的结构。 基于逻辑结构的特性 栈中的元素必须遵循先入后出的规则,因此栈提供pop()、push()接口进行对元素的操作…

开源aodh学习小结

1 介绍 aodh是openstack监控服务(Telemetry)下的一个模块,telemetry下还有一个模块ceilometer OpenStack Docs: 2024.1 Administrator Guides Get Started on the Open Source Cloud Platform - OpenStack Telemetry - OpenStack 1.1 代码仓…

softmax函数与交叉熵损失详解

文章目录 一、softmax函数1.1 引入指数形式的优点1.2 引入指数形式的缺点 二、交叉熵损失函数2.1 交叉熵损失函数2.2 softmax与交叉熵损失 参考资料 一、softmax函数 softmax用于多分类过程中,它将多个神经元的输出,映射到(0,1)区…

【C++ 内存管理】深拷贝和浅拷贝你了解吗?

文章目录 1.深拷贝2.浅拷贝3.深拷贝和浅拷贝 1.深拷贝 🍎 深拷⻉: 是对对象的完全独⽴复制,包括对象内部动态分配的资源。在深拷⻉中,不仅复制对象的值,还会复制对象所指向的堆上的数据。 特点: 🐧① 复制对…

蓝桥杯-移动距离(最简单的写法)

X星球居民小区的楼房全是一样的,并且按矩阵样式排列。 其楼房的编号为 1,2,3…当排满一行时,从下一行相邻的楼往反方向排号。 比如:当小区排号宽度为 6 时,开始情形如下: 1 2 3 4 5 6 12 11 10 9 8 7 13 14 15 … 我…

程序设计语言理论中的范畴论及其简单应用

程序设计语言理论中的范畴论及其简单应用 范畴论是一个深奥的数学分支,近年来在程序设计语言理论中得到了广泛的应用。本文将简要介绍范畴论的基本概念,并通过简单示例来说明其在程序设计中的应用。 范畴论的基本概念 范畴(Category&#…

Vue3:数据交互axios

回调函数 > 回调函数: 一些特殊的函数,表示未来才会执行的一些功能,后续代码不会等待该函数执行完毕就开始执行了 1. Promise 1.1 简介 > 前端中的异步编程技术,类似Java中的多线程线程结果回调! * Promise 是异步编程的一种解决方案&#xff0c…

记录一下 log4j的漏洞

目录 背景 bug的产生 bug复现 JNDI 网络安全学习路线 (2024最新整理) 学习资料的推荐 1.视频教程 2.SRC技术文档&PDF书籍 3.大厂面试题 特别声明: 背景 log4j这次的bug,我相信大家都已经知道了,仅以…

网络安全软件堡垒机推荐行云管家云堡垒机!

随着互联网技术的快速发展,以及数字化转型的快速转变,网络安全已成为企业生存和发展的关键要素。网络安全不仅是国家等保要求,也是企业发展必须面对的挑战。目前市面上网络安全软件较多,这里我给推荐行云管家堡垒机! …

【unity小技巧】减少Unity中的构建打包大小

文章目录 正常默认打包查看编辑器打包日志压缩图片压缩网格模型压缩贴图压缩音频文件只打64位包最终大小完结 正常默认打包 这里以安卓为例。先什么都不干,直接打包安卓apk,查看包大小 查看编辑器打包日志 搜索build report构建报告。构建报告我们应该…

Pytorch学习-引言

Pytorch相关链接 Pytorch官方网站 https://pytorch.org/ Pytorch的Github仓库 https://github.com/pytorch/pytorch Pytorch论坛 https://discuss.pytorch.org/ Pytorch离线下载包链接 https://download.pytorch.org/whl/torch_stable.html Pytorch学习视频推荐链接 http://【…

ubuntu 升级23.10 wifi固件缺失

昨晚家里ubuntu老机器23.04升级到23.10,出现wifi无法联网的故障,提示固件缺失。 查了不少资料,估计是要手工安装了,今天带跟网线回家,先要能上网啊。 经过几天折腾,我又从23.10升级到24.02 LTS版本&#…

手写一个SPI FLASH 读写擦除控制器

文章目录 flash读写数据的特点1. 扇擦除SE(Sector Erase)1.1 flash_se 模块设计1.1.1 信号连接示意图:1.1.2 SE状态机1.1.3 波形图设计:1.1.4 代码 2. 页写PP(Page Program)2.1 flash_pp模块设计2.1.1 信号连接示意图:…

apt结尾总是报错 ERROR: Timeout was reached

问题排查 尝试查看dpkg.log,重新安装异常的包,试了没用尝试清除apt缓存sudo apt clean sudo rm -rf /var/lib/apt/lists sudo apt update看到报错信息Failed to activate service org.freedesktop.PackageKit: timed out(service_start_timeout25000ms)…

学习前端第三十五天(原型继承,F.prototype,原生的原型)

一、原型继承 1、[ [ Prototype ] ],对象属性 所有对象都有一个[ [ Prototype ] ] 当从object中读取一个缺失的属性时,JavaScript 会自动从原型中获取该属性,“原型继承”。 其中之一设置原型的方法,使用特殊的名字 __proto__&…