admin 管理员组

文章数量: 1086019


2024年6月2日发(作者:伦勃朗作品赏析 浪子回头)

第24卷第8期 电脑开发与应用 

文章编号:1003-5850(2011)08—0033—03 

基于SOA架构下的J2EE轻量级应用框架的研究 

The Research on J2EE Lightweight Appl ication Framework Based on SOA 

杨 波蔡清明 段富 

(太原理工大学计算机科学与技术学院 太原030O24) 

【摘 要】针对B/S结构web应用系统的开发现状,提出将SOA思想融入J2EE分层体系结构,将Web Services 

技术使用于J2EE轻量级框架中,从而使Web应用程序的开发更加高效、开发出的系统具有可扩展性、更加富 

有弹性。并将这一开发模式应用于高校教学质量监控系统的开发过程中,取得良好效果。 

【关键词】面向服务体系结构,J2EE轻量级框架,Web服务 

中图分类号:TP393 文献标识码:A 

ABSTRACT The thesis aims at the development status of B/S structure of Web applications,puts forward to integrating service— 

oriented architecture thinking into the J2EE layered architecture,to using Services technology in J2EE Lightweight framework,SO 

as to make the development of web applications more efficient and the system that has developed scalable and more flexible.And it 

tries to apply this development model to development process of higher education quality control system and good results have been 

gained. 

KEYWORDS service—oriented architecture,J2EE lightweight framework,Web services 

目前,基于B/S结构的Web应用程序在Internet 

上得到了广泛的认可,J2EE平台的成熟又为web应 

用程序进一步的发展提供了更广阔的空间,多层Web 

应用的开发已渐渐成为主流。在开源社区的推动作用 

下,轻量级框架SSH(Spring+Struts+Hibernate)更 

进一步迎合了中小型企业的Web应用程序开发,有取 

面向服务的架构思想,它能够很好地解决企业遗留系 

统,实现原有业务逻辑的移植,通过设计良好的服务, 

可以迅速构建出来灵活而强大的基于面向服务体系结 

构的应用。 

轻量级应用框架在这里是指用Struts实现J2EE 

分层体系架构下的表示层、用Spring实现业务逻辑 

层、用Hibernate实现数据持久层的web开发框架。 

所谓轻量级是和以EJB为核心技术的复杂框架相对 

比而言。轻量级架构的优势主要表现在:它是基于轻量 

代传统笨重的EJB开发模式的趋势。尽管SSH有着开 

源、高效率等诸多优点,但它面对现代企业多变的业务 

流程时显得束手无策,并且在整合企业的异构系统和 

遗留系统上,也出现了无计可施的尴尬。随着技术的发 

展,早在1996年提出的SOA已不再是空中楼阁,一个 

虚无缥缈的概念了,而是经历了产生、成长、成熟等过 

程,正在一步步由概念走向实践。因此,把SOA架构 

思想引入SSH框架,实现Web Services与SSH框架 

级容器的,不需要被迫使用指定的编程模型,而使用一 

个更加简单、基于POJO(普通Java对象)的编程模 

型,使得应用程序易于测试,也不用依赖于容器的 

API。通过依赖注入,轻量级容器减少了组件间的依赖 

性。目前的轻量级架构出现了许多的选择,被广泛采用 

的是Spring框架。通过Spring组合其他专一的开源产 

品如表示层Struts和持久层Hibernate来构建轻量级 

框架。 

的融合,既让SOA的架构思想真正得以实施,也从根 

本上解决了困扰web开发的难题,为web应用程序 

的开发提供更为广阔的发展前景。 

1技术背景 

SOA,即以服务为导向的软件开发思想,其核心 

是实现服务与技术的完全分离,并达到服务的可重用 

性。SoA是一种将应用程序的不同功能单元(服务)通 

2 SOA与轻量级应用框架的融合 

2.1 Web Services融合于Spring的实现 

Spring利用类工厂来创建和配置对象。在Spring 

框架中,已经为基于JAX—RPC的Web Service调用提 

过定义良好的接口联系起来的一种组件模型。接口采 

用中立的方式进行定义,可独立于实现服务的硬件平 

供了一个客户端代理的类工厂实现:JaxRpcPortProxy 

FactoryBean。在配置文件applicationContext.xml中, 

台、操作系统和编程语言,这使得构建在各种这样的系 

统中的服务以一种统一和通用的方式进行交互。基于 

* 2011—04—13收到,2011-06—17改回 

将使用JaxRpcPortProxyFactoryBean来创建和配置 

Web Service的客户端代理。其基本格式如下: 

** 杨波,男,1982年生,硕士,研究方向:管理信息系统。 

基于SOA架构下的J2EE轻量级应用框架的研究 

<t xml version一 1.0 encoding一 utf一8 ’> 

<!DOCTYPE beans PUBLIC”一//SPRING//DTD 

BEAN//EN 

http://www.springframework.org/dtd/spring— 

beans.dtd > 

<beans> 

 ̄bean id=”CurrencyExchangeService” 

class= org.springframework.remoting.jaxrpc.JaxRpc 

PortProxyFactoryBean > 

<property name一 serviceInterface ><value>… 

G/value>G/property> 

Gproperty name= wsdlDocumentUrl >Gvalue>… 

G/value>G/property> 

 ̄property name=H namespaceUri >%value>…<? 

value>d/property> 

Gproperty name一”serviceName ><value>…</ 

value ̄G/property> 

<property name= portName”><value>…</ 

value>G/property> 

</bean> 

</beans> 

其中,serviceInterface是客户端将要使用的远程 

业务接口。wsdlDocumentUrl是WSDI 文件的URI 。 

Spring需要这些在启动时创建JAX—RPC服务。 

namespaceUri 对应到 .wsdl文件中的 

targetNamespace。serviceName对应到.wsdl文件中 

的service name。portName对应到.wsdl文件中的端 

口号。 

随着Web Service技术的发展,其开源开发工具 

也随之出现,其中以CXF框架与Spring的集成性最 

好。CXF具体应用将在实验部分举例。 

2.2融合后的体系结构 

web Services技术融入SSH框架,将在传统的4 

层结构基础上增加服务层。将遗留系统封装成的服务 

和本系统的业务逻辑封装成的服务放于服务层,并由 

SOA核心技术企业服务总线(ESB)将各种服务集成 

管理,这样既不影响原来的SSH应用框架分层架构, 

又能将SOA思想的一些优点带人到SSH框架中。具 

体结构如图1所示。 

3 SOA融合于SSH框架在教学质量监控系 

统中的应用 

教学质量监控系统主要针对教师教学工作进行评 

估,并根据评估结果,利用数据挖掘技术进行分析,为 

指导教师教学给出参考意见。该系统基本要求是由评 

估组织设置评估表、评估指标,然后由学生、教师、专家 

分别对教师进行评估,根据评估数据进行分析,给出评 

估结果。系统包含用户登陆、评估参数设置、评估数据 

图1 web Services融人SSH框架 

采集、评估数据分析、评估结果发布等模块,另外,系统 

要求能与学校已有的一些资源相结合,在校园网平台 

上,实现多系统的交互。 

根据需求分析,可以采用B/S和c/s相结合的方 

式实现教学质量监控系统,将评估参数设置、评估数据 

分析等功能用c/s结构实现。评估数据采集与评估结 

果发布使用B/S结构实现。根据上述的轻量级J2EE 

架构分层,实现B/S结构教学质量监控系统的评估数 

据采集和评估结果发布模块,如图2所示。系统将用户 

登录、用户评估、查看评估结果等作为服务向外发布, 

学校其他系统可以通过所提供的服务,查看教师的评 

估结果。 

表f Login.jsp【I Evaluate.jsp;IShowResult.jsp… 

罂—\ 一一—一 

层  ItionServ1--et-¨I l_ _r

 t;

一—

 一

——

 _

_

l 

/ —\ 

用户登录1 l用户评估J l评估结果发布 

服 ◆ ● 々 

务 服务总线 

层 ◆ ● ◆ 

——F用户登录l ——Fl用户评估『 l评估结果发布 

} 

用户管理I I评估处理I l评估结果处I 

服务接H I l服务接口I l理服务接口i 

j 

 I数据持久层 

图2教学质量监控系统Web模块的分层不蒽图 

为了简便起见,以实现用户登录功能为例,介绍 

Spring集成CXF框架的配置以及登录验证服务的发 

布。图3是系统登录的时序图,显示了实现业务逻辑的 

类之间的相互调用顺序关系。用户登录功能的具体实 

现: 

①首先,在工程中引入CXF框架的Jar包。 

②在web.xml文件中加入Servlet描述: 

<servlet> 

<servlet—name>CXFServlet</servlet—nanle 

第24卷第8期 电脑开发与应用 (总631) ・35・ 

<servlet・class>org.apache.cxf.transport.servlet. 

CXFServlet 

</servlet—class> 

天 

<load-on--startup>l</load-・on--startup> 

</servlet> 

<servlet-mapping><servlet-name>CXFServlet</ 

servlet—name> 

<url-pattern>/*</url-pattern> 

</servlet—mapping> 

顶层包 。用户 

图3用户登录功能时序图 

⑧在Spring配置文件applicationContext.xml中 

引入以下CXF配置: 

<import resource一”classpath: META—INF/cxf/ 

cxf.xml |> 

<import resource=”classpath:META—INF/cxf/cxf_ 

extension—soap.xml“?> 

<import resource=”classpath:META—INF/cxf/cxf— 

servlet.xml"/> 

④编写要实现web服务的接口和类。 

⑤在Spring配置文件applicationContext.xml 

发布web Service: 

<iaxws,endpoint 

id = loginservice implementor==H 

edu.tyut.caiqm.Imp1.1oginImpl” 

address= /loginService |> 

启动Tomcat服务器,可以在http://localhost:8080/ 

jxz1jk/loginservice?wsdl地址查看WSDL文件。 

⑥将上述WSDL文件配置于ESB服务器中,并 

配置好出站和入站服务。 

⑦客户端调用web Service: 

<jaxws:client 

id一Ⅳclient”address一”http://localhost:8080/jxzljk/ 

test/l0ginService serviceClass= edu.tyut.caiqm・interface1・ 

LoginInterface |> 

<bean id一 I login class edu-tyut-caiqm・action. 

LoginAction”> 

<property name一”client“ref H client f> 

</bean> 

⑧在struts.xml 

文件中配置与Spring文件中 

bean的交互: 

<action name—H loginAction”class=“login“> 

<result name=”reload“>/Login. sp</resuh> 

<result name=“sue >index. sp</resuh> 

</action> 

⑨在LoginAction.java中实现登录功能: 

public class LoginAction extends ActionSupport{ 

private String username} 

private String password} 

private L0ginInterface client, 

public String execute()throws Exception{ 

//System.out.println(username-4-“H-4-password)| 

hoolean b=client.1ogin(username,password); 

if(b) 

return t SUC'I t 

else 

return“reload”t 

) 

} 

4结束语 

J2EE的轻量级架构在B/S结构应用系统的开发 

中得到了很好的应用,SOA架构技术的发展为实现服 

务与技术的分离、快速应对业务变化以及处理遗留系 

统提供了很好的解决途径。这两者的结合,不仅将 

SOA思想得以真正实施,也给J2EE轻量级框架注入 

了新的活力。采用本文研究的开发框架模式,可以开发 

出易维护、易扩展、易于早期应用系统集成的企业应 

用程序,降低了新旧系统技术之间的跨度,减少企业应 

用的升级成本,有重要的现实意义和广阔的应用前景。 

参考文献 

[1] 王仁福.采用SOA重构企业遗留系统[J].技术与应 

用,2008,15(8)l 60-62. 

[2] 叶军,李志蜀,殷锋,等.Web Services在企业信息 

系统集成中应用架构的研究[刀.计算机应用研究, 

2007,24(6):295—298. 

[3] 

武云庆.Web Services与JZEE相结合的企业应用集 

成框架研究[D].重庆t重庆大学,2006. 

[4] 朱挣雄.基于Spring框架的Web Services系统整合与 

研究[J].计算机应用与软件,2007,24(10):128-132. 

[5] 

李文杰,翁胜利.基于J2EE集成开源框架的研究与应 

用口].计算技术与自动化,2008,11(3):12-15. 

[6] 

申庆峰,段富.基于轻量级J2EE架构的物资申购系 

统口].电脑开发与应用,2008,21(7):48—5O. 

[7] 

梁爱虎.精通SOA:基于服务总线的Struts4-EJB+ 

Web Service整合应用开发[M].北京:电子工业出版 

社,2008. 


本文标签: 评估 系统 应用 服务 开发