软件体系结构-04-CS&BS体系结构

翟昊明
2023-12-01

计算模式演化史

计算模式的演化

  • 1965-1985: 集中式处理模式
    • 所有计算能力均属于中央宿主计算机
    • 用户通过一台物理上与宿主机相连接的非智能终端来访问宿主机上的应用程序
  • 1985-1990: 以PC/文件服务器为核心的文件共享计算模式
    • 文件存储在一个中央计算机或者共享服务器中,被网络上的多个计算机同时访问
    • 从共享服务器下载文件到客户机的桌面环境下
    • 被请求的用户任务-包括业务逻辑和数据-在客户机环境下执行
    • 适合应用于数据量较低的场合
  • 1990-1996: 以C/S结构为主流的分布式计算模式
  • 1996-2000: 以web为核心,B/S结构为主体的分布式计算模式
  • 2000-2005: 普适计算模式(无所不在的计算,无所不在的通讯)
  • 2005- : 以Grid、P2P、Web2.0等技术为核心的分布式计算模式

客户机/服务器(C/S体系结构)

客户端/服务器

文件共享结构的缺陷导致了C/S的出现

  • 优点:
    • 降低了网络通讯量:提供请求/应答模式,而非文件传输
    • 多用户通过GUI访问共享数据库

客户机(前端):业务逻辑、与服务器通讯的接口;

服务器(后端):与客户机通讯的接口、业务逻辑、数据管理。

发展历程:

  1. 两层C/S:
    • 客户界面–数据库服务器
  2. 三层C/S:
    • 客户界面–业务逻辑服务器–数据库服务器
  3. 多层C/S:
    • 客户界面–web服务器–业务逻辑服务器–数据库服务器

服务器的角色

  • 终结服务器:不再是其他服务器的客户端
  • 非中介服务器:需要得到其他服务器的支持

服务器的分类

  1. 信息/数据库服务器:储存和处理数据
  2. 应用服务器:提供业务逻辑服务
  3. 管理类服务器:DNS服务器,路由服务器,消息服务器等

C/S的组成

  • 客户机
    • GUI
    • 请求表达
    • 业务逻辑
    • 服务代理及通信
  • 服务器
    • 服务器接口
    • 调度管理
    • 事务处理
    • 业务逻辑
    • 共享资源管理
    • 通信
  • 二者之间具有通信连接机制,遵循公共的通信协议
    • 请求的表达
    • 返回结果的表达
    • 连接关系和状态的表达

C/S的连接

  • 接口:
    • 基于过程:同步响应
    • 基于消息:异步响应

二层C/S结构

处理流程

  • 用户界面处于客户机
  • 数据库管理服务处于服务器端,通常是存储过程/触发器的形式
  • 业务处理过程(即业务逻辑)被分解为客户机与服务器两部分

胖客户端和瘦客户端

  • 胖客户端: 客户端执行大部分的数据处理操作
  • 瘦客户端: 客户端具有很少或没有业务逻辑

两层C/S体系结构的局限

  • 系统伸缩性差: 用户数量过大后性能急剧恶化
  • 互操作性差: 软件移植困难
  • 数据库安全性差
  • 系统管理与配置成本高: 系统升级时,每个客户端都需要随之改变

两层C/S体系结构的应用

  • 两层C/S架构通常被用在那些管理与操作不太复杂的非实时的信息处理系统
  • 适合于轻量级事务–客户机对服务器的请求少,数据传输量少
  • 当业务逻辑较少变化以及用户数少于100时,两层C/S架构的性能较好

三层C/S体系结构

结构

  1. 用户界面–表示层
  2. 业务逻辑–功能层
  3. 数据库–数据层

表示层

  • 用户接口部分,担负着用户与应用之间的对话功能
  • 检查用户的输入,显示应用的输出
  • 通常使用GUI
  • 在变更时,只需要改写显示控制和数据检查程序,而不影响其他层
  • 不包含或包含一部分业务逻辑

功能层

  • 应用系统的主体,包括大部分业务处理逻辑 (通常以业务构件的形式存在,如JavaBean/EJB/COM等)
  • 从表示层获取用户的输入数据并加以处理
  • 处理过程中需要从数据层获取数据或向数据层更新数据
  • 处理结果返回给表示层

数据层

  • DMBS
  • 接受功能层的数据查询请求,执行请求,并将查询结果返回给功能层
  • 从功能层接受数据存取请求,并将数据写入数据库
  • 请求的执行结果也要返回给功能层

三层C/S的物理结构

客户机服务器A服务器B
表示层数据层+功能层
表示层功能层数据层
表示层+功能层数据层

基于集群的C/S物理分布

功能层通常不是只驻留在同一台服务器上,数据层也是如此

功能层(或数据层)分布在多台服务器上,那么就形成了基于集群的C/S物理分布模式。

  • 集群:
    • 一组松散耦合的服务器,共同协作,可被看作是一台服务器
    • 用来改善速度、提高可靠性与可用性,降低成本
    • 负载平衡是集群里的一个关键要素

三层C/S结构的优缺点

  • 优点
    • 性能与灵活性
    • 可维护性与可扩展性
    • 并行开发
    • 安全性
  • 缺点
    • 各层间通信效率
    • 慎重考虑三层间的通信方法,通信频度及数据量

浏览器/服务器

B/S是三层C/S风格的一种实现方式

  • 表现层
    • 浏览器
  • 逻辑层
    • Web服务器
    • 应用服务器
  • 数据层
    • 数据库服务器

优点

  • 系统维护成本低
  • 瘦客户端,具备稳定性,延展性和执行效率
  • 容错能力和负载平衡能力

缺点

  • 安全性难以控制
  • 数据查询响应速度远低于C/S体系结构
  • 提交一般以页面为单位,数据动态交互性不强,不利于在线事务处理应用
  • 受限于HTML的表达能力,难以支撑复杂GUI

C/S+B/S混合体系结构

混合原则一:“内外有别”的原则:

  • 企业内部用户通过局域网直接访问数据库服务器
    • C/S结构;
    • 交互性增强;
    • 数据查询与修改的响应速度高;
  • 企业外部用户通过Internet访问Web服务器/应用服务器
    • B/S结构;
    • 用户不直接访问数据,数据安全;

混合原则二:“查改有别”的原则:

  • 不管用户处于企业内外什么位置(局域网或Internet),凡是需要对数据进行更新操作的(Add, Delete, Update),都需要使用C/S结构;
  • 如果只是执行一般的查询与浏览操作(Read/Query),则使用B/S结构。
 类似资料: