在网站的界面完整有效的呈现在最终用户面前前,其中经历的每一环节出现问题都会导致网站页面不可访问。原因如,如DNS被劫持、网站交换机失效,硬盘损坏,网卡松掉,机房停电等都可能导致网站不可用(网站故障)情况出现。通常用多少个9来度量网站可用性,如QQ可用性99.99%,就意味着在一年中约有53分钟是不可用的。对于多数网站2个9是最基本的要求,即一年中要求不可用时间得小于88个小时。考核可用性通常用故障分类加权计算而得。具体参照“网站故障分类权重表示例”表。

可用性的作用是显而易见的,在上学期制作的XXX重大技术需求征集系统中,当应对快速增长的用户数量,以及业务数量是,并不能很好的应对,甚至是处理能力很低。当应对这样的情况,也会发生数据丢失,服务不可用的情况,所以我的网站可用性是很低了。在预防数据丢失方面,可以在数据写入是同时进行复制同步将数据写入多台服务器实现冗余备份,当然目前实现是有困难的。

高可用性,一方面需要较高配置的软硬件设备如服务器、操作系统等,不同的产品部署到不同的服务集群上、互不相干,一些可复用的业务服务也各自部署在独立的服务集群上,这样实现高可用性,使得软件负载均衡,发现服务异常时会剔除掉不可用服务器。另一方面也需要有数据和服务的冗余备份和失效转移技术方面,在我的系统中并没有考虑数据备份相关问题,所以如果直接投入使用,用户定会丢失数据;在另一方面我使用的是jsp+servlet的mvc模式,各层之间具有相当的独立性,但是同时在项目的中后期我发现自己的dao层显得有些许混乱,每个函数划分得不够精确,结构显得复杂。阅读过程中,发现大型网站架构划分的粒度会更小、更详细,同样结构也会更复杂,所以我认为之后的练习过程中,应当严格要求自己多做一点多想一点。

在第一个方面,通过负载均衡使流量和数据分摊到一个集群的多台服务器上提高整体的负载处理能力,来处理服务无状态时的情况。如一个服务集群上的服务器都可用时,负载均衡服务器会将用户发送的访问请求发送到任意一个服务器上进行处理,当一个服务器发生宕机时,负载均衡服务器会通过心脏检测机制发现这台服务器已经失去了响应,则把它从服务器列表中剔除,将请求发送给别的服务器,这些服务器是完全一样的,发送给任何一台都不会影响结果。而在业务有状态时,使用服务器集群的SESSION管理。1.session复制,我认为和数据冗余备份一样,将session信息复制同步到集群中的几台服务器中,但是不足之处当集群规模较大时,大量复制会导致占用资源,这就显得不够优秀哦。2. session绑定,我认为就像学校邮件处理室一样,信息学院想要的信件就放在信息院柜中;负载均衡服务器将源于同一IP的请求分发到同一台服务器上,这样用户的所有请求都在这台服务器上处理,保证了session总能在这台服务器上获取。但是如果信息院柜子满了或者坏了,信息院信件就会找不到,同样,如果该服务器发生宕机,该服务器上的session也就不存在了,还是不够优秀哦。3.利用cookie记录session,在网站中利用浏览器支持的cookie记录session,虽然在信息量和性能方面不优秀但是简单易用,也能使用。

前3个办法中,我的系统中关于服务器的每一个有,所以性能!!很不可观!!唯有cookie这个方便简单,还是有的。基于上面的不完美,阅读得知,session服务器可以达到对信息量大小和延展性等方面都不错的管理。第一种session复制不能处理有状态时的情况,所以现在将服务器状态分离,分为有状态和无状态。第二个方面,保护网站数据。通过保证数据备份和失效转移机制,即失效转移机制,保证数据有多个备份,任意副本丢失失效都不会导致数据永久都是,实现数据的完全持久化。

------------------------分割线----------------------

今天进行了答辩,针对我的系统,有如下分析:

六大属性:安全性,可修改性,可测试性,易用性,安全性,性能

一 可用性--指的是应对故障和相关后果

错误被人看到时就升级为故障,引出修复时间--错误发生到用户看不到故障前的纠正错误的时间。

战术:从源头上预防错误,错误一发生就被检测到,检测到就马上去进行错误恢复。

举例:

1.try-catch机制,避免错误被检测

二 可修改性--指的是进行变更所带来的成本问题

主要讨论2个方面  有谁来进行什么样的变更

战术:减少变更直接影响到的模块数量---局部化修改,限制变更模块---防止连锁反应。

举例:

1.连接数据库的方法--减少变更代价--局部化修改中的泛化该模块,通过输入参数来通用   2.MVC模式--减少各部分之间的依赖关系--局部化修改--维持语义的一致性

三 性能--指的是当源达到一定数量时的响应,通常用时间来衡量

战术:1.环境上资源的消耗如CPU/内存/宽带  2.对资源争用或等依赖的事件

举例:

1.审核成功的报表不能进行修改----闭锁时间--依赖于一个结果导致不可用某个资源

2.未实现~~~~~如限制上限人数,加大内存等

3.缓存器/排队

四 安全性--指的是1.提供合法用户的服务 2.非授权操作

安全性指的是认可、机密性、完整性和正确性

战术:由于主动让攻击不进行,所以在抵抗攻击,检测攻击和从攻击中恢复三个方面

抵抗攻击---防御:如用户密码加密,身份验证,授权,重要数据加密,维护数据完整性(备

份),限制暴露信息,限制访问

举例:

1.用户未登录限制行为   2.用户密码MD5加密   3不同角色/用户授权不同行为

五 可测试性--指的是通过测试发现缺陷的容易度

目的是允许开发了一个增量后,可轻松的进行软件测试

战术:1.输入输出(记录回放   将接口与实现分离   特化访问路线/接口)  2.内部监视器

举例:

1.在dao与servlet的调用之间使用多个print输出传递和接收的数据---记录/回放--捕获跨接口的信息

六易用性--对用户来说 1.主动完成任务的难易度  2.系统所提供的用户的种类

战术:

使用时-从用户使用来看系统帮助用户处理事务,如用户模型(抓住用户特点信息,如看书速度滚动),系统模型(基于系统信息,确定了期望的系统行为给用户反馈),任务模型(试图通过一个任务上下文,确定用户想要做什么)

设计时-从开发人员来看不希望在修改内部时不希望还要改变用户界面---分离用户接口和应用部分(模型-视图-控制器 / 表示层-抽象层-控制)

举例:

1.用户填写时自动获取几个基本信息--用户模型

2.提示用户填报规则----便于完成填报

3.填写取消---支持用户主动

转载于:https://www.cnblogs.com/Amyheartxy/p/8632133.html

《XXX重大技术需求征集系统》的可用性和可修改性战术分析相关推荐

  1. 基于《河北省重大技术需求征集系统》的可用性和可修改性战术分析

    河北重大技术需求的可用性战术 一 错误检测 1.1信号/响应:一个组件发出一个信号,并希望在预定义的时间内收到一个来自审查组件的响应,该战术可以用在共同负责某项任务的一组组件内. 对应:用户登录时向服 ...

  2. 《重大技术需求征集系统》项目目标文档

    分组:每四人一组 主题:xxx征集系统 成果: 讨论结束后,每组提交一份课堂讨论记录(电子版发表到博客上,纸质版小组成员签名,下节课提交). 每人根据课堂讨论结果提交一份系统利益相关者描述案例.撰写项 ...

  3. 开学测试代码——需求征集系统

    首先,老师给了我们美工做的模板,让我们使用这个模板进行编程,我当时觉得,哎呀我的妈呀,这是啥!!后来我把文件导入进来后,发现有的.html文件是可以跑起来的,然后我就开始写测试.刚开始进展很顺利,但是 ...

  4. xxx系统的可用性和易用性分析

    xxx系统的可用性与易用性分析 今天我们来对某系统的可用性和易用性来进行分析.要想对其有一个合理且有效的分析,我们要先来了解一下什么是可用性和易用性. 可用性,可用性与系统故障以及其后果有关,当系统不 ...

  5. xxx征集系统项目目标文档

    问题 每四人一组,讨论结束后,每人根据课堂讨论结果提交一份系统利益相关者案例.撰写撰写项目目标文档(目标,好处,度量标准.) 项目目标文档 目标: (1)需求填报 (2)需求查询 (3)需求审核 (4 ...

  6. 河北省重大系统征集系统案例分析

    网站的可用性描述网站可有效访问的特性,相比于网络的其他非功能的特性,网站的可用性更能牵动人们的神经.因为,大型网站如果发生不可用的事故,将直接的影响公司的形象及利益,所以,网站的可用性及其重要.正如& ...

  7. CSM+3PAR帮助XXX教育技术中心

    --- 搭建全新的云系统平台 国家:中国 行业:政府/教育 客户简介:XXX教育技术中心隶属于XXX教育局,为所辖范围内学校及XXX教育局的技术支撑和指引单位.直属学校共24所,其中普通高中14所,在 ...

  8. 在3G中实现LBS的定位技术和GIS系统

    一.引言 无线定位业务又称为位置业务(Location-Based Ser-vices,LBS),是由移动通信网提供的一种增值业务,通过一组定位技术获得移动台的位置信息(如经纬度坐标数据),提供给移动 ...

  9. 关于如何提高系统的可用性和易用性

    通过阅读<大型网站技术架构:核心原理与案例分析>第五.六.七章.分析如何对系统添加功能来提高系统的可用性和易用性. 一个网站特别是一个大型网站的是否可用性往往会直接影响到公司的形象和利益, ...

最新文章

  1. 程序员语言也有鄙视链!某美团程序员爆料:筛选简历时,用go语言的基本不看!网友:当韭菜还当出优越感了!...
  2. 计算机专业英语06章在线测试,《计算机专业英语》第06章在线测试.doc
  3. 小学生python-小学生学python(三)
  4. Redis 数据类型介绍
  5. 终端链接操作redis
  6. 《数据库SQL实战》查找所有已经分配部门的员工的last_name和first_name
  7. vi中如何实现批量替换
  8. 学会这个BBC,你的图也可以上新闻啦!
  9. slf4j在linux位置,SLF4J环境设置
  10. kotlin转java_Kotlin 与 Java 代码之间的转换
  11. 读《Linux运维之道》有感
  12. 图像处理算法 之 Hough变换
  13. Oracle 12cR2发布,金融行业准备大规模上了
  14. 组网[ZeroTier]+自建Moon服务
  15. 基于python下django框架 实现校园排课选课系统详细设计
  16. 小米路由器 安装mysql_小米路由器安装和设置方法(图文教程)
  17. 力扣简单题合集(带答案)
  18. 蓝桥杯第七届省赛JavaB组题解
  19. Mybatis ResultType处理返回类型
  20. 【3D视觉创新应用竞赛作品系列​】轻量化、松耦合的手持RGB-D室内环境实时重建系统

热门文章

  1. Ural_1003 Parity(并查集)
  2. 速进!2000核实计算资源免费领取,名额有限,即开即送!
  3. MIDL2020赛事object-CXR(胸部X射线异物检测大赛)
  4. 计算机视觉中的人类感知、理解和生成 (ICCV 2019 Workshop)
  5. 【Java进阶营】JAVA多线程基础学习二:synchronized
  6. 你知道吗?Python原来可以做这些
  7. 初学者学习python2还是python3?
  8. 【OpenCV】OpenCV函数精讲之 -- imread()函数
  9. 总结 | 深度学习之Pytorch入门教程
  10. 2020年还需要阅读的10篇人工智能论文