Lecture 6 SOAP WSDL UDDI - PowerPoint PPT Presentation

Lecture 6 soap wsdl uddi " data-normal="" > " data-normal="" >
Download
1 / 39

  • 130 Views
  • Uploaded on
  • Presentation posted in: General

Lecture 6 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). Basic Profile (BP 1.0).

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

Download Presentation

Lecture 6 SOAP WSDL UDDI

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Lecture 6 soap wsdl uddi

Lecture 6

SOAP

WSDL

UDDI


Highlights

Highlights

  • eXtensible Markup Language (XML)

  • Simple Object Access Protocol (SOAP)

  • Web Services Description Language (WSDL)

  • Directory Services

  • Universal Description, Discovery, and Integration (UDDI)

Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns


Basic profile bp 1 0

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

Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns


Standards for web services

Standards for Web Services

Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns


Lecture 6 soap wsdl uddi

SOAP

  • SOAP is acronym for Simple Object Access Protocol

  • SOAP is a communication protocol

  • SOAP is designed to communicate via Internet

  • SOAP can extend HTTP for XML messaging

  • SOAP provides data transport for Web services

  • SOAP can exchange complete documents or call a remote procedure

  • SOAP can be used for broadcasting a message

  • SOAP is platform and language independent

  • SOAP is the XML way of defining what information gets sent and how

Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns


Soap simple object access protocol

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

Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns


Web services basic architecture

Web Services: Basic Architecture

Service

Broker

Registry; well-known

Publish or announce

(WSDL)

Find or discover

(UDDI)

Service

Provider

Service

Requestor

Bind or invoke

(SOAP)

Not well-known

Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns


Describing a service

Describing a Service

  • Namee.g., GetTemperature

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

  • Types of Output Parameterse.g., Integer

Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns


Soap architecture

SOAP architecture

  • An Envelope element that identifies the XML document as a SOAP message (mandatory)

  • A Header element that contains header information (optional)

  • A Body element that contains call and response information (mandatory)

  • A Fault element containing errors and status information (optional)

Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns


Soap envelope 1

SOAP Envelope (1)

  • The SOAP envelope indicates the start and the end of the message.

  • The SOAP envelope solves the problem of knowing when you're done receiving a message and are ready to process it.

  • Every SOAP message has a root Envelope element.

  • Envelope element is mandatory part of SOAP Message.

  • Every Envelope element must contain exactly one Body element.

  • If an Envelope contains a Header element, it must contain no more than one, and it must appear as the first child of the Envelope, before the Body.


Soap envelope 2

SOAP Envelope (2)

  • The envelope changes when SOAP versions change.

  • The SOAP envelope is specified using the ENV namespace prefix and the Envelope element.

  • The optional SOAP encoding is also specified using a namespace name and the optional encodingStyle element, which could also point to an encoding style other than the SOAP one.

  • A v1.1-compliant SOAP processor will generate a fault when receiving a message containing the v1.2 envelope namespace.

  • A v1.2- compliant SOAP processor generates a VersionMismatch fault if it receives a message that does not include the v1.2 envelope namespace.

Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns


Lecture 6 soap wsdl uddi

<?xml version="1.0"?>

<SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://www.w3.org/2001/12/soap-envelope"

SOAP-ENV:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

...

Message information goes here

...

</SOAP-ENV:Envelope>

Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns


Ex soap request

Ex. SOAP Request

POST /temp HTTP/1.1

Host: www.socweather.com

Content-Type: text/xml; charset="utf-8"

Content-Length: xxx

SOAPAction: "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>

Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns


Ex soap response

Ex. SOAP Response

HTTP/1.1 200 OK

Content-Type: text/xml; charset="utf-8"

Content-Length: xxx

SOAPAction: "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>

Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns


Soap fault

SOAP Fault

  • The SOAP fault mechanism returns specific information about the error, including a predefined code, a description, the address of the SOAP processor that generated

    • A SOAP Message can carry only one fault block

    • Fault element is an optional part of SOAP Message

    • For the HTTP binding, a successful response is linked to the 200 to 299 range of status codes;

    • SOAP fault is linked to the 500 to 599 range of status codes.

Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns


Fault example

Fault example

<?xml version='1.0' encoding='UTF-8'?>

<SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema">

<SOAP-ENV:Body>

<SOAP-ENV:Fault>

<faultcode xsi:type="xsd:string">

SOAP-ENV:Client

</faultcode>

<faultstring xsi:type="xsd:string">

Failed to locate method (ValidateCreditCard) in class (examplesCreditCard) at /usr/local/ActivePerl-5.6/lib/ site_perl/5.6.0/SOAP/Lite.pm line 1555.

</faultstring>

</SOAP-ENV:Fault>

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>


Wsdl web services description language

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

Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns


Wsdl structure

WSDL structure

<definitions><types>  definition of types........</types><message>  definition of a message....</message><portType>  definition of a port.......</portType><binding>  definition of a binding....</binding></definitions>

Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns


A wsdl document describes a web service using these major elements

A WSDL document describes a web service using these major elements:

Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns


Wsdl ports

WSDL Ports

  • The <portType> element is the most important WSDL element.

    • It describes a web service, the operations that can be performed, and the messages that are involved.

    • The <portType> element can be compared to a function library (or a module, or a class) in a traditional programming language.

  • WSDL Messages

    • The <message> element defines the data elements of an operation.

    • Each message can consist of one or more parts. The parts can be compared to the parameters of a function call in a traditional programming language.

    • WSDL Types

  • The <types> element defines the data types that are used by the web service.

    • For maximum platform neutrality, WSDL uses XML Schema syntax to define data types.

  • WSDL Bindings

  • The <binding> element defines the message format and protocol details for each port.

Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns


Wsdl example

WSDL example

<message name="getTermRequest">  <part name="term" type="xs:string"/></message><message name="getTermResponse">  <part name="value" type="xs:string"/></message><portType name="glossaryTerms">  <operation name="getTerm">    <input message="getTermRequest"/>    <output message="getTermResponse"/>  </operation></portType>

Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns


Porttype operations

portType Operations

Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns


Lecture 6 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">


Lecture 6 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>


Lecture 6 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">


Lecture 6 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">


Lecture 6 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>


Lecture 6 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>


Wsdl data model

WSDL Data Model

Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns


Directory services

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

Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns


Uddi universal description discovery and integration

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

Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns


Yellow green and white pages in uddi

Yellow, Green, and White Pages in UDDI

Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns


Data model for uddi

Data Model for UDDI

Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns


Businessentity data structure

businessEntity data structure:

<businessEntity businessKey="uuid:C0E6D5A8-C446-4f01-99DA-70E212685A40" operator="http://www.ibm.com"

authorizedName="John Doe">

<name>Acme Company</name>

<description>

We create cool Web services

</description>

<contacts>

<contact useType="general info">

<description>General Information</description> <personName>John Doe</personName> <phone>(123) 123-1234</phone> <email>jdoe@acme.com</email> </contact> </contacts>

<businessServices>

...

</businessServices>


Lecture 6 soap wsdl uddi

<identifierBag>

<keyedReferencetModelKey="UUID:8609C81E-EE1F-4D5A-B202-3EB13AD01823" name="D-U-N-S" value="123456789" /> </identifierBag>

<categoryBag>

<keyedReferencetModelKey="UUID:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2" name="NAICS" value="111336" />

</categoryBag>

</businessEntity>

Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns


Businessservice data structure

businessService data structure

<businessService serviceKey="uuid:D6F1B765-BDB3-4837-828D-8284301E5A2A"

businessKey="uuid:C0E6D5A8-C446-4f01-99DA-70E212685A40"> <name>Hello World Web Service</name>

<description>A friendly Web service</description>

<bindingTemplates>

...

</bindingTemplates>

</businessService>

Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns


Bindingtemplate

bindingTemplate

Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns


Wsdl uddi

WSDL  UDDI

Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns


Chapter 2 summary

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

Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns


  • Login