CSE 636 Data Integration Web Services What is a Web Service • A web service is a network accessible interface to application functionality – Application.

Download Report

Transcript CSE 636 Data Integration Web Services What is a Web Service • A web service is a network accessible interface to application functionality – Application.

CSE 636
Data Integration
Web Services
What 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

Application
Client
Network
Web
Service

Application
Code
2
Web 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/
3
Web Service Technology Stack
Shopping web service?
Discovery
Description
WSDL URIs
Web
Service
Client
UDDI
Web Service
WSDL
WSDL
SOAP/HTTP request
Messaging
Transport
Proxy
SOAP/HTTP response
HyperText Transfer Protocol (HTTP)
4
Part 1: Web Service Methods
Shopping web service?
Discovery
Description
WSDL URIs
Web
Service
Client
UDDI
Web Service
WSDL
WSDL
SOAP/HTTP request
Messaging
Transport
Proxy
SOAP/HTTP response
HyperText Transfer Protocol (HTTP)
5
Part 2: Web Service Description
Shopping web service?
Discovery
Description
WSDL URIs
Web
Service
Client
UDDI
Web Service
WSDL
WSDL
SOAP/HTTP request
Messaging
Transport
Proxy
SOAP/HTTP response
HyperText Transfer Protocol (HTTP)
6
Part 3: Proxy to Access Web Service
Shopping web service?
Discovery
Description
WSDL URIs
Web
Service
Client
UDDI
Web Service
WSDL
WSDL
SOAP/HTTP request
Messaging
Transport
Proxy
SOAP/HTTP response
HyperText Transfer Protocol (HTTP)
7
Part 4: Client to Invoke Proxy
Shopping web service?
Discovery
Description
WSDL URIs
Web
Service
Client
UDDI
Web Service
WSDL
WSDL
SOAP/HTTP request
Messaging
Transport
Proxy
SOAP/HTTP response
HyperText Transfer Protocol (HTTP)
8
Data Services Architecture
Web Application Server
WSDL
Web
Service
Client
SOAP/HTTP request
WSDL
Web Service
Parameter
Instantiation Parameterized
XQuery
Expressions
SOAP/HTTP response
Query
Result
Query
Execution
XML Database
XML
Schema
XML
File
9
Web 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
10
Port Types & Operations
Port Type: An abstract set of operations supported
Operation: An abstract description of an action
supported
<portType name="AddressBook">
<operation name="addEntry">
<input message="tns:AddEntryRequest"/>
<output message="tns:empty"/>
</operation>
<operation name="getAddressFromName">
<input message="tns:GetAddressFromNameRequest"/>
<output message="tns:GetAddressFromNameResponse"/>
</operation>
</portType>
• Programming languages refer to a port type
as a class, and to an operation as a method
11
Messages
• Abstract, typed definitions of the data
being communicated
<message name="empty"/>
<message name="AddEntryRequest">
<part name="address" type="tns:address"/>
</message>
<message name="GetAddressFromNameRequest">
<part name="name" element="tns:entryName"/>
</message>
<message name="GetAddressFromNameResponse">
<part name="address" type="tns:address"/>
</message>
12
Types
• Data type definitions using the XML Schema type
system
<types>
<xs:schema targetNamespace="urn:AddressFetcher"
xmlns:xs="http://www.w3.org/1999/XMLSchema">
<xs:element name="entryName" type="xs:string"/>
<xs:complexType name="address">
<xs:all>
<xs:element name="streetNum" type="xs:int"/>
<xs:element name="streetName" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="state" type="xs:string"/>
<xs:element name="zip" type="xs:int"/>
<xs:element name="phoneNumber" type="xs:int"/>
</xs:all>
</xs:complexType>
</xs:schema>
</types>
13
WSDL File Structure
<definitions name="urn:AddressFetcher"
targetNamespace="urn:AddressFetcher"
xmlns:tns="urn:AddressFetcher"
xmlns:xs="http://www.w3.org/1999/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>…</types>
<message name="AddEntryRequest">…</message>
…
<portType name="AddressBook">…</portType>
Type Definitions
Message Declarations
Port Type Declarations
<binding>…</binding>
Binding Declarations
<service>…</service>
Service Declaration
</definitions>
14
Bindings
• Concrete protocol and data format specifications
for a particular port type
<binding name="AddressBookSOAPBinding" type="tns:AddressBook">
<soap:binding
style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="getAddressFromName">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
…
</binding>
15
Services & Ports
• Port: a single endpoint defined as a combination
of a binding and a network address
• Service: a collection of related endpoints
<service name="AddressBookService">
<port name="AddressBook" binding="tns:AddressBookSOAPBinding">
<soap:address
location="http://localhost:8080/axis/services/AddressBook"/>
</port>
</service>
16
Not 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
17