24
Lecture 6 & 7 SOAP WSDL UDDI

Lecture 6 & 7 SOAP WSDL UDDI

  • Upload
    eljah

  • View
    44

  • Download
    0

Embed Size (px)

DESCRIPTION

Lecture 6 & 7 SOAP WSDL UDDI. Highlights. eXtensible Markup Language (XML) Simple Object Access Protocol (SOAP) Web Services Description Language (WSDL) Directory Services Universal Description, Discovery, and Integration (UDDI). Standards for Web Services. - PowerPoint PPT Presentation

Citation preview

Page 1: Lecture 6 & 7 SOAP WSDL UDDI

Lecture 6 & 7

SOAPWSDLUDDI

Page 2: Lecture 6 & 7 SOAP WSDL UDDI

Chapter 2 2Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Highlights

eXtensible Markup Language (XML) Simple Object Access Protocol

(SOAP) Web Services Description Language (WSDL) Directory Services Universal Description, Discovery, and

Integration (UDDI)

Page 3: Lecture 6 & 7 SOAP WSDL UDDI

Chapter 2 3Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Standards for Web Services

BPEL4WSOWL-S Service

Model

ebXMLCPA

Process and workflow orchestrations

QoS: Service descriptions and bindings

Contracts andagreements

XLANG

WSCL

WSDLebXML

CPP

ebXMLBPSS

XML, DTD, and XML Schema

HTTP, FTP, SMTP, SIP, etc.

SOAPebXML

messaging

OWL

UDDIebXML

Registries

WSCLWSCI

WS-Coordination

WS-AtomicTransaction and WS-BusinessActivity

OWL-S Service Grounding

OWL-S Service Profile

BTP

BPML

Discovery (not selection)

Messaging

Transport

QoS: Conversations

QoS: Choreography

QoS: Transactions

Encoding

WS-Policy

WS-Security

WS-Reliable Messaging

PSL

RDF

Page 4: Lecture 6 & 7 SOAP WSDL UDDI

Chapter 2 7Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Web Services: Basic Architecture

ServiceBroker

ServiceProvider

ServiceRequesto

r

Bind or invoke(SOAP)

Find or discover(UDDI)

Publish or announce(WSDL)

Registry; well-known

Not well-known

Page 5: Lecture 6 & 7 SOAP WSDL UDDI

Chapter 2 8Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Basic Profile (BP 1.0)

The Web Services Interoperability Organization (WS-I) has specified the following Basic Profile version 1.0: SOAP 1.1 HTTP 1.1 XML 1.0 XML Schema Parts 1 and 2 UDDI Version 2 WSDL 1.1

Page 6: Lecture 6 & 7 SOAP WSDL UDDI

Chapter 2 9Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Describing a Service

Namee.g., GetTemperature

Types of Input Parameterse.g., (String, String)

Types of Output Parameterse.g., Integer

Page 7: Lecture 6 & 7 SOAP WSDL UDDI

Chapter 2 10Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

SOAP (Simple Object Access Protocol)

Used to exchange messages via HTTP, SMTP, and SIP (Session Initiation Protocol for Internet telephony)

Originally designed for remote-procedure calls (RPC)

Works through firewalls on port 80 Character-based, so easy to encrypt/decrypt

and thus easy to secure Inefficient due to character, not binary, data

and large headers Does not describe bidirectional or n-party

interaction

Page 8: Lecture 6 & 7 SOAP WSDL UDDI

SOAP architecture

An Envelope element that identifies the XML document as a SOAP message

A Header element that contains header information

A Body element that contains call and response information

A Fault element containing errors and status information

Chapter 2 11Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Page 9: Lecture 6 & 7 SOAP WSDL UDDI

Chapter 2 12Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Ex. SOAP Request

POST /temp HTTP/1.1Host: www.socweather.comContent-Type: text/xml; charset="utf-8"Content-Length: xxxSOAPAction: "http://www.socweather.com/temp"

<!-- Above: HTTP headers and a blank line. --><!—These comments below: an XML document --><?xml version=“1.0”?><env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <env:Body> <m:GetTemp xmlns:m="http://www.socweather.com/temp.xsd"> <m:City>Honolulu</m:City> <m:When>now</m:When> </m:GetTemp> </env:Body></env:Envelope>

Page 10: Lecture 6 & 7 SOAP WSDL UDDI

Chapter 2 13Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Ex. SOAP Response

HTTP/1.1 200 OKContent-Type: text/xml; charset="utf-8"Content-Length: xxxSOAPAction: "http://www.socweather.com/temp"

<?xml version="1.0"?><env:Envelope

xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"

env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>

<env:Body> <m:GetTempResponse

xmlns:m="http://www.socweather.com/temp.xsd"> <m:DegreesCelsius>30</m:DegreesCelsius> </m:GetTempResponse> </env:Body></env:Envelope>

Page 11: Lecture 6 & 7 SOAP WSDL UDDI

Chapter 2 14Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

WSDL: Web Services Description Language

Describes a programmatic interface to a Web service, including Definitions of data types Input and output message formats The operations provided by the service Network addresses Protocol bindings

Page 12: Lecture 6 & 7 SOAP WSDL UDDI

<?xml version="1.0"?><!-- the root element, wsdl:definitions, defines a set of --><!-- related services --><wsdl:definitions name="Temperature" targetNamespace="http://www.socweather.com/schema" xmlns:ts="http://www.socweather.com/TempSvc.wsdl" xmlns:tsxsd="http://schemas.socweather.com/TempSvc.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">

<!-- wsdl:types encapsulates schema definitions of --><!-- communication types; here using xsd -->

<wsdl:types><!-- all type declarations are expressed in xsd --> <xsd:schema targetNamespace="http://namespaces.socweather.com" xmlns:xsd="http://www.w3.org/1999/XMLSchema">

Chapter 2 15Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Page 13: Lecture 6 & 7 SOAP WSDL UDDI

<!-- xsd def: GetTemp [City string, When string] --> <xsd:element name="GetTemp"> <xsd:complexType> <xsd:sequence> <xsd:element name="City" type="string"/> <xsd:element name="When" type="string"/> </xsd:sequence> </xsd:complexType> </xsd:element>

<!-- xsd def: GetTempResponse [DegreesCelsius integer] --> <xsd:element name="GetTempResponse"> <!-- XML Schema entry as above --> </xsd:element>

<!-- xsd def: GetTempFault [errorMessage string] --> <xsd:element name="GetTempFault"> <!-- XML Schema entry as above --> </xsd:element> </xsd:schema> </wsdl:types>

Chapter 2 16Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Page 14: Lecture 6 & 7 SOAP WSDL UDDI

<!-- wsdl:message elements describe potential transactions --><!-- Most messages, as here, have only one part. Multiple --><!-- parts provide a way to aggregate complex messages -->

<!-- request GetTempRequest is of type GetTemp --> <wsdl:message name="GetTempRequest"> <wsdl:part name="body" element="tsxsd:GetTemp"/> </wsdl:message>

<!-- response GetTempResponse is of type GetTempResponse --> <wsdl:message name="GetTempResponse"> <wsdl:part name="body" element="tsxsd:GetTempResponse"/> </wsdl:message>

<!-- wsdl:portType describes messages in an operation --> <wsdl:portType name="GetTempPortType">

Chapter 2 17Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Page 15: Lecture 6 & 7 SOAP WSDL UDDI

<!-- wsdl:operation describes the entire protocol from --><!-- input to output or fault --> <wsdl:operation name="GetTemp"><!-- The order input preceding output indicates the --><!-- request-response operation type --> <wsdl:input message="ts:GetTempRequest"/> <wsdl:output message="ts:GetTempResponse"/> <wsdl:fault message="ts:GetTempFault"/> </wsdl:operation> </wsdl:portType>

<!-- wsdl:binding specifies a serialization protocol --> <wsdl:binding name="TempSvcSoapBinding" type="ts:GetTempPortType">

Chapter 2 18Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Page 16: Lecture 6 & 7 SOAP WSDL UDDI

<!-- leverage off soap:binding document style --> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>

<!-- semi-opaque container of network transport details --> <!-- classed by soap:binding above @@@ --> <wsdl:operation name="GetTemp"> <soap:operation soapAction="http://www.socweather.com/TempSvc"/><!-- further specify that the messages in the --><!-- wsdl:operation "GetTemp" use SOAP? @@@ --> <wsdl:input> <soap:body use="literal" namespace="http://schemas.socweather.com/TempSvc.xsd"/> </wsdl:input>

Chapter 2 19Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Page 17: Lecture 6 & 7 SOAP WSDL UDDI

<!-- As above for wsdl:output and wsdl:fault -->

</wsdl:operation> </wsdl:binding>

<!-- wsdl:service names a new service "TemperatureService" --> <wsdl:service name="TemperatureService"> <wsdl:documentation>socweather.com temperature service </wsdl:documentation>

<!-- connect it to the binding "TempSvcSoapBinding" above --> <wsdl:port name="GetTempPort" binding="ts:TempSvcSoapBinding">

<!-- give the binding a network address --> <soap:address location="http://www.socweather.com/TempSvc"/> </wsdl:port> </wsdl:service></wsdl:definitions>

Chapter 2 20Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Page 18: Lecture 6 & 7 SOAP WSDL UDDI

Chapter 2 21Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

WSDL Data Model

definitions targetNamespace=thisNamespace xmins:tns=thisNamespace

types message name=in message name=out

portType name=foo operation input message=tns:in output message=tns:out

binding name=foobar type=tns:foo [binding information]

service name=foobar Service

Port name=foobarPort binding=tns:foobar [endpoint information]

Types contains data type definitionsMessages consist of one or more parts

A portType describes an abstract setof operations

A binding describes a concrete set offormats and protocols for the fooportTypes

A port describes an implementationof the foobar binding

Page 19: Lecture 6 & 7 SOAP WSDL UDDI

Chapter 2 22Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Directory Services Support discovery: enable applications,

agents, Web service providers, Web service requestors, people, objects, and procedures to locate each other White pages – entries found by name Yellow pages – entries found by characteristics

and capabilities A basic directory might be a simple

database (passive) or a broker/facilitator (active, that provides alerts and recruits participants)

UDDI – both white pages and yellow pages, but passive

Page 20: Lecture 6 & 7 SOAP WSDL UDDI

Chapter 2 23Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

UDDI: Universal Description, Discovery, and Integration

UDDI is a Web service that is based on SOAP and XML

UDDI registers tModels: technical descriptions of a

service’s behavior businessEntities: describes the

specifications of multiple tModels

Page 21: Lecture 6 & 7 SOAP WSDL UDDI

Chapter 2 24Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Yellow, Green, and White Pages in UDDI

-businessKey : string(idl)-name : string(idl)-description : string(idl)-URL : string(idl)-contacts : contact-businessServices : businessService-identifierBag : keyedReference-categoryBag : keyedReference

businessEntity

1

*

-tModelKey : string(idl)-keyName : string(idl)-keyValue : string(idl)

keyedReference

-serviceKey : string(idl)-tModelKey : string(idl)-name : string(idl)-description : string(idl)-bindingTemplates

businessService

-phone : string(idl)-address : string(idl)

contact

Page 22: Lecture 6 & 7 SOAP WSDL UDDI

businessEntity: Information about theparty who publishes information about

a service

businessService: Descriptiveinformation about a particular family of

technical services

bindingTemplate: Technicalinformation about a service entry point

and implementation specs

tModel: Descriptions of specificationsfor services or value sets. Basis for

technical fingerprints

businessEntities containbusinessServices

businessServices containbindingTemplates

bindingTemplates contain referencesto tModels. These references

designate the interface specificationsfor a service

Chapter 2 25Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Data Model for UDDI

Page 23: Lecture 6 & 7 SOAP WSDL UDDI

Chapter 2 26Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

WSDL UDDI

<import>

<port>

<port>

BusinessEntity

BusinessService

BindingTemplate

BindingTemplate

Service Implementation

UDDI

<service>

Service Interface

<types>

<message>

<portType>

<binding>

tModel

WSDL

Page 24: Lecture 6 & 7 SOAP WSDL UDDI

Chapter 2 27Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Chapter 2 Summary

The main triad of Web services standards Bring together well-known ideas

SOAP: object access and messaging WSDL: based on CORBA IDL UDDI: based on directories

Provide necessary functionality for interoperation

Are complicated in their details Meant for tool vendors rather than

programmers Increasingly hidden by tools