【计算机网络】常用软件架构C/S和B/S

C/S和B/S架构

一、C/S(Client Server)两层架构

在这里插入图片描述

1、C/S架构背景:

  C/S架构(即客户端/服务器模式)是一种比较早的软件架构,主要应用于局域网内。C/S结构是一种软件系统体系结构,这种结构是将需要处理的业务合理地分配到客户端和服务器端,这样可以大大降低通信成本,但是升级维护相对困难。比如我们手机中安装的微信、qq、王者荣耀等应用程序就是C/S结构。

2、两层架构:

  C/S架构分为客户机和服务器两层:第一层是在客户机系统上结合了表示与业务逻辑,第二层是通过网络结合了数据库服务器。简单的说就是第一层是用户表示层,第二层是数据库层

  • 第一层:客户端——表示层(界面层与逻辑层)
  • 第二层:服务器模式——数据库层

3、C/S架构流程:

  客户机——经过(Request)请求——服务器(即数据库)——数据库根据客户机的请求——进一步(Response)响应回去给客户机。
在这里插入图片描述

4、C/S架构的优点:

  • C/S架构的界面和操作可以很丰富。(客户端操作界面可以随意排列,满足客户的需要)
  • 安全性能可以很容易保证。(因为只有两层的传输,而不是中间有很多层)
  • 由于只有一层交互,因此响应速度较快。(直接相连,中间没有什么阻隔或岔路,比如QQ,每天那么多人在线,也不觉得慢)

5、C/S架构的缺点:

  • 适用面窄,通常用于局域网中。
  • 用户群固定。由于程序需要安装才可使用,因此不适合面向一些不可知的用户。
  • 维护成本高,发生一次升级,则所有客户端的程序都需要改变。

二、B/S(Browser Server)三层架构

在这里插入图片描述

1、B/S架构背景:

  B/S架构(即浏览器/服务器模式)是C/S架构的一种改进,可以说属于三层C/S架构。B/S结构是随着互联网的发展,web出现后兴起的一种网络结构模式。这种模式统一了客户端,让核心的业务处理在服务端完成。节约了开发成本,维护和升级方式更简单,客户端是浏览器,基本不需要维护,只需要维护升级服务器端就可以。在手机或电脑上用浏览器上百度搜索、看新闻等就是在使用“B/S”结构进行数据交互。

2、三层架构:

  • 第一层:浏览器——表现层,主要完成用户和后台的交互及最终查询结果的输出功能;
  • 第二层:WEB服务器——逻辑层,主要是利用服务器完成客户端的应用逻辑功能;
  • 第三层:数据库服务器——数据层,主要是接受客户端请求后独立进行各种运算。

3、B/S架构的三种形式:

第一种:客户端—服务器—数据库(常用模式)
(1)客户端向服务器发起Http请求;
(2)服务器中的web服务层能够处理Http请求;
(3)服务器中的应用层部分调用业务逻辑,调用业务逻辑上的方法;
(4)如果有必要,服务器会和数据库进行数据交换. 然后将模版+数据渲染成最终的Html, 返送给客户端。
在这里插入图片描述

第二种:客户端—Web服务器—应用服务器—数据库
类似于第一种方法,只是将web服务和应用服务解耦;
(1)客户端向web服务器发起Http请求;
(2)web服务能够处理Http请求,并且调用应用服务器暴露在外的RESTFUL接口;
(3)应用服务器的RESTFUL接口被调用,会执行对应的暴露方法.如果有必要和数据库进行数据交互,应用服务器会和数据库进行交互后,将json数据返回给web服务器;
(4)web服务器将模版+数据组合渲染成html返回给客户端。
在这里插入图片描述

第三种:客户端-负载均衡器(Nginx)-中间服务器(Node)-应用服务器-数据库
这种模式一般用在有大量的用户,高并发的应用中;
(1)整正暴露在外的不是真正web服务器的地址,而是负载均衡器器的地址;
(2)客户向负载均衡器发起Http请求;
(3)负载均衡器能够将客户端的Http请求均匀的转发给Node服务器集群;
(4)Node服务器接收到Http请求之后,能够对其进行解析,并且能够调用应用服务器暴露在外的RESTFUL接口;
(5)应用服务器的RESTFUL接口被调用,会执行对应的暴露方法.如果有必要和数据库进行数据交互,应用服务器会和数据库进行交互后,将json数据返回给Node;
(6)Node层将模版+数据组合渲染成html返回反向代理服务器;
(7)反向代理服务器将对应html返回给客户端。
在这里插入图片描述

Nginx的优点有:
1、它能够承受、高并发的大量的请求,然后将这些请求均匀的转发给内部的服务器,分摊压力.
2、反向代理能够解决跨域引起的问题,因为Nginx,Node,应用服务器,数据库都处于内网段中。
3、Nginx非常擅长处理静态资源(img,css,js,video),所以也经常作为静态资源服务器,也就是我们平时所说的CDN。
  比如:前一个用户访问index.html, 经过Nginx-Node-应用服务器-数据库链路之后,Nginx会把index.html返回给用户,并且会把index.html缓存在Nginx上,
  下一个用户再想请求index.html的时候,请求Nginx服务器,Nginx发现有index.html的缓存,于是就不用去请求Node层了,会直接将缓存的页面(如果没过期的话)返回给用户。

4、B/S常用架构流程:

  客户机浏览器——经过Http请求——Web服务器——经过查询——数据库服务器——响应查询后返回结果——Web服务器——再经过Http响应——返回给客户机浏览器。
在这里插入图片描述

5、B/S架构的优点:

  • 客户端无需安装,有Web浏览器即可。
  • BS架构可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强。
  • BS架构无需升级多个客户端,升级服务器即可,可以随时更新版本。

6、B/S架构的缺点:

  • 在跨浏览器上,BS架构不尽如人意。
  • 表现要达到CS程序的程度需要花费不少精力。
  • 在速度和安全性上需要花费巨大的设计成本,这是BS架构的最大问题。
  • 客户端服务器端的交互是请求——响应模式,通常需要刷新页面,这并不是客户乐意看到的。(在Ajax流行后此问题得到了一定程度的缓解)

三、C/S与B/S的结构区别

在这里插入图片描述

1)比较大的差别

1、数据交互方式

  • C/S是两层架构,由客户端和数据库服务器组成,客户端跟服务端进行数据交互,数据传输采用Socket协议。
  • B/S是三层架构,由浏览器,WEB服务器和数据库服务器组成,浏览器跟服务器进行数据交互,数据传输采用HTTP协议。

2、逻辑事务处理

  • C/S架构合理地让客户端和服务器承担一部分逻辑事务处理,使得服务器的负担减轻了,而且客户端也能进行一些数据处理和存储的功能。
  • B/S架构的浏览器就是它的客户端,可是这个客户端只能进行一些简单的输入输出和信息发布共享的功能,主要的逻辑事务处理还是要靠服务器,所以服务器的负担很重。

3、工作原理

  • C/S架构是客户端和服务器直接相连,实现点对点的通信,
  • B/S是浏览器通过WEB服务器向数据库服务器发送数据请求,实现多对多的通信。

4、响应速度

  • C/S架构的客户端和服务器直接相连,中间没有任何阻隔,所以相应速度快,尤其是在用户增多时更加明显。
  • B/S架构相应速度慢,主要的重任在数据库服务器身上,由于B/S架构的无限扩展性,当用户激增,访问量庞大时,服务器相应速度慢,服务器存在瘫痪的危险。

5、成本

  • C/S架构开发时,硬件需要一次性购买,费用较高,且需要训练有素的技术人员,培训费用高,而且软件后期也需要不断投入大量资金。
  • B/S架构只需要一次性投入几乎可以一劳永逸,有利于软件项目控制和IT黑洞。

6、维护、升级以及扩展

  • C/S架构一旦有业务的变更或要升级,客户端界面就要重新设计,需要投入大量的人力物力。软件维护也比较麻烦,需要专业人士进行维护。用户扩展也比较麻烦,需要安装客户端,对软硬件要求高。
  • B/S架构的维护和升级都非常容易,只要更改页面内容或者增减页面即可,客户端几乎是零维护,只需要维护好服务器。所以相对来说更简易,方便。由于B/S可以随时随地的访问,所以极易扩展。

7、信息共享

  • C/S架构是建立在局域网之上的,面向的是可知的有限用户,信息共享只在小范围内。
  • B/S架构建立在广域网之上,用户随时随地都可以访问,外部用户也可以访问,尤其是WEB技术的不断发展,B/S面对的是几乎无限的用户群体,所以信息共享性很强。

8、客户端界面

  • C/S架构可以针对不同的功能设计出不同的很有特色的用户界面,实现个性化。但是一旦业务改变就需要重新设计,很麻烦。
  • B/S架构的用户界面很通用,不能针对用户突出个性,但是业务改变时只需要改变界面内容或者增减页面,很轻松就能实现。

2)小的差别

1、适用的网络

  • C/S架构是建立在局域网的基础之上的,局域网之间通过专用服务器提供连接提供服务。
  • B/S架构是建立在广域网的基础之上,有更大的使用范围。

2、访问

  • C/S架构下,用户需要安装客户端才能够访问服务器,
  • B/S架构下,用户可以随时随地访问,只要有网络有浏览器,方便快捷。

3、数据库连接类型

  • C/S采用的是ODBC连接,所以只要用户连接了数据库就一直保持连接不会断开,所以限制了用户数,
  • B/S采用的是JDBC连接,用户并不保持对数据库的连接,所以用户数几乎是无限的。

4、功能

  • C/S架构能够实现单一的复杂功能,如财政管理等,所以现在大多数比较大型的ERP系统仍是C/S架构,
  • B/S架构的界面比较通用,所能处理的逻辑事务较少,所以功能较弱。

5、安全性

  • C/S架构建立在局域网之上,面向比较固定的用户,对安全的要求较高。
  • B/S架构建立在广域网上,面对不可知人群,安全性差。

6、信息流向不同

  • C/S 程序一般是典型的中央集权的机械式处理, 交互性相对低
  • B/S 信息 流向可变化, B-B B-C B-G等信息、流向的变化, 更像个交易中心。

7、对技术人员的要求

  • C/S的功能比较专业化,对设计和开发人员的要求较高,需要专业的培训。
  • B/S的界面比较人性化,通用化,所以不需要多高的技能。
  • 2
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值