软件设计模式与体系结构(下)

基于网络的软件体系结构

  • 特点
    • 面向互联网应用软件,属于分布式计算范畴。
    • 通常要考虑如何更加有效地利用网络上的计算资源。

客户端-服务器软件体系结构

基本概念

  • C/S软件体系结构是基于资源不对等,且为实现共享而提出来的,是20世纪90年代成熟起来的技术
  • C/S体系结构有三个主要组成部分:服务器客户应用程序网络

任务分配
服务器(后端):与客户机通讯的接口、业务逻辑、数据管理
服务器任务主要集中于:

  • 数据库安全性的要求
  • 数据库访问并发性的控制
  • 数据库前端的客户应用程序的全局数据完整性规则
  • 数据库的备份与恢复

客户应用程序(前端):业务逻辑、与服务器通讯的接口
客户端主要任务:

  • 提供用户与数据库交互的界面
  • 向数据库服务器提交用户请求并接收来自数据库服务器的信息
  • 利用客户应用程序对存在客户端的数据执行应用逻辑要求

一层客户端-服务器软件体系结构
在这里插入图片描述
在这里插入图片描述
文件共享软件体系结构
在这里插入图片描述在这里插入图片描述
缺点:
1.该体系结构只能支持少量的用户
2.修改业务逻辑时必须要修改每个客户端

二层客户端-服务器软件体系结构
在这里插入图片描述
基本构件:数据库服务器、客户端应用程序
连接件:

  • 经由网络的调用-返回机制或事件机制
  • 客户机<–>服务器:客户机向服务器发送请求,并接收返回结果

在这里插入图片描述
工作原理
在这里插入图片描述
在这里插入图片描述

胖客户端和瘦客户端
划分标准:业务逻辑的划分比重
胖客户端:客户端执行大部分的数据处理操作
瘦客户端:客户端具有很少或没有业务逻辑
在这里插入图片描述
优缺点
在这里插入图片描述

适用场合
在这里插入图片描述
两层客户端-服务器体系结构的缺点
1.单一服务器且以局域网为中心得,难以扩展至大型企业广域网或因特网
2.受限于供应商,程序得升级维护必须由供应商重新开发扩展
3.数据库被厂商锁定。使用户更换其他产品很困难
4.难以管理
5.程序维护变得越来越困难,程序模块的重用性差,各个模块相对独立
6.很难管理大量的客户机

三层客户端-服务器软件体系结构

在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述
三层客户-服务器优点
在这里插入图片描述在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述

在这里插入图片描述在这里插入图片描述

在这里插入图片描述

三层层次体系结构与三层客户端-服务器软件体系结构的区别
1.在通常的层次体系结构中所涉及的层次指的的是逻辑层,而三层客户端-服务器体系结构中所涉及的层是从物理方面考虑的层
2.即客户端运行在PC上,服务层被部署在应用服务器上,数据库层包含数据库与数据库管理系统软件,被部署在数据库服务器上在这里插入图片描述
在这里插入图片描述

P2P软件体系结构

非集中架构(即在网络中没有服务器或客户端的概念)

每个结构都是客户端,也是服务器

无中心服务器的P2P
在这里插入图片描述

集中目录式P2P——第一代P2P软件体系结构

在这里插入图片描述
P2P结点向中央目录服务器注册关于名称、地址、资源、元数据、所能提供的服务等自身的信息,但所有内容存储在各结点中而非服务器
缺点: 网络的稳定性较差。一旦服务器失效,则该服务器下的对等结点可能全部失效
优点: 提高了网络的可管理性,使得对共享资源的查找和更新非常方便

目录服务器形式上是该对等网络的“中心”。但是,实际上目录服务器除了提供给各结点的基本的已注册信息之外,并不真正地承担任何其他的功能

纯P2P——第二代P2P软件体系结构

  • 纯P2P体系结构也被称为广播式的P2P模型,它没有集中的中央目录服务器,每个用户随机接入网络,并与自己相邻的一组邻居结点通过端到端连接构成一个逻辑覆盖的网络
  • 纯P2P网络结构解决了网络结构中心化的问题,扩展性和容错性较好

纯P2P体系结构缺点:

  • 服务发现限制与困难
  • 控制信息的泛滥消耗大量带宽并且可能很快造成网络拥塞甚至网络的不稳定,从而导致整个网络的可用性较差
  • 系统容易受到垃圾信息,甚至是病毒的恶意攻击

非结构化的层次纯P2P——第三代P2P软件体系结构

在这里插入图片描述

叶子结点、超级结点
在这里插入图片描述

P2P小结:

  • P2P是一种分布式网络,打破了传统的C/S模式,在网络中每个结点的地位都是对等的
  • 每个结点peer既充当服务器,为其他结点提供服务,同时也享用其他结点提供的服务
    在这里插入图片描述
    在这里插入图片描述
    Napster——世界上第一个应用性P2P网络的杰出代表
    Napster服务器里无歌曲,仅有其他用户硬盘上的文件的索引
    集中目录式P2P
    在这里插入图片描述

在这里插入图片描述
Gnutella——分散型无结构拓扑结构
Gnutella协议,基于完全随机图的Flooding搜索算法
在这里插入图片描述

在这里插入图片描述
混合型体系机构
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

网格计算软件体系结构

网格计算——针对复杂科学计算的新型计算模式
基于网格的软件体系结构是随着互联网发展而得到广泛应用的一类软件体系结构
特点:

  • 面向互联网应用软件,属于分布式计算范畴
  • 通常要考虑如何更加有效地利用网络上的计算资源

这种计算模式是利用互联网把分散在不同地理位置的计算以及其他设备组织成一个 “虚拟的超级计算机” 其中每一台参与计算的计算机被称为一个 “计算结点” 或者简称为结点
整个计算是由成千上万个 “结点” 组成的 “一张网格” 来完成的。
在这里插入图片描述网格计算的主要目的是协同多个组织的多种计算资源,达到为了一个特定目的的计算。
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

最常使用的网格
计算网格
计算网格是各个结点都有计算与处理能力的网格
数据网格
数据存储是数据网格的主要共享资源
网格网络
网络网格的主要目的是提供容错和高性能的通信服务

网格计算与其他计算的比较
网格计算与传统的超级计算机的比较

  1. 分布式计算的主要好处是每个计算结点都可以是廉价的通用计算机,而当把这些普通硬件组合在一起的时候,能产生和带有多处理器的超级计算机类似的计算能力
  2. 超级计算机通常带有定制的操作系统,并且要求程序处理并发问题,因此在超级计算机的环境里写代码通常是昂贵的和困难的
    网格计算与P2P计算的比较
  3. 网格计算强调资源的整合、性能、服务质量和安全性等问题
  4. P2P计算关注网络服务质量和支持问题

SOA软件体系结构与Web Service

SOA体系结构中,服务提供者与消费者之间不是静态绑定的,而是可以被自动发现和动态绑定的

  • SOA是一种面向服务的软件体系结构

  • SOA定义了两个计算实体之间的交互,是利用网络上已有的服务创建新的软件应用体系结构

  • SOA的一个重要特征是服务接口及其实现的分离
    在这里插入图片描述
    在这里插入图片描述

  • SOA体系结构的特点

    • 服务是可以被发现和动态绑定
    • 服务是自我包含与模块化
    • 服务是松散耦合
    • 服务有一个网络可寻址的端口
    • 服务是地点透明
    • 服务是面向组合

在这里插入图片描述

Web Service——SOA实现的一种
在这里插入图片描述
工作原理
在这里插入图片描述在这里插入图片描述

云计算软件体系结构

按需自助服务、不受限的网络访问、资源地、快速灵活、可计量的服务
在这里插入图片描述
在这里插入图片描述云计算是一种能够通过网络以便利的、按需付费的方式获取计算资源(包括网络、服务器、存储、应用和服务等)的范型,这些资源来自一个共享的、可配置的资源池,并能够以最省力和无人干预的方式获取和释放。
基础设施即服务(IaaS):该模式的云服务,提供处理器、存储、网络和其他基本计算资源的租用服务,允许用户在其上部署、运行任意软件。
平台即服务(PaaS):该模式的云服务,提供指定类型应用的托管服务,用户可以把用指定语言编写的程序创建和部署在云上。
软件即服务(SaaS):该模式的云服务,提供在云基础设施上运行的、由提供者创建的应用服务。

云计算基本特点

  1. 按需自助服务
  2. 不受限的网络访问
  3. 资源池
  4. 快速灵活
  5. 可计量的服务

云计算与网格计算的比较

  1. 两者产生的年代不同
  2. 两者的应用领域不同
    网格计算主要面向科研领域,强调强大的分布式计算能力
    云计算主要面向商业领域,强调计算资源的服务化
  3. 两者的资源归属不同
    云计算中的计算资源相对较为集中,通常属于一个组织
    网格中的计算资源通常归属于多个不同的组织
  4. 两者对异构系统的处理方式不同
    网格计算通过网格中间件平台屏蔽异构系统,为用户提供一个统一的标准接口来使用网格中的资源
    云计算则通过虚拟化技术或者面向服务的计算技术来解决异构系统集成问题
  5. 适用虚拟化技术的区别
    云计算通过虚拟化技术来提高服务器的利用率,提高跨平台应用能力,提高系统的快速部署及容错能力;
    网格计算中并不强调虚拟化技术
  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
上篇:软件设计模式例子代码  【例2.2】简单工厂方法模-汽车保险  【例2.3】工厂方法模-汽车保险  【例2.4】抽象工厂模-房屋信息  【例2.5】生成器模-房屋信息  【例2.6】单例模-互联网连接  【例3.2】组合模-五子棋代码  【例3.3】组合模-空军指挥系统  【例3.4】组合模-世界问候语  【例3.7】类适配器模-客户信息验证  【例3.8】对象适配器模-字符串排序  【例3.10】外观模-安全系统  【例3.11】外观模-椭圆功能  【例3.13】桥接模-茶水机系统  【例3.14】桥接模-几何立体体积  【例4.1】迭代器模-矩阵搜索  【例4.2】迭代器模-产品搜索  【例4.4】访问者模-名牌鞋销售软件  【例4.5】访问者模-计算机部件销售软件  【例4.6】命令模-室内温度控制  【例4.7】命令模-室内温度控制-2个GUI  【例4.8】命令模-室内温度控制-3个GUI  【例4.10】中介者模-旅游信息共享  【例4.11】中介者模-海岛机场  【例4.13】策略模-整数排序  【例4.14】策略模-中国属相  【例4.16】状态模-交通信号灯-设计1  【例4.16】状态模-交通灯信号灯-设计2  【例4.16】状态模-交通灯信号灯-设计3 下篇:软件体系结构例子代码  【例6.4】结构化设计-文件更新-C源代码  【例6.5】面向对象设计架构-文件更新  【例6.7】顺序批处理架构-文件更新  【例6.8】顺序批处理架构-图像处理  【例6.9】管道过滤器架构-主动过滤器  【例6.10】管道过滤器架构-被动过滤器  【例6.11】管道-过滤器架构-文件更新  【例6.12】管道-过滤器架构-图像处理程  【例6.14】事件体系结构-鼠标响应  【例6.17】事件体系结构-观察者模-大草原1  【例6.18】事件体系结构-观察者模-大草原2  【例6.19】事件体系结构-观察者模-温度显示  【例6.21】层次架构-软件测试  【例6.22】层次架构-银行- Access数据库  【例6.23】MVC架构-二手车拍卖-无观察者  【例6.24】MVC架构-二手车拍卖-观察者-3个图形界面  【例6.25】MVC架构-二手车拍卖-观察者-1个图形界面

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值