基于Java EE技术的软件框架设计

2022-11-22 09:07郭春霞
信息记录材料 2022年9期
关键词:体系结构应用程序框架

郭春霞

(西安思源学院 陕西 西安 710038)

0 引言

随着软件技术的发展,软件的规模越来越大,软件的复杂性也越来越高。因此,人们对软件复用技术的重视程度日益提高,同时也提出了一些设计模型和框架。开源软件的出现促使了更广泛的框架。体系结构是从整体到局部的一种划分,通常包括若干个不同的领域的框架。一个成功的软件必须有一个成功的体系结构,但是,软件体系结构的构建是一个非常复杂和持续改进的过程,软件开发人员不能为每一个项目设计一个完全不同的体系结构。

当前,Java EE体系结构方案的出现以及企业级应用的普及,已形成了一个新的发展方向。具体而言,Java EE体系结构把一个系统划分成Web和EJB两大类,并将其抽象成表现层、业务逻辑层、数据持久层[1]。但是,EJB是一种重量级的、具有高度侵略性的架构规范,它的重量级是分布的,并且具有很强的侵略性,它规定了某些执行人员必须遵循的界面和规格。其结果是系统的部署复杂、执行速度慢、难以进行测试、耗费大量的资源;同时,基于入侵式架构的设计与开发具有高的耦合能力,且不容易拆分。针对目前Java EE体系结构存在的问题,提出一种以Java EE为基础的轻量级框架解决方案。

1 Java框架概述

以 Java EE为基础的轻量级框架,所有的物件必须在IOC容器中部署,但是这些物件与容器无关[2]。开发者可以在应用程序服务器以外的常规Ut环境中进行测试。为了保证高的插入性,所有的呼叫都指向了商业界面,而非商业对象的实现类。利用AOP,开发者可以实现POJO业务对象的宣告式事务管理以及其他跨行业的企业服务。事务的分割将由业务逻辑层来负责,也可以说是由容器架构来负责。大多数情况下,POJO业务对象都是一个多执行者、没有状态的服务物件。Web层是业务逻辑上的一层,它仅用于处理用户的输入和显示业务过程的结果。资料存取层采用了轻量级的 O/R图,提供了持久的透明。

现在,主流的轻量级框架包括Struts1. x、Web Work、Struts2、JSF,Spring、Hibernate、Bas等。本论文使用Web Work、Spring和 Hibernate进行了整合, Web Work MVC框架增强了代码的复用性,Hibernate ORM功能可以方便地进行数据库的移植和运行[3]。利用三种结构体系,可以实现代码重用、设计重用、代码易于理解、代码可靠性、减少开发复杂度、增强可扩充性和维护性,从而使得各部门之间的分工更为清晰,对于提高生产效率有着十分重要的意义。

本项目旨在根据Java EE的规范,建立一个轻量级的框架集成结构,该体系结构的设计目标是面向企业的Web应用,这些应用在Java EE的先进功能和分布式功能上并不需要太多。在对Java EE领域中常用的几种开放源码框架进行对比之后,选取Web Work、Spring、Hibernate框架作为一种有一定集成性的软件开发体系。在集成框架时,强调了各个框架的融合和改进,从而降低了框架间的耦合,改善了体系结构的复用性,并在工业消防一体化管理系统中实现了这种体系结构。从系统的运行结果来看,这种结构比传统的Java EE体系结构具有较少的开发复杂性和较高的代码重复性,提高了系统的开发效率。

2 Java框架基础架构

2.1 Java框架架构

Java EE标准的诞生与流行使得Java EE在企业中得到了广泛的应用,特别是在Java环境下[4]。利用Java EE架构,软件开发者和企业可以快速开发和部署商业应用,取代传统的多层次架构。

整个系统由客户端、网络层、业务逻辑层和企业信息系统层组成。

在用户层面,网络应用程序可以被使用,也可以不使用。在Java EE中,浏览器可以显示各种不同的标记语言,如HTML、XML、XSL等。生成的Web组件可以通过JSP页面和Servlets在Web层上运行,因此可以在Java EE服务器中与业务层通信;这是一款运行在Web系统中的Java程序,能够直接存取EJB组件,并在EJB中运行;一个JavaBeans类还可以包括一个JavaBeans类,用来管理用户的输入并在商业逻辑层中运行EB对象。

在Web层,Java EE中的JSP、Servlet、Servlet Filter均属于这一层。Servlet能够在HTTP(HTTP)中嵌入应用逻辑来请求响应。JSP为网页嵌入的构建提供了一种方法,网页是基于文本的,Web容器是编译成Web层的, JavaBeans类可以管理用户的输入,执行在业务逻辑层上的JavaBean或者EJB对象。

EJB服务器与EJB组件组成的服务层也被称作EJB层或者是应用层,许多开发者经常将Web服务器和称为ApplicationServer的EJB服务器产品相结合。EJB是一个以EJB为基础的企业信息系统,是以EJB为基础的企业应用的核心。

企业信息系统处理企业信息软件包括企业基础建设系统、客户关系管理、数据库和其他传统的信息系统。

2.2 表示层框架WebWork

WebWork是由OpenSymphony组织开发。如今WebWork的轻量级迅速被全球开发人员认可。Webwork提供了几个核心特性:前端拦截、形式确认、类型转换、OGNL表达式,支持多视图的表达,视图可以使用JSP、Velocity、自由标记、JasperReports、XML等[5]。

2.3 业务逻辑框架Spring

Spring是一款开源Spring,它不仅关注单个级别的问题,而且能够为Java EE的所有级别提供解决方案。整体来说,该系统可以很好地适应企业的实际应用。开发人员可以在不考虑其他条件的前提下根据自身需要选择合适的应用程序。

Spring架构的核心是一个轻量级的容器,是实现IOC的容器,并提供AOP的实现。控制反转的基本理念不是创造一个物体,而是如何建立一个物体。在程式码中并不会直接与物件或服务相关联,但是在设定档中会说明哪些是元件所需的服务,IOC容器会将它们相互关联。

2.4 数据持久层框架Hibernate

Hibernate是一种面向对象映射的开放源码框架,这是一种很轻的JDBC对象封装,让Java程序员能够利用对象的思想来轻松地处理数据库。Hibernate可以用于所有JDBC、Java客户机、Servlet/JSP Web应用,最具有革新意义的是Hibernate能够取代 CMP,承担起数据持久的任务。

3 Java框架的设计与集成

3.1 不同框架的优缺点分析

Web Work架构非常适合MVC的设计模式,使得各组件能够单独执行一个功能,同时也便于开发、维护和更新;同时,该系统还提供了多种定制的选项库,将JSP网页上的显示逻辑与静态HTML分隔开来,使得网页代码更加清晰易懂。然而 Web Work架构的主要目标是表达层,而不能很好地支撑商业逻辑,Web Work在模型中仅提供了一个动作类,就要求开发人员在开发时要做一些复杂的工作[6]。

Spring框架是一种松耦合的结构,它被设计成尽可能地降低各个部件之间的耦合。Spring框架能够提供一个一站式的企业应用程序,但是Spring也是一个模块化的框架,让开发者能够利用部分的模块进行开发。Spring的开发人员相信现在已经有了许多优秀的框架,不需要重新设计;Spring提供了与它们相整合的方案,部件结合在一起,这个模块可以集成 Hibernate。

对于Hibernate来说,这是一种非常好的O/R映射架构,可以很好地支持数据模型。但是,如果仅使用 Hibernate,逻辑处理、流程控制和视图之间的关系并没有很好的分割,会导致系统的耦合程度依然很高,不便于维护。

3.2 架构目标

体系结构就是把整个结构分成若干个部分,这些部分之间有着特殊的联系,这样就可以有效地协调工作,以解决个别小组无法应付的主要问题。体系结构让各个部件成为一个完整的整体。好的体系结构设计能够确保一次工程的成功,并且能够提供优秀的运行表现,而好的体系结构设计需要遵循一些原则,这些原则可以概括为如下几点:

(1)复用

为了减少重复工作、减少费用,可利用旧的代码和设计。复用是一直在追求的一个目标,但是实际上,它并不是一件简单的事情。事实上,在体系结构复用上,已经做出了大量工作,其结果就是Frame Work,但是目前还没有一个有效的框架。

(2)透明性

在一些案例中,为了更高效地完成具体的操作,会将界面隐藏起来,仅仅提供用户的需要。

(3)扩展性

由于用户需求经常变更,必须要使体系结构具有可伸缩性,以满足将来的各种变化、可扩展性与稳定性。必须衡量一下投入和产出比率,以便设计一个合适的可扩展的体系结构。

(4)简洁性

结构必须尽量做到简洁,同时要达到目标。使用模式可以简化设计,遵循一定的设计模式,体系结构不会非常复杂。

(5)高效性

开发者在开发系统时都希望系统高效运行,特别是在某些特殊的系统中,例如,一个即时系统,一个海量的站点。

体系结构设计的目的也是对整个系统进行抽象化。商业逻辑与持久力是企业应用中的两大关键概念,企业的应用程序都是基于商业逻辑的。为了在企业中更好地组织不同的逻辑,采用层次技术来实施企业的应用程序。层技术是计算机领域的一种古老的技术,它的优点是层次化。

(1)高层逻辑不必了解全部底层逻辑,只要了解邻近层的详细信息即可。由于对各个层次进行了严格的划分,使得各个层次的耦合程度大为下降。

(2)在一定水平上,下属层可能会有不同的实施方法。比如,同样的程序语言可以在不同的操作系统和不同的计算机上工作。

(3)同一层能够支撑不同的上层。

将以上因素结合起来,企业应用程序一般分为若干层。多层次划分的优点是:加快了系统的开发速度、鲁棒性、稳定性、可维护性、扩展性、以及在系统成功后的维护和修改费用。

3.3 架构设计

Web Work框架拥有一个很好的标签库,所以Web层基本上是由Web Work框架来实现的;Spring框架与Web Work框架可以很好地结合起来,并且在事务管理和依赖注入方面有着独特的优势,所以Spring框架被广泛地用于业务逻辑层面:Hibernate主要是Hibernate、O/R映射,JDBC则是一个轻量级的。WebWork框架拥有良好的标签基础,所以Web层主要由Web Work框架实现;Spring框架与Web Work框架结合得非常好,其特点是事务管理和依赖注入,因而在业务逻辑层中得到了广泛的应用;在数据持久层,Hibernate主要使用Hibernate来完成O/R图,JDBC是一种能为Java对象提供持久性的轻型对象封装。下面是每个级别的职责。

在表示层次上,使用Web Work作为一个表示层的结构。网络工作结构应负下列职责:管理使用者的需求及反应;提供用于授权呼叫业务逻辑及其他上行处理的控制器;将例外处理从其他层级扔到Web Work;把模型物体装配成一个可以表达的视图;UI纠正。

从商业逻辑的角度来看,一个典型的Web应用软件就是一个商业和一个服务。使用Spring作为一种业务层面的体系结构,负责如下工作:业务逻辑和业务验证;能够与其他各层交互;在企业层次上管理对象之间的依赖关系;增加了可视化和持久化的灵活性,使它们不需要直接交流;将从表现层中的内容显示到业务层,从而获得业务服务;管理从商用到绩效的转变。

在数据持久层,存在着大量ORM开源框架[6],支持Java中的对象-关系保持和查询服务。使用Hibernate作为架构的持久框架,提供如下功能:查询关联信息,Hibernate可以使用O0查询HQL语言,或使用更多的 API;存储、更新、删除存储在数据库中的信息;Hibernate将普通的Java对象定义成持久化的类,在数据库和对象之间建立映射,通过数据库接口访问数据。应用程序可以在不影响其他级别代码的情况下,更灵活地进行修改。综上,得到的Java系统架构如图1所示。

图1 系统整合架构图

4 总结

本文对三种体系的利弊进行了分析,然后将三个框架有机地结合在一起,构成一个整体化的软件开发体系,并对Spring框架与Hibernate框架进行了集成,并对其进行了解耦和改善,框架技术让软件开发产品在质量上得到保证。

猜你喜欢
体系结构应用程序框架
有机框架材料的后合成交换
框架
基于PPP工程采购模式的工程项目合同体系结构研究
删除Win10中自带的应用程序
足球机器人并行行为组合控制体系结构分析
谷歌禁止加密货币应用程序
关于原点对称的不规则Gabor框架的构造
Acoustic Characteristics of Advertisement Calls in Babina adenopleura
我国在WYO框架下面对的贸易保护现状及应对
三星电子将开设应用程序下载商店