基于J2EE的网络信息系统轻量级开发方案的研究

时间:2023-06-08 08:48:05 策划方案 来源:网友投稿

摘 要:随着信息化的发展,基于大型网络信息系统的复杂性与应变能力弱的特点,出现了许多相应的解决方案。在研究目前系统开发技术和规律的基础上,分析和阐述一种轻量级开发的概念和原则,给出系统实现的技术模式,并以Spring,Struts,Hibernate技术框架的整合构建系统整体的工作流机制,展示轻量级开发的优势。实践证明,轻量级开发降低了系统开发的难度,提高了代码复用性,使系统具有良好的可维护性和可扩展性。

关键词:J2EE;网络信息系统;轻量级开发;工作流机制

中图分类号:TP311.13 文献标识码:A 文章编号:1004373X(2008)1811603

Research on Lightweight Development of Network Information System Based on J2EE

WANG Tong1,CHEN Ling2

(1.Science College,Air Force Engineering University,Xi′an,710043,China;2.Xi′an Communication Institute,Xi′an,710106,China)

Abstract:This paper analyzes and expounds the concept and principle of the lightweight development based on the research on present technology of information system development.It gives the mode of lightweight development and integrated Spring,Struts,Hibernate to build the workflow for system development.The lightweight development reduces the difficult of system development,improves code reuse,and guarantees the maintainability and extensibility of the system.

Keywords:J2EE;network information system;lightweight development;workflow mechanism

J2EE是Sun公司开发的用来设计企业网络信息系统的一种开发平台,适合于大规模、多层次系统的开发,具有可扩展性、稳定性、可靠安全的特点。J2EE为人们提供了一种新的基于B/S结构的开发规范,但随着信息化的发展,大型网络管理系统逐渐呈现出业务密集、代码复杂庞大、应变能力弱、开发周期长等特点,使原有单一的JSP/Sevlet技术已经不能满足信息系统复杂性日益增长的需要。基于J2EE技术的系统开发迫切需要一种优化的架构方案来分解系统的复杂,简化应用开发的过程,提高系统的可维护性和可扩展性。因此,基于J2EE的轻量级开发逐渐成为一种新兴的潮流。

1 轻量级开发的概念

无论从开发的技术还是过程都不能完整地定义轻量级开发,它是一个包罗万象的概念[1]。但轻量级开发通常与一套开发方法、框架以及设计原理一起使用,主要体现在:轻量级方法,即敏捷开发方法,包括极限编程(extreme programming)、 Scrum、动态系统开发、Crystal等。它们以适应性为基础,以人为核心,通过加强人员的沟通、调动客户的积极性,从需求出发,简单快速地交付和重构高质量可工作的软件,是现有开发方法最佳实践的组合。敏捷开发适合于小型开发团队。团队中每个工作人员都要合理地担任起多个开发角色,如项目经理、程序员等。工作中强调人员的协调和沟通,以及开发组件的独立性和可重构性,力求缩短开发周期,满足不断变化的即时需求。

轻量级框架,通过采用插件式体系结构和微内核机制,能够把具有不同功能和特性的应用框架集成在一起工作。“插件式体系结构”把整个系统的开发看作是组件的开发与整合,能够提供对组件的热插拔机制。它不仅要求开发的组件要有较高的功能独立性和统一的标准接口,还要求组件间的依赖关系及数据传递必须以低耦合非硬编码的方式来实现。“微内核”是将实现系统轻量级特性的核心服务提炼出来形成的一个功能独立的模块,是实现系统插件式体系结构和业务功能的基础。它以XML结构化文档来存储配置系统组件间的依赖关系并提供了相应的解析功能,使程序员不再以代码耦合的方式来处理组件间的调用关系。它通常运行在后台,以第三者的身份来管理组件的实例化和组件间的数据通信。

轻量级设计模式,是指程序设计中,对象和集成服务之间要松散耦合,允许组件的编写尽量简单化自由化,鼓励人们使用普通的 Java 对象(Plain Ordinary Java Object,POJO)编程,而不是严格地遵循规范,艰苦地编写类似于EJB 的重量级面向组件的业务逻辑或领域模型。

2 轻量级的原则

在轻量级开发的实践中,还需要遵循以下原则:

追求轻量与简单 整个开发过程中的所有工作,无论是构建整体的开发方案还是组件的编写与重构等具体实际的开发工作,都应当体现这一基本原则。轻量级开发是追求开发方法和工作的轻量与简单,并不意味着只适于开发规模小且功能简单的系统,而是要求开发人员在满足系统功能要求的基础上尽量采用实用、简单的方法(包括合并过程、集成技术)去简化和解决问题,摆脱开发中繁琐、复杂、低效率的工作。

适应性 调动客户参与开发工作。开发人员能够根据客户的即时需求快速地构建出可工作的组件。这些组件尽管可能充斥着很多的bug和漏洞,但只要能够满足用户的需求,不影响投入使用,在轻量级开发中就是允许的。这些组件在以后的需求变更时还可以快速地进行重构、修补和完善。这种以适应性为基础,客户与开发人员同时参与其中的交互开发方式,减小了开发规范的约束,提高了开发的灵活度和工作效率,缩短了开发周期,保证了产品按市场需求发布,降低了由于开发周期过长所带来的风险。

开放性 网络信息系统的轻量级开发必须适应网络技术和数据库技术的发展,能够充分利用各种开发技术的优势,使开发者最大自由地选择使用新技术、新成果,来提高系统开发工作的质量和效率。

3 轻量级系统开发的技术实现

轻量级技术在遵循J2EE开发规范的基础上,采用轻量级容器(微内核)和插件式体系结构可以集成多种技术和组件模型来开发系统,充分利用了当前的技术优势以提高系统开发的效率。

3.1 轻量级容器

目前最流行的三种轻量级容器是:Spring Framework,HiveMind,PicoContainer,其中以Spring开发最为活跃,它不仅有丰富的产品文档、完整的组件堆,而且具有许多支持整合多种技术的胶水代码,使开发者可以更加轻松地使用J2EE平台的企业服务。不同的轻量级容器包含着相同的设计模式和理念。以Spring为例,它是一个低侵入高扩展的分布式应用系统的开发框架,可以协调和整合系统程序的各个层面(包括Web业务层和数据持久层)。Spring中的胶水代码为其组织和整合应用程序的提供一种方法,使它可以集成多种技术框架在一起工作,如Sturts,JavaServer Faces(JSF),Hibernate以及其他第三方类库。虽然有些框架是相互竞争的,但Spring并不试图只支持一种框架,也没有将开发局限于少量的标准服务,而是让开发者从大量提供的服务中自由选择,甚至可以构建自己的服务。Spring的这种设计理念还得益于工厂模式和依赖注入的机制。工厂模式就是通过一个类把其他具有不同参数或标识的类组织起来统一管理,通过该容器类可以返回其中某个类的实例,即所有类实例化的接口。Spring提供2个实例化接口:BeanFactory和Application Context,其中ApplicationContext是BeanFactory的子类。Spring工厂允许程序员设计开发自定义类和调用第三方组件,并在其组件注册文件bean.xml中配置类或组件的实例化参数。这样就可以在程序中通过调用ApplicationContext或BeanFactory的GetBean方法,根据某个类的ID来创建它的实例。工厂模式增强了Spring容器的可扩展性。所谓依赖注入,即处理组件间数据传递和调用关系的一种机制,包括设值注入(setter方法)和构造注入2种方式。程序员只需在程序设计中直接使用某个实例的子对象属性而不必担心其是否初始化,因为Spirng容器会在程序运行时动态地创建所调用的组件实例。通过依赖注入托管组件使系统组件间的程序耦合变得松散,组件具有相对独立性,利于实现容器的这种插件式体系结构。Spring还包含对AOP技术的支持。AOP,即面向方面编程,是继面向对象设计之后的一种新的编程思想。它允许程序员把系统中影响多个类的行为或横向业务关注点(如日志和事务管理等)封装成可重用的模块,并将它们与Java对象相关联,从而消除了许多重复性的开发工作,提高了系统开发的效率和组件的利用率。胶水代码、工厂模式、依赖注入、AOP技术构成了轻量级容器的核心,为轻量快速的系统开发提供了基础。

3.2 Web业务层

网络信息系统的Web层主要采用MVC规范来实现。MVC规范包含了业务功能模块(Model)、视图表现层(View)、控制层(Controller)三个部分。这3个部分功能独立、分工明确、协同工作,提高了应用的可扩展性及可维护性。Struts作为典型的MVC框架,提供了一套完备的开发规范和基础类库,可以充分地利用JSP与Servlet结合的优点,减轻程序员的工作量,已经成为轻量级开发所支持的Web框架之一。在Struts的MVC结构中,Model部分由ActionForm和JavaBean组成。ActionForm用于封装用户请求的参数,JavaBean则实现业务处理的逻辑(包括数据库的连接与访问、业务数据的逻辑处理等)。View模块采用JSP技术动态输出系统的响应,向客户端呈现业务处理的结果。Controller包括系统控制器(ActionServlet)和业务控制器(Action)两个部分,主要用Servlet实现请求的转发和调用业务模块处理请求。整个Struts的运作由来自客户端的请求驱动。系统控制器自动拦截用户请求,并把请求参数封装成ActionForm对象。如果需要调用业务控制器,则把请求转发给相应的Action处理,否则直接输出请求的JSP页面。业务控制器Action在获得转发的请求后,则调用相应的业务逻辑模块JavaBean来处理请求。Struts的工作流程如图1所示:

3.3 数据连接-对象持久化

轻量级开发框架在系统底层与关系数据库之间采用ORM(对象/关系映射)机制实现持久化操作。ORM是系统中数据持久层上的一类框架的特征规范,主要定义面向对象的程序设计到关系数据库的映射,不仅包括类到表的映射,还包括类间关系到表间关系的映射,使程序中面向对象的操作实现为对数据库中表的操作,是关联程序设计和数据库操作的中间件。与传统JDBC的数据库操作相比,ORM实现了面向对象的数据库操作方式,使程序员不必为程序中多个表的同类操作而进行大量机械的重复性工作,也不必为表间复杂关系的处理而头痛。

采用ORM机制,系统开发既可以利用面向对象程序设计的简单易用性,又可以利用关系数据库的技术优势,满足轻量级开发的要求。目前遵循ORM规范的产品很多,主要有:Hibernate,Entity EJB,Ibatis等,其中Hibernate是最流行的ORM开源框架。

它具有灵巧的设计、优秀的性能、轻量的封装以及良好的可扩展性,是一个面向Java环境的对象/关系数据库映射工具。Hibernate允许程序设计中完全采用普通的Java对象作为持久化对象使用,并以XML结构化文件配置Java类到数据库表的映射。

它还提供了数据查询和获取数据的方法,大幅度地减少在开发时人工使用SQL和JDBC处理数据的时间,释放了开发者95%的数据持久化的编程任务。

4 轻量级开发的应用整合

在轻量级框架机制中,开发者可以随意地选择使用自己熟练或喜欢的开发技术进行整合。以Spring为容器,利用其工厂模式以组件的形式把Web层的Struts框架、数据持久层的Hibernate整合在一起,是实现网络信息系统轻量架构和快速开发的一种方案。在实际应用中,Spring和Struts都需要在Web启动时进行加载。作为后台服务,Spring负责组件的管理和依赖注入,Struts自动拦截客户端的请求并控制请求的转发和处理,实现2种服务的协同工作有2种策略:

(1) Struts的业务控制器Action把请求转发给Spring容器中的bean处理。

(2) 让Struts的系统控制器ActionServlet将拦截到的客户请求直接转发给Spring容器中的bean进行处理。

前者在实现Struts内部映射的请求转发后,还需要在Action中调用Spring的实例化接口WebApplicationContext获取业务bean对请求进行处理,这种方法不仅降低系统的工作效率,而且采用编码的方式将两者整合一起,代码耦合较高。后者是在Struts-config.xml文件中配置Spring的控制器DelegatingRequestProcessor来代替Struts的业务控制器,并让Struts的核心控制器ActionServlet,把请求直接映射到Spring容器中相应的业务bean。这种方案避免了程序中显式地定位工厂,即调用实例化接口,充分利用Spring的依赖注入的特性,是一种低侵入低代码污染的整合方式。Hibernate通过SessionFactory实现与数据库的连接。Spring与Hibernate的整合,把数据源从SessionFactory中独立出来,都以bean的方式组织于Spring容器中进行管理。在实际的J2EE应用中,当建立数据会话时,让Spring采用注入依赖的方式把数据源传递给SessionFactory。这种与数据库建立连接的方式可以实现同一应用中对多个数据库的操作。

其整合结构和原理如图2所示:

5 结 语

随着企业信息化建设的高速发展,企业应用系统不断增加的需求给项目开发带来了众多的挑战。如:必须在有限的时间和预算内开发出有较高质量保证的项目;项目要有很好的可维护性和扩展性,能以较小的花费和代价满足不断变化的即时需求;项目开发必须允许自由地选择开发技术以及最大自由地采用新技术等。因此,企业网络信息系统的轻量级开发具有时代意义。

参 考 文 献

[1]李刚.轻量级J2EE企业应用实战[M].北京:电子工业出版社,2007.

[2]陈鹏,程勇.J2EE项目开发实用案例[M].北京:科学出版社,2006.

[3]Bruce Tate.Secrets of Lightweight Development Success[EB/OL].,2006.

作者简介 王 彤 女,1969年出生,西安人,讲师。主要从事网络信息技术、数据库等计算机应用技术方面的研究。

陈 灵 男,1969年出生,西安人,研究生。研究方向为网络信息系统

推荐访问:信息系统 方案 开发 研究 网络