T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander
What is WSDL? n WSDL: Web Service Description Language n An XML language used to describe and locate web services u location of web service u methods that are available u data type information and XML messages n Commonly used to describe SOAP-based services n W3C standard (work in progress) u Initial input: WSDL 1.1 as W3C Note u Current version 2.0 (Candidate Recommendation) u Some differences between 1.1 and 2.0 n WSDL 1.1 in WS-I Basic Profile 1.0 and 1.1.
WSDL Document Elements (v.1.1.) n - data type definitions n - Abstract definition of the data being transmitted n - A set of abstract operations n - Concrete protocol and data format specifications for the operations and messages defined by a particular portType. Endpoint type. n - An address for binding. Endpoint instance. n - A set of ports.
WSDL Overview : ROOT WSDL element : The data types that are used : What messages are transmitted? : The supported operations : The binding to concrete protocols : Reference to actual location
A WSDL Document n A WSDL document contains two parts n Abstract part u Interfaces, types, messages n Concrete part u Binding to conrete protocol and encoding n May be published separately u Interfaces agreed between many companies u Each company published their own implementation in UDDI and import the abstract interface.
6 of 20 Mapping SOAP to WSDL
Message Styles n The WSDL 1.1 specification defines two SOAP message styles n Determined in binding n Document u contains one or more child elements called parts u There are no SOAP formatting rules for what the contains u preferred, loose coupling, easy validation n RPC u contains an element with the name of the method or remote procedure being invoked u This element in turn contains an element for each parameter of the procedure u less popular today, tighter coupling
The main structure (v.1.1) XML Schema types.. a set of operations Communication protocols A list of binding and ports
Types n define data types used in message declaration n For platform neutrality, WSDL uses XML Schema syntax to define data u XML Schema must be supported by any vendor of WSDL conformant products u Other kinds of type definitions also possible F Possible interoperability issues u If the service uses only XML Schema built-in simple types, such as strings and integers, the types element is not required
WSDL Messages n The element defines the data elements of an operation u the name of the message u contains zero or more message part elements n The parts can be compared to the parameters of a function call in a traditional programming language n All parts are typed by an XML Schema type n V.2.0 changes: message element is not used, replaced by patterns
WSDL Ports n The element is the most important WSDL element n The operations that can be performed, the messages that are involved n A defines the connection point to a web service, an instance of n It can be compared to a function library (or a module, or a class) in a programming language
Operation Types (v.1.1) n One-Way: The operation can receive a message but will not return a response n Request-Response: The operation can receive a request and will return a response n Solicit-Response: The endpoint sends an output message and then receives an input message. n Notification: The operation can send a message but will not wait for a response n v.2.0 changes: abstract message patterns
Example
One way and Notification Example
Putting it together Source:
WSDL 2.0 n 3 specifications n Part 1: Core u Abstract interfaces, independent of protocol and encoding n Part 2: Message Exchange Patterns u Predefined types of interactions n Part 3: Bindings u SOAP and HTTP/MIME binding n Lot’s of changes from 1.1
Changes from 1.1 to 2.0 n Adding further semantics to the description language. n Removal of message constructs. These are specified using the XML schema type system in the types element. n No support for operator overloading. n PortTypes renamed to interfaces. Support for interface inheritance is achieved by using the extends attribute in the interface element. n Ports renamed to endpoints. n Abstracted message patterns
WSDL 2.0 Conceptual Model Source:
Message Exchange Patterns MEP in-only robust-in-only In-out out-only robust-only-out out-in out-optional-in Description Single input message Output followed by an opt. Input Input message + output message Single output message Output followed by input msg Single input message Fault No Trigger Replace No Trigger Replace Trigger in-optional-outInput followed by an opt. OutputTrigger
Implementations n Microsoft.NET u SOAP 1.1, WSDL 1.1 n Java API for XML-based RPC (JAX-RPC) u SOAP 1.1, WSDL 1.1 n Java API for XML Registries (JAXR) n Apache Axis u Tools for automatically creating WSDL to/from Java u SOAP 1.1 and 1.2, WSDL 1.1, JAX-RPC 1.0 u Axis2 supports WSDL 2.0 component model n IBM Websphere, BEA Web Logic, SAP NetWeaver, …
Uses of WSDL documents n Description of service interfaces u Compile-time F Developer uses WSDL before service deployment u Run-time F Client downloads WSDL description and uses the info it provides to execute the service n As a side-effect u Developers can use WSDL to speed up the development of code u WSDL Java code u Java interfaces WSDL
Summary n Deferred binding, using Web, composition n Some details and conventions still unclear u Possible interoperability issues n Parts hard to understand u Namespaces u Schemas u Differences between versions u Document vs. RPC SOAP style F Also literal vs. encoded F More about this next week