2、分层体系结构

属于调回-返回风格,在现代软件开发中,应用分层的方法通常把软件开发划分为物理层、逻辑层和应用层。

分层体系结构通常加将软件系统组成一个层次结构,每一层为上层服务,并作为下层的客户。在一些分层系统中,除了一些精心安排的输出函数外,内部的层支队相邻的层可见。这样的系统中构件在较低层实现了虚拟机为高层屏蔽底层细节和硬件变换连接件通过决定层如何交互的协议来定义拓扑约束包括对相邻间交互的约束这种风格支持基于可增加抽象层的设计,允许将一个复杂问题分解成一个增量步骤序列的实现,每一层最大影响两层。同时只有给相邻提供相同的接口,允许每次用不同的方法实现,通用为冉家重用提供了强大的支持。

分层体系结构有助于这样的系统设计:将任务分解成多个子任务组,其中每个子任务组处于某个特定的抽象层次上。系统中的每一层承担着为上层提供服务和调用下层提供的功能,函数的任务。最上层则只调用下层提供的能够函数,最底层则只负责为相邻上一层提供服务,这样分层系统的各个构件在不同层次上形成了不同功能级别的虚拟机。

图13.3分层体系结构示意图如下

多层体系结构具有如下特点。

①系统功能分布在多个级别的不同层次上,系统维修和扩展都比较容易,因为系统功能的改变最多只影响相邻的上下层。

②从低层到高层可以分级控制,对不同级别的应用要求,提供不同水平的服务。

③多级系统可以扩充,以服务大量同时使用系统的用户。

④支持灵活的实现和重用,只有接口不变,同一级的不同实现可以交换使用。

这种体系结构使用上也有一些限制,如下所述。

①各层之间可能存在多种不同的通信协议

②新技术不能轻易应用,因涉及多个层次之间的连接,一个软件平台及开发工具一旦选定不可能      轻易更改。

13.2,3客户机/服务器体系结构

客户机/服务器(Client/ Server ,C/S)体系结构找那个,应用被分成两部分客户机(前台)负责完成与yoghurt交互的任务,如数据输入和输出结果的显示;服务器通常包含一组服务器对象,能同时为多个客户机提供服务,服务器为多个客户机应用程序管理数据,而客户机程序则只是发生请求和分析从服务器接收的数据,这是一种称为“胖客户机”或“瘦服务器”的体系结构,体系结构图参见图13.4

C/S体系结构优点:1、客户机、服务器的分离,客户机应用程序和服务器构件分别运行在不同的计算机上(有极大的适应性、灵活性、易于对系统进行扩充和删减) 2、允许客户机端和服务器端做远距离的连线操作,两者可以分开同时进行开发,一个服务器可以服务于多个客户机。3、功能构件的充分隔离,使客户机应用程序的开发集中于数据的显示和分析,而数据库服务器的开发,则集中于数据的管理,这样将大的应用处理任务分布到许多通过网络连接的低成本计算机上,可以节约大量的费用。

C/S系统结构缺点

①客户机和服务器通信依赖于网络,可能成为整体系统运作的瓶颈(若两个端都在同一台计算机上则没有该问题)

②一个服务器对多个客户机的支持工作方式:使服务器的定义及界面不能随意更改,否则要保证大量客户机随服务器的更新而改变需要花费太大的精力。

③对于客户机的要求越来越复杂,对客户机的硬件配置要求较高,软件的不断升级及随之而来的硬件提升,使客户机变得越来越臃肿。

第一个限制:可以通过“瘦客户机”的方式来解决,“瘦客户机”有标准的界面定义和显示方案,如网页浏览器(Web Browser)就是著名例子,只要遵循标准,网上应用就不必担心,需要对大量客户机软件额维护工作。

第二个限制:通过缩减客户机的运算要求及负荷的方式来解决,可以通过将客户机的部分应用分解到专门的一个独立层中的办法来解决,随之出现的是三层的C/S体系结构。

2、3层和多层体系结构。

3层系统结构可以看作有两对客户机/服务器,是在两层的客户机/服务器体系结构的基础上进行的抽象,第一级通常是数据库管理结点,起数据库服务器的功能,第二级称中间级,则处理商业逻辑或应用有关的计算,中间级即使第一级的客户机,也是第二级的服务器,第三级是用户界面,负责与用户打交道,13.5 3层客户机服务器体系结构如如下

表示层是应用系统的用户接口部分,负担着用户与应用的对话功能,主要检查用户从键盘等设备输入的数据,显示应用输入的数据。一般只与中间层交互,而不直接访问后台数据库。

功能层又称为应用逻辑层,是应用逻辑处理的核心,是连接客户机和数据库服务器的中介和桥梁,它响应用户发来的请求,执行某种应用逻辑任务,同时中间层向数据库服务器发送SQL请求,数据库服务器将结果返回给应用服务器,由应用服务器最终将数据和结果返回给客户机。

数据层的主要组成部分就是:数据库管理系统,负责管理对数据库中数据的读写工作,通常是基于SQL的DBMS,该层主要的任务是实现数据的存储,数据的访问控制,数据完整性的约束和并发控制。

3层C/S体系结构的概念可以很容易地推广到多层C/S体系结构,多 层C/S体系结构由一系列的客户机/服务器组成,几层系统可以看是由n-1对客户机/服务器对组成。

如图13.5的3层C/S体系结构中增加一个Web服务器和瘦客户机就可以得到图13.6的4层C/S体系结构。

Web服务器负责响应瘦客户机端的网页浏览器请求,然后调用商业逻辑结点中的相关对进行运算。

13.2.4浏览器/服务器体系结构(B/S) 

B/S软件体系结构即Browser/Seruer(浏览器/服务器)结构对C/S体系结构进行改进后的一种结构,也可以认为是C/S体系结构在Internte平台下的一种应用,在B/S体系结构下,用户界面完全通过WWW浏览器实现,一部分事物逻辑在前端实现,但是主要事物逻辑在服务器端实现,它利用浏览器技术,结合浏览器的多种脚本语言。通过浏览器就实现了原来需要复杂的专用软件才能实现的强大功能,是一种全新的软件体系结构。B/S软件体系结构图参见图13.7

要实现一个完整的 Browser/Seruer应用系统,至少需要由Brower Webserver  DBServer 3个部分组成。

B/S模式第一层客户机的主题是浏览器,它是B/S结构中用户与整个系统交互的界面,用于向服务器发送特定的数据请求,以及接收从服务器发送来的数据,浏览器将HTML代码转化成图文并茂的网页,网页还具备一定的交互功能,允许用户在网页提供的申请表上输入信息。提交给后台,并提出处理请求,浏览器交互的后台就是第二层的Web服务器。

第二层Web服务器是实现B/S软结构的关键,Web服务器的引入使得通过浏览器来访问数据库服务器成为可能,免去了开发的维护客户机界面的大量工作,分散在各地的用户只有安装了浏览器软件都可以访问数据库服务器。

第三层数据库服务器的任务类似于C/S模式,负责协调不同的Web服务器发出的请求,关联数据库。

B/S软件体系结构的优点如下

首先它简化了客户端,只需要按照通用的浏览器软件,就可享受到无限丰富的,永远在不断变化和发展着的信息服务,还可以节省客户机的硬盘、空间与内存,取消了所有在客户机一侧的维护工作。

其次B/S体系结构模式特别适用于网上信息的发布

再次B/S体系结构通过Internte技术统一访问不同种类的数据库,提供了异种机器,异种网络、异种应用服务之间的统一服务的最现实额开放性基础。

B/S软件结构存在的一些问题,企业中已经积累了或多或少的各种基于非Internte技术的应用,如何恰当地与这些应用连接,是B/S模式中的一项及其重要的任务,此外缺乏对动态页面的支持能力,没有集成有效的数据库处理功能,系统的扩展能力差,安全性难以控制及集成工具不足等。

13.3现代的软件体系结构风格

13.3.1公共对象请求代理体系结构。

公共对象请求代理体系结构(Common  Object Request Broker Architecture CORBA)是由OMG制定的一种分布式对象计算标准,CORBA顺应软件技术发展的潮流,成功融合了两种软件体系结构风格,一种是基于消息传递的客户机/服务器技术,一种是面向对象软件开发技术CORBA定义了对象之间透明的通信机制,保证了面向对象的软件分布式异构环境下具有良好的互操作性,有效地解决了对象封装和分布式计算环境中资源共享,代码可重用,可移植性等问题,图13.8CORBA系统体系结构图

在OMG的对象管理结构中,ORB是一个关键的通信机制它以实现互操作为主要目标,处理对象之间的消息分布,ORB是一种中间件,主要负责在对象之间建立起客户机/服务器的关系,通过ORB客户机可以透明地访问到一个服务器上的对象内的方法,ORB在异构的分布环境中不同机器上的应用之间提供了一种交互操作的能力,从而实现了多个目标系统之间的无缝连接。

图13.9展示了ORB与  CORBA体系结构的主要构件之间的关系

采用ORB后穿越应用接口的协议都是用CORBA中的接口定义语言IDL定义的IDL是一种语言,但对各个应用而言又是唯一的。

因此CORBA对提供了相当的灵活性,IDL允许用户任意选择适当的操作系统,应用运行的环境,编程语言最重要的是ORB允许集成现有的构件。

13.3.2基于层次消息总线的体系结构风格

层次消息总线(Hierarchy Message Bus  HMB的体系结构风格,计算机硬件体系结构和总线的概念为软件体系结构的研究提供了良好的借鉴和启发,在统一的体系结构框架(即总线和接口规范)下系统具有良好的拓展性和适应性。

HMB风格基于层次消息总线,支持构件的分布和并发构件之间通过消息总线进行通信,HMB体系结构风格的系统示意图参见图13.10

其中消息总线是系统的连接件,负责消息的分派,传递和过滤,处理结果的返回,各个构件挂接在消息总线上,工具需要发出消息,总线消息负责把该消息分派到系统中所有对此消息感兴趣的构件,消息是构件之间通信的唯一方式,构件街道请求后根据自身状态对请求消息进行响应,并通过消息总线返回处理结构,构件通过消息总线连接并不要求各个构件具有相同的地址空间或局限于同一台机器上。

13.3.3异构结构风格

所有的系统不可能都在单一的标准系体系结构下进行设计和开发,实际上各种软件系结构并不是独立存在的,在一个系统中往往有多重体系结构共存,形成复杂的体系结构,即采用异构的软件体系结构,异构体系结构的组合方式有很多种,可以采用平行的方式,构件软件各个子系统的结构,功能和性能为每个类或子系统选择相应的体系结构;也可以利用分层组织,即某种体系结构的一个组成部分在其内部可以是另一种与完全不同的结构,以完全不同的结构类型完整描述体系结构中的每一层。

1、按功能不同构成的混合体系结构

以一个月比较广泛的C/S和B/S混合软件体系结构为例,简单介绍异构结构风格的使用特点: B/S与C/S混合软件体系结构是C/S和B/S有机结构的一种典型的异构体系结构,它集 B/S与C/S软件体系结构的优点,克服了它们的缺点

C/S和B/S模式的结合,其中有些功能模块是在内部运作的适合采用C/S结构;而有些信息需要外部发布的适合采用B/S结构把两者结合起来,各个模块根据其特点选择结合模式,互相配合把多个应用不同模式的子系统集成为一个混合式的系统。

C/S和B/S两种体系结构模式的结合方法,主要由两种:“内在有别”模型和“查改有别”模型

“内在有别”模型中,企业内部用户可以通过局域网直接访问数据库服务器,软件系统采用C/S体系结构;企业外部用户则需要通过Internte访问Web服务器,经过Web服务器这个中间环节再访问数据库服务器,模型的结构参见图13.11

“查改有别”模型中,不管用户使用什么方式(局部网或Internte)连接到系统,凡是需要执行维护和修改数据操作的,就用C/S体系结构,如果是执行一般查询和浏览操作,则使用B/S体系结构,模型的结构参见图13.12

2、按结构组合方式的不同构成的混合体系结构

在多层C/S体系结构中,服务器提供的服务可以供多个客户使用,客户机的数量可以根据需要进行扩展,当客户机数量的增大引起对服务性能的更高要求时,可以用一组服务器结点联合提供服务,各服务器之间的联结方法有两种:团聚法与串性法

团聚法将多个服务器结点聚集在一起,有同样功能,客户机的请求由各服务器节点 并行处理,任意一个都可以为客户提供服务。如有大量的客户机需求做类似的事情时,团聚法就非常合适

图13.3所示是一个使用团聚法的4级系统,大量的瘦客户机提供Web服务器,使用3个商业逻辑结点中的服务构件,这3个结点的结构完全一样,并都从同样的数据库结点中的服务构件,这3个结点的结构完全一样,并都从同样的数据库结点中提取数据,3个结点团聚在一起,为大量的瘦客户机提供服务,Web服务器接受客户机的请求分析决定如何把瓜子分配到各个商业逻辑结点,可以采用下列方式之一

①随机式:Web服务器任意地选择一个结点来担当任务

②轮流式:轮流使用3个结点之一来完成任务

③负载平分式:选取瓜子任务最少的结点来做新的任务

④多队列式:按要求分成几个类别,各自排队等候处理。

串行法:由每个服务结点提供特定的功能,它们形成一连串的服务岗位,两位客户机服务。串行法经常与团聚法配合在一起使用,图13.14在图13.13的基础上增加两个串行的服务结点分别啦处理安全检查和负载分配的任务,所有客户端请求经Web服务器后选连接到安全检查结点,通过安全检查后,才由分配器按照预订方式选择一个商业逻辑结点执行客户机请求的任务,图13.14中由两串行的服务结点和3个团聚的商业逻辑点。

本章小结

面向对象技术的出现和广泛使用,在一定程度上解决了软件可以复用性问题,但同时对软件的可复用性提出更高的要求,从程序代码的复用逐渐过渡到分析、设计的复用上来。软件体系结构就是希望为软件开发的工程来提供更高抽象层次的复用粒度。

软件体系结构可以看作是面向对象设计阶段中的总体设计,提供系统设计的总体架构。本章分别介绍几种经典和现代的软件体系结构的风格和模式,为面向对象设计的总体架构设计提供指导,同时系统在设计复用方面对现代软件工程开发过程提供一些帮助。

第十三章 软件系统结构(此章完结)相关推荐

  1. 软件工程技术--第六章 软件实现

    第六章 软件实现 本章要点 理解编码的目的与要求: 了解程序设计语言的发展与分类: 了解常见的程序设计语言: 了解程序设计语言的选择原则: 掌握良好的编码风格: 理解结构化程序设计方法: 编码的目的与 ...

  2. 【系统分析师之路】第十三章 软件体系结构

    [系统分析师之路]第十三章 软件体系结构 软件架构这章节主要的考点有:软件架构的概念,4+1视图,五种软件架构风格(数据流,调用返回,虚拟机,构件,仓库),2层3层CS架构,BS架构,产品线,中间件, ...

  3. 【计算机系统结构】第一章 计算机系统结构基本概念

    文章目录 第一章 计算机系统结构基本概念 1.1 计算机系统结构的概念 1.2 计算机体系结构的发展 1.3 系统结构中并行性的发展 1.4 系统结构的设计 1.5 定量分析技术基础 第一章 计算机系 ...

  4. 计算机系统结构pdf张晨曦刘依,第1章计算机系统结构的基本概念张晨曦刘依www.Arch365.ppt...

    第1章计算机系统结构的基本概念张晨曦刘依www.Arch365 1.4 计算机系统结构的发展 不同的应用对计算机系统结构的设计提出了不同的要求 应用需求是促使计算机系统结构发展的最根本的动力 一些特殊 ...

  5. 计算机实际机器与虚拟机器的概念,第1章 计算机系统结构的基本概念.ppt

    文档介绍: 第1章计算机系统结构基本概念本章首先从多级层次结构的角度定义了计算机系统结构,并分析了计算机系统结构.计算机组成与计算机实现的含义.研究的内容以及三者之间的相互关系.然后,介绍了计算机的性 ...

  6. 【计算机系统结构】第1章 计算机系统结构的基本概念问答题

    第1章  计算机系统结构的基本概念 1. 什么是计算机系统的多级层次结构? 从计算机语言的角度,把计算机系统按功能划分成以下多级层次结构: 2. 硬件和软件在什么意义上是等效的?在什么意义上是不等效的 ...

  7. 软件构造 第二章 第一节 软件生命周期和版本控制

    软件构造第二章 第一节 软件生命周期和版本控制 基本内容 Software Development Lifecycle (SDLC) Traditional software process mode ...

  8. 软件构造 第一章第二节 软件开发的质量属性

    ​软件构造 第一章第二节 软件开发的质量属性 1.软件系统质量指标 External quality factors affect users 外部质量因素影响用户 Internal quality ...

  9. 《软件需求分析(第二版)》第 1 章——软件需求基础知识 重点部分总结

    文章目录 前言 一.单选题 二.填空题 三.判断题 四.简答题 总结 前言 软件需求分析就是把软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素.需求分析是软件定义 ...

最新文章

  1. 优化算法之手推遗传算法(Genetic Algorithm)的详细步骤图解
  2. panel内嵌程序窗体
  3. JVM内存模型、Java内存模型 和 Java对象模型
  4. 测验8: 程序设计方法学 (第8周)
  5. C++STL笔记(二):容器的特性和共通操作
  6. select weui 动态加载数据_浪尖以案例聊聊spark3的动态分区裁剪
  7. OkHttp RouteSelector代理解析
  8. 为普通用户添加root权限
  9. shell将输入的参数逆序
  10. HDU 4455 Substrings(线性dp,很有意思)
  11. 坑爹的RockSaw和坑爹的windows7
  12. 巃嵸鸿蒙构瑰材兮,集部-李太白全集
  13. 在matlab中如何求偏导数,求解 PDE 并计算偏导数
  14. Modelsim查看中间变量
  15. 战地1服务器怎么显示fps,战地1怎么显示FPS帧数-战地1显示FPS帧数方法介绍
  16. python写斗地主游戏_python斗地主
  17. vue的h函数_vue 中的h函数
  18. android回传数据实验报告,传热综合实验实验报告.doc
  19. EFS加密文件系统应用心得
  20. IIC OLED笔记

热门文章

  1. CentOS7下安装chrome浏览器
  2. #读书笔记# 《人类简史》Chapter5
  3. 100道python经典练习题
  4. cocos2dx3.2 实现splash屏幕图片秀滚动
  5. 微信小程序——修改field输入框内文字颜色和背景图透明度调整
  6. 【腾讯优测干货分享】安卓专项测试之GPU测试探索
  7. Assembly.LoadFrom函数报错“尝试从一个网络位置加载程序集,在早期版本的 .NET Framework 中,这会导致对该程序集进行沙盒处理...”
  8. CSS 弹性盒子布局使用方法介绍
  9. react的SPA实践
  10. 使用批处理打开控制面板中的某项