wsdl web services description language neet wadhwani university of colorado 3 rd october, 2001

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

Post on 22-Dec-2015

217 views

Category:

Documents


2 download

TRANSCRIPT

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

WSDL Web Services Description

Language

Neet Wadhwani

University of Colorado

3rd October, 2001

Page 2: 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

Page 3: WSDL Web Services Description Language Neet Wadhwani University of Colorado 3 rd October, 2001

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

Page 4: WSDL Web Services Description Language Neet Wadhwani University of Colorado 3 rd October, 2001

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.

Page 5: WSDL Web Services Description Language Neet Wadhwani University of Colorado 3 rd October, 2001

Working of WSDL

                                                                                                                                                                               

             

Figure 1. A client invoking a Web service.

Page 6: WSDL Web Services Description Language Neet Wadhwani University of Colorado 3 rd October, 2001

Working of WSDL contd.

                                                                                                                                                                             

                               

Figure 2. WSDL terminology used for describing Web services.

Page 7: WSDL Web Services Description Language Neet Wadhwani University of Colorado 3 rd October, 2001

Working of WSDL (with Java) contd.

Page 8: WSDL Web Services Description Language Neet Wadhwani University of Colorado 3 rd October, 2001

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.

Page 9: WSDL Web Services Description Language Neet Wadhwani University of Colorado 3 rd October, 2001

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/

Page 10: WSDL Web Services Description Language Neet Wadhwani University of Colorado 3 rd October, 2001

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>

Page 11: WSDL Web Services Description Language Neet Wadhwani University of Colorado 3 rd October, 2001

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

Page 12: WSDL Web Services Description Language Neet Wadhwani University of Colorado 3 rd October, 2001

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.

Page 13: WSDL Web Services Description Language Neet Wadhwani University of Colorado 3 rd October, 2001

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>

Page 14: WSDL Web Services Description Language Neet Wadhwani University of Colorado 3 rd October, 2001

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>

Page 15: WSDL Web Services Description Language Neet Wadhwani University of Colorado 3 rd October, 2001

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>

Page 16: WSDL Web Services Description Language Neet Wadhwani University of Colorado 3 rd October, 2001

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>

Page 17: WSDL Web Services Description Language Neet Wadhwani University of Colorado 3 rd October, 2001

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>

Page 18: WSDL Web Services Description Language Neet Wadhwani University of Colorado 3 rd October, 2001

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>

Page 19: WSDL Web Services Description Language Neet Wadhwani University of Colorado 3 rd October, 2001

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>

Page 20: WSDL Web Services Description Language Neet Wadhwani University of Colorado 3 rd October, 2001

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>

Page 21: WSDL Web Services Description Language Neet Wadhwani University of Colorado 3 rd October, 2001

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

Page 22: WSDL Web Services Description Language Neet Wadhwani University of Colorado 3 rd October, 2001

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>

Page 23: WSDL Web Services Description Language Neet Wadhwani University of Colorado 3 rd October, 2001

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”? />

Page 24: WSDL Web Services Description Language Neet Wadhwani University of Colorado 3 rd October, 2001

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