WSDL内幕 要想使个人或者公司运行Web service,需要提供有关Web service的基本信息。——例如像在哪设置服务,怎样绑定服务等相似的信息。所有的信息都是由Web描述语言(WSDL)文档提供的。在本期专栏中,我们将探讨什么是WSDL,它是怎样工作的,其前景如何。
什么是WSDL? 我们先介绍一下基础知识。WSDL建立在XML语言上,过去常用于创建能够提供重要信息的文档,这些是关于如何设置并运行服务的信息。希望运行Web service的个人或者公司被称为请求者。为了运行一个Web service,请求者首先要设置WSDL文档,这些文档详细介绍了如何运行服务。
一旦找到……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
WSDL内幕
要想使个人或者公司运行Web service,需要提供有关Web service的基本信息。——例如像在哪设置服务,怎样绑定服务等相似的信息。所有的信息都是由Web描述语言(WSDL)文档提供的。在本期专栏中,我们将探讨什么是WSDL,它是怎样工作的,其前景如何。
什么是WSDL?
我们先介绍一下基础知识。WSDL建立在XML语言上,过去常用于创建能够提供重要信息的文档,这些是关于如何设置并运行服务的信息。希望运行Web service的个人或者公司被称为请求者。为了运行一个Web service,请求者首先要设置WSDL文档,这些文档详细介绍了如何运行服务。一旦找到了这个文档,就将该文档下载给请求者。然后检测WSDL,基于找到的信息,一个SOAP请求或者一个请求被送到Web service提供者。服务用SOAP协议将请求的信息发送——实际就是服务自身。附近的信息显示它们是如何联系在一起的。
请求者可以用许多不同的方式取得一个WSDL文档。该文档可能被设置在一个可搜寻的、公共UDDI目录上。因此,任何访问目录的人都在寻找Web service,然后运行该Web service。
但是很少有Web service是这样完成的,因为UDDI目录很少。即便将来UDDI变得极为普遍了,还可以用其它方式寻找WSDL文档。我们可以用许多方式设置WSDL文档,例如,通过HTTP请求,FTP甚至通过电子邮件进行设置。我们也可以在个人UDDI中找到WSDL文档。在许多情况下,当Web service在两个合伙人建立起来之后,我们不必通过公共UDDI目录就可以运行Web service。
WSDL文档的内幕
WSDL文档描述了什么是Web service,并详细介绍了在哪里设置服务,如何绑定该服务以及如何运行服务。
为了做到以上几点,一个WSDL文档包含了许多重要的因素。在这里我们没有足够的篇幅详细介绍每个因素,但是最重要的几个要素包括:
·类型> 和 <信息>要素这些要素描述了网络服务中要传递的信息。<信息>要素实质上就是Web service本身——即将要被交换和被请求的信息
·<绑定>该要素详细介绍了信息是如何在请求者和Web service之间进行传递的,包括像协议和数据格式之类的信息。
·<端口类型 >该要素描述了Web service支持的操作。
·<service>这个要素介绍了Web service的位置
这看起来似乎很抽象,要想更好的了解这些要素,我们还需仔细观察WSDL文档。下面的WSDL文档是由W3C,因特网的标准制定机构建立的,用来展示WSDL是如何工作的。该文档详细介绍了一个提供股市行情的简单Web service。该Web service执行一个单独的操作,获取最后交易价格,我们依靠通过使用SOAP调用这个操作。
WSDL文档:
<?xml version="1.0"?>
<definitions name="StockQuote"
targetNamespace="http://example.com/stockquote.wsdl"
>
<types>
<schema targetNamespace="http://example.com/stockquote.xsd"
>
<element name="TradePriceRequest">
<complexType>
<all>
<element name="tickerSymbol" type="string"/>
</all>
</complexType>
</element>
<element name="TradePrice">
<complexType>
<all>
<element name="price" type="float"/>
</all>
</complexType>
</element>
</schema>
</types>
<message name="GetLastTradePriceInput">
<part name="body" element="xsd1:TradePriceRequest"/>
</message>
<message name="GetLastTradePriceOutput">
<part name="body" element="xsd1:TradePrice"/>
</message>
<portType name="StockQuotePortType">
<operation name="GetLastTradePrice">
<input message="tns:GetLastTradePriceInput"/>
<output message="tns:GetLastTradePriceOutput"/>
</operation>
</portType>
<binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="GetLastTradePrice">
<soap:operation soapAction="http://example.com/GetLastTradePrice"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="StockQuoteService">
<documentation>My first service</documentation>
<port name="StockQuotePort" binding="tns:StockQuoteBinding">
<soap:address location="http://example.com/stockquote"/>
</port>
</service>
</definitions>
正如你所看到的,该文档是建立在XML基础上的,我们需要花几分钟来检验文档;我们不需要为了理解它,就要马上知道XML或者WSDL。我们要特别看看<类型 > 和<信息 >要素,才会知道要请求和传递什么样的信息。我们要注意<绑定>这个要素是如何介绍运输机制(在这里指,soap)以及其它类似细节的。并察看<端口类型>是怎样描述将要执行的信息和操作的。同时我们还要注意,<服务 >域设置了服务本身。
WSDL目前发展程度如何
W3C 还没有最终将WSDL规定为标准。最新版本的WSDL是一年以前递交的1.1版本。要想从W3C查看最新版本,请参阅http://ww普遍w.w3.org/TR/wsdl。但是,WSDL还算不上是一个标准,不过你可以放心的使用它开发Web service,因为WSDL已经普遍为大家所接受。
但这并不代表WSDL没有引起过争议。WSDL是由IBM和微软联合开发的项目,由于两大公司拥有广阔的市场并获得了广泛的支持,实际上已经使WSDL成为了标准。尽管有些人认为WSDL并不是建立和部署Web service的必要条件,其它的方式更为有效。但是其它方式的成效并不显著,在不远的将来,WSDL最终会成为Web service世界的核心。
相关推荐
-
联合创新,携手共赢 华为与Commvault签署全球合作联盟协议
【中国,上海,2015年9月19日】在2015年华为云计算大会上,全球领先的信息与通信解决方案供应商华为与美国知名的数据管理软件及相关服务主要供应商Commvault签署全球合作联盟协议。基于合作协议,双方将会加大投入数据中心备份解决方案在云化环境下的“可服务化”技术研究 。Commvault公司全球业务发展副总裁Andreas May、华为IT数据中心解决方案总裁马力出席签约仪式。
-
专家全面解读WebService开发技术的奥秘
SOA是当今企业软件架构的热点,而Web Service是SOA的一种较好的实现方式,但你对Web Service了解多少?
-
2012年云计算厂商排行榜TOP 1之亚马逊
连续三个年头了,亚马逊Web Service(AWS)都蝉联第一,不仅仅是凭借其实全球范围内的公有云计算主导者。在过去一年中,AWS已经针对企业级IT发布了多种类型的新服务……
-
当业务流程遭遇软件服务
要是驾校的教练去出演像《速度与激情》这样的动作电影,我敢打赌他们给人的印象肯定有所不同。有人说:“他们应该更快绑好安全带。”这种分离类似于当今的业务流程管理。