C/S和B/S结构概念

1.什么是C/S结构

C/S (Client/Server)结构,即客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。

C/S结构可以看做是胖客户端架构。客户端实现绝大多数的业务逻辑处理和界面展示,作为客户端的部分需要承受很大的压力,从分利用客户端的资源,对客户机的要求较高。

其实现可以是客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端,客户端通过数据库连接访问服务器端的数据;另一种是Socket服务器端,服务器端的程序通过Socket与客户端的程序通信。

目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。

传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。而且代价高, 效率低。

2.什么是B/S结构

B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。

B/S结构可以看作是瘦客户端,只是把显示的较少的逻辑交给了Web浏览器,事务逻辑数据处理在放在了Server端,这样就避免了庞大的胖客户端,减少了客户端的压力。B/S结构的系统无须特别安装,只有Web浏览器即可。当然AJAX\Flex等等的普遍使用也有富客户端的发展方向。

以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全 。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。

3.管理软件主流技术。

管理软件技术的主流技术与管理思想一样,也经历了三个发展时期。首先,界面技术从上世纪DOS字符界面到Windows图形界面(或图形用户界面GUI),直至Browser浏览器界面三个不同的发展时期。其次,今天所有电脑的浏览器界面,不仅直观和易于使用,更主要的是基于浏览器平台的任何应用软件其风格都是一样的,使用人对操作培训的要求不高,而且软件可操作性强,易于识别;再者,平台体系结构也从过去单用户发展到今天的文件/服务器(F/S)体系、客户机/服务器(C/S)体系和浏览器/服务器(B/S)体系。

C/S和B/S结构区别

1.C/S和B/S结构优缺点

(1).B/S结构优缺点:

  B/S结构的优点:

  <1>.无需安装,客户端不需要安装有浏览器即可。

  <2>.分布性特点,可以随时随地进行查询、浏览等业务处理。

  <3>.业务扩展便捷,通过增加页面即可增加服务器功能。

  <4>.升级维护便捷,无需升级多个客户端,升级服务器即可,就可以实现所有用户的同步更新。

  <5>.共享性强特点,可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强。

  B/S结构的缺点:

  <1>.在跨浏览器上,BS结构不尽如人意。

  <2>.在速度和安全性上需要花费很多设计成本,响应速度不及C/S,随着AJAX技术的发展,相比传统B/S结构软件速度有很大提升。

  <3>.用户体验不是很理想,B/S需要单独界面设计,各个浏览器厂商的对浏览器的解析的标准不同。

      客户端服务器端的交互是请求-响应模式,通常需要刷新页面,这并不是客户乐意看到的。(在Ajax风行后此问题得到了一定程度的缓解)

(2).C/S结构优缺点:

  C/S结构的优点:

  <1>.C/S结构的界面和操作简单丰富。

  <2>.C/S结构的管理信息系统具有较强的事务处理能力。

  <3>.C/S结构的安全性能可以很容易保证,实现多层认证也不难。

  <4>.C/S结构的响应速度快。由于客户端实现与服务器的直接相连,没有中间环节,只有一层交互,因此响应速度较快。

  C/S结构的缺点:

  <1>.适用面窄,通常用于局域网中。

     随着互联网的飞速发展,移动办公和分布式办公越来越普及,这需要我们的系统具有扩展性。这种方式远程访问需要专门的技术,同时要对系统进行专门的设计来处理分布式的数据。

  <2>.客户端需要安装专用的客户端软件。

     由于程序需要安装才可使用,因此不适合面向一些不可知的用户。涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。特别是有很多分部或专卖店的情况,不是工作量的问题,而是路程的问题。

  <3>.维护升级成本高,进行一次维护升级,需要所有客户端的程序进行重新安装。

  <4>.对客户端的操作系统一般也会有限制。

     可能适应于WinXP, 但不能用于WinVista或Win7。或者不适用于微软新的操作系统等等,还有Linux、Unix等等操作系统。

2.C/S和B/S结构设计区别

Client/Server是建立在局域网的基础上的,Browser/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等信息流向的变化,更象交易中心。

3.C/S和B/S结构优势与劣势

(1).C/S架构软件的优势与劣势

<1>.应用服务器运行数据负荷较轻。

最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。二者可分别称为前台程序与后台程序。运行数据库服务器程序的机器,也称为应用服务器。一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。

<2>.数据的储存管理功能较为透明。

在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,前台应用可以违反的规则,并且通常把那些不同的(不管是已知还是未知的)运行数据,在服务器程序中不集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立定单这样的规则。所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。在C/S体系的下,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理。

<3>.C/S架构的劣势是高昂的维护成本且投资大。

首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现,有这样一些问题,如果需要建立“实时”的数据同步,就必须在两地间建立实时的通讯连接,保持两地的数据库服务器在线运行,网络管理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务量大。

其次,传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。在JAVA这样的跨平台语言出现之后,B/S架构更是猛烈冲击C/S,并对其形成威胁和挑战。

(2).B/S架构软件的优势与劣势

<1>.维护和升级方式简单。

目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。

<2>.成本降低,选择更多。

大家都知道windows在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在服务器操作系统上windows并不是处于绝对的统治地位。现在的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可,而且安全性高。所以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人使用windows作为桌面操作系统电脑不受影响,这就使的最流行免费的Linux操作系统快速发展起来,Linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。

比如说很多人每天上“网易”(原文为新浪)网,只要安装了浏览器就可以了,并不需要了解“网易”的服务器用的是什么操作系统,而事实上大部分网站确实没有使用windows操作系统,但用户的电脑本身安装的大部分是windows操作系统。

<3>.应用服务器运行数据负荷较重。

由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。因此,许多单位都备有数据库存储服务器,以防万一。

4.C/S和B/S结构结合

自己接触到的C/S与B/S结合框架是SCSF框架,集合C/S和B/S设计上的优点应用。分享一下你接触的C/S与B/S结合架构吧。

Smart
Client Software Factory 概述

(1).SCSF概念

SCSF是一个应用了多种设计模式、适用于大型软件开发的框架,其特点是结合B/S与C/S架构的优点,开发人员可以按业务功能分模块并行开发,各模块之间耦合度很小,当业务需求变化时,应用SCSF架构的软件可以最大限度地减小代码修改量。

Smart Client相比传统B/S架构的优势:FatClient设计,用户体验丰富,客户端可以在不在线的状态下运行——而传统B/S架构是把一切负担交给服务器,当网络不可用时B/S系统完全瘫痪。

Smart Client相比传统C/S架构的优势:方便部署和维护——利用ClickOnce客户端会在需要更新时自动提示或更新。

(2).SCSF中的设计模式及架构思想:

控制反转(IoC),依赖注入,MVC及MVP;

策略模式(Strategy),观察者模式(Observer)。

理解了这些模式,才能较容易地理解SCSF的架构思想。

时间: 2024-10-01 06:23:27

C/S和B/S结构概念的相关文章

#WEB安全基础 : HTTP协议 | 0x10 扩展HTTP报文结构概念和内容编码

#以后的知识都是HTTP协议的扩展,如果精力有限可以选择暂时忽略,注意只是暂时忽略,以后的东西同样重要 HTTP传输数据时可以直接传输也可以对数据进行编码,由于编码在计算机内运行,所以会占用一些CPU资源 报文(message):HTTP通信的基本单位,由八位组字节(由八个bit组成的一字节)流组成通过HTTP通信传输 实体(entity):作为请求或响应的有效载荷数据被传输,其内容由实体首部和实体主体组成 HTTP报文的主体用于传输请求和下响应的实体主体.通常,报文主体等于实体主体,只有当传输

黑马程序员----流程控制(顺序结构、选择结构、循环结构)

一.顺序结构 默认的流程结构,按照书写的顺序执行: 二.选择结构 概念:对给定的条件进行判断,根据判断结果来决定执行那一段代码: 1. if语句 if语句的基本使用 /* 1.if的第一种结构 if(条件) { 语句1; 语句2; ...... } 2.if的第2种结构 if(条件1) { 语句1; 语句2; ...... } else { 语句3; 语句4; ....... } 3.if的第3种结构(按顺序判断条件,遇到某个条件成立就执行其代码(也说明该条件前的所有条件都不成立),执行完不再对

JVM——结构

Java体系: JDK(Java development Kit)包括:java程序设计语言,java虚拟机,java API类库.如图: Java技术体系:Java Card(Applets),Java ME(Micro Edition),Java SE(Standard Edition),Java EE(Enterprise Edition). Jvm结构概念:   运行时数据区域(Runtime Data Areas) Jvm定义了一组运行时数据区域,这些区域在Jvm运行程序时使用.一些区

软件工程笔记1系统与结构

1.系统概念 耗散系统 远离平衡态的开放系统.通过不断的与外界交换物质和能量,在变化到达一定阀值,可能从混沌无序状态过渡到规范状态. 具有时间单向性. 宇宙就是一个最大的耗散系统. 系统结构: 静态结构,动态结构,时间结构,空间结构,时空结构. 2.结构概念 结构是一个由种种转换规律组成的体系. 可以自身调节. 整体性,转换性,自身调节性. 群 整体性:结合律,逆元,对称性. 转换性:一个元素经过运算形成另一个元素. 自身调整性:规则的封闭性,子群,陪集. 工程:群体在长时间周期协作活动的过程.

顺序存储结构与链式存储结构

上一篇博客简单讲述了一下两种结构的概念这一篇博客主要想讲述一下他们之间的区别 顺序存储结构与链式存储结构的优缺点 顺序存储结构 概念官方一点来说可以使用百度百科的介绍:顺序存储结构是存储结构类型中的一种,该结构是把逻辑上相邻的结点存储在物理位置上相邻的存储单元中,结点之间的逻辑关系由存储单元的邻接关系来体现. 当然不得不说一般这种官方的解释都是不太适合我的,所以用小甲鱼的方式来说这个概念的话,简单来说就是,用一段连续的地址存放数据元素,数据间的逻辑关系和物理关系相同. 优点1:存储密度大,空间利

CS考研_统考大纲

序号 政治 外语 业务课一 业务课二 1 (101)思想政治理论 (201)英语一 (301)数学一 (408)计算机学科专业基础综合 以上是计算机全国统考考试科目,三门公共课非统考基本也都是这三个,大家如果看到非统考的科目如果是三个1,就可以直接来参考我这里列出的大纲了!所以在此,我就直接列出最近的2015年考研这四个的考试大纲: 政治101: Ⅰ.考试性质 思想政治理论考试是为高等院校和科研院所招收硕士研究生而设置的具有选拔性质的全国招生考试科目,其目的是科学.公平.有效地测试考生掌握大学本

Windows Phone开发(1):概论

Windows Phone是微软公司开发的手机操作系统,这里就不多介绍,和Android,iPhone一样运行在智能手机上,相信大家都很熟悉. 目前来说,Windows Phone(以下称WP),显然其市场还不及IOS,上线的应用也不如安卓和iPhone那么多,不过,我们作为开发者,应该比一般用户清楚,WP的优势也不比其它的手机操作系差的,当我认真去了解WP后,我们肯定会"别有一番滋味"的. 因为是开发技术文章,因此我们仅仅是从开发者的角度去认识它,我们既作为开发者,我们更应该比一般用

《大道至简》第一章JAVA语言伪代码

第一章写了编程的精义详细写出了编程是简单的.举愚公移山的例子,既写出了我们中华文化源远流长,博大精深,千百年前就有了编程的思想,也引出了结构概念,虽我之死,有 存焉",这里描述了可能存在的分支结构,即"IF"条件判断,以及子子孙孙无穷匮也等循环结构,等编程思想.关于我会不会写程序的问题书里面也做了详细介绍!除了先天智障或后天懒惰者,都是可以学会写程序的,也许会给学编程的学生增加了很大的信心. 下面是源代码................... import.java.大道至简

javascript中DOM基础知识介绍

1.1.     基本概念 1.1.1.      DOM DOM Document Object Model 文档对象模型 就是把HTML文档模型化,当作对象来处理 DOM提供的一系列属性和方法可以视作一个工具箱,极大地方便了我们对文档的处理. 1.1.2.      内容概念 文档(Document):就是指HTML或者XML文件 节点(Node):HTML文档中的所有内容都可以称之为节点,常见的节点有 元素节点 属性节点 文本节点 注释节点 元素(Element):HTML文档中的标签可以