what is wsdl?

23
T-110.5140 Network Application Frameworks an XML Web Services and WSDL 28.3.2006 Sasu Tarkoma Based on slides by Pekka Nikander

Upload: megan-ware

Post on 01-Jan-2016

37 views

Category:

Documents


1 download

DESCRIPTION

T-110.5140 Network Application Frameworks and XML Web Services and WSDL 28.3.2006 Sasu Tarkoma Based on slides by Pekka Nikander. What is WSDL?. WSDL: Web Service Description Language An XML language used to describe and locate web services location of web service methods that are available - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: What is WSDL?

T-110.5140 Network Application Frameworks and XML

Web Services and WSDL

28.3.2006

Sasu Tarkoma

Based on slides by Pekka Nikander

Page 2: What is WSDL?

What is WSDL?

WSDL: Web Service Description Language An XML language used to describe and locate

web services location of web service methods that are available data type information and XML messages

Commonly used to describe SOAP-based services

W3C standard (work in progress) Initial input: WSDL 1.1 as W3C Note Current version 2.0 (Candidate Recommendation) Some differences between 1.1 and 2.0

WSDL 1.1 in WS-I Basic Profile 1.0 and 1.1.

Page 3: What is WSDL?

WSDL Document Elements (v.1.1.)

<types> - data type definitions <message> - Abstract definition of the data

being transmitted <portType> - A set of abstract operations <binding> - Concrete protocol and data

format specifications for the operations and messages defined by a particular portType. Endpoint type.

<port> - An address for binding. Endpoint instance.

<service> - A set of ports.

Page 4: What is WSDL?

WSDL Overview

<definitions>: ROOT WSDL element

<types>: The data types that are used<types>: The data types that are used

<message>: What messages are transmitted?<message>: What messages are transmitted?

<portType>: The supported operations<portType>: The supported operations

<binding>: The binding to concrete protocols<binding>: The binding to concrete protocols

<service>: Reference to actual location<service>: Reference to actual location

Page 5: What is WSDL?

A WSDL Document

A WSDL document contains two parts Abstract part

Interfaces, types, messages Concrete part

Binding to conrete protocol and encoding May be published separately

Interfaces agreed between many companies Each company published their own

implementation in UDDI and import the abstract interface.

Page 6: What is WSDL?

6 of 20

Mapping SOAP to WSDL

Page 7: What is WSDL?

Message Styles

The WSDL 1.1 specification defines two SOAP message styles

Determined in binding Document

<soap:Body> contains one or more child elements called parts

There are no SOAP formatting rules for what the <soap:Body> contains

preferred, loose coupling, easy validation RPC

<soap:Body> contains an element with the name of the method or remote procedure being invoked

This element in turn contains an element for each parameter of the procedure

less popular today, tighter coupling

Page 8: What is WSDL?

The main structure (v.1.1)

<definitions namespace = "http://.."> <types>XML Schema types</types>

<message>..</message> <portType>a set of operations</portType> <binding>Communication protocols</binding> <service>A list of binding and ports</service>

</definitions>

Page 9: What is WSDL?

Types

<types> define data types used in message declaration

For platform neutrality, WSDL uses XML Schema syntax to define data XML Schema must be supported by any

vendor of WSDL conformant products Other kinds of type definitions also possible

Possible interoperability issues If the service uses only XML Schema built-in

simple types, such as strings and integers, the types element is not required

Page 10: What is WSDL?

WSDL Messages

The <message> element defines the data elements of an operation the name of the message contains zero or more message part elements

The parts can be compared to the parameters of a function call in a traditional programming language

All parts are typed by an XML Schema type

V.2.0 changes: message element is not used, replaced by patterns

Page 11: What is WSDL?

WSDL Ports

The <portType> element is the most important WSDL element

The operations that can be performed, the messages that are involved

A <port> defines the connection point to a web service, an instance of <portType>

It can be compared to a function library (or a module, or a class) in a programming language

Page 12: What is WSDL?

Operation Types (v.1.1)

One-Way: The operation can receive a message but will not return a response

Request-Response: The operation can receive a request and will return a response

Solicit-Response: The endpoint sends an output message and then receives an input message.

Notification: The operation can send a message but will not wait for a response

v.2.0 changes: abstract message patterns

Page 13: What is WSDL?

<message name="GetLastTradePriceInput"><part name="body" element="TradePriceRequest"/>

</message>

<message name="GetLastTradePriceOutput"><part name="body" element="TradePrice"/>

</message>

<message name=”ExampleInteraction"><part name="index" type="xsd:integer"/><part name="name" type="xsd:string" />

</message>

Page 14: What is WSDL?

Example

<portType name="StockQuotePortType"><operation name="GetLastTradePrice"> <input message="tns:GetLastTradePriceInput"/> <output message="tns:GetLastTradePriceOutput"/></operation>

</portType>

Page 15: What is WSDL?

One way and Notification Example

<portType name="RegisterPort"><operation name="register"> <input name="customerInfo" message="RegInfo"/></operation>

<operation name="registerResponse"> <output name="response" message="ResponseInfo"/>

</operation></portType>

Page 16: What is WSDL?

Putting it together

Source: http://msdn.microsoft.com/

Page 17: What is WSDL?

WSDL 2.0

3 specifications Part 1: Core

Abstract interfaces, independent of protocol and encoding

Part 2: Message Exchange Patterns Predefined types of interactions

Part 3: Bindings SOAP and HTTP/MIME binding

Lot’s of changes from 1.1

Page 18: What is WSDL?

Changes from 1.1 to 2.0

Adding further semantics to the description language.

Removal of message constructs. These are specified using the XML schema type system in the types element.

No support for operator overloading. PortTypes renamed to interfaces. Support for

interface inheritance is achieved by using the extends attribute in the interface element.

Ports renamed to endpoints. Abstracted message patterns

Page 19: What is WSDL?

WSDL 2.0 Conceptual Model

Source: http://webservices.xml.com/pub/a/ws/2004/05/19/wsdl2.html

Page 20: What is WSDL?

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

Single output message

Output followed by input msg

Single input message

Fault

No

Trigger

Replace

No

Trigger

Replace

Trigger

in-optional-out Input followed by an opt. Output Trigger

Page 21: What is WSDL?

Implementations

Microsoft .NET SOAP 1.1, WSDL 1.1

Java API for XML-based RPC (JAX-RPC) SOAP 1.1, WSDL 1.1

Java API for XML Registries (JAXR) Apache Axis

Tools for automatically creating WSDL to/from Java

SOAP 1.1 and 1.2, WSDL 1.1, JAX-RPC 1.0 Axis2 supports WSDL 2.0 component model

IBM Websphere, BEA Web Logic, SAP NetWeaver, …

Page 22: What is WSDL?

Uses of WSDL documents

Description of service interfaces Compile-time

Developer uses WSDL before service deployment

Run-time Client downloads WSDL description and uses

the info it provides to execute the service As a side-effect

Developers can use WSDL to speed up the development of code

WSDLJava code Java interfaces WSDL

Page 23: What is WSDL?

Summary

Deferred binding, using Web, composition Some details and conventions still unclear

Possible interoperability issues Parts hard to understand

Namespaces Schemas Differences between versions Document vs. RPC SOAP style

Also literal vs. encoded More about this next week