软考系统架构师-软件架构

软件架构

概念

  • 概述:软件架构所指的就是说相应的系列性的抽象模式,可以为设计大型软件系统的各个方面提供相应的指导。
    从本质上来看,软件架构是属于一种系统草图。在软件架构所描述的对象就是直接的进行系统抽象组件构成。
    连接系统的各个组件之间就是做到把组件之间所存在的通讯比较明确与相对细致的实施描述。处于相应的系统
    实现环节,那么就会使得细化这些抽象组件成为现实的组件,比如可以是具体的某个类或者是对象。从面向对象
    领域进行分析,那么各个组件之前实施的连接实现往往是接口。
    软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构件的描述、构件的相互作用、指导构件集成的模
    式以及这些模式的约束组成。软件架构不仅显示了软件需求和软件结构之间的对应关系,而且指定了整个软件系统的
    组织和拓扑结构,提供了一些设计决策的基本原理
  • 表现形式
    • 实施视图:包含这实施模型及其从模块到包、层的组织形式实施的概览;而且在这一过程中,还存在着把相应的逻辑视图中的包与类往实施视图中的包与分配模块的状况实施描述。
    • 逻辑视图:是最为关键的设计类、从这些设计类到包与子系统的组织形式,另外还有的就是这些包与子系统到层的组织形式。
    • 配置视图:描述最为典型的配置平台的各种物理节点,还有的就是往物理节点分配来自于进程视图的任务的情况,往往这一视图仅仅只是在分布式系统。
    • 用例视图:场景与用例
    • 进程视图:描述进程与线程的涉及的任务,这些任务的配置与交互,还有的就是把设计分配对象与类向任务,往往这一视图仅仅只是出于系统存在着特别高程度并行过中才使用

架构风格在这里插入图片描述

  • 架构设计的一个和兴问题是能否达到架构级的软件复用
  • 架构风格反应了领域中总舵系统所共有的结构和语义特性,并指导如何将各个构建有效的组织成一个完成的系统
  • 架构风格定义了用于描述系统的术语表和一组指导构建系统的规则
  • 分类
    • 数据流风格:批处理序列,管道-过滤器
    • 调用/返回风格:主程序/子程序,面对对象,层次结构
    • 独立构件风格:进程通信,事件驱动系统(隐式调用)
    • 虚拟机风格:解释器,基于规则的系统
    • 仓库风格:数据库系统,超文本系统,黑白系统
数据流风格
  • 批处理序列:构件为一系列固定顺序的计算单元,构件之间只通过数据传递交互,每个处理步骤是一个独立的程序,每一步必须在前一步结束后才能开始,数据必须是完整的,以整体的方式传递
  • 管道-过滤器:每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流,这个过程通常是通过对输入
    数据流的变换或计算来完成的,包括通过计算和增加信息以丰富数据,通过浓缩和删除以精简数据,通过改变记录方式以转化数据和递增的转化数据等,这里的
    构件称为过滤器,连接件就是数据流传输的管道,将一个过滤器的输出传到另一个过滤器的输入
  • 两者区别:批处理序列初级必须是完整的,上一步结束才能下一步,而管道-过滤器是流式处理,单个结束就可以进行下一个,不用等整批
调用/返回风格
  • 主程序/子程序:单线程控制,吧问题划分为若干个处理步骤,构件即为主程序和子程序,子程序通常可合成为模块,过程调用作为交互机制,即充当连接件的角色
    调用关系是具有层次性的,其语义逻辑表现为主程序的正确性取决于她调用的子程序的正确性
  • 面对对象:显式调用,构件是对象,独享是抽象数据类型的实例,在抽象数据类型中,数据的标识和他们的响应操作封装起来,对象
    的行为体系西安在其接受和请求的动作,连接件即是对象间交互的方式,对象时通过函数和过程的调用来交互的
  • 层次结构:构件组织成一个层次结构,连接件通过决定层间如何交互的协议来定义,每层为上一次提供服务,使用下一层的服务,只能见到和自己的邻接的层,通过
    层次结构,可以将大的问题分解为诺干个渐进的下问题逐步解决,可以隐藏问题的复杂度,修改某一层,最多印象其相邻的两层
  • 层次结构的缺点是层数多了,效率就变低了
独立构件风格
  • 进程通信:独立构件,构件是独立的过程,连接件是消息传递,构件通常是命名过程,消息传递的方式可以使点对点,异步或同步方式以及远程过程调用等
  • 时间驱动系统:隐式调用,构件不直接调用一个过程,二十触发或广播一个或多个时间,构件中过程在一个或多个时间中注册,当某个时间被触发时,系统
    自动调用在这个事件中注册的所有过程,一个事件的触发就导致了另一个模块的过程调用,这种风格中的构件是匿名的过程,他们
    之间调户的连接件往往是以过程之间的隐式调用来实现的,主要优点是为软件复用提供了强大的支持,为构件的维护和演化带来了方便,其缺点是构件放弃了对系统计算的控制
虚拟机风格
  • 解释器:解释器通常包括一个完成解释工作的解释引擎,一个包含将被解释的代码的存储区,一个记录解释引擎当前工作状态的数据结构
    以及一个记录源代码被解释执行的进度的数据结构,具有解释器风格的软件汇总含有一个虚拟机,可以仿真硬件的执行过程和一些关键应用,缺点是执行效率低
  • 基于规则的系统:基于规则的系统包括规则集,规则解释器,规则/数据选择器和工作内存,一般用在人工智能领域和DSS中
仓库风格
  • 数据库系统:数据共享,构件主要有两大类,一类是中央共享数据元,保存当前系统的数据状态,另一类是多个独立处理单元,处理单元对数据元素进行操作
  • 黑板系统:包括知识源.黑板和控制三部分,知识源包括若干独立计算的不同单元,提供解决问题的只是,知识源响应黑板的变化,也只修改黑板,黑板是一个
    全局数据库,包括问题域解空间的全部状态,是知识源相互作用的唯一媒介,知识源响应是通过黑板状态的变化来控制的,黑板系统通常应用
    在对于解决问题没有确定性算法的软件中(信号处理,问题规划,编译器优化等)
  • 超文本系统:构件以网状链接方式相互连接,用户可以在构件之间进行按照人类的联想思维任意跳转到相关构件,超文本是一种非线性的网状信息组织方法
    它以结点为基础单位,链作为结点之间的联想式关联,超文本系统通常因公在互联网领域
  • 数据库系统和黑板系统的区别:数据库系统以数据为核心,黑板系统以知识源为核心
两层c/s架构在这里插入图片描述
  • 缺点:开发成本较高,客户点程序设计复杂,信息内容和形式单一,用户界面风格不一,软件移植困难,软件维护和升级困难,新技术不能轻易应用
三层c/s架构在这里插入图片描述
  • 各层在逻辑上保持相对独立,整个系统的逻辑结构更为清晰,能提高系统和软件的可维护性和可扩展性
  • 允许灵活有效的选用相应的平台和硬件系统,具有良好的可升级性和开放性
  • 各层可以并行开发,各层也可以选择各自最适合的开发语言
  • 功能层有效的隔离表示层和数据层,为严格的安全管理奠定了坚实的基础,整个系统的管理层次也更加的合理和可控制
三层b/c架构在这里插入图片描述
  • b/s架构缺乏对动态页面的支持能力,没有集成有效的数据库处理功能
  • b/s架构的安全性难以控制
  • 采用b/s架构的应用系统,在数据查询等响应速度上,要远远低于c/s架构
  • b/s架构的数据提交一般以页面为单位,数据的动态交互性不强,不利于OLTP的应用
混合架构风格在这里插入图片描述
  • 内外有别模型:在内部局域网使用c/s架构,在企业外部使用b/s架构
  • 查改有别模型:查询的使用b/s脚骨,修改的用c/s架构
富互联网应用(RIA)
  • RIA结合了c/s架构反应速度快,交互性强的有点,以及b/s架构传播范围广和容易传播的特性
  • RIA简化并改进B/S架构的用户交互
  • 数据能够被缓存在客户端,从而实现一个比基于HTML的响应速度更快且数据往返于服务器的数据更少的用户界面
  • AJAX在这里插入图片描述
  • mushup在这里插入图片描述
基于服务的架构(SOA)在这里插入图片描述
  • 概念:服务是一种为了满足某项业务需求的操作,规则等的逻辑组合,他包含一系列有序活动的交互,为实现用户目标提供支持
  • 服务构件粗粒度,传统构件细粒度居多
  • 服务构件的接口是标准的,主要是WSDL接口,传统固件通常以具体的api形式出现
  • 服务构件的实现和语言无关,传统构件绑定某种特定语言
  • 服务构件可以通过构件容器提佛那个Qos的服务,传统构件完全由程序代码直接控制
  • 实现方式
    • web service:服务请求者通过服务注册中心(服务描述)查找服务提供者,并请求得到服务,也可以直接绑定服务提供者,直接发起请求在这里插入图片描述
    • ESB:在这里插入图片描述
      • 提供位置透明性的消息路由和寻址服务
      • 提供服务注册和命名的管理功能
      • 支持多种消息传递泛型
      • 支持多种可以广泛使用的传输协议
      • 支持多种数据格式和相互转换
      • 提供日志和监控功能
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值