`
pterodactyl
  • 浏览: 748799 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

多层架构的Web开发框架模型

    博客分类:
  • java
阅读更多

摘要:在经典的J2EE四层体系结构的基础上增加数据持久层,提出了基于J2EE五层体系结构的Web开发框架;分析了基于Struts框架的J2EE架构中实现对象持久性的局限性,从中分离出对象持久层,并将Hibernate这个面向对象的轻量级对象持久性技术集成到该架构中;应用DAO设计模式在业务逻辑层与持久层之间设计了多源数据访问组件,抽象和封装了对不同数据源的数据访问操作,实现对不同类型、结构、环境、用法的异构数据库的统一访问。
  关键词: J2EE; 模型—视图—控制器; Struts; Hibernate; 多源数据
  中图分类号:TP302.7文献标志码:A
  文章编号:1001-3695(2008)05-1429-03
  
  1多层架构的Web开发框架模型
  
  1.1J2EE五层体系结构设计
  随着Web应用需要更复杂的表现和逻辑处理,J2EE提出了一种四层体系结构,如图1所示。该结构分为客户层、Web层、业务逻辑层、数据库层。应用的逻辑处理和表现相分离,使得系统具有更为逻辑流程清晰、功能代码复用性强、分布式部署的特点。但是在大多数的实际项目应用中,数据层是关系型数据库,不能明确映射要实现的面向对象的机制,业务逻辑层与数据库交互的过程需要对数据库调用接口作进一步的封装,这在项目的开发和维护上会增加一定的复杂性和管理的难度。一种有效的解决方案是把业务信息按照功能模块拆分开:业务逻辑与数据库访问分开,用户界面与业务逻辑分开,彼此相对独立,任何一方的改变均不会影响对方,或者影响不大。因此本文提出在业务逻辑层与数据库层之间增加一个数据持久层,将四层体系扩展为如图2所示的五层体系,即客户层、Web层、业务逻辑层、数据持久层和数据库层。数据持久层位于数据库之上,隐藏数据读取和操纵中的所有数据访问代码细节,将客户应用程序与底层存储机制隔离开,完全抽象出开发应用程序时使用的数据物理细节。
  业务逻辑层与数据层之间增加一个数据持久层,实现对象与关系数据库之间的映射。利用这个映射框架的机制,对象与关系数据库之间的转换就可以透明地进行,而不用去关心数据库连接、并发性、事务等问题。业务逻辑层直接获取或存储的是清晰的对象,中间的转换过程交给映射框架来处理。
  
  在分层设计中,各层提供的接口是进行层间通信的基础,遵循的原则是实现严格的层间独立、分离,各层的实现细节不对外公开。分层设计图层间通信说明如下:
  a)客户端与表示逻辑层通过HTTP通信,即通过Http-Request和HttpResponse分别接收用户输入和返回执行结果给用户。
  b)表示逻辑层使用Struts框架技术实现,提供了接收/响应客户端请求、控制整个系统工作流程、通过调用action与业务逻辑层交互,以及格式化业务数据并动态生成Web页面等功能。
  c)业务逻辑层与持久层的交互则是JavaBean对Hibernate的调用,通过数据访问对象DAO进行调用。
  d)持久层与数据库的通信是完全由 Hibernate负责的,它将实体映射到数据库,对持久对象操作,并将缓存中的结果同步到数据库。
  1.2集成Struts框架与Hibernate框架实现MVC设计模式
  Struts作为基于模型—视图—控制器模式的应用架构,具有组件的模块化、灵活性和重用性的优点。但是Struts框架主要是针对表示层设计的,对于后端的业务逻辑层支持不是很强,在进行项目开发中存在以下局限:
  a)只能横向分工,按模块来划分工作,软件开发成本相应较高;
  b)需要花很多时间在数据层的包装以及不同模块之间进行协调和沟通,导致开发时间的增加;
  c)项目移植性相对较差,可能需要为不同数据库编写不同的SQL语句;
  d)项目扩展性相对较差,适应新的需求或变更时要修改数据库表结构、重新编写SQL语句、备份数据库等,对人员要求也相应较高;
  e)由于开发人员数据库操作水平参差不齐,开发经验也不尽相同,导致系统性能可能会相对较差。
  Hibernate是一个开放源代码的O/R mapping(对象/关系映射)框架,它对JDBC进行了轻量级的对象封装,以面向对象机制来处理数据库操作。Hibernate不仅管理Java类到数据库表的映射,还提供数据查询和获取数据的方法,大幅度减少开发时人工使用SQL和JDBC处理数据的时间。
  笔者认为应该将Hibernate集成到J2EE架构中,从Struts框架中分离出对象持久性相关部分,交给Hibernate来实现。根据Struts的体系结构,数据库操作工作是由模型层负责处理的,因此可以将Struts中的模型层分成两部分:一部分负责业务逻辑;另一部分使用Hibernate实现对象持久性处理。同时分离出具体业务逻辑,新建一个业务逻辑层,专门负责用Hibernate来实现业务逻辑和持久性对象的交互。
  图3显示了集成Struts和Hibernate的 MVC 模型。Struts和Hibernate框架的整合实现了控制流、业务调用、表示这三者的分离,使系统在开发效率、可维护性、可扩展性方面均有良好的改进。在本模型中,客户层可以看做是V,它是由浏览器显示给用户的 DHTML 界面;业务逻辑层和持久层则为 M,它是系统的核心部分,由 JavaBeans 和 Hibernate 组成;Web 层对应 C,它控制用户对业务逻辑的操作,同时控制将操作结果显示给用户,由 Servlet 和 JSP 程序组成。其中 PO 是调用模型层产生的持久对象,通过 JSP 页面显示给用户。
  1.3集成Struts和Hibernate实现J2EE分层架构
  根据前面的分析,将Struts与Hibernate框架进行集成,构成了一个新的Web应用的开发框架,实现了J2EE应用系统的多层架构。该框架一方面继承Struts框架在表示层的优点,提供完善的标记库,负责页面请求的接收和转发,实现了表示逻辑和业务逻辑的分离;另一方面在数据持久层等方面发挥Hibernate框架的特点,由Hibernate框架实现持久层和事务的封装,使业务逻辑与数据库访问分开。这样形成一个层次清楚、更加简洁、功能更加完善的Web框架,降低各个层次之间的耦合,提高组件的可重用性,减少在代码编辑方面的复杂性,有利于开发人员将注意力集中在业务逻辑的实现上,有利于系统的可维护性等。
  
  集成Struts和Hibernate实现J2EE分层架构如图4所示。系统采用的五层结构设计由客户层、Web层、业务逻辑层、数据持久层、数据库层组成。客户层运行在用户计算机的Web浏览器中;Web层运行在Web服务器中,它使用Struts框架技术实现,提供了接收/响应客户端请求,控制整个系统工作流程,与业务逻辑层交互以及格式化业务数据并动态生成Web页面等功能;业务逻辑层负责实现整个系统的核心业务逻辑,由JavaBeans或EJB来实现;数据持久层使用Hibernate框架技术实现,完成对象和关系的映射,负责对数据库进行操作。
  
  下面根据图4对系统的各分层功能进行简单分析:
  a)客户层。它是用户用浏览器看到并直接与系统交互的层,主要是由HTML语言形成的网页界面。
  b)Web层。它从客户层获得客户的输入,传递给业务逻辑层的组件,再将从业务逻辑层获得的处理结果以HTML文件的形式输出到客户端,形成网页界面。Web层由Servlet和JSP程序组成,封装在Web容器中。业务流程控制一般均由控制器Servlet来开发,响应用户的查询等请求并调用业务逻辑层的JavaBean来实现复杂的商务逻辑。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/monicaxiaoy/archive/2009/11/04/4768092.aspx

分享到:
评论

相关推荐

    论文研究-基于J2EE多层架构的Web开发框架研究.pdf

    在经典的J2EE四层体系结构的基础上增加数据持久层,提出了基于J2EE五层体系结构的Web开发框架;分析了基于Struts框架的J2EE架构中实现对象持久性的局限性,从中分离出对象持久层,并将Hibernate这个面向对象的轻量级...

    .NetWebApplication:具有多层架构的 .Net Web 应用程序,包括 MVC 和 Angular 前端

    此应用程序演示了具有模型层、存储库层、服务层和 UI 层的多层架构。 模型层包含代表映射到数据库的实体的 POCO 类。 POCO 类是通过从 BaseEntity 抽象类或 AuditableEntity 抽象类继承来智能构建的。 从 ...

    基于.net的网上书店系统

    ASP.NET 2.0是美国微软公司推出的新一代企业级B/S架构Web应用程序的开发平台,它建立在Microsoft .NET 框架的通用语言运行环境(Common Language Runtime,CLR)之上,可用于在服务器端生成功能强大的Web应用程序,...

    home:Web4thejob是一个开源Java框架,用于快速开发以数据为中心的Web应用程序

    该框架采用多层架构一些最。 因此,确保了陡峭的学习曲线,大量文档以及与其他项目绑定的开放式体系结构。 执照 Web4thejob是根据商业友好许可。 二进制文件 您可以从或下载web4thejob的二进制文件。 阅读更多信息...

    基于SSM框架个性化影片推荐系统.zip

    2. **Spring MVC**: 作为Spring的一个模块,Spring MVC是一个模型-视图-控制器(MVC)的Web框架,用于构建Web应用程序。它提供了一种分离逻辑层和表示层的方法,使得代码更加模块化,同时也简化了前端与后端的交互。...

    J2EE应用开发详解

    第1章 Java Web应用开发简介 1 1.1 Java EE应用概述 1 1.2 Java EE概念 1 1.2.1 Java EE多层模型 1 1.2.2 Java EE体系结构 2 1.3 Java EE的核心API与组件 4 1.4 Web服务器和应用服务器 13 1.5 小结 16 第2章 建立...

    Delphi6分布式开发

    1.5.3 开发分布式web技术 第二篇 delphi 6的 comidcom/com十编程 第 2章 delphi 6的 com编程基础 2.1 com的概念及特性 2.1.1 com简介 2.1.2 com的特性 2.1.3 com的优点 2.2 创建com对象 2.2....

    数据交换平台的系统体系结构.doc

    体系结构大作业 专 业 ... 按系统的软件层次结构及web Services组件模型来表达一个基于标准、组件化、架构良好、具有很好扩展性的开放的 软件体系; 交换引擎基于XML的数据流交换,基于XSLT格式的交换规则定义。 电

    dotnetcoding ORM 代码生成器

    每一下层为上层提供支持,一般不跨层访问,是一个真正意义上的多层架构; 同时结合现在一些已经成熟的设计框架,设计模式和构件模式,将一个解决方案分解为6个Project. 分别是通用类库, 通用控件库, 数据访问工程, 业务...

    ABP开发指南

    1.2 多层架构体系 4 1.2.1 前言 4 1.2.2 ABP的体系结构 5 1.2.3 领域层 5 1.2.4 应用层 6 1.2.5 基础设施层 6 1.2.6 WEB与展现层 6 1.2.7 其它 7 1.3 模块系统 7 1.3.1 ABP模块系统简介 7 1.3.2 生命期事件 8 1.3.3 ...

    asp.net知识库

    Visual Web Development 2005开发ASP.NET使用小技巧 ASP.NET 2.0 异步页面原理浅析 [1] [原] 自定义通用System.Web.UI.IHierarchicalDataSource简单实现 在 ASP.NET 2.0 中创建 Web 应用程序主题 ASP.NET 2.0 中的...

    java-ee电子商城系统课程设计.doc

    该系统是基于多层 企业级应用标准JAVA EE技术开发的WEB应用,以典型的MVC模式架构为基础。采用SSH2与前台Ajax技术相结合 来实现,在设计过程中全方位的应用软件工程的开发思想,对项目进行UML建模包括各模 块的类图...

    Google重叠实验框架:更多,更好,更快地实验

    辛苦优化的模型与策略线上效果到底如何?这就需要一个能够支持线上A/Btest的一高效的线上实验平台。实验流量就是资源,如果有一千个人同时在线上做对照实验,资源如何分配呢?Google重叠实验框架:更多,更好,更快...

    【精品推荐】CISSP最新全套培训讲义(完整版).zip

    Day031-OSI参考模型与多层协议概述 Day032-TCP IP模型和协议 Day033-网络组件安全 Day034-网络互联基础和设备 Day035-无线网络 Day036-远程连接 Day037-网络层攻击 Day038-网络与协议安全机制 Day039-访问控制概述 ...

    在线考试系统设计与开发(课程设计).doc

    2.3 基于J2EE的在线考试系统架构介绍及拥有的优势 2.3.1 结构总体介绍 J2EE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据他 们所在的层分布在不同的机器上。事实上,sun设计J2EE的初衷...

    CISSP 最新全套培训讲义(完整版).rar

    Day031-OSI参考模型与多层协议概述pdf Day032-TCP IP模型和协议.pdf Day033-网络组件安全pdf Day034-网络互联基础和设备pdf Day035-无线网络.pdf Day036-远程连接. pdf Day037-网络层攻击.pdf Day038-网络与协议安全...

    工程信息管理系统.doc

    系统是基于J2EE架构设计,通过Web Start布署,使用用户享用B/S结构的使用方便,且享用 C/S结构的性能及高效。 系统目标是设计一个完整、高效、健壮、安全、易用的数据传输。该系统是一个基 于标准、组件化、架构...

    CISSP2018年全套培训精华讲义-必看(完整版).zip

    Day031-OSI参考模型与多层协议概述.pdf Day032-TCP IP模型和协议.pdf Day033-网络组件安全.pdf Day034-网络互联基础和设备.pdf Day035-无线网络.pdf Day036-远程连接.pdf Day037-网络层攻击.pdf Day038-网络与协议...

Global site tag (gtag.js) - Google Analytics