英语原文共 4 页,剩余内容已隐藏,支付完成后下载完整资料
基于J2EE架构的五层Web开发模型
王正洪1,a,李小平2,b
1北京理工大学继续教育与现代远程教育学院,北京100081
2北京理工大学成人教育学院,北京100081
awzhwzh@bit.edu.cn, b lxpmx@x263.net
关键词:J2EE;MVC;Struts;Hibernate;多源数据
摘要:目前,多层Web体系结构中普遍存在重用性低、维护工作量小、程序应急性差等不足。因此,在开发Web应用程序的过程中,提高开发效率,选择分层设计的最佳技术和框架构建,充分发挥系统的灵活性、安全性和实用性,显得尤为重要,特别是在开发一个基于web的应用系统。作者探讨了基于J2EE的5层体系结构的Web开发框架,分析了基于Struts框架的J2EE体系结构中对象持久性的局限性,设计了业务逻辑层与持久层之间的多源数据访问组件。实现了对不同类型、不同结构、不同环境、不同用途的异构数据库的统一访问,在开发Web应用系统的过程中实现了系统的灵活性、安全性和实用性。
多层体系结构的Web开发框架模型
1.1 J2EE五层体系结构设计
由于Web应用需要更复杂的性能和逻辑处理,J2EE提出了一个四层体系结构,分为客户层、Web层、业务逻辑层和数据库层。随着逻辑处理和应用性能的分离,系统对逻辑流程、功能代码的可重用性和分布式部署有了更清晰的描述。然而,在大多数实际的项目应用中,数据层是一个关系数据库,没有明确地映射以实现面向对象的机制,而业务逻辑层与数据库之间的交互过程需要一个数据库调用接口的进一步封装。对项目的开发和维护有一定的复杂性和管理难度。一种有效的解决方案是根据功能模块拆分业务信息:业务逻辑与数据库访问分离,用户接口与业务逻辑分离,彼此相对独立,也就是说,两者的任何改变都不会影响其他。或效果甚微。因此,增加了业务逻辑层和数据库层之间的数据持久层,扩展了图1所示的五层系统的四层系统,即客户层、Web层、业务逻辑、数据持久层和数据库层。位于数据库顶部的数据持久层导致将数据访问代码中的所有细节隐藏在数据读取和操作中,将客户端应用程序与底层存储机制隔离,并完全抽象出开发应用程序的数据物理细节。
(图1基于J2EE的五层体系结构设计)
在业务逻辑层和数据层之间增加数据持久层,实现对象和关系数据库之间的映射。通过使用这种映射框架机制,对象和关系数据库之间的转换可以透明地运行,而不关心数据库连接、并发、事务等问题。业务逻辑层直接访问或存储是清晰的对象,并用映射框架处理过程中的转换。
在分层设计中,所有层的接口是它们之间通信的基础,遵循的原则是实现严格的层间独立性、分离性,以及未公开的层的实现细节。层次化设计层之间的通信描述如下:
客户端呈现逻辑层通过HTTP协议通信,即通过HttpRequest和HttpResponse接收用户的输入并返回结果给他们。
表示逻辑层采用Struts框架技术实现MUG功能,如提供对客户端请求的接收/响应,通过调用动作和业务逻辑层A之间的交互来控制整个系统工作流和动态生成网页。ND格式化业务数据。
业务逻辑层和持久层的交互是Hibernate的JavaBean调用,也就是通过数据访问对象DAO来调用。
持久层和数据库之间的通信完全由Hibernate控制,Hibernate可以对数据库进行实体映射,操作持久对象,并将缓存结果同步到数据库中。
1.2集成Struts框架和Hibernate框架实现MVC设计模式
基于模型(Model)-视图(View)-控制器(MVC)的应用架构模式,Struts具有模块化、灵活性和组件重用的优点。然而,Struts框架主要是针对表示层设计的,对后端业务逻辑层没有很强的支持。在项目开发过程中,存在以下的局限性:分工是水平的,工作是按模块划分的,软件开发成本相应较高,要花费大量的时间在数据层的封装上,协调和沟通。在不同的模块之间,导致开发的时间越来越长;项目移植相对较差,导致为不同的数据库编写不同的SQL语句;项目的可扩展性相对较差,因此不得不修改数据库表的结构。然而,要适应新的需求或变化,需要更高的人员需求来重新编写SQL语句和备份数据库并进行其他复杂操作。由于开发人员的数据库操作不均匀,开发的经验也不相同,导致系统性能可能相对较差。Hibernate是一个开源的O/R映射(对象/关系映射)框架,它通过面向对象的机制对JDBC进行轻量级对象封装,以处理数据库操作。hibernate不仅管理java类到数据库表的映射,还提供数据查询和检索数据,可大大减少人工处理数据的时间内通过开发使用SQL和JDBC。作者指出,Hibernate应该集成到J2EE体系结构中,对象持久化部分从Struts框架到hibernate来实现。根据Struts体系结构,数据库操作工作由模型层处理,因此Struts的模型层可以分为两部分,一部分负责业务逻辑,另一部分使用Hibernate实现对象持久化处理。同时,隔离特定的业务逻辑,创建一个新的业务逻辑层,负责用Hibernate实现业务逻辑和持久性对象之间的交互。
图2显示了Struts和Hibernate MVC模型的集成。Struts和Hibernate框架的集成实现了控制流、业务调用和表达式的分离,使得系统在开发效率、可维护性、可扩展性方面都有了良好的改进。在该模型中,客户端层可以被视为V,它是通过浏览器向用户显示的DHTML接口,通过JavaBeans和Hibernate将业务逻辑层和持久层与系统的核心部分M进行比较。Web层对应于C,它控制用户的业务逻辑操作,同时控制操作结果显示给用户,并由servlet和JSP程序组成。其中,PO是通过调用模型层生成的持久对象,并通过JSP向用户显示。
(图2集成Struts和Hibernate MVC模型图)
1.3集成Struts和Hibernate实现J2EE分层体系结构
根据前面的分析,Struts框架和Hibernate框架进行集成,构成了一种新的Web应用开发框架,实现了多层架构的J2EE应用。一方面继承了表示层中Struts框架的优点,提供了一个全面的标签库,负责接收和转发页面请求,实现表示逻辑和业务逻辑的分离;在数据持久层中使用Hibernate框架,通过Hibernate框架封装持久层和事务,实现业务逻辑和数据库访问的分离。因此,它形成了一个清晰的层次结构、更简洁、更全面的Web框架,可以减少各个层次之间的耦合,提高组件的可重用性,减少代码编辑器的复杂性,有助于开发人员专注于实现业务逻辑和维护系统的可维护性。
集成Struts和Hibernate实现J2EE分层架构,如图3所示,系统采用五层结构设计,包括客户端层、Web层、业务逻辑层、数据持久层和数据库层。客户端层在用户计算机的Web浏览器上运行,Web层在Web服务器上运行,使用Struts框架技术实现MUG功能,如提供对客户端请求的接收/响应,控制整个系统的工作流程和动态生成。通过调用Actudio和业务逻辑层之间的交互和格式化业务数据来维护Web页面;业务逻辑层负责实现整个系统的核心业务逻辑,由JavaBeans或EJB实现;用Hibernate框架实现的数据持久层技术完成对象和关系的映射,并负责数据库操作。
图3集成Struts和Hibernate实现J2EE分层体系结构
下面简单的分析了基于图3系统的各层的功能。
客户端层:通过HTML语言Web界面,用户可以看到浏览器和系统交互。
Web层:从客户层获取客户输入,传递给业务逻辑层组件,然后传输结果,这是通过业务逻辑层获得的,以HTML文件的形式向客户端形成Web界面。由Servlet和JSP程序组成的Web层封装在Web容器中。业务过程的控制一般由控制器servlet开发,它可以响应用户的查询请求,并调用业务逻辑层的JavaBean来实现复杂的业务逻辑。
业务逻辑层:它可以处理来自呈现逻辑层的用户响应,并将结果返回到客户端层。业务逻辑层封装了系统提供的接口,是直接处理用户请求的中心。这一层主要由JavaBean实现。JavaBean的主要任务是处理业务逻辑,与客户交互,并将相应的操作结果返回给IT等。
数据持久层:完成从持久对象到关系数据库的映射,并对持久对象进行操作。业务逻辑模块通过Hibernate使用0/R映射文件来实现特定数据源的操作(即通过持久层映射到特定的数据表),并完成数据库的操作。对于小项目,这种实现是非常有效和低成本的。由于这种方式,您不需要添加包含EJB容器的应用服务器,只需要一个Web服务器就可以允许系统正常运行。
数据库层:对象持久化的具体实现,可以是关系型数据库管理系统、文件存储和对象数据库存储管理系统。
多源数据集成模型的设计
目前,企业级应用系统普遍缺乏统一性,分布式信息资源导致数据共享是一个非常困难的问题。这些数据管理系统为独立开发的不同服务,虽然能够满足业务数据的存储和管理要求,但在很多情况下,为了做出决策,它可能需要访问多个业务管理系统中的数据分发。G在网络的不同位置。因此,整合分散的信息资源非常重要,通过相对独立于原有的多个应用系统的集成,可以消除原有的信息孤岛0现象,实现数据共享,消除数据冗余和入侵。整合信息资源,为企业集成应用系统提供集成、统一、安全、快速的信息查询、数据挖掘和决策支持服务。
2.1多源数据集成策略
使用数据库配置文件的Hibernate为应用程序提供持久性服务(或持久性对象)。Hibernate的java程序和数据库之间的转换,当Hibernate访问数据库,由底层数据库使用的数据类型的java应用程序透明。JDBC驱动程序封装底层数据库使用的SQL类型,提供标准的SQL类型接口,因此Hibernate可以使用标准SQL类型来生成DML(数据操作语言)。当系统发布时,根据不同的数据源,可以定义不同的Hibernate配置文件,使得可以访问不同的数据库,实现多源数据的集成。
2.2多源数据对象映射
(1)定义。根据业务领域和需要集成的应用系统的范围,确定数据源和数据对象的集成。
定义1:数据源A是一个相对完整的数据集合,他是由数据对象B的数量组成的,即A= {B1,B2,hellip;hellip;Bm的}。实践中的数据源可以是独立的数据库。
定义2:B被设置为数据源中的数据对象A,B有多个数据元素,即B= {B1,B2,hellip;hellip;BN},数据源中的数据对象可以是数据库表和视图。
(2)数据映射规则。从将数据源集成到Hibernate持久数据收集的需求中,可以建立以下映射规则:
规则1:对于数据源A,创建相应的会话配置文件,并从数据源指定相应的会话配置文件中的数据库,如:Hibernate ACFG.XML。
规则2:对于数据源A的每个数据对象B,它应该创建相应的持久类C,并为持久类C和数据对象B创建对应的映射文件D,并且B的每个数据元素对应于C的类属性。
参考文献:
[1] Fang Wei , Sun Yong , ZHANG Shu-kui . Integrate Struts and Hibernate Web system
application [ J ] Computer and Modernization, 2005, ( 12 ) : 39 - 41
[2] Song Xiuqin , Houdian Kun , Fang Zhongchun . The building of Struts and Hibernate - based
Web application[J]. The Network and Communication , 2005, 21 ( 3 ) : 125 - 127.
[3] Zhu Qinghong , Wu Yuhong. The analysis and application of an object / relational mapping
framework[ J]. Electronic Science and Technology , 2004 , ( 1) : 54 - 60 .
[4] Gao Ang , Wei Wenxue. Based the Hibernate Struts framework data persistence Application
Research [ J ]. Journal of Computer Applications , 2005 , 25 ( 12 ) : 31 – 35.
[5] Xie Yanping Hu Jiabao, Xie Chengwang. Based on Struts and Hibernate MVC design
Mode [J]. Communication and Computer, 2005 , 23 ( 4 ) : 62 – 63.
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[23319],资料为PDF文档或Word文档,PDF文档可免费转换为Word
课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。