Web Services技术

背景:为了方便理解,可以先认为:Web Services = http + xml,而现在流行的Restful可以认为是:Restful = http + json,当然其实这两种说法都是很不严谨的,这么写只是为了方便理解。

Web Services特点介绍

WebServices 提供一个建立分布式应用的平台,使得运行在不同操作系统和不同设备上的软件,或者是用不同的程序语言和不同厂商的软件开发工具开发的软件,所有可能的已开发和部署的软件,能够利用这一平台实现分布式计算的目的。WebServices的思想是:使得应用程序也具有 Web 分布式编程模型的松散耦合性。

可以先认为Web Services是一项技术,可以实现不同平台,不同系统的外部调用,比较适合异构系统之间的调用,主要是使用了:HTTP请求协议和XML数据格式,由于国外现在还是在大面积使用Web Services技术,所以还是了解一下比较好。

关于Web Services会听到很多其他的名词,这里可以做一下简单的普及:

xsd是什么?

xsd(XML Schema Definition):是用来描述XML的文档结构的,是属于DTD的替代者,因为xsd是基于XML编写,而DTD不是,而且xsd支持数据结构,支持命名空间等等,所以现在很少人使用老掉牙的DTD了。

SOAP协议是什么?

SOAP(Simple Object Access Protocal):SOAP协议是基于HTTP协议的,基于POST请求发送数据,如果要发送发送一个SOAP协议,需要设置特定的请求头或者是特定的Content—Type如下:

SOAPAction: "http://WebXml.com.cn/getSupportCity"
或者
Content—Type:application/soap+xml

​ 这个时候就可以认为是一个SOAP请求了,但是SOAP请求没有这么简单,我们还需要定义数据格式,SOAP请求对数据格式也是有严格要求的,如下:soap:Envelope是必需的,还有其他元素,Header,Body等等,发送的数据要包含在这里面;

<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Header>
  <m:Trans xmlns:m="http://www.w3schools.com/transaction/"
  soap:mustUnderstand="1">234
  </m:Trans>
</soap:Header>

<soap:Body>
  <m:GetPrice xmlns:m="http://www.w3schools.com/prices">
    <m:Item>Apples</m:Item>
  </m:GetPrice>
</soap:Body>

</soap:Envelope>
WSDL是什么?

WSDL(Web Services Description Language):WSDL是用来描述Web Service的,它用XML的格式描述了WebService有哪些方法、参数类型、访问路径等等。我们要使用一个Web Service肯定首先要获取它的WSDL。Web Service服务器端首先要通过一个WSDL文件来说明自己家里有啥服务可以对外调用。

将WSDL文件保存在Web服务器上,通过一个url地址就可以访问。客户端要调用一个WebService服务之前,要知道该服务的WSDL文件的地址。Web Service服务提供商可以通过两种方式来暴露它的WSDL文件地址:1.注册到UDDI服务器,以便被人查找;2.直接告诉给客户端调用者。

(提示:IDEA能根据你的Web Service生成WSDL,也能导入WSDL生成响应的代理类代码。)

番外篇:可以认为WebService平台的三大技术分别是:XML+XSD,SOAP,WSDL。可以认为,XML+XSD定义了客户端的数据格式,SOAP定义了传输协议,WSDL定义了服务端的有哪些服务。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值