每日一问——day1——C/S和B/S架构区别以及各自优缺点

  • Post author:
  • Post category:其他




C/S和B/S架构区别以及各自优缺点



一、C/S两层架构



1.C/S架构的概念

典型的两层架构,全称Client/Server,客户端服务器端架构,其客户端包含一个或多个用户电脑上运行的程序,服务器有两种:一种是数据库服务器,可短短通过数据库连接访问服务器端数据,另一种是Socket服务器端,服务器端的程序通过Socket与客户端的程序通信。

C/S架构可以看做是胖客户端架构,因为客户端需要实现大多数的业务逻辑和界面展示,这种架构的客户端需要承受很大的压力,因为显示逻辑和事务处理都包含在其中,通过与数据库的交互来达到持久化数据。

两层架构分别是:

第一层:客户端——表示层(界面层与逻辑层)

第二层:服务器模式——数据库层

两层C/S架构

C/S架构流程:

客户机——经过(Request)请求——服务器(即数据库)——数据库根据客户机的请求——进一步(Response)响应回去给客户机



2.C/S架构的优缺点

优点:

  1. C/S架构的界面和操作可以很丰富;
  2. 安全性能容易保证,实现多层认证;
  3. 因为一层交互,因此响应速度较快;

缺点:

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



二、B/S三层架构



1.B/S架构的概念

全称Browser/Server,即浏览器、服务器界都Browser指的是Web浏览器,极少数事务逻辑在前端实现,但主要事务逻辑在服务器端实现,Browser客户端,WebApp服务器端和DB端构成所谓的三层架构。B/S架构的系统无须特别安装,只有Web浏览器即可。

B/S架构中,显示逻辑交给了Web浏览器,事务处理逻辑在放在了WebApp上,这样就避免了庞大的胖客户端,减少了客户端的压力。因为客户端包含的逻辑很少,因此也被成为瘦客户端。

三层架构分别有:

第一层表现层:主要完成用户和后台的交互及最终查询结果的输出功能;

第二层逻辑层:主要是利用服务器完成客户端的应用逻辑功能;

第三层数据层:主要是接受客户端请求后独立进行各种运算。

三层B/S架构

B/S常用架构流程:


客户机浏览器

——经过Http请求——

Web服务器

——经过查询——

数据库服务器

——响应查询后返回结果——

Web服务器

——再经过Http响应——返回给

客户机浏览器


B/S架构流程



2.B/S架构的优缺点

优点:

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

缺点:

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



三、两者区别

1、结构

C/S是两层架构,由客户端和服务器组成,而B/S是三层架构,由浏览器,WEB服务器和数据库服务器组成。

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架构的用户界面很通用,不能针对用户突出个性,但是业务改变时只需要改变界面内容或者增减页面,很轻松就能实现。



四、总结

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

B/S结构是随着互联网的发展,web出现后兴起的一种网络结构模式。这种模式统一了客户端,让核心的业务处理在服务端完成。你只需要在自己电脑或手机上安装一个浏览器,就可以通过web Server与数据库进行数据交互。在手机或电脑上用浏览器上百度搜索、看新闻等就是在使用“B/S”结构进行数据交互。这种“B/S”结构的好处:维护和升级方式更简单,客户端是浏览器,基本不需要维护,只需要维护升级服务器端就可以。

C/S与B/S的结构区别:

  1. 硬件环境不同,C/S通常是建立在专用的网络上,小范围的网络环境。而B/S是建立在广域网上的,适应范围强,通常有操作系统和浏览器就行;
  2. 安全要求不同,C/S结构比B/S结构更安全,因为用户群相对固定,对信息的保护更强;而B/S结构面向的范围广,所以安全性比较低;
  3. 系统维护不同,B/S结构维护升级比较简单,而C/S结构维护升级相对困难。

参考文章:


  1. C/S和B/S两种架构的区别和优缺点

  2. C/S和B/S架构总结