软件工程---17.分布式软件工程

分布式系统的5个优点

  1. 资源共享
  2. 开放性
  3. 并发性
  4. 可伸缩性
  5. 容错性

分布式计算中必须考虑的设计问题

  1. 透明性:隐藏底层分布

  2. 开放性

  3. 可伸缩性

    • 三个维度
      • 规模:又分为增强扩展(单挑)增加扩展(群殴)
      • 分布
      • 可靠性
  4. 信息安全性
    主要防止以下类型的攻击

    • 拦截
    • 中断
    • 更改
    • 伪造
  5. 失效管理

云计算的三种服务

  1. 基础设施即服务IaaS、
  2. 平台即服务PaaS、
  3. 软件即服务SaaS

云计算的一个主要优点

大大降低了提供冗余系统构件的成本

分布式计算系统中计算机可能会发生两种基本类型的交互

  1. 过程式交互
  2. 基本消息交互

可伸缩性(重点)

系统的可伸缩性反映了系统能在外部需求增加的情况下提供高质量的服务的能力。
可伸缩性的三个维度是规模、分布和可管理性

规模。

系统应该增加更多的系统资源来应对越来越多的用户。理想情况下,随着用户数量的增加,系统应该自动增加规模来处理用户数量的增加。
所谓的规模,有增强扩展( scaling up,纵向扩展,单挑)增加扩展( scaling out,横向扩展,群殴)的区别

  • 增强扩展意味着用更强大的资源替换系统中的资源。例如,你或许会把服务器的内存由16GB增加到64GB。
  • 增加扩展是指向系统增加更多的资源(例如,增加一个额外的服务器与现存的服务器一起工作)。增加扩展通常要比增强扩展更有成本效益,但是这意味着系统要设计得能并行处理才行。

中间件

在这里插入图片描述

  1. 交互支持
  2. 提供公共服务

分布式系统的体系结构模式

  1. 主从体系结构
  2. 两层客户-服务器体系结构
  3. 多层客户-服务器体系结构
  4. 分布式构件体系结构
  5. 对等体系结构

主从体系结构

在这里插入图片描述

两层客户-服务器体系结构

在这里插入图片描述

多层客户-服务器体系结构

在这里插入图片描述

分布式构件体系结构

在这里插入图片描述

对等体系结构

在这里插入图片描述

Sass和Soa的区别

  1. SaaS是在远程服务器上提供功能而客户端通过Web浏览器访问的一种方法。服务器在交互会话期间维持用户的数据和状态。事务常常是长事务(例如,编辑文件)。
  2. SOA是把软件系统构建为一系列单独的无状态服务的方法。这些服务或许由多个提供商提供并且可能是分布的。典型地,事务是短事务,其中服务被调用,做-一些处理,接着返回结果。
  3. SaaS是向用户交付应用功能的方法,而SOA是应用系统的一种实现技术
  4. 使用SOA实现的系统不一定要作为Web服务被用户访问

实现SaaS的时候必须考虑以下3个重点要素

  1. 可配置性。
  2. 多租户。
  3. 可伸缩性

当在SaaS的环境下考虑可伸缩型时,我们采用的是“增加扩展”而不是“增强扩展,尽量用群殴不要用单挑

可伸缩性软件的一般准则如下

  1. 所开发的应用要使得每一个构件都实现为简单的无状态服务,每一个服务都可以运行在一个服务器上
  2. 使用异步交互来设计系统,这样引用程序就不需要等待交互结果
  3. 管理资源
  4. 设计你的数据库以允许细粒度的加锁
  5. 使用云Paas平台
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值