数据库系统中C/S和B/S结构

来源:互联网 发布:三星gear2软件下载 编辑:程序博客网 时间:2024/04/28 19:34

数据库系统中C/SB/S结构

C/SB/S技术是当今软件开发中技术架构的两大主流技术,各有优缺点,实际上目前的实际应用中很多方面二者已经融合在一起了,并没有大的区分。本文主要介绍带有数据库应用的典型的C/SB/S结构的技术,当然这年头要找一个不带有数据库的应用的软件很难。Jhobby原创,转载请注明出处http://blog.csdn.net/jhobby

本文分三部分。第一介绍C/SB/S的定义,第二部分介绍它们的特点和工作原理,第三部分介绍了各自的优缺点,并进行了比较。

一、C/SB/S的定义

1、什么是C/S结构。C/SClient/Server)结构即客户端和服务器结构。这里的客户端从硬件上可以理解为客户机,从软件上可以理解为在客户机上安装的特定专用软件,便于理解本文以后提到的客户端均指在客户机上安装的特定专用软件。也就是说基于CS体系结构的软件需在客户机上安装特定的专用软件才能访问服务器,如腾讯QQ、网络游戏客户端等就是典型的基于CS体系结构的。

2、什么是B/S结构。B/SBrowser/Server)结构即浏览器和服务器结构。客户机不需要安装任何特定的软件,只需要有一个浏览器就可以就可以与服务器进行交互,。如很多采用ASPPHPJSP技术的网站就是典型的基于B/S体系结构的。

二、C/SB/S的特点和工作原理

1C/S结构的特点和工作原理

C/S结构的系统工作于网络环境中,可以将应用程序的任务合理分配到客户端和服务器端来实现,客户端可以发挥自身硬件的功能对数据进行一些处理后再提交给服务器,这样降低了系统的通讯开销和服务器的负担。同时因为基于C/S结构的开发是很具有针对性的,因此可以充分利用特定平台操作系统的功能,增加客户的许多个性化需求比如设计漂亮图形操作界面。

一次典型的C/S应用过程可如下描述:服务器程序被启动,打开特定端口随时等待响应客户端发来的请求,用户在自己的电脑上启动客户端,当用户需要对数据库中的数据进行任何操作时,客户端就自动地通过TCP/IP寻找服务器程序建立套接字连接,并向其发出请求,服务器程序根据事先双方预定的事务规则作出应答,并通过一些中间件进行处理数据处理,送回或接受结果,一次服务完成。

C/S结构根据发展情况可以分了文件服务器体系结构(已基本淘汰)、数据库服务器两层体系结构(目前很多应用基于此)、数据库服务器三层体系结构及N层体系结构(已相当于B/S结构了)。对于两层C/S结构,客户端负责显示逻辑,数据库服务器端负责存储逻辑,处理逻辑根据任务的分配的可以分为胖客户、瘦客户、分布式,要是客户端实现处理逻辑就是胖客户端系统,数据库服务器端实现处理逻辑就是瘦客户端系统,客户端、数据库服务器端各实现一部分处理逻辑就是分布式系统。对于三层的C/S结构,则在客户端、数据库服务器端中间专门加了一个应用服务器(不是WEB服务器)负责处理逻辑的实现。N层的C/S结构则除了加一个应用服务器,还加了一个WEB服务器帮助处理逻辑的实现,这样就实现了支持WEBC/S结构,这样的结构已经和B/S结构没有什么分别了。

需要提及一下的是C/S一般是点对点的结构模式,所以适用于局域网,事实上C/S结构的确是起源于局域网并发扬光大的,但C/S结构只适用于局域网的说法显然是不对的。

2B/S结构的特点和工作原理

B/S结构它是随着Intranet而兴起,并在Internet上得到了极大的应用,是对C/S结构的一种变化或者改进的结构,在很多方面已经取代了C/S。在这种结构下,用户工作界面是通过浏览器来实现,浏览器只负责发送接受数据,几乎不进行数据的处理,主要的任务在服务器端处理。

一次典型的B/S应用过程是浏览器接受用户的输入,以超文本形式向Web服务器提出访问数据库的要求,Web服务器接受客户端请求后,不能直接识别包含在脚本里的SQL查询,它通过一个WEB到数据库的中间件将进行识别,并交给数据库服务器,数据库服务器得到请求后,通过特定的DBMS进行数据处理,然后将处理后的结果通过中间件返回给Web服务器,Web服务器将得到的结果进行转化,变成HTML文档形式,转发给客户端浏览器,一次服务过程就完成了。有些小的公司Web服务器和数据库服务器是同一台机器。B/S结构能实现不同的人员,从不同的地点,以不同的接入方式访问和共享数据库。B/S结构采用点对多点、多点对多点这种开放的结构模式,非常适合互联网环境的应用。

C/SB/S结构的比较

1C/S结构的优缺点

1)、服务器处理任务相对较轻。

由于客户端分担了一部分功能,所以服务器处理任务相对来说减轻了一点,特别是胖客户端更是如此。因为服务器处理任务的轻重最主要的决定因素还是它所处理的数据量,所以说是处理任务相对减轻了。

2)、安全性问题。

如果是在局域网使用C/S结构,客户端是被专人,特定位置使用的话,那安全性还是可以得到保障;如果是在互联网使用,就必须保障客户端的安全,数据库服务器的安全和C/S通信的安全。比如一种常见的安全威胁是:对于通用软件,任何人都可以下载安装客户端,进而破解,从而建立与数据库服务器的非法连接,进行非法操作,这时候服务器端应该能够识别这种错误。遗憾的事,似乎这方面做的不够好,看满天飞的网游外挂就可以了解一般。

3系统开发、维护、升级和培训的成本高。

现在的软件系统越来越大,越来越复杂,系统的开发时间、开发成本直接影响企业的发展,C/S结构的系统需要仔细地把任务逻辑在客户端和服务器端进行合理的分配,并进行通讯,业务进行变化时又需重新设计,所以开发成本比较高。

C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,每台客户机需要安装专门的客户端,而且当系统升级时,每一台客户机需要重新安装客户端,其维护和升级成本非常高。对于特定的客户端有特定的功能和操作方式,所以客户的培训成本也不可忽视。

2B/S结构的优缺点

1)、服务器处理任务相对较重。

由于B/S结构的软件系统的绝大部分功能是在服务器端实现,全部用户提交数据的处理和储存都在服务器端的进行,所以服务器处理任务相对较重。这种情况的威胁是,一旦数据库服务器崩溃,所有数据将丢失,所以数据库的备份恢复必不可少。

2)、安全性问题。

因为绝大部分的基于B/S结构的系统是在Internet上运行,是一种开放式的结构,所以服务器端尽可能保证网络连接的安全、操作系统本身的安全、WEB服务器的安全和数据库服务器的安全。

目前来说客户端只有浏览器,而服务器端相对来说是不可见的,浏览器对自身的安全有一定保护规制,而且现在大部分服务器是采用相对安全的技术和专业人士维护,似乎比C/S结构更安全。

3)、系统开发、维护、升级和培训的成本低。

   B/S结构的系统一个极大优点就是维护和升级方式简单。由于B/S结构的固有特点,所以无论客户的规模有多大,系统都只需要在服务器端维护升级就可以了,所有的客户端只是浏览器,不需要做任何的维护。这样极大地减少了维护设计的费用和时间。还有一个好处是客户端只是一个浏览器,所以对客户只需要很少的培训就可以了。

通过对上面的分析可以看见C/SB/S结构各有千秋。显然,在企业应用中,不存在解决所有商业问题的最佳的C/SB/S结构,在设计某个实际的系统时,项目的负责人必须综合考虑多方面的问题。要对实际商业问题要有精确深入的分析,与客户进行有效的沟通,结合物理和本身的一些制约因素。综合考虑系统开发、维护和升级培训的费用,系统的可用性,开放性,易于扩展性及系统的集成性。目前比较多的应用模式一般是企业分为内部网,外部网。内部网基于C/S结构,可以灵活地进行企业内部数据的处理和办公自动化,快速进行针对性的数据处理。;外部网基于B/S结构,部门之间进行信息交流整合,实现信息的网上发布,能够为用户提供动态的信息和数据处理服务,加强了用户与企业及企业内部之间的信息交流,降低日常工作成本,提高企业经济效益和竞争力。

个人意见,欢迎各位网友批评指正。 

 

 
原创粉丝点击