SlideShare a Scribd company logo
WSDL in Mule Esb
Web Service Definition Language
Predecessors include
• COM, CORBA IDLs
• Network Accessible Service Specification
Language (IBM)
• SOAP Contract Language (Microsoft)
• First submitted to W3C in Sep 2000
• Current version is 1.1
 Define a web service in WSDL by
• Writing an XML document conforming to the WSDL
specs
 Describes three fundamental properties
• What a service does
 Operations (methods) provided by the service
• How a service is accessed
 Data format and protocol details
• Where a service is located
 Address (URL) details
types
message
portType
binding
service
All the data types used by the Web service
Parameters and messages used by method
port
Abstract interface definition – each operation element
defines a method signatureoperation
Binds abstract methods to specific protocols
A service is a collection of ports.
A port is a specific method and its URI
definitions
<?xml version="1.0" encoding="UTF-8" ?>
<definitions name="net.xmethods.services.stockquote.StockQuote"
targetNamespace="http://www.themindelectric.com/wsdl/net.xmethods.services.stockquo
te.StockQuote/"
xmlns:tns="http://www.themindelectric.com/wsdl/net.xmethods.services.stockquote.Sto
ckQuote/"
xmlns:electric="http://www.themindelectric.com/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<message name="getQuoteResponse1">
<part name="Result" type="xsd:float" />
</message>
<message name="getQuoteRequest1">
<part name="symbol" type="xsd:string" />
</message>
Sample WSDL: getQuote
<portType name="net.xmethods.services.stockquote.StockQuotePortType">
<operation name="getQuote" parameterOrder="symbol">
<input message="tns:getQuoteRequest1" />
<output message="tns:getQuoteResponse1" />
</operation>
</portType>
<binding name="net.xmethods.services.stockquote.StockQuoteBinding“
type="tns:net.xmethods.services.stockquote.StockQuotePortType">
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http" />
<operation name="getQuote">
<soap:operation soapAction="urn:xmethods-delayed-quotes#getQuote" />
<input>
<soap:body use="encoded" namespace="urn:xmethods-delayed-quotes"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</input>
<output>
<soap:body use="encoded" namespace="urn:xmethods-delayed-quotes"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</output>
</operation>
</binding>
Sample WSDL: getQuote
<service name="net.xmethods.services.stockquote.StockQuoteService">
<documentation>net.xmethods.services.stockquote.StockQuote web service
</documentation>
<port name="net.xmethods.services.stockquote.StockQuotePort"
binding="tns:net.xmethods.services.stockquote.StockQuoteBinding">
<soap:address location="http://64.39.29.211:9090/soap" />
</port>
</service>
</definitions>
Translators available that can
• Convert WSDL document to code
 IBM’s WSTK Toolkit
 Apache AXIS WSDL2java program
 Soapy.py in Python
 Not perfect
• Derive WSDL from Java classes
 Apache WSDL program
 Much work remains to be done
WSDL in Mule Esb
Roadmap
Registry
(UDDI)
Service
Requestor
Service
Provider
Find
Publish
Bind
(SOAP)
(SOAP)
(WSDL)

More Related Content

WSDL in Mule Esb

  • 2. Web Service Definition Language Predecessors include • COM, CORBA IDLs • Network Accessible Service Specification Language (IBM) • SOAP Contract Language (Microsoft) • First submitted to W3C in Sep 2000 • Current version is 1.1
  • 3.  Define a web service in WSDL by • Writing an XML document conforming to the WSDL specs  Describes three fundamental properties • What a service does  Operations (methods) provided by the service • How a service is accessed  Data format and protocol details • Where a service is located  Address (URL) details
  • 4. types message portType binding service All the data types used by the Web service Parameters and messages used by method port Abstract interface definition – each operation element defines a method signatureoperation Binds abstract methods to specific protocols A service is a collection of ports. A port is a specific method and its URI definitions
  • 5. <?xml version="1.0" encoding="UTF-8" ?> <definitions name="net.xmethods.services.stockquote.StockQuote" targetNamespace="http://www.themindelectric.com/wsdl/net.xmethods.services.stockquo te.StockQuote/" xmlns:tns="http://www.themindelectric.com/wsdl/net.xmethods.services.stockquote.Sto ckQuote/" xmlns:electric="http://www.themindelectric.com/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/"> <message name="getQuoteResponse1"> <part name="Result" type="xsd:float" /> </message> <message name="getQuoteRequest1"> <part name="symbol" type="xsd:string" /> </message>
  • 6. Sample WSDL: getQuote <portType name="net.xmethods.services.stockquote.StockQuotePortType"> <operation name="getQuote" parameterOrder="symbol"> <input message="tns:getQuoteRequest1" /> <output message="tns:getQuoteResponse1" /> </operation> </portType> <binding name="net.xmethods.services.stockquote.StockQuoteBinding“ type="tns:net.xmethods.services.stockquote.StockQuotePortType"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" /> <operation name="getQuote"> <soap:operation soapAction="urn:xmethods-delayed-quotes#getQuote" /> <input> <soap:body use="encoded" namespace="urn:xmethods-delayed-quotes" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> </input> <output> <soap:body use="encoded" namespace="urn:xmethods-delayed-quotes" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> </output> </operation> </binding>
  • 7. Sample WSDL: getQuote <service name="net.xmethods.services.stockquote.StockQuoteService"> <documentation>net.xmethods.services.stockquote.StockQuote web service </documentation> <port name="net.xmethods.services.stockquote.StockQuotePort" binding="tns:net.xmethods.services.stockquote.StockQuoteBinding"> <soap:address location="http://64.39.29.211:9090/soap" /> </port> </service> </definitions>
  • 8. Translators available that can • Convert WSDL document to code  IBM’s WSTK Toolkit  Apache AXIS WSDL2java program  Soapy.py in Python  Not perfect • Derive WSDL from Java classes  Apache WSDL program  Much work remains to be done