基于J2EE与Ajax的Web应用架构设计
2011-04-10李红娟
李红娟,温 喆
LI Hong-juan,WEN Zhe
(石家庄学院,石家庄 050035)
0 引言
Web2.0技术是以Blog、RSS、Tag、P2P、wiki等应用为核心,根据Ajax、XML等新技术及新理论而实现的新的Internet应用模式。其之所以能够快速地发展,主要是由于其采用了全新的Ajax(Asynchronous JavaScript and XML)技术。与传统的Web技术相比,Ajax技术克服了B/S(Browse/Server)模式的瓶颈带宽问题,可以使用户像使用桌面软件一样方便、快捷地进行浏览,并且不用安装特别的控件与插件等东西;完善了和服务器通信的方式,采用异步方式实施和服务器通信,能够不通过刷新方式页面就能和服务器实施数据的交换,极大地提高了交互性能;采用了动态页面的开发方式,提高了Web页面的显示效果。
因此,本文充分利用了J2EE平台的丰富功能及Ajax的性能优势,构建了一种新的基于Web2.0模式的应用架构,该架构和未来的Web技术的发展趋势相一致,具有较强的实践与参考意义。本文对Ajax技术原理及Ajax框架进行了探讨,对于基于J2EE平台与Ajax技术实施Web2.0模式开发的架构,本文给出了详细的设计方法,通过整合和改进Ajax框架的方法,开展了客户关系管理系统架构开发工作。
1 MVC设计模式
MVC设计模型原理如图1所示。
图1 MVC设计模型原理图
视图(View)表示与用户的交互界面,针对Web应用而言,能够概括成HTML界面。模型(Model)为对业务状态/流程的处理,对业务规则的制定。控制(Controller)能够认为是自用户处接收请求,把模型和视图进行匹配,然后一同完成用户的请求。
2 总体设计概述
本文通过一个客户关系管理系统的设计,来对采用Ajax和J2EE的构建Web应用架构进行方法的阐述。客户关系管理系统是为企业提供统一协调与部署企业的业务查询、销售活动、业绩考核等设计的管理系统。针对系统的不同用户角色类型,进行了以下几个主功能模块的设计,即:客户模块、系统管理模块、联系人模块、报表模块、联系记录模块、知识库模块以及目标管理模块。为了保护系统的安全,还设计了用户登录模块,能够对不同的用户实施权限的管理功,并采用MD5加密算法进行密码的严重,增强系统的安全性。各功能模块需求设计如下:
客户模块:实施客户与销售对应的查询、新增及更改等关系,更改客户与组相对应的关系,并对客户基本资料进行必要的修改。
系统管理模块:新建用户组或功能组,把用户添加至该组中,并给用户赋予新的角色,设置用户不同的权限。
联系人模块:新增联系人,查询联系人,更改联系人信息。
报表模块:形成企业的销售活动报表。
联系记录模块:实施对项目的创建、修改及搜索等操作;依据实际的项目,进行客户、联系人及相应活动记录的查询。
知识库模块:将销售工作中通用的资料信息进行存储,包含了下载资料及上传资料两个部分。
目标管理模块:对每个销售独立地设置某阶段的销售目标。
登陆界面:用户登陆首页,能够对用户任务完成及下级用户等情况进行查看。
3 基于Ajax技术的架构设计
3.1 架构设计特点
采用Ajax技术架构的应用主要有以下特点:1)全新的富互联网应用 (Rich Internet Application,RIA)Web体验,用户可以进行平滑的Web交互以及连续的局部刷新,而不用传统的不断刷新页面的方式;2)合理的Ajax分层架构,把逻辑层与表现层进行了划分,层次划分更加清楚,基础类库移植性更强;3)异步通信机制更加完善,其采用了Ajax技术的通信方式,将XMLHttpRequest组件的通信机制进行完善,从而实现Ajax的框架设计。
3.2 Ajax页面控件设计
3.2.1 表单(Form)
设计目标:表单设计的目标是帮助用户方便地在一个窗口中,进行全部项目的编辑,然后进行一次性的提交,从而可以提高用户工作效率。
实现概要:表单的属性主要有:表单条目可以按照类别分类,能够容纳页面的控件,可以完成Ajax的异步提交功能。
3.2.2 组合编辑框(ComboBox)
设计目标:其设计目标主要是为了可以提升应用的易用性,力图一次性地选择完成编辑工作,使用户的工作效率可以极大地提高。
实现概要:组合编辑框的主要属性有:条目记录能够编辑、增加及删除,进行异步更新操作;条目记录能够进行排序;实现无刷新异步检测功能。
4 基于J2EE平台的系统架构设计
本系统使用了MVC的三层架构模式来实施开发,即:数据模型层(Model-Tier)的设计是通过JDBC的使用完成持久化处理工作;业务逻辑控制层(Control-Tier)的设计是通过Spring Framework进行业务逻辑的处理;页面视图层(View-Tier)的设计是综合了JavaScript+ HTML+XML+CSS+DOM几种技术,同时与先进的Ajax技术进行结合。
4.1 数据实体逻辑设计
通过功能模块划分能够得出,系统大体可以划分成关联关系数据实体及基本数据实体。基本数据实体主要包括10种类型:用户组数据表、用户信息数据表、销售目标数据表、用户角色数据表、客户信息数据表、销售项目数据表、联系人信息数据表、知识库信息数据表、知识库类型数据表及销售活动数据表。关联关系数据实体主要包含了5种类型:用户/用户组关联表、用户/联系人关联表、用户/角色关联表、客户/活动关联表及用户/客户关联表。客户关系管理系统的数据尸体关联如图2所示。
图2 客户关系管理系统数据实体关联图
4.2 持久层设计
系统持久层逻辑通过JDBC引擎来进行设计,通过DAO设计模式的进行实现。通过JDBC引擎,用户能够以SQL语言形式把访问请求语句编写出来,再通过此接口发送至数据库中,其请求结果通过该接口返回给Java应用程序。JDBC引擎基于简单的基础上,为开发者提供极大的灵活性。而DAO模式为J2EE的一种核心模式,其核心思想就是在具体数据源与业务核心方法二者间增加一层,通过这种方式就能够有效减少二者间的耦合关系。使用了DAO模式后,业务逻辑核心就可以不用关系怎样具体地操作数据库了,因而使整个系统结构层次更加清晰合理。持久层的设计原理图如3所示。
图3 持久层设计原理图
4.3 业务逻辑层设计
业务逻辑层采用了采用MVC设计模式及Spring框架技术进行了实现。Spring框架采用统一的方式来对DAO模式支持,采用Spring框架能够减少很多资源装配、SQL异常捕获以及事物管理等繁杂的代码编写。
Spring框架控制器组件主要是接受用户的请求,并进行更新处理,将合适的视图组件返回给用户。当Web请求出现时,Spring框架的前端控制器会自动分析这个请求,而不进行具体的逻辑处理,将其转发至底层核心控制器实施处理,前端控制器提供一个控制、管理Web请求处理的集中式入口,并于底层核心控制器紧密耦合,并通过核心控制器发送至业务逻辑实施处理,通常该业务逻辑和数据库服务器实施数据交换业务,直到数据交换结果返回后,再提交至Spring框架控制器组件,由控制器组件发送对应的视图,最后,用户通过浏览器进行交互信息的查看。
5 结束语
本文对当前新的Web2.0开发模式实施了研究和设计,对Web2.0模式下的Ajax框架技术与J2EE平台技术进行了仔细地阐述,并设计了基于Ajax与J2EE技术的Web应用架构设计,给出了设计的方法,即整体客户关系管理系统应用架构基于MVC分层模型设计,通过JDBC API引擎设计持久层,通过Spring框架技术设计控制层,通过Ajax技术设计视图层。
[1] 卢雷,万建成,鹿旭东,郭小涛.基于Web应用特点的界面组成及交互模型[J].计算机工程与设计,2006.
[2] 殷旻昊.基于J2EE轻量级框架的敏捷型Web架构研究及应用[D].重庆大学,2008.
[3] 白国枝.基于J2EE/Web架构的安全系统的设计与实现[J].现代电子技术,2008,08.
[4] 王建平.MVC&MVP集成模式在RIA开发中的应用[J].软件导刊,2009,07.
[5] 张琪.基于MVC设计模式的Struts框架设计与应用[D].武汉科技大学,2008.