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方法。
WebService — UDDI
WebService中UDDI(UDDI 即 Universal Description,Discovery and Integration,也就是通用的描述,发现以及整合)呢,简单来讲就是我一直提到的服务管理者,就相当于饿了么外卖,他管理这些服务信息,方便请求者查询。这也就不多描述。
学习过程中发现这篇来自博客园的文章给了我很大启发:WebServices 简介
首先,我们要搞清楚什么是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 简介
相关文章推荐
- android调用web service(cxf)实例应用详解
- CXF+Spring+Maven+JBOSS7简单例子
- CXF 生成客户端报错 Two classes have the same XML type ...
- cxf spring mybiats
- Web Service的CXF实现(Spring整合方式)
- 新手初识webservice-理论篇
- 新手初识webservice-实践篇
- Web Service 那点事儿(2)—— 使用 CXF 开发 SOAP 服务
- Web Service 那点事儿(4)—— 使用 CXF 开发 REST 服务
- 工作中的zookeeper
- Apache CXF REST example
- 企业信息化谈1
- SOA 的命运在何方
- 架构设计师与SOA之一
- SOA,面向服务架构
- ubuntu下安装 gSOAP 用于C/C++开发web service服务端与客户端
- Linux下用gSOAP开发Web Service服务端和客户端程序(一)
- Linux下用gSOAP开发Web Service服务端和客户端程序(二)
- cxf 拦截器
- web service, wcf, web api