基于J2EE多层架构的web应用研究计算机专业_第1页
基于J2EE多层架构的web应用研究计算机专业_第2页
基于J2EE多层架构的web应用研究计算机专业_第3页
基于J2EE多层架构的web应用研究计算机专业_第4页
基于J2EE多层架构的web应用研究计算机专业_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于J2EE多层架构的web应用研究内容摘要当前基于J2EE平台的Web应用在逻辑上一般被分为四层:域模型层、表示层、业务层、数据层。本文主要针对表示层、业务层和持久层的实现提出了基于Webwork+Spring+Hibernate的解决方案。WebWork是一个致力于组件化和代码重用的拉出式MVC模式实现框架,以其灵活、强大的功能为Web应用的构建减轻了负担。Spring是一种轻量级的容器,Spring使系统各组件间达到松散耦合并且能和各种框架很好的兼容。Hibernate是一个开源的持久层框架技术,全面减轻了维护数据的复杂度,使系统具有良好的性能和移植性。本文以港航系统中局办公系统下的个人

2、先进申请为案例,采用基于UML的系统分析方法,通过建立泳道图、用例图、类图对其进行了详细的分析,并在此基础上分别对Web表示层、业务逻辑层、数据持久层进行了详细设计。针对项目特点,整合WebWork、Spring、Hibernate三种框架技术,提出了一个具有通用模式的J2EE架构:WebWork实现MVC模式完成Web表示层功能,其业务逻辑交由Spring来管理;Spring负责管理表现层控制器与数据访问对象间关系,完成业务逻辑层功能;Hibernate负责数据的持久化工作。三种架构的应用能够有效地解决传统Web应用开发中存在的问题,而且采用分层及模块化设计使系统具有很高的可维护性、扩展性、

3、移植性和组件的复用性。关键词:J2EE,WebWork,Spring,HibernateABSTRACTAt present according to the Web application of J2EE terrace at logical is been divided into 4 F generally: Domain Model Layer, Presentation Layer, Business layer and Database layer. This text mainly aims at to mean a layer, business layer with held

4、 out for long time the realization of layer to put forward according to the WebWork+Spring+Hibernate solution. WebWork is a pull-out framework of implementing MVC pattern and strives for reusing module and code, it relieves burden for constructing Web application by its flexible and powerful functio

5、n. Differentiating strong invasion of EJB, Spring which is a lightweight container is designed with dependency injection and can make component loose coupling dynamically and compatible with other framework. Hibernate is an open source persistence framework, which entirely reduces the complexity of

6、maintaining data and make system have higher performance and portable.This paper takes the project as example. to detailed design for each layer such as Web layer, business logic layer and data persistence layer based on requirements analysis completely. As for the characteristic of project, the aut

7、hor integrated with WebWork, Spring and Hibernate and put forward a general model of J2EE architecture, what is that WebWork which implemented MVC pattern play the role of Web presentation layer and hand over its business logic to Spring, manage objects relation of between controller and data access

8、 object through Spring and make data persistence by Hibernate. The application of frameworks is not only resolve traditional issues in Web design but also enhance the systems maintainability, expansibility, compatibility and reusability through adopting delamination and modularization.KeyWord: J2EE,

9、 WebWork, Spring, Hibernate27目 录1 绪论11.1 问题的提出11.2 研究现状与意义11.3 研究内容22 J2EE平台和MVC架构的介绍32.1 J2EE架构的介绍32.2 MVC模式介绍42.3 MVC与J2EE架构之间的关系53 应用架构介绍63.1 Webwork框架63.2 Spring框架73.3 Hibernate架构83.4 三种架构整合的优势94 先进个人申请分析与设计114.1 系统分析阶段114.1.1港航信息系统实施背景及目标114.1.2局办管理系统需求分析114.1.3 先进个人申请需求分析124.2 系统设计阶段144.2.1 系统

10、设计原则144.2.2软件基本架构的搭建154.2.3 类图设计174.2.4 数据库设计18第五章 先进个人申请与管理的系统实现205.1 开发软件的介绍205.1.1 Eclipse 开发平台205.1.2 Apache Tomcat应用服务器215.1.3 Oracle 10g数据库215.2 表示层的实现225.2.1 用户界面设计225.2.2 WebWork的配置文件xwork.xml235.2.3 实现保存功能Action的介绍235.3 业务层的实现235.3.1 配置service.xml245.3.2 Service接口的实现245.4 持久层的实现255.4.1 域模型的

11、建立255.4.2 映射文件的定义255.4.3 Dao的定义和接口实现265.5 成果演示266 总结与展望30参考文献31基于J2EE多层架构的web应用研究1 绪论1.1 问题的提出随着互联网技术突飞猛进地发展,Web应用系统在Internet上的应用越来越广泛。Web应用系统不再仅仅是具有静态信息发布的简单功能,而且被要求具有实时动态处理交互和办公的能力。由Sun公司推出的J2EE平台,不仅完全继承了Java安全性好、可移植性强的优点,同时它是真正面向对象的编程语言,J2EE平台的广泛应用使基于B/S的多层Web体系结构逐渐发展成熟起来,多层Web应用的开发己成为主流。但是,在多层We

12、b体系结构的设计中,仍然存在程序可重用程度低、维护工作繁琐、扩展能力较差等不足。同时,多层Web应用系统需要面对复杂的网络环境、多样化的用户需求、灵活的业务模式、复杂的业务流程、众多的组织机构及层次和角色分工等问题,在业务和技术上也是复杂多变的。因此,如何组织应用程序以实现简单高效的程序编写、升级、维护和扩展,是当前Internet技术发展的热点之一,也是一个很值得探讨的研究课题。传统的模式是基于典型的客户/服务器C/S(Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实

13、现,降低了系统的通讯开销。但C/S体系结构只在系统开发一级的层面上体现了开放性,在特定的应用中无论是Client端还是Server端都需要特定的软件支持。由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件。加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用,而且代价高、效率低。因此,B/S(Brower/server)结构即浏览器和服务器结构,很大程度上弥补了C/S结构的缺陷,更为广泛的被开发人员加以应用。B/S结构就是我们所说的Web应用。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用

14、户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Brower)实现,但是主要事务逻辑在服务器端实现,形成所谓三层结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。在JAVA这样的跨平台语言出现之后,B/S架构的企业级软件更充分的体现出方便、快捷、高效的优势。1.2 研究现状与意义Web应用的广泛性推动了软件技术的发展,同样软件技术发展促进Web应用更加广泛。今天的软件,规模不断扩大,复杂度日渐升级、开发人员面临的问题越来越多、解决方案也百花齐放。如何设计应用软件使纷杂的应用需求和多样化的客观环境能够彼此尽量少的受到对方的干扰和牵制,以及

15、我们曾经的成功案例能否再次使用?分层结构和组件复用给众多开发人员提供了选择。分层结构让系统的功能更加明确,减少了各层次之间的关联和依赖,让开发人员可以同步工作而不会受到其他人的影响。组件复用是在分层的基础上,由于层间的耦合性低,独立性强,在成熟组件的基础上开发极大的提高了软件的开发效率、缩短了开发周期,使软件产品的稳定性、兼容性、扩展性都得到了提高。因此,人们越来越意识到软件重用技术的重要性,设计模式和框架技术应运而生。设计模式和框架技术在整个系统开发中发挥了重要的作用,但从更广泛的角度说,它们只是在更小的颗粒度上发挥功用。如何组织各个层次、如何合理选择使用模式和框架技术又将开发人员的关注点提

16、高到整个系统层面上来。架构技术为这一问题提供了解决方案。架构是软件系统从整体到部分的最高层次的划分,一般由多个不同领域的框架组成。一个成功的软件需要有一个成功的架构,它将各个框架技术有机的组织起来,相互关联但又不失其独立性。软件架构的建立是一个复杂而又持续改进的过程,开发人员不可能对每个项目做不同的架构,而总是尽量重用以前的架构,或开发出尽量通用的架构方案。如何在众多的框架中选择建立适合企业应用的架构,并且怎样让各个应用层无缝连接?如何整合框架以便让各个层以一种松散耦合的方式彼此作用而不用管底层的技术细节?这给软件人员提出了挑战。1.3 研究内容现在各种框架数目繁多,每一种框架都有其特定的应用

17、范围,没有一种框架能够很好的解决web应用中的所有问题。因此如何根据所要开发的系统选择合适的框架组合起来,并且使系统中的各个层次以一种松散藕合的方式彼此作用而不用管理底层的技术实现细节,成为我们面临的主要问题。为了解决以上问题,本课题主要对以下内容展开研究:J2EE平台框架和MVC模式的介绍;在对WebWork,Spring和Hibernate等架构进行深入分析的基础上,提出了集成WebWork,Spring和Hibernate的架构设计方案,为Web应用实现提供选择性参考;以港航系统中局办公系统下的个人先进申请为案例,采用基于UML的系统分析方法,通过建立泳道图、用例图、类图对其进行了详细的

18、分析,并在此基础上分别对Web表示层、业务逻辑层、数据持久层进行了详细设计,提炼出了系统的结构模型以及各模型之间的关系,确定整个系统采用WebWork,Spring和Hibernate体系结构进行分层及模块化设计,并利用Eclipse,tomcat5.0和Oracle 10g数据库等技术,实现先进个人申请和管理的简单程序,从而体现出多层架构开发的优越性。2 J2EE平台和MVC架构的介绍2.1 J2EE架构的介绍J2EE(Java 2 Platform Enterprise Edition,简称J2EE)是Java2平台的企业版,适用于企业级体系结构的开发、部署和管理等,为开发多层次分布式、针

19、对服务器的应用系统提供了统一的技术平台。J2EE平台己经成为使用最广泛的web应用程序设计技术,主要支持两类软件的开发和应用:做高级信息系统的Web应用服务器;Web应用服务器上运行的Web应用程序。J2EE体系结构扩展了标准的两层结构,提供中间层来满足经济、高可用性、高可靠性、可扩展性的需求。这种结构简化了客户端,主要程序都运行在能保证正常运行的服务器端,系统更加安全可靠,也更容易扩充和移植。在J2EE的应用中,软件体系架构模式(如层模式、MVC模式、多层分布模式等)和设计模式(如截取过滤器、视图帮助器、前端控制器、值对象等)得到广泛使用。通过提供统一开发平台,J2EE降低了开发多层应用的费

20、用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持Enterprise JavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能,是传统的互联网应用程序模型无法比拟的。J2EE是多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据他们所在的层分布在不同的机器上(也可以放在同一台机器上)。它可以解决两层模式(Client/Server)的弊端,在传统模式中,客户端担当了过多的角色而显得臃肿,在这种模式中,第一次部署的时候比较容易,但难于升级或改进,可伸展性也不理想,而且经常基于某种专有的协议(通常是某种数据库协议)。它使得重用业务逻辑和界面

21、逻辑非常困难。现在J2EE的多层企业级应用模型将两层化模型中的不同层面切分成许多层。一个多层化应用能够为不同的每种服务提供一个独立的层,图2.1是J2EE典型的四层结构: 图2.1 J2EE的层次结构客户层客户层是用来实现企业级应用系统的操作界面和显示层,并且某些客户端程序也可通过它实现业务逻辑。可分为基于Web和非基于Web的客户端两种情况。基于Web的情况下主要作为企业Web服务器的浏览器,非基于Web的客户层则是独立的应用程序,可以完成瘦客户机无法完成的任务。Web层J2EE的Web层组件可以是JSP页面或Servlets。按照J2EE规范静态的HTML页面和Applets不算是Web层

22、组件。Web层可能包含某些JavaBeans对象来处理用户输入,并把输入发送给运行在业务层上的Enterprise Bean来进行处理。业务层逻辑层业务逻辑层也叫EJB层,它由EJB服务器和EJB组件组成。一般情况下许多开发商把Web服务器和EJB服务器结合在一起发布称为应用服务器。EJB层用来实现企业级信息系统的业务逻辑,是企业级应用的核心,由运行在业务层中的EJB来处理,业务层中的EJB要运行在容器中。一个Bean从客户端接收数据,处理后把数据送到企业信息系统层存储起来。同样,一个Bean也可以从企业信息系统取出数据,发送到客户端程序。EIS(Enterprise Information

23、System企业信息系统)层企业信息系统层处理企业信息系统软件,包括企业基础建设系统,企业资源计划(ERP)、大型机事务处理、数据库系统和其它的遗留信息系统。例如J2EE应用组件可能为了数据库连接需要访问企业信息系统。12.2 MVC模式介绍MVC(Model-View-Controller)模式是现在世界上非常流行的一种设计模式。MVC包括三类对象,Model是应用对象,View是它在屏幕上的表示,Controller定义用户界面对用户输入的响应方式。MVC模式是一种高层次上的架构模式,主要是由合成模式、策略模式、观察者模式和工厂方法模式组成。MVC设计模式是设计模式中很重要的一种。Mode

24、l模型,即相关的数据,是对象的内在属性,它提供业务逻辑;视图是模型的外在表现形式,是模型在屏幕上的显示,1个模型可以对应1个或多个视图,视图还具有与外界交互的功能;控制器是模型与视图的联系纽带,用于管理用户与视图发生的交互,控制器提取通过视图传输进来的外部信息并转化成相应事件,然后由对应的控制器对模型进行更新,相应的模型的更新与修改将通过控制器通知视图,保持视图与模型的一致性。2MVC模式从概念上定义了基于Web应用的框架技术,同时支持MVC模式的框架技术也是种类繁多,目前比较主流的有Struts,Webwork,SpringMVC,JSF等。对于各种框架技术,不存在绝对的好与不好,而是各有所

25、长,针对不同的应用需求选择合适的框架技术才是上策。以webwork架构为例,WebWork的优点是:结构简单易于扩展、标签库易于定制、拦截器非常出色,支持广泛的模板语言(Velociy和FreeMarker),完整的tag支持,模块写好后容易插入,一个jar包就可以包括所有的action和view(得益于ftl的classpath支持),和其他工具兼容性好。但其只要的缺点是文档示例较少、具有较多的配置。2.3 MVC与J2EE架构之间的关系理解MVC三个部分在J2EE架构中处于什么位置,有助于我们理解MVC模式的实现。前面提到并提供了一个J2EE体系层次结构图,MVC与J2EE架构间对应关系是

26、:(1)View处于Web层或者说是客户端层,通常是JSP/Servlets。(2)Controller也处于Web层,通常用Servlets实现。(3)Model处于业务逻辑层,通常用服务器端JavaBean或者EJB实现。3 应用架构介绍3.1 Webwork框架正如前文所提到的,在MVC模式的实现技术中,Struts是一种流行的Web框架,拥有大量的用户群体,但在构建大规模Web应用的时候,它并不能提供通常所需的创造力发挥空间。WebWork的创造者和JBoss的创始人之一的Rickard Oberg曾经说:“框架的强大之处不是源自于它能让你做什么,而是它不能让你做什么”。Rickard

27、所说的话解释了什么是框架:框架使混乱的东西变得结构化。然而,从另一个角度说,限制严格的架构束缚了开发人员的手脚,开发人员的创造力空间收缩了,甚至有些任务无法完成。很明显,一种完美的中间状态存在于无框架和严格框架之间,这种梦寐以求的中间状态就是WebWork的终极目标。WebWork是由OpenSymphony组织开发的,致力于组件化和代码重用的拉出式MVC模式J2EE Web框架。WebWork目前最新版本是2.2,其前身是Rickard Oberg开发的WebWork,但现在WebWork已经被拆分成了Xwork1和WebWork2两个项目,如图3.1所示:图3.1 WebWork功能结构图

28、Xwork简洁、灵活功能强大,它是一个标准的Command模式实现,并且完全从web层脱离出来。Xwork提供了很多核心功能:前端拦截机、运行时表单属性验证、类型转换、强大的表达式语言(OGNLthe Object Graph Notation Language)、IoC(Inversion of Control反转控制)容器等。WebWork2建立在Xwork之上,处理HTTP的响应和请求。WebWork2使用Filter Dispatcher(过滤器),将HTTP请求变成Action(业务层Action类)、session(会话)、application(应用程序)、request请求范围

29、的参数映射。WebWork2支持多视图表示,视图部分可以使用JSP, Velocity, FreeMarker,XML等。3WebWork主要包含了下面几个部分:(1)Action(动作)一般一个Action代表一次请求或调用。在WebWork中,一般Action类需要实现Action接口,或者直接继承基础类ActionSupport。这是它要实现默认的execute方法,并返回一个在配置文件中定义的Result(也就是一个自定义的字符串而已)。当然,Action也可以只是一个Pojo(Plain Object Java Object),不用继承任何类也不用实现任何接口。Action是一次请求

30、的控制器,同时也充当数据模型的角色。WebWork的关键特性之一是:它并不会要求你使用特定的类来支持Web页面上的表单字段。相反,这些属性会出现在Action中,并且可以包含拥有复杂对象的子属性。这是相当有价值的,因为不再需要编写FormBean类这种更加形式化的代码了。总之,Action(负责处理表单数据)和FormBean(负责保存表单数据)绑定如此紧密,合并它们是相当有意义的。(2)通过ActionContext访问数据ActionContext是Action执行时的上下文,本质上是ThreadLocal Map,它存放的是Action在执行时需要用到的对象,如:在使用WebWork时,

31、上下文存有请求的参数、会话、Servlet上下文、本地化信息等。在Web应用程序开发中,除了将请求参数自动设置到Action的字段中,往往也需要在Action里直接获取请求Request或会话(session)的一些信息,甚至需要直接对JavaSevrlet Http的请求(HttpSevrlet Request)、响应(HttpSevrlet Response)操作。当有这方面的需要时,可以通过使用ActionContext来操作这些对象, (3)InterceptorInterceptor(拦截器)将Action共用的行为独立出来,在Action执行前后运行。Interceptor将很多功

32、能从Action中独立出来,大量减少了Action的代码,独立出来的行为具有很好的重用性。WebWork的许多功能都是有Interceptor实现,可以在配置文件中组装Action用到的Interceptor,它会按照指定的顺序,在Action执行前后运行。WebWork框架的很多功能都是以拦截器的形式提供出来。例如:参数组装,验证,国际化,文件上传等等。(4)验证框架WebWork提供了在Action执行之前,对输入数据的验证功能,它使用了其核心XWork的验证框架。提供了如下功能:可配置的验证文件。它的验证文件是一个独立的XML配置文件,对验证的添加、修改只需更改配置文件,无需编译任何的C

33、lass;验证文件和被验证的对象完全解耦;多种不同的验证方式,强大的表达式验证;同时支持服务器端和客户端验证。当然,Webwork还包含像FilterDispatcher(过滤器)、表达式语言EL和OGNL、Result Type(返回类型)等主要内容,他们共同构成了Webwork强大的功能。3.2 Spring框架Spring是一种多层的J2EE应用程序框架,它是以Rod Johnson编著的Expert One-on-One J2EE Design and Development一书的代码为基础发展而来。Spring追求的就是一种轻量级的目标,旨在简化J2EE的开发,降低J2EE项目的实施

34、的难度Spring框架是一个松耦合的框架,其耦合度被设计为最小,在各个层次上具体选用那个框架取决于实际项目的需要和开发者的意愿。4简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。轻量从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。控制反转Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传

35、递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反,不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。面向切面Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务管理)进行内聚性的开发。应用对象只实现它们应该做的完成业务逻辑仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。容器Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建基于一个可配置原型(prototype),你的bean可以创建

36、一个单独的实例或者每次需要时都生成一个新的实例以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。框架Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。133.3 Hibernate架构Hibernate是一个面向Java环境的对象/关系数据

37、库映射工具,它的目标是成为Java中管理持续性数据问题的一种完整的解决方案。它协调应用与关系数据库的交互,让开发者解放出来专注于手中的业务问题。Hibernate是一种非强迫性的解决方案,我们可以利用Hibernate提供的查询和获取数据的方法,当然也可以使用传统的JDBC来实现数据库的操作。Hibernate 不仅仅管理Java 类到数据库表的映射,还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用SQL 和JDBC 处理数据的时间。Hibernate 的目标是对于开发者通常的数据持久化相关的编程任务,解放其中的95%。同时,它是一个开放源代码的对象关系映射框架,它对JDBC进行了

38、非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。53.4 三种架构整合的优势以上对WebWork、Spring和Hibernate三种框架技术,进行了详细的讨论,从中可以看出,对于各个框架技术就个体而言不存在优与劣,而只是应用领域不同而已。而和其他技术整合使用时,所表现出来的差异则大不相同。如何针对某一具体领域,选择合适的

39、框架技术来相互弥补应用中的不足,则是很值得讨论的。开发过程中,三种框架技术的集成非常方便,作为开源框架中的佼佼者,三种技术顾及到了和其他框架的接口,而且开发者对于具体的应用需求,可以修改源代码,定制客户化服务。在项目实现中通过对以上三种框架的集成,使不同框架的局限性达到最小,而且充分利用了每个框架的优势,达到了良好的效果。Webwork+Spring+Hibernate架构具有以下特点:(1)合理的设计思想。WebWork是基于MVC的框架,它很好地把业务逻辑和表示层分离。由于WebWork在对象持久化和业务对象管理方面尚存在一定的不足,基于WebWork的良好兼容性,采用Spring和Hib

40、ernate框架予以补充。Spring是一种轻量级容器,利用依赖注入方式实现对象的初始化,使得开发人员减轻了初始化对象的负担;同时利用AOP机制进行事务管理,全面降低了构建企业应用的复杂度。Hibernate是一个轻量级的对象持久化工具,它能很好地将实体对象与数据库表的记录相对应,而且通过统一接口屏蔽具体数据库的差异。(2)快速协作开发。本架构使用分层技术实现,分为表现层,业务层,持久层和领域模型层。各层次之间的关系通过三种框架解耦与层之间边界清晰、功能尽量独立,对于同一层次的不同的业务逻辑基于模块划分,使得整个系统既可以横向分工,也能纵向分工,能充分发挥团队化协作能力,使开发人员充分发挥各自

41、的特长。(3)良好的兼容性。本架构所使用的三种框架技术都是开源技术,它们三者之间以及和其它框架之间能够很好的兼容。WebWork的表现层除了使用jsp之外还可以使用Freemarker, Velocity等模板技术作为表现技术。Spring作为轻量级管理容器,可以和Acegi安全框架无缝兼容,满足了在安全控制方面的不足;同时它和Hibernate框架的兼容,使对象的持久化操作更加便捷。(4)重用和模板化设计。WSH框架技术是基于模块化设计的。相互分离的各层之间互不影响,某一层的改动不会影响另一层,这样为业务逻辑的重用提供了可能。在设计中抽象出功能相同的部分作为通用模块使用,充分利用己有的工具集

42、加速开发进度。(5)高效的性能和开发效率。Spring使开发人员直接使用类对象,而不用考虑具体的生成方式,集中精力关注于业务对象的处理。Hibernate技术规范对底层数据库操作进行了大量的优化,提高了系统性能,其O/R设计,使开发人员可以随心所欲的使用面向对象编程思想来操纵数据库,无须关心对象本身及其关系如何在数据库中存储。相对于使用JDBC和SQL语句来手工操作数据库,大大减少了开发数据库的工作量。(6)可扩展性和移植性。WSH架构是基于J2EE平台的,Java的天性就是平台无关性。Hibernate作为持久化框架向上屏蔽了不同数据库间的差异,可以很容易移植到不同的数据库。Spring的B

43、ean对象通过配置文件使得开发人员可以不用书写任何代码,不经改动的情况下,就可以移植到另一个IoC容器。架构各层次之间是独立的,通过接口进行交互,对于系统扩展而言,只要实现同一接口,可以方便的对系统功能进行扩充和维护。64 先进个人申请分析与设计信息系统分析是在总体规划的指导下,对某个或若干个子系统进行仔细、深入地调查研究,确定新系统逻辑结构的过程。信息系统分析与总体规划相比这个阶段所作的工作是更详细更细致的工作。在系统分析阶段,分析设计人员要详细了解每一个业务过程和业务活动的工作流程及信息处理流程,理解用户对信息系统的需求,然后运用各种信息系统开发理论、开发方法和开发技术确定系统应该具有的逻

44、辑功能,再用适当的方法表达出来,形成系统的逻辑方案。信息系统分析的工作步骤:第一、对现行系统进行详细的业务调查分析了解各项需求;第二、进行数据分析,建立数据库逻辑模型;第三、进行功能分析,确定新系统逻辑结构。7在Web应用系统架构分析的基础上,本章以项目实例“港航局办公室系统3期的精神文明建设”为背景,详细阐述了系统分析阶段的各个步骤,并结合Webwork+Spring+Hibernate架构的特点,进行分析设计工作。4.1 系统分析阶段4.1.1港航信息系统实施背景及目标目前,港航部门面临着管理范围广、难度大、成本高、效果小的现状,原有的思路、模式和管理方法无法有效地面对“工作点多、面广、人

45、少”的发展状况,必须积极探索新的管理模式以应对时代发展的要求。打造以办公网络化、管理科学化、监管信息化、服务自动化、决策智能化为特征的数字港航,全面推进港航管理系统“依法行政、高效管理、便民利民、安全保障、公正廉洁”等效能建设要求,实现以信息化手段管人、管事。港航信息化建设要想发挥其整体效益,必须对业务系统进行彻底整合,以提高信息资源的高度共享和各个应用系统的整体协同能力,资源整合,优势互补,形成一个结构完整、技术先进的信息网络。从确定信息网的框架到方案论证和组织实施等各个环节,都需要各级部门发挥作用,确保信息网工程有序地进行。通过充分开发利用通信网络资源、信息技术和信息资源,整合分散的资源,

46、较好地发挥出应有的效能,并最终达到整体协同。局办管理系统是港航开发中七大系统之一,其主要功能包括港航部门基本信息和日常事务的管理。其开发的价值在于,可以大大提高办公室管理者日常办公效率,促进整个港航部门信息化的发展,同时可以节省资源,为整个系统的建设提供有力保障。4.1.2局办管理系统需求分析局办公室主要业务包括:(1)政务管理,由日程管理、规章制度、综合信息、组织及人员结构、电话号码管理、老干部管理组成;(2)行政管理:由固定资产管理、车辆管理组成;(3)执法队伍建设;(4)会议管理;(5)电子公告;(6)港航信息;(7)精神文明建设。其中精神文明建设包括:先进个人申请管理和先进集体申请管理

47、。局办管理系统的整体结构如图4.1所示:图4.1 局办管理系统整体结构图先进个人申请管理隶属于港航局办公系统下的精神文明建设模块,同时与先进集体申请管理具有相类似的流程与功能,下面仅以先进个人申请管理为例,进行业务描述与需求提取。4.1.3 先进个人申请需求分析(1)业务需求根据用户的描述以及实际调查,可以确定先进个人申请子系统的业务需求为以下几点:l 进行网上先进个人申请录入;l 推荐单位和市级部门对先进个人申请的的审核;l 进行先进个人申请的管理,包括查询,删除,修改,查看详情和打印功能;l 不同等级的用户拥有不同的查询和使用权限,保证不同办事机构在自身权限内获得有用的业务处理信息,保证信

48、息的安全性。(2)用户及权限的划分根据与用户的沟通和实地考查,将用户分为:地方管理用户、市级推荐单位用户、省级管理用户等若干等级,其权限与相关的职责如下:l 地方管理用户:主要是办公室系统的一般使用用户,他们只负责先进申请相关业务的录入功能,同时具备对先进个人申请的检索查看等功能;l 市级推荐单位用户:主要是地方办公室系统的主管部门用户,他们负责对上报的申请进行汇总与初审。l 省级管理用户:是主管部门最高级别用户,他们拥有最高的用户权限,他们负责对上报的先进申请文件进行审核与监督。(3)系统的业务流程分析UML(Unified Modeling Language,统一建模语言)是一种标准的图形

49、化建模语言,它是面向对象分析与设计的一种标准表示。同时,是一种定义良好、易于表达、功能强大、普遍适用且可视化的建模语言。它溶入了软件工程领域的新思想、新方法和新技术。UML将是面向对象技术领域内占主导地位的标准建模语言,目前UML获得了工业界、科技界和应用界的广泛支持,成为可视化建模语言事实上的工业标准。泳道图是将模型中的活动按照职责组织起来。这种分配可以通过将活动组织成用线分开的不同区域来表示。由于它们的外观的缘故,这些区域被称作泳道。它可以方便的描述企业的各种业务流程,能够直观地描述系统的各活动之间的逻辑关系,利于用户理解业务逻辑。8先进个人申请的泳道图如下:图4.2 先进个人申请的泳道图

50、用例图:是从用户角度描述系统功能,并指出各功能的操作者,对系统行为的动态描述。它代表系统中各个项目相关人员之间就系统行为所达成的契约。先进个人申请用例图如下:图4.3 先进个人申请用例图4.2 系统设计阶段4.2.1 系统设计原则本系统遵循以下建设原则:14(1)统一规划、统一标准、城市建网、网络互连、分级使用、分步实施。(2)遵循国家劳动部要求与国际ISO标准,为今后的进一步发展奠定基础。(3)系统建成即可发挥作用,提高工作效率和管理水平。(4)采用当前较成熟和先进的主流设备,采用先进的技术,在保证优良性能的基础上,尽可能降低造价,使整个系统高效地发挥作用。(5)系统高度的可靠性,保证系统可

51、以在任何条件和环境下均能正常工作;安全性方面有针对性地采取一些措施,使系统能安全地运行,避免人为因素及计算机病毒等造成的破坏作用,争取做到防患于未然。(6)充分利用国家和行业公用通讯设施,遵循通信技术以及国家在技术体制上的有关规定,充分保护利用现有的软、硬件资源。(7)网络技术具有先进性,能适应未来技术的发展,便于发展、便于扩充、灵活性强。(8)系统具备相当的先进性和足够的事务处理能力,以保证在信息时代的新形势下能够准确、迅速及时地处理日益增长的各种信息数据,实现公路客运资源的协同工作。(9)系统具有一定的可扩展性和升级更新能力,适应主管单位的宏观管理需要和企业的规模化经营。计算机技术的不断发

52、展,同时保障软硬件资源的充分利用。(10)作为当前知识经济发展形势下的现代管理系统,系统可以将道路运输行政管理部门连接在一起;协同处理有关业务;系统还可以通过国际互联网(INTERNET)把相关信息通过WEB发布到网上,便于展开网络交流管理活动。4.2.2软件基本架构的搭建本系统功能的实现,是参考J2EE框架结构,结合WebWork、Spring和Hibernate的相关技术特点,采用了MVC和DAO的设计模式,来完成J2EE架构的具体设计。软件体系结构中采用三层结构:Web表示层、业务逻辑层、持久层。各个层次之间具有不同的功能,并保持清晰的隔离,以使彼此独立存在。三层之间的关系如下图:9图4

53、.4 软件体系三层结构间的关系(1)表示层采用WebWork框架WebWork的工作,总得来说是提供一个流程的控制:通过接收用户请求,将基于http的请求参数和相关的环境变量封装到通用的ActionContext中。Xwork接收到WebWork传递过来的ActionContext,放入ValueStack。执行拦截器before()方法,执行Action的execute()方法,执行拦截器after()方法委托给Service执行,并返回Result,根据设置显示结果给客户端。WebWork表示层的基本处理流程如下图所示:图4.5 表示层的处理流程(2)业务层采用Spring技术业务层(se

54、rvice layer)属于系统的核心部分,也就是业务核心的载体-领域模型所在的位置,还包括业务过程控制以及事务控制等服务。业务层职责如下: 处理应用程序的业务逻辑和业务校验;管理事务;允许与其它层相互作用的接口;管理业务层级别的对象的依赖;在显示层和持久层之间增加了一个灵活的机制,使得他们不直接的联系在一起;通过揭示从显示层到业务层之间的Context来得到business services;管理程序的执行(从业务层到持久层)。Spring提供了控制倒置(inversion of control,简称IoC)和注射依赖设置(setter dependency injection)这些方式,用

55、XML文件将对象连接起来。 IoC是一个简单概念(它允许一个对象在上层接受其他对象的创建),用IoC这种方式让对象从创建中释放了出来,降低了偶合度。16Spring业务层的处理流程如图所示:图4.6 业务层的处理流程(3)持久层采用Hibernate技术持久层(persistence layer)主要负责业务数据的持久性存储。持久层采用Hibernate技术持久化数据。但是一个基于关系数据库系统(RDMS)的应用程序,一般不会只采用一种持久化技术,很多情况下除了使用O/R Mapping技术,可能出于性能等特殊原因的考虑,需要直接进入JDBC技术。Hibernate作为一种持久层框架和Spri

56、ng搭配在一起,使开发人员使用面向对象的操作方式来操作数据库记录。更为重要的是,应用系统在不同数据库间移植非常方便,只需在配置文件中更改即可。15简单的说持久层主要完成数据库表的构造、持久化对象和*.hbm.xml映射文件的编写。Hibernate作为持久化框架向上屏蔽了不同数据库间的差异,可以很容易移植到不同的数据库。Hibernate持久层的处理流程如图所示:图4.7 持久层的处理流程图4.2.3 类图设计类图:它描述的是一种静态关系,在系统的整个生命周期都是有效的。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构即:类的属性和操作。图4.8显示了先进个人申请管

57、理的类图:先进个人申请类继承了人员信息类和部门信息类,同时初审类和复审类又继承了先进个人申请类。图4.8 先进个人申请的类图4.2.4 数据库设计在数据流程分析的基础之上,我们已经基本了解了用户所要使用的数据,这时就应进行详细的数据分析从而建立数据模型了。在进行数据库设计的时候,要遵循下面的几个原则:7(1)通用性原则数据共享不仅仅局限于“数据共用”,还应该满足:数据库不依赖于各个子系统,既由各子系统共用:数据与程序严格分离,数据的增删、更改不需要更改程序。这就要求数据库必须具有良好的通用性,即:数据具有透明性;通用的数据操纵语言供各子系统各应用程序调用数据。(2)一致性原则数据交叉现象不仅造成大量的数据重复,而且难以统一更新,产生数据混乱的现象,导致数据的不一致、不唯一。因此,数据库必须统一管理。同时,为了减少由于数据不一致所造成的损失

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论