一C/S

1.C/S概念

C/S是Client/Server的缩写。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或 SQL Server。客户端需要安装专用的客户端软件。我的理解是比如QQ、飞信、我们做的机房收费系统、学生信息管理系统等等这种需要在客户端安装专门的软件,并且有服务器端提供数据服务的就是通过C/S模式开发的。

2.C/S优点

C/S结构的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。

3.C/S缺点

a.扩展性差

b.维护和升级成本非常高

c.客户端的操作系统有限制

二B/S

1.B/S概念

B/S是Browser/Server的缩写,是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件,客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。在这种结构下,浏览器通过Web Server 同数据库进行数据交互,我们每天通过网页浏览信息,这本身就是一种B/S模式。

2.B/S优点

B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件,只要有一台能上网的电脑就能使用,客户端零安装、零维护。系统的扩展非常容易。

维护和升级方式简单

B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行

3.B/S缺点

应用服务器运行数据负荷较重

由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。

三.C/S与B/S比较

1.C/S与B/S联系

a.B/S属于C/S,浏览器只是特殊的客户端,所以C/S和B/S并没有本质的区别,B/S是特殊的C/S架构;

b.C/S可以使用任何通信协议,而B/S这个特殊的C/S架构规定必须实现HTTP协议;

c.浏览器是一个通用客户端,本质上开发浏览器,还是实现一个C/S系统。

之所以在C/S架构上提出B/S架构,也是为了满足瘦客户端、一体化客户端的需要,它可以克服C/S扩展性差、维护难度大的问题,但是在系统开发中C/S结构(Client/Server)中Client(客户端)往往可以由 B/S结构(Browser/Server结构)的Browser(浏览器)及其载体承担,C/S结构的Web应用与B/S结构(Browser/Server结构)具有紧密联系。大系统和复杂系统中,C/S结构和B/S结构的嵌套也很普遍,所以有些软件背后既可以看到C/S的身影又可以看到B/S的身影。

2.CS与BS区别

1.硬件环境不同:

C/S 一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务。

B/S 建立在广域网之上的,不必是专门的网络硬件环境,比C/S更强的适应范围,一般只要有操作系统和浏览器就行。

2.对安全要求不同

C/S 一般面向相对固定的用户群,对信息安全的控制能力很强。 一般高度机密的信息系统采用C/S 结构适宜。可以通过B/S发布部分可公开信息。

B/S 建立在广域网之上, 对安全的控制能力相对弱, 可能面向不可知的用户。

3.对程序架构不同

C/S 程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑。

B/S 对安全以及访问速度的多重的考虑,建立在需要更加优化的基础之上. 比C/S有更高的要求 B/S结构的程序架构是发展的趋势。

4.软件重用不同

C/S 程序可以不可避免的整体性考虑,构件的重用性不如在B/S要求下的构件的重用性好。

B/S 对的多重结构,要求构件相对独立的功能.能够相对较好的重用.就如买来的餐桌可以再利用,而不是做在墙上的石头桌子

5.系统维护不同

C/S 程序由于整体性,必须整体考察,处理出现的问题以及系统升级. 升级难.可能是再做一个全新的系统

B/S 构件组成,方面构件个别的更换,实现系统的无缝升级. 系统维护开销减到最小.用户从网上自己下载安装就可以实现升级。

6.处理问题不同

C/S 程序可以处理用户面固定,并且在相同区域,安全要求高,需求与操作系统相关. 应该都是相同的系统。

B/S 建立在广域网上, 面向不同的用户群,分散地域, 这是C/S无法作到的。与操作系统平台关系最小。

7.用户接口不同 。

C/S 多是建立的Window平台上,表现方法有限,对程序员普遍要求较高。

B/S 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流. 并且大部分难度减低,减低开发成本。

我们的选择

通过以上的这些介绍,大家对C/S和B/S应该都有了整体的认识了,与其说B/S是否真将取代C/S而存在,我宁愿把软件设计看成是一种音乐艺术,它可以有许多流派、很多风格,当然在不同的时代也许会有不同的主流,但这并不意味着,别的流派或风格就会被彻底的抛弃,无论是C/S还是B/S方式,许多人都在用,并且每个方式都有做的很优秀的人,所以我认为,我们没有必要一定要讨论出未来的趋势是怎么的,我们应扩大眼界,开放思想,站在巨人的肩膀上,用哪种架构取决于我们的需求,如果我们能将两种架构有机的结合起来,一起为我们所用,岂不更好。

C/S与B/S架构比较的更多相关文章

  1. MySQL高级知识- MySQL的架构介绍

    [TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...

  2. node服务的监控预警系统架构

    需求背景 目前node端的服务逐渐成熟,在不少公司内部也开始承担业务处理或者视图渲染工作.不同于个人开发的简单服务器,企业级的node服务要求更为苛刻: 高稳定性.高可靠性.鲁棒性以及直观的监控和报警 ...

  3. 如何一步一步用DDD设计一个电商网站(二)—— 项目架构

    阅读目录 前言 六边形架构 终于开始建项目了 DDD中的3个臭皮匠 CQRS(Command Query Responsibility Segregation) 结语 一.前言 上一篇我们讲了DDD的 ...

  4. 浅谈 jQuery 核心架构设计

    jQuery对于大家而言并不陌生,因此关于它是什么以及它的作用,在这里我就不多言了,而本篇文章的目的是想通过对源码简单的分析来讨论 jQuery 的核心架构设计,以及jQuery 是如何利用javas ...

  5. 【深入浅出jQuery】源码浅析--整体架构

    最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美. 其结构明晰,高内聚.低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷.渐 ...

  6. DDD CQRS架构和传统架构的优缺点比较

    明天就是大年三十了,今天在家有空,想集中整理一下CQRS架构的特点以及相比传统架构的优缺点分析.先提前祝大家猴年新春快乐.万事如意.身体健康! 最近几年,在DDD的领域,我们经常会看到CQRS架构的概 ...

  7. Microservice架构模式简介

    在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Mic ...

  8. 谈一下关于CQRS架构如何实现高性能

    CQRS架构简介 前不久,看到博客园一位园友写了一篇文章,其中的观点是,要想高性能,需要尽量:避开网络开销(IO),避开海量数据,避开资源争夺.对于这3点,我觉得很有道理.所以也想谈一下,CQRS架构 ...

  9. Windows平台分布式架构实践 - 负载均衡

    概述 最近.NET的世界开始闹腾了,微软官方终于加入到了对.NET跨平台的支持,并且在不久的将来,我们在VS里面写的代码可能就可以通过Mono直接在Linux和Mac上运行.那么大家(开发者和企业)为 ...

  10. 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)

    一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...

随机推荐

  1. 直接修改Android软件数据库来改变软件设置实例一则

    昨天把K860i刷了机,刷到了最新的CyanogenMod 10.1,使用起来各种流畅舒服,不过却由于内外置SD卡的挂载点的改变,造成了一些困扰,现记录如下.         平时里由于极少把手机连接 ...

  2. Linux登陆类型-Linux中如何临时配置IP

    Linux登录: 本地登录,直接在Linux主机上接上键盘显示器,然后输入用户名密码登录 远程登录,通过网络进行登录(需要IP 账户名 密码) windows中远程登录软件有 xshell.putty ...

  3. 最近遇到的若干Web前端问题:disable和readonly,JqueryEasyUI,KindEditor

    最近项目中用到了Jquery Easyui和KindEditor等框架组件,问题真不少啊~  一些看起来很简单理所当然的事情,竟然花费了不少时间,才解决好~  1.readonly和disable的区 ...

  4. web开发快速提高工作效率的一些资源

    前端学习资源实在是又多又广,在这样的一个知识的海洋里,我们像一块海绵一样吸收,想要快速提高效率,平时的总结不可缺少,以下总结了一些,排版自我感觉良好,推送出来,后续持续跟新中...... 开发工具 H ...

  5. XTUOJ 1205 Range

    Range Time Limit : 1000 MS Memory Limit : 65536 KB Problem Description For an array, the range funct ...

  6. hdu 5375 - Gray code(dp) 解题报告

    Gray code Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total ...

  7. OpenLayers3基础教程——OL3之Popup

    概述: 本节重点讲述OpenLayers3中Popup的调用时实现,OL3改用Overlay取代OL2的Popup功能. 接口简单介绍: overlay跟ol.control.Control一样,是一 ...

  8. javascript进阶教程第一章案例实战

    javascript进阶教程第一章案例实战 一.学习任务 通过几个案例练习回顾学过的知识 通过练习积累JS的使用技巧 二.实例 练习1:删除确认提示框 实例描述: 防止用户小心单击了“删除”按钮,在用 ...

  9. H265(HEVC) nal 单元头介绍及rtp发送中的fu分组发送详解

    首先来介绍下h265(HEVC)nal单元头,与h264的nal层相比,h265的nal unit header有两个字节构成,如下图所示: 从图中可以看出hHEVC的nal包结构与h264有明显的不 ...

  10. 47.Express文件上传

    转自:http://www.runoob.com/nodejs/nodejs-express-framework.html 文件上传 以下我们创建一个用于上传文件的表单,使用 POST 方法,表单 e ...