基于CXF的RESTful Web Service访问服务研究

2017-07-05 20:08张志刚
农家科技下旬刊 2017年6期
关键词:开发人员功能模块开源

张志刚

摘 要:REST(RepresentationalStateTransfer)表述性状态转移是目前比较流行的WebService架构风格,为软件设计定义了一组架构约束和原则。REST的Java实现框架众多,CXF集成了Celtix和XFire两个开源框架,使得开发Webservice的工作变得更加简单,灵活。文章介绍了CXF的基本概念,系统架构,并对CXF的功能模块和实现原理进行了较为详细的介绍。

关键词:REST;CXF;RESTfulWebService;SpringMVC

REST是Roy Thomas Fielding博士于2000年在他的博士毕业论文中首次提出,中文翻译为表述性状态转移,它是一种简单,灵活的架构风格,主要思想是基于Http构建数据访问接口。REST的所有操作均是无状态的,针对不同的访问请求,数据提供统一的接口,返回Json,XML等格式的数据。

目前,有多种基于Java的restful web servie实现方式,比较流行的包括Rails,Axis2,JAX-RS,Restlet,CXF等。其中CXF是一种轻量级的Restful实现框架,该框架已经成为Apache的顶级项目,它可以方便的与各种MVC框架结合使用,为企业级应用系统提供安全,可靠的数据支持。

一、CXF框架

1.概述

CXF是Apache下的一個顶级SOA简单架构,它实现了企业服务总线ESB框架和设计模式。CXF是两个开源项目Celtix和XFire结合的产物,极大的融合了二者的优点。CXF提供多种技术支持,包括web Servivce架构JAX-WS的支持,并支持Binding,DataBing等功能模块的实现,CXF可以与Spring mvc等系统开发架构实现无缝集成使用。

CXF支持SOAP1.1,1.2和XML/HTTP等多种协议规则,通常使用JAX-WS规范作为Apache CXF webservice的实现规范。采用代码优先(Code First)或者 WSDL 优先(WSDL First)可以非常轻松的实现 Web Services 的发布和使用。

2.CXF体系结构

CXF是基于REST架构风格实现的开源技术框架,提供了创建服务的编程模型。它包括七个主要的组成部分,分别是BUS,消息传递和拦截器(Messaging and Interceptors),前端(Front End),服务模型(Service Model), 数据绑定(Data Binding),端口绑定(Protocl Binding),传输(Transports)。其中,BUS是CXF的核心,它为资源的共享提供了可配置的环境。CXF通过消息处理中心,并通过建立拦截请求,方便开发人员进行消息传递,请求处理及错误处理。服务模型包括ServiceInfo和服务,数据通过前端创建,采用ServiceFactory来完成服务生成。数据绑定定义了传输层上数据的具体格式和协议,使开发者方便的进行消息的发送和接口。传输(Transports)层向绑定和前端屏蔽传输的具体细节。CXF的整体架构如下图所示:

二、CXF实现RESTful Web Service的原理

当前CXF已经全面基于REST实现,通过底层封装,使得开发人员只注重于业务逻辑开发,极大的简化了开发web service的难度。

访问服务提供方首先开发和调试Web service服务接口,调试通过后,web服务通过中介发布访问服务接口,并在UDDI注册中心进行信息注册,实现服务的发布过程。Web service调用者向服务中介发出资源请求,中介将根据请求信息查询UDDI注册中心,并提供满足请求条件的资源数据给服务请求者,实现数据绑定,返回的资源描述信息以WSDL形式显示,并且Web页面可以直接查询资源信息,具体原理如下图所示:

三、结语

针对Web service开发问题,本文介绍了一种比较新型的Java Restful实现架构CXF。从概念,体系结构和实现原理三个方面对CXF做了详细介绍。随着RPC,微服务等概念的兴起,基于RESTful的web service相关技术将不断完善和应用。

参考文献:

[1]Fensel D, Bussler C. The Web Service Modeling Framework WSMF[J]. Electronic Commerce Research & Applications, 2003, 1(2):113-137.

[2]孙磊. 基于Spring+CXF实现用户文件上传的WebService[J]. 电脑编程技巧与维护, 2012(3):16-22.

[3]潘冰. 基于Rails的RESTful Web Service研究与实现[J]. 计算机应用与软件, 2010, 27(10):188-190.

[4]文明瑶. 基于Jersey框架的RESTful Web Service的研究与实现[J]. 中国科技博览, 2016(2):361-363.

猜你喜欢
开发人员功能模块开源
五毛钱能买多少头牛
Semtech发布LoRa Basics 以加速物联网应用
基于ASP.NET标准的采购管理系统研究
大家说:开源、人工智能及创新
开源中国开源世界高峰论坛圆桌会议纵论开源与互联网+创新2.0
输电线路附着物测算系统测算功能模块的研究
M市石油装备公服平台网站主要功能模块设计与实现
开源计算机辅助翻译工具研究
后悔了?教你隐藏开发人员选项
功能模块的设计与应用研究