免费智能真题库 > 历年试卷 > 系统架构设计师 > 2014年下半年 系统架构设计师 上午试卷 综合知识
  第60题      
  知识点:   软件架构   软件架构评估   响应时间   安全性   编码   评估   数据编码   业务处理
  关键词:   安全   编码   软件架构   识别风险   数据   响应时间   风险        章/节:   软件架构评估       

 
识别风险、非风险、敏感点和权衡点是进行软件架构评估的重要过程。“改变业务数据编码方式会对系统的性能和安全性产生影响”是对(60)的描述,“假设用户请求的频率为每秒1个,业务处理时间小于30毫秒,则将请求响应时间设定为1秒钟是可以接受的”是对(61)的描述。
 
 
  A.  风险点
 
  B.  非风险
 
  C.  敏感点
 
  D.  权衡点
 
 
 

 
  第61题    2011年下半年  
   44%
架构权衡分析方法(ATAM)是一种常用的软件架构评估方法,下列关于该方法的叙述中,正确的是(61).
  第62题    2010年下半年  
   55%
正确识别风险点、非风险点、敏感点和权衡点是进行软件架构评价的关键步骤。其中(62)是实现一个特定质量属性的关键特征,该特征为..
  第63题    2013年下半年  
   31%
架构权衡分析方法(Architecture Tradeoff Analysis Method,ATAM)是一种系统架构评估方法,主要在系统开发之前,针对性能、(57)、..
   知识点讲解    
   · 软件架构    · 软件架构评估    · 响应时间    · 安全性    · 编码    · 评估    · 数据编码    · 业务处理
 
       软件架构
        随着嵌入式技术的发展,特别是在后PC时代,嵌入式软件系统得到了极大的丰富和发展,形成了一个完整的软件体系,如下图所示。这个体系自底向上由3部分组成,分别是嵌入式操作系统、支撑软件和应用软件。
        
        嵌入式系统的软件架构
        嵌入式操作系统(Embedded Operating System,EOS)由操作系统内核、应用程序接口、设备驱动程序接口等几部分组成。嵌入式操作一般采用微内核结构。操作系统只负责进程的调度、进程间的通信、内存分配及异常与中断管理最基本的任务,其他大部分的功能则由支撑软件完成。
        嵌入式系统中的支撑软件由窗口系统、网络系统、数据库管理系统及Java虚拟机等几部分组成。对于嵌入式系统来讲,软件的开发环境大部分在通用台式计算机和工作站上运行,但从逻辑上讲,它仍然被认为是嵌入式系统支撑软件的一部分。支撑软件一般用于一些浅度嵌入的系统中,如智能手机、个人数字助理等。
        嵌入式系统中的应用软件是系统整体功能的集中体现。系统的能力总是通过应用软件表现出来的。
 
       软件架构评估
        架构评估可以只针对一个架构,也可以针对一组架构。在架构评估过程中,评估人员所关注的是系统的质量属性。有关质量属性,请参考11.6.3节。
        为了后面讨论的需要,我们先介绍两个概念:敏感点(sensitivity point)和权衡点(tradeoff point)。敏感点和权衡点是关键的架构决策。敏感点是一个或多个构件(和/或构件之间的关系)的特性。研究敏感点可使架构设计师或系统分析师明确在搞清楚如何实现质量目标时应注意什么。权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。例如,改变加密级别可能会对安全性和性能产生非常重要的影响。提高加密级别可以提高安全性,但可能要耗费更多的处理时间,影响系统性能。如果某个机密消息的处理有严格的时间延迟要求,则加密级别可能就会成为一个权衡点。
                      主要的评估方式
                      从目前已有的软件架构评估技术来看,基本可以归纳为3类主要的评估方式:基于调查问卷或检查表的方式、基于场景的方式和基于度量的方式。
                             基于调查问卷或检查表的评估方式
                             CMU/SEI(Carnegie Mellon University/Software Engineering Institute,卡耐基梅隆大学的软件工程研究所)的软件风险评估过程采用了这一方式。调查问卷是一系列可以应用到各种架构评估的相关问题,其中有些问题可能涉及到架构的设计决策;有些问题涉及架构的文档,例如架构的表示用的是何种ADL(Architecture Description Language,架构描述语言);有的问题针对架构描述本身的细节问题,如系统的核心功能是否与界面分开。检查表中也包含一系列比调查问卷更细节和具体的问题,它们更趋向于考察某些关心的质量属性。例如,对实时信息系统的性能进行考察时,很可能问到系统是否反复多次地将同样的数据写入磁盘等。
                             这一评估方式比较自由灵活,可评估多种质量属性,也可以在软件架构设计的多个阶段进行。但是由于评估的结果很大程度上来自评估人员的主观推断,因此不同的评估人员可能会产生不同甚至截然相反的结果,而且评估人员对领域的熟悉程度、是否具有丰富的相关经验也成为评估结果是否正确的重要因素。尽管基于调查问卷与检查表的评估方式相对比较主观,但由于系统相关的人员的经验和知识是评估软件架构的重要信息来源,因而它仍然是进行软件架构评估的重要途径之一。
                             基于场景的评估方式
                             场景是一系列有序的使用或修改系统的步骤。基于场景的方式主要应用在架构权衡分析方法(Architecture Tradeoff Analysis Method,ATAM)和软件架构分析方法(Software Architecture Analysis Method,SAAM)中。在架构评估中,一般采用刺激(stimulus)、环境(environment)和响应(response)3方面来对场景进行描述。刺激是场景中解释或描述项目干系人怎样引发与系统的交互部分,环境描述的是刺激发生时的情况,响应是指系统是如何通过架构对刺激作出反应的。
                             基于场景的方式分析软件架构对场景的支持程度,从而判断该架构对这一场景所代表的质量需求的满足程度。例如,用一系列对软件的修改来反映易修改性方面的需求,用一系列攻击性操作来代表安全性方面的需求等。这一评估方式考虑到了所有与系统相关的人员对质量的要求,涉及到的基本活动包括:确定应用领域的功能和软件架构的结构之间的映射,设计用于体现待评估质量属性的场景,以及分析软件架构对场景的支持程度。
                             不同的系统对同一质量属性的理解可能不同,例如,对操作系统来说,可移植性被理解为系统可在不同的硬件平台上运行,而对于普通的应用系统而言,可移植性往往是指该系统可在不同的操作系统上运行。由于存在这种不一致性,对一个领域适合的场景设计在另一个领域内未必合适,因此基于场景的评估方式是特定于领域的。这一评估方式的实施者一方面需要有丰富的领域知识,以对某一质量需求设计出合理的场景;另一方面,必须对待评估的软件架构有一定的了解,以准确判断它是否支持场景描述的一系列活动。
                             基于度量的评估方式
                             度量是指为软件产品的某一属性所赋予的数值,如代码行数、方法调用层数、构件个数等。传统的度量研究主要针对代码,但近年来也出现了一些针对高层设计的度量,软件架构度量即是其中之一。基于度量的评估技术都涉及3个基本活动:首先,需要建立质量属性和度量之间的映射原则,即确定怎样从度量结果推出系统具有什么样的质量属性;然后,从软件架构文档中获取度量信息;最后,根据映射原则分析推导出系统的某些质量属性。
                             基于度量的评估方式提供更为客观和量化的质量评估,需要在软件架构的设计基本完成以后才能进行,而且需要评估人员对评估的架构十分了解,否则不能获取准确的度量。
                             比较
                             经过对3类主要的软件架构评估方式的分析,我们用下表从通用性、评估者对架构的了解程度、评估实施阶段、评估方式的客观程度等方面对这3种方式进行简单的比较。
                             
                             3类评估方式比较表
                      ATAM评估方法
                      使用ATAM方法对软件架构进行评估的目标,是理解架构关于软件的质量属性需求决策的结果。ATAM方法不但揭示了架构如何满足特定的质量目标(如性能和可修改性),而且还提供了这些质量目标是如何交互的,即它们之间是如何权衡的。这些设计决策很重要,一直会影响到整个软件生命周期,并且在软件实现后很难以修改这些决策。
                             ATAM评估的步骤
                             整个ATAM评估过程包括9个步骤:
                             (1)描述ATAM方法。评估小组负责人向参加会议的项目干系人介绍ATAM评估方法。在这一步,要解释每个人将要参与的过程,并预留出解答疑问的时间,设置好其他活动的环境和预期结果。关键是要使每个人都知道要收集哪些信息,如何描述这些信息,将要向谁报告等。
                             (2)描述业务动机。参加评估的所有人员必须理解待评估的系统,在这一步,项目经理要从业务角度介绍系统的概况。
                             (3)描述架构。首席架构设计师或设计小组要对架构进行详略适当的介绍。这一步很重要,将直接影响到可能要做的分析及分析的质量。在进行更详细的分析之前,评估小组通常需要收集和记录一些额外的架构信息。
                             (4)确定架构方法。ATAM评估方法主要通过理解架构方法来分析架构,在这一步,由架构设计师确定架构方法,由分析小组捕获,但不进行分析。
                             (5)生成质量属性效用树。评估小组、设计小组、管理人员和客户代表一起确定系统最重要的质量属性目标,并对这些质量目标设置优先级和细化。这一步很关键,它对以后的分析工作起指导作用。
                             (6)分析架构方法。一旦有了效用树的结果,评估小组可以对实现重要质量属性的架构方法进行考察。这是通过文档化这些架构决策和确定它们的风险、敏感点和权衡点等来实现的。在这一步中,评估小组要对每一种架构方法都考察足够的信息,完成与该方法有关的质量属性的初步分析。这一步的主要结果是一个架构方法或风格的列表,与之相关的一些问题,以及架构设计师对这些问题的回答。通常产生一个风险列表、敏感点和权衡点列表。
                             (7)讨论和对场景分级。场景在驱动ATAM测试阶段起主导作用,实践证明,当有很多项目干系人参与ATAM评估时,生成一组场景可为讨论提供极大的方便。
                             (8)分析架构方法。在收集并分析了场景之后,架构设计师就可把最高级别的场景映射到所描述的架构中,并对相关的架构如何有助于该场景的实现做出解释。在这一步中,评估小组要重复第(6)步中的工作,把新得到的最高优先级场景与尚未得到的架构工作产品对应起来。在第(7)步中,如果未产生任何在以前的分析步骤中都没有发现的高优先级场景,则进入第(8)步,就是测试步骤。
                             (9)描述评估结果。最后,要把ATAM分析中所得到的各种信息进行归纳,并反馈给项目干系人。这种描述一般要采用辅以幻灯片的形式,但也可以在ATAM评估结束之后,提交更完整的书面报告。在描述过程中,评估负责人要介绍ATAM评估的各个步骤,以及各步骤中得到的各种信息,包括业务环境、驱动需求、约束条件和架构等。最重要的是要介绍ATAM评估的结果。
                             :我们可以修改这9个步骤的顺序,以满足架构信息的特殊需求。也就是说,虽然这9个步骤按编号排列,但并不总是一个瀑布过程,评估人员可在这9个步骤中跳转或进行迭代。
                             ATAM评估的阶段
                             ATAM方法的各个步骤是随着时间的推移而展开的,可大致分为两个阶段。第一个阶段以架构为中心,重点是获取架构信息并进行分析;第二个阶段以项目干系人为中心,重点是获取项目干系人的观点,验证第一个阶段的结果。
                             之所以要分为两个阶段,是因为评估人员要在第一个阶段收集信息。在整个ATAM评估过程中,评估小组中的部分人(通常是1~3人)要与架构设计师、1或2个其他关键的项目干系人(例如,项目经理、客户经理、市场代表)一起工作,收集信息。对支持分析而言,在大多数情况下,这种信息是不完整的或不适当的,所以,评估小组必须与架构设计师一起协作引导出必须的信息,这种协作通常要花几周的时间。当评估人员觉得已经收集了足够的信息,并已把这些信息记录成文档,则就可以进入第二个阶段了。
                      SAAM评估方法
                      SAAM方法是最早形成文档并得到广泛使用的软件架构分析方法,最初是用来分析架构的可修改性的,但实践证明,SAAM方法也可用于对许多其他质量属性及系统功能进行快速评估。
                      与ATAM方法相比,SAAM比较简单,这种方法易学易用,进行培训和准备的工作量都比较少。SAAM评估可以分6个步骤进行,在这些步骤进行之前,通常有必要对系统做简要的介绍,包括对架构的业务目标的说明等。
                      (1)形成场景。在形成场景的过程中,要注意全面捕捉系统的主要用途、系统用户类型、系统将来可能的变更、系统在当前及可预见的未来必须满足的质量属性等信息。只有这样,形成的场景才能代表与各种项目干系人相关的任务。
                      (2)描述架构。在这一步,架构设计师应该采用参加评估的所有人员都能够充分理解的形式,对待评估的架构进行适当的描述。这种描述必须要说明系统中的运算和数据构件,也要讲清它们之间的联系。除了要描述这些静态特性外,还要对系统在某段时间内的动态特征做出说明。描述既可采用自然语言,也可采用形式化的手段。
                      (3)对场景进行分类和确定优先级。在SAAM评估中,场景就是对所期望的系统中某个使用情况的简短描述。架构可能直接支持该场景,即这一预计的使用情况不需要对架构做任何修改即可实现,一般可以通过演示现有的架构在执行此场景时的表示来确定。在SAAM评估方法中称这样的场景为直接场景。也就是说,直接场景就是按照现有架构开发出来的系统能够直接实现的场景。与在设计时已经考虑过的需求相对应的直接场景并不会让项目干系人们感到意外,但将增进对架构的理解,促进对诸如性能和可靠性等其他质量属性的研究。
                      (4)对间接场景的单个评估。一旦确定了要考虑的一组场景,就要把这些场景与架构的描述对应起来。对于直接场景而言,架构设计师需要讲清所评估的架构将如何执行这些场景;对于间接场景而言,架构设计师应说明需要对架构做哪些修改才能适应间接场景的要求。
                      (5)评估场景的相互作用。当两个或多个间接场景要求更改架构的同一个构件时,我们就称这些场景在这一组构件上相互作用。
                      (6)形成总体评估。最后,评估人员要对场景和场景之间的交互作一个总体的权衡和评价,这一权衡反映该组织对表现在不同场景中的目标的考虑优先级。根据对系统成功的相对重要性来为每个场景设置一个权值,权值的确定通常要与每个场景所支持的业务目标联系起来。如果是要比较多个架构,或者针对同一架构提出了多个不同的方案,则可通过权值的确定来得出总体评价。权值的设置具有很强的主观性,所以,应该让所有项目干系人共同参与,但也应合理组织,要允许对权值及其基本思想进行公开讨论。
                      上述6个步骤是关于SAAM评估中技术方面的问题,与ATAM评估方法类似,在进行SAAM评估时,也要考虑合作关系、准备工作等问题。需要对评估会议的时间做出安排、确定评估小组的人员组成、确定会议室、邀请各类项目干系人、编制会议日程等,这些工作都是必需的。
 
       响应时间
        系统响应时间是指用户发出完整请求到系统完成任务给出响应的时间间隔。处于系统中不同的角色的人,对响应时间的关注点是不一样的。从系统管理员的角度来看,系统响应时间指的是服务器收到请求的时刻开始计时,到服务器完成执行请求,并将请求的信息返回给用户这一段时间的间隔。这个“服务器”包含的范围是给用户提供服务的接口服务器,中间的一些业务处理的服务器和排在最后面的数据库服务器。这里并不包含请求和响应在网络上的通信时间。
        从用户的角度来看,响应时间是用户发出请求开始计时(如按下“回车”键的时刻),到用户的请求的相应结果展现在用户机器的屏幕的时候的这一段时间的间隔。这个时间称为“客户端的响应时间”,它等于客户端的请求队列加上服务器的响应时间和网络的响应时间的总和。可以看出,从用户角色感受的“响应时间”是所有响应时间中最长的,很多影响因素不在应用系统的范围内,如数据包在网络上的传输时间、域名解析时间等。
        响应时间超出预期太多的应用系统会导致用户的反感,因为系统在让他们等待,这样会降低他们的工作效率,延长他们的工作时间。位于互联网上的Web网站也存在同样的问题,有调查表明,如果一个Web网页不能在8秒钟内下载到访问的用户端,访问者就会失去耐性,他们有的尝试其他同类型的网站,有的可能访问竞争者的网站,并且可能影响他们圈子里面的人访问这个网站的兴趣和取向。对于一个指望这些访问者变为客户的网站站点而言,响应时间带来的后果等同于销售额的损失。
        系统的响应时间对每个用户来说都是不一样的,以下因素会影响系统的平均响应时间:
        (1)和业务相关,处理不同的业务会有不同的响应时间。
        (2)和业务组合有关,业务之间可能存在依赖关系或其他,也会相互影响。
        (3)和用户的数量有关,大的并发操作会严重影响应时间。
        有多种方法可以用来测试响应时间,常用的有两种方法,分别是首字节响应时间和末字节响应时间。首字节响应时间是指向服务器发送请求与接收到响应的第一个字节之间的时间,末字节响应时间是指向服务器发送请求与接收到响应的最后一个字节之间的时间。通过测量响应时间,可以知道所有客户端用户完成一笔业务所用的时间以及平均时间、最大时间。
        米勒曾经给出了3个经典的有关响应时间的建议,至今仍有参加价值:
        (1)0.1秒:用户感觉不到任何延迟。
        (2)1秒:用户愿意接受的系统立即响应的时间极限。即当执行一项任务的有效反馈时间在0.1~1秒之内时,用户是愿意接受的。超过此数据值,则意味着用户会感觉到有延迟,但只要不超过10秒,用户还是可以接受的。
        (3)10秒:用户保持注意力执行本次任务的极限,如果超过此数值时仍然得不到有效的反馈,用户会在等待计算机完成当前操作时转向其他的任务。
 
       安全性
        (1)可用性。可用性评价指标及测量,如下表所示。
        
        可用性评价指标及测量
        
        (2)完整性。完整性评价指标及测量,如下表所示。
        
        完整性评价指标及测量
        (3)保密性。保密性评价指标及测量,如下表所示。
        
        保密性评价指标及测量
        
 
       编码
               编码过程
               在给定了软件设计规格说明书后,下一步的工作就是编写代码。一般来说,编码工作可以分为四个步骤:
               (1)确定源程序的标准格式,制订编程规范。
               (2)准备编程环境,包括软硬件平台的选择,包括操作系统、编程语言、集成开发环境等。
               (3)编写代码。
               (4)进行代码审查,以提高编码质量。为提高审查的效率,在代码审查前需要准备一份检查清单,并设定此次审查须找到的bug数量。在审查时,要检查软件规格说明书与编码内容是否一致;代码对硬件和操作系统资源的访问是否正确;中断控制模块是否正确等。
               编码准则
               在嵌入式系统中,由于资源有限,且实时性和可靠性要求较高,因此,在开发嵌入式软件时,要注意对执行时间、存储空间和开发/维护时间这三种资源的使用进行优化。也就是说,代码的执行速度要越快越好,系统占用的存储空间要越小越好,软件开发和维护的时间要越少越好。
               具体来说,在编写代码时,需要做到以下几点:
               .保持函数短小精悍。一个函数应该只实现一个功能,如果函数的代码过于复杂,将多个功能混杂在一起,就很难具备可靠性和可维护性。另外,要限制函数的长度,一般来说,一个函数的长度最好不要超过100行。
               .封装代码。将数据以及对其进行操作的代码封装在一个实体中,其他代码不能直接访问这些数据。例如,全局变量必须在使用该变量的函数或模块内定义。对代码进行封装的结果就是消除了代码之间的依赖性,提高了对象的内聚性,使封装后的代码对其他行为的依赖性较小。
               .消除冗余代码。例如,将一个变量赋给它自己,初始化或设置一个变量后却从不使用它,等等。研究表明,即使是无害的冗余也往往和程序的缺陷高度关联。
               .减少实时代码。实时代码不但容易出错、编写成本较高,而且调试成本可能更高。如果可能,最好将对执行时间要求严格的代码转移到一个单独的任务或者程序段中。
               .编写优雅流畅的代码。
               .遵守代码编写标准并借助检查工具。用自动检验工具寻找缺陷比人工调试便宜,而且能捕捉到通过传统测试检查不到的各种问题。
               编码技术
                      编程规范
                      在嵌入式软件开发过程中,遵守编程规范,养成良好的编程习惯,这是非常重要的,将直接影响到所编写代码的质量。
                      编程规范主要涉及的三方面内容:
                      .命名规则。从编译器的角度,一个合法的变量名由字母、数字和下画线三种字符组成,且第一个字符必须为字母或下画线。但是从程序员的角度,一个好的名字不仅要合法,还要载有足够的信息,做到“见名知意”,并且在语意清晰、不含歧义的前提下,尽可能地简短。
                      .编码格式。在程序布局时,要使用缩进规则,例如变量的定义和可执行语句要缩进一级,当函数的参数过长时,也要缩进。另外,括弧的使用要整齐配对,要善于使用空格和空行来美化代码。例如,在二元运算符与其运算对象之间,要留有空格;在变量定义和代码之间要留有空行;在不同功能的代码段之间也要用空行隔开。
                      .注释的书写。注释的典型内容包括:函数的功能描述;设计过程中的决策,如数据结构和算法的选择;错误的处理方式;复杂代码的设计思想等。在书写注释时要注意,注释的内容应该与相应的代码保持一致,同时要避免不必要的注释,过犹不及。
                      性能优化
                      由于嵌入式系统对实时性的要求较高,因此一般要求对代码的性能进行优化,使代码的执行速度越快越好。以算术运算为例,在编写代码时,需要仔细地选择和使用算术运算符。一般来说,整数的算术运算最快,其次是带有硬件支持的浮点运算,而用软件来实现的浮点运算是非常慢的。因此,在编码时要遵守以下准则:
                      .尽量使用整数(char、short、int和long)的加法和减法。
                      .如果没有硬件支持,尽量避免使用乘法。
                      .尽量避免使用除法。
                      .如果没有硬件支持,尽量避免使用浮点数。
                      下图是一个例子,其中两段代码的功能完全一样,都是对一个结构体数组的各个元素进行初始化,但采用两种不同的方法来实现。下图(a)采用数组下标的方法,在定位第i个数组元素时,需要将i乘以结构体元素的大小,再加上数组的起始地址。下图(b)采用的是指针访问的方法,先把指针fp初始化为数组的起始地址,然后每访问完一个数组元素,就把fp加1,指向下一个元素。在一个奔腾4的PC上,将这两段代码分别重复10 700次,右边这段代码需要1ms,而左边这段代码需要2.13ms。
                      
                      算术运算性能优化的例子
 
       评估
        评估测试不只针对物理设备,更重要的是要评估、比较各种网络技术。通常使用模拟测试配置和模拟负载进行子系统(如路由器)和网络技术(如ATM或FDDI等)的评估。评估测试不适用于全局网络,因为全局网络拓扑负载、网络设备太多,不好准确定位引起问题的原因和位置,不能进行有效的比较。多数评估测试在专用的子网测试环境中进行。
        很多公司都有其固定合作的网络设备供应商,如路由器、集线器或交换机的供应商,通常很少再做设备比较测试,但网络技术的比较测试需要经常进行。企业经常面对选择哪种技术以及怎样比较不同技术的问题,所以技术评估是评估测试中很重要的一项。
        在比较设备与技术时,除了使用专用于待测设备或技术的工程负载外,有经验的程序员也使用真实负载,使用真实负载可以了解待测设备或技术在特定环境下的运行性能。通过两种负载模式检测结果的比较,可以获知待测设备还有多少多余容量。
        评估测试与设备或技术的功能/特征测试一样,用于比较待测设备或技术的性能、稳定性、特性、易用性配置和管理等方面的功能。
        评估测试实质是衰减测试的基础,评估测试中对几种设备或技术进行比较;衰减测试中对同一设备的不同版本进行比较。测试中选择设备的标准也完全可作为验证升级版本工作正常与否的标准。尽可能多地集成在计划/设计阶段进行测试是非常好的方法,最初的产品评估测试可以被开发阶段的可接受性测试和升级阶段的衰减性测试所借鉴。
        评估测试是最常进行的测试,在设备选型、技术选型,以及网络系统升级过程中都要进行或多或少的评估测试。
        用于评估测试的负载模式和测试脚本要能有效覆盖被检测的设备和技术。常使用最好情形(工程负载)和真实负载模式进行测试,两种方式都提供了唯一的、重要的检测结果,测试人员要能够理解、解释测试结果间的不同。
        工程检测结果是被测设备和技术在最理想的情形下测试得到的结果,因此不能在真实运行环境里显示它们的运行性能;真实检测结果能很好地显示待测设备或技术在运行网络环境中的性能,但无法预测设备的总容量。如果时间允许,两种测试都要做。通常测试人员只有时间进行一种测试,一般进行最好情形的测试。许多公开发行的测试报告都是基于最好情形(工程负载)下的测试结果。
        所有的测试配置都是模拟的。用于设备比较的测试配置不一定要代表运行网络的典型配置,任何有效、公正的测试配置都能对被测产品进行很好的比较。然而,测试配置和负载越接近运行网络的配置和负载,测试的结果越能反映被测设备在运行网络中的运行情况。
        在安装和配置测试网络时必须注意:要确保配置中所有测试组件都是最新版本,使测试尽可能地公正和统一,以取得最好的测试结果。在测试非正式版时一定要小心,因为发布日期经常有错误。测试配置中安装了非正式版后,它还可能会变,所以非正式版的测试结果和正式版的测试结果经常不一致,分析非正式版的设备经常会延误项目的进行。
        进行评估测试时,除了被测设备,测试配置中的所有网络组件都要保持不变。这一点非常重要,只有这样才能保证被测设备可以进行公平比较。对于子网,这一点很容易做到(一个网络设备很容易被另一个设备所替代)。
        网络技术评估要比较各种网络技术,因而测试配置中的几个网络组件都需要更换。重要的是不要改变源或目标配置。在配置中不仅通信线路需要更换,路由器也需要更换。传输负载和端点的配置要保持不变。
        需要评估测试计划中的各个测试任务,逐步完成测试、数据收集和数据解释。在评估测试中,各测试进行的先后次序没有关系,因为它们不是线性关系,而是多次重复进行的。当在测试中发现了新的信息时,以前所做的测试可能要重新进行以确定它的测试结果,或要对以前的测试稍作改变以检验网络运行的其他方面。此外,在评估期间设备提供商经常发布新的版本或非正式的版本,所以各种基于这种设备的测试都要重新进行。
        制定网络设备、技术比较或取舍标准时,不仅要参考评估测试所得的测试结果数据,还要综合考虑其他一些信息,如各设备的性能价格比,但由于没有运行网络的持续和峰值负载要求,所以缺少比较基准,往往将产品评估测试引入歧途。
        最后要根据评估测试所得的数据和图表对网络系统作出总结性评估,并撰写网络系统评估报告。
 
       数据编码
        通信信道有两种类型,即模拟信道和数字信道。计算机数据在不同的信道中传输,要采用不同的编码方式。
               数字数据的模拟信号编码
               将计算机中的数字数据变换成网络中的模拟信号,必须要进行调制,即进行频谱变换。模拟信号传输的基础是载波,载波具有三大要素,即幅度、频率和相位。数字数据可以针对载波的不同要素或它们的组合进行调制。
               将数字数据调制为模拟信号的基本方式有3种:即调幅、调频和调相,如下图所示。
               1)调幅
               调幅(Amplitude Modulation, AM)即载波的振幅随着基带数字信号而变化,又称幅移键控(ASK)。在调幅(幅移键控)方式中,用载波的两个不同振幅来表示两个二进制值。例如,用振幅恒定的载波的存在表示一个二进制数字1,载波不存在表示一个二进制数字0,如下图所示。其特点是实现容易,抗干扰能力差。
               2)调频
               调频(Frequency Modulation, FM)即载波的频率随着基带数字信号而变化,又称频移键控(FSK)。例如,用频率f1表示一个二进制数字1,频率f2表示一个二进制数字0,如下图所示。其特点是实现容易,抗干扰能力强。
               3)调相
               调相(Phase Modulation, PM)即载波的初始相位随着基带数字信号而变化,又称相移键控(PSK)。在调相方式(相移键控)中,数字0和1的载波起始相位不同。例如,可以用θ= 0°代表0,θ=180°代表1,如下图所示,这种方法称为两相调制;如果以θ为0°、90°、180°、270°,分别表示二进制数00、01、10、11,这种方法称为四相调制。每个调制时间间隔包含两个比特的信息,因此,使信息传输速率增加一倍。其特点是实现复杂、抗干扰能力强。
               
               数字数据调制方式
               由PSK和ASK结合的相位幅度调制(PAM),是解决相移数已达到上限但还要提高传输速率的有效方法。相位幅度调制,即采用相位调制和幅度调制结合的方法来提高传输速率(不提高调制速率)。它采用16个不同的相位和幅度电平,可以使1200b/s的Modem传送19 200b/s的数据信号。
               数字数据编码
               在数字信道中传输计算机数据时,要对计算机中的数字信号重新编码并进行基带传输。
               对于数字信号来说,最常用的方法是用不同的电压电平来表示两个二进制数字,即数字信号由矩形脉冲组成。
               在基带传输中,数字信号的编码方式有不归零编码、曼彻斯特编码和差分曼彻斯特编码,如下图所示。
               1)不归零编码
               不归零编码(Non-Return-Zero, NRZ)用低电平表示二进制0,用高电平表示二进制1。不归零编码有单极型不归零编码和双极型不归零编码两种。
               单极型不归零编码,无电压表示0,恒定正电压表示1,每个码元时间的中间点是采样时间,判决门限为半幅电平,如下图所示。
               双极型不归零编码,1码和0码都有电压,1为正电压,0为负电压,正负电压的幅度相等,判决门限为零电平,如下图所示。
               2)曼彻斯特编码
               曼彻斯特编码(Manchester Encoding),用电平的跳变表示二进制,电平由从高到低的跳变表示二进制1,从低到高的跳变表示二进制0,如下图所示。
               3)差分曼彻斯特编码
               差分曼彻斯特编码(Differential Manchester Encoding),每比特的开始无跳变表示二进制1,有跳变表示二进制0,如下图所示。
               
               常用编码方案
               两种曼彻斯特编码的最大优点是将时钟和数据包含在信号数据流中,在传输代码信息的同时,也将时钟同步信号一起传送给对方,所以这种编码也称为自同步码。但缺点也很明显,那就是编码效率低。例如,要传送10Mb/s的数据,需要20MHz的脉冲。曼彻斯特编码常用在以太网中,而差分曼彻斯特编码常用在令牌环网中。
               模拟数据的数字信号编码
               将模拟数据编码为数字信号的最常见方法是脉冲编码调制,简称脉码调制(Pulse Code Modulation, PCM)。脉码调制是以采样定理为基础的。从数学上可以这样说明采样定理:若对连续变化的模拟信号进行周期性采样,只要采样频率等于或大于有效信号最高频率的两倍,则采样信息包含原信号的全部信息。再利用低通滤波器可以从这些采样中重新构造出原始信号。
               采样定理表达公式为
               Fs≥2FmaxFs2Bs
               式中:Fs(即1/Ts)为采样频率;Fmax为原始信号的最高频率;Bs(=Fmax-Fmin)为原始信号的带宽。
               PCM编码过程包括采样、量化和编码3个步骤,如下图所示。
               1)采样
               每隔一定的时间对连续模拟信号进行采样,得到的信号就成为一组"离散"的脉冲信号序列,这种方式称为脉冲幅值调制(Pulse Amplitude Modulation, PAM)。
               
               PCM原理
               2)量化
               量化是一个分级过程,把采样所得到的PAM脉冲按量级比较,并且"取整",这样脉冲序列就成为数字信号了。
               3)编码
               表示采样序列量化后的量化幅度,它用一定位数的二进制码表示。如果有N个量化级,那么就应当有log2N位二进制数码。
               例如,声音数据频率一般在4000Hz以下,那么只要8000次/s的采样就可以完整地表示声音信号的特征。目前,在语音数字化脉冲调制系统中,通常分为128个量级,即用7位二进制数码表示。PCM编码的数据率为8000×7=56kb/s。
 
       业务处理
        业务处理的方式一般分为批处理和实时处理两种。
        批处理(batch processing)是指定期收集源文件,然后进行成批处理。如银行存款处理,白天一天所收到的存款单等到下班后一起交给数据处理部门,由他们进行累加和其他分析。批处理活动包括:收集源文件,并将它们分成批;把源文件录入到输入媒体,如磁带、磁盘;把源文件根据某个关键词排序;将源文件和主文件合并处理,建立一个新文件,并输出一些文件;定期将业务成批地送往远方的中央计算机保存和进一步处理。
        当要处理大量的数据时批处理是一种比较经济的方法。每笔业务处理时没有必要翻动主文件。错开白天的时间,机器可以在晚上处理,能充分利用机器的资源。机器的速度不一定很高,机器档次和设备费用可以大大降低。但批处理有很多缺点,如主文件经常是过时的,打出的报告也是这样,马上查出当前的情况也是不可能的。所以,许多业务转向实时处理。某些实时处理系统中还保留着某些业务的批处理。
        实时处理也是联机事务处理(Online Transaction Processing,OLTP)。能够在处理业务时及时处理完这笔业务后,立即更新主文件,因而这时的统计数据能够反映现时的真实情况。数据只要一经输入,记录、转换、更新主文件的操作一气呵成,响应客户查询也是即时的。
        实时处理能及时处理、及时更新和及时响应顾客。因而在要求及时的情况下,只有实时系统能满足要求。实时处理缺点是由于联机,直接存取必须采取特殊的措施保护数据库,以及时防止病毒和闯入者。在许多实时系统中,也用磁带作控制日记和恢复文件。因而在设备上要付出高成本。所以实时优点必须和它的成本、安全的问题相平衡,现在由于技术的发展,要更好地满足顾客需求,越来越多的公司欢迎实时处理。
   题号导航      2014年下半年 系统架构设计师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第60题    在手机中做本题