专栏首页cwl_Java2010年系统架构师软考案例分析考点

2010年系统架构师软考案例分析考点

1.软件架构风格

描述特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构 件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义。

1.1 主程序-子程序架构风格

所有的计算构件作为子程序协作工作,并由一个主程序顺序地调用这些子程序,构件通过共享存储区交换数据

1.2 管道-过滤器架构

每个构件都有一组输入和输出,构件接受数据输入,经过内部处理,然后产生数据输出。这里的构件称为过滤器,构件之间的连接件称为数据流传输的管道。

2.集中式数据架构

是由一个处理器、与它相关联的数据存储设备以及其他外围设备组成,它被物理地定义到单个位置。系统提供数据处理能力,用户可以在同样的站点上操作,也可以在地理位置隔开的其他站点上通过远程终端来操作。系统及其数据管理被某个或中心站点集中控制。

3.分布式数据架构

使用多个计算机系统上的多个局部数据库系统构成,数 据可以在多个不同的局部数据库中进行传送,由不同的数据库管理系统软件进行管理,运行 在多种不同的计算机上,支持多种不同的操作系统。这些机器位于(或分布在)不同的地理位 置并通过多种通信网络连接在一起。企业数据可以分布在不同的计算机上,一个应用程序可 以操作位于不同地理位置的机器上的数据。

4.读写分离架构

利用了数据库的复制技术,将数据的读和写分布在不同的处理节点上,从而达到提高可用性和扩展性的目的.CRSS的分布式数据库系统需要由多个局部数据库系统、多个热备份数据库系统和多个数据缓存组成。局部数据库负责数据的写入,多个热备份数据库系统用以解决单点故障的问题,数据缓存负责为应用提供所读取的数据。

  • 4.1 读取数据:应用访问缓存,如果命中则返回,否则从局部数据库系统中读取数据并将数据加载到缓存后返回。
  • 4.2 添加数据:采用延迟加载策略,应用将数据直接写入局部数据库。
  • 4.3 更改数据:应用更改局部数据库中的数据,将缓存中的数据标记为失效。
  • 4.4 删除数据:应用删除局部数据库中的数据,将缓存中的数据标记为失效。

5.ESB软件架构

5.1 主要功能
  • 应用程序的位置透明性
  • 传输协议转换
  • 消息格式转换
  • 消息路由
  • 消息增强
  • 安全支持
  • 监控和管理
5.2 优点
  • 采用 ESB 作为集成框架,能够实现灵活的部署结构,包括 CS 结构、P2P 结构等。
  • 采用 ESB 作为集成框架,待集成系统只需要和总线进行联系,彼此之间不需要互相通信,这样就大大降低了系统的耦合程度。
  • 采用 ESB 作为集成框架,在加入新的待集成系统时,只需要采用插件的方式实现传输协议和数据格式的适配即可,系统的可扩展性较强。

6.系统的可靠度和失效率

6.1 可靠度

就是系统在规定的条件下、规定的时间内不发生失效的概率。

6.2 失效率

失效率又称风险函数,也可以称为条件失效强度,是指运行至此刻系统未出现失效的情况下,单位时间系统出现失效的概率。

7.动态冗余

动态冗余又称为主动冗余,它是通过故障检测、故障定位及故障恢复等手段达到容错的 目的。其主要方式是多重模块待机储备,当系统检测到某工作模块出现错误时,就用一个备 用的模块来替代它并重新运行。各备用模块在其待机时,可与主模块一样工作,也可以不工 作。前者叫热备份系统(双重系统),后者叫冷备份系统(双工系统、双份系统)。

8.N版本程序设计

N 版本程序设计是一种静态的故障屏蔽技术,其设计思想是用 N 个具有相同功能的程 序同时执行一项计算,结果通过多数表决来选择。其中 N 个版本的程序必须由不同的人独 立设计,使用不同的方法、设计语言、开发环境和工具来实现,目的是减少 N 个版本的程 序在表决点上相关错误的概率。

9.检错技术

检错技术实现的代价一般低于容错技术和冗余技术,但有一个明显的缺点,就是不能自 动解决故障,出现故障后如果不进行人工干预,将最终导致软件系统不能正常运行。

9.1 检错技术的实现方式

最直接的一种实现方式是判断返回结果,如果返回结果超出 正常范围,则进行异常处理;计算运行时间也是一种常用技术,如果某个模块或函数运行时间超过预期时间,可以判断出现故障;还有置状态标志位等多种方法,自检的实现方式需要 根据实际情况来选用。

9.2 检错技术的处理方式

大多数都采用“查处故障-停止软件运行-报警”的处理方式。但根据故障的不同情况,也有采用不停止或部分停止软件系统运行的情况,这一般由故障是否需要实时处理来决定。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java基础-数据类型转换

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明...

    cwl_java
  • 速读原著-TCP/IP(SNMP:Trap)

    本章我们看到的例子都是从管理进程到代理进程的。当然代理进程也可以主动发送 t r a p到管理进程,以告诉管理进程在代理进程侧有某些管理进程所关心的事件发生,如...

    cwl_java
  • 系统架构师论文-论基于UML的需求分析

    cwl_java
  • Redis应用之缓存实现

      Redis的众多应用场景中缓存绝对是频率最高的场景了。本文来介绍下Redis作为缓存要注意的地方。

    用户4919348
  • netty案例,netty4.1中级拓展篇二《Netty使用Protobuf传输数据》

    在netty数据传输过程中可以有很多选择,比如;字符串、json、xml、java对象,但为了保证传输的数据具备;良好的通用性、方便的操作性和传输的高性能,我们...

    小傅哥
  • Prometheus监控学习笔记之PromQL简单示例

    返回度量指标名称为 http_requests_total,标签分别是 job="apiserver", handler="/api/comments" 的所有...

    Jetpropelledsnake21
  • 关关的刷题日记75 – Leetcode 160. Intersection of Two Linked Lists

    关关的刷题日记75 – Leetcode 160. Intersection of Two Linked Lists 题目 ? 思路 思路:题目让求两个单链表...

    WZEARW
  • 一道有悖直觉的概率题

    我是一个概率控,平常遇到和概率相关的事情都喜欢去推算一下,喜欢看概率有关的影视作品(决胜21点、欺诈游戏、赌博默示录……),就连在汤姆熊或是巴黎人,我也会估下哪...

    Crossin先生
  • 链表应用--基于链表实现栈

    在上几小节中我们实现了基本的链表结构,并在上一节的底部给出了有关链表的源码,此处在贴一次吧,猛戳

    wfaceboss
  • Selenium2+python自动化8-SeleniumBuilder辅助定位元素

    前言 福利来了,对于用火狐浏览器的小伙伴们,你还在为定位元素而烦恼嘛? 上古神器Selenium Builder来啦,哪里不会点哪里,妈妈再也不用担心我的定位元...

    上海-悠悠

扫码关注云+社区

领取腾讯云代金券