您的位置:首页 > 其它

CXF学习(二)--- WebService

2015-08-09 16:16 218 查看
Apache CXF 框架 是一个开源的 WebService 的框架,想要学习CXF,还是要了解一下WebService吧。 昨天我们提到了WebService几乎成为了SOA的一个行业标准了,那我们来看看这个“标准”是怎么样的吧。

首先,我们要搞清楚什么是WebService,在W3C官网上可以找到这样的内容:

什么是Web Services?

- Web Services 是应用程序组件

- Web Services 使用开放协议进行通信

- Web Services 是独立的(self-contained)并可自我描述

- Web Services 可通过使用UDDI来发现

- Web Services 可被其他应用程序使用

- XML 是 Web Services 的基础”

关于W3C的定义理解起来并不是那么难,下面我们根据一张图来分析一下WebService,下图是一张WebService体系结构图,从图中我们可以看到这里有三个角色:服务提供者、服务请求者、服务注册中心。这些三个角色都是自主独立运行的应用程序,相互



间依赖性不强,服务提供者制定好开放性契约、协议,把自己的服务发布出去,我们可以发布到服务注册中心去;然后服务请求者在服务注册中心去发现所需的服务,然后再向服务提供者发起请求,就这样,模块间就只通过我们所开放的契约协议来进行通信,模块之间不用清楚对方是如何工作的,这些机密只有自己知道。服务提供者向符合契约的请求提供服务、提供结果,服务请求者请求结果,服务注册中心为两者通信提供中介服务。

WebService的结构大致就是这样,与前面所讲的SOA没多大不同(毕竟WebService就是SOA的一种实现方式),值得我们去关心的WebService三个基本元素:SOAP、WSDL 、UDDI。

WebService — SOAP

SOA体系结构里面,服务之间的通信都会显得格外重要。在WebService中大部分通信是通过SOAP(简单对象访问协议,Simple Object Access Protocol)来完成的,而SOAP是基于XML、HTTP实现的,消息发送端将数据封装成XML消息,接收端将接受到的XML消息解析成符合自己想要的数据,通过HTTP协议来完成数据传输。这样任何一个支持XML、HTTP的平台都可以用使用SOAP协议。但值得注意的是SOAP是独立于底层传输机制的,应用程序可以选择自己的数据传输协议(像我所在的公司使用WCF时使用的Net.Tcp)。

WebService — WSDL

WebService中,服务提供者提供的服务方法是给请求者调用的,由于对于请求者而言,服务的方法是透明的,请求者并不知道服务端提供了怎样的服务,这时候我们就需要WSDL了,WSDL 即 Web Services Description Language ,他描述了Web服务以及如何调用这些服务,下面是我之前练习WCF时生成的一个WSDL部分代码,他描述了我在服务中所提供的一个Add方法。

<wsdl:message name="ISysParaService_Add_InputMessage">

<wsdl:part name="parameters" element="tns:Add"/>

</wsdl:message>

<wsdl:message name="ISysParaService_Add_OutputMessage">

<wsdl:part name="parameters" element="tns:AddResponse"/>

</wsdl:message>

<wsdl:message name="ISysParaService_Add_TransferExceptionFault_FaultMessage">

<wsdl:part xmlns:q1="----这段代码不方便公布-----" name="detail" element="q1:TransferException"/>

</wsdl:message>


WebService — UDDI

WebService中UDDI(UDDI 即 Universal Description,Discovery and Integration,也就是通用的描述,发现以及整合)呢,简单来讲就是我一直提到的服务管理者,就相当于饿了么外卖,他管理这些服务信息,方便请求者查询。这也就不多描述。

学习过程中发现这篇来自博客园的文章给了我很大启发:WebServices 简介
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  soa cxf web service