C/S结构 B/S结构

【1】C/S 结构,即大家熟知的客户机服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。

【2】B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser英 [‘bra?z?]美 [‘bra?z?]),如Netscape NavigatorInternet Explorer服务器安装SQL ServerOracle、MYSQL等数据库。浏览器通过Web Server 同数据库进行数据交互。

【3】

首先必须强调的是C/S和B/S并没有本质的区别:B/S是基于特定通信协议(HTTP)的C/S架构,也就是说B/S包含在C/S中,是特殊的C/S架构。

之所以在C/S架构上提出B/S架构,是为了满足瘦客户端、一体化客户端的需要,最终目的节约客户端更新、维护等的成本,及广域资源的共享。

(1)B/S属于C/S,浏览器只是特殊的客户端;

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

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

【4】

联系

C/S是Client/Server的缩写。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或 SQL Server。客户端需要安装专用的客户端软件。

B/S是Browser/Server的缩写,客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。浏览器通过Web Server 同数据库进行数据交互。

系统开发中C/S结构(Client/Server)中Client(客户端)往往可以由 B/S结构(Browser/Server结构)的Browser(浏览器)及其载体承担,C/S结构的Web应用与B/S结构(Browser/Server结构)具有紧密联系。大系统和复杂系统中,C/S结构和B/S结构的嵌套也很普遍。

原来的Client/Server结构转变成Browser/Server结构后,客户机的压力大大减轻,负荷被均衡地分配给了服务器。由于这种结构不再需要专用的客户端软件,因此也使技术维护人员从繁重的安装、配置和升级等维护工作中解脱了出来,可以把主要精力放在服务器程序的更新工作上。同时,使用Web浏览器作为客户端软件,界面友好,新开发的系统也不需要用户每次都从头学习。而且,这种三层模式,层与层之间相互独立,任何一层的改变都不影响其他层原有的功能,所以可用不同厂家的产品组成性能更佳的系统。总之,三层模式的Browser/Server结构从根本上弥补了传统的二层模式的Client/Server结构的缺陷,是应用系统体系结构中一次深刻的变革。

区别

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结构的程序架构是发展的趋势,从MS的.Net系列的BizTalk 2000 Exchange 2000等,全面支持网络的构件搭建的系统。SUN 和IBM推JavaBean 构件技术等,使 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 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流. 并且大部分难度减低,减低开发成本。

8.信息流不同

C/S 程序一般是典型的中央集权的机械式处理,交互性相对低。

B/S 信息流向可变化,B-B B-C B-G等信息、流向的变化,更像交易中心。

时间: 2024-08-09 16:05:09

C/S结构 B/S结构的相关文章

线性结构和非线性结构

线性结构和非线性结构同属于数据结构中的逻辑结构类型 线性结构是指该结构中的节点之间存在一对一的关系.其特点是开始节点和终端节点都是唯一的,除了开始节点和终端节点外,其余节点都有且仅有一个直接前驱,有且仅有一个直接后继.此类型的存储结构有:顺序表(数组).链表.堆栈结构.队列结构等 非线性结构又包括集合.树形结构.图形结构或网状结构,特点是数据元素之间存在一个对多个或多个对多个的关系,其中集合是一种关系极为松散的结构.

C语言程序结构之分支结构if switch

一,程序的结构:顺序结构 :程序运行时按正常的流程运行   (程序内部运行实现线性结构:栈,队 列,链表,数组个人感觉) 分支结构 : 条件语句 if switch 循环结构 : while    do while    for 二,if语句 1,分类1)第一种形式: 构成:if(表达式){ 语句块; } 2)if....else的形式 用法:如果表达式的值为真(1) 执行语句块1 如果表达式的值为假(0) 执行语句块2 格式:if(表达式) { //如果表达式的值为真(1),会这行此代码块 语

js-ES6学习笔记-Set结构和Map结构

http://www.cnblogs.com/lonhon/ 1.ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. 2.Set 函数可以接受一个数组(或类似数组的对象)作为参数,用来初始化. 3.Set.prototype.size:返回Set实例的成员总数. 四个操作方法. add(value):添加某个值,返回Set结构本身. delete(value):删除某个值,返回一个布尔值,表示删除是否

Linux程序存储结构与进程结构 堆和栈的差别

摘要:本文主要讲述了Linux系统中.程序存储结构(代码区.数据段和BBS区)与进程的基本结构(代码区.数据段.BBS区.堆和栈).以及堆和栈的差别. Linux程序存储结构与进程结构 1.Linux程序存储结构 在Linux系统下,程序是一个普通的可运行文件,图1是一个Linux下ELF格式可运行文件的基本情况. 图1 ELF格式可运行文件的基本信息 能够看出,此ELF格式可运行文件在存储时,没有调入到内存,分为代码区(text),数据区(data)和为初始化区(bss)3个部分.各段基本说明

[C语言]进阶|结构类型: 枚举, 结构, 类型定义

--------------------------------------------------------------------- 枚举: // main.c #include <stdio.h> const int red = 0; const int yellow = 1; const int green = 2; int main(int argc, const char * argv[]) { /* 常量符号化:用符号而不是具体的数字来表示程序中的数字; 这样看到符号才能知道背

Linux程序存储结构与进程结构 堆和栈的区别

摘要:本文主要讲述了Linux系统中,程序存储结构(代码区.数据段和BBS区)与进程的基本结构(代码区.数据段.BBS区.堆和栈),以及堆和栈的区别. Linux程序存储结构与进程结构 1.Linux程序存储结构 在Linux系统下,程序是一个普通的可执行文件,图1是一个Linux下ELF格式可执行文件的基本情况. 图1 ELF格式可执行文件的基本信息 可以看出,此ELF格式可执行文件在存储时,没有调入到内存,分为代码区(text),数据区(data)和为初始化区(bss)3个部分.各段基本说明

[大话数据结构]线性表之单链表结构和顺序存储结构

线性表定义: 零个或者多个数据元素的有限序列.元素之间是有顺序的,如果元素存在多个,则第一个元素无前驱,最后一个元素无后继.其他每个元素都有且只有一个前驱和后继.并且数据元素的类型要相同. 线性表的抽象数据类型: ADT 线性表(List) Data 线性表的数据对象集合为{a1,a2,...,an},每个元素的类型均为DataType. 其中,除第一个元素a1外,每一个元素有且只有一个直接前驱元素,除了最后一个元素an外,每一个元素有且只有一个直接后继元素. 数据元素之间的关系是一对一的关系.

大型局域网中二层结构与三层结构

大型局域网中二层结构与三层结构 大型局域网结构千变万化.网络的规划与园区环境.应用类型密不可分.就目前而言网络结构分为大二层与三层结构.未来的发展方向是向sdn靠拢,我个人观点是自动化网络,可以实现基于业务的配置自动化,同时也可以实现故障自愈和.就结构而言在没有二三层之分了,我认为也就是一层网络.纵向虚拟化就是一层网络的很好体现. 今天主要总结了大二层与三层结构的 二层网络没有汇聚或者逻辑上没有汇聚,网关在核心.不同vlan之间直接由核心进行数据交换.同时使用mstp+vrrp技术实现网络冗余.

3.分支结构与循环结构

1 程序结构 程序结构分为顺序结构.分支结构.循环结构.分支结构有:if结构,if....else结构,if...else if....else ,if...else结构,switch结构:循环结构有:while循环,do....while循环,for循环. 2 分支结构 ①if结构  语法: if(布尔表达式){ //语句; } 执行过程:如果布尔表达式为true执行其下语句,布尔表达式为false时不执行其下语句. {}可以省略,如果省略将执行第一个语句块.为了程序的可读性推荐不要省略{}

分支结构和循环结构

1.C语言关系运算符 在程序中经常需要比较两个数据的大小,以决定程序下一步的工作.比如一个程序限制了只能成年人使用,儿童因为年龄不够,没有权限使用.这时候程序就需要获取用户输入的年龄并做出判断,如果超过18岁就正常运行,否则给出无权使用的提示. 比较两个数据大小的运算符称为关系运算符(Relational Operators). 在C语言中有以下关系运算符: 1) <(小于) 2) <=(小于或等于) 3) >(大于) 4) >=(大于或等于) 5) ==(等于) 6) !=(不等