Web系统结构调整实例及分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Web系统结构调整实例及分析

张兆雷 佟秋利

(清华大学计算机与信息管理中心 , 北京 100084)

E-mail : zhangzl@

摘要基于struts的web项目在开发和维护的过程中,系统结构会逐渐偏离最初的设计,这会影响系统的性能和可维护性,为了保证系统正确运行,需要对系统结构进行修复。本文根据对校园信息化系统的一个web项目进行结构调整的实例,通过分析web系统的特性,提出适用于web系统结构修复的方法,包括实施的原则和流程。这篇文章提出的方法的优势在于通过较少的工作量就可以显著的改善web系统的结构,增强系统的可维护性。

关键字Web; MVC; struts;结构修复

中图分类号: TP311

The Application and Analysis of Web System Architecture Repair

Zhang Zhaolei Tong Qiuli

(Computer and Information Management Center of Tsinghua University,

Beijing 100084)

Abstract: As a Web Application which is based struts framework is developed and maintained, its architecture will drift, and this situation will weaken the performance and the maintainability of the system. In order to eliminate the problem, we should do some repair work on the system architecture. The writers have worked on a Web application of Campus-Wide Information Systems (CWISs) and repaired the system architecture successfully. In this paper, we will analyze the characteristic of Web system, and summarize some principle, method and the flow which could be used in the architecture repair of Web system. The highlight of our method is that we could get twice the result with half the effort and improve the system architecture and maintainability remarkably.

Keywords: web; mvc; struts; Architecture Repair

0 引言

在进行企业级web开发的过程中,设计架构[5]对开发的效率和成功率的影响越来越大。struts是近些年来众多轻量级设计架构中比较优秀的一个。struts架构采用MVC分层设计思想,将开发项目分为视图(View)、控制(Control)、模型(Model)三个不同功能层次,将业务逻辑处理和数据显示分离[1][6]。采用MVC的分层结构,主要目的是明确web系统的功能分配,减弱各个组件之间的耦合性,进行模块化的开发。模块的组件化和模块之间的低耦合性利于系统的分布式部署、提高系统的性能和可维护性。

struts提出了分层和分模块的思想,但是如何对web项目进行模块划分并没有统一的标准,而且web项目需要大量开发人员和较长时间,不易组织,需求变更频繁,因此,在web项目的开发和维护过程中,结构会逐渐偏离最初的设计。一般情况下,这个问题会影响项目的后期维护和再开发,严重的会降低系统的性能,甚至使系统崩溃。解决这个问题的方

法,主要包括两类,一类是在软件中集成在运行时进行自我修复的机制(self-repaired design)[10]。主要是通过一些原则和工具来辅助软件设计[11-16];另一类是在项目完成后对项目框架

进行分析和调整,重构系统架构(Architecture Reconstruction),消除产生问题的隐患。这类方法的研究工作主要包括:代码启发式的自底向上的结构修复[7];基于软件系统体系结构框架的结构修复[9];以及综合利用多个层面的框架进行软件系统结构修复[8]。实际工作方面,John B.Tran等人对linux下的开源软件进行结构调整的工作为我们提供了成功的范例。到目前为止,这些研究和实际工作,都还没有应用到web开发领域。Web软件开发具有其自身的特点[5],需要研究适应web特点的结构修复方法。

本文作者在实际工作中,通过分析struts框架的特点,参考linux软件项目结构调整的方法,实现了对web项目进行结构调整的实例,取得了良好的效果。本文的主要内容是提出对web项目进行结构调整的流程和方法,与linux软件结构调整不同的地方是不仅对模块而且对系统层次划分进行调整,同时以保证数据流的完整性为原则。之后,我们会探讨结构调整活动对web系统的影响。

在第二部分中,我们将讨论一个实用性的struts的框架。然后在第三部分介绍我们进行web项目结构调整的方法。利用这种方法对一个校园信息化web系统进行结构调整的流程将在第四部分详细说明,最后,我们总结这些工作的意义、成功和不足之处,提出下一步的目标。

1 Struts框架

1.1 struts基本框架

在前面提到,struts的基本框架主要由三部分组成:视图(View)、控制器(Control)、模型(Model)。这三部分的功能划分为:

模型(Model)

分为两个部分:系统的内部状态和可以改变状态的操作(业务逻辑)[2]。内部状态通常由一组Value Object(VO)类表示。根据设计或应用程序复杂度的不同,这些VO类可以是自包含的并具有持续的状态,或只在需要时才获得数据(从底层数据库)。

视图(View)

视图主要由JSP建立,负责表单数据的显示。

控制器(Controller)

接收所有的请求,转发到业务逻辑处理模块,并将处理结果返回给页面。通过struts-config.xml 文件配置控制器。

1.2 实际应用框架

为了适应各种特殊的应用环境,实际开发的过程中使用的struts框架会与其基本框架略有不同。在我们应用struts框架建设校园信息化web系统的过程中,由于校园信息化web 系统规模不会很大,模型组件完成的功能比较简单,所以,为了减少工作量,对struts的模块划分进行了适当调整。

经过调整之后的struts的结构图如图1所示:

相关文档
最新文档