krttg 发表于 2006-3-22 10:04:32

C/S和B/S结构

现在学工科的,也得同编程、数据库打交道,呵呵。这是我对C/S和B/S的一点看法


系统采用哪种软件架构?根据客户端和服务器端的分工不同,可以具体的分为两层C/S(Client/Server)体系结构、三层C/S体系结构和B/S (Browser/Server)体系结构。下面分别对这几种架构进行简要的介绍和比较:

1.两层C/S体系结构

目前大多数MIS系统都使用两层体系结构来实现。这种体系结构将应用程序分成两部分:客户端应用程序和数据库服务器。在这种模式中,客户机上要安装专门的应用程序来操作后台数据库服务器中的数据,显示和交互、计算和接收处理数据的工作由客户端应用程序完成。数据的处理和维护工作由数据库服务器完成,而业务工作由客户端应用程序和数据库服务器共同承担。

相对于主机带终端的集中式结构,两层C/S体系结构中作为客户机的PC机一般性能比终端高,容易实现较丰富的图形显示和交互。同时,相对于文件服务器的PC局域网结构,两层C/S结构由于在网络上传送的是数据操作的请求和数据操作的结果,网络传输小,并且由于是数据库服务器负责数据操作,数据的安全性、完整性维护和开放性都较好。相对于其它C/S结构,两层结构使用时间较长,技术成熟,开发人员经验丰富,同时可供利用的开发工具和资源也较丰富。

两层 C/S结构的主要缺点是没有将业务处理单独独立出来,而是分布在各客户端和数据库服务器上,这就给各客户端上的软件的升级和维护带来不便。

2.三层C/S结构

三层 C/S结构是在两层结构基础上的扩展,它将业务处理的工作从数据库服务器和客户端独立出来,由新增加的应用服务器来完成,客户端只完成显示和交互的工作,数据库服务器只完成数据的处理和维护工作。

与两层C/S结构相比,由于业务处理集中在应用服务器上,大大地减轻了维护升级工作的复杂性,同时也简化了客户端的工作,解决了“胖客户机”的问题。但是,由于三层C/S结构在开发工具和资源方面,不如两层结构丰富。所以在选择体系结构时,应根据系统的开发周期、规模和开发人员等实际情况,对具体问题进行具体分析。

3.B/S体系结构

随着Internet的广泛应用,又出现了一种新的体系结构,即B/S结构。该结构本质上也是客户机/服务器,又称为“瘦客户机”模式,是三层C/S结构在Web上应用的特例。

B/S体系结构下的客户机只需要安装浏览器软件,如Windows2000内嵌的IE即可,无需开发前端应用程序,它负责实现显示和交互。中间层的Web服务器与应用服务器,如Microsoft公司的IIS和IBM的WebSphere等是连接前端客户机和后台数据库服务器的桥梁,其任务是运行一些组件,这些组件通常封装业务逻辑。当服务器接收到用户的请求时,调用相应的组件进行处理。处理包括与数据库服务器的数据交互和处理用户的请求,因此对中间层数据库服务器的要求较高。后台数据库服务器负责接受Web服务器对数据库操纵的请求,实现对数据库查询、修改和更新等功能。

该结构由于数据传输量一般较大,处理速度较慢。但是,这个问题可以利用其他技术改善,比如用JavaApplets技术实现远程数据显示。

通过对上述几种体系结构的比较和分析,结合项目对实时数据服务系统的实际,采用B/S架构。这是因为:

(1)该体系结构的技术先进并且成熟,本系统采用ASP.NET技术进行搭建软件系统。ASP.NET技术支持多种语言,并且有成熟的开发工具,如Visual Studio.net。并且可以选择多种Web服务器产品,如免费的Tomcat,这样可以缩短开发周期,系统花费也会减少。

(2)用户对于系统的可维护性要求高,将所有的应用程序放在中间层服务器上,便于集中管理、维护和升级。如果采用两层C/S结构进行升级,那么所有的客户端都要进行升级,由于地理位置的分布原因,维护和升级开销巨大。不便于系统地维护和快速升级。若采用B/S结构,客户端是“瘦客户”,客户端程序仅仅为浏览器,无需应用程序开发商进行维护,我们只需维护和升级中间层的系统,所以这符合用户对于系统的维护性的要求。

(3)将业务逻辑封装在中间层,客户机层只负责数据的显示和处理运算。业务逻辑和显示相分离,也就是数据处理和显示相分离,这样便于系统的开发和维护。用户在应用时,使用的业务逻辑会经常变化,比如,某个数据的结果是通过计算公式得来的,这个计算公式有可能发生变化,这样将这个计算逻辑封装在中间层后,对这个逻辑作相应的改变却不会影响到客户端。所以,系统的维护性能很好。同时,中间层的开发人员只需专注于业务逻辑的封装:用于显示的APLET程序或JSP的设计由善于用户界面设计的人员进行开发,这样便于开发的分工,能够加速系统的开发。
页: [1]
查看完整版本: C/S和B/S结构