Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 软件时空 > 软件相关 > WSDL在Web Service中的意义和作用
【标  题】:WSDL在Web Service中的意义和作用
【关键字】:Web Service,c,Web,WSDL,Web,Service
【来  源】:BLOG.CSDN.NET

WSDL在Web Service中的意义和作用

Your Ad Here

1.   WSDL

a)        原理:从XML-RPCSOAP的使用我们可以看到,请求消息都是根据服务提供方的服务接口来生成一个HTTP请求,在请求当中封装所要调用的方法,以及方法调用时的参数。

客户端服务调用代码要完成的任务,也就是使用实现所提供的接口,来声明调用方所需要的方法名及参数,然后由实现根据用户的输入来组合HTTP请求。

这个过程可以这样来描述,首先获取用户输入,然后把输入变成实现所要求的存储格式,然后再把该格式变成HTTP请求。一般情况下,我们需要手工完成到第二步,但是,这个过程显然是可以把他自动化的,自动化的效果就是用户不再需要书写这部分的代码,减少工作量和降低出错几率。

自动化的过程就需要WSDL的参与,他提供了服务方服务的描述,调用方根据这个描述,就可以知道服务所需要的参数个数,然后向用户索取。得到输入以后,实现可以根据WSDL的要求来把输入转换成特定的存储格式,或者直接生成最后的HTTP请求。

对于每个服务,WSDL需要描述两部分的内容,一是接口,二是实现。接口描述了服务的格式,例如服务名,服务参数,服务结果。服务实现则描述了,用户所对应提供的输入如何转换成符合某一实现协议的形式,一般情况下,我们使用SOAP作为实现协议,那么客户端在分析了WSDL文件以后,将会把用户的输入转换成我们已经看到过的SOAP请求,之后的过程就与之前的完全一样。

 

2.   WSDL实例

a)        导言部分:指定了下文将要使用的数据类型和消息类型。

<?xml version="1.0" encoding="UTF-8"?>

<wsdl:definitions name="HelloWorldDescription"

targetNamespace="urn:HelloWorld" xmlns:tns="urn:HelloWorld"

xmlns:soap=http://schemas.xmlsoap.org/wsdl/soap/

xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">

<wsdl:message name="sayHello_IN">

<part name="name" type="xsd:string" />

</wsdl:message>

<wsdl:message name="sayHello_Out">

<part name="greeting" type="xsd:string" />

</wsdl:message>

 

b)        服务接口:描述了方法名,和输入输出参数。

<wsdl:portType name="HelloWorldInterface">

<wsdl:operation name="sayHello">

<wsdl:input message="tns:sayHello_IN" />

<wsdl:output message="tns:sayHello_OUT" />

</wsdl:operation>

</wsdl:portType>

 

c)        服务实现:描述了某一个服务接口如何转换为SOAP请求。

<wsdl:binding name="HelloWorldBinding" type="tns:HelloWorldInterface">

<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>

<wsdl:operation name="sayHello">

<soap:operation soapAction="urn:Hello" />

<wsdl:input>

<soap:body use="encoded" namespace="urn:Hello"

encodingStyle=http://schemas.xmlsoap.org/soap/encoding//>

</wsdl:input>

<wsdl:output>

<soap:body use="encoded" namespace="urn:Hello"

encodingStyle=http://schemas.xmlsoap.org/soap/encoding//>

</wsdl:output>

</wsdl:operation>

</wsdl:binding>

d)        服务位置:指定了SOAP请求所要发送的目的地。

<wsdl:service name="HelloWorldService">

<wsdl:port name="HelloWorldPort" binding="tns:HelloWorldBinding">

<soap:address location="http://localhost:8080" />

</wsdl:port>

</wsdl:service>

</wsdl:definitions>

遗留问题:【上一篇】
求救一个关于commons-httpclient组件在网络连接过程中的速度问题,好奇怪啊。。。:【下一篇】
【相关文章】
没有相关文章
【相关评论】
没有相关评论
【发表评论】
姓名:
邮件:
随机码*
评论*
      
|  首 页  |  版权声明  |  联系我们   |  网站地图  |
CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.