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 Network Web Service Application Client Application Code
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/
Web Service Technology Stack 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)
Part 1: Web Service Methods 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)
Part 2: Web Service Description 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)
Part 3: Proxy to Access 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)
Part 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)
Data Services Architecture Web Application Server Web Service Web Service Client WSDL WSDL Parameterized XQuery Expressions Parameter Instantiation SOAP/HTTP request SOAP/HTTP response Query Result Query Execution XML Database XML Schema XML File
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
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"/> </portType> Programming languages refer to a port type as a class, and to an operation as a method
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 name="GetAddressFromNameResponse">
Types Data type definitions using the XML Schema type system <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>
WSDL File Structure Type Definitions Message Declarations <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> <binding>…</binding> <service>…</service> </definitions> Type Definitions Message Declarations Port Type Declarations Binding Declarations Service Declaration
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> </output> </operation> … </binding>
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>
Not Discussed Types of operations: Alternative Bindings: SOAP UDDI 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