C/S与B/S比较
C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。早期的软件系统多以此作为首选设计标准。。
B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript…)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。随着Windows 98/Windows 2000将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。
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等信息、流向的变化, 更象交易中心
备注:
1、安装: C/S需要安装软件
2、运行环境:C/S独立的客户端进程,可以把很多的逻辑放在Client上,B/S运行于浏览器进程,服务器端承担绝大部分处理
3、安全域:C/S运行域本地,因此可访问的权限高很多,注册表、文件等都可访问,B/S差了很多
4、开发:C/S的客户端界面表现很丰富,一般的可视化支持较好,B/S相对弱一些,对于Javascript等的可视化设计不是很好【silverlight / flex好一些】
C/S与B/S:本不该成冤家
随着PC机的诞生与应用,计算模式从集中式(数据和应用程序在一台主机上)转向了分布式(数据和应用程序跨越多个节点机),尤为典型的是C/S结构(Client/Server的简称,客户机/服务器模式)。两层结构C/S模式,在上个世纪八十年代及九十年代初得到了大量应用,最直接的原因是可视化开发工具的推广。之后,它开始向三层结构发展。近来,随着网络技术不断发展,尤其是基于Web的信息发布和检索技术、Java计算技术以及网络分布式对象技术的飞速发展,导致了很多应用系统的体系结构从C/S结构向更加灵活的多级分布结构演变,使得软件系统的网络体系结构跨入一个新阶段,即B/S体系结构(Browser/Server的简称,浏览器/服务器模式)。基于Web的B/S方式其实也是一种客户机/服务器方式,只不过它的客户端是浏览器。为了区别于传统的C/S模式,才特意将其称为B/S(浏览器/服务器)模式。认识到这些结构的特征,对于系统的选型而言是很关键的。
系统的性能
在系统的性能方面,B/S占有优势的是其灵活性。任何时间、任何地点、任何系统,只要可以使用浏览器上网,就可以使用B/S系统的终端。近年来,智能手机、智能家电、PDA等传统电脑之外的上网方式发展迅速,这在一定程度上为B/S结构增加了砝码。
不过,采用B/S结构,客户端只能完成浏览、查询、数据输入等简单功能,绝大部分工作由服务器承担,这使得服务器的负担很重。采用C/S结构时,客户端和服务器端都能够处理任务,这虽然对客户机的要求较高,但因此可以减轻服务器的压力。而且,由于客户端使用浏览器,使得网上发布的信息必须是以HTML格式为主,其它格式文件多半是以附件的形式存放。而HTML格式文件(也就是Web页面)不便于编辑修改,给文件管理带来了许多不便。
系统的开发
最新的C/S结构是建立在中间件产品基础之上的,严格来讲这些产品还缺乏作为企业级应用平台的一些特性,难以扩展到互联网这样的环境上去,而且要求应用开发者自己去处理事务管理、消息队列、数据的复制和同步、通信安全等等系统级的问题。这对应用开发者提出了较高的要求,而且迫使应用开发者投入很多精力来解决应用程序以外的问题。这使得应用程序的维护、移植和互操作变得复杂,成了C/S的一大缺陷。如果客户端是在不同的操作系统上(比如Windows 2000以及不同版本的Unix),C/S结构的软件需要开发不同版本的客户端软件。如果产品经常需要更新换代,那么升级系统时候需要付出的高代价以及工作的低效率会在一定程度上制约企业的应用。
但是,与B/S结构相比,C/S技术发展历史更为“悠久”。从技术成熟度及软件设计、开发人员的掌握水平来看,C/S技术应是更成熟、更可靠的。和佳软件总裁陈佳认为:对于ERP软件而言,采用100%的B/S方式将造成系统响应速度慢、服务器开销大、通信带宽要求高、安全性差、总投资增加等问题。而且,对于复杂的应用,B/S方式目前尚没有合适方式进行开发。
系统的升级维护
C/S系统的各部分模块中有一部分改变,就要关联到其它模块的变动,使系统升级成本比较大。B/S与C/S处理模式相比,则大大简化了客户端,只要客户端机器能上网就可以。对于B/S而言,开发、维护等几乎所有工作也都集中在服务器端,当企业对网络应用进行升级时,只需更新服务器端的软件就可以,这减轻了系统维护与升级的成本。如果客户端的软件系统升级比较频繁,那么B/S架构的产品优势明显——无论用户规模有多大,所有的升级操作只需要针对服务器进行,这对人力、时间、费用的节省是相当惊人的。
在系统安全维护上,B/S则略显不足,B/S结构尤其得考虑数据的安全性和服务器的安全性,毕竟现在的网络安全系数并不高。以OA软件为例,B/S结构要实现办公协作过程中复杂的工作流控制与安全性控制,还有很多技术上的难点。因此,当前虽然出现了B/S结构的OA系统产品,但尚未大范围推广。
融合——取长补短
客观地分析C/S、B/S的优劣,规划系统的时候有的放矢地“趋利避害”,才能够搭建成合适的信息系统。我们接触的很多开发人员认为,在大型信息系统中采用B/S、C/S混合模式比较可行。在今年参与评测的一套软件系统中,开发人员就将C/S、B/S有机结合起来:需要对数据库进行频繁操作例如添加、修改资料的人员使用C/S客户端,这样客户端功能比较强、安全系数也高;领导层则使用B/S客户端进行数据的查询,这样客户端比较灵活,只要能上网即可以操作。如此处理,可充分发挥各种模式的优越性——避免了B/S结构在安全性、保密性和响应速度等方面的缺点以及C/S结构在维护和灵活性等方面的缺点。
背景知识:
两层结构C/S:如图1所示,它由两部分构成:前端是客户机,通常是PC;后端是服务器,运行数据库管理系统,提供数据库的查询和管理。
三层结构C/S:这是伴随着中间件技术的成熟而兴起的,核心概念是利用中间件将应用分为表示层、业务逻辑层和数据存储层三个不同的处理层次(如图2所示)。三个层次的划分是从逻辑上来分的,具体的物理分法可以有多种组合。中间件作为构造三层结构应用系统的基础平台,提供了以下主要功能:负责客户机与服务器间、服务器间与服务器间的连接和通信;实现应用与数据库的高效连接;提供一个三层结构应用的开发、运行、部署和管理的平台。
B/S模式:B/S模式层次结构如图3所示。处于第一层的是客户端,处于第二层的是应用服务层,由一台或多台服务器组成,该层具有良好的可扩充性,可以随着应用的需要增加服务器的数目。处于第三层的是数据层,由数据库系统和遗留系统组成。
C/S与B/S联系和选择使用
C/S与B/S的关系与管理需求是紧密联系的,在集团管理中有集中式管理与分布式管理的区别一样,集中式管理要求对数据实时监控,因为那些外地的分公司需实施进行远程操作数据的读写与传输,所以需要用B/S结构来保证数据操作实时性的(只要能上网就能登入操作).应用产品、系统产品、网络环境的不同,又将其细分为:
C/S结构应用方案;系统更新时客户端均须维护,对网络带宽要求较高,主要适合局域网运行.
B/S结构应用方案b/s:客户端免安装,客户端免维护,方便的查询,所有查询均可保存个性化方案和公用方案
集团管理分布管理就是用C/S结构的来构成个个区域(各分公司)数据存储与操作,而后在定期上报数据给总部汇总,这样操作的数据不需要B/S结构。
根据企业不同的要可选择不同的模式,不是把有的企业都需要B/S,也不是所有的C/S产品能满足所有的企业需求(如作全国分销的信息化系统绝对需要B/S结构的产品来实时监控个个分销公司和营销网点)子公司的地域和带宽进行判断,一般建议异地的子公司采用B/S,与集团总部在同一局域网内的子公司,并且是高带宽的子公司采用C/S。
什么是B/S与C/S架构以及其优劣势
B/S与C/S
1.1 什么是B/S
B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种 结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成 所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。
以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次 性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据 库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高 效。
1.2 什么是C/S
C/S(Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理 分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的 软件应用系统正在向分布式的Web应用发展,Web和Client/Server应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部 的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。
传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支 持。由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,加之产品的更新换代十分快,已经很难适应百台 电脑以上局域网用户同时使用。而且代价高,效率低。
1.3 B/S与C/S比较
1.3.1 系统性能的比较
在系统的性能方面,B/S占有优势的是其异地浏览和信息采集的灵活性。任何时间、任何地点、任何系统,只要可以使用浏览器上网,就可以使用B/S系统的终端。
不过,采用B/S结构,客户端只能完成浏览、查询、数据输入等简单功能,绝大部分工作由服务器承担,这使得服务器的负担很重。采用C/S结构时,客户端和 服务器端都能够处理任务,这虽然对客户机的要求较高,但因此可以减轻服务器的压力。而且,由于客户端使用浏览器,使得网上发布的信息必须是以HTML格式 为主,其它格式文件多半是以附件的形式存放。而HTML格式文件(也就是Web页面)不便于编辑修改,给文件管理带来了许多不便。
1.3.2 系统开发
C/S结构是建立在中间件产品基础之上的,要求应用开发者自己去处理事务管理、消息队列、数据的复制和同步、通信安全等系统级的问题。这对应用开发者提出 了较高的要求,而且迫使应用开发者投入很多精力来解决应用程序以外的问题。这使得应用程序的维护、移植和互操作变得复杂。如果客户端是在不同的操作系统 上,C/S结构的软件需要开发不同版本的客户端软件。但是,与B/S结构相比,C/S技术发展历史更为“悠久”。从技术成熟度及软件设计、开发人员的掌握 水平来看,C/S技术应是更成熟、更可靠的。
1.4 升级与维护
C/S系统的各部分模块中有一部分改变,就要关联到其它模块的变动,使系统升级成本比较大。B/S与C/S处理模式相比,则大大简化了客户端,只要客户端 机器能上网就可以。对于B/S而言,开发、维护等几乎所有工作也都集中在服务器端,当企业对网络应用进行升级时,只需更新服务器端的软件就可以,这减轻了 异地用户系统维护与升级的成本。如果客户端的软件系统升级比较频繁,那么B/S架构的产品优势明显——所有的升级操作只需要针对服务器进行,这对那些点多 面广的应用是很有价值的,例如一些招聘网站就需要采用B/S模式,客户端分散,且应用简单,只需要进行简单的浏览和少量信息的录入。
1.5 C/S的优缺点
★C/S模式的优点
●由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快。
●操作界面漂亮、形式多样,可以充分满足客户自身的个性化要求。
●C/S结构的管理信息系统具有较强的事务处理能力,能实现复杂的业务流程。
★C/S模式的缺点
●需要专门的客户端安装程序,分布功能弱,针对点多面广且不具备网络条件的用户群体,不能够实现快速部署安装和配置。
●兼容性差,对于不同的开发工具,具有较大的局限性。若采用不同工具,需要重新改写程序。
●开发成本较高,需要具有一定专业水准的技术人员才能完成。
1.6 B/S的优缺点
★B/S模式的优点
●具有分布性特点,可以随时随地进行查询、浏览等业务处理。
●业务扩展简单方便,通过增加网页即可增加服务器功能。
●维护简单方便,只需要改变网页,即可实现所有用户的同步更新。
●开发简单,共享性强。
★B/S模式的缺点
●个性化特点明显降低,无法实现具有个性化的功能要求。
●操作是以鼠标为最基本的操作方式,无法满足快速操作的要求。
●页面动态刷新,响应速度明显降低。
●无法实现分页显示,给数据库访问造成较大的压力。
●功能弱化,难以实现传统模式下的特殊功能要求。