C/S和B/S架构的概念、优缺点、应用以及区别

1. C/S 架构

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

简单的说就是第一层是用户表示层,第二层是数据库层。

wKiom1bT0m6SjzfZAAAteh_VVrY686.png


    C/S 架构也可以看做是胖客户端架构。因为客户端需要实现绝大多数的业务逻辑和界面展示。这种架构中,作为客户端的部分需要承受很大的压力,因为显示逻辑和事务处理都包含在其中,通过与数据库的交互(通常是SQL或存储过程的实现)来达到持久化数据,以此满足实际项目的需要。

想要使用C/S架构的软件需要下载一个客户端,安装后就可以使用。

1.1 C/S 架构的优缺点

1.1.1 优点:

1客户端与服务器直接相连:点对点模式更安全,实现多层仁恒也不难;可直接操作本地文件;减少了通信流量,客户可省去部分费用;一层交互,响应速度快。

2客户端可处理一些逻辑事务:可进行数据处理和数据存储减少服务器负担;客户端有完整的应用程序,功能强大,子程序切换自由。

3客户端操作界面丰富:可提高用户体验,满足用户需求,展现特点和个性。

1.1.2 缺点:

1适用面窄,通常用于局域网中

2通用性差:由于需要安装客户端,部署麻烦,易扩展。

3对服务器要求高:客户端用户增多,服务器会出现拥堵。
4用户群固定由于需要安装客户端才可使用,不能随时随地访问,不能实现真正大范围的信息共享,信息传达和发布

5开发和维护成本高初次开发就需要配备好客户端,服务器发生一次升级,则所有客户端的程序都需要改变。维护升级成本太高。

1.2 C/S架构应用

C/S架构的软件是在是数不胜数,从办公的OFFICEWPSWINRAR到杀毒软件如金山,瑞金再到我们的娱乐软件,如播放器,QQ,微信等,无处不见C/S架构。

 

2. B/S架构

B/S架构的全称为Browser/Server,即浏览器/服务器结构。Browser指的是Web浏览器,极少数事务逻辑在前端实现,但主要事务逻辑在服务器端实现

Browser客户端,Web应用服务器端和数据库端构成所谓的三层架构。B/S架构的系统无须特别安装,只有Web浏览器即可。它是C/S架构的一种改进,可以说属于三层C/S架构。

wKiom1bT0n_A36etAAB21Rl3YnQ898.png

主要是利用了不断成熟的WWW浏览器技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本

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

是多对多的结构。因此在此结构下,很适合在广域网里实现巨大的互联网,甚至是全球网。有着很强大的信息共享性。

2.1 B/S架构的优缺点

2.1.1 优点:

1.浏览器客户端:无需安装,有Web浏览器即可,浏览器逻辑简单,负担小、好同步,扩展方便,开发简单,维护成本低。
2.BS架构可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强,所需网速不高。外部用户也可访问。界面通用,易掌握。

3.数据集中存储在服务器,数据安全。
4..BS架构无需升级多个客户端,升级服务器即可,远程维护升级共享方便。

5.随着负载增加,可以平滑地增加服务器的个数并建立集群服务器系统

6.所有的用户都是通过一个JDBC连接缓冲池连接到数据库的,用户并不保持对数据库的连接,用户数基本上是无限的。

7.成本低:软件重用性强,节约成本;人才培训成本低;初次投入后基本不需要维护。

2.1.2 缺点:

1)在跨浏览器上,BS架构不尽如人意。
2)表现要达到CS程序的程度需要花费不少精力,页面通用化,没个性。
3)在速度和安全性上需要花费巨大的设计成本,这是BS架构的最大问题。

4. 功能虽然多样化,但是不能专门化,不能实现复杂的功能。
5.客户端服务器端的交互是请求-响应模式,通常需要刷新页面,这并不是客户乐意看到的。(在Ajax风行后此问题得到了一定程度的缓解)

6.服务器责任重大,负荷过重。服务器崩溃后果严重。

2.2 B/S架构应用

当时在讲解典型的C/S架构时,提到了了常用的QQ软件。现在新出来了一个WEBQQ,从WEBQQ名称中的WEB就不难看出它属于B/S架构,是一种浏览器服务器结构。事实上也是如此,因为WEBQQ根本不需要安装客户端,只需要有浏览器就可以进行聊天交互了。

 

 

3. C/S和B/S关系概述

B/S架构是从C/S架构改进而来,随着WEB技术的飞速发展以及人们对网络的依赖程度加深,B/S一举成为当今最流行的网络架构。

在响应速度,用户界面,数据安全等方面,C/S强于B/S

但是在业务扩展和适用www条件下,B/S明显胜过C/S

可以这么说,B/S的强项就是C/S的弱项,反之亦然。它们各有优缺点,相互无法取代。

3.1 比较大的差别

1、结构 C/S两层,B/S三层

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


2、逻辑事务处理 C/S客户端分担逻辑处理,B/S全靠服务器
    C/S架构让客户端和服务器承担一部分逻辑事务处理,使得服务器的负担减轻了,而且客户端也能进行一些数据处理和存储的功能。

B/S架构的浏览器就是它的客户端,只进行一些简单的输入输出和信息发布共享的功能,主要的逻辑事务处理还是要靠服务器,所以服务器的负担很重。


3、工作原理: C/S 点对点,B/S多对多
 C/S架构是客户端和服务器直接相连,实现点对点的通信.

B/S是浏览器通过WEB服务器向数据库服务器发送数据请求,实现多对多的通信。


4、响应速度C/S >B/S
C/S架构的客户端和服务器直接相连,响应速度快,尤其是在用户增多时更加明显。

B/S架构响应速度慢,主要的重任在数据库服务器身上,由于B/S架构的无限扩展性,当用户激增,访问量庞大时,服务器相应速度慢,服务器存在瘫痪的危险。


5、成本C/S >B/S,尤其是后期
C/S架构开发时,硬件需要一次性购买,费用较高,且需要训练有素的技术人员,培训费用高,而且软件后期也需要不断投入大量资金。

B/S架构只需要一次性投入几乎可以一劳永逸,有利于软件项目控制和IT黑洞。


6、维护、升级以及扩展C/S 难,B/S
C/S架构一旦有业务的变更或要升级,客户端界面就要重新设计,需要投入大量的人力物力。软件维护也比较麻烦,需要专业人士进行维护。用户扩展也比较麻烦,需要安装客户端,对软硬件要求高。

B/S架构的维护和升级都非常容易,只要更改页面内容或者增减页面即可,客户端几乎是零维护,只需要维护好服务器。所以相对来说更简易,方便。由于B/S可以随时随地的访问,所以极易扩展。


7、信息共享C/S 范围小,B/S范围广
C/S架构是建立在局域网之上的,面向的是可知的有限用户,信息共享只在小范围内。

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


8、客户端界面C/S 个性化,B/S通用化
C/S架构可以针对不同的功能设计出不同的很有特色的用户界面,实现个性化。但是一旦业务改变就需要重新设计,很麻烦。

B/S架构的用户界面很通用,不能针对用户突出个性,但是业务改变时只需要改变界面内容或者增减页面,很轻松就能实现。

3.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 信息流向可变化更像个交易中心。
7、对技术人员的要求C/S更高C/S的功能比较专业化,对设计和开发人员的要求较高,需要专业的培训。B/S的界面比较人性化,通用化,所以不需要多高的技能。