原理c++_浅谈C/S和B/S架构的工作原理及优缺点

04d323615538c0bbb4a99c549aa2d29d.png

C/S架构

一、C/S架构及其背景

C/S架构是一种比较早的软件架构,主要应用于局域网内。在这之前经历了集中计算模式,随着计算机网络的进步与发展,尤其是可视化工具的应用,出现过两层C/S和三层C/S架构,不过一直很流行也比较经典的是我们所要研究的两层C/S架构

e99cbc0faefd423d1db8fe710faa5e43.png

C/S架构软件(即客户机/服务器模式)分为客户机和服务器两层:第一层是在客户机系统上结合了表示与业务逻辑,第二层是通过网络结合了数据库服务器。简单的说就是第一层是用户表示层,第二层是数据库层。

客户端和服务器直接相连,这两个组成部分都承担着重要的角色,第一层的客户机并不是只有输入输出,运算等能力,它可以处理一些计算,数据存储等方面的业务逻辑事务;第二层的服务器主要承担事务逻辑的处理,本来事务很重,但是由于客户机可以分担一些逻辑事务,所以减轻了服务器的负担,使得网络流量增多。

想要使用C/S架构的软件需要下载一个客户端,安装后就可以使用

需要C/C++ Linux服务器架构师学习资料加qun获取(资料包括C/C++,Linux,golang技术,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,ffmpeg等),免费分享

8f9471b819c74edf252b2723f2cd436b.png

二、C/S架构的优点

C/S架构既然能在计算机历史的长河中长盛不衰就必然有其闪光之处。下面将从各个角度分析C/S架构的优点。

1)客户端和服务器直接相连

a)点对点的模式使得更安全。
b)可以直接操作本地文本,减少获取文本的时间和精力。
c)由于直接相连,减少了通信流量,这对于客户来说可以节约一大笔费用。
d)直接相连,中间没有什么阻隔或岔路,所以响应速度快。当通信量少的时候没什么感觉,但是如果通信量庞大,就不会出现拥堵的现象。

2)客户端可以处理一些逻辑事务

a)充分利用两者的硬件设施,避免资源的浪费。
b)为服务器分担一些逻辑事务,可以进行数据处理和数据存储。可以处理复杂的事务流程。
c)客户端有一套完整应用程序,在出错提示、在线帮助等方面都有强大的功能,并且可以在子程序间自由切换。

3) 客户端操作界面

a)可以提高客户的视觉体验,满足客户需求。
b)客户端操作界面可以随意排列,充分满足客户的需要,展现特点与个性。

三、C/S架构的缺点

经过长期的时间检验,人们也发现了C/S存在的不足,下面将前人的观点整理总结一下。1)客户端

a)只能处理一些功能单一的多系统。
b)C/S架构适用于局域网,对网速的要求比较高。
c)由于需要安装客户端,安装部署困难,所以不易扩展。
d)若客户端使用的系统不同,就要针对这些系统分别编写程序。
e)客户端界面缺乏通用性,且当业务更改时就需要更改界面,重新编写。
f)客户端需要专门的客户端程序,比较麻烦,针对点多面广且不具备网络条件的用户群体,不能够实现快速部署安装和配置。

2)服务器

a)用户数增多会出现通信拥堵,服务器响应速度慢等情况。
b)当服务器难当大任时,只能将其废弃,使用更强大的服务器。
c)当客户端用户增多时,服务器难以承担重负,是名副其实的“胖”客户端。
d)用户是通过ODBC连接到数据库的,且每个连接到数据库的用户都会保持一个ODBC连接,会一直占用中央服务器的资源,对服务器的要求很高。

3)用户

a)没有安装客户端的外部用户不能访问。
b)只有安装了客户端才能访问服务器,所以用户不能随时随地的访问。
c)用户是通过ODBC连接到数据库的,所以用户数受限,不易扩张。
d)由于针对小范围的客户,所以不能实现真正大范围的信息共享,信息传达和发布。
a)需要聘用高素质的人员,对其培训,费用高。
b)初次开发就需要配备好客户端,服务器,需要有专业水准的技术人员,所以成本高。
a)系统升级维护麻烦,需要更改大量程序,投入大量精力和金钱。
b)业务扩展或变更时,需要更改程序,客户端的界面也需要重新更改。
c)初次投入成本后不能一劳永逸,后期需要很多成本,比如服务器的更换,客户端的更变等。

四、C/S架构应用

C/S架构的软件是在是数不胜数,从办公的OFFICE,WPS,WINRAR到杀毒软件如金山,瑞金再到我们的娱乐软件,如播放器,QQ,微信等,无处不见C/S架构。

B/S架构

一、B/S架构及其背景

随着Internet和WWW的流行,以往的主机/终端和C/S都无法满足当前的全球网络开放、互连、信息随处可见和信息共享的新要求,于是就出现了B/S型模式,即浏览器/服务器结构。它是C/S架构的一种改进,可以说属于三层C/S架构。主要是利用了不断成熟的WWW浏览器技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。

b6afc487a584e5b21179d72e57b6fbee.png

第一层是浏览器,即客户端,只有简单的输入输出功能,处理极少部分的事务逻辑。由于客户不需要安装客户端,只要有浏览器就能上网浏览,所以它面向的是大范围的用户,所以界面设计得比较简单,通用。

第二层是WEB服务器,扮演着信息传送的角色。当用户想要访问数据库时,就会首先向WEB服务器发送请求,WEB服务器统一请求后会向数据库服务器发送访问数据库的请求,这个请求是以SQL语句实现的。

第三层是数据库服务器,他扮演着重要的角色,因为它存放着大量的数据。当数据库服务器收到了WEB服务器的请求后,会对SQL语句进行处理,并将返回的结果发送给WEB服务器,接下来,WEB服务器将收到的数据结果转换为HTML文本形式发送给浏览器,也就是我们打开浏览器看到的界面。

B/S架构和C/S架构不同,浏览器不是直接和数据库服务器相连,所以是多对多的结构。因此在此结构下,很适合在广域网里实现巨大的互联网,甚至是全球网。有着很强大的信息共享性。

在B/S出现的早期,浏览器只能显示静态页面,得不到良好的交互,不能进行大量的逻辑处理,当时浏览器主要用来实现信息的发布,是一种单向的应用。后来出现了动态网页,这里的动态有三个方面,一是交互,二是动画,三是数据。这样,浏览器的交互性能得到极大提高。页面也越来越丰富多彩。浏览器也能处理部分逻辑事务,所以浏览器成为了客户端,但由于处理的内容较少,所以叫“瘦”客户端

二、B/S架构的优点

B/S架构是应WEB技术的飞速发展而从传统的C/S架构发展而来,并且一举成为当今主要的网络架构。目前主要的网站,尤其是商务网站都是基于B/S架构建立的。那么我们就来细数一下B/S架构的优点,它到底为什么受到大家的青睐。1)浏览器

a)能面对广大的用户实现信息传播共享。
b)浏览器只处理一些简单的逻辑事务,负担小。
c)页面的更新能实现同步,所有用户都能看到。
d)界面设计开发简单,对程序员的要求较低,不需要大量的培训。
e)业务扩展方便,只需要增加几个业务扩展的页面即可,不需要大量的编程。
f)界面不需要太多的编写,比较通用,更改界面也比较简单,所以几乎不需要维护。
g)由于Web的平台无关性,可以从一台服务器、几个用户的工作组级扩展成为拥有成上万用户的大型系统。
a)数据都集中存放在数据库服务器,所以不存在数据不一致现象。
b)能有效地保护数据平台和管理访问权限,服务器数据库也很安全。
c)在数据库服务器上不一定使用WINDOWS系统,选择更多,成本更少。
d)如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。
e)在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。
f)数据存放在数据库服务器,客户端并不存放任何业务数据或者数据库连接信息,所以数据比较安全。
g)随着服务器负载的增加,可以平滑地增加服务器的个数并建立集群服务器系统,然后在各个服务器之间做负载均衡。
a)B/S建立在广域网上,所需的网速不高。
b)外部的用户也可以对浏览器进行访问。
c)界面人性化,通用化,不需要多少培训就能掌握。
d)不需要安装客户端,只要能连上网,就能随时随地的浏览页面。
e)借助Internet强大的信息发布与信息传送能力可以有效地解决企业内部的大量不规则的信息交流。
f)所有的用户都是通过一个JDBC连接缓冲池连接到数据库的,用户并不保持对数据库的连接,用户数基本上是无限的。

4)成本

a)软件重用性强,节省了大量的成本。
b)不需要安装特殊的软件,客户端几乎零维护。
c)开发简单,升级便捷,人员不需要太多培训,节省了大量的资金。
d)客户端几乎不需要维护,只要盯紧服务器就可以了,所以成本较小。
e)一般只有初期一次性投入成本,有利于软件项目控制和避免IT黑洞。
f)建立在广域网之上的, 不必是专门的网络硬件环境,例如电话上网, 租用设备等,成本较小。

三、B/S架构的缺点

虽说B/S架构有很多优越性,但是也不可避免有些缺陷,不然也不会暴发究竟使用哪种架构的口水战。不过,在理论上,既然B/S是C/S的改进版,应该克服了C/S的很多缺陷,所以缺点应该不是很多。下面我们来看看实际上是什么情况。1)客户端

a)面通用化,不突出个性。
b)页面需要不断地动态刷新,尤其是用户增多,网速慢得情况,很费时。
c)由于不需要安装客户端,客户端易扩展,还有就是外部用户也可以访问,所以B/S面对大量的不可知用户。

2)服务器

a)用户增多时,服务器响应速度慢。
b)功能虽然多样化,但是不能专门化,不能实现复杂的功能。
c)服务器承担着重要的责任,数据负荷较重。一旦发生服务器“崩溃”等问题,后果不堪设想。

四、B/S架构应用

当时在讲解典型的C/S架构时,提到了了常用的QQ软件。现在新出来了一个WEBQQ,从WEBQQ名称中的WEB就不难看出它属于B/S架构,是一种浏览器服务器结构。事实上也是如此,因为WEBQQ根本不需要安装客户端,只需要有浏览器就可以进行聊天交互了。

C/S和B/S

一、C/S和B/S关系概述

B/S架构是从C/S架构改进而来,可以说是三层C/S架构,由此可见两者关系不一般。B/S从C/S中脱离而出,后来随着WEB技术的飞速发展以及人们对网络的依赖程度加深,B/S一举成为当今最流行的网络架构。两种架构都在各自岗位上虎虎生威,它们各有千秋,都是非常重要的网络架构。在响应速度,用户界面,数据安全等方面,C/S强于B/S,但是在业务扩展和适用www条件下,B/S明显胜过C/S。可以这么说,B/S的强项就是C/S的弱项,反之亦然。它们各有优缺点,相互无法取代。

二、C/S和B/S的不同点

ec02c4a8926d85087b0297a051184b36.png

1)比较大的差别
1、结构

C/S是两层架构,由客户端和服务器组成,而B/S是三层架构,由浏览器,WEB服务器和数据库服务器组成。

2、逻辑事务处理
C/S架构合理地让客户端和服务器承担一部分逻辑事务处理,使得服务器的负担减轻了,而且客户端也能进行一些数据处理和存储的功能。B/S架构的浏览器就是它的客户端,可是这个客户端只能进行一些简单的输入输出和信息发布共享的功能,主要的逻辑事务处理还是要靠服务器,所以服务器的负担很重。

3、工作原理
C/S架构是客户端和服务器直接相连,实现点对点的通信,B/S是浏览器通过WEB服务器向数据库服务器发送数据请求,实现多对多的通信。

4、响应速度
C/S架构的客户端和服务器直接相连,中间没有任何阻隔,所以相应速度快,尤其是在用户增多时更加明显。B/S架构相应速度慢,主要的重任在数据库服务器身上,由于B/S架构的无限扩展性,当用户激增,访问量庞大时,服务器相应速度慢,服务器存在瘫痪的危险。

5、成本
C/S架构开发时,硬件需要一次性购买,费用较高,且需要训练有素的技术人员,培训费用高,而且软件后期也需要不断投入大量资金。B/S架构只需要一次性投入几乎可以一劳永逸,有利于软件项目控制和IT黑洞。

6、维护、升级以及扩展
C/S架构一旦有业务的变更或要升级,客户端界面就要重新设计,需要投入大量的人力物力。软件维护也比较麻烦,需要专业人士进行维护。用户扩展也比较麻烦,需要安装客户端,对软硬件要求高。B/S架构的维护和升级都非常容易,只要更改页面内容或者增减页面即可,客户端几乎是零维护,只需要维护好服务器。所以相对来说更简易,方便。由于B/S可以随时随地的访问,所以极易扩展。

7、信息共享
C/S架构是建立在局域网之上的,面向的是可知的有限用户,信息共享只在小范围内。B/S架构建立在广域网之上,用户随时随地都可以访问,外部用户也可以访问,尤其是WEB技术的不断发展,B/S面对的是几乎无限的用户群体,所以信息共享性很强。

8、客户端界面
C/S架构可以针对不同的功能设计出不同的很有特色的用户界面,实现个性化。但是一旦业务改变就需要重新设计,很麻烦。B/S架构的用户界面很通用,不能针对用户突出个性,但是业务改变时只需要改变界面内容或者增减页面,很轻松就能实现。

2)小的差别
1、适用的网络
C/S架构是建立在局域网的基础之上的,局域网之间通过专用服务器提供连接提供服务。B/S架构是建立在广域网的基础之上,有更大的使用范围。

2、访问
C/S架构下,用户需要安装客户端才能够访问服务器,而B/S架构下,用户可以随时随地访问,只要有网有浏览器,方便快捷。

3、数据库连接类型

C/S采用的是ODBC连接,所以只要用户连接了数据库就一直保持连接不会断开,所以限制了用户数,而B/S采用的是JDBC连接,用户并不保持对数据库的连接,所以用户数几乎是无限的。

4、功能
C/S架构能够实现单一的复杂功能,如财政管理等,所以现在大多数比较大型的ERP系统仍是C/S架构,B/S架构的界面比较通用,所能处理的逻辑事务较少,所以功能较弱。

5、安全性
C/S架构建立在局域网之上,面向比较固定的用户,对安全的要求较高。B/S架构建立在广域网上,面对不可知人群,安全性差。

6、信息流向不同
C/S 程序一般是典型的中央集权的机械式处理, 交互性相对低B/S 信息 流向可变化, B-B B-C B-G等信息、流向的变化, 更像个交易中心。

7、对技术人员的要求
C/S的功能比较专业化,对设计和开发人员的要求较高,需要专业的培训。B/S的界面比较人性化,通用化,所以不需要多高的技能。

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

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

相关文章

java笔记之线程方式1启动线程

* 需求:我们要实现多线程的程序。 * 如何实现呢? * 由于线程是依赖进程而存在的,所以我们应该先创建一个进程出来。 * 而进程是由系统创建的,所以我们应该去调用系统功能创建一个进程。 * Java是不能直接调用系统功能的,所…

全国职业院校技能大赛软件测试题目,我院荣获2017年全国职业院校技能大赛软件测试赛项一等奖...

6月6日,2017年全国职业院校技能大赛“软件测试”赛项在河南许昌落下帷幕,共有来自全国29个省市(自治区)的87支代表队261名选手参加比赛。由我院计算机系陈爽、张冬雪、侯博睿等三名同学组成的北京市第二代表队荣获大赛一等奖(第五名)。王红霞、温绍洁荣获…

ntp如何确认与服务器偏差_CentOS 8 启用 NTP 服务

NTP 服务是什么和为什么我们需要在我们的服务器启用 NTP 服务?可能很多人都不是非常了解,简单来说就是我们希望我们服务器的时间是准确的没有偏差的。这个的意义在数据插入和你程序取得计算机时间的时候是准确的。比如说在 java 中如果 new date() 将会获…

JavaFX上手--第1天

1.第一个JavaFX Application JavaFX 使用Java来制作可视化图形,可以做动画和3D效果,JavaFX从JDK中直接使用。 package application;import javafx.application.Application; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene…

机制 linux_从一道面试题谈linux下fork的运行机制

今天一位朋友去一个不错的外企面试linux开发职位,面试官出了一个如下的题目:给出如下C程序,在linux下使用gcc编译:#include "stdio.h"#include "sys/types.h"#include "unistd.h"int main(){pid_t …

教学案例 计算机,宁夏计算机教学案例

宁夏计算机教学案例,答辩老师不仔细看**跟他们发现不了你**中的问题根本是两个概念。宁夏计算机教学案例, 生手指从未使用过计算机系统的学习者。他们不熟悉计算机的操作,缺乏有关计算机系统的知识。他们对计算机会产生一种陌生的感觉。新手指…

您在2016年会做什么? Apache Spark,Kafka,Drill等

让我们玩得开心。 这是新的一年的开始-我们正处于新事物的门槛上-因此让我们期待您在2016年可能会做的事情。现在我知道做出预测的风险,尤其是有记录的预测,但是我很高兴您能在一年后回访,看看我对2016年的预测是如何完成的。 您在2016年会…

话筒好坏测试软件,如何简单地判断麦克风的质量好坏?

如何简单地判断麦克风的质量好坏?麦克风质量好不好,主要看三点:咪芯,线材和外壳。在挑选麦克风时,我们通常都不会一一上手试用,而是通过它自身的规格参数来进行初步地判断,一般来说,…

怎么保证读取最新数据_Kafka怎么保证数据不丢失?

Kafka怎么保证数据不丢失?这个问题要从3个方面来保证数据不丢失:生产者、服务端、消费者。01producer 生产端是如何保证数据不丢失的1.ack的配置策略acks all (或-1)生产者在发送消息之后,需要等待ISR中所有的副本都成功写入消息之后才能够收…

怎么圆角变直角_衣柜设计个圆角有什么用?效果好看又实用,会这样装的都是老木工...

衣柜设计个圆角有什么用?效果好看又实用,会这样装的都是老木工随着生活水平的不断提高,大家对于生活质量也有着越来越高的期望。从生活起居以及房子的装修中,我们可以看出来。因此家里的东西堆积的也更加的多,这对于储…

浙大计算机硕士比本科985,二本出身的985研究生与985本科生,哪个更厉害?网友:差的太多!...

原标题:二本出身的985研究生与985本科生,哪个更厉害?网友:差的太多!概率,还是概率问题。即便2本考研到985是很优秀,但能优秀到让985本科生服气的还是少数。说到底,是因为考研不是绝对…

5调用外部浏览器打开代码_浏览器事件循环

浏览器运行过程中会同时面对多种任务,用户交互事件(鼠标、键盘)、网络请求、页面渲染等。而这些任务不能是无序的,必须有个先来后到,浏览器内部需要一套预定的逻辑来有序处理这些任务,因此浏览器事件循环诞生了,再次强…

JVM上的高并发HTTP客户端

HTTP可能是最流行的应用程序级别协议,并且有许多库在网络I / O之上实现它,这是常规I / O的一种特殊(面向流)情况。 由于所有I / O都有很多共同点1 ,所以让我们开始对其进行一些讨论。 我将集中讨论具有大量并发HTTP请…

win10系统卷影复制服务器,如何使用Windows卷影拷贝服务恢复文件和文件夹

本文介绍了如何使用Windows卷影拷贝服务恢复文件和文件夹,分享给大家,具体如下:什么是卷影拷贝?从Windows XP SP2和Windows Server 2013开始,微软就向Windows操作系统中引入了一项名叫卷影拷贝的服务(Volume Shadow Co…

Nginx下配置Http Basic Auth

nginx basic auth指令 第一条语句: 语法: auth_basic string | off;默认值: auth_basic off;配置段: http, server, location, limit_except 默认表示不开启认证,后面如果跟上字符,这些字符会在弹窗中显示。 第二条语句&#xff…

服务器多核性能排行,服务器内存多核性能

服务器内存多核性能 内容精选换一换本文介绍了弹性云服务器ECS的功能发布和对应的文档动态,新特性将在各个区域(Region)陆续发布,欢迎体验。关于弹性云服务器(ECS)更多历史版本变更内容,请单击“查看PDF”详细了解。超高I/O型弹性云服务器使用…

从去除毛刺的策略看开运算opening_circle和闭运算closing_circle的异同

例一:毛刺在往外凸的面上 策略1:分割出黑色部分,然后通过开运算去掉毛刺,再通过原黑色部分区域减去开运算之后的区域,得到毛刺部分的区域。 1 read_image (Tu, C:/Users/xiahui/Desktop/tu.jpg) 2 binary_threshold (…

买服务器带操作系统,买服务器带操作系统

买服务器带操作系统 内容精选换一换只有运行中的弹性云服务器才允许用户登录。Linux操作系统用户名“root”。忘记密码,请先通过“重置密码”功能设置登录密码。重置密码:选中待重置密码的云耀云服务器,并选择“操作”列下的“ 重置密码”。重…

自定义sql_【PL/SQL 自定义函数】 常用场景

看完这章后你会学习到以下内容:1.练习场景2.面试场景3.工作应用场景总览思维导图:面试部分:1.创建函数,从emp表中查询指定员工编号的职工的工资CREATE OR REPLACE FUNCTION CHECK_SAL(F_EMPNO IN EMP.EMPNO%TYPE) RETURN NUMBER ISV_SAL VARC…

进阶– Java EE 7前端5强

系列继续。 在初步概述和Arjan关于最重要的后端功能的文章之后 ,我现在非常高兴让Ed Burns( edburns )使用他最喜欢的Java EE 7前端功能完成本系列。 感谢Markus Eisele让我有机会在他非常受欢迎的博客上发表帖子。 我和Markus的关系可以追溯…