1、各种性能指标的定义及如何到达各种性能指标的方法ppt1-8119页-124页①性能:吞吐量Throughput、响应时间ResponseTime、Deadlines②实现吞吐量:Peak&AverageManysystemhavelowaveragebuthighpeakthroughputrequirements③实现响应时间:Guaranteed&AverageE.g.95%ofresponsesinsub-4seconds,andallwithin10seconds④Dealines:DeadlinesoftenassociatedwithbatchjobsinITsystems2、常用的中间件有那几种类型(四种)分类:BusinessProcessOrchestrators业务流程协调器MessageBrokers消息代理ApplicationServers应用服务器Transport面向消息的中间件,分布式对象系统(1)CORBA---公用对象请求代理(调度)程序体系结构,它在对象间建立客户-服务器的关系,这样一个客户可以很简单地使用服务器对象的方法而不论服务器是在同一机器上还是BusinessProcessOrchestratorsMessageBrokersApplicationServersTransportMessage-OrientedMiddleware,DistributedObjectsSystemsJ2EE,CCM,.NETBizTalk,WebSphereMessageBroker,SonicMQBizTalk,TIBCOStaffWare,ActiveBPEL通过一个网络访问。(常见的对象请求代理架构)(2)BasicMessage-orientedmiddleware----MOM指的是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可在分布环境下扩展进程间的通信,并支持多通讯协议、语言、应用程序、硬件和软件平台。(面向消息的中间件)(3)J2EE----J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共同的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,企业内部或外部难以互通的问题。(4)Messagebrokers----消息代理是一种在数据源与目的地之间移动数据使信息处理流畅的软件技术,数据源与目的地包括已有的应用、文件、数据库、对象、硬拷贝输出及Web客户端等。(消息代理)(5)Businessprocessorchestrators----“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。(业务过程代理)3、什么是软件架构(好几种定义,但是主要点是结构,元素,关系,接口)PPT第4页架构是一个系统的基本组织,体现在它的组件,它们之间的相互关系和环境,其设计原则和进化论程序或计算系统的软件架构是系统的结构或结构,由软件元素,这些元素的外部可见的属性,它们之间的关系(软件架构)超过计算的算法和数据结构;设计和指定的总体系统结构作为一种新的问题出现。结构性问题包括组织和全球生产总值(gdp)控制结构;协议进行通信,同步和数据访问;分配的功能设计元素;物流;设计元素构成;扩展和性能,设计方案中选择它是关于软件设计:所有的架构是软件设计,但不是所有的设计都是软件架构。设计过程的一个部分;简单地说,架构关注“一旦系统建立后就很难或是不可能改变的问题”:质量属性,例如安全性,性能;非功能性需求,像开销,硬件配置。【百度答案】软件架构(softwarearchitecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口_(计算机科学)来实现系统的软件体系结构是建立一个对系统来说所需要的结构,包括软件元素,它们之间的关系,以及两者的性质。4、什么是架构风格PPT1-836页AnArchitecturalStyledefinesafamilyofsystemsintermsofapatternofstructuralorganization.Itdetermines:thevocabularyofcomponentsandconnectorsthatcanbeusedininstancesofthatstyle,asetofconstraintsonhowtheycanbecombined.Forexample,onemightconstrain:thetopologyofthedescriptions(e.g.,nocycles).executionsemantics(e.g.,processesexecuteinparallel).描述软件的基本结构组织或纲要,提供事先定义好的子系统,制定好责任并将它们组织在一起的法则和指南。|答案2:也叫架构模式,一个架构风格描述软件系统里的基本的结构组织或纲要。架构风格提供一些事先定义好的子系统,指定他们的责任并给出把他们组织在一起的法则和指南。一个架构模式常常可以分解成很多个设计模式的联合使用。MVC模式就属于架构模式。软件系统有哪几类结构?模块、组件和连接器、配置。模块分配具体的职责,是工作的基础;我们调用运行时结构组件和连接器结构,在我们的使用中,组件始终是运行时实体;分配结构描述从软件结构映射到系统的环境,组织、发展、安装、执行;元素是一类模块(类、层或功能的划分等),模块与其他模块相关联通过概括化或专业化的关系;元素运行组件如服务、同行、客户、服务器、过滤器等,连接器是组件间的通信工具;5、有那些常见架构风格(1)管道和过滤器架构风格PPT40页适用于需要定义一系列的执行规则数据的独立运算。组件在输入时读数据流,在输出时产生数据流。优点:易于理解、支持重用、容易保持或增强、允许某些专业分析、支持并发执行缺点:转换特性导致其不擅长处理交互系统、书写自己的过滤器时,过度地解析或不解析导致性能损失和更加复杂举例:unix的shell脚本、传统编译器组件:称为过滤器,应用于对局部的输入流的转换,经常增长的计算,因此,在输入结束前输出就开始了。.连接器:称为管道,给流提供管道,把一个过滤器的输出传输到另一个输入。(2)面向对象风格PPT49页适用于主要问题是识别和保护信息的相关主体。数据代理和它们相关的操作封装在一个抽象数据类型里面。优点:可以改变实施而不影响客户,可以设计作为独立的交互代理的集合的系统缺点:一个对象与另一个对象进行交互时第一个对象必须知道第二个对象的身份。对象引起的副作用。举例:java,c#开发的系统组件:对象连接器:功能和过程调用(方法)(3)隐式调用风格应用于涉及到组件的松耦合集,其中的每一个都执行一些操作,还可能允许其他的操作。尤其对必须很快重新配置的应用很有用改变服务的供应商可能的或是不可能的能力不是直接的引用过程一个组件能发表一个或多个事件在系统中的其他组件能够在事件中注册一个兴趣通过与事件和过程结合当一个事件被声明后,广播系统(连接器)自己引用已经注册的事件的所有过程所有声明的事件“隐式”造成了过程在其他模块的调用优点:为重用提供强大支持、简化系统演化缺点:当一个系统广播一个事件时,不知道其他哪些组件会响应,不知道依赖于响应被调用的顺序,不知道响应什么时候结束举例:数据库管理系统中执行完整性约束(触发器)(4)客户-服务器风格PPT64页适用于涉及到分布式的数据和跨越一系列的组件的处理优点:数据分布简单明确、位置透明、混合和匹配异构平台、易于添加新服务器或升级现有服务器。缺点:没有名称和服务的中央寄存器—很难找到什么服务是没用的举例:文件服务器、数据库服务器、对象服务器组件:服务器:标准独立的组件提供特别的服务,如打印,数据管理等。客户端:组件调用服务器提供的服务。连接器:网络,允许客户端访问远程服务器。(5)分层风格PPT72页适用于涉及到分布式的能够分层的组织的类的服务,每层给它的上一层提供服务,同时作为下一层的客户端,只有仔细地从内层选择选择过程,才能用于他们临近的外层。优点:设计(基于提高抽象层次)、改善(一个层的功能改变最多影响两个层)、重用(相同层的不同实现可以交替使用)缺点:并不是所有的系统都可以很容易的实现分层,性能需求可能迫使底层实现高级功能的耦合。举例:分层通信协议、操作系统组件:典型的过程的集合。连接器:典型的在有限的可见性下的过程调用(6)仓库风格PPT80页适用于主要问题是建立、增加和维护复杂信息的主体部分,信息一定要能够用很多种方式操作。经常需要长期的存在。优点:有效存储大量数据、共享式模式模型、集中式管理缺点:必须先达成一个数据模型、很难分配数据、数据升级很昂贵举例:信息系统、编程环境、图形编辑器、人工智能知识基础、逆向工程系统组件:主要的数据结构能够表示出系统的正确状态操作主要数据结构的独立组件的集合连接器:典型地过程调用或是直接内存访问(7)解释程序风格PPT87页适用于执行解决方案的最合适的语言或是机器不是直接可用的。优点:模拟无实现的硬件、促进跨多种平台的应用程序或语言可移植性缺点:举例:编程语言编译器、基于规则的系统、脚本语言组件:包括一个状态机,有一个执行引擎和三个记忆状态:当前的执行引擎的状态程序被翻译当前的被翻译的程序的状态连接器:过程调用直接内存访问(8)过程控制风格PPT94页适用于目的是维护特殊过程的输出属性在给定参考值的情形下优点:缺点:举例:实时系统软件用来控制(核电站、汽车巡航控制)组件:过程定义包括操作一些过程变量的机制控制算法决定如何去操作过程变量连接器:数据流关系过程变量:被控制的变量的值是系统能控制的输入变量能够检测过程的输入操纵变量的值能够被控制器改变设置断点是一个控制变量所需要的值传感器获得过程变量与控制有关的值6、架构师需要的核心技能是什么(1)涉众之间的交流(2)技术知识(3)软件工程学(4)风险管理7、什么是架构视图PPT15页一个架构视图是对于从某一视角或某一点上看到的系统所做的简化描述,描述中涵盖了系统的某一特定方面,而省略了此方面无关的实体。8、软件架构过程(三个迭代步骤)PPT1-8202页DetermineArchitecturalRequirementsArchitectureDesignValidation1、确定架构需求:架构上重要的需求(结构用例)---基本的质量和系统的非功能性需求2、架构设计:迭代的设计步骤---风险识别是一个重要的输出设计3、结构验证:验证阶段---验证阶段的目的是增加信心的设计团队的架构是适合的目的;验证必须实现在项目时间和预算的约束,关键是要尽可能严格的和有效的;验证一个架构设计提出了严峻的挑战,因为这是一个设计不能执行或测试,包括新和COTS组件集成;两种主要的方法:手工测试使用的测试场景的体系结构,建设一个原型创建所需的应用程序的一个简单的原型;目的是识别潜在缺陷在设计实现生效前,这样他们就可以得到改善,在建造之前修复成本更便宜9、软件质量属性主要包括哪些(五种)ppt1-8116页Reliability可靠性、Availability可用性、Portability可移植性、Scalability可伸缩性、Performance(!)性能10、软件可用性取决于(三种时间)PPT146页Timetodetectfailure故障检测时间Timetocorrectfailure纠正失败时间Timetorestart