软考笔记高级系统架构师分析师:系统架构_第1页
软考笔记高级系统架构师分析师:系统架构_第2页
软考笔记高级系统架构师分析师:系统架构_第3页
软考笔记高级系统架构师分析师:系统架构_第4页
软考笔记高级系统架构师分析师:系统架构_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软考笔记(八)高级系统架构师分析师:系统架构目录软件架构概念软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式。架构风格定义一个系统家族,即一个体系结构定义一个词汇表和一组约束。词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。软件架构是项目干系人进行交流的手段,明确了对系统实现的约束条件,决定了开发和维护组织的组织结构,制约着系统的质量属性软件架构使推理和控制的更改更加简单,有助于循序渐进的原型设计,可以作

2、为培训的基础软件架构是可传递和可复用的模型,通过研究软件架构可能预测软件的质量软件架构建模结构模型:以架构的构件、连接件和其他概念来刻画结构框架模型:不太侧重描述结构的细节而更侧重于整体的结构动态模型:系统的“大颗粒”的行为性质过程模型:构建系统的步骤和过程功能模型:由一组功能构件按层次组成,下层向上层提供服务RUP4+1用例视图(UseCasesView),最初称为场景视图,关注最终用户需求,为整个技术架构的上线文环境通常用UML用例图和活动图描述。逻辑视图(Logicalview),主要是整个系统的抽象结构表述,关注系统提供最终用户的功能,不涉及具体的编译即输出和部署,通常在UML中用类图

3、,交互图,时序图来表述,类似与我们采用OOA的对象模型。开发视图(DevelopmentView),描述软件在开发环境下的静态组织,从程序实现人员的角度透视系统,也叫做实现视图(implementationview)。开发视图关注程序包,不仅包括要编写的源程序,还包括可以直接使用的第三方SDK和现成框架、类库,以及开发的系统将运行于其上的系统软件或中间件,在UML中用组件图,包图来表述。开发视图和逻辑视图之间可能存在一定的映射关系:比如逻辑层一般会映射到多个程序包等。物理视图(Physicalview)物理视图通常也叫做部署视图(deploymentview),是从系统工程师解读系统,关注软件

4、的物流拓扑结,以及如何部署机器和网络来配合软件系统的可靠性、可伸缩性等要求。物理视图和处理视图的关系:处理视图特别关注目标程序的动态执行情况,而物理视图重视目标程序的静态位置问题;物理视图是综合考虑软件系统和整个IT系统相互影响的架构视图。处理视图(Processview)(进程视图)处理视图关注系统动态运行时,主要是进程以及相关的并发、同步、通信等问题。处理视图和开发视图的关系:开发视图一般偏重程序包在编译时期的静态依赖关系,而这些程序运行起来之后会表现为对象、线程、进程,处理视图比较关注的正是这些运行时单元的交互问题,在UML中通常用活动图表述。软件架构风格架构设计的一个核心问题是能否达到

5、架构级的软件复用架构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个构件有效地组织成一个完整的系统架构风格定义了用于描述系统的术语表和一组指导构建系统的规则Garlan和Shaw对通用软件架构风格进行了分类,他们将软件架构分为数据流风格、调用/返回风格、独立构件风格、虚拟机风格和仓库风格。数据流风格:数据流风格包括批处理序列和管道/过滤器两种风格。调用/返回风格:调用/返回风格包括主程序和子程序、数据抽象和面向对象,以及层次结构。独立构件风格:独立构件风格包括进程通信和事件驱动的系统。虚拟机风格:虚拟机风格包括解释器和基于规则的系统。仓库风格:仓库风格包括数据库系统、黑板系统和

6、超文本系统。过程控制:闭环控制仓库风格中构件分两种:种是中央数据结构,保存系统的当前状态;另一种是独立构件,对中央数据存储进行操作。黑板系统:黑板(共享数据),知识源,控制知识源包括若干独立计算的不同单元,提供解决问题的知识。知识源响应黑板的变化,也只修改黑板;黑板是一个全局数据库,包含问题域解空间的全部状态,是知识源相互作用的唯媒介;知识源响应是通过黑板状态的变化来控制的。黑板系统通常应用在对于解决问题没有确定性算法的软件中(信号处理、问题规划和编译器优化,语音识别等)。超文本:构件以网状链接方式相互连接,用户可以在构件之间进行按照人类的联想思维方式任意跳转到相关构件。超文本是一种非线性的网

7、状信息组织方法,它以结点为基本单位,链作为结点之间的联想式关联。超文本系统通常应用在互联网领域。层次架构风格CS架构:架构是客户端和服务器架构,通过充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现。BS架构:架构是浏览器和服务器架构,用户工作界面是通过浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现。富互联网RIAHTML5,AJAX,Laszlo,Bindows,FLex,JAVARIA结合了C/S架构反应速度快、交互性强的优点,以及B/S架构传播范围广及容易传播的特性RIA简化并改进了B/S架构的用户

8、交互数据能够被缓存在客户端,从而可以实现一个比基于HTML的响应速度更快且数据往返于服务器的次数更少的用户界面基于服务的架构SOA面向服务的架构(Service-OrientedArchitecture,SOA)是透过业务服务的概念来提供IT的各项基本应用功能,让这些服务被排列组合,融会贯通,以便在未来能随时弹性配合新的需求而调整。SOA架构只是实现和解决了服务模块间调用的互操作问题,为了更好地服务于企业应用,引入了企业服务总线(ESB)的应用架构。这一构架是基于消息中间件(MessagingMiddleware)、智能路由和数据转换等技术实现的。SOA的实现方式:ESB服务总线各种服务挂到总

9、线上,依赖总线完成互联互通充当中介者角色,对接各个服务;例如Webservice封装遗留系统为单个服务;特点:松散耦合,粗粒度,标准化接口;ESB提供了一个基于标准的松散应用耦合模式,ESB由以下3层构成:总线接入层:通过这一层可以使用户的各种应用接入ESB,使用ESB的各种服务。在这一层提供对多种主流应用的接入协议支持,如HTTP、JCA/J2C、NET和IBM/CICS等。同时考虑到一些客户自己定制的应用与ESB的连接,在总线接入层提供了适配器服务。核心层:提供多种企业服务总线所需的必要服务支持,在这一层除了提供总线基本服务(如分发/订阅、队列、安全服务和仲裁服务等)外,还提供了QoS的支

10、持(如高可用性、确保消息传输等)。微流程组合/拆分或定制路由层:这一层是侧重在业务支持上。通过通用和标准的对象、服务模型,可以在这一层上定义可重用和基于业界标准的业务流程。.E诙昙一科海了存足亘项竝澤求転脊忙,疑职羊此担疋盘合.巨芒一至刁百丰活动E直厂共同的封養l耳蛰按匚一-共同旳査百喑云匚共同的去全密相上理j程掲匸层-际准公二一王妾是、MDL蘇湛API关键技术WSDL:WSDL就是WebService接口对应的WSDL文件,该文件通过xml格式说明如何调用,可以看作WebService的接口文档(使用说明书)。服务实现定义:服务和端口服务接口定义:绑定,端口类型,消息,类型SOAP:SOAP

11、,SimpleObjectAccessProtocol,简单对象访问协议,简单的说就是用于访问网络服务的协议;它是基于XML的简易协议,可使应用程序在HTTP之上进行信息交换。SOAP是一种网络通信协议,用于网络上、不同平台、不同语言的应用程序间的通讯。HTTP协议+XML数据格式SO方法的服务建模:按照实施的阶段,服务建模可以分为服务发现、服务规约和服务实现三个阶段。(1)服务发现。采用自上而下、自下而上和中间对齐的方式,得到候选服务。(2)服务规约。对候选服务进行分类,根据是否便于复用和组装,是否具有业务对齐性来决定是否将服务暴露。同时,需要考虑服务的信息系统特性。服务规约还包括服务编排、

12、服务库和服务总线中间件模式的设计等过程。(3)服务实现。根据对业务领域的理解和现有系统的分析,将服务的实现分配到相应的服务构件中,并决定服务的实现方式。具体的实现方式既可以由现有系统暴露相关功能为服务,或者重新开发相关功能提供务,也可以由合作伙伴来提供服务。无论采用哪种方式,系统分析师都需要对于关键点进行技术可行性分析。MDA架构描述语言ADLADL是一种形式化语言,它在底层语义模型的支持下,为软件系统的概念体系结构建模提供了具体语法和概念框架。基于底层语义体系结构的表示、分析、演化、细化、设计过程等提供支持。ADL的三个基本元素构件:计算或数据存储单元;连接件:用于构件之间交互建模的体系结构

13、构造块及其支配这些交互的规则;架构配置:描述体系结构的构件与连接件的连接图特定领域软件架构DSSA基于架构的软件开发ABSDABSD方法是架构驱动,即强调由业务、质量和功能需求的组合驱动架构设计。使用ABSD方法,设计活动可以从项目总体功能框架明确就开始,这意味着需求获取和分析还没有完成(甚至远远没有完成),就开始了软件设计。ABSD方法有三个基础。第一个基础是功能的分解。在功能分解中,ABSD方法使用已有的基于模块的内聚和耦合技术;第二个基础是通过选择架构风格来实现质量和业务需求;第三个基础是软件模板的使用。软件模板利用了一些软件系统的结构。ABSD方法是递归的,且迭代的每一个步骤都是清晰地

14、定义的。因此,不管设计是否完成,架构总是清晰的,这有助于降低架构设计的随意性。视角与视图:从不同的视角来检查,所以会有不同的视图。用例用来捕获功能需求、特定场景来捕获质量需求。开发过程软件质量属性软件建构评估中间件技术中间件是一种独立的系统软件或服务程序,可以帮助分布式应用软件在不同的技术之间共享资源;它具有规范的接口规约和显式的语境依赖。软件构件可以被独立地部署并由第三方任意地组装。负责客户机与服务器之间的连接和通信,以及客户机与应用层之间的高效率通信机制提供应用层不同服务之间的互操作机制,以及应用层与数据库之间的连接和控制机制提供多层架构的应用开发和运行的平台,以及应用开发框架,支持模块化

15、的应用开发屏藏硬件、操作系统、网缩和数据库的差异提供应用的负载均衡和离可用性、安全机制与管理功能,以及交易管理机制,保证交易的一致性提供一组通用的服务去执行不同的功能,避免重复的工作和使应用之间可以协作Web架构设计主要涉及:从架构来看:MVC,MVP,MWM,REST,Webservice,微服务,中台。从缓存来看:MemCache,Redis,Squid。从并发分流来看:集群(负载均衡)、CDN。从数据库来看:主从库(主从复制),内存数据库,反规范化技术,NosQL,分区(分表)技术,视图与物化视图。从持久化来看:Hibernate,Mybatis。从分布存储来看:Hadoop,FastD

16、FS,区块链。从数据编码看:XML,JSON。从Web应用服务器来看:Apache,WebSphere,Weblogic,Tomcat,JBOSS,IS。其它:静态化,有状态与无状态,响应式Web设计。负载均衡问题典型应用架构J2EE分布式多层应用程序.NET*MVC/MVP设计模式MVC模式,即模型一视图一控制(Model-View-Controller)模式,它实际上是一种架构模式,是为那些需要为同样的数据提供多个视图的应用程序而设计的,它很好地体现了数据层与表示层的分离。MCV把应用程序分为3种对象类型。模型:应用问题域中包含的抽象领域知识;视图:将应用问题域中包含的抽象领域知识呈现给用

17、户的方法:一个模型可以用于多个视图;控制器:用户界面对用户输入的响应方式。Web系统架构负载均衡:基于特定软件的负载均衡(HTTP重定向)(应用层)反向代理负载均衡(应用层)基于DNS的负载均衡(传输层)基于NAT的负载均衡(传输层)混合型负载均衡静态算法:轮转算法、加权轮转算法、源地址哈希散列算法、目标地址哈希散列算法、随机算法动态算法:最小连接数算法、加权最小连接数算法、加权百分比算法面向消息中间件(Message-OrientedMiddleware,MOM):利用高效可靠的消息传递机制进行平台无关的数据传递,并可基于数据通信进行分布系统的集成。通过提供消息传递和消息队列模型,可在分布环

18、境下扩展进程间的通信,并支持多种通信协议、语言、应用程序、硬件和软件平台。EJBEJB是企业级Java构件,用于开发和部署多层结构、分布式、面向对象的Java应用系统。EJB分为会话Bean、实体Bean和消息驱动Bean。会话Bean:用于实现业务逻辑,它可以是有状态的,也可以是无状态的。每当客户端请求时,容器就会选择一个会话Bean来为客户端服务。会话Bean可以直接访问数据库,但更多时候,它会通过实体Bean实现数据访问。实体Bean:用于实现O/R映射,负责将数据库中的表记录映射为内存中的实体对象。事实上,创建一个实体Bean对象相当于新建一条记录;删除一个实体Bean会同时从数据库中删除对应记录;修改一个实体Bean时,容器会自动将实体Bean的状态和数据库同步。消息驱动Bean:EJB3.0中引入的新的企业Bean,它基于JMS消息,只能接收客户端发送的JMS消息后处理MDB实际上是一个异步的无状态会话Bean,客户端调用MDB后无须

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论