1.前言
一直在说C/S和B/S架构,但到底二者之间的区别是什么,之前一直没有去探究,今天有空,在网上搜索查看,了解到一些内容,进行整理一下
2.C/S架构
C/S:C/S是client/server的缩写,一种典型的两层架构,即客户端服务器架构。该模式是建立在局域网基础上的,同时客户端需要安装客户端软件才能够使用(其客户端包含一个或多个在用户的电脑上运行的程序,因此客户群稳定)。服务器端有两种,一种是数据库服务器端,客户端通过数据库连接访问服务器端的数据;另一种是Socket服务器端,服务器端的程序通过Socket与客户端的程序通信(聊天软件是否就是这种呢)。主要特点是交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据。因为客户端要负责绝大多数的业务逻辑和UI展示,又称为胖客户端。
优缺点
优点:
1 C/S架构的界面和操作可以很丰富。
2 安全性能可以很容易保证,实现多层认证也不难。
3 由于只有一层交互,因此响应速度较快。
缺点:
1 适用面窄,通常用于局域网中。
2 用户群固定。由于程序需要安装才可使用,因此不适合面向一些不可知的用户。
3 维护成本高,发生一次升级,则所有客户端的程序都需要改变。
3.B/S架构
B/S:B/S是borwser/server的缩写,即浏览器服务器结构。该模式是建立在广域网基础上的,Browser指的是Web浏览器,极少数事务逻辑在前端实现,但主要事务逻辑在服务器端实现,Browser客户端,WebApp服务器端和DB端构成所谓的三层架构。B/S架构的系统无须特别安装,只有Web浏览器即可,因此其客户群广泛。B/S中显示逻辑交给了Web浏览器,事务处理逻辑在放在了WebApp上,这样就避免了庞大的胖客户端,减少了客户端的压力。因为客户端包含的逻辑很少,因此也被成为瘦客户端。
优缺点
1客户端无需安装,有Web浏览器即可。
2BS架构可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强。
3BS架构无需升级多个客户端,升级服务器即可。
缺点:
1在跨浏览器上,BS架构不尽如人意。
2表现要达到CS程序的程度需要花费不少精力。
3在速度和安全性上需要花费巨大的设计成本,这是BS架构的最大问题。
4客户端服务器端的交互是请求-响应模式,通常需要刷新页面,这并不是客户乐意看到的。(在Ajax风行后此问题得到了一定程度的缓解)
4.二者区别
1.硬件环境
(1)C/S 用户固定,一般只应用于局域网(专用网络上)中,局域网之间再通过专门服务器提供连接和数据交换服务。要求拥有相同的操作系统,如果对于不同操作系统还要相应开发不同的版本,并且对于计算机电脑配置要求也较高。
(2)B/S 要求有操作系统和浏览器就行,与操作系统平台无关
(可以实现跨平台),对客户端的计算机电脑配置要求较低。比C/S有更强的适应范围
2.安全要求不同
(1)C/S一般面向固定的用户群,对信息安全的控制能力很强。 一般高度机密的信息系统采用C/S 结构适宜。
(2)B/S建立在广域网之上, 对安全的控制能力相对弱,面向是不可知的用户群,可以通过B/S发布部分可公开信息.
3.程序架构
(1)C/S 程序可以更加注重流程,,可以对权限多层次校验,,对系统运行速度可以较少考虑
(2)B/S 对安全以及访问速度的多重的考虑,,建立在需要更加优化的基础之上 B/S结构的程序架构是发展的趋势,从MS的.Net系列的BizTalk 2000 Exchange 2000等,全面支持网络的构件搭建的系统.。SUN 和IBM推的JavaBean 构件技术等,使 B/S更加成熟。
4.软件重用
(1)C/S不可避免的考虑整体性,构件的重用性不如在B/S要求下的构件的重用性好。
(2)B/S要求构件相对独立的功能,能够相对较好的重用。
5.系统维护
(1)系统维护在是软件生存周期中,开销大。重要C/S 程序由于整体性,,必须整体考察, 处理出现的问题以及系统升级。升级难,可能是再做一个全新的系统。
(2)B/S程序由构件组成,方便构件个别的更换,实现系统的无缝升级,系统维护开销减到最小。
6.用户接口
(1)C/S 多是建立的Window平台上,表现方法有限
(2)B/S 建立在浏览器上,,有更加丰富和生动的表现方式与用户交流,并且大部分难度减低,减低开发成本。