10. Web Services Description
Language
July 09, 2002, http://www.w3.org/TR/wsdl12/ - The
World Wide Web Consortium (W3C) announced the publication of initial working
draft specifications for Web Services Description Language (WSDL) Version
1.2 and Web Services Description Language (WSDL) Version 1.2:
Bindings. In the introduction section of this document, it explain what
is WSDL:
WSDL describes Web services starting with the messages that are exchanged between the service provider and requestor. The
messages themselves are described abstractly and then bound to a concrete
network protocol and message format. A message consists of a collection of
typed data items. An exchange of messages between the service provider and
requestor are described as an operation. A collection of
operations is called a portType. Collections of
portTypes are grouped and called a serviceType. A service represents an implementation of a serviceType and
contains a collection of ports, where each port is
an implementation of a portType, which includes all the concrete details needed
to interact with the service.
What is WSDL?
- XML language for describing web services as a
set of endpoits (ports) of message exchange
- Each endpoint consists of
- Definitions of operations and messages
- Binding protocol and message format
WSDL for
describing a Web Service of a message exchange using XML-based contract
- Consists of a collection of typed data items
- Operation: exchanged between service provider
and requestor
- portType: a collection of operations
- serviceType: a group of collections of
portTypes
- service: an implementation of serviceType and
contains a collection of ports, where each port is an implementation of a
portType, which include all the concrete details needed to interact with
the service
WSDL Usage Scenarios, http://www.w3.org/TR/ws-desc-usecases
Messaging
- UC0001 Fireand-forget update status example
- UC0002 Oneway Message with Guaranteed Delivery
[WS] enterprise messaging (JMS example)
- UC0006 Document Centric Computing [WS]
attach document along with other regular messages (ebXML Web service
example)
- UC0015 Request-Response [WS] e-Business
example
- UC0025 Event notification [WS] return output
messages
- UC0028 Sync/Async Operations [WS]
blocking/non-blocking messaging
- UC0030 Events [WS] push, poll (send a SOAP
request)
Specifications
- UC0004 Service Level Attributes
- UC0005 Operation Level Attributes
- UC0029 Namespaces with data and interfaces
- UC0031 Versioning
- UC0032 Classification System for Operation
- UC0033 Header Specification additional
routing header info
- UC0034B Specifying streaming A Webcam video
streaming over HTTP
- UC0035 Extending PortType an example,
Universal Plug and Play (UPNP) devices
Service References
Meta Data
Miscellaneous
- UC0034A Obtaining WSDL from the web service
itself
WSDL Requirements, http://www.w3.org/TR/sw-desc-reqs/
- Notations keywords: MUST, MUST NOT,
REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, OPTION
- Definitions: Web Services, Message, Operation,
InterfaceBinding, EndPoint, etc
- Requirements:
- General: R001,R004, R099, R100, etc
- Simplicity: R013, R014
- Interface Description: R021, R022, etc
- Description of Interaction with a Service:
R036, R044, etc
- Messages and Types: R046, R085
- Service Types: R118, R058
- InterfaceBindings
- Reusability
- Extensibility
- Versioning
- Security
- Mapping to Semantic Web
- Requirements from other W3C WGs
Web Services Description
Language (WSDL) Specification
WSDL Document
Syntax Defines 6 kinds of Component
Root - WSDL Definition
Element with five types of child elements
- service description (Ports: Ending Port1,
Ending Port2, etc)
- binding description (Operations:
SOAP_Protocol, SOAP_Protocol, etc)
- serviceType description
- portType description (Operations: Method
Call_1, Method Call_2, etc)
- message description (Part: Schema-Mess1,
Schema-Mess2, etc)
- type description (Types - Schema_simpleType,
Schema - complexType)
WSDL Root and
Child Elements
- definitions the root element
- targetNamespace attribute - base URI required
- types -
element for enclosing data type definitions
- When XSD is used as the type system, types
element should contain the schema definition through http://www.w3.org/2001/XMLSchema
- schema element
- simpleType
- complexType
- message element
- portType element
- operation element
- input element
- output element
- binding element
- operation element
- input element
- output element
- service - element
- document element
- port - element
Example: A SubscribeToQuotes SOAP 1.1 one-way message, a
StockQuote Service via SMTP Binding, cited from http://www.w3.org/TR/wsdl12-bindings/
- Request
Message: a ticker symbol of type string, and includes a header defining
the subscription URI
Example: A GetTradePrice SOAP 1.1 RPC requests StockQuote
Service via HTTP Binding, cited from http://www.w3.org/TR/wsdl12-bindings/
- Request
Message:
- tickerSymbol:
ticker symbol of type string, a time of type timeInstant
- Return
Message: the price as a float in the SOAP response
Example: A GetTradePrice SOAP 1.1 requests StockQuote
Service via HTTP Binding, cited from http://www.w3.org/TR/wsdl12-bindings/
- Request
Message:
- tickerSymbol:
a stock quote symbol string, a
- timePeriod:
an application defined TimePeriod structure containing a start and end
time
- Return
Message:
- frequency:
- an
array of float: stock prices recorded by the service within that period
of time, as well as the frequency at which they were recorded as the SOAP
response
Example: A Web Services
Example: Calculator with Multiply and Divide Methods
<?xml
version="1.0" encoding="utf-8"?>
<definitions
targetNamespace="http://domain_name/Calculator/wsdl"
xmlns:tns="http://domain_name/Calculator/wsdl"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:s="http://domain_name/Calculator/schema"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<!-- Definitions
Go Here -->
<types>
<schema
attributeFormDefault="qualified"
elementFormDefault="qualified"
xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://domain_name/Calculator/schema">
<element
name="Multiply">
<complexType>
<all>
<element name="x"
type="int"/>
<element name="y"
type="int"/?
</all>
</complexType>
</element>
<element
name="ProductResult">
<complexType>
<all>
<element name="result"
type="int"/>
</all>
</element>
</types>
<!-- Some More
Definitions GO Here -->
</definitions>
Web Resources
Web
Service Description Working Group: http://www.w3.org/2002/ws/desc/
WSDL Tutorials
- Annotated WSDL Examples, http://www.w3.org/2001/03/14-annotated-WSDL-examples
- Annotated RDF WSDL Examples, http://www.w3.org/2001/03/19-annotated-RDF-WSDL-examples
- WSDL Examples Link, Best Web Service Link, http://searchwebservices.techtarget.com/bestWebLinks/0,289521,sid26_tax288883,00.html
- WSDL Tutorials, XML.org, http://www.xml.org/xml/resources_focus_wsdl.shtml
- WSDL Explained, http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwebsrv/html/wsdlexplained.asp
Applications
WebCam Web services (C# ,
Java, etc)
Demos
Radio Services
Vendors
Issues
Technical Articles
- Modeling Web Services with UML, http://www.omg.org/news/meetings/workshops/presentations/WebServices_2002/03-2_Armstrong-ModelingWebServices_with_UML.pdf
- EVANGCENTRAL Tech Articles, http://www.sun.com/developers/evangcentral/totallytech/
- Overview of WSDL
- WSDL for B2B, http://builder.com.com/article.jhtml?id=u00420020924sob01.htm
- Examining
WSDL, http://www.xml.com/pub/a/2002/05/15/ends.html
- Distributed Computing, http://philip.greenspun.com/internet-application-workbook/distributed-computing
- http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sqlxml3/htm/soapsupport_4jhb.asp
- http://www.google.com/apis/
- http://www.vbws.com/faq/default.aspx
- MSDN SOAP and WSDL Tool Kits, http://msdn.microsoft.com/library/default.asp?url=/library/en-us/soap/htm/soap_guidelines_9soj.asp
- WSDL Specification Index Page, http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwsdl/html/wsdlspecindex.asp
- http://jmvidal.cse.sc.edu/talks/uddi/wsdl2uddi.html
- Publishing, Discovering, and Testing a
Microsoft .NET-based Web Services Using WebSphere Studio Application
Developer,
- http://www7b.software.ibm.com/wsdd/techjournal/0202_lu/lu.html
- SOAP:Lite - http://www.xav.com/perl/site/lib/SOAP/Lite.html
- WSDL Design View, http://www.capescience.com/education/tutorials/wsdl_designview/
- http://www.objectinnovations.com/XML/Outlines/554.htm
- www.webservices.org
- http://www.javaworld.com/javaworld/jw-02-2002/jw-0208-eis-p2.html