一、前言
本文以一个教学网站的建设思路为例,探讨利用J2EE技术和WebSphere产品构建网站的模式和方法。
二、设计网站系统
我们的样例是一个教学网站系统,它的软件包括WebSphere Application Server应用服务器软件V4.0、WSAD开发工具和DB2数据库(非商业用途),硬件为IBM xSeries服务器。在本文中,主要探讨MVC的开发模型和常用的J2EE模式,关于网站建设的其他细节就略过不提了。
(一)系统用例图
分析网站的系统目标后,我们首先具体化系统功能,形成一张用例图,定义一系列的可重构组件,以指导随后的开发工作。
图1 Use Case picture
(二)组件化设计
在构造网站系统时,我们把每层的系统想象成拥有多个"槽"的装置,开发人员可以向槽中插入组件以扩大其能力,也可以通过继承或其他机制具体化组件系统。这些组件可以是开发人员为该应用系统开发的,也可以是以前开发好的复用组件。在这种分层体系结构中,每个应用系统都表示为一个单独的系统。每个系统都采用组件构造。每个组件系统又可以通过其他下层组件系统构造。重构人员采用一组与特定应用系统领域和业务有关的组件或顶层中的组件系统来构造每个应用系统。
结合J2EE,让我们首先了解J2EE体系中的组件构成情况,如图2所示。
图2 J2EE组件打包策略
在上图中可以看出,不同的组件归档到不同的文件包中,这样就保证了一个组件的"插拔"不会影响到其它的组件。根据应用系统组件的功能,我们可以把它们分为动态组件和静态组件。静态的组件包含网页文件,主要用于放置教学资料和参考文章。动态组件则包括各种功能模块,如论坛系统、模拟测验系统等。
应用系统组件之下是于特定业务有关的组件。在这里,我们可以添加非Java编写的一些程序,用于处理特定内容下的操作,比如模拟测验系统中的出题模块。当然,要考虑到上层组件调用的正面接口问题。对于这层组件,我们能够随时替换,只要其提供的数据符合上级正面的要求。
以上两级组件之下是J2EE应用服务器和操作系统,整体如图3所示。
图3 计算机组成原理网站系统组件架构图
(三)利用J2EE模式开发组件系统
下面着重介绍开发过程中使用的J2EE模式,这些模式都是通用类型的。
本系统采用MVC开发模型,即Model-View-Controller。Model是指应用程序的数据,以及对这些数据的操作;View是指用户界面;Controller负责用户界面和程序数据之间的同步。这种模型的好处在于分离不同功能的代码,便于以后的维护,还有利于在项目小组内按照小组成员各自的擅长进行分工,有利于三个部分并行开发、加快项目进度。
为了使各开发人员协调一致,为其他组件提供一致和标准的正面,增强系统的可维护性和可复用性,我们广泛采用了SUN公司提出的基于MVC的设计模式。
图4是用户注册模块的UML图,我们将结合这个模块具体阐述各模式的特点和在本系统中的实际应用。
明确了所采用的体系和模式,下面具体设计类的属性和方法,通过设计完善的接口和继承、重载等方法进行重构。模块的UML的类图表示如下:
模块的UML的类图
结合上图,让我们看看这个模块中都运用了哪些模式。
1. 表示层模式
系统的表示层集中了MVC模式中的View与Controller。该系统用JSP代表View,用Servlet代表Controller。在Controller这一模块中,又采用了视图助手、分发者与值对象模式,以增强系统的模块化,提高维护性。
(1)前端控