C/S软件体系结构是基于资源不对等,且为实现共享而提出来的,是20世纪90年代成熟起来的技术, C/S体系结构定义了工作站如何与服务器相连,以实现数据和应用分布到多个处理机上。
C/S体系结构有三个主要组成部分:数据库服务器、客户应用程序和网络。
l 服务器
(1)数据库安全性的要求;
(2)数据库访问并发性的控制;
(3)数据库前端的客户应用程序的全局数据完整性规则;
(4)数据库的备份与恢复。
l 客户应用程序
(1)提供用户与数据库交互的界面;
(2)向数据库服务器提交用户请求并接收来自数据库服务器的信息;
(3)利用客户应用程序对存在于客户端的数据执行应用逻辑要求。
1) 优点
ü C/S 体系结构具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。
ü 系统的客户应用程序和服务器构件分别运行在不同的计算机上,系统中每台服务器都可以适合各构件的要求,这对于硬件和软件的变化显示出极大的适应性和灵活性,而且易于对系统进行扩充和缩小。
ü 在C/S体系结构中,系统中的功能构件充分隔离,客户应用程序的开发集中于数据的显示和分析,而数据库服务器的开发则集中于数据的管理,不必在每一个新的应用程序中都要对一DBMS进行编码。将大的应用处理任务分布到许多通过网络连接的低成本计算机上,以节约大量费用。
2) 缺点
ü 开发成本较高
ü 客户端程序设计复杂
ü 信息内容和形式单一
ü 用户界面风格不一,使用繁杂,不利于推广使用
ü 软件移植困难
ü 软件维护和升级困难
ü 新技术不能轻易应用
c/s软件体系结构是20世纪90年代成熟起来的技术,它将应用一分为二,服务器(后台)负责数据管理.客户机(前台)完成与用户的交互任务。 传统的二层c/s结构存在以下几个局限:
1.二层c/s结构是 单一服务器且以局域网为中心的.所以难以扩展至大型企业广域网或Internet;
2.软硬件的组合及集成能力有限;
3.客户机的负荷太重.难以管理大量的客户机.系统的性能容易变坏;
4.数据 安全性不好。
因为二层C/S有这么多缺点.三层C/S结构应运而生。三层C/S结构是将应用功能分成表示层、功能层和数据层三个部分.
图 2 三层C/S结构示意图
表示层是应用的用户接口部分,它担负着用户与应用间的对话功能。它用于检查用户从键盘等输入的数据,显示应用输出的数据。为使用户能直观地进行操作,一般要使用图形用户接口,操作简单、易学易用。在变更用户接口时,只需改写显示控制和数据检查程序,而不影响其他两层。检查的内容也只限于数据的形式和取值的范围,不包括有关业务本身的处理逻辑。
功能层相当于应用的本体,它是将具体的业务处理逻辑编入程序中。例如,在制作订购合同时要计算合同金额,按照定好的格式配置数据、打印订购合同,而处理所需的数据则要从表示层或数据层取得。表示层和功能层之间的数据交往要尽可能简洁。例如,用户检索数据时,要设法将有关检索要求的信息一次性地传送给功能层,而由功能层处理过的检索结果数据也一次性地传送给表示层。
通常,在功能层中包含有确认用户对应用和数据库存取权限的功能以及记录系统处理日志的功能。功能层的程序多半是用可视化编程工具开发的,也有使用COBOL和C语言的。
数据层就是数据库管理系统,负责管理对数据库数据的读写。数据库管理系统必须能迅速执行大量数据的更新和检索。因此,一般从功能层传送到数据层的要求大都使用SQL语言。
三层C/S的解决方案是:对这三层进行明确分割,并在逻辑上使其独立。原来的数据层作为数据库管理系统已经独立出来,所以,关键是要将表示层和功能层分离成各自独立的程序,并且还要使这两层间的接口简洁明了。
一般情况是只将表示层配置在客户机中,如果连功能层也放在客户机中,与二层C/S结构相比,其程序的可维护性要好得多,但是其他问题并未得到解决。客户机的负荷太重,其业务处理所需的数据要从服务器传给客户机,所以系统的性能容易变坏。
如果将功能层和数据层分别放在不同的服务器中,则服务器和服务器之间也要进行数据传送。但是,由于在这种形态中三层是分别放在各自不同的硬件系统上的,所以灵活性很高,能够适应客户机数目的增加和处理负荷的变动。例如,在追加新业务处理时,可以相应增加装载功能层的服务器。因此,系统规模越大这种形态的优点就越显著。
n 与传统的二层结构相比,三层C/S结构具有以下优点:
1) 允许合理地划分三层结构的功能,使之在逻辑上保持相对独立性,从而使整个系统的逻辑结构更为清晰,能提高系统和软件的可维护性和可扩展性。
2) 允许更灵活有效地选用相应的平台和硬件系统,使之在处理负荷能力上与处理特性上分别适应于结构清晰的三层;并且这些平台和各个组成部分可以具有良好的可升级性和开放性。例如,最初用一台Unix工作站作为服务器,将数据层和功能层都配置在这台服务器上。随着业务的发展,用户数和数据量逐渐增加,这时,就可以将Unix工作站作为功能层的专用服务器,另外追加一台专用于数据层的服务器。若业务进一步扩大,用户数进一步增加,则可以继续增加功能层的服务器数目,用以分割数据库。清晰、合理地分割三层结构并使其独立,可以使系统构成的变更非常简单。因此,被分成三层的应用基本上不需要修正。
3) 三层C/S结构中,应用的各层可以并行开发,各层也可以选择各自最适合的开发语言。使之能并行地而且是高效地进行开发,达到较高的性能价格比;对每一层的处理逻辑的开发和维护也会更容易些。
4) 允许充分利用功能层有效地隔离开表示层与数据层,未授权的用户难以绕过功能层而利用数据库工具或黑客手段去非法地访问数据层,这就为严格的安全管理奠定了坚实的基础;
5) 整个系统的管理层次也更加合理和可控制。
n 要注意的问题
1) 三层C/S结构各层间的通信效率若不高,即使分配给各层的硬件能力很强,其作为整体来说也达不到所要求的性能。
2) 设计时必须慎重考虑三层间的通信方法、通信频度及数据量。这和提高各层的独立性一样是三层C/S结构的关键问题。
浏览器/服务器(B/S)风格就是上述三层应用结构的一种实现方式,其具体结构为:浏览器/Web服务器/数据库服务器。◎ B/S体系结构主要是利用不断成熟的WWW浏览器技术,结合浏览器的多种脚本语言,用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能,并节约了开发成本。从某种程度上来说,B/S结构是一种全新的软件体系结构。
优点
1) 基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了“零客户端”的功能,很容易在运行时自动升级。
2) B/S体系结构还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础。
缺点
1) B/S体系结构缺乏对动态页面的支持能力,没有集成有效的数据库处理功能。
2) B/S体系结构的系统扩展能力差,安全性难以控制。
3) 采用B/S体系结构的应用系统,在数据查询等响应速度上,要远远地低于C/S体系结构。
4) B/S体系结构的数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理(OLTP)应用。
B/S与C/S混合软件体系结构是一种典型的异构体系结构。
B/S软件体系结构,即Browser/Server (浏览器/服务器)结构,是随着Internet技术的兴起,对C/S体系结构的一种变化或者改进的结构。在B/S体系结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。
B/S体系结构主要是利用不断成熟的WWW浏览器技术,结合浏览器的多种脚本语言,用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件体系结构。基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了"零客户端"的功能,很容易在运行时自动升级。B/S体系结构还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础。
但是,与C/S体系结构相比,B/S体系结构也有许多不足之处,例如:
(1)B/S体系结构缺乏对动态页面的支持能力,没有集成有效的数据库处理功能。
(2)B/S体系结构的系统扩展能力差,安全性难以控制。
(3)采用B/S体系结构的应用系统,在数据查询等响应速度上,要远远地低于C/S体系结构。
(4)B/S体系结构的数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理(OLTP)应用。
从上面的对比分析中,我们可以看出,传统的C/S体系结构并非一无是处,而新兴的B/S体系结构也并非十全十美。由于C/S体系结构根深蒂固,技术成熟,原来的很多软件系统都是建立在C/S体系结构基础上的,因此,B/S体系结构要想在软件开发中起主导作用,要走的路还很长。我们认为,C/S体系结构与B/S体系结构还将长期共存。
C/S与B/S混合软件体系结构的优点是外部用户不直接访问数据库服务器,能保证企业数据库的相对安全。企业内部用户的交互性较强,数据查询和修改的响应速度较快。
C/S与B/S混合软件体系结构的缺点是企业外部用户修改和维护数据时,速度较慢,较烦琐,数据的动态交互性不强。
PS:其实BS和CS(三层)的融合是必然之路,这是各自风格的优缺点和系统实际需要所决定的.比如在ERP系统中,贴近生产,需要操作效率(例如 MRP)和对本地控制要求比较高的可以采用CS三层,但对于一些行政OA性质的,一些对外接口则可以采用BS的(例如电子商务部分).
分享到:
相关推荐
BS架构和CS架构是两种常见的软件系统架构,分别代表浏览器/服务器架构和客户机/服务器架构。以下是对BS和CS架构的详细介绍。 BS架构(Browser/Server架构) BS架构是一种基于浏览器和服务器的架构,用户通过WWW...
6. **兼容性问题**:BS架构需要考虑多种浏览器的兼容性,包括Chrome、Firefox、Safari、Edge等,这可能需要对代码进行调整,或者引入polyfill库来支持旧版浏览器。 7. **前后端分离**:在BS架构中,前后端职责更加...
cs与bs架构区别分析 C/S架构(Client/Server,客户端/服务器模式)与B/S架构(Browser/Server,浏览器/服务器模式)是两种常见的软件架构模式,用于描述客户端和服务器端之间的交互关系。在本文中,我们将详细比较...
在软件开发过程中,有时候我们需要将基于浏览器的BS(Browser-Server)架构程序转换为客户端可以离线使用的CS(Client-Server)安装包。这时,一款强大的打包工具就显得尤为重要。InstallAnywhere是一款功能丰富的跨...
BS架构和CS架构是软件系统体系结构的两种主要形式,它们之间的区别和比较是非常重要的。本文将详细介绍BS架构和CS架构的定义、特点、优缺点和应用场景。 一、什么是CS架构? CS架构(Client/Server)是软件系统...
CS架构(Client/Server架构)和BS架构(Browser/Server架构)是两种常见的软件架构模式,它们之间有着很大的区别。 CS架构 CS架构是一种典型的两层架构,其全程是Client/Server,即客户端服务器端架构。客户端包含...
Bs架构(Browser/Server)和Cs架构(Client/Server)是两种常见的软件架构模式,它们在软件开发和应用中扮演着重要的角色。Bs架构是一种基于浏览器和服务器的结构,客户端只需要安装浏览器,服务器端承担着主要的...
### 软件架构风格整理及总结 #### 数据流风格 **数据流风格**是一种将系统组织成数据沿明确定义的路径流动的形式。这种架构风格强调数据流动和处理过程。 ##### 批处理序列 批处理序列风格是指一系列固定顺序的...
VB可以用于开发各种类型的软件,包括桌面应用(CS架构)和Web应用(BS架构)。 在BS架构中,通常使用ASP.NET或ASP.NET Core等技术来创建Web应用程序,这些技术允许开发者使用VB.NET作为后端编程语言。而CS架构则多...
BS架构和CS架构是软件开发领域中两种常用的系统架构模式,各有其特点和应用场景。理解它们的优缺点有助于我们在实际项目中做出更加合理的架构选择。 首先,CS架构,也就是客户端/服务器模式,是一种在20世纪80年代...
### 车票管理系统CS与BS架构:深入解析与对比 在现代信息技术领域,系统架构的选择对于软件开发、维护及用户交互体验具有决定性影响。本文将深入探讨车票管理系统中CS(Client/Server,客户端/服务器)架构与BS...
BS架构(Browser/Server)与CS架构(Client/Server)是两种常见的软件系统架构,它们在设计原则、应用场景和优缺点上有着显著的区别。 1. CS架构(Client/Server) CS架构是一种传统的分布式计算模型,其中客户端...
此软件可以把cs程序转换成bs的,在压缩包里有使用说明,按照说明操作。本程序转换的bs是asp.net的,需要运行于iis和.net框架。
"Domino CS快速转BS多平台"的项目正是为了满足这一需求,它提供了一种高效且实用的方法,帮助企业将原有的Domino CS应用无缝地迁移到BS架构,实现多平台的访问。 【描述】中的“CS快速转BS”意味着该解决方案旨在...
### CS与BS架构简析 #### 一、CS架构(Client/Server) CS架构,即客户端/服务器架构,是一种常见的分布式应用系统结构。在这种架构下,客户端负责与用户的交互及部分业务逻辑处理,而服务器端则主要负责数据管理...
CS与BS模式区别与联系 CS结构,即Client/Server...BS结构是软件应用系统的未来发展方向之一,具有降低客户端的维护和升级的成本和工作量,降低用户的总体拥有成本(TCO),提供统一的用户界面和灵活的系统架构等优点。
在IT领域,CS架构(Client/Server架构)与BS架构(Browser/Server架构)是两种常见的网络应用架构模式,它们各自具有独特的特性和应用场景。本文将深入探讨CS架构与BS架构的异同,以帮助读者更好地理解这两种架构,...
文档为PPT格式,记录了完整的B/S结构与C/S结构系统之间的异同点,内附插图、统计图、文字说明 可直接用于演示
1. **客户端差异**:CS架构需要在客户端安装专门的软件,而BS架构则仅需一个浏览器即可。 2. **维护难易度**:BS架构的维护相对简单,客户端不需要单独进行升级;而CS架构中客户端软件的升级需要对每个客户端进行...