CXF学习(二)--- WebService

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


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 简介

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值