C/SB/S体系架构研究
2009-07-07齐爱朋
齐爱朋
[摘要]C/S和B/S是当今世界开发模式技术架构的两大主流技术,C/S交互性强且具有安全的存取模式,但当客户端数目激增时,应用维护极困难。B/S采用三层结构,便于开发网络应用软件。
[关键词]架构C/S模式B/S模式
中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)1120055-01
架构的思想萌芽自1968年Dijkstra的工作。架构设计出现的背景是:需要进行超越算法和数据结构一级的设计,以适应软件规模和复杂性的增长。
C/S和B/S是当今世界开发模式技术架构的两大主流技术,C/S是美国Borland公司最早研发的、基于客户机/服务器的模式;B/S是美国微软公司研发的、基于浏览器/服务器的模式。目前,这两项技术已被世界各国所掌握,国内公司所开发出的很多产品都是基于C/S和B/S技术的。
一般一个典型的应用可以分为四个部分:表示逻辑、事务逻辑、业务逻辑和数据逻辑。C/S两层体系结构就是把表示逻辑放在客户端,把数据逻辑和事务逻辑放在服务器端,而业务逻辑视情况而定。从物理结构上来说,C/S两层体系结构的前端是客户机,负责接受用户的请求,并向数据库服务器提出请求;后端是服务器,负责将数据提交给客户端,客户端将数据进行计算并将结果呈现给用户。服务器还要提供完善的安全保护及对数据的完整性处理等操作,并允许多个客户同时访问同一个数据库。
过去,C/S两层体系结构在应用系统开发中得到了广泛的应用。其优点是:技术上成熟,交互性强且具有安全的存取模式,网络通信量低、响应速度快、便于处理大量数据。但是同时它也有缺点:当客户端数目激增时,服务器端的性能会因为负载过重而大大降低;客户端和服务器端耦合度太高,维护和管理的难度较大;每台客户机都需要安装相应的客户端程序,给应用维护和升级带来了极大的不便;大量的数据传输增加了网络的负载。
为了解决以上存在的问题,人们将业务逻辑层提取出来作为单独的中间层。该中间层为所有用户共享,作为整个系统的核心,提供的功能主要有:负责客户机与服务器、服务器与服务器间的连接和通信;实现应用与数据库的高效连接;提供一个多层结构应用的开发、运行、部署和管理的平台,具有事务处理、安全控制以及为满足不同数量客户机的请求而进行性能调整的能力。这样,就使传统的二层C/S结构演变成三层C/S结构,在层与层之间相互独立,任何一层的改变不会影响其它层的功能,从而极大地降低了客户端和服务器的耦合度;也使客户端的工作量减少,开发和管理工作向服务器转移,使得分布式数据处理成为可能。三层结构相对二层结构来说,无论是从理论上还是实践上都使应用者向前迈进了一大步。但是三层结构也有其缺点:一是计算能力过于分散,客户端的维护费用随着客户端的增加而递增;二是对数据库的资源使用限制在局域网范围内,无法使用Internet资源。针对C/S结构的缺陷,B/S应运而生。
Internet/Intranet采用的B/S计算模型并不是一种全新的架构模型,其实质是一种扩展了的C/S模型。对于典型的三层应用系统来说,通常可以把系统分成三个层次:数据层、表示层和业务逻辑层,如图1所示。在这三个层次中,系统的主要功能和业务逻辑在业务逻辑层进行处理,主要处理以下几个方面的问题:
1.数据的表示方式,也就是实体类的表示方式,以及同数据库的对应关系,即所谓的O-R Map的问题。
2. 数据的存取方式,也就是实体类的持久化问题,通常采用数据库来永久存储数据实体,这就需要解决同数据库的交互问题。
3.业务逻辑的组织方式。在面向对象的系统中,业务逻辑是通过对象间的消息传递来实现的。在这个部分,为了保证逻辑处理的正确性和可靠性,还必须支持事务处理的能力。
4.业务服务的提供方式。为了保证系统的灵活性和封装性,系统必须有一个层来封装这些业务逻辑,向客户端提供服务,同时作为系统各个模块间功能调用的接口,保证系统的高内聚和低耦合性。这里的客户指的不是操作的用户,而是调用的界面、其他程序等。Web层通常只同这个部分交互,而不是直接调用业务逻辑层或者数据实体的功能。
将系统划分成多层的好处是:能够使得系统的架构更加清晰,从而每个层次完成的功能比较单一,而简单功能的代码是有规律可循的,这意味着我们可以开发一些工具来生成这些代码。
图1表示的意思可以这样理解,Web客户端(表示层)与Web服务器或应用服务器(业务逻辑层)之间通过HTTP协议进行通信,WEB服务器或应用服务器将数据请求发送至数据层,数据层将处理后的数据返回至业务逻辑层,再从业务逻辑层返回至用户表示层。
B/S的三层架构体系相对于C/S架构来说,最大的改变是其数据通信完全是基于互联网的,客户端只需要有浏览器就可以使用系统,不再需要进行客户端的安装部署,且用户的界面具有一致性,易于学习与操作,降低了培训成本。另外,由于开发环境独立于用户的前台应用环境,从而提高了系统应用的跨平台性,也便于系统的扩展、管理和升级等。
可将B/S三层体系结构的优点归纳如下:
1.瘦客户端结构。客户端只需要安装浏览器,系统扩展容易,所有开发均集中在服务器端;
2. 具有开放性和可跨平台性,很容易与互联网资源进行连接。
但是B/S也有其缺点:由于其采用点对点、多点对多点的开放式结构模式,并采用TCP/IP开放性协议,因此其安全性无法和适用于局域网的网络协议相比,需要靠信息加密和身份验证来保证,为了进一步增强系统的安全性,有时还需要构筑防火墙。
综上所述,B/S与C/S这两种技术架构在各自的领域各有利弊长短,但由于当前信息系统应用的重点逐渐向INTERNET领域靠近,且该领域B/S多层体系结构又是主流的开发模式,该种开发模式又具有分布性强、维护方便、开发简单、共享性强、总体拥有成本低等优点。因此,在本文所讨论的通用系统开发模型的体系架构选型时,选择了基于B/S架构模式来作为开发模型的架构体系。
参考文献:
[1]孙亚民,开发.NET平台应用系统框架[EB/OL].赛迪网,2007-6-12.
[2]温昱,软件架构解读与架构师角色培养[J].希赛顾问-软件工程专刊,2007,3:59-60.