python是偏向bs还是cs_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

要有操作系统和浏览器,与操作系统平台无关。

客户端的计算机电脑配置要求较低。

可以在任何地方进行操作而不用安装任何专门的软件。

不必安装及维护

三、现状与趋势(转自知乎)

链接: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连接缓冲池连接到数据库的,用户并不保持对数据库的连接,用户数基本上是无限的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/289439.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python数据分析软件_Python数据分析工具

Numpy Python没有提供数组功能,虽然列表可以完成基本的数组功能,但他不是真正的数组。Numpy内置函数处理速度是c语言级别,因此尽量使用内置函数,避免出现效率瓶颈的现象。 Numpy的安装: Windows中,pip inst…

Java之TimeUnit

1、TimeUnit介绍 位于这个包下 import java.util.concurrent.TimeUnit; 2、使用 一般比如多少分钟转多少毫秒、多少秒转多少毫秒、多少小时转多少分钟,还可以使用线程休息的方法, 底层还是用Thread.sleep()实现,代码可读性好点&#xff0c…

如何评价国内SRC纷纷上线“白帽子协议”?

2017年6月1日21:21分 某监狱里,对话如下: 犯人A:你们都是怎么来的? 犯人B:我是XX漏洞平台挖漏洞不小心进来的。 犯人C:我是XX平台路人甲,输错命令了rm -rf / (批量删除) 犯人D:我是某测评中心的忘了要授权了…

SQL Server数据库备份的镜像

SQL Server数据库备份的镜像 原文:SQL Server数据库备份的镜像SQL Server数据库备份的镜像 一个完整备份可以分开镜像 USE master GOBACKUP DATABASE [testdatabase] TO DISK NC:\testdatabase1.bak MIRROR TO DISK ND:\testdatabase2.bak WITH FORMAT, INIT GO 一个完整备份…

C# 观察文件的更改

使用 FileSystemWatcher 可以监视文件的更改。事件在创建、重命名、删除和更改文件时触发。这可用于如下场景:需要对文件的变更做出反应,例如,服务器上传文件时,或文件缓存在内存中,而缓存需要在文件更改时失效。因为 …

html5储存类型,html5本地存储-留言板

HTML5每日一练之JS API-本地存储LocalStorage 留言板 | 前端开发网(W3Cfuns.com)!var Storage {saveData:function()//保存数据{var data document.querySelector("#post textarea");if(data.value ! ""){var time new Date().getTime() Mat…

php 自动创建目录

2019独角兽企业重金招聘Python工程师标准>>> /*** 创建目录* param type $path* param type $mode* return type */public function rmkdir($path, $mode 0777) {return is_dir($path) || ( $this->rmkdir(dirname($path), $mode) && $this->_mkdir(…

油管螺纹尺寸对照表_yt15硬质合金刀片尺寸|A320焊接刀头参数

硬质合金刀片牌号表示方法如下图:yw1硬质合金刀片a320钨钛钴类硬质合金主要成分是碳化钨、碳化钛(TiC)及钴。其牌号由“YT”(“硬、钛”两字汉语拼音字首)和碳化钛平均含量组成。例如,YT15,表示平均碳化钛(TiC)15%,其余为碳化钨和…

python实验原理_Python实验报告八

安徽工程大学Python程序设计 班级:物流192 姓名:唐家豪 学号:3190505234 成绩: 日期:2020/06/03 指导老师:修宇 【实验目的】 : 掌握读写文本文件或 CSV 文件,进而对数据进行处理的方…

关于android MTK相机L版本,切换屏幕比例后,分辨率随之改变,但重新进入相机后原有分辨率不再生效问题...

BUG详细:比如4:3的时候是200W,切成全屏变400W,重新切回4:3为300W,退出相机后,重新进入又变成200W。 原因分析:这个版本的设计如此,当你点选屏幕比例的时候,程序设计是把这个比例值作…

.NET 6 使用 Obfuscar 进行代码混淆

本文来安利大家 Obfuscar 这个好用的基于 MIT 协议开源的混淆工具。这是一个非常老牌的混淆工具,从 2014 年就对外分发,如今已有累计 495.5K 的 nuget 下载量。而且此工具也在不断持续迭代更新,完全支持 dotnet 6 版本,对 WPF 和 …

html的canvas标签用法,html5中关于canvas标签用法(绘图)

标签只是图形容器,您必须使用脚本来绘制图形。用canvas配合javascript可以直接在html页面动态绘图,无需调用jquery。代码如下:var my_canvasdocument.getelementbyid("canvas"); //获取canvas的idvar contextmy_canvas.getcontext(…

C#生成二维码(含解码)

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;using System.Collections; using com.google.zxing;//需要从网上下载 using S…

Android之在TextView里面部分文字变颜色并且可以点击

1、问题 在TextView里面部分文字变颜色并且可以点击 2、借助SpannableString SpannableString和String一样,是一种字符串类型 public void setSpan(Object what, int start, int end, int flags) {super.setSpan(what, start, end, flags);} what表示设置格式是,可以是可点…

springmvc 传对象报400_那么火的SpringMVC到底有什么过人之处呢

先简单聊聊SpringMVC如果你们玩知乎,很可能会看到我的身影。我经常会去知乎水回答。在知乎有很多初学者都会问的一个问题:「我学习SpringMVC需要什么样的基础」我一定会让他们先学Servlet,再学SpringMVC的。虽然说我们在现实开发中几乎不会写…

matlab cftool代码_Matlab工具箱之拟合算法

和插值算法相比,拟合算法的优势在于拟合曲线不需要经过所有样本点,所以能降低函数的复杂程度。我们可以通过观察散点图目测拟合函数的大致形式,然后用最小二乘法计算待估参数。这时候Matlab就能发挥作用了,因为它提供了非常强大的…

WPF效果第一百七十八篇ItemsControl旋转

在前面分享的几篇中咱已经玩耍了Popup、ListBox多选、Grid动态分、RadioButton模板、控件的拖放效果、控件的置顶和置底、控件的锁定、自定义Window样式、动画效果、Expander控件、ListBox折叠列表、聊天窗口、ListBox图片消息、窗口抖动、语音发送、语音播放、语音播放问题、玩…

计算机安全专家建议:尽快为电脑升级打补丁

新型“蠕虫”式勒索病毒爆发,国家网络与信息安全中心紧急通报 5月13日下午,国家网络与信息安全信息通报中心紧急通报:12日20时左右,新型“蠕虫”式勒索病毒爆发,目前已有100多个国家和地区的数万台电脑遭该勒索病毒感染…

大型网站技术架构02 网站的高性能架构、网站的可用性架构

大型网站核心架构要素 1. 性能 2. 可用性 3. 伸缩性 4. 扩展性 5. 安全性 瞬时响应:网站的高性能架构 1. 网站性能测试: 1). 不同视角下的网站性能 a. 用户视角的网站性能:用户计算机,网站服务器通信时间,网站服务器处…

DateTime.Now.Ticks.ToString()说明

一个以0.1纳秒为单位的时间戳,就是一个long型的数,其实DateTime本质上就是一个long型的,通过0.1纳秒的单位,换算成各种时间,如果分,秒,年月日等等这些组合起来就是一个DateTime类型了 举例&…