浅析B/S结构与C/S结构及未来趋势

本文所述C/S与B/S均针对应用系统而言。

C/S结构,即Client/Server(客户机/服务器)结构模式,服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、DB2、Sybase、SQL Server等,客户端则需要安装专用的客户端软件。

C/S结构出现在网络通讯产生以后、客户机与服务器分离,同时客户机具有较强的计算能力的情况下,使用C/S结构的系统,可以将一部分工作放在客户端,充分利用客户端的资源优势,同时又可以降低服务器端的运算压力。初期,C/S结构的系统风靡一时,C/S结构本身有其自身响应速度快、桌面化操作、便于维护状态等的优势,因此很多在操作性、响应速度要求较高的软件,例如:财务软件、商超软件等仍然使用C/S结构(当让不排除许多优秀的财务及商超软件使用B/S结构)。当然,财务软件及商超软件使用C/S结构还有许多其他原因,例如:统一的财务制度,相同的销售模式等。但是除此之外,多数基于C/S结构的软件,仍然没能摆脱C/S结构本身最大的缺陷,升级困难,维护成本高。客户每一次需求的变更,几乎都需要所有的客户端重新升级。本人曾经亲眼所见由于软件升级维护成本拖垮软件公司的案例,并亲历由于C/S结构升级维护困难导致客户最终选择B/S结构软件的情况。虽然如此,但是C/S结构的软件,仍然具有其自身的响应速度、操作性等优势。

B/S结构,即Browser/Server(浏览器/服务器)结构模式,服务器同样使用较高性能的PC、工作站或小型机,多数系统仍然需要使用数据库,与C/S结构的区别在于客户端由浏览器来担任。

B/S结构出现在浏览器成熟并在业界形成了一套较为标准的表示语言(HTML)之后,B/S结构的软件解决了C/S结构升级维护困难的难题,即使用户需求频繁变动,客户端也无需每次重新升级软件,客户每次只需打开浏览器,录入系统的访问地址,便可获取最新的软件(ActiveX等控件升级除外)。由于B/S结构的软件在升级维护上的成本大大降低,导致现在几乎所有的新上系统,全都使用B/S结构,软件公司在考虑降低成本的同时,几乎不会考虑客户的体验,因此人们通常说“我们非常想考虑客户的体验,但是巨大的维护成本迫使我们放弃考虑C/S结构”。但是,公司们逐渐会发现,升级维护的成本几乎都加在开发成本上了,客户习惯了桌面式的方便操作,以及快速的响应,对于交互性较差的B/S结构的软件不买账,软件公司不得不采取各种措施提供客户体验。一个软件随着它的逐渐成熟,本身也逐渐庞大(无论从软件本身还是运行时所占用的资源),最终变得臃肿不堪。Ajax的出现,解决了一部分问题,异步刷新使得页面不必每次都刷新,而且客户也无需每次维护一条数据就要提交一次,但是在操作性上,仍然存在欠缺,于是富客户端的概念逐渐被提出来,不仅仅是客户的体验,还有服务器在计算能力上的局限性以及相当部分的客户没有大型服务器的购买能力,富客户端将一部分计算放在了客户端,缓解了一部分服务器端的计算压力,但是目前富客户端的各种实现,没有非常成熟的开发模式,开发成本较高。

目前正在使用某银行一网上银行功能(为避嫌不提此银行的名称),发现其采用B/S与C/S结合的方式,对B/S的操作性有了较大的提升,但是仍然存在客户端升级的问题,每次网银功能增加,都需要重新下载安装新的客户端。这种B/S与C/S结合的方式也许是目前解决B/S缺陷的一种较好的办法,客户端的升级,也许可以参照ActiveX的方式,或者直接自动下载免安装;毕竟,B/S本身实际上也是每次下载新的页面然后执行的方式。

你可能感兴趣的:(感悟)