zoukankan      html  css  js  c++  java
  • 难道你现在还不知道:C/S和B/S

    随着网络技术的不断发展,各种各样的网络应用程序大爆发。运用最多的架构是基于浏览器+服务器的B/S结构,另一种是基于的 C/S结构。

    概述:

    BS = Browser / Server =浏览器+服务器
    例子:各大网站,比如CSDN

    C/S = Client / Server = 客户端+服务器
    例子: QQ,迅雷,快播,LOL

    B/S结构:

    在这种架构中,客户端不需要开发任何界面,而统一的使用Chrome和Firefox等浏览器,通过Web浏览器先Web服务器发送请求,有Web服务器进行处理,并将处理后的结果逐级传递回浏览器。这种结构利用不断成熟和普及的浏览器基数实现原来的复杂软件才能是实现的强大的功能,从而节约开发成本。
    在这里插入图片描述

    优点
    1. 总体拥有成本低
    2. 维护方便
      B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享
    3. 分布性强
    4. 开发简单
    5. 可以不用安装任何专门的软件就能 实现在任何地方进行操作
    6. 客户端零维护
      B/S架构的产品明显体现着更为方便的特性。对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。
    7. 系统的扩展非常容易
    8. 只要有有操作系统和浏览器就可以使用
    缺点
    1. 通信开销大、系统和数据的安全性较难保障。
    2. 对服务器性能要求较高:
      由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,网络管理人员只需要做硬件维护。但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。

    C/S结构:

    Client/Server结构(C/S结构)是大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向

    在C/S结构中,应用程序分为两部分:服务器部分和客户机部分。服务器部分是多个用户共享的信息与功能,执行后台服务,如控制共享数据库的操作等;客户机部分为用户所专有,负责执行前台功能,在出错提示、在线帮助等方面都有强大的功能,并且可以在子程序间自由切换。

    C/S模式的发展经历了从两层结构到三层结构
    两层结构由两部分构成:前端是客户机,主要完成用户界面显示,接受数据输入,校验数据有效性,向后台数据库发请求,接受返回结果,处理应用逻辑;后端是服务器,运行DBMS,提供数据库的查询和管理。
    两层结构存在一些不足:主要表现在:系统的可伸缩性差;难以和其它系统进行互操作;难以支持多个异构数据库;客户端程序和服务器端DBMS交互频繁,网络通讯量大;所有客户机都需要安装、配置数据库客户端软件,这是一件十分庞杂的工作,等。
    在这里插入图片描述

    基于二层结构的以上不足,三层结构伴随着中间件技术的成熟而兴起。其核心概念是利用中间件将应用分为表示层、业务逻辑层和数据存储层三个不同的处理层次。
    三层结构较二层结构具有一定的优越性:具有良好的开放性;减少整个系统的成本,维护升级十分方便;系统的可扩充性良好;系统管理简单,可支持异种数据库,有很高的可用性;可以进行严密的安全管理
    在这里插入图片描述

    优点
    1. 充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。
    2. 应用服务器运行数据负荷较轻
      最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。二者可分别称为前台程序与后台程序。运行数据库服务器程序的机器,也称为应用服务器。一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。
    3. 数据的储存管理功能较为透明
      在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,并且通常把那些不同的(不管是已知还是未知的)前台应用所不能违反的规则,在服务器程序中集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立订单这样的规则。所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。在C/S体系下,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理。
    缺点
    1. 分布性差
    2. 维护成本高
      客户端需要安装专用的客户端软件。首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。特别是有很多分部或专卖店的情况,不是工作量的问题,而是路程的问题。还有,系统软件升级时,每一台客户机需要重新安装,其维护和升级成本非常高。

    比较

    C/S B/S
    硬件环境 专用网络 广域网
    安全要求 面向相对固定的用户群信息安全的控制能力强 面向不可知的用户群对安全的控制能力相对较弱
    程序架构 更加注重流程系统运行速度可较少考虑 对安全以及访问速度都要多重的考虑,是发展趋势
    软件重用
    系统维护 升级难 开销小,方便升级
    处理问题 集中 分散
    用户接口 与操作系统关系密切 跨平台,与浏览器相关
    信息流 交互性低 交互密集

    文章部分内容参考百度百科。

  • 相关阅读:
    【NOIP 2003】 加分二叉树
    【POJ 1655】 Balancing Act
    【HDU 3613】Best Reward
    【POJ 3461】 Oulipo
    【POJ 2752】 Seek the Name, Seek the Fame
    【POJ 1961】 Period
    【POJ 2406】 Power Strings
    BZOJ3028 食物(生成函数)
    BZOJ5372 PKUSC2018神仙的游戏(NTT)
    BZOJ4836 二元运算(分治FFT)
  • 原文地址:https://www.cnblogs.com/lunatic-talent/p/12798359.html
Copyright © 2011-2022 走看看