Web Services Description Language (WSDL)

Web Services Description Language (WSDL)
OliviaCutts Profile Pic
OliviaCutts,France,Teacher
Published Date:01-08-2017
Your Website URL(Optional)
Comment
Web Services Description Web Services Description Language (WSDL) Language (WSDL) Wanasanan ThongsongkritWSDL Development History at W3C  WSDL 1.1  was submitted as a W3C Note by Ariba, IBM and Microsoft • March 2001 • Merging 3 previous proposals: • Microsoft’s SOAP Contract Language (SCL) • Service Description Language • IBM’s Network Accessible Service Specification Language (NASSL)  WSDL 2.0  March 2006  not yet a W3C standard 2What WSDL is for  When you create a service, you typically do it because you want other people to use it.  In order for them to do that, they need to know what information to send to the service, what information the service is going to send back, and where to find the service in the first place.  It is much more helpful to have a standard, preferably human- and machine-readable, format for this information. 3What is WSDL?  is an XML document  used to describe Web services: specifies  the location of the service  the operations (or methods) the service exposes 4WSDL Data Structure  WSDL does not presume that exchanges will take place using a particular form of communication  Different services could combine different interfaces using different binding, and could make them available at different addresses 5The WSDL WSDL specification Document Structure abstract part types  Abstract part : describes  the messages it sends and messages receives  the operation associates a operations message exchange pattern with one or more messages port types  Concrete part : specifies  transport and wire format details for one or more concrete part interfaces  a port (an endpoint) associates bindings a network address with a binding services and  a service which groups ports together endpoints that implement a common interface Copyright Springer Verlag Berlin Heidelberg 2004 6 Berlin Heidelberg 2004 Copyright Springer Verlag ?xml version="1.0"? definitions name="Procurement" targetNamespace="http://example.com/procurement/definitions" xmlns:tns="http://example.com/procurement/definitions" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/" abstract message name="OrderMsg" part part name="productName" type="xs:string"/ messages part name="quantity" type="xs:integer"/ /message portType name="procurementPortType" operation name="orderGoods" operation and input message = "OrderMsg"/ port type /operation /portType binding name="ProcurementSoapBinding" type="tns:procurementPortType" concrete soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/ part operation name="orderGoods" soap:operation soapAction="http://example.com/orderGoods"/ input soap:body use="literal"/ binding /input output soap:body use="literal"/ /output /operation /binding service name="ProcurementService" port name="ProcurementPort" binding="tns:ProcurementSoapBinding" port and soap:address location="http://example.com/procurement"/ service /port /service /definitionsThe WSDL Document Structure definitions types definition of types........ /types message definition of a message.... /message portType definition of a port....... /portType binding definition of a binding.... /binding service definition of a service /service /definitions 8Definitions definitions name="Procurement" targetNamespace="http://example.com/procurement/definitions" xmlns:tns="http://example.com/procurement/definitions" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/"  The definitions element defines namespaces.  xmlna:xxx defines the aliases or prefixes for namespaces of the actual elements that make up the WSDL  targetNamespace, defines the namespace to which the items defined by the WSDL belong 9Abstract part Element Defines abstract part The data types used by the types types web service (XML Schema messages syntax used in general) operations The data elements of an message operation port types The operations performed portType by the web service and the messages that are involved. 10Abstract part message name="OrderMsg" messages part name="productName" type="xs:string"/ part name="quantity" type="xs:integer"/ /message portType name="procurementPortType" operation name="orderGoods" operation and port type input message = "OrderMsg"/ /operation /portType  Message element  Parts : name + type/element  PortType (Interface) element defines operations, which are made up of messages  Operations : One-way/Request-response/ Solicit-response / 11 NotificationOperation Types Type Definition The operation can receive a message One-way but will not return a response The operation can receive a request Request-response and will return a response The operation can send a request and Solicit-response will wait for a response The operation can send a message Notification but will not wait for a response A service can proactively initiate the interaction (unlike IDLs) – operation can invoke thus a service can also behave like a client 12concrete part bindings Concrete part services and ports binding name="ProcurementSoapBinding" type="tns:procurementPortType" soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/ operation name="orderGoods" binding soap:operation soapAction="http://example.com/orderGoods"/ input soap:body use="literal"/ /input output soap:body use="literal"/ /output /operation /binding service name="ProcurementService" port and port name="ProcurementPort" binding="tns:ProcurementSoapBinding" service soap:address location="http://example.com/procurement"/ /port 13 /serviceInterfaceBinding binding name="ProcurementSoapBinding" type="tns:procurementPortType" soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/ operation name="orderGoods" soap:operation soapAction="http://example.com/orderGoods"/ input soap:body use="literal"/ /input output soap:body use="literal"/ /output /operation /binding  binding attributes are  name (any name)  type (points to the port type defined in the abstract part)  soap:binding attributes are  style("rpc“ / "document”)  Transport(Communication protocol : SOAP, Transport protocol : HTTP/SMTP)  operation element  defines each operation that the port exposes.  must also specify how the input and output are encoded 14 (literal(for document)/SOAP(for rpc))Port and Service service name="ProcurementService" port name="ProcurementPort" binding="tns:ProcurementSoapBinding" soap:address location="http://example.com/procurement"/ /port /service  A service may have more than one endpoint, with each one defined by its own port element.  The port element corresponds to a particular binding, and includes information on how to access it (URI).  Different ports represent different bindings for the same port type – allows the same functionality to be accessible via multiple transport protocols and interaction styles 15Reusability  abstract interfaces: reusable  WSDL documents may import other WSDL documents  Some documents define abstract interfaces, while other documents import those definitions and make them concrete by defining bindings and addresses 16Using WSDL WSDL of service provider  WSDL document 1 2 can be generated WSDL generator from APIs. WSDL compiler WSDL compiler (client side) (server side) service requestor service provider application object application object (client) (service provider) stub skeleton SOAP-based SOAP-based middleware middleware SOAP messages Copyright Springer Verlag Berlin Heidelberg 2004 17WSDL and Other Standards  Generic service description language – WSDL  Specific standards  Electronic Data Exchange (EDI) used in manufacturing  SWIFT used in financial world  Possibility  Hybrid : other standards + WSDL  Independent  WSDL as a wrapper for these standards so that the systems that support them become Web enabled and can use generic tools for Web access.  WSDL may not describe the entire service but only the interface and protocol bindings. The details of the operations will be hidden under a description that uses a specification other than WSDL. 18WSDL 2.0  inherited most of the WSDL 1.1 architectural principles, including layers of description, flexible authoring style or modularization capability, and extensibility.  Abstract Interface:  Protocol Binding  Service Endpoints 19WSDL 1.1 vs. WSDL 2.0  Flexible Authoring Styles WSDL 1.1  wsdl:import enables importing WSDL definitions defined in separate files with the same or different namespaces WSDL2.0  wsdl:import for WSDL definitions with a different namespace  wsdl:include for WSDL definitions with the same namespace. 20

Advise: Why You Wasting Money in Costly SEO Tools, Use World's Best Free SEO Tool Ubersuggest.