什么是 N层结构

 N层结构 (n-tiers结构 ,多层式运行架构 )是相对于两层结构而言的。传统的C/S 计算多是基于两级模式 ,在这种模式中,所有的形式逻辑和业务逻辑均驻留在Client 端,而Server则成为数据库 服务器,负责各种数据的处理和维护。因此Server变得很“瘦”,被称为“瘦服务器 (Thin Server)”。与之相反,这种模式需要在客户端 运行庞大的应用程序 ,这就是所谓的“胖客户机 (Fat Client)”。

      N层架构 (n-tiers 结构,多层式运行架构)的四层是指Presentation Tier(表示层,就是直接呈现在用户面前的界面)、Web Server Tier(Web服务器层)、 Application Server Tier(应用服务器层)和 Data Tier(数据层).

  早期的网络系统设计常常采用三层结构。最常见的结构,就是表示( presentation )层 , 领域( domain )层 , 以及基础架构( infrastructure )层。

  n层结构的提出是为了适应当前B/S 模 式开发WEB Application的需要而提出的。传统的Brown模型是指:表示层( Presentation ),控制 / 中介层( Controller/Mediator ),领域层( Domain ) , 数据映射层( Data Mapping ) , 和数据源层 ( Data Source )。它其实就是在三层架构 中增加了两个中间层 。控制 / 中介层位于表示层和领域层之间,数据映射层位于领域层和基础架构层之间。

  J2EE 规范提出了自己的n-tiers结构。

下表是几种模型的对照

ISA Brown J2EE 层 对应程序部分
表示层 表示层 客户层 浏览器 HTML 页面, XSL, 手机客户端等
服务器表示层 JSP 及 ActionForm ,XML
  控制/中介层   Controller 控制器及 Action
领域层 领域层 业务层 Javabeans / SessionBean /Session Facade
  数据映射层 整合层 EntityBean / JDO / Hibernate / JDBC
数据层 数据源层 资源层 RDBMS 数据库

  J2EE的基本原则之一,是使得各个层的实现解除耦合或耦合最小化。最终实现可以任意的切换某个层的实现。

  例如,在数据映射层,可以采用EJB 的BMP,CMP,也可以采用Hibernate等O/RMapping,或者采用JDO。这由部署的环境来决定。

 

一、N层架构(n-tiers结构,多层式运行架构)存在的主要问题 

  
   首先,系统的可靠性有所降低。一个客户机/服务器系统是由各自独立开发、制造和管理的各种硬件和软件 的混合体,其内在的可靠性不如单一的、中央管理的大型机或小型机,出现问题时,很难立即获得技术支持和帮助。 
  
   其次,维护费用较高。尽管这种应用模式在某种程度上提高了生产效率,由于客户端需要安装庞大而复杂的应用程序,当网络用户的规模达到一定的数量之后,系统的维护量急剧增加,因而维护应用系统变得十分困难。 
  
   第三,系统资源的浪费。随着客户端的规模越来越大,对客户机资源的要求也越来越高。尽管硬件不断更新,但新的操作系统 和新的应用软件的不断出现,使得用户对硬件的更新仍然跟不上软件更新的速度。客户不得不在本地硬盘上装入大量的软件,但是使用的大都只是其中很少一部分(一般低于10%)。在一个拥有众多的“胖客户机”的环境中,这无疑是一种巨大的浪费。 
  
    最后,系统缺乏灵活性。由于逻辑同界面结合在一起,客户机/服务器需要对每一应用独立地开发应用程序,缺少重用性。但胖客户机的计算模式却仍然满足不了日 益增长的应用的需要。在向广域网扩充(如Internet)的过程中,由于信息量的迅速增大,专用的客户端已经无法满足多功能的需求 。网络计算模式从两层模式扩展到N层模式,并且结合动态计算,解决了这一问题。 
  
    N层架构的核心是提供可规模化特性,一方面是从服务负载上可规模化,能同时为极大规模的用户同时提供服务;另一方面是服务功能上的可规模化,可形成极大规 模的软件群系统,各分系统可以共享信息、服务,形成企业级的信息高速公路。 N层可以分别放在各自不同的硬件系统上的,所以灵活性很高,能够适应客户机数目的增加和处理负荷的变动。例如,在追加新业务处理时,可以相应增加装载功能 层的服务器。因此,系统规模越大这种形态的优点就越显著。

二、N层架构(n-tiers结构,多层式运行架构)的主要优点

      另外,N层结构从逻辑上相互独立,某一层的变动通常不影响其它层,具有很高的可重用性。除此以外,n层结构还有以下优点:
  
   1、利用单一的访问点,可以在任何地方访问站点的数据库; 
  
   2、对于各种信息源,不论是文本还是图形都采用相同的界面; 
  
   3、所有的信息,不论其基于的平台,都可以用相同的界面访问; 
  
   4、可跨平台操作; 
  
   5、减少整个系统的成本; 
  
   6、维护升级十分方便; 
  
   7、具有良好的开放性; 
  
   8、进行严密的安全管理; 
  
   9、系统管理 简单,可支持异种数据库,有很高的可用性
  
   界面层负责:
   收集信息
   将信息发送到逻辑层做处理
   逻辑层接收处理结果
   将结果显示
   ......
  
   逻辑层负责:
   接收界面输入
   与数据层交互执行已设计的业务
   操作(业务逻辑,系统服务等)
   将处理结果发送到界面层。
   ......
  
   数据层负责:
   数据存储
   数据获取
   数据维护
   数据完整性
 

本文原文地址:https://blog.csdn.net/antswallow/article/details/5903493

你可能感兴趣的:(架构设计)