[系统架构设计师]论文(二十三)
[系统架构设计师]论文(二十三)
一.论软件系统架构评估
1.架构所关注的质量属性主要有:性能,可用性,安全性,可修改性
1)性能。性能是指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理的事件的个数。
2)可用性。可用性是指系统能够正常运行的时间比例。经常用两次故障之间的时间长度或在系统出现故障能够恢复正常的速度来表示。
3)安全性。安全性是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。安全性又可以划分为机密性,完整性,不可否认性及可控性等特性。
4)可修改性。可修改性是指能够快速地以较高的性能价格比对系统变更的能力。通常以某些具体的变更为基准,通过考察这些变更的代价衡量可修改性。
2.架构评估方法主要有SAAM和ATAM中选择
1)SAAM评估方法:目的是验证基本的体系结构假设和原则,评估体系固有的风险。SAAM指导对体系结构的检查,使其主要关注潜在的问题点,如需求冲突。SAAM不仅能够评估体系结构对于特定系统需求的使用能力,也能被用来比较不同的体系结构。这种评估方法的评估参与者有风险承担者,记录人员,软件体系结构设计师。SAAM分析评估体系结构的过程包括6个步骤,即形成场景,描述体系结构,场景的分类和优先级确定,间接场景的单个评估,场景相互作用的评估,总体评估。
2)ATAM评估方法:即架构权衡分析方法的评估目的是依据系统质量属性和商业需求评估设计决策的结果。ATAM希望揭示出构架满足特定质量目标的情况,使我们更清楚地认识到质量目标之间的联系,即如何权衡多个质量目标。
评估参与者有:
1.评估小组。该小组使所评估架构项目外部的小组,通常由3~5个人组成。ATAM小组的每个成员都要扮演大量的特定角色。他们可能是开发组织内部的,也可能是外部的。
2.项目决策者,对开发项目具有发言权,并有权要求进行某些改变,他们包括项目管理人员,重要的客户代表,架构设计师等。
3.架构涉众。包括关键模块开发人员,测试人员,用户等
现代的ATAM评估过程包括9个步骤:描述ATAM方法,描述商业动机,描述体系结构,确定体系结构方法,生成质量属性效用树,分析体系结构方法,讨论和分级场景,描述评估结果
二.论软件架构的复用
软件架构复用的基本过程如下:
(1)构建/获取可复用的软件资产是复用前提。首先需要构造恰当的,可复用的资产,并且这些资产必须是可靠的,可被广泛使用的,易于理解和修改的。
(2)管理可复用资产。用构件库对可复用的构件进行存储与管理。构件库应提供的主要功能包括构件的存储,管理,检索,以及库的浏览与维护等,以及支持使用者有效地,准确地发现所需的可复用构件。构件库中的构件来源有:
1)从现有构件库中获得符合要求的构件,直接使用或作适应性修改,得到可复用的构件。
2)通过遗留工程,将具有潜在复用价值的构件提取出来,得到可复用的构件。
3)从市场上购买现成的商业构件
4)开发符合新的符合新的构件
构件分类与检索的方法有:关键字分类法,刻面分类法,超文本方法
(3)使用可复用资产。通过获取需求,检索复用资产库,获取可复用资产,并定制这些可复用的资产进行修改,扩展,配置等,最后将它们组装与集成,形成最终系统。
三.论分布式存储系统架构设计
分布式存储技术主要包括4类:
(1)集群存储技术
集群存储系统是指架构在一个可扩充服务器集群中的文件系统,用户不需要考虑文件存储在集群中的什么位置,仅仅需要统一访问界面就可以访问文件资源。当负载增加时,只需要在服务器集群中增加新的服务器就可以提高文件系统的性能。集群存储系统能够保留传统文件存储系统的语义,增加了集群存储系统必须的机制,可以向用户提供高可靠性,高性能,可扩充的文件存储服务。
(2)分布式文件系统
分布式文件系统是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。分布式文件系统的设计基于客户机/服务器模式。一个典型的网络可能包括多个供多用户访问的服务器。另外,对等特性允许一些系统扮演客户机和服务器的双重角色。分布式文件系统以透明方式链接文件服务器和共享文件夹,然后将其映射到单个层次结构,以便可以从一个位置对其进行访问,而实际上数据却分布在不同的位置。用户不必再转至网络上的多个位置以查找所需的信息。
(3)网络存储技术
网络存储系统就是将"存储"和"网络"结合起来,通过网络连接各存储设备,实现存储设备之间,存储设备和服务器之间的数据在网络上的高性能传输。为了充分利用资源,减少投资,存储作为构成计算机系统的主要架构之一,就不再仅仅担负附加设备的角色,逐步称为独立的系统。利用网络将此独立的系统和传统的用户设备连接,使其以高速,稳定的数据存储单元存在。用户可以方便地使用浏览器等客户端进行访问和管理。
(4)P2P网络存储技术
P2P网络存储技术的应用使得内容不是存在几个主要的服务器上,而是存在所有用户的个人电脑上。这就为网络存储提供了可能性,可以将网络中的剩余存储空间利用起来,实现网络存储。人们对存储容量的需求是无止境的,提高存储能力的方法有更换能力更强的存储器,或把多个存储器用某种方式连接在一起,实现网络并行存储。相对于现有的网络存储系统而言,应用P2P技术将会有更大的优势。P2P技术的主体就是网络中的Peer,也就是各个客户机,数量是很大的,这些客户机的空闲存储空间是很多的,把这些空间利用起来实现网络存储。
常见冗余技术:数据备份,数据分割,门限方案,纠错编码和纠删编码等
冗余是提高分布式存储系统可靠性的主要方法,冗余的存储结构可以保证部分服务器失效时,数据服务仍可正常访问。
四.论微服务架构及其应用
微服务优势:
(1)通过分解巨大单体式应用为多个服务方法解决了复杂性问题。它把庞大的单一模块应用分解为一系列的服务,同时保持总体功能不变,但整体并发却得到极大提升
(2)让每个服务能够独立开发,开发者能够自由选择可行的技术,提供API服务
(3)微服务架构模式是每个微服务独立的部署。开发者不再需要协调其他服务部署对本服务的影响。这种改变可以加快部署速度。
(4)微服务使得每个服务独立扩展。开发者可以根据每个服务的规模来部署满足需求的规模。甚至可以使用更适合于服务资源需求的硬件。
微服务带来的挑战:
(1)并非所有的系统都能转成微服务
(2)部署较以往架构更加复杂:系统内由众多微服务搭建,每个微服务需要单独部署,从而增加部署的复杂度,容器技术能够解决这一问题。
(3)性能问题:由于微服务注重独立性,互相通信时只能通过标准接口,可能产生延迟或调用出错
(4)数据一致性问题:作为分布式部署的微服务,在保持数据一致性方面需要比传统架构更加困难