首页 > 代码库 > CS与BS架构区别、比较、及现状与趋势分析
CS与BS架构区别、比较、及现状与趋势分析
转自 http://www.cnblogs.com/engeng/articles/5976292.html
一、简介
CS即Client/Server(客户机/服务器)结构,C/S结构在技术上很成熟,它的主要特点是交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据。但是该结构的程序是针对性开发,变更不够灵活,维护和管理的难度较大。通常只局限于小型局域网,不利于扩展。并且,由于该结构的每台客户机都需要安装相应的客户端程序,分布功能弱且兼容性差,不能实现快速部署安装和配置,因此缺少通用性,具有较大的局限性。要求具有一定专业水准的技术人员去完成。
BS即Browser/Server(浏览器/服务器)结构,就是只安装维护一个服务器(Server),而客户端采用浏览器(Browse)运行软件。B/S结构应用程序相对于传统的C/S结构应用程序是一个非常大的进步。 B/S结构的主要特点是分布性强、维护方便、开发简单且共享性强、总体拥有成本低。但数据安全性问题、对服务器要求过高、数据传输速度慢、软件的个性化特点明显降低,这些缺点是有目共睹的,难以实现传统模式下的特殊功能要求。例如通过浏览器进行大量的数据输入或进行报表的应答、专用性打印输出都比较困难和不便。此外,实现复杂的应用构造有较大的困难。
二、CS与BS的比较
对象 | 硬件环境 | 客户端要 求 | 软件安装 | 升级和维护 | 安全性 |
C/S | 用户固定,并且处于相同区域,要求拥有相同的操作系统。 | 客户端的计算机电脑配置要求较高。 | 每一个客户端都必须安装和配置软件. | C/S每一个客户端都要升级程序。可以采用自动升级。 | 一般面向相对固定的用户群,程序更加注重流程,它可以对权限进行多层次校验,提供了更安全的存取模式,对信息安全的控制能力很强。一般高度机密的信息系统采用C/S结构适宜。 |
B/S | 要有操作系统和浏览器,与操作系统平台无关。 | 客户端的计算机电脑配置要求较低。 | 可以在任何地方进行操作而不用安装任何专门的软件。 | 不必安装及维护 |
三、现状与趋势(转自知乎)
链接:http://www.zhihu.com/question/24368490/answer/70415838 来源:知乎著作权归作者所有。
1:用来编制CS管理软件的编程语言,早已江河日下首先我们来了解一下各种语言的发展趋势和排行榜,可以看到排名前十的语言中,没有一种是用来开发CS管理软件的,其中8种语言(Java,C#,Python,PHP,Visual Basic .NET,JavaScript,Perl,Ruby)主要就是面向BS架构软件的语言,剩下的两种语言(C,C++)也不是应用于CS管理软件,而主要面向游戏、科学计算、网络通信软件、操作系统、设备驱动程序、嵌入式系统等。
在2015年编程语言排名中,我们可以看到CS软件的主打开发语言VB和Delphi Pascal已经排到了17名和20名,加起来才不到2%的市场占有率,而十多年前却是占据着10%以上,最让人看不到未来的是VB和Delphi的厂商已经不再提供正式支持了。
因此,若是选择CS管理软件,会导致未来的升级和维护都可能会是问题,一方面因为该编程语言和相关的组件已经不再往前发展和创新了,另一方面是国内学院和学生根本没有人去学了,大家都去学习互联网或移动端的开发语言了。
2:市面上CS的管理软件正越来越少
企业管理软件目前已经是BS在主导天下了。
十几年前所有管理软件都是基于CS架构开始的,包括用友用VB开发的财务软件,金蝶也是用VB开发的管理软件,当时还有和VB并驾齐驱的Delphi开发平台(Borland公司拥有)。那完全是因为那时还没有互联网,甚至局域网都没普及,所谓CS管理软件其实就是一个单机记账软件。
但随着互联网兴起和信息化管理的深入,一方面我们很容易看到所有新兴的企业管理软件,几乎就没有采用CS开发的,如比较流行的OA管理软件,CRM管理软件。另一方面也看到国内包括用友、金蝶等巨头都在从CS转向BS,或者说从VB转向JAVA、。NET,CS相关管理软件一方面越来越少,另一方面现存的CS管理软件也是出于旧版本维护中而已。
3:CS管理软件应用不如BS方便
相比于CS管理软件,BS在安装部署、升级维护、设备带宽、软件学习推广成本等方面都有无可比拟的优势。BS管理软件的用户在客户机上无需安装任何软件,使用浏览器即可访问系统。系统让企业扩张不再需要额外投入更多信息化的资金,让系统培训和后期推广都变得非常容易,管理模式变得可复制。
可用性:任何时间、任何地点、任何系统,只要可以使用浏览器上网,就可以使用BS系统的终端,更多的系统用户加入时只需设立账号、培训即可,并支持移动办公和分布式办公。CS是典型的集中式机械化处理,交互性相对低。
稳定性:J2EE的三层架构,采用中间件应用服务器。数据库、应用服务器、视图分层设计,几千几万用户同时在线系统也有优秀的表现。
易升级:CS系统往往是一个不可拆分的整体,各部分模块中有一部分改变,就要关联到其它模块的变动,使系统升级成本比较大。BS都是由构件组成,只需要改变页面就可以同步更新,其开发、维护等几乎所有工作也都集中在服务器端,当企业对网络应用进行升级时,只需更新服务器端的软件就可以。
低维护:CS需要专门的客户端安装程序,客户端的安装、升级、网络调试困难;而BS系统只需管理中心服务器。
兼容性:CS系统严重依赖于固定的开发工具、开发语言、操作系统、数据库,软件服务商提供的只能是一个整体性的固化软件,对异构操作系统、数据库很难兼容。BS借助JAVA这样的跨平台语言出现之后,可兼容于所有主流数据库和操作系统。
低带宽: CS典型应用是各个客户端直接连接服务器数据库,一般应用在专用的网络上,仅适用于局域网内部用户或宽带用户小范围里的网络环境,不适合作业点分布较广的大型应用。BS 建立在广域网之上的,带宽要求低,不必是专门的网络硬件环境,适用于低带宽、欠稳定的环境。
丰富展现:CS 多是建立在Window平台上,表现方法有限。BS 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流。
4:CS管理软件不如BS更能应对未来挑战
BS软件在安全性、系统扩展、后续投资等方面都有无可比拟的优势。
安全性:CS对服务器端和客户端安全都需要考虑,而BS只注重服务端即可。CS 程序由于更需要对整体性的考虑,必须有非常专业水准的技术人员才能完成软件更改,特别是数据直接对各客户端开放,导致安全隐患。而BS系统只对外开放HTTP协议和端口,数据库只允许服务器一台机器访问,浏览器端U盾的使用使数据安全加密。
扩展性:系统扩展维护是软件生存周期中,开销大,相当重要 。CS 程序由于整体性,必须整体考察,处理出现的问题以及系统升级难,很可能是再做一个全新的系统。BS满足构件个别的更换,实现系统的无缝升级。因此BS一般只有初期一次性投入成本,而CS软件则不同,随着应用范围的扩大,投资会连绵不绝。
重用性:BS可基于J2EE平台架构,利用分布式组件技术来构造系统,减少系统维护和升级成本,有利于保护用户投资,二次开发快捷。业务扩展通过增加网页即可增加供热业务功能。而CS构件的重用性不如BS好。
大型应用:对于集团级的异地软件应用,CS结构的软件必须在各地安装多个服务器,并在多个服务器之间进行数据同步。如此一来,每个数据点上的数据安全都影响了整个应用的数据安全。所以,对于集团级的大型应用来讲,CS结构软件的安全性是令人无法接受的。对于BS结构的软件来讲,由于其数据集中存放于总部的数据库服务器,客户端不保存任何业务数据和数据库连接信息,也无需进行什么数据同步,所以这些安全问题也就自然不存在了。而且CS模式下数据的实时性、追溯性都不能保证,数据的分布性导致数据永远无法一致,决策不准。这也是由于CS对带宽要求很高,企业要是租用专线投入会很大,才会导致数据分开管理。
投资保护:在对已有硬件投资的保护方面,两种结构也是完全不同的。当应用范围扩大,系统负载上升时,CS结构软件的一般解决方案是购买更高级的中央服务器,原服务器放弃不用,这是由于CS软件的两层结构造成的,这类软件的服务器程序必须部署在一台计算机上;而BS结构则不同,随着服务器负载的增加,可以平滑地增加服务器的个数并建立集群服务器系统,然后在各个服务器之间做负载均衡。有效地保护了原有硬件投资。
高性能:大多数CS结构的软件都是通过ODBC直接连到数据库的,安全性差不说,其用户数也是受限的。每个连到数据库的用户都会保持一个ODBC连接,都会一直占用中央服务器的资源,对中央服务器的要求非常高,使得用户扩充受到极大的限制。而BS结构软件则不同,所有的用户都是通过一个JDBC连接缓冲池连接到数据库的,用户并不保持对数据库的连接,用户数基本上是无限的
CS与BS架构区别、比较、及现状与趋势分析