论文部分内容阅读
随着Web技术的广泛应用,许多企业都迫切要求快速、高效地构建自己的Web业务系统。J2EE(Java 2 Enterprise Edition)是sun公司提供的一个标准的企业应用开发平台,它为我们开发企业Web应用提供了丰富的技术选择。然而,对于大多数中小型企业应用来说,传统的以EJB为核心的J2EE架构显得过于笨重,引入了不必要的复杂性,而且它的O/R映射解决方案Entity Bean被证明是不成功的技术。一个高质量的应用有赖于设计良好的体系结构的支持。如何正确应用J2EE核心技术来设计和构建一个强壮的、具有伸缩性的、可重用的Web应用体系架构是我们所面临的挑战。随着工作流技术的流行,许多企业希望将工作流系统集成到Web应用系统中来。目前,Web应用所能支持的工作流很少,在集成的方式方法上没有统一的标准,很大程度上受到外部应用的限制。因此,在工作流管理系统和Web应用间亟待建立一个性能良好的“粘合层”,最好是独立于不同企业应用的一个标准的集成框架。MVC(Model-View-Controller)模式是随着Smalltalk语言的发展提出的,它是一个著名的用户界面设计架构。MVC模式是众多设计模式中的一种,它为应用系统的开发提供了一种分离的体系结构,即:视图层(View)、控制层(Controller)和模型层(model),这种三层结构随着J2EE的出现使得MVC在Web应用开发中得到了更为广泛的应用。MVC模式不仅实现了功能模块和显示模块的分离,还提高了应用系统的可维护性、可扩展性、可移植性以及组件的可复用性。在实现MVC模式的具体应用框架当中,Apache Struts[1]是一个基于J2EE平台、实现了MVC设计模式的典型框架,控制器(Controller)由Action Servlet和Action构成,视图(View)由一系列标签构成。Struts在Web应用开发中把界面和业务逻辑分离,有利于网页设计者和程序设计者的分工,提高了代码的可重用性和灵活性,便于组件式开发。但Struts框架本身缺乏对模型(Model)的支持,需要开发者自己去定义模型的实现;Spring[2]框架是一个从2003年2月才开始的开源工程,它主要来源于Rod Johnson所著的Expert One-on-One J2EE Design and Development一书,在此书中Rod Johnson倡导J2EE实用主义的思想,并随书提供了一个开发框架的实现。Spring框架以组件工厂(Bean Factory)为核心,同时它自身提供的IoC容器和AOP支持,弥补了以往Web应用框架的一些不足之处。浪潮软件公司的LouShang[7]框架将Struts和Spring框架进行整合,形成了一个新的Web应用框架。该框架不仅拥有Struts框架灵活的视图层和控制层,而且兼有Spring的IoC和AOP机制,因而可以大大提高业务层的重用性和扩展性。但随之而来的是系统代码量的增加,并且LouShang框架缺乏对工作流以及多系统集成的支持。本文在对Struts框架、Spring框架以及浪潮软件公司的LouShang框架的深入研究分析的基础上,结合现实需要,改进和扩展了LouShang框架,使其成为一个支持工作流管理的软件集成框架。该框架在支持工作流的设计方面和应用集成能力方面具有更强的优势。论文的主要工作和创新包括:1.针对LouShang框架对工作流管理支持不足的问题,开发出了一组支持工作流管理系统的Web组件,扩展了LouShang框架对工作流的支持。该Web组件以Web工作流管理系统常用的界面元素为基础,为工作流的视图层提供支持,并且有丰富的表现形式。2.通过对LouShang框架分层结构的研究,开发出基于LouShang框架的代码生成器。代码生成器以表结构为核心,可以生成大部分有规律的数据库操作代码。代码生成器可以生成系统所有层的代码,而且生成的代码有详尽的解释,使LouShang框架的软件开发自动化能力大大提高,同时,既方便了开发人员,又为普通程序员学习LouShang框架的编程带来了便利。3.为解决多系统集成问题,重新设计了LouShang框架的持久层,并利用代码生成器生成持久层经常使用的数据访问方法,为开发Web工作流系统提供底层支持。我们增强了LouShang框架持久层的功能,使大部分的数据库操作直接调用持久层现有的方法就可以实现,提高了Loushang框架的复用程度。在上述研究成果的基础上,应用改进的LouShang框架,设计实现了某银行个人征信系统,目前该系统已成功应用于某银行,达到了预期的设计目标,取得了良好的使用效果。本文对银行个人征信系统进行详细分析设计和实现,并给出了反馈报文模块的具体实现过程。实践证明本文提出的对集成框架的研究和实践工作,能够有效地改善基于工作流管理的软件开发过程,明显提高了Web系统开发的效率和自动化程度。