CXF学习(二)--- WebService
来源:互联网 发布:手机蓝牙网络共享电脑 编辑:程序博客网 时间:2024/06/06 07:46
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 简介
- CXF学习(二)--- WebService
- CXF实现webservice (二)
- 使用CXF框架学习搭建WebService(二)
- webService学习之路(二):springMVC集成CXF快速发布webService
- webservice之CXF注解实现(二)
- (二十四)Webservice CXF
- WebService CXF学习(高级篇2):CXF+Spring+Hibernate
- WebService CXF学习(高级篇2):CXF+Spring+Hibernate
- WebService CXF学习(入门篇5):CXF+Spring+Hibernate
- Apache CXF Webservice学习笔记(一)
- Webservice CXF学习
- WebService CXF学习 1
- java webservice CXF 学习
- WebService CXF学习:HelloWorld
- WebService CXF学习笔记
- CXF学习创建WebService
- WebService CXF学习
- 调用webservice服务(二) 学习笔记/cxf拦截器
- HDU 1847 Good Luck in CET-4 Everybody!【博弈论】
- 大数据与企业的数据化运营
- 莱特币(litecoin)矿池(p2pool)架设之WINDOWS篇
- 好的是大哥大哥
- 华为OJ(输出单链表倒数第K个节点)
- CXF学习(二)--- WebService
- python 爬虫中文乱码问题
- UVa 537 Artificial Intelligence?
- JavaScript面向对象精要
- Oracle归档模式与非归档模式设置
- 黑马程序员——其他8:eclipse使用技巧总结
- 华为机试——两个超长正整数的加法 java
- 操作系统面试题整理
- hdu 1078 记忆化搜索