cs架构嵌入bs_CS与BS架构区别、比较、及现状与趋势分析
一、简介
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 | 要有操作系统和浏览器,与操作系统平台无关。 | 客户端的计算机电脑配置要求较低。 | 可以在任何地方进行操作而不用安装任何专门的软件。 | 不必安装及维护 |
三、现状与趋势
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连接缓冲池连接到数据库的,用户并不保持对数据库的连接,用户数基本上是无限的。
相关文章:

大数据的“平民化”、“流动化”、“商业化”推动企业升级与转型
CSDN 出品的《2018-2019 中国人工智能产业路线图》V2.0 版已经重磅面世! V1.0 版发布以来,我们有幸得到了诸多读者朋友及行业专家的鼎力支持,在此表示由衷感谢。此次 V2.0 版路线图进行了新一轮大升级,内容包括 3 大 AI 前沿产业趋…

APIPA是什么?
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />APIPA(Automatic Private IP Addressing,自动专用IP寻址自动专用IP寻址),是一个DHCP故障转移机制。当DHCP服务器出故障时ÿ…

birt报表表格边框_手把手教你五步制作出一张领导驾驶舱报表
领导驾驶舱报表是一款为企业内部领导及相关高管提供企业数据指标分析的报表,用来实时反映企业的运行状况,将企业管理决策提升到一个新的高度。今天小编用亿信华辰的亿信ABI给大家实际演示,通过5个步骤就可以刷刷刷“变”出漂亮的领导驾驶舱&a…

Web的现状:网页性能提升指南
互联网发展非常迅速,所以我们创造了Web平台。通常 我们会忽视连通性等问题,但用户们却不会视而不见 。一瞥万维网的现状,可以发现我们并没有用同情心、变通意识去构建它,更不要说性能了。 所以,今天的Web是什么状态呢?…
[导入]ExtJs 2.0 弹窗事例
网站: JavaEye 作者: ppkosd 链接:http://ppkosd.javaeye.com/blog/133004 发表时间: 2007年10月18日 责任不是你应该做的事情,而是你必须做的事情 -- ppkosd 这个EXT 2.0 的例子 讲的是怎么样用aspserver和ext2.0构建弹窗效果! 服务器部分: 代码va…

双十一报名截止,决赛在即!AI Challenger2018极客峰会免费抢票!
第二届“AI Challenger 全球AI挑战赛”各赛道竞赛经过两个多月的激烈角逐,报名将于北京时间2018年11月11日23:59:59正式截止,随即进入决赛阶段,最终每个竞赛的TOP 5团队将进入12月18、19日在北京举办的总决赛答辩及颁奖礼,角逐超过…

取值范围_从int取值范围谈起
int取值范围我们在面试过程中,或者在准备面试过程中,可能会遇到这样一个问题:Java中int的取值范围是什么?这个问题比较常见,也很简单,相信大部分Java开发人员都可以快速答上来:[ , ]即使不能马上…

MonoRail学习笔记五:定制服务实现自定义功能
在上一篇MonoRail学习笔记四:MonoRail基本流程分析中我提到,MonoRail中可以自定义一些服务。比如可以定义自己的Url解析类,来实现http://localhost:***/index.rails等http://localhost:***/*.rails的效果。具体步骤如下:1、修改we…

我的第一个vb实例--红楼梦测试小程序
http://files.cnblogs.com/gengxiaochao/hlmtest.rar 转载于:https://www.cnblogs.com/gengxiaochao/archive/2007/11/26/973072.html

2018 AI产业投融资分析:热钱涌向何处,谁的“寒冬”将至?
AI科技大本营按:本篇内容来自由 CSDN 出品的《2018 中国人工智能产业路线图》V2.0 版中 1.4 章投融资分析篇,通过对各大 AI 行业进行相关数据分析,我们尽可能勾勒出中国 AI 产业发展现状,并对行业未来做出趋势判断。产业路线图 2.…

mvc的宿舍管理系统源码 基于jsp_[源码和文档分享]基于JSP的MVC框架实现的图书推荐系统展示平台网站...
推荐系统是目前互联网中最常见的一种智能产品形式。由于网络中信息量的快速增长以及图书出版行业出版量的攀升,人们需要一种办法,来解决信息过载的问题。此外,用户访问网络是为了获取信息,但并不是所有的访问都有很强的目的性&…

Ms Sql Server 基本管理脚本(1)
/* *登录帐户管理*/--授予Windows账号test访问数据库的权限exec sp_grantlogin teacher-jin\test--拒绝Windows账号test访问数据库的权限exec sp_denylogin teacher-jin\test--回收Windows账号test访问数据库的权限exec sp_revokelogin teacher-jin\test--授予Windows组users访…

配置Android开发环境(fedora)
配置Android开发环境(fedora) 最进看见google的Android,体会了下,按照官网上的配置了下,后编了个Hello Android结果发现没能传到模拟器上;于是在windows xp上试了下,没问题。那么为什么会有问题呢ÿ…

精选Python开源项目Top10!
作者 | MyBridge译者 | Linstancy整理 | Jane出品 | AI科技大本营【导读】过去一个月里,我们对近 250 个 Python 开源项目进行了排名,并挑选出热度前 10 的项目。这份清单的平均 github star 数量高达 1140,涵盖了包括性能分析、提取 PDF 中的…

全局声明宏定义_Rust语言:元编程,强大的宏系统,菜鸟到高手进阶的必经之路...
编程语言的宏操作,在C和C早期就已经存在。宏可以将重复的代码用更简短的宏函数替换,编译过程中再展开,使得代码编写的更简洁。Rust提供了两种宏,分别是声明宏和过程宏。声明宏的形式和C的宏替换类似,区别在于Rust会对宏…

SpringBoot 1024行代码 - 系统监控工具 Actuator简介
前言 在生产环境中,我们比较关心任意时刻一个JVM的运行情况。SpringBoot为我们提供了一个方便的功能模块Actuator。只要简单几步就可以为我们的应用添加查询系统各项指标的功能。 准备工作 完成SpringBoot 1024行代码 - Getting Started(一个简单的web应…

新一代宽带路由器—Vigor防火墙路由器
华盖科技隆重推出新一代宽带路由器—Vigor防火墙路由器上网行为管理时代的来临一、网络信息乱七八糟 计算机病毒泛滥、******造成信息丢失;不健康的文字、图片、广告,带有淫秽、、暴力等有害信息的网站、不健康的网络信息影响了网络环境。如何保证信息的…

2018 中国AI人才大调查:14张图表解读他们来自何处,又将去往何方?
AI科技大本营按:本篇内容来自由 CSDN 出品的《2018 人工智能产业路线图》V2.0 版中 1.6 章人才分析篇,通过对相关 AI 人才各维度的数据分析,我们尽可能勾勒中国 AI 人才发展的全景面貌。产业路线图 2.0 完整版我们将很快提供读者下载…

用这个Python库,训练你的模型成为下一个街头霸王!
作者 | MJ-Murray 译者 | 孤鸿 整理 | Jane 出品 | AI科技大本营 从世界瞩目的围棋游戏 AlphaGo,近年来,强化学习在游戏领域里不断取得十分引人注目的成绩。自此之后,棋牌游戏、射击游戏、电子竞技游戏,如 Atari、超级马里奥、…

bat curl 返回值_bat curl 发送http请求 监控网站
标签:batecho offcolor 1ftitle 正在监控 www.0579ld.com.cnecho 正在监控 www.0579ld.com.cn(23.247.53.3)..:aaaD:\curl\curl -I www.0579ld.com.cn>nulset str%ERRORLEVEL%if not "%str%""0" (echo 在%date% %time:~0,5% 无法正常访问&am…

C2:抽象工厂 Abstract Factory
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类. 应用场景: 一系列相互依赖的对象有不同的具体实现。提供一种“封装机制”来避免客户程序和这种“多系列具体对象创建工作”的紧耦合 UML: 代码示例: abstract class AbstractProductA { }abstract class A…

C#如何向EXCEL写入数据
C#如何向EXCEL写入数据 我按着微软技术支持网上的方法写入数据:使用“自动化”功能逐单元格传输数据,代码如下: // Start a new workbook in Excel. m_objExcel new Excel.Application(); m_objBooks (Excel.Workbooks)m_objExcel.Workbook…

写注册机犯法吗_逼着一个受害者去向另一个受害者道歉,不过分吗?
有一个姑娘,特别漂亮,笑容迷人,身姿绰约,才华横溢,琴棋书画,样样精通,饱读诗书,温婉贤德。大多数见过这女子之人,无不为之倾倒。很多人,为了一睹姑娘之貌&…

用正则表达式替换示例
stringDemo Regex.Replace("20071220", "(d{4})(d{2})(d{2})", "$1-$2-$3 23:59:59")

“剁手”的第十年,AI加持下的快递速度你还满意吗?
这个“双11”,你的购物车清空了吗?经过了紧张刺激的“抢购”环节,想必现在已经到了抓耳挠腮的“等快递”环节了吧!2017年,我国全年快递业务量已突破400亿件[1]。而初步预计今年“双11”期间,全行业处理的邮…

黑客内参告诉你一个:设计师用div+css 必须知道的网页布局类型
今天我在黑客内参受到了很多的留言,很多小伙伴在表示想要建立一个属于自己的站点,让我觉得现在建站是大部分人都比较感兴趣的一个技术吧! 碰巧今天整理以前的笔记发现了一本之前遗留下来的建站笔记,现在我就手打奉献给各位吧&…

“史上最强”BigGAN公开TensorFlow Hub demo!
还记得前些日子轰动一时的 BigGAN 模型吗?生成对抗网络(GAN)作为当前最热门的技术之一,最近在图像生成方面的成果颇受人关注。近日,由 DeepMind 和赫瑞瓦特大学组成的科研人员公布的 BigGAN 模型,被称为“史…

chrome弱网_请你进行一下弱网模拟
使用chrome的webview调试工具,缺点是只适用于web页面的弱网模拟。方法二:chrome的webview调试工具弱网模拟使用chrome的webview调试工具,缺点是只适用于web页面的弱网模拟。具体步骤:(1)应用打开webview调试功能,具体如…

sql server 2005 T-SQL BEGIN TRANSACTION (Transact-SQL)
标记一个显式本地事务的起始点。BEGIN TRANSACTION 使 TRANCOUNT 按 1 递增。 Transact-SQL 语法约定 语法 BEGIN { TRAN | TRANSACTION } [ { transaction_name | tran_name_variable }[ WITH MARK [ description ] ]] [ ; ] 参数 transaction_name 分配给事务的名称。transac…

redis之 centos 6.7 下安装 redis-3.2.5
前期准备: 1. 操作系统需要安装 gcc 包 与 TCL 库, 通过配置本地 yum 源 ,yum -y install gcc 、 yum -y install tcl安装 2. 下载 redis 安装包,上传至 linux 下。 网址: http://download.redis.io/releases/ [rootm…