大家好,又见面了,我是你们的朋友全栈君。
文章内容学习百度百科和博主 “向上人生”
CS架构
- 客户端-服务器,即Client-Server(C/S)结构。C/S结构通常采取两层结构。服务器负责数据的管理,客户端负责完成与用户的交互任务。
CS结构
- 在C/S结构中,应用程序分为两部分:服务器部分和客户端部分。服务器部分是多个用户共享的信息与功能,执行后台服务,如控制共享数据库的操作等;客户端部分为用户所专有,负责执行前台功能,在出错提示、在线帮助等方面都有强大的功能,并且可以在子程序间自由切换。
- 客户端通过局域网与服务器相连,接受用户的请求,并通过网络向服务器提出请求,对数据库进行操作。服务器接受客户端的请求,将数据提交给客户端,客户端将数据进行计算并将结果呈现给用户。服务器还要提供完善安全保护及对数据完整性的处理等操作,并允许多个客户端同时访问服务器,这就对服务器的硬件处理数据能力提出了很高的要求。
- C/S结构在技术上已经很成熟,它的主要特点是交互性强、具有安全的存取模式、响应速度快、利于处理大量数据。但是C/S结构缺少通用性,系统维护、升级需要重新设计和开发,增加了维护和管理的难度,进一步的数据拓展困难较多.
CS的优缺点
- 优点
C/S结构的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。
具体表现在以下两点:
(1)应用服务器运行数据负荷较轻。最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。二者可分别称为前台程序与后台程序。运行数据库服务器程序的机器,也称为应用服务器。一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。
(2)数据的储存管理功能较为透明。在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,并且通常把那些不同的(不管是已知还是未知的)前台应用所不能违反的规则,在服务器程序中集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立订单这样的规则。所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。在C/S体系下,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理 。 - 缺点.
维护成本高,发生一次升级,则所有客户端的程序都需要改变。
- (1)随着互联网的飞速发展,移动办公和分布式办公越来越普及,这需要我们的系统具有扩展性。这种方式远程访问需要专门的技术,同时要对系统进行专门的设计来处理分布式的数据。
- (2)客户端需要安装专用的客户端软件。首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。特别是有很多分部或专卖店的情况,不是工作量的问题,而是路程的问题。还有,系统软件升级时,每一台客户机需要重新安装,其维护和升级成本非常高。
- (3)对客户端的操作系统一般也会有限制。可能适应于Win98, 但不能用于Windows2000或Windows XP。或者不适用于微软新的操作系统等等,更不用说Linux、Unix等。[1](目前,大多数客户端都适应win XP系统,但对微软新的操作系统或其他开发系统就兼用不了。)
- (4)传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统开发不同版本的软件, 加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。而且代价高, 效率低 。
- (5)C/S架构的劣势还有高昂的维护成本且投资大。首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现,有这样一些问题,如果需要建立“实时”的数据同步,就必须在两地间建立实时的通讯连接,保持两地的数据库服务器在线运行,网络管理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务量大。
- (6)传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。在JAVA这样的跨平台语言出现之后,B/S架构更是猛烈冲击C/S,并对其形成威胁和挑战。
BS架构
- B/S架构即浏览器和服务器架构模式,是随着Internet技术的兴起,对C/S架构的一种变化或者改进的架构。在这种架构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。B/S架构是WEB兴起后的一种网络架构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。浏览器通过Web Server同数据库进行数据交互。 这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。
BS结构
- 在 B/S 结构中,每个节点都分布在网络上,这些网络节点可以分为浏览器端、服务器端和中间件,通过它们之间的链接和交互来完成系统的功能任务。三个层次的划分是从逻辑上分的,在实际应用中多根据实际物理网络进行不同的物理划分。
- 浏览器端:即用户使用的浏览器,是用户操作系统的接口,用户通过浏览器界面向服务器端提出请求,并对服务器端返回的结果进行处理并展示,通过界面可以将系统的逻辑功能更好的表现出来。
- 服务器端:提供数据服务,操作数据,然后把结果返回中间层,结果显示在系统界面上。
- 中间件:这是运行在浏览器和服务器之间的。这层主要完成系统逻辑,实现具体的功能,接受用户的请求并把这些请求传送给服务器,然后将服务器的结果返回给用户,浏览器端和服务器端需要交互的信息是通过中间件完成的。
BS的优缺点
- 优点
通过一定的权限控制实现多客户访问的目的,交互性较强
- (1)软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。
- (2)大家都知道windows在桌面电脑上几乎一统天下,浏览器成为了标准配置。但在服务器操作系统上,windows并不是处于绝对的统治地位。软件的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可,而且安全性高。所以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人使用windows作为桌面操作系统电脑不受影响,这就使得最流行免费的Linux操作系统快速发展起来,Linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。
- (3)由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。因此,许多单位都备有数据库存储服务器,以防万一。
- 缺点
在速度和安全性上需要花费巨大的设计成本
- (1)客户端服务器端的交互是请求-响应模式,通常动态刷新页面,响应速度明显降(Ajax可以一定程度上解决这个问题)。无法实现分页显示,给数据库访问造成较大的压力。
- (2) 在速度和安全性上需要花费巨大的设计成本。功能弱化,难以实现传统模式下的特殊功能要求。
CS与BS的对比
- 硬件环境的比较
CS建立在局域网的基础上,局域网之间再通过专门服务器提供连接和数据交换服务。在CS结构中,客户机和服务器都需要处理数据任务,这就对客户机的硬件提出了较高的要求。BS结构建立在广域网之上,不必配备专门的网络硬件环境。虽然对客户端的硬件要求不是很高,只需要运行操作系统和浏览器,但服务器端需要处理大量实时的数据,这就对服务器端的硬件提出了较高的要求。总体来讲,BS结构相对CS结构能够大大降低成本。 - 系统维护 、 升级的比较
CS结构中的每一个客户机都必须安装和配置相关软件,如操作系统、客户端软件等。当客户端软件需要维护、升级,即使只是增加或删除某一功能,也需要逐一将CS结构中所有的客户端软件卸载并重新安装。如果不进行升级,可能会碰到客户端软件版本不一致而无法工作的情况。BS结构中每一个客户端只需通过浏览器便可进行各种信息的处理,而不需要安装客户端软件,维护、升级等几乎所有的工作都在服务器端进行,如果系统需要升级,只需要将升级程序安装在服务器端即可。 - 系统安全的比较
CS结构采取点对点的结构模式,数据的处理是基于安全性较高的网络协议之上。另外,CS一般面向相对固定的用户群,它可以对权限进行多层次的校验,对信息安全的控制能力很强,安全性可以得到很好的保障。BS结构采取一点对多点、多点对多点的开放式结构模式,其安全性只能靠数据服务器上的管理密码的数据库来保证,况且网络安全技术尚未成熟,需不断发现、修补各种安全漏洞。 - 用户接口的比较
CS结构多是建立在Windows平台上,表现方法有限,对程序员普遍要求较高。BS结构是建立在浏览器上,有更加丰富和生动的表现方式与用户交流。 - 处理上的比较
CS结构建立在局域网上,处理面向在相同区域的比较固定的用户群,满足对安全要求高的需求,与操作系统相关。BS结构建立在广域网上,处理面向分散的地域的不同的用户群,与操作系统关系较少。另外,BS的处理模式与CS处理模式相比,简化了客户端,只需要安装操作系统、浏览器即可。 - 软件重用的比较
CS结构软件可从不可避免的整体性考虑,构件的重用性不如在BS要求下构建的重用性好。BS对应的是多重结构,要求构建相对独立的功能,能够相对较好的重用。 - 系统速度的比较
CS结构在逻辑结构上比BS结构少一层,对于相同的任务,CS结构完成的速度总比BS结构快,使得CS更利于处理大量数据。另外,由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快。 - 交互性与信息流的比较
CS结构的交互性很强,在CS结构中,客户机有完整的客户端软件,能处理大量的、实时的数据流,响应速度快。BS结构虽然可以提供一定的交互能力,但交互能力很有限。CS的信息流单一,而BS结构可处理如B-B、B-C、B-G等信息并具有流向的变化。
总结
- CS响应速度快,安全性强,一般应用于局域网中,但是开发维护成本高;BS可以实现跨平台,客户端维护成本低,但是响应速度较慢,效率不如CS。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/151662.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...