Title: Web Services Description Language and SOAP
1Web Services Description Language and SOAP
- William Gregory Johnson
- Dr. Sushil Prasad
- Georgia State University
- Department of Computer Science
- Wednesday, July 16, 2003
- SyD Research Project Transaction Sub-Group
2WSDL Structure
- Abstract
- types (What data types are transmitted?)
- message (What messages will be transmitted?)
- portType (What function method is available?)
- operation (What name to invoke?)
- input output message names
- Physical
- binding / SOAP / input output
- service (Method name we want to invoke.)
- port (Method URI)
3Graphical WSDL Structure
types
message
input
operation
portTypes
output
fault
input
operation
binding
output
fault
service
port
4Another Graphical on WSDL
5SOAP Binding
SOAP/HTTP request
server
port1
client
SOAP/HTTP responses
port2
SOAP/HTTP request
A binding specifies how operations are accessed
using a protocol, e.g., SOAP or HTTP GET.
6SOAP Message Structure
- 3 Components of SOAP message
- SOAP Envelope
- Top level element containing the SOAP message
- Mandatory
- SOAP Header
- A way to communicate information not related to
any SOAP operation. - Optional
- SOAP Body
- Contains the actual RPC
- Mandatory
- Defines a Fault element for error handling
7What is Your Favorite SOAP?
- 4s4c
- Apache SOAP and Apache Axis
- SOAPLite (for Perl)
- Microsoft SOAP Toolkit v3.0
- Microsoft ASP.NET Webservices
- Frontier
- GLUE
- EasySOAP
- IONA"s XMLBus
- SOAPBuilders interop effort.
8WSDL Service Name and Port Protocol
- ltdefinitions name "weatherservice"
xmlns"http//schemas.xmlsoap.org/wsdl/"gt - ltservice name"WeatherService" gt
- ...
- lt/servicegt
- lt/definitionsgt
- SOAP protocol
- ltport name"WeatherSoapPort" binding"wsdlnsWeath
erSoapBinding" gt - ltsoapaddress location"http//localhost8080
/wsdl/defined/weatherSOAP.asp" /gt - lt/portgt
- HTTP GET protocol
- ltport name"WeatherSoapPort" binding"wsdlnsWeath
erSoapBinding" gt - lthttpaddress location"http//localhost8080/
wsdl/defined/weatherGET.asp"/gt - lt/portgt
9WSDL Message
- ltmessage name"Weather.GetTemperature"gt
- ltpart name"zipcode" type"xsdstring"/gt
- ltpart name"celsius" type"xsdboolean"/gt
- lt/messagegt
- ltmessage name"Weather.GetTemperatureResponse"gt
- ltpart name"Result" type"xsdfloat"/gt
- lt/messagegt
10WSDL Operation and PortType
operation
- ltoperation name"GetTemperature"
parameterOrder"zipcode celsius"gt - ltinput message"wsdlnsWeather.GetTemperature
" /gt - ltoutput message"wsdlnsWeather.GetTemperatur
eResponse" /gt - lt/operationgt
portType
ltportType name"WeatherSoapPort"gt
ltoperation name"GetTemperature"
parameterOrder"zipcode celsius"gt ltinput
message"wsdlnsWeather.GetTemperature" /gt
ltoutput message"wsdlnsWeather.GetTemperatureRe
sponse" /gt lt/operationgt . . .
lt/portTypegt
11WSDL Binding
- ltbinding name"WeatherSoapBinding"
type"wsdlnsWeatherSoapPort" gt - ltsoapbinding style"rpc"
transport"http//schemas.xmlsoap.org/soap/http"
/gt - ltoperation name"GetTemperature" gt
- ltsoapoperation
- soapAction"http//SyD.org/action/
Weather.GetTemperature" /gt - ltinputgt
- ltsoapbody use"encoded"
namespace"http//SyD.org/message/" - encodingStyle"http//schemas.xmlso
ap.org/soap/encoding/" /gt - lt/inputgt
- ltoutputgt
- ltsoapbody use"encoded"
namespace"http//SyD.org/message/" - encodingStyle"http//schemas.xml
soap.org/soap/encoding/" /gt - lt/outputgt
- lt/operationgt
- lt/bindinggt
12Resources Putting it All Together
- http//www.goland.org/Tech/wsdl.htm
- http//msdn.microsoft.com/library/default.asp?url
/library/en-us/dnwebsrv/html/wsdlexplained.asp - http//radio.weblogs.com/0101679/stories/2002/02/1
5/aBusyDevelopersGuideToWsdl11.htmlCommentary - http//soapagent.com/pages/Articles/WSDL/
- http//www.wsindex.org/
- http//www.webserviceoftheday.com/ws