B/S与C/S架构

什么是C/S架构

一、什么是C/S架构

C/S(Client/Server):客户端/服务器
C/S架构是第一种比较早的软件架构,主要用于局域网内。也叫 客户机/服务器模式。

C/S架构分层:

它可以分为客户机服务器两层:

第一层: 在客户机系统上结合了界面显示与业务逻辑;

第二层: 通过网络结合了数据库服务器。

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

这里需要补充的是,客户端不仅仅是一些简单的操作,它也是会处理一些运算,业务逻辑的处理等。也就是说,客户端也做着一些本该由服务器来做的一些事情,如图所示:
在这里插入图片描述
C/S架构软件有一个特点,就是如果用户要使用的话,需要下载一个客户端,安装后就可以使用。比如QQ,OFFICE软件等。

C/S架构的优点:

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

C/S架构的缺点:

可以将QQ作为类比:

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

二、什么是B/S架构

B/S(Browser/Server):浏览器/服务器

Browser指的是Web浏览器,极少数事务逻辑在前端实现,但主要事务逻辑在服务器端实现。

B/S架构的系统无须特别安装,只有Web浏览器即可。

其实就是我们前端现在做的一些事情,大部分的逻辑交给后台来实现,我们前端大部分是做一些数据渲染,请求等比较少的逻辑。

B/S架构的分层:

与C/S架构只有两层不同的是,B/S架构有三层,分别为:

  1. 第一层表现层:主要完成用户和后台的交互及最终查询结果的输出功能。
  2. 第二层逻辑层:主要是利用服务器完成客户端的应用逻辑功能。
  3. 第三层数据层:主要是接受客户端请求后独立进行各种运算。
    如图所示:
    在这里插入图片描述
    在这里插入图片描述

B/S架构的优点:

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

B/S架构的缺点:

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

B/S架构的三种形式:

第一种:客户端-服务器-数据库
在这里插入图片描述
这个是我们平时比较常用的一种模式:

  1. 客户端向服务器发起Http请求
  2. 服务器中的web服务层能够处理Http请求
  3. 服务器中的应用层部分调用业务逻辑,调用业务逻辑上的方法
  4. 如果有必要,服务器会和数据库进行数据交换. 然后将模版+数据渲染成最终的Html, 返送给客户端

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

三、发展前景

1、 C/S和B/S各有优势,C/S在图形的表现能力上以及运行的速度上肯定是强于B/S模式的,不过缺点就是他需要运行专门的客户端,而且更重要的是它不能跨平台,用c++在windows下写的程序肯定是不能在linux下跑的。

2、B/S模式就,它不需要专门的客户端,只要浏览器,而浏览器是随操作系统就有的,方便就是他的优势了。
而且,B/S是基于网页语言的、与操作系统无关,所以跨平台也是它的优势,而且以后随着网页语言以及浏览器的进步, B/S在表现能力上的处理以及运行的速度上会越来越快,它的缺点将会越来越少。尤其是HTML5的普及,在图形的渲染方面以及音频、文件的处理上已经非常强大了。
不过,C/S架构也有着不可替代的作用。

四、C/S 与 B/S 区别总结:

Client/Server是建立在局域网的基础上的.Browser/Server是建立在广域网的基础上的.
1.硬件环境不同
C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务.
B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例如电话上网, 租用设备. 信息管理. 有比C/S更强的适应范围, 一般只要有操作系统和浏览器就行

2.对安全要求不同
C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强. 一般高度机密的信息系统采用C/S 结构适宜. 可以通过B/S发布部分可公开信息.
B/S 建立在广域网之上, 对安全的控制能力相对弱, 面向是不可知的用户群.

3.对程序架构不同
C/S 程序可以更加注重流程, 可以对权限多层次校验, 对系统运行速度可以较少考虑.
B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上. 比C/S有更高的要求 B/S结构的程序架构是发展的趋势, 从MS的.Net系列的BizTalk 2000 Exchange 2000等, 全面支持网络的构件搭建的系统. SUN 和IBM推的JavaBean 构件技术等,使 B/S更加成熟.

4.软件重用不同
C/S 程序可以不可避免的整体性考虑, 构件的重用性不如在B/S要求下的构件的重用性好.
B/S 对的多重结构,要求构件相对独立的功能. 能够相对较好的重用.

5.系统维护不同
系统维护在是软件生存周期中,开销大, -------重要
C/S 程序由于整体性, 必须整体考察, 处理出现的问题以及系统升级. 升级难. 可能是再做一个全新的系统
B/S 构件组成,方面构件个别的更换,实现系统的无缝升级. 系统维护开销减到最小.用户从网上自己下载安装就可以实现升级.

6.处理问题不同
C/S 程序可以处理用户面固定, 并且在相同区域, 安全要求高需求, 与操作系统相关. 应该都是相同的系统
B/S 建立在广域网上, 面向不同的用户群, 分散地域, 这是C/S无法作到的. 与操作系统平台关系最小.

7.用户接口不同
C/S 多是建立的Window平台上,表现方法有限,对程序员普遍要求较高
B/S 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流. 并且大部分难度减低,减低开发成本.

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、C/S结构,全C#版,即服务器、客户端全VS2010的C#编写; 相关办公系统(部署说明+qqimdb),另送qqsrc. 本用于政务网的即时通信的政务交流工具,界面上高仿QQ,包含完整客户端、服务器端、数据库源文件,全部C#编写,数据库采用SQL SERVER2008。系统采用TCP直连和服务器转发的综合设计,能穿透防火墙和不在线留言功能(当对方不在线或有防火墙时,通过服务器中转消息)。 主要功能: 1、注册、登陆 2、添加好友 3、聊天(可设置防止聊天,即沟通超过30条限制时间) 4、传送文件(可单传,批量传) 5、远程协助 6、快捷按钮功能(可设置常用功能) 等等 如果以上功能不能满足您的需求,我们可为您有偿定制开发新功能! 售后可帮助调试并给予开发指导和咨询,源码完整,可以此基础开发功能更加强大的网络通讯IM软件。 4.1.2 C/S结构,C#+DELPHI版,服务器C# vs2010,客户端DELPHI2007编写 2、C/S结构,C#+DELPHI版,服务器C# vs2010,客户端DELPHI2007编写,功能十分强大; icq全部源码打包 C/S结构,C#+DELPHI版,含所有源代码和技术文档。 如果以下功能不能满足您的需求,我们可为您有偿定制开发新功能!同时提供您现有系统、网站、OA等的数据库整合系统整合等服务。 4.1.3 3 C/S结构,全C++版,具有视频会议、白板、文件共享、即时通讯等功能。 3、C/S结构,全C++版,功能非常强大,具有视频会议、白板、文件共享、即时通讯等功能。 Gavcon视频会议系统带IM 4.1.4 4、C/S结构和B/S结构 4、C/S结构和B/S结构,全C#在线客服版,适用网站未注册客户在线咨询类服务。 精品C#即时通讯源码(商业版).zip

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值