C/S与B/S终极总结

来源:百度文库 编辑:神马文学网 时间:2024/04/29 18:03:06
C/S与B/S
所谓C/S结构是一个程序的运行方式,它是Client/Server的简称,即客户机和服务器结构,而B/S结构指的是Browser/Server的简称,即浏览器和服务器结构。随着互联网在政治、经济、生活等各个领域的不断发展,使基于浏览器的B/S的应用程序逐步的发展起来,也有人把这种应用形式称作"瘦客户机"程序。所谓瘦客户机指的就是,在客户端无需安装过多的软件即可以实现与服务器的交互。
当B/S程序发展到了今天,C/S的程序越来越少了,现在C/S似乎已经成为过时的一种开发方法,B/S的程序如日中天,一发不可收拾。甚至有时候,我们的好多程序员对C/S程序嗤之以鼻,一提到C/S程序简直就是不屑一顾。
然而,C/S的程序真的一无是处吗?
B/S是一个很好的创意
B/S模式是指在TCP/IP的支持下,以HTTP为传输协议,客户端通过Browser访问Web服务器以及与之相连的后台数据库的技术及体系结构。它由浏览器、Web服务器、应用服务器和数据库服务器组成。客户端的浏览器通过URL访问Web服务器,Web服务器请求数据库服务器,并将获得的结果以HTML形式返回客户端浏览器。
在互联网应用程序应用初期,大多数应用都是建立在C/S结构基础上的,浏览器的应用促使动态页面的实现,于是就有人提出来,能不能用浏览器作为应用程序的客户端呢?于是,B/S程序结构便应运而生,浏览器和服务器结构是对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。
以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全 。特别是在Java这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。
B/S构架对于用户的好处:
1)安装维护简单,由于客户端使用IE,因此不需要安装专门的客户端程序。
2)便于面向广大未知用户使用,因为只要电脑安装了IE,经过一定的设置,就都可以使
用,如建立企业网站发布信息。
B/S构架对于用户的缺点:
1)功能不强、操作不便,易用性差,这是由于B/S的客户端软件采用了IE浏览器,而IE
的功能特点限制了B/S系统不能实现强大的功能,并且易用性也大大降低。
2)安全系数较低,因为客户端浏览器很容易暴露源代码,并且浏览器本身结构的设计缺
陷导致很容易受到黑客攻击,甚至象美国国防部这样防范严密的网站也被黑客攻破,
这也是经常出现网上银行被盗的根本原因。
B/S构架对于开发商的好处:
相对于C/S架构,B/S对于开发商来说其优点和好处是非常明显的,而缺点却几乎没
有,总体来说,B/S系统开发周期短,技术难度相对较低,开发成本低,由于客户端
使用IE浏览器,因此客户端程序就不需要编写,因为微软的IE中已经封装了所有数
据收发、显示的过程。
B/S适用场合:
1)公开信息发布,对信息的保密性要求较低,并且用户是未知的,比如企业网站;
2)适用于安全性要求比较低的售后服务系统,如物流信息的查询系统等。
关于C/S
C/S构架的对于用户的好处:
1)技术成熟可靠,这是许多知名ERP系统几乎都采用C/S结构根本原因。
2)功能强大、操作方便,易用性好,用户会比较喜欢使用,如具有支持键盘快捷键操
作等很多用户喜欢的功能,这是B/S远远比不上的。
3)远程办公时响应速度快,安全性和稳定性都比B/S要可靠,这是因为一般C/S比B/S减
少了一个中间层,因此数据传输环节比B/S要简单,并且由于使用了专门开发的客户
端程序,因此比B/S结构具有更高的安全性和稳定性,比如微软的MCSE、印度NIIT的
远程考试系统都是基于CS结构,MSN、QQ等优秀软件均采用C/S结构,这也是很多ERP 厂商最终选择C/S的原因,因为安全当然是首先要考虑的。
C/S构架的对于用户的缺点:
系统升级维护相对复杂,因为每个客户端电脑都需要安装专门程序。
C/S架构对于开发商的缺点:
C/S架构对于开发商来说其实真的没有什么突出的优点和好处可言,而只有突出的缺点,总体来说,由于C/S需要开发专用的客户端程序,因此技术难度大,开发周期长,对程序员的技术要求也比较高,因此开发成本也比较高。
C/S程序的优势--速度
他的速度优势就是来自于网络传输的内容,在C/S程序中所传递的是纯数据流,而在B/S中所传递的不仅仅是数据还要包含格式数据,而往往格式信息的数据量会超过纯数据的信息量。另一个影响速度的地方是,逻辑运算部分,B/S的逻辑运算是在服务器端进行,而C/S结构的逻辑运算都分别在不同的客户端进行,因此,分担了服务器端程序的CPU资源。如图 2 10所示。
 
C/S程序的应用服务器运行数据负荷较轻。最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。二者可分别称为前台程序与后台程序。运行数据库服务器程序的机器,也称为应用服务器。一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。数据的储存管理功能较为透明。在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,在服务器程序中不集中实现。所有这些,对于工作在前台程序上的最终用户,是"透明"的,他们无须过问背后的过程,就可以完成自己的一切工作。
C/S程序的应用领域
我们了解到C/S结构的程序的优势,那么一般C/S程序应用到什么领域呢?
速度要求高,实时性要求比较高,用户一旦用上改动不大,以及信息保密性和安全性较高的场合,并且往往是使用者是已知和可确认的,比较适合于企业内部的信息管理系统、金融证券管理系统。比如,超市的销售收款程序,当顾客拿着物品准备交款的时候,却在等着那个缓慢呈现的Web页出现的时候,他会怎么想?因此,C/S结构并不是一无是处,没必要一提到C/S结构就嗤之以鼻。对于上述领域B/S程序是根本没有办法和C/S程序相提并论的。
B/S程序本身也是一个C/S程序
先看一下C/S的结构示意图,如图 2 8所示。

客户端软件是为了完成更多的管理功能而开发的,通过它将与数据库系统进行数据交换,达到管理数据的目的。将各种计算与数据逻辑加入到客户端软件中,服务器端只负责存取数据,因此,客户端与服务器端交互的数据完全是纯数据流。
然后我们再看一下B/S的架构,如图 2 9所示。
B/S结构的客户端是浏览器,数据逻辑与计算基本上都是在服务器端进行,客户端仅仅是将计算与数据取得的结果予以呈现,而这时候所呈现的内容也依赖服务器端所返回的Http数据流中包含的标记。
大家看看这两个结构图的差异,不难发现他们的基本结构极其相似,都是有"客户端"的,只不过B/S的客户端是浏览器而已。这说明,从本质上来说,B/S结构的系统也是一种C/S的软件。