`
5aijava
  • 浏览: 417549 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

三层C/S结构及其应用开发(转)

    博客分类:
  • J2SE
阅读更多

三层C/S结构及其应用开发

作者:不详 来源:不详 http://www.csai.cn  2004年5月1日
一、三层C/S的基本硬件结构
  传统的二层C/S结构存在以下几个局限:1它是单一服务器且以局域网为中心的,所以难以扩展至大型企业广域网或Internet;2受限于供应商;3软、硬件的组合及集成能力有限;4难以管理大量的客户机。因此,三层C/S结构应运而生。
  三层C/S结构是将应用功能分成表示层、功能层和数据层三部分。其解决方案是:对这三层进行明确分割,并在逻辑上使其独立。原来的数据层作为DBMS已经独立出来,所以关键是要将表示层和功能层分离成各自独立的程序,并且还要使这两层间的接口简洁明了。
  将上述三层功能装载到硬件的方法基本上有三种(如图1所示)。其中表示层配置在客户机中,而数据层配置在服务器中。


  
一般情况是只将表示层配置在客户机中,如图1(1)或图1(2)所示。如果像图1(3)所示的那样连功能层也放在客户机中,与二层C/S结构相比,其程序的可维护性要好得多,但是
其他问题并未得到解决。客户机的负荷太重,其业务处理所需的数据要从服务器传给客户机,所以系统的性能容易变坏。
  如果将功能层和数据层分别放在不同的服务器中(如图1(2)所示),则服务器和服务器之间也要进行数据传送。但是,由于在这种形态中三层是分别放在各自不同的硬件系统上
的,所以灵活性很高,能够适应客户机数目的增加和处理负荷的变动。例如,在追加新业务处理时,可以相应增加装载功能层的服务器。因此,系统规模越大这种形态的优点就越显著。
值得注意的是:三层C/S结构各层间的通信效率若不高,即使分配给各层的硬件能力很强,其作为整体来说也达不到所要求的性能。此外,设计时必须慎重考虑三层间的通信方法、通信频度及数据量。这和提高各层的独立性一样是三层C/S结构的关键问题。
二、三层C/S的功能
1. 表示层
  表示层是应用的用户接口部分,它担负着用户与应用间的对话功能。它用于检查用户从键盘等输入的数据,显示应用输出的数据。为使用户能直观地进行操作,一般要使用图形用户接口(GUI),操作简单、易学易用。在变更用户接口时,只需改写显示控制和数据检查程序,而不影响其他两层。检查的内容也只限于数据的形式和值的范围,不包括有关业务本身的处理逻辑。
图形界面的结构是不固定的,这便于以后能灵活地进行变更。例如,在一个窗口中不是放入几个功能,而是按功能分割窗口,以便使每个窗口的功能简洁单纯。在这层的程序开发中主要是使用可视化编程工具。
2. 功能层
  功能层相当于应用的本体,它是将具体的业务处理逻辑地编入程序中。例如,在制作订购合同的时要计算合同金额,按照定好的格式配置数据、打印订购合同,而处理所需的数据则要从表示层或数据层取得。表示层和功能层之间的数据交往要尽可能简洁。例如,用户检索数据时,要设法将有关检索要求的信息一次传送给功能层(参见图2),而由功能层处理过的检索结果数据也一次传送给表示层。在应用设计中,一定要避免"进行一次业务处理,在表示层和功能层间进行多几次数据交换"的笨拙设计。
通常,在功能层中包含有:确认用户对应用和数据库存取权限的功能以及记录系统处理日志的功能。这层的程序多半是用可视化编程工具开发的,也有使用COBOL和C语言的。
3. 数据层
  数据层就是DBMS,负责管理对数据库数据的读写。DBMS必须能迅速执行大量数据的更新和检索。现在的主流是关系数据库管理系统(RDBMS)。因此,一般从功能层传送到数据层的要求大都使用SQL语言。
三、三层C/S结构的优点
1. 具有灵活的硬件系统构成
  对于各个层可以选择与其处理负荷和处理特性相适应的硬件。这是一个与系统可缩放性直接相关的问题。例如,最初用一台Unix工作站作为服务器,将数据层和功能层都配置在这台服务器上。随着业务的发展,用户数和数据量逐渐增加,这时就可以将Unix工作站作为功能层的专用服务器,另外追加一台专用于数据层的服务器。若业务进一步扩大,用户数进一步增加,则可以继续增加功能层的服务器数目,用以分割数据库。清晰、合理地分割三层结构并使其独立,可以使系统构成的变更非常简单。因此,被分成三层的应用基本上不需要修正。
2. 提高程序的可维护性
  三层C/S结构中,应用的各层可以并行开发,各层也可以选择各自最适合的开发语言。
3. 利于变更和维护应用技术规范
  因为是按层分割功能,所以各个程序的处理逻辑变得十分简单。
4. 进行严密的安全管理
  越关键的应用,用户的识别和存取权限设定愈重要。在三层C/S结构中,识别用户的机构是按层来构筑的,对应用和数据的存取权限也可以按层进行设定。例如,即使外部的入侵者突破了表示层的安全防线,若在功能层中备有另外的安全机构,系统也可以阻止入侵者进入其他部分。
  此外,系统管理简单,可支持异种数据库,有很高的可用性。
四、三层C/S应用的开发
  三层C/S应用的开发必须遵从以下原则:保护已有投资;降低应用系统的风险; 满足当前的迫切需要;考虑未来的发展规划。
  开发出的三层C/S应用系统必须是:功能丰富且具有高可用性;功能要能跨应用系统;系统要能跨平台运行。
  美国BEA系统有限公司产品计划和战略副总裁Jeri Edwards女士,按下述三种三层C/S应用系统的典型开发类型,分别举例介绍了他们的开发目标、开发过程、开发成果及经验体会。新建应用系统类型(Greenfield),如英国劳工局的劳动力市场系统;提升已有系统性能类型(Turbocharger),如Apple公司的AppleOrder Global系统;综合集成已有系统类型(Integrator),如AT&T的Zenith应用系统。Jeri Edwards女士根据三层C/S应用系统的开发经验和教训,总结出了实现C/S应用系统的"黄金10原则" :
  (1) 尽量简化项目,使项目易于管理。应尽快建起一个初始系统,并尽早投入运行。当项目规模较大时,可以将其分割成由更小开发组担负的子项目。
  (2) 要把精力花在设计上。首先要彻底弄清"需求" ,然后建立一个原型,以便测试设计中的"薄弱"环节。后来增加的特性或部件要保证与系统结构兼容。
  (3) 要奉行"拿来主义"。近来,可供选购的市售C/S产品很多,要坚持"能买就买,为我所用"的原则。必要时,买来后可对系统加以修改,其中既包括基础部件也包括应用。
  (4) 严格遵守业界标准。
  (5) 采用TP监控器或对象事务处理管理器 (Object Transaction Manager ,OTM)。
  (6) 要循序渐进。及时得到用户的反馈;保证项目各部分的良好衔接;及早解决接口问题,以保证项目进展协调;坚持"边分析,边设计;边编码,边测试"的原则。
  (7) 在应用开发过程中,不可忽视系统管理。
  (8) 反复测试,包括用户信任测试、基准测试、系统测试、性能测试、系统集成测试、坚固性测试、服务交付测试等。
  (9) 制定合理的工程进度。
  (10) 制定完善的系统拓展计划,包括用户的培训和技术支持、高效的硬软件装载、已有数据和系统的平滑迁移。
五、三层C/S应用中的核心
  每个C/S环境,从最小的LAN环境到超级网络环境,都使用某种形式的中间件。实际上,无论客户机何时给服务器发送请求,也无论它何时应用存取数据库文件,都有某种形式的中间件传递C/S链路,用以消除通信协议、数据库查询语言、应用逻辑与操作系统之间潜在的不兼容问题。中间件是C/S环境中最重要的部件。所谓中间件是一个用API定义的软件层,是具有强大通信能力和良好可扩展性的分布式软件管理框架。它的功能是在客户机和服务器或者服务器和服务器之间传送高级通信,将客户机群和服务器群有机地"粘合"起来。其工作流程是:在客户机里的应用程序需要驻留网络上某个服务器的数据或服务时,搜索此数据的C/S应用程序需访问中间件系统,该系统将查找数据源或服务,并在发送应用程序请求后重新打包响应,将其传送回应用程序。
  TP监控器在中间件技术中扮演着越来越重要的角色,特别是在三层C/S系统中。据Standish Group的调查,TP监控器是近两年信息业界最热门的技术之一。1996年有57%的关键应用是构筑在TP监控器上的。TP监控器擅长提供事务性语义,允许就环境速度和可靠性进行编程。作为一种中间件,TP监控器提供一种用于编写分布式应用程序的API,它通常包含一组强大的管理工具。TP监控器是一个高性能、高并行性、多用户的快速响应软件运行环境,它能有效地管理大量的并发任务,进而提高系统资源的利用率。如果采用TP监控器,系统总投资可节约30%以上,开发周期可缩短40%~50%。大多数投入应用的三层应用系统都配备有一套事务处理监控系统,BEA TUXEDO是目前应用最广泛的事务处理监控系统。
  BEA TUXEDO是用于分布计算的中间件基础结构,它使开放式应用系统具有高可缩放性、高灵活性和高可维护性。它不仅具有分布式交易处理和应用间报文通信的功能,而且具有一系列极其完善的服务,可帮助企业建立和运行应用系统,使开发人员能够建立跨越多个平台、数据库和操作系统的应用程序。这样,可以灵活选配操作平台以充分适应应用环境。它具有以下特点:
  1、支持多种软硬件平台。完全符合Open Group的X/Open标准,支持TCP/IP协议,支持包括Unix、Windows NT、AS/400和大型机专用系统在内的70多个硬件平台和操作系统。
  2、结构开放、灵活。模块结构以高级程序接口ATMI(Application-to-Transaction Manager Interface)为中心,有丰富的ATMI函数可供调用。
  3、开放的联机事务处理。可提供诸如事务性语义、透明的二段式提交、事务记录及分布事务处理管理结构等功能。
  4、与DCE的结合。通过一套工具和程序库,实现了与Open Group组织的分布计算环境DCE的有机结合。
  5、功能丰富,包括:应用管理;事件代理;通过鉴别服务、授权服务和数据加密服务,为客户提供安全保证;对COBOL语言的支持;应用动态调节、负载平衡等保证高可靠性的功能等。
六、三层C/S结构的应用现状
  目前,用三层C/S结构开发的应用还不太多,但其数量的确在逐日增加。图3显示了北美运行的应用开发形态。三层C/S型应用的比例1995年占5%,1997年增加到7.8%,预计到1999年将占22.9%。二层C/S型应用和在原有系统上附加GUI型的应用,是被定位为向三层C/S型转化的过
度形态。就当前来说,这种形态的比例要比三层C/S高,且要持续一段时间。那么,什么情况下应采用三层C/S呢?据Gartner Group的调查表明,具有下述特点的应
用应考虑采用三层C/S。
  1、应用的服务或种类超过50个;
  2、应用是用不同语言编写的;
  3、两个以上的异构数据源,如2个不同的DBMS或1个DBMS和1个文件系统;
  4、应用的生命周期超过3年;
  5、高工作负荷,例如每天超过5万个事务处理或在同一系统访问同一数据库的并发用户数超过300个;
  6、有至关重要的应用内部通信,包括像电子数据交换(EDI)这类企业的内部通信。
  从传统的主机/终端型应用到三层C/S化,要考虑时间和费用问题,有的场合还不适合,需要循序渐进。

分享到:
评论

相关推荐

    用UML和RationalRose实现面向对象的三层C_S结构设计

    三层C/S结构设计指的是将应用程序划分为三个主要层次:用户界面层、业务逻辑层(或事务处理层)和数据访问层(或数据层)。这种结构的主要优点包括: 1. **清晰的分层结构**:每一层都有明确的职责划分,有利于模块...

    本文对几种经典的软件体系结构风格进行了具体的阐述,分析了各种风格的特点、优缺点,最后重点介绍了三层C/S软件体系结构。

    3. **三层C/S软件体系结构** 为了解决C/S架构的局限性,三层C/S架构应运而生。这种结构将软件分为表现层(用户界面)、业务逻辑层和数据访问层,提高了系统的灵活性和可扩展性。表现层负责用户交互,业务逻辑层处理...

    三层架构工作流程图B/S架构及C/S架构

    三层架构是一种常见的软件设计模式,尤其在B/S(Browser/Server)和C/S(Client/Server)架构中广泛应用。这种架构将应用分为三个主要部分:表现层(Presentation Layer)、业务逻辑层(Business Logic Layer)和...

    基于三层C_S结构MIS的权限设计

    #### 两层C/S结构及其局限性 传统的两层C/S(Client/Server)结构,在早期的计算机应用开发中占据主导地位,但随着业务需求的增长和技术的进步,其局限性日益明显。两层结构主要由客户端(Client)和服务器(Server)组成...

    C/S、B/S、分层、多层架构参考

    多层架构则是在三层架构的基础上,进一步细分子系统或组件,形成更复杂的层次结构。例如,业务逻辑层可能进一步分为多个子服务,每个子服务专注于特定的业务功能。这样可以更好地实现职责分离,提高系统的可重用性...

    三层C/S架构在城市地质环境信息系统中的应用-以浙江省义乌市城市地质环境信息系统为例 (2007年)

    从体系结构的角度,分析了传统C/S结构、B/S结构和三层C/S结构的特点及优缺点,进一步阐述了利用三层C/S结构进行城市地质信息系统开发的必要性和优越性。详细介绍了三层C/S结构的3个层次:数据层、业务逻辑层和用户...

    学生-教师系统B/S和C/S双开发

    B/S系统,也称为三层架构,由用户界面、业务逻辑层和数据访问层构成。用户通过浏览器进行交互,无需安装任何客户端软件,降低了用户的使用门槛。在这种模式下,Java作为后端开发语言,能够提供强大的跨平台能力,...

    利用Interbase在C++Builder中开发C/S数据库应用程序

    ### 利用Interbase在C++Builder中开发C/S数据库应用程序 #### 一、历史及性能简述 InterBase是一款高性能的企业级关系型数据库管理系统,最初由Borland公司在1985年发布。经过多年的迭代发展,InterBase 6.0已经...

    软件体系结构 个人通讯录管理系统.docx

    我们将设计并实现一个基于二层C/S结构的个人通讯录管理系统,包括数据库设计、数据层设计、业务逻辑层设计和客户机设计。 三、实验步骤 1. 数据库设计 在SQL Server 2000中建立数据库Contact,建立表friend,包括...

    浅谈如何建立三层体系结构的ASP_NET应用程序

    本文将深入探讨三层结构的概念及其在ASP.NET应用程序中的具体实施过程。通过分析一个实际的例子,我们将详细讲解如何利用ASP.NET构建三层结构的应用程序,特别关注于业务逻辑层中自定义类(组件)的设计与应用。 ##...

    基于B/S 模式的PACS 的研究与实现

    基于B/S模式的PACS系统采用了三层架构设计,分别为前端(客户端)、中间层以及后台系统。 - **前端**:即客户端,主要通过浏览器访问服务器端提供的JSP或Java Applet来实现用户界面。这种方式简化了客户端的配置和...

    B-S结构与C-S结构的EJB编写实例代码

    在这个"B-S结构与C-S结构的EJB编写实例代码"中,我们将深入探讨这两种架构及其在EJB中的实现。 首先,B/S结构是一种基于Web的架构,用户通过浏览器访问服务器端的应用程序。在这种模式下,客户端(浏览器)只需要...

    系统体系结构设计PPT学习教案.pptx

    【系统体系结构设计】...例如,小型管理信息系统可能采用两层C/S结构,而大型分布式系统则可能采用三层C/S或B/S结构。在不同的体系结构中,数据的处理方式、连接机制以及客户端和服务器端的操作系统选择也会有所不同。

    Linux蓝牙协议栈OpenBT及其应用程序开发.pdf

    Linux 蓝牙协议栈 OpenBT 及其应用程序开发 Linux 蓝牙协议栈 OpenBT 是一种基于 Linux 操作系统的蓝牙协议栈,它可以运行于 X86、ARM、MIPS、PowerPC 等硬件平台,并且支持 Java语言。OpenBT 被认为是在性价比上...

    毕业设计-JAVA网络通信系统的研究与开发(论文+源代码+开题报告)

    系统采用客户机/服务器(C/S)的模式设计,是一个三层C/S结构,数据库服务器、应用程序服务器端、应用程序客户端,按照此设计思想,系统采用C/S结构,可以将任务合理分配到客户机端和服务器端 ,从而降低了系统的...

    基于C# C S结构的仓库管理系统的设计与实现 毕业设计全套

    《基于C# C/S结构的仓库管理系统的设计与实现》是一份深入探讨计算机科学与技术在实际业务场景中应用的毕业设计。此系统采用C/S(客户端/服务器)架构,是现代企业管理中的一个重要工具,尤其在仓储物流领域。下面将...

    架构样式与框架PPT学习教案.pptx

    因此,三层C/S结构应运而生,将应用分为表示层、业务层和数据层,增强了系统的可维护性和安全性。 在软件开发中,选择合适的架构样式和框架至关重要,它们可以帮助设计师有效地组织代码,提高系统的可扩展性、可...

    8物流信息管理系统的网络开发环境.pptx

    B/S模式是一种基于Web技术的新型MIS系统模型,它将传统C/S模式中的服务器部分拆分为数据服务器和应用服务器(Web服务器),形成三层结构的客户端-应用服务器-数据库服务器体系。这种方式极大地简化了客户端,用户只...

Global site tag (gtag.js) - Google Analytics