三层结构与C/S结构相比,优势是什么?

UJin 2004-09-14 03:14:14
如题
...全文
1303 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
海天候 2004-09-20
  • 打赏
  • 举报
回复
性能,只为性能
zdq801104 2004-09-20
  • 打赏
  • 举报
回复
3层是瘦客户端模式,它的数据处理主要由中间应用程序服务器来完成,有好的地方也有不好的地方,看需要吧,我觉得做中小系统用C/S就行,大型系统用三层吧
mengjj 2004-09-14
  • 打赏
  • 举报
回复
3層要多個服務器﹐3層容易update
pengocn 2004-09-14
  • 打赏
  • 举报
回复
还有没有啊!学习……
IwantFlay 2004-09-14
  • 打赏
  • 举报
回复
c/s没有三层吗?
hc0007 2004-09-14
  • 打赏
  • 举报
回复
原文
http://www.cnw.com.cn/issues/2000/01/0107.asp

多层客户机/服务器结构分析
□华中理工大学电子科学与技术系 刘 卫 忠 徐 重 阳 蔷 薇

传统C/S计算模型分析
客户机/服务器系统比文件服务器系统能提供更高的性能,因为客户端和服务器端将应用的处理要求分开,同时又共同实现其处理要求,对客户端程序的请求实现“分布式应用处理”。服务器为多个客户端应用程序管理数据,而客户端程序发送、请求和分析从服务器接收的数据,这是一种“胖客户机 (Fat Client)”,“瘦服务器 (Thin Server)”的网络计算模式。
在一个客户机/服务器应用中,客户端应用程序是针对一个小的、特定的数据集,如一个表的行来进行操作的,而不是像文件服务器那样针对整个文件进行,对某一条记录进行封锁,而不是对整个文件进行封锁,因此保证了系统的并发性,并使网络上传输的数据量减到最少,从而改善了系统的性能。客户机/服务器模型的优点主要在于系统的客户端应用程序和服务器部件分别运行在不同的计算机上,系统中每台服务器都可以适合各部件的要求,这对于硬件和软件的变化显示出极大的适应性和灵活性,而且易于对系统进行扩充和缩小。在客户机/服务器模型中,系统中的功能部件充分隔离,客户端用程序的开发集中于数据的显示和分析,而数据库服务器的开发则集中于数据的管理,不必在每一个新的应用开发中都要对一个数据库进行编码。将大的应用处理任务分布到许多通用网络连接的低成本计算机上导致了费用的极大节约。

随着信息的全球化,区域的界限已经被打破,电子商务作为Internet的强大的驱动力,迫使客户机/服务器模式从局域网 (LAN) 向广域网 (WAN) 延伸。如今,Internet已经成为全球最大的网络互联环境,在Internet的环境下实现数据的客户机/服务器计算模型正是目前的流行趋势。在这种条件下产生的网络计算模式实际上是对传统的C/S计算模式的扩充,用公式表示为:

网络计算模式 = 多层C/S + 动态计算

多层C/S结构
两层与三层C/S结构的区别
应用程序从结构上一般分为四层:形式逻辑、业务逻辑、数据逻辑和数据存储。传统的C/S计算多是基于两级模式,如图1所示,在这种模式中,所有的形式逻辑和业务逻辑均驻留在Client端,而Server则成为数据库服务器,负责各种数据的处理和维护。因此Server变得很“瘦”,被称为“瘦服务器 (Thin Server)”。与之相反,这种模式需要在客户端运行庞大的应用程序,这就是所谓的“胖客户机 (Fat Client)”。其数据流图如图2所示。图2 两层C/S结构的一般处理流程

用公式表示为:

两层网络计算模式 = 多Client +单/多Database Server + 动态计算

随着C/S结构应用范围的不断扩大和计算机网络技术的发展,这种结构带来的问题日益明显,主要表现在以下几方面:

首先,系统的可靠性有所降低。一个客户机/服务器系统是由各自独立开发、制造和管理的各种硬件和软件的混合体,其内在的可靠性不如单一的、中央管理的大型机或小型机,出现问题时,很难立即获得技术支持和帮助。

其次,维护费用较高。尽管这种应用模式在某种程度上提高了生产效率,由于客户端需要安装庞大而复杂的应用程序,当网络用户的规模达到一定的数量之后,系统的维护量急剧增加,因而维护应用系统变得十分困难。

第三,系统资源的浪费。随着客户端的规模越来越大,对客户机资源的要求也越来越高。尽管硬件不断更新,但新的操作系统和新的应用软件的不断出现,使得用户对硬件的更新仍然跟不上软件更新的速度。客户不得不在本地硬盘上装入大量的软件,但是使用的大都只是其中很少一部分(一般低于10%)。在一个拥有众多的“胖客户机”的环境中,这无疑是一种巨大的浪费。

最后,系统缺乏灵活性。客户机/服务器需要对每一应用独立地开发应用程序,消耗了大量的资源,但胖客户机的计算模式却仍然满足不了日益增长的应用的需要。在向广域网扩充(如Internet)的过程中,由于信息量的迅速增大,专用的客户端已经无法满足多功能的需求。网络计算模式从两层模式扩展到N层模式,并且结合动态计算,解决了这一问题。

目前流行的三层网络计算模式,用公式表示为:

三层网络计算模式 = 多浏览器 + 单Web 服务器+多数据库服务器+ 动态计算

如图3所示,在三层模式中,Web服务器既作为一个浏览服务器,又作为一个应用服务器,在这个中间服务器中,可以将整个应用逻辑驻留其上,而只有表示层存在于客户机上。这种结构被称之为“瘦客户机”。这种结构中,无论是应用的HTML页还是Java Applet都是运行时刻动态下载的,只需随机地增加中间层的服务 (应用服务器),即可满足扩充系统的需要。由此我们可以用较少的资源建立起具有很强伸缩性的系统,这正是网络计算模式带来的重大改进。三层C/S模式的数据流图如图4所示。

三层C/S结构的实现

三层C/S结构是将应用功能分成表示层、功能层和数据层三部分。其解决方案是:对这三层进行明确分割,并在逻辑上使其独立。原来的数据层作为DBMS已经独立出来,所以关键是要将表示层和功能层分离成各自独立的程序,并且还要使这两层间的接口简洁明了。一般情况是只将表示层配置在客户机中,如图5(1)或图5(2)所示。如果象图5(3)所示的那样连功能层也放在客户机中,与二层C/S结构相比,其程序的可维护性要好得多,但是其他问题并未得到解决。客户机的负荷太重,其业务处理所需的数据要从服务器传给客户机,所以系统的性能容易变坏。

如果将功能层和数据层分别放在不同的服务器中,如图5所示,则服务器和服务器之间也要进行数据传送。但是,由于在这种形态中三层是分别放在各自不同的硬件系统上的,所以灵活性很高,能够适应客户机数目的增加和处理负荷的变动。例如,在追加新业务处理时,可以相应增加装载功能层的服务器。因此,系统规模越大这种形态的优点就越显著。

值得注意的是:三层C/S结构各层间的通信效率若不高,即使分配给各层的硬件能力很强,其作为整体来说也达不到所要求的性能。此外,设计时必须慎重考虑三层间的通信方法、通信频度及数据量。这和提高各层的独立性一样是三层C/S结构的关键问题。

在三层C/S中,表示层是应用的用户接口部分,它担负着用户与应用间的对话功能。它用于检查用户从键盘等输入的数据,显示应用输出的数据。为使用户能直观地进行操作,一般要使用图形用户接口 (GUI),操作简单、易学易用。在变更用户接口时,只需改写显示控制和数据检查程序,而不影响其他两层。检查的内容也只限于数据的形式和值的范围,不包括有关业务本身的处理逻辑。

功能层相当于应用的本体,它是将具体的业务处理逻辑地编入程序中。表示层和功能层之间的数据交往要尽可能简洁。

数据层就是DBMS,负责管理对数据库数据的读写。DBMS必须能迅速执行大量数据的更新和检索。现在的主流是关系数据库管理系统 (RDBMS)。因此一般从功能层传送到数据层的要求大都使用SQL语言。

在三层或N层C/S结构中,中间件 (Middleware) 是最重要的部件。所谓中间件是一个用API定义的软件层,是具有强大通信能力和良好可扩展性的分布式软件管理框架。它的功能是在客户机和服务器或者服务器和服务器之间传送数据,实现客户机群和服务器群之间的通信。其工作流程是:在客户机里的应用程序需要驻留网络上某个服务器的数据或服务时,搜索此数据的C/S应用程序需访问中间件系统。该系统将查找数据源或服务,并在发送应用程序请求后重新打包响应,将其传送回应用程序。随着网络计算模式的发展,中间件日益成为软件领域的新的热点。中间件在整个分布式系统中起数据总线的作用,各种异构系统通过中间件有机地结合成一个整体。每个C/S环境,从最小的LAN环境到超级网络环境,都使用某种形式的中间件。无论客户机何时给服务器发送请求,也无论它何时应用存取数据库文件,都有某种形式的中间件传递C/S链路,用以消除通信协议、数据库查询语言、应用逻辑与操作系统之间潜在的不兼容问题。

结论
和两层C/S结构相比,三层C/S结构具有更灵活的硬件系统构成,对于各个层可以选择与其处理负荷和处理特性相适应的硬件。合理地分割三层结构并使其独立,可以使系统的结构变得简单清晰,这样就提高了程序的可维护性。三层C/S结构中,应用的各层可以并行开发,各层也可以选择各自最适合的开发语言,有利于变更和维护应用技术规范。按层分割功能使各个程序的处理逻辑变得十分简单。一般而言,三层C/S结构的优势主要表现在以下几个方面:
利用单一的访问点,可以在任何地方访问站点的数据库;

对于各种信息源,不论是文本还是图形都采用相同的界面;

所有的信息,不论其基于的平台,都可以用相同的界面访问;

可跨平台操作;

减少整个系统的成本;

维护升级十分方便;

具有良好的开放性;

系统的可扩充性良好;

进行严密的安全管理;

系统管理简单,可支持异种数据库,有很高的可用性。

828

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧