看到网上有些人在讨论C/S架构和B/S架构以及它们的发展趋势,后起之秀B/S是否真将取代C/S而存在?在发表我的观点之前,我们先来一起来回顾下C/S以及B/S.
一C/S
1.C/S概念
C/S是Client/Server的缩写。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或 SQL Server。客户端需要安装专用的客户端软件。我的理解是比如QQ、飞信、我们做的机房收费系统、学生信息管理系统等等这种需要在客户端安装专门的软件,并且有服务器端提供数据服务的就是通过C/S模式开发的。
2.C/S优点
C/S结构的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。
3.C/S缺点
a.扩展性差
b.维护和升级成本非常高
c.客户端的操作系统有限制
二B/S
1.B/S概念
B/S是Browser/Server的缩写,是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件,客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。在这种结构下,浏览器通过Web Server 同数据库进行数据交互,我们每天通过网页浏览信息,这本身就是一种B/S模式。
2.B/S优点
B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件,只要有一台能上网的电脑就能使用,客户端零安装、零维护。系统的扩展非常容易。
维护和升级方式简单
B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行
3.B/S缺点
应用服务器运行数据负荷较重
由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。
三.C/S与B/S比较
1.C/S与B/S联系
a.B/S属于C/S,浏览器只是特殊的客户端,所以C/S和B/S并没有本质的区别,B/S是特殊的C/S架构;
b.C/S可以使用任何通信协议,而B/S这个特殊的C/S架构规定必须实现HTTP协议;
c.浏览器是一个通用客户端,本质上开发浏览器,还是实现一个C/S系统。
之所以在C/S架构上提出B/S架构,也是为了满足瘦客户端、一体化客户端的需要,它可以克服C/S扩展性差、维护难度大的问题,但是在系统开发中C/S结构(Client/Server)中Client(客户端)往往可以由 B/S结构(Browser/Server结构)的Browser(浏览器)及其载体承担,C/S结构的Web应用与B/S结构(Browser/Server结构)具有紧密联系。大系统和复杂系统中,C/S结构和B/S结构的嵌套也很普遍,所以有些软件背后既可以看到C/S的身影又可以看到B/S的身影。
2.CS与BS区别
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结构的程序架构是发展的趋势。
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 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流. 并且大部分难度减低,减低开发成本。
我们的选择
通过以上的这些介绍,大家对C/S和B/S应该都有了整体的认识了,与其说B/S是否真将取代C/S而存在,我宁愿把软件设计看成是一种音乐艺术,它可以有许多流派、很多风格,当然在不同的时代也许会有不同的主流,但这并不意外着,别的流派或风格就会被彻底的抛弃,无论是C/S还是B/S方式,许多人都在用,并且每个方式都有做的很优秀的人,所以我认为,我们没有必要一定要讨论出未来的趋势是怎么的,我们应扩大眼界,开放思想,站在巨人的肩膀上,用哪种架构取决于我们的需求,如果我们能将两种架构有机的结合起来,一起为我们所用,岂不更好。