Title: CSE 636 Data Integration
1CSE 636Data Integration
Web Services
2What is a Web Service
- A web service is a network accessible interface
to application functionality - Application interoperability across different
platforms - Built using standard Internet technologies
- Clients of web services do NOT need to know how
they are implemented
Network
Web Service
?
?
Application Client
Application Code
3Web Services Related Standards
- Web Services Description Language (WSDL) 1.1
- http//www.w3.org/TR/wsdl (03/01)
- Version 2.0 under development
- Simple Object Access Protocol (SOAP)
- http//www.w3.org/TR/soap/
- Universal Description, Discovery and Integration
(UDDI) - http//www.uddi.org/
4Web Service Technology Stack
Web Service Client
Discovery
Shopping web service?
UDDI
WSDL URIs
Web Service
Description
WSDL
WSDL
SOAP/HTTP request
Proxy
Messaging
SOAP/HTTP response
Transport
HyperText Transfer Protocol (HTTP)
5Part 1 Web Service Methods
Web Service Client
Discovery
Shopping web service?
UDDI
WSDL URIs
Web Service
Description
WSDL
WSDL
SOAP/HTTP request
Proxy
Messaging
SOAP/HTTP response
Transport
HyperText Transfer Protocol (HTTP)
6Part 2 Web Service Description
Web Service Client
Discovery
Shopping web service?
UDDI
WSDL URIs
Web Service
Description
WSDL
WSDL
SOAP/HTTP request
Proxy
Messaging
SOAP/HTTP response
Transport
HyperText Transfer Protocol (HTTP)
7Part 3 Proxy to Access Web Service
Web Service Client
Discovery
Shopping web service?
UDDI
WSDL URIs
Web Service
Description
WSDL
WSDL
SOAP/HTTP request
Proxy
Messaging
SOAP/HTTP response
Transport
HyperText Transfer Protocol (HTTP)
8Part 4 Client to Invoke Proxy
Web Service Client
Discovery
Shopping web service?
UDDI
WSDL URIs
Web Service
Description
WSDL
WSDL
SOAP/HTTP request
Proxy
Messaging
SOAP/HTTP response
Transport
HyperText Transfer Protocol (HTTP)
9Data Services Architecture
Web Application Server
Web Service
Web Service Client
WSDL
WSDL
Parameterized XQuery Expressions
ParameterInstantiation
SOAP/HTTP request
SOAP/HTTP response
QueryExecution
QueryResult
XML Database
XML Schema
XML File
10Web Services Definition Language (WSDL)
- Defines services as collections of network
endpoints - Consists of abstract definitions
- Types
- Messages
- Port Types Operations
- and concrete implementations
- Bindings
- Services Ports
- Broken into pieces for reuse purposes
11Port Types Operations
- Port Type An abstract set of operations
supported - Operation An abstract description of an action
supported - ltportType name"AddressBook"gt
- ltoperation name"addEntry"gt
- ltinput message"tnsAddEntryRequest"/gt
- ltoutput message"tnsempty"/gt
- lt/operationgt
- ltoperation name"getAddressFromName"gt
- ltinput message"tnsGetAddressFromNameRequ
est"/gt - ltoutput message"tnsGetAddressFromNameRes
ponse"/gt - lt/operationgt
- lt/portTypegt
- Programming languages refer to a port type as a
class, and to an operation as a method
12Messages
- Abstract, typed definitions of the data being
communicated - ltmessage name"empty"/gt
- ltmessage name"AddEntryRequest"gt
- ltpart name"address" type"tnsaddress"/gt
- lt/messagegt
- ltmessage name"GetAddressFromNameRequest"gt
- ltpart name"name" element"tnsentryName"/gt
- lt/messagegt
- ltmessage name"GetAddressFromNameResponse"gt
- ltpart name"address" type"tnsaddress"/gt
- lt/messagegt
13Types
- Data type definitions using the XML Schema type
system - lttypesgt
- ltxsschema targetNamespace"urnAddressFetcher
" - xmlnsxs"http//www.w3.org/1999/X
MLSchema"gt - ltxselement name"entryName"
type"xsstring"/gt - ltxscomplexType name"address"gt
- ltxsallgt
- ltxselement name"streetNum"
type"xsint"/gt - ltxselement name"streetName"
type"xsstring"/gt - ltxselement name"city"
type"xsstring"/gt - ltxselement name"state"
type"xsstring"/gt - ltxselement name"zip"
type"xsint"/gt - ltxselement name"phoneNumber"
type"xsint"/gt - lt/xsallgt
- lt/xscomplexTypegt
- lt/xsschemagt
- lt/typesgt
14WSDL File Structure
- ltdefinitions name"urnAddressFetcher"
- targetNamespace"urnAddressFetcher"
- xmlnstns"urnAddressFetcher"
- xmlnsxs"http//www.w3.org/1999/XMLS
chema" - xmlnssoap"http//schemas.xmlsoap.or
g/wsdl/soap/" - xmlns"http//schemas.xmlsoap.org/wsd
l/"gt - lttypesgtlt/typesgt
- ltmessage name"AddEntryRequest"gtlt/messagegt
-
- ltportType name"AddressBook"gtlt/portTypegt
- ltbindinggtlt/bindinggt
- ltservicegtlt/servicegt
- lt/definitionsgt
Type Definitions
Message Declarations
Port Type Declarations
Binding Declarations
Service Declaration
15Bindings
- Concrete protocol and data format specifications
for a particular port type - ltbinding name"AddressBookSOAPBinding"
type"tnsAddressBook"gt - ltsoapbinding
- style"document"
- transport"http//schemas.xmlsoap.org/
soap/http"/gt - ltoperation name"getAddressFromName"gt
- ltsoapoperation soapAction""/gt
- ltinputgt
- ltsoapbody use"literal"/gt
- lt/inputgt
- ltoutputgt
- ltsoapbody use"literal"/gt
- lt/outputgt
- lt/operationgt
-
- lt/bindinggt
16Services Ports
- Port a single endpoint defined as a combination
of a binding and a network address - Service a collection of related endpoints
-
- ltservice name"AddressBookService"gt
- ltport name"AddressBook" binding"tnsAddressB
ookSOAPBinding"gt - ltsoapaddress location"http//localhost8
080/axis/services/AddressBook"/gt - lt/portgt
- lt/servicegt
17Not Discussed
- Types of operations
- One-way The endpoint receives a message
- Request-response The endpoint receives a
message, and sends a correlated message - Solicit-response The endpoint sends a message,
and receives a correlated message - Notification The endpoint sends a message
- Alternative Bindings
- HTTP Using GET and POST
- MIME
- SOAP
- RPC-Style Web Services
- UDDI