1 / 24

WSDL Web Services Description Language

WSDL Web Services Description Language. Neet Wadhwani University of Colorado 3 rd October, 2001. Overview. Introduction Definitions Working of WSDL SOAP Binding HTTP GET & POST Binding MIME Binding References. Introduction.

efuru
Download Presentation

WSDL Web Services Description Language

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. WSDL Web Services Description Language Neet Wadhwani University of Colorado 3rd October, 2001

  2. Overview • Introduction • Definitions • Working of WSDL • SOAP Binding • HTTP GET & POST Binding • MIME Binding • References

  3. Introduction • WSDL is an XML language that contains information about the interface semantics and ‘administrivia’ of a call to a Web Service • Once you develop a Web Service you publish its description and a link to it in a UDDI repository so that potential users can find it • When someone wants to use your service, they request the WSDL file in order to find out the location of the service, the function calls and how to access them • Then they use this information in your WSDL file to form a SOAP request to the computer

  4. Definitions • Definitions: - WSDL is an XML-based language used to define Web Services and describe how to access them. - WSLD is an XML format for describing network services as a set of endpoints operating on messages containing either document-oriented or procedure-oriented information.

  5. Working of WSDL Figure 1. A client invoking a Web service.

  6. Working of WSDL contd. Figure 2. WSDL terminology used for describing Web services.

  7. Working of WSDL (with Java) contd.

  8. Working of WSDL contd. • A client can invoke a web service using SOAP, HTTP GET/POST and MIME. • WSDL Document Structure • <definition> - Root element • <types> - Provides data type definitions • <message> - Represents the abstract definition of the data being transmitted • <portType> - Defines a set of abstract operations • <binding> - Specifies concrete protocol and data format specifications for the operations and messages defined by a particular portType • <port> - Specifies an address for a binding • <service> - Used to aggregate a set of related ports.

  9. Namespace • The XML namespace prefix are used to indicate the namespace of the element being defined • All WSDL elements belong to the WSDL namespace, defined as http://schemas.xmlsoap.org/wsdl/ • For WSDL SOAP binding, http://schemas.xmlsoap.org/wsdl/soap/ • For WSDL HTTP GET and POST binding, http://schemas.xmlsoap.org/wsdl/http/ • For WSDL MIME binding, http://schemas.xmlsoap.org/wsdl/mime/

  10. Service • A service groups a set of related ports together • Let is consider an example of a Web Service and the GetTemperature method as an operation on that service. <definitions name=‘weatherservice’ xmlns=‘http://schemas.xmlsoap.org/wsdl/’> <type> <xsd:schema … /> </type> <service name=‘WeatherService’ > … </service> </definitions>

  11. Port • A port defines an individual endpoint by specifying a single address for a binding <port name=‘WeatherSoapPort’ binding=‘wsdlns:WeatherSoapBinding’ > <soap:address location=‘http://localhost/demos/wsdl/devx pert/weatherservice.asp’ /> </port> • Each port has a unique name and a binding attribute • A web service may be accessible on many ports • A port MUST NOT specify more than one address • A port MUST NOT specify any binding information other than address information

  12. Message • A message is protocol independent • There is an input or request message, which is sent from the client to the service, and there is a output or response message, which is sent back the opposite way • Each <message> element contains one or more <part> elements. • <part> element corresponds to the parameter or a return value in the RPC call. • The part name order reflects the order of the parameters in the RPC signature.

  13. Message contd. <message name=‘Weather.GetTemperature’ > <part name=‘zipcode’ type=‘xsd:string’ /> <part name=‘celsius’ type=‘xsd:boolean’ /> </message> <message name=‘Weather.GetTemperatureResponse’ > <part name=‘Result’ type=‘xsd:float’ /> </message>

  14. Operations and PortType • Operation defines which message is the input and which message is the output • A collection of all operations exposed bythe web service is called a portType <portType name=‘WeatherSoapPort’> <operation name=‘GetTemperature’ parameterOrder=‘zipcode celsius’> <input message=‘wsdlns:Weather.GetTemperature’ /> <output message=‘wsdlns:Weather.GetTemperatureResponse’ /> </operation> <!– other operations  </portType>

  15. Operations and PortType • WSDL has four transmission primitives that an endpoint can support: • One-Way – The endpoint receives a message <wsdl:input> • Request-response – The endpoint receives a message and sends a correlated message <wsdl:input>,<wsdl:output>,<wsdl:fault> • Solicit-response – The endpoint sends a message and receives a correlated message <wsdl:output>, <wsdl:input>, <wsdl:fault> • Notification – The endpoint sends a message <wsdl:output>

  16. Binding • Binding mechanism is used to attach a specific protocol, data format or structure to an abstract message , operation or endpoint • Binding MUST specify exactly one protocol • Binding MUST NOT specify address information • Extensibility elements are commonly used to specify some technology specific binding <binding name=‘WeatherSoapBinding’ type=‘wsdlns:WeatherSoapPort’ > … </binding>

  17. SOAP Binding • <soap:binding> - Signifies that the binding is bound to the SOAP protocol format: Envelope, Header and Body <binding …> <soap:binding transport=“uri”? Style=“rpc|document”?> </binding> • <soap:operation> - Provides information for the document as a whole <binding …> <operation …> <soap:operation soapAction=“uri”? Style=“rpc|document”?> </operation> </binding>

  18. SOAP Binding contd. • <soap:body> - Specifies how the message parts appear inside the SOAP Body element <input> <soap:body parts=“nmtokens”? use=“literal|encoded”? encodingStyle=“uri-list”? Namespace=“uri”?> </input> • <soap:fault> - Specifies the contents of the contents of the SOAP fault <fault> <soap:fault name=“nmtoken” use=“literal|encoded” encodingStyle=“uri-list”? Namespace=“uri”?> </fault>

  19. SOAP binding contd. • <soap:header> and <soap:headerfault> - Allow headers to be defined that are transmitted inside the Header element of the SOAP Envelope <input> <soap:header message=“qname” part=“nmtoken” use=“literal|encoded”? encodingStyle=“uri-list”? Namespace=“uri”?> <soap:headerfault message=“qname” part=“nmtoken” use=“literal|encoded”? encodingStyle=“uri-list”? Namespace=“uri”?> </input> • <soap:address> - Used to give a port an address (a URI) <binding …> <soap:address location=“uri” /> </binding>

  20. HTTP GET & POST Binding • <http:address> - Specifies the base URI for the port • <http:binding> - Indicates that this binding uses the HTTP protocol <binding …> <http:binding verb=“nmtoken” /> </binding> • <http:operation> - has an attribute that specifies the relative URI for the operation <operation …> <http:operation location=“uri” /> </operation>

  21. HTTP GET & POST Binding contd. • <http:urlEncoded> - Indicates that all the parts are encoded into the HTTP request URI using the standard URI-encoding rules • <http:urlReplacement> - Indicates that all the message parts are encoded into the HTTP request URI using a replacement algorithm

  22. MIME Binding • <mime:content> - Used if there is no additional information to convey about the format other than its MIME type string <mime:content part=“nmtoken”? Type=“string”? /> • <mime:multipartRelated> - Aggregates an arbitrary set of MIME formatted parts into one message using the MIME type “multipart/related” <mime:multipartRelated> <mime:part> *  mime element  </mime:part> </mime:multipartRelated>

  23. MIME Binding contd. • <soap:body> - When using the MIME binding with SOAP requests, it is legal to use the soap:body element as a MIME element. It indicates the content type is “text/xml”, and there is an enclosing SOAP Envelope • <mime:mimeXml> - Used to specify a concrete schema <mime:mimeXml part=“nmtoken”? />

  24. References • World Wide Web Consortium http://www.w3c.org/TR/wsdl • DevXpert http://www.devxpert.com/tutors/wsdl/wsdlprint.asp • Sun Java Website http://dcb.sun.com/practices/webservices/overviews/overview_wsdl.jsp

More Related