软件系统体系结构---C/S B/S P2P架构(概述)

横:

随着信息系统规模不断扩大、复杂程度日益提高,体系结构模式对信息系统性能的影响越来越大不同功能的信息系统对体系结构模式有不同的要求,各种体系结构模式的信息系统在开发和应用过程中也有很大的区别。选择和设计合理的体系结构模式甚至比算法设计和数据结构设计更重要。

单用户体系结构

这是早期最简单的信息系统。该系统适用于单机状态,一般情况针对某一种单一的应用,由一个用户占用全部资源,不同用户之间不共享和交换数据。这种开发方式不适合综合管理系统的开发。

C/S体系结构

C/S(Client/Server)结构,即客户机和服务器结构。

客户端包括一个或多个用户在电脑上运行程序。服务器端有两种:一种是数据库服务器,客户端通过数据库连接访问服务器端的数据;另一种是Socket服务器端,服务器端的程序通过Socket跟客户端通信。

C/S架构也可以看做胖客户端架构。因为客户端需要实现绝大多数的业务逻辑和用户界面展示。这种架构中,作为客户端部分需要承受很大的压力,因为显示逻辑跟事务处理都包含其中,通过与数据库的交互(通常是SQL或存储过程的实现)来达到持久化数据,以此满足实际项目的需要。

B/S体系结构

B/S架构的全称为Browser/Server,即浏览器/服务器结构。

Browser指的是Web浏览器,极少数事务逻辑在前端实现,但主要事务逻辑在服务器端实现,Browser客户端,WebApp服务器端和DB端构成所谓的三层架构。B/S架构的系统无须特别安装,只有Web浏览器即可。

 B/S架构中,显示逻辑交给了Web浏览器,事务处理逻辑在放在了WebApp上,这样就避免了庞大的胖客户端,减少了客户端的压力。因为客户端包含的逻辑很少,因此也被成为瘦客户端。

P2P体系结构

P2P(P to P)体系结构,即对等网络结构。P2P体系结构取消了服务器的中心地位,各个系统内计算机可以通过交换直接共享计算机资源和服务。在这种体系结构中,计算机可对其他计算机的要求进行响应,请求响应范围和方式都根据具体应用程序不同而有不同的选择。目前对等网络模式有纯P2P模式、集中模式及混合模式,是迅速发展的一种新型网络结构模式。

综上所述:

(1)C/S架构优缺点

优点:

1.C/S架构的界面和操作可以很丰富。

2.安全性能可以很容易保证,实现多层认证也不难。

3.由于只有一层交互,因此响应速度较快。

缺点:

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

2.用户群固定。由于程序需要安装才可使用,因此不适合面向一些不可知的用户。

3.维护成本高,发生一次升级,则所有客户端的程序都需要改变。

(2)B/S架构优缺点

优点:

1)客户端无需安装,有Web浏览器即可。

2)BS架构可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强。

3)BS架构无需升级多个客户端,升级服务器即可。

缺点:

1)在跨浏览器上,BS架构不尽如人意。

2)表现要达到CS程序的程度需要花费不少精力。

3)在速度和安全性上需要花费巨大的设计成本,这是BS架构的最大问题。

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

 

纵:

现代社会的软件开发体系结构简单概括就是N层体系结构,这里的N大于等于1。换而言之就是:单机体系(N=1)、Client/Server结构体系(N=2)、多层体系结构(N>2)。

摘要: 

(1)简单说client直接访问DBserver为两层结构。

        client通过中间件等应用服务器访问DBserver为三层结构。

        三层结构比两层结构安全。
 (2)可以这样理解:客户端程序访问服务器的结构叫两层结构。中间加一个事务逻辑处理封装的中间件作为沟通就是三层结构,这样可以均衡数据负载! 

 

首先必须强调的是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系统。

C/S结构

根据两层结构体系的概念来分解C/S结构的话,可以将他分为表现层(也叫表达层)和数据层。数据层提供数据存放的载体,而表现层则通过一定技术将数据层中数据取出,进行一定的分析并以某一种格式向用户进行显示。在两层体系结构中,表现层对数据库进行直接操作,且大部分的商业处理逻辑(Business   Logic,数据之间的关系规则)也在表现层中实现。

三层体系结构

三层体系结构是N层体系结构的典型,所谓的三层体系结构就是将原来在两层体系结构中的商业逻辑部分从数据层和表现层中提炼出来,形成中间件服务器,所以三层就是:表现层、商业逻辑层(Business   Logic)、数据层。

在此之外,还有一种系统结构就是分布式系统。在分布式系统中,其介于客户端和数据端之间的仅仅是一个应用服务器,它管理客户端的软件,但不做性能调整,比如每一个客户端调用时均产生一个新的数据库连接,而不能够将连接保持形成一个连接缓冲池。虽然在分布式应用中已经结合了一些商业处理逻辑,但是并没有真正改变原来的C/S体系结构。

 在三层体系结构中,表现层将主要提供与客户的交互功能,数据层提供系统中的所有的数据保存载体,而商业逻辑层将整个系统中的商业处理逻辑整和在一起,形成中间件,在三层中。中间件起了承前启后的作用,表现层将客户端的请求通过IDL调用中间件,中间件在将其转化成数据处理原则,并从数据库中获得相应的数据,返回给客户端的软件,转换成客户要求的方式显示。

综上所述:

以上简单的介绍了C/S结构和三层体系结构,有关的优点已经昭然若揭,为了更好的让您了解两者的区别,我们将两者进行一些比较。   

C/S结构的缺点:   

缺乏有效的集权控制:在众多的C/S软件中我们不难看出,所有的构件不能够在一个地点(如一台机器)进行统一的管理,而不得不将他们分化在各个CLIENT的应用中,使得维护和安全保密均很困难。   

缺乏安全性:在分散的计算机系统中,控制信息的访问安全是非常困难的,由于客户端经常需要对一些敏感的数据进行分析导致安全漏洞很容易发生。   

客户端工作量重:当将一个应用中的所有的商业逻辑全部在各个客户端来实现的时候,仅仅是使用桌面电脑的客户端资源将发生不堪负载的情况。   

软件的重用性差:由于C/S结构下的应用软件一般均是根据操作系统进行定制,且开发工具也是有一定的限定,一旦需要改变某一个要素的话,很可能只能重做,例如原来用C语言来开发,现在需要转向PB进行开发,那么,原来的所有工作都需要重新来过。   

随着应用的不断复杂,桌面电脑将需要不断的升级以适应系统的性能需求,甚至有时侯会完全超出桌面系统能够承受的限度。例如:诸如多线程和对称多重处理技术等先进操作系统的特性可能不能在标准桌面电脑系统中提供,不通过访问具有这些技术的服务器,客户端的桌面系统将可能永远不能获得这些新的技术的性能。   

针对这些问题,三层体系结构给予了很好的解决方案。   

在三层体系结构中,提供在客户端和服务器端进行应用功能的分割,系统通过应用将用户定义的界面系统从商业处理逻辑中分割出去。通过将商业处理逻辑集中在中间件服务器中,将能够减小客户端的工作量并使敏感数据访问控制变得简单。   

在三层结构中,客户端将与服务器端的数据变化隔离,简单的说,商业处理逻辑不受客户端的用户界面的改变而影响。三层体系中有一个非常重要的特性就是系统具有良好的组件重用性。

 

参阅资料

C/S架构--百度百科

B/S架构--百度百科

系统体系结构--百度百科

你可能感兴趣的:(@系统架构/设计模式/UML,@专业必备)