CS架构、BS架构的理解

CS架构和BS架构的区别:


一、简介:
B/S(Browser/Server Architecture)架构: 

浏览器—服务器架构模式,采取三层结构,通过浏览器的方式来实现用户工作界面,事务逻辑主要集中在服务器端实现。


C/S(Client-Server)架构定义: 

客户端—服务端架构模式,采用两层结构,服务器负责数据的管理,客户机负责完成与用户的交互任务。


二、结构:
三个层次(BS):

浏览器端:即用户使用的浏览器,是用户操作系统的接口,用户通过浏览器界面向服务端发出请求,并对服务器端返回的结果进行处理并展示,通过界面可以将系统的逻辑功能更直观地表现出来。
服务器端:提供数据服务和操作数据,然后把结果返回中间层,结果将显示在系统界面上。
中间件:这是运行在浏览器和服务器之间的桥梁。这层主要用于完成系统逻辑,实现具体的功能,接受用户的请求并把这些请求传送给服务器,然后将服务器的结果返回给用户,浏览器端和服务器端需要交互的信息是通过中间件完成的。


两层结构->三层结构:

两层结构:
客户端(前端):主要完成用户界面显示,接收数据输入,检验数据有效性,向后台数据库发送请求、接受返回结果,处理应用逻辑。
服务端(后端):运行DBMS,提供数据库的查询和管理。
三层结构:
表现层:主要完成用户和后台的交互及最终查询结果的输出功能。
业务逻辑层:主要是利用服务器完成客户端的应用逻辑功能。
数据存储层:主要是接受客户端请求后独立进行各种运算。

四、优缺点
B/S优势
维护和升级:维护升级越来越容易,使用“瘦”客户机,“胖”服务端的方式。
成本和选择:不管选用那种操作系统都可以使用windows作为桌面操作系统,所以使用的B/S架构的应用管理软件一般安装在Linux服务器上,它的安全性高,免费,而且连数据库也是免费的。
B/S劣势
负荷比:由于BS架构管理软件只安装在服务端上,网络管理人员只需要管理服务端就行。所有的客户端只有浏览器,网络管理人员只需要做硬件维护,但是,在运行数据量较大的时候,有可能出现服务端“崩溃”的问题,后果是不堪设想的。因此切记做好备有数据库存储服务端。
C/S优势:
能充分发挥出客户端的处理能力。
客户端响应速度快。
负荷比较轻:当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。
数据的储存管理功能较为透明
C/S劣势:
维护和升级成本高:当系统软件升级时,每一台客户机需要重新安装。
客户端需要安装专用的客户端软件。工作量大且紧密,每个安装的环节都不能出错。


四、区别
硬件环境不同:
B/S建立在广域网上,只需要操作系统和浏览器即可。
C/S在局域网之间再通过专门服务器提供连接和数据交换服务。
对安全要求不同:
B/S面向的是不可知的用户群。
C/S面向的是相对固定的用户群。
软件重用不同:
B/S多重结构,要求构件相对独立的功能,能够相对较好的重用。
C/S重用性较B/S较差。
用户接口不同:
B/S建立在浏览器上。
C/S建立在Window平台上。

拓展: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层了,会直接将缓存的页面(如果没过期的话)返回给用户。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值