C/S架构的工作原理:C/S客户端和服务器之间通过网络连接进行通信,客户端发送请求后会等待服务器返回响应,直到收到响应后才能显示给用户。B/S架构的工作原理:客户端通过浏览器访问服务器上的应用程序,应用程序在服务器上执行并返回结果。
一、C/S架构的工作原理
C/S 架构中客户端和服务器之间通过网络连接进行通信,客户端发送请求后会等待服务器返回响应,直到收到响应后才能显示给用户。因此,在大量用户同时使用时,需要增加服务器的硬件设施以应对更多的访问请求。
C/S架构是一种比较早的软件架构,主要应用于局域网内。在这之前经历了集中计算模式,随着计算机网络的进步与发展,尤其是可视化工具的应用,出现过两层C/S和三层C/S架构,不过一直很流行也比较经典的是我们所要研究的两层C/S架构。
C/S架构软件(即客户机/服务器模式)分为客户机和服务器两层:名列前茅层是在客户机系统上结合了表示与业务逻辑,第二层是通过网络结合了数据库服务器。简单的说就是名列前茅层是用户表示层,第二层是数据库层。
客户端和服务器直接相连,这两个组成部分都承担着重要的角色,名列前茅层的客户机并不是只有输入输出,运算等能力,它可以处理一些计算,数据存储等方面的业务逻辑事务;第二层的服务器主要承担事务逻辑的处理,本来事务很重,但是由于客户机可以分担一些逻辑事务,所以减轻了服务器的负担,使得网络流量增多。
二、B/S架构的工作原理
B/S 架构中,客户端通过浏览器访问服务器上的应用程序,应用程序在服务器上执行并返回结果。由于浏览器是一个轻量级的应用程序,因此不需要安装任何客户端程序。
随着Internet和WWW的流行,以往的主机/终端和C/S都无法满足当前的全球网络开放、互连、信息随处可见和信息共享的新要求,于是就出现了B/S型模式,即浏览器/服务器结构。它是C/S架构的一种改进,可以说属于三层C/S架构。主要是利用了不断成熟的WWW浏览器技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。
- 名列前茅层是浏览器,即客户端,只有简单的输入输出功能,处理极少部分的事务逻辑。由于客户不需要安装客户端,只要有浏览器就能上网浏览,所以它面向的是大范围的用户,所以界面设计得比较简单,通用。
- 第二层是WEB服务器,扮演着信息传送的角色。当用户想要访问数据库时,就会首先向WEB服务器发送请求,WEB服务器统一请求后会向数据库服务器发送访问数据库的请求,这个请求是以SQL语句实现的。
- 第三层是数据库服务器,他扮演着重要的角色,因为它存放着大量的数据。当数据库服务器收到了WEB服务器的请求后,会对SQL语句进行处理,并将返回的结果发送给WEB服务器,接下来,WEB服务器将收到的数据结果转换为HTML文本形式发送给浏览器,也就是我们打开浏览器看到的界面。
B/S架构和C/S架构不同,浏览器不是直接和数据库服务器相连,所以是多对多的结构。因此在此结构下,很适合在广域网里实现巨大的互联网,甚至是全球网。有着很强大的信息共享性。
二、C/S架构的优点
1、客户端和服务器直接相连
- 点对点的模式使得更安全。
- 可以直接操作本地文本,减少获取文本的时间和精力。
- 由于直接相连,减少了通信流量,这对于客户来说可以节约一大笔费用。
- 直接相连,中间没有什么阻隔或岔路,所以响应速度快。当通信量少的时候没什么感觉,但是如果通信量庞大,就不会出现拥堵的现象。
2、客户端可以处理一些逻辑事务
- 充分利用两者的硬件设施,避免资源的浪费。
- 为服务器分担一些逻辑事务,可以进行数据处理和数据存储。可以处理复杂的事务流程。
- 客户端有一套完整应用程序,在出错提示、在线帮助等方面都有强大的功能,并且可以在子程序间自由切换。
3、客户端操作界面
- 可以提高客户的视觉体验,满足客户需求。
- 客户端操作界面可以随意排列,充分满足客户的需要,展现特点与个性。
三、C/S架构的缺点
1、客户端
- 只能处理一些功能单一的多系统。
- C/S架构适用于局域网,对网速的要求比较高。
- 由于需要安装客户端,安装部署困难,所以不易扩展。
- 若客户端使用的系统不同,就要针对这些系统分别编写程序。
- 客户端界面缺乏通用性,且当业务更改时就需要更改界面,重新编写。
- 客户端需要专门的客户端程序,比较麻烦,针对点多面广且不具备网络条件的用户群体,不能够实现快速部署安装和配置。
2、服务器
- 用户数增多会出现通信拥堵,服务器响应速度慢等情况。
- 当服务器难当大任时,只能将其废弃,使用更强大的服务器。
- 当客户端用户增多时,服务器难以承担重负,是名副其实的“胖”客户端。
- 用户是通过ODBC连接到数据库的,且每个连接到数据库的用户都会保持一个ODBC连接,会一直占用中央服务器的资源,对服务器的要求很高。
3、用户
- 没有安装客户端的外部用户不能访问。
- 只有安装了客户端才能访问服务器,所以用户不能随时随地的访问。
- 用户是通过ODBC连接到数据库的,所以用户数受限,不易扩张。
- 由于针对小范围的客户,所以不能实现真正大范围的信息共享,信息传达和发布。
- 需要聘用高素质的人员,对其培训,费用高。
- 初次开发就需要配备好客户端,服务器,需要有专业水准的技术人员,所以成本高。
- 系统升级维护麻烦,需要更改大量程序,投入大量精力和金钱。
- 业务扩展或变更时,需要更改程序,客户端的界面也需要重新更改。
- 初次投入成本后不能一劳永逸,后期需要很多成本,比如服务器的更换,客户端的更变等。
四、B/S架构的优点
1、浏览器
- 能面对广大的用户实现信息传播共享。
- 浏览器只处理一些简单的逻辑事务,负担小。
- 页面的更新能实现同步,所有用户都能看到。
- 界面设计开发简单,对程序员的要求较低,不需要大量的培训。
- 业务扩展方便,只需要增加几个业务扩展的页面即可,不需要大量的编程。
- 界面不需要太多的编写,比较通用,更改界面也比较简单,所以几乎不需要维护。
2、服务器
- 由于Web的平台无关性,可以从一台服务器、几个用户的工作组级扩展成为拥有成上万用户的大型系统。
- 数据都集中存放在数据库服务器,所以不存在数据不一致现象。
- 能有效地保护数据平台和管理访问权限,服务器数据库也很安全。
- 在数据库服务器上不一定使用WINDOWS系统,选择更多,成本更少。
- 如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。
- 在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。
- 数据存放在数据库服务器,客户端并不存放任何业务数据或者数据库连接信息,所以数据比较安全。
- 随着服务器负载的增加,可以平滑地增加服务器的个数并建立集群服务器系统,然后在各个服务器之间做负载均衡。
3、用户
- B/S建立在广域网上,所需的网速不高。
- 外部的用户也可以对浏览器进行访问。
- 界面人性化,通用化,不需要多少培训就能掌握。
- 不需要安装客户端,只要能连上网,就能随时随地的浏览页面。
- 借助Internet强大的信息发布与信息传送能力可以有效地解决企业内部的大量不规则的信息交流。
所有的用户都是通过一个JDBC连接缓冲池连接到数据库的,用户并不保持对数据库的连接,用户数基本上是无限的。
4、成本
- 软件重用性强,节省了大量的成本。
- 不需要安装特殊的软件,客户端几乎零维护。
- 开发简单,升级便捷,人员不需要太多培训,节省了大量的资金。
- 客户端几乎不需要维护,只要盯紧服务器就可以了,所以成本较小。
- 一般只有初期一次性投入成本,有利于软件项目控制和避免IT黑洞。
- 建立在广域网之上的, 不必是专门的网络硬件环境,例如电话上网, 租用设备等,成本较小。
五、B/S架构的缺点
1、客户端
- 面通用化,不突出个性。
- 页面需要不断地动态刷新,尤其是用户增多,网速慢得情况,很费时。
- 由于不需要安装客户端,客户端易扩展,还有就是外部用户也可以访问,所以B/S面对大量的不可知用户。
2、服务器
- 用户增多时,服务器响应速度慢。
- 功能虽然多样化,但是不能专门化,不能实现复杂的功能。
- 服务器承担着重要的责任,数据负荷较重。一旦发生服务器“崩溃”等问题,后果不堪设想。
延伸阅读1:C/S架构和B/S架构的区别
CS响应速度快,安全性强,通常应用在局域网当中,可是开发维护费用高;BS能够完成跨平台,客户端零维护,可是个性化才能低,响应速度较慢。于是有一些单位平日办公应用BS,在实际生产当中使用CS结构。