系统架构师—软件架构设计(二)CS/BS/SOA/DSSA/ABSD

1.层次架构风格

1.1.两层C/S架构

客户端和服务器都有处理功能,相比较于传统的集中式软件架构,还是有不少优点的,但是现在已经不常用,原因有:开发成本较高、客户端程序设计复杂、信息内容和形式单一、用户界面风格不一、软件移植困难、软件维护和升级困难、新技术不能轻易应用、安全性问题、服务器端压力大难以复用。

系统架构师—软件架构设计(二)CS/BS/SOA/DSSA/ABSD
其优点下面四点:
  • 各层在逻辑上保持相对独立,整个系统的逻辑结构更为清晰,能提高系统和软件的可维护性和可扩展性;
  • 允许灵活有效的选用相应的乎台和硬件系统,其符食好的可升级性和开放性;
  • 各层可以并行开发,各层也可以选择各自最适答的并发语言;
  • 功能层有效的隔离于表示层与数据层,为严格的安全奠定坚实的基础,整个系统的管理层次也更加合理和可控制
  • 三层C/S架构设计的关键在于各层之间的通信效率,要慎重考虑三层间的通信方法、通信频率和数据量,,否则即便分配给各层的硬件能力在强,性能也不高。

    1.3.三层B/S架构

    1. 是三层C/S架构的变种,将客户端变为用户客户端上的浏览器,将应用服务器变为网络上的WEB服务器,又称为0客户端架构,虽然不用开发客户端,但有很多缺点,主要是数据处理能力差;
    2. B/S架构缺乏对动态页面的支持能力,没有集成有效的数据库处理功能;安全性难以控制;
    3. 在数据查询等响应速度上,要远远低于C/S架构;
    4. 数据提交一般以页面为单位,数据的动态交互性不强,不利于OLTP应用。

    1.4.混合架构风格

    1. 内外有别模型:企业内部使用C/S
    2. 外部人员访问使用B/S
    3. 查改有别模型:采用B/s查询,采用C/S修改
    4. 混合架构实现困难,且成本高

    1.5.富互联网应用RIA

    弥补三层B/S架构存在的问题,RIA是一种用户接口,比用HTML实现的接口更加健壮,且有可视化内容,本质还是网站模式,其优点如下:

    1. RIA结合了C/S架构反应速度快、交互性强的优点与B/S架构传播范围广及容易传播的特性;
    2. RIA简化并改进了B/S架构的用户交互;
    3. 数据能够被缓存在客户端,从而可以实现一个比基于HTML的响应速度更快且数据往返于服务器的次数更少的用户界面;
    4. 本质还是0客户端,借助于高速网速实现必要插件在本地的快速缓存,增强页面对动态页面的支持能力,典型的如小程序。

    2.面向服务的架构风格(SOA)

    2.1.SOA概述

    SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通信,不涉及底层编程接口和通信模型。

    在SOA中,服务是一种为了满足某项业务需求的操作、规则等的逻辑组合,它包含一系列有序活动的交互,为实现用户目标提供支持。

    SOA并不仅仅是一种开发方法,还具有管理上的优点,管理员可直接管理开发人员所构建的相同服务。多个服务通过企业服务总线提出服务请求,由应用管理来进行处理,如下:

    系统架构师—软件架构设计(二)CS/BS/SOA/DSSA/ABSD
    1. 服务发现
      UDDI
      用于web服务注册和服务查找,描述了服务的概念,定义了编程的接口,供其他企业来调用。
      DISCO
      发现公开服务的功能及交互协议。
    2. 描述服务
      WSDL (WEB服务描述语言)协议:用于描述Web服务的接口和操作功能,描述网络服务。
    3. 消息格式层
      SOAP为建立Web服务和服务请求之间的通信提供支持。
      REST(Representational State Transfer,表述性状态转移)是一种只使用HTTP和XML进行基于Web通信的技术,可以降低开发的复杂性,提高系统的可伸缩性。
    4. 编码格式层
      扩展标记语言(Extensible Markup Language, XML),用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。

    2.3.SOA实现方式

    web service
    服务提供者、服务注册中心((中介,提供交易平台,可有可无)、服务请求者。服务提供者将服务描述发布到服务注册中心,供服务请求者查找,查找到后,服务请求者将绑定查找结果。如下图:

    系统架构师—软件架构设计(二)CS/BS/SOA/DSSA/ABSD

    4.基于架构的软件开发ABSD

    ABSD方法是架构驱动,强调由业务、质量和功能需求的组合驱动架构设计。它强调采用视角和视图来描述软件架构,采用用例和质量属性场景来描述需求。进一步来说,用例描述的是功能需求,质量属性场景描述的是质量需求(或侧重于非功能需求)。
    使用ABSD方法,设计活动可以从项目总体功能框架明确就开始,这意味着需求获取和分析还没有完成,就开始了软件设计。
    ABSD方法有三个基础。第一个基础是功能的分解,使用已有的基于模块的内聚和耦合技术;第二个基础是通过选择架构风格来实现质量和业务需求;第三个基础是软件模板的使用,软件模板利用了一些软件系统的结构。
    ABSD方法是递归的,且迭代的每一个步骤都是清晰定义的。因此,不管设计是否完成,架构总是清晰的,有助于降低架构设计的随意性。

    架构设计是在需求分析之后,概要设计之前,是为了解决需求分析和软件设计之间的鸿沟问题。基于架构的软件开发过程可分为下列六步:

    系统架构师—软件架构设计(二)CS/BS/SOA/DSSA/ABSD

    架构(体系结构)文档化:主要产出两种文档,即架构(体系结构)规格说明,测试架构(体系结构)需求的质量设计说明书。文档是至关重要的,是所有人员通信的手段,关系开发的成败。
    架构复审:由外部人员(独立于开发组织之外的人,如用户代表和领域专家等)参加的复审,复审架构是否满足需求,质量问题,构件划分合理性等。若复审不过,则返回架构设计阶段进行重新设计、文档化,再复审。

    架构实现:用实体来显示出架构。实现构件,构件组装成系统,如下左图:
    架构演化:对架构进行改变,按需求增删构件,使架构可复用,如下右图:

    系统架构师—软件架构设计(二)CS/BS/SOA/DSSA/ABSD

    文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91536 人正在系统学习中

    来源:歪桃

    声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2021年8月23日
    下一篇 2021年8月23日

    相关推荐