C/S结构与B/S结构的比较

汇丰外包Java岗面试复盘:Zoom面1.5小时,从英语、粤语到现场敲代码的极限挑战 本文详细记录了汇丰银行外包Java岗位的面试全过程,包括多语言切换(英语、粤语)的技术沟通挑战和现场编码测试的实战经验。从高并发编程到JVM调优,面试不仅考察技术深度,更注重实战问题解决能力。文章分享了应对跨国银行技术面试的实用策略,帮助Java开发者在跨文化环境中提升竞争力。 阅读详情
近两年来,对于B/S、C/S两种结构的软件的优劣,国内基本已经达成共识,普遍认为B/S结构软件将全面取代C/S结构软件。但B/S结构的软件产品相对于C/S结构的软件产品,具体拥有哪些突出的优势,国内许多行业用户还没有清晰的了解。

  我们公司作为国内较早从事开发B/S结构的大型VIP会员消费管理软件的供应商,多年来,对C/S、B/S两种体系结构的软件有着深刻的认识,下文将就此做详细的分析。

  C/S、B/S软件技术上的比较

  C/S结构软件(即客户机/服务器模式)分为客户机和服务器两层,客户机不是毫无运算能力的输入、输出设备,而是据有了一定的数据处理和数据存储能力,通过把应用软件的计算和数据合理地分配在客户机和服务器两端,可以有效地降低网络通信量和服务器运算量。由于服务器连接个数和数据通信量的限制,这种结构的软件适于在用户数目不多的局域网内使用。国内目前的大部分ERP(财务)软件产品即属于此类结构。

  B/S(浏览器/服务器模式)是随着Internet技术的兴起,对C/S结构的一种改进。在这种结构下,软件应用的业务逻辑完全在应用服务器端实现,用户表现完全在Web服务器实现,客户端只需要浏览器即可进行业务处理,是一种全新的软件系统构造技术。这种结构更成为当今应用软件的首选体系结构。飞逸软件部分产品即属于此类结构。

  1,数据安全性比较。由于C/S结构软件的数据分布特性,客户端所发生的火灾、盗抢、地震、病毒、黑客等都成了可怕的数据杀手。另外,对于集团级的异地软件应用,C/S结构的软件必须在各地安装多个服务器,并在多个服务器之间进行数据同步。如此一来,每个数据点上的数据安全都影响了整个应用的数据安全。所以,对于集团级的大型应用来讲,C/S结构软件的安全性是令人无法接受的。对于B/S结构的软件来讲,由于其数据集中存放于总部的数据库服务器,客户端不保存任何业务数据和数据库连接信息,也无需进行什么数据同步,所以这些安全问题也就自然不存在了。

  2,数据一致性比较。在C/S结构软件的解决方案里,对于异地经营的大型集团都采用各地安装区域级服务器,然后再进行数据同步的模式。这些服务器每天必须同步完毕之后,总部才可得到最终的数据。由于局部网络故障造成个别数据库不能同步不说,即使同步上来,各服务器也不是一个时点上的数据,数据永远无法一致,不能用于决策。对于B/S结构的软件来讲,其数据是集中存放的,客户端发生的每一笔业务单据都直接进入到中央数据库,不存在数据一致性的问题。

  3,数据实时性比较。在集团级应用里,C/S结构不可能随时随地看到当前业务的发生情况,看到的都是事后数据;而B/S结构则不同,它可以实时看到当前发生的所有业务,方便了快速决策,有效地避免了企业损失。

  4,数据溯源性比较。由于B/S结构的数据是集中存放的,所以总公司可以直接追溯到各级分支机构(分公司、门店)的原始业务单据,也就是说看到的结果可溯源。大部分C/S结构的软件则不同,为了减少数据通信量,仅仅上传中间报表数据,在总部不可能查到各分支机构(分公司、分店、加盟店)的原始单据。

  5,服务响应及时性比较。企业的业务流程、业务模式不是一成不变的,随着企业不断发展,必然会不断调整。软件供应商提供的软件也不是完美无缺的,所以,对已经部署的软件产品进行维护、升级是正常的。C/S结构软件,由于其应用是分布的,需要对每一个使用节点进行程序安装,所以,即使非常小的程序缺陷都需要很长的重新部署时间,重新部署时,为了保证各程序版本的一致性,必须暂停一切业务进行更新(即"休克更新"),其服务响应时间基本不可忍受。而B/S结构的软件不同,其应用都集中于总部服务器上,各应用结点并没有任何程序,一个地方更新则全部应用程序更新,可以做到快速服务响应。

  6,网络应用限制比较。C/S结构软件仅适用于局域网内部用户或宽带用户(1兆以上);而我们的B/S结构软件可以适用于任何网络结构(包括28.8K拨号入网方式),特别适于宽带不能到达的地方(例如某些分公司,仅靠电话上网即可正常使用软件系统)。

  C/S、B/S软件商业运用上的比较

  管理软件是为企业服务的,企业选用管理软件不仅要从技术上考虑,还要从商业运用方面来考虑,下文将从商业运用的角度对两种结构的软件进行比较。

  1,投入成本比较。B/S结构软件一般只有初期一次性投入成本。对于集团来讲,有利于软件项目控制和避免IT黑洞,而C/S结构的软件则不同,随着应用范围的扩大,投资会连绵不绝。

  2,硬件投资保护比较。在对已有硬件投资的保护方面,两种结构也是完全不同的。当应用范围扩大,系统负载上升时,C/S结构软件的一般解决方案是购买更高级的中央服务器,原服务器放弃不用,这是由于C/S软件的两层结构造成的,这类软件的服务器程序必须部署在一台计算机上;而B/S结构(如VIP会员软件)则不同,随着服务器负载的增加,可以平滑地增加服务器的个数,然后在各个服务器之间做负载均衡。有效地保护了原有硬件投资。

  3,企业快速扩张支持上的比较。对于成长中的企业,快速扩张是它的显著特点。例如公司,每年都有新的配送中心成立,每月都有新的门店开张。应用软件的快速部署,是企业快速扩张的必要保障。对于C/S结构的软件来讲,由于必须同时安装服务器和客户端、建设机房、招聘专业管理人员等,所以无法适应企业快速扩张的特点。而B/S结构软件,只需一次安装,以后只需设立账号、培训即可。

  其次,随着软件应用的扩张,对系统维护人才的需求有可能成为企业快速扩张的制约瓶颈。如果企业开店上百家,对计算机专业人才的需求就将是企业面临的巨大挑战之一。

  抛开人力成本不说,一个企业要招到这么多的专业人才并且留住他们也是不可能的。所以,采用C/S结构软件必然会制约企业未来的发展。另外,大多数C/S结构的软件都是通过ODBC直接连到数据库的,安全性差不说,其用户数也是受限的。每个连到数据库的用户都会保持一个ODBC连接,都会一直占用中央服务器的资源,对中央服务器的要求非常高,使得用户扩充受到极大的限制。而B/S结构软件则不同,所有的用户都是通过一个JDBC连接缓冲池连接到数据库的,用户并不保持对数据库的连接,用户数基本上是无限的。

  从以上的分析可以看出,B/S结构的大型管理软件有着C/S结构软件无法比拟的优势。而从国外的发展趋势来看,也验证了这一点。目前,国外大型企业管理软件要么已经是B/S结构的,要么正在经历从C/S到B/S结构的转变。从国内诸多软件厂商积极投入开发B/S结构软件的趋势来看,B/S结构的大型管理软件势必在将来的几年内占据管理软件领域的主导地位

 
FPGA 学习系列(2):Verilog 语法基础 Verilog 由门级建模数据流建模行为建模门级建模(Gate Level Modeling):使用基本逻辑门描述电路,接近硬件物理结构。数据流建模(Data Flow Modeling):使用assign语句进行组合逻辑建模,类似数学方程式。行为建模(Behavioral Modeling):使用always代码块和if-elsecase等控制语句建模,抽象程度较高。Verilog 代码一般由模块(module)组成,每个模块描述一个独立的硬件功能。 阅读详情

相关推荐

WinForm布局

登录模板页面UILoginForm

m0_71541781的博客 454

如何编写可维护的面向对象JavaScript代码

英文原文 How to Write Maintainable OO JavaScript Code,翻译:Yao Xiao 能够写出可维护的面向对象JavaScript代码不仅可以节约金钱,还能让你很受欢迎。不信?有可能你自己或者其他什么人有一天会回来重用你的代码。如果能尽量让这个经历不那么痛苦,就可以节省不少时间。地球人都知道,时间就是金钱。同样的,你也会因为帮某人省去了头疼的过程而获

natalie86的专栏 551

YOLOv9 损失函数解析

YOLOv9作为YOLO系列的最新成员,在损失函数设计上进行了多项创新,重点优化了动态任务对齐机制、多模态定位损失融合以及跨层级梯度协同,进一步提升了检测精度训练效率。

浩瀚之水的专栏 1277

[转]如何编写可维护的面向对象JavaScript代码

  英文原文:How to Write Maintainable OO JavaScript Code   能够写出可维护的面向对象 JavaScript 代码不仅可以节约金钱,还能让你很受欢迎。不信?有可能你自己或者其他什么人有一天会回来重用你的代码。如果能尽量让这个经历不那么痛苦,就可以节省不少 时间。地球人都知道,时间就是金钱。同样的,你也会因为帮某人省去了...

weixin_30289831的博客 66

如何编写可维护面向对象的JavaScript代码

源地址:http://msdn.microsoft.com/en-US/scriptjunkie/gg602402.aspx 中文:http://hi.baidu.com/zhangchu0702/blog/item/f59f1af8db19631bd8f9fd22.html Writing maintainable Object-Oriented (OO) JavaScript will s...

weixin_30915951的博客 109

如何编写规范的机器学习JavaScript代码:idiomatic.js完整指南

在当今快速发展的Web开发领域,机器学习JavaScript的结合正变得越来越普遍。idiomatic.js作为一份专注于编写一致、地道JavaScript代码的指南,为开发者提供了宝贵的实践原则。本文将详细介绍如何将idiomatic.js的核心规范应用于机器学习库的使用中,帮助你编写出更可读、可维护且高效的ML代码。 ## 为什么规范的JavaScript代码对机器学习至关重要 机器学习

gitblog_01081的博客 769

如何编写专业的JavaScript构造函数:面向对象开发的终极指南

在JavaScript开发中,构造函数是创建对象和实现面向对象编程的核心机制。遵循idiomatic.js项目中的最佳实践,编写一致、专业的构造函数不仅能提升代码质量,还能让团队协作更高效。本文将带你掌握构造函数的设计规范、常见陷阱及优化技巧,让你的面向对象JavaScript代码更加优雅和可维护。 ## 为什么构造函数规范如此重要? JavaScript作为一种灵活的动态语言,缺乏严格的类型

gitblog_01413的博客 397

掌握JavaScript面向对象编程核心密码:深入解析JavaScript面向对象机制对象概念、原型模式继承策略全面指南,高效创建高质量、可维护代码

本文详细介绍了JavaScript 对象概念、原型模式创建对象的过程(Object 创建对象、构造函数 创建对象、原型模式 创建对象)以及机制策略(__proto__和 prototype、constructor),继承机制(原型链继承、构造函数继承、组合继承、寄生式继承、寄生组合式继承、ES6 Class继承)等内容。

JINGWHALE 1465

【转】怎样写出可维护的面向对象javascript

利用面向对象的方法编写javascript能帮你省钱,而且也会让你的代码看起来更酷。不相信?要么你或者别人会回来维护你的代码。而容易维护的代码更容易节省如金钱般宝贵的时间。也会让你在团队中更受欢迎,因为你刚刚让他们从头疼中解脱出来。在我们写面向对象代码之前,需要先大致了解一下什么是OO。如果你觉得你对OO已经足够了解,可以直接跳过这段。 什么是OO 面向对象编程可以比较基本地展现你代...

abdqcpruwwhyl4931的博客 140

如何编写可维护的JavaScript代码?

PS:本人非前端开发人员,此文为业余兴趣之作,转载请注明出处,谢谢:http://my.oschina.net/feichexia/blog/122217     JavaScript这门编程语言发展至今已经非常流行了,各种名词也层出不穷,我们随便列举下就有一大堆,比如Node.js、jQuery、JavaScript MVC、Backbone.js、AMD、CommonJS、Require

我的Github 1858

有了JavaScript,为啥还要TypeScript?不清不楚太糊弄人了,两者之间的组件形式差异_javascript有面向对象为什么还会出现typescript

TypeScript 是一种由微软开发的开源、静态类型化的编程语言,它是 JavaScript 的超集,也就是说,所有的 JavaScript 代码都是合法的 TypeScript 代码。然而,TypeScript 在 JavaScript 的基础上引入了许多新的特性和改进,主要目的是提高大型和复杂项目的可维护性和可扩展性。TypeScript: 中文网 官网 官方.静态类型系统: TypeScript 最显著的特性是它的静态类型系统。

2401_84620231的博客 1328

Modern JavaScript Cheatsheet 最佳实践:10个技巧助你编写高质量代码

Modern JavaScript Cheatsheet 是一份面向现代项目的 JavaScript 知识速查指南,专为已有基础的开发者设计,帮助他们快速掌握现代代码库中常见的 JavaScript 概念。无论是学习 React 还是其他现代框架,这份指南都能让你轻松应对项目中的 JS 语法挑战。 ## 1. 变量声明:优先使用 const 和 let 替代 var ✨ 在 JavaScrip

gitblog_01416的博客 516

Trec06中文垃圾邮件数据集

电子邮件是互联网的一项重要服务,在大家的学习、工作和生活中会广泛使用。但是大家的邮箱常常被各种各样的垃圾邮件填充了。有统计显示,每天互联网上产生的垃圾邮件有几百亿近千亿的量级。因此,对电子邮件服务提供商来说,垃圾邮件过滤是一项重要功能。而朴素贝叶斯算法在垃圾邮件识别任务上一直表现非常好,至今仍然有很多系统在使用朴素贝叶斯算法作为基本的垃圾邮件识别算法。本次实验数据集来自[Trec06](https://plg.uwaterloo.ca/cgi-bin/cgiwrap/gvcormac/foo06)的中文垃圾邮件数据集,目录解压后包含三个文件夹,其中data目录下是所有的邮件(未分词),已分词好的邮件在data_cut目录下。邮件分为邮件头部分和正文部分,两部分之间一般有空行隔开。标签数据在label文件夹下,文件中每行是标签和对应的邮件路径。‘spam’表示垃圾邮件,‘ham’表示正常邮件。

HP 惠普M452、M377、M477 59.F0专用固件

HP 惠普M452、M377、M477 59.F0专用固件 HP 惠普M452、M377、M477 59.F0专用固件,软件只是辅助。齿轮如果移位还是的手动调整。

上一篇: 手工卸载SQL Server 2000数据库(转)
下一篇: 经典算法-C#四种排序算法
shenmea00000
博客等级 码龄21年 8粉丝 19原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值