SlideShare a Scribd company logo
Web Services
Outline
• Overview of Web Services
• SOAP (messaging)
• WSDL (service description)
• UDDI (registry)
A bit of buzz (1)
• “By 2006, Web services will take hold as a competitive
differentiator in business relationships and product
innovation. Enterprises that want to remain competitive
will need to use Web services to provide commonly
requested data to their partners. It is imperative that
enterprises develop a strategy for how to use Web services
to develop products, including hard goods, digital goods
and services.”
Gartner Research, November 2003
A bit of buzz (2)
• Yankee Group, Nov. 2004 survey (437
entreprises)
– 48% have already deployed Web Services
– 39% will deploy Web Services within one year
– 71% will increase spending on Web Services in 2005
• Jeff Bezos (CEO Amazon), Tech. Review 01/2005
– “Web 1.0 was making the Internet for people; Web 2.0
is making the Internet better for computers”
What is a Web Service?
• A web service is a network accessible interface to
application programs, built using standard Internet
technologies.
• Clients of web services do NOT need to know
how it is implemented.
Application
client
Application
program
Network Web
Service
• A Web Service is a URL-addressable software resource
that performs functions (or a function).
• "Web services are a new breed of Web application. They
are self-contained, self-describing, modular applications
that can be published, located, and invoked across the
Web. Web services perform functions, which can be
anything from simple requests to complicated business
processes. … Once a Web service is deployed, other
applications (and other Web services) can discover and
invoke the deployed service.” IBM web service tutorial
Web Services: Some Definitions
Web Evolution
Technology TCP/IP HTML XML
Purpose Connectivity Presentation Programmability
Applications E-Mail, FTP… Web Pages Web Services
Outcome Create the Web Browse the Web Program the Web
Web Service Architecture
Service provider
Service broker Service requestor
publish
(WSDL)
find
(UDDI)
bind
(SOAP)
"server"
"client""naming service"
9
Web Service Stack
• A set of standards for implementing web services
Transport: HTTP, SMTP, FTTP, …
Messaging: SOAP
Service Description: WSDL
Publication and Discovery: UDDI
extends HTTP
extends HTML
extends URI
Basic Web Service Usage
Scenario
Web Service
Repository
(UDDI)
publish web
service
Web Service
Provider
1 register
WSDL file
(manually)
(manual) web
service lookup
2 http get
3 WSDL file
write client
application
deploy client
application
4 SOAP request
5 SOAP response
Web Services Implementation
• Application Server (web service-enabled)
– provides implementation of services and exposes it through WSDL/SOAP
– implementation in Java, as EJB, as .NET (C#) etc.
• SOAP server
– implements the SOAP protocol
• HTTP server
– standard Web server
• SOAP client
– implements the SOAP protocol on the client site
Requestor
(SOAP client)
Web Service Provider
(endpoint)
HTTP
server
SOAP
server
application
server
SOAP
messages
(http transport)
Down to earth example:
Amazon Web Services
• www.amazon.com/gp/aws/landing.html
• Exposes world’s largest product database through Web
Services
– Counterintuitive strategy? (cf. Google)
• Idea: let others figure out how to sell products for us
– Associates program enables Web sites to link to Amazon.com and
earn referral fees
• By November 2004: 65000 developers
• Some interesting examples:
– www.grokker.com
– www.monsoonretail.com
13
• Lightweight messaging framework based on XML
• Supports simple messaging and RPC
• SOAP consists of
– Envelope construct: defines the overall structure of messages
– Encoding rules: define the serialization of application data types
– SOAP RPC: defines representation of remote procedure calls and
responses
– Binding framework: binding to protocols such as HTTP, SMTP
– Fault handling
• Soap supports advanced message processing:
– forwarding intermediaries: route messages based on the semantics of
message
– active intermediaries: do additional processing before forwarding
messages, may modify message
2. SOAP –
Simple Object Access Protocol
SOAP Message
• SOAP messages consist of
– Envelope: top element of XML message (required)
– Header: general information on message such as security
(optional)
– Body: data exchanged (required)
• Header
– elements are application-specific
– may be processed and changed
by intermediaries or recipient
• Body
– elements are application-specific
– processed by recipient only
envelope
header
body
Skeleton SOAP Message
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Header>
...
...
</soap:Header>
<soap:Body>
...
...
<soap:Fault>
...
...
</soap:Fault>
</soap:Body>
</soap:Envelope>
16
<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2002/12/soap-envelope">
<env:Header>
<m:reservation xmlns:m=http://travelcompany.example.org/reservation
env:role=http://www.w3.org/2002/12/soap-envelope/role/next
env:mustUnderstand="true">
<m:dateAndTime>2001-11-29T13:20:00.000-05:00</m:dateAndTime>
</m:reservation>
<n:passenger xmlns:n=http://mycompany.example.com/employees
env:role=http://www.w3.org/2002/12/soap-envelope/role/next
env:mustUnderstand="true">
<n:name>Åke Jógvan Øyvind</n:name>
</n:passenger>
</env:Header>
<env:Body>
<p:itinerary xmlns:p="http://travelcompany.example.org/reservation/travel">
<p:departure>
<p:departing>New York</p:departing>
<p:arriving>Los Angeles</p:arriving>
<p:departureDate>2001-12-14</p:departureDate>
</p:departure>
<p:return>
<p:departing>Los Angeles</p:departing>
<p:arriving>New York</p:arriving>
<p:departureDate>2001-12-20</p:departureDate>
</p:return>
</p:itinerary>
</env:Body>
</env:Envelope>
Example: SOAP Message
Envelope
Header
Body
SOAP attributes
SOAP attributes
Conversational Message
Exchanges in SOAP
proposed
itinerary
alternatives
choice
travel agency customer
SOAP RPC
• Encapsulate RPC into SOAP messages
– procedure name and arguments
– response (return value)
– processing instructions (transactional RPC!)
• Example: Request message
<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2002/12/soap-envelope" >
<env:Header>
<t:transaction xmlns:t="http://thirdparty.example.org/transaction"
env:encodingStyle="http://example.com/encoding"
env:mustUnderstand="true" >5</t:transaction>
</env:Header>
<env:Body>
<m:chargeReservation env:encodingStyle="http://www.w3.org/2002/12/soap-encoding"
xmlns:m="http://travelcompany.example.org/">
<m:reservation xmlns:m="http://travelcompany.example.org/reservation">
<m:code>FT35ZBQ</m:code>
</m:reservation>
<o:creditCard xmlns:o="http://mycompany.example.com/financial">
<n:name xmlns:n="http://mycompany.example.com/employees">
Åke Jógvan Øyvind </n:name>
<o:number>123456789099999</o:number>
<o:expiration>2005-02</o:expiration>
</o:creditCard>
</m:chargeReservation>
</env:Body>
transaction information
TID method invocation
parameter 1
parameter 2
SOAP RPC
• Example cntd.: Response message
<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2002/12/soap-envelope" >
<env:Header>
<t:transaction xmlns:t=http://thirdparty.example.org/transaction
env:encodingStyle=http://example.com/encoding
env:mustUnderstand="true">5</t:transaction>
</env:Header>
<env:Body>
<m:chargeReservationResponse
env:encodingStyle=http://www.w3.org/2002/12/soap-encoding
xmlns:m="http://travelcompany.example.org/">
<m:code>FT35ZBQ</m:code>
<m:viewAt> http://travelcompany.example.org/reservations?code=FT35ZBQ
</m:viewAt>
</m:chargeReservationResponse>
</env:Body>
</env:Envelope>
method result
output parameters
SOAP Processing Model (1)
• Elements in the Header may carry SOAP-specific attributes
controlling the message processing
– attributes from namespace
http://www.w3.org/2002/12/soap-envelope
– role, mustUnderstand, relay, encodingStyle
• "role" attribute
– if processing node matches role in header it must process the header
– special role "next": receiving node must be capable of processing header
– special role "ultimateRceiver: receiving node must be capable of
processing body
• "mustUnderstand" attribute
– processing of header information is mandatory
SOAP Processing Model (2)
• "relay" attribute
– header block must be relayed if it is not processed
• " encodingStyle" attribute
– Indicates the encoding rules used to serialize parts of a
SOAP messages
• "http://www.w3.org/2003/05/soap-encoding"
– Base64
– date
– hexBinary …
• "http://example.org/encoding/"
• "http://www.w3.org/2003/05/soap-envelope/encoding/none"
The Fault element
• Carries an error message
• If present, must appear as a child of
<Body>
• Must only appear once
• Has the following sub-elements:Sub Element Description
<faultcode> A code for identifying the fault
(VersionMismatch, MustUnderstand, Client, Server)
<faultstring> A human readable explanation of the fault
<faultactor> Information about who caused the fault to
happen
<detail> Holds application specific error information
related to the Body element
Protocol Binding
• Bindings to different protocols possible: HTTP, SMTP
• Different HTTP bindings: HTTP POST, HTTP GET
– standard HTPP POST for request-response
POST /Reservations?code=FT35ZBQ HTTP/1.1
Host: travelcompany.example.org
Content-Type: application/soap+xml; charset="utf-8"
Content-Length: nnnn
<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2002/12/soap-envelope">
…SOAP request message…
</env:Envelope>
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset="utf-8"
Content-Length: nnnn
<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2002/12/soap-envelope">
… SOAP response message …
</env:Envelope>
HTTP POST
request
HTTP response
24
• Description of Web services in XML format
– abstract description of operations and their parameters (messages)
– binding to a concrete network protocol (e.g. SOAP)
– specification of endpoints for accessing the service
• Structure of a WSDL document Types: structure
of messages
Messages: used
by operations
(abstract)
Operations
PortType: operations
supported by service
Binding:
concrete protocol
Service: collection
of related ports
Port: Binding and
a network address
(protocol)
Operations
abstract
concrete
3. WSDL – Web Service Description
Language
Overview of Defining WSDL
Services
1. Define in XML Schema the message types used when invoking the
service: MT1, MT2 etc.
2. Define (named) messages by using these types, e.g.
• message m1 has type MT1
• message m2 has type MT2 etc.
1. Define Services that consist of one or more operations; each operation
is implemented by the exchange of messages
• service S offers operation O1; for executing O1 first send a request
message m1, then a response message m2 is returned
1. Define a Binding B to a specific protocol, e.g. SOAP
• service S is implemented in SOAP; the SOAP messages are constructed
from the abstract messages m1 and m2 by, e.g. inlining the message as
body of SOAP messages
1. Service S is provided with binding B at the following URI's (called
ports)
Example: Overall Document Structure
<?xml version="1.0">
<definitions name="StockQuote>
<types>
<schema>
definition of types in XML Schema …………
</schema>
</types>
<message name="GetTradePriceInput">
definition of a message....
</message>
<portType name="StockQuotePortType">
<operation name="GetLastTradePrice">
definition of an operation ………
</operation>
</portType>
<binding name="StockQuoteSoapBinding">
definition of a binding ………
</binding>
<service name="StockQuoteService">
<port name="StockQuotePort">
definition of a port ………
</port>
</service>
</definitions>
27
Example: Definition of Types
28
Example: Definition of Messages
and PortType
Operation uses these messages
29
Example: Definition of Binding
and Service
Binding provided at this URI
abstract operation GetLastTradePrice
of portType StockQuotePortType
implemented by these SOAP messages
PortTypes
• WSDL supports 4 message patterns that an endpoint (=service provider!) can
support for an operation
– one-way: message is sent to service provider without expecting response
– request-response: request is sent to service provider expecting response
– solicit-response: provider sends a message and expects response
– notification: message is sent by service provider
• Message patterns are distinguished by the use of input/output elements
– one way:
<wsdl:definitions .... > <wsdl:portType .... > *
<wsdl:operation name="nmtoken">
<wsdl:input name="nmtoken"? message="qname"/>
</wsdl:operation>
</wsdl:portType >
</wsdl:definitions>
– request/response:
<wsdl:definitions .... >
<wsdl:portType .... > *
<wsdl:operation name="nmtoken" parameterOrder="nmtokens">
<wsdl:input name="nmtoken"? message="qname"/>
<wsdl:output name="nmtoken"? message="qname"/>
<wsdl:fault name="nmtoken" message="qname"/>*
</wsdl:operation
</wsdl:portType >
</wsdl:definitions>
31
• Standard for describing, publishing and finding web services
– Still evolving
– Use XML-based description files for services
• Main components
– White pages: basic contact information about an organization
– Yellow pages: classification of organization based on industrial
categorization
– Green pages: technical description of services offered by registered
organizations
• Access to UDDI Registry
– Standard UDDI API (accessible via SOAP)
– Web browser
• Data Structures (XML)
– Business entity: general information + business services
– Business services: business level description + binding templates
– Binding templates: access point + tModel (service types)
– tModel: abstract definition of a web service
4. UDDI – Universal Description
Discovery and Integration
Registering a WSDL Service in UDDI
1. Register a business
2. Register the abstract service definition (tModel)
3. Register the service implementation definition (BusinessService)
• Step 1: Register a business
(see demo at https://uddi.ibm.com/testregistry/registry.html/)
Step 2: Registering an Abstract
WSDL Service Definition
<?xml version="1.0">
<definitions name="StockQuote>
<types>
<schema>
definition of types
</schema>
</types>
<message name="GetTradePriceInput">
definition of a message
</message>
<portType name="StockQuotePortType">
<operation name="GetLastTradePrice">
definition of an operation ………
</operation>
</portType>
<binding name="StockQuoteSoapBinding">
definition of a binding ………
</binding>
<service name="StockQuoteService">
<port name="StockQuotePort">
definition of a port ………
</port>
</service>
</definitions>
<?xml version="1.0">
<tModel tModelKey="…">
<name>StockQuote</name>
…
<overviewDoc>
<overviewURL>
http//…
</overviewURL>
<categoryBag>
<keyedReference tmodelKey="…"
keyName="uddi-org:types"
keyValue="wsdlSpec">
</categoryBag>
</tModel>
service specified in WSDL
Step 3: Registering a Service
Implementation<?xml version="1.0">
<definitions name="StockQuote>
<binding name="StockQuoteSoapBinding"
type="tns:StockQuotePortType">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="GetLastTradePrice">
<soap:operation
soapAction=
"http://example.com/GetLastTradePrice"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="StockQuoteService">
<documentation>My first service</documentation>
<port name="StockQuotePort"
binding="tns:StockQuoteBinding">
<soap:address
location="http://example.com/stockquote"/>
</port>
</service>
</definitions>
<?xml version="1.0">
<businessEntity businessKey="…">
…
<businessService serviceKey"…"
<name>StockQuote</name>
…
<bindingTemplates>
<bindingTemplate>
<accessPoint urlType="http">
http://example.com/stockquote
</accessPoint>
<tModelInstanceDetails>
…
<overviewDoc>
<overviewURL>
http://...
</overviewURL>
</overviewDoc>
…
</tModelInstanceDetails>
</bindingTemplate>
</bindingTemplates>
</businessService>
</businessEntity>
Interface Example (1)
Interface Example (2)
Interface Example (3)
References
• Standard documents
– http://www.w3.org/2002/ws/
– http://www.w3.org/TR/2002/CR-soap12-part0-
20021219/ (SOAP primer)
– http://www.w3.org/TR/SOAP/
– http://www.w3.org/TR/wsdl
– http://www.uddi.org
Ad

More Related Content

What's hot (20)

Introduction to SOAP/WSDL Web Services and RESTful Web Services
Introduction to SOAP/WSDL Web Services and RESTful Web ServicesIntroduction to SOAP/WSDL Web Services and RESTful Web Services
Introduction to SOAP/WSDL Web Services and RESTful Web Services
ecosio GmbH
 
Java Web Services [4/5]: Java API for XML Web Services
Java Web Services [4/5]: Java API for XML Web ServicesJava Web Services [4/5]: Java API for XML Web Services
Java Web Services [4/5]: Java API for XML Web Services
IMC Institute
 
Web Services - WSDL
Web Services - WSDLWeb Services - WSDL
Web Services - WSDL
Martin Necasky
 
Java web services
Java web servicesJava web services
Java web services
kumar gaurav
 
Xml schema
Xml schemaXml schema
Xml schema
Dr.Saranya K.G
 
Building Restful Applications Using Php
Building Restful Applications Using PhpBuilding Restful Applications Using Php
Building Restful Applications Using Php
Sudheer Satyanarayana
 
Web Service Presentation
Web Service PresentationWeb Service Presentation
Web Service Presentation
guest0df6b0
 
Java web services using JAX-WS
Java web services using JAX-WSJava web services using JAX-WS
Java web services using JAX-WS
IndicThreads
 
Overview of java web services
Overview of java web servicesOverview of java web services
Overview of java web services
Todd Benson (I.T. SPECIALIST and I.T. SECURITY)
 
WSDL 2.0 and Apache Woden
WSDL 2.0 and Apache WodenWSDL 2.0 and Apache Woden
WSDL 2.0 and Apache Woden
Sagara Gunathunga
 
Web Services
Web ServicesWeb Services
Web Services
F K
 
OAuth: Trust Issues
OAuth: Trust IssuesOAuth: Trust Issues
OAuth: Trust Issues
Lorna Mitchell
 
SOAP and Web services
SOAP and Web servicesSOAP and Web services
SOAP and Web services
hamsa nandhini
 
Soap web service
Soap web serviceSoap web service
Soap web service
NITT, KAMK
 
Web services tutorial
Web services tutorialWeb services tutorial
Web services tutorial
prathap kumar
 
Web services
Web servicesWeb services
Web services
Michael Weiss
 
Introduction to Service Oriented Architectures, SOAP/WSDL Web Services and RE...
Introduction to Service Oriented Architectures, SOAP/WSDL Web Services and RE...Introduction to Service Oriented Architectures, SOAP/WSDL Web Services and RE...
Introduction to Service Oriented Architectures, SOAP/WSDL Web Services and RE...
ecosio GmbH
 
Web service introduction
Web service introductionWeb service introduction
Web service introduction
Sagara Gunathunga
 
Web Services - A brief overview
Web Services -  A brief overviewWeb Services -  A brief overview
Web Services - A brief overview
Raveendra Bhat
 
Web Service Implementation Using ASP.NET
Web Service Implementation Using ASP.NETWeb Service Implementation Using ASP.NET
Web Service Implementation Using ASP.NET
Ponraj
 
Introduction to SOAP/WSDL Web Services and RESTful Web Services
Introduction to SOAP/WSDL Web Services and RESTful Web ServicesIntroduction to SOAP/WSDL Web Services and RESTful Web Services
Introduction to SOAP/WSDL Web Services and RESTful Web Services
ecosio GmbH
 
Java Web Services [4/5]: Java API for XML Web Services
Java Web Services [4/5]: Java API for XML Web ServicesJava Web Services [4/5]: Java API for XML Web Services
Java Web Services [4/5]: Java API for XML Web Services
IMC Institute
 
Building Restful Applications Using Php
Building Restful Applications Using PhpBuilding Restful Applications Using Php
Building Restful Applications Using Php
Sudheer Satyanarayana
 
Web Service Presentation
Web Service PresentationWeb Service Presentation
Web Service Presentation
guest0df6b0
 
Java web services using JAX-WS
Java web services using JAX-WSJava web services using JAX-WS
Java web services using JAX-WS
IndicThreads
 
Web Services
Web ServicesWeb Services
Web Services
F K
 
Soap web service
Soap web serviceSoap web service
Soap web service
NITT, KAMK
 
Web services tutorial
Web services tutorialWeb services tutorial
Web services tutorial
prathap kumar
 
Introduction to Service Oriented Architectures, SOAP/WSDL Web Services and RE...
Introduction to Service Oriented Architectures, SOAP/WSDL Web Services and RE...Introduction to Service Oriented Architectures, SOAP/WSDL Web Services and RE...
Introduction to Service Oriented Architectures, SOAP/WSDL Web Services and RE...
ecosio GmbH
 
Web Services - A brief overview
Web Services -  A brief overviewWeb Services -  A brief overview
Web Services - A brief overview
Raveendra Bhat
 
Web Service Implementation Using ASP.NET
Web Service Implementation Using ASP.NETWeb Service Implementation Using ASP.NET
Web Service Implementation Using ASP.NET
Ponraj
 

Similar to WebServices (20)

WebServices introduction in Mule
WebServices introduction in MuleWebServices introduction in Mule
WebServices introduction in Mule
F K
 
webservicearchitecture-150614164814-lva1-app6892.ppt
webservicearchitecture-150614164814-lva1-app6892.pptwebservicearchitecture-150614164814-lva1-app6892.ppt
webservicearchitecture-150614164814-lva1-app6892.ppt
Matrix823409
 
Web service architecture
Web service architectureWeb service architecture
Web service architecture
Muhammad Shahroz Anwar
 
Introduction to Web Services and the cocnept
Introduction to Web Services and the cocneptIntroduction to Web Services and the cocnept
Introduction to Web Services and the cocnept
PaceInfotech
 
SOAP Service in Mule Esb
SOAP Service in Mule EsbSOAP Service in Mule Esb
SOAP Service in Mule Esb
Anand kalla
 
Soap and restful webservice
Soap and restful webserviceSoap and restful webservice
Soap and restful webservice
Dong Ngoc
 
Web services Concepts
Web services ConceptsWeb services Concepts
Web services Concepts
pasam suresh
 
Web services
Web servicesWeb services
Web services
Balas Kandhan
 
Future Internet
Future InternetFuture Internet
Future Internet
Saber Ferjani
 
complete web service1.ppt
complete web service1.pptcomplete web service1.ppt
complete web service1.ppt
Dr.Saranya K.G
 
Developmeant and deployment of webservice
Developmeant and deployment of webserviceDevelopmeant and deployment of webservice
Developmeant and deployment of webservice
Freelance android developer
 
soap toolkit
soap toolkitsoap toolkit
soap toolkit
elliando dias
 
Webservices
WebservicesWebservices
Webservices
s4al_com
 
java web services - soap and rest services
java web services - soap and rest  servicesjava web services - soap and rest  services
java web services - soap and rest services
VasantPrasad
 
Basics of the Web Platform
Basics of the Web PlatformBasics of the Web Platform
Basics of the Web Platform
Sanjeev Verma, PhD
 
Web Landscape - updated in Jan 2016
Web Landscape - updated in Jan 2016Web Landscape - updated in Jan 2016
Web Landscape - updated in Jan 2016
Jack Zheng
 
SOAP WEB TECHNOLOGIES
SOAP WEB TECHNOLOGIESSOAP WEB TECHNOLOGIES
SOAP WEB TECHNOLOGIES
tamilmozhiyaltamilmo
 
Evolution Of The Web Platform & Browser Security
Evolution Of The Web Platform & Browser SecurityEvolution Of The Web Platform & Browser Security
Evolution Of The Web Platform & Browser Security
Sanjeev Verma, PhD
 
Web services soap
Web services soapWeb services soap
Web services soap
Khan625
 
Web services soap
Web services soapWeb services soap
Web services soap
Rajkattamuri
 
WebServices introduction in Mule
WebServices introduction in MuleWebServices introduction in Mule
WebServices introduction in Mule
F K
 
webservicearchitecture-150614164814-lva1-app6892.ppt
webservicearchitecture-150614164814-lva1-app6892.pptwebservicearchitecture-150614164814-lva1-app6892.ppt
webservicearchitecture-150614164814-lva1-app6892.ppt
Matrix823409
 
Introduction to Web Services and the cocnept
Introduction to Web Services and the cocneptIntroduction to Web Services and the cocnept
Introduction to Web Services and the cocnept
PaceInfotech
 
SOAP Service in Mule Esb
SOAP Service in Mule EsbSOAP Service in Mule Esb
SOAP Service in Mule Esb
Anand kalla
 
Soap and restful webservice
Soap and restful webserviceSoap and restful webservice
Soap and restful webservice
Dong Ngoc
 
Web services Concepts
Web services ConceptsWeb services Concepts
Web services Concepts
pasam suresh
 
complete web service1.ppt
complete web service1.pptcomplete web service1.ppt
complete web service1.ppt
Dr.Saranya K.G
 
Webservices
WebservicesWebservices
Webservices
s4al_com
 
java web services - soap and rest services
java web services - soap and rest  servicesjava web services - soap and rest  services
java web services - soap and rest services
VasantPrasad
 
Web Landscape - updated in Jan 2016
Web Landscape - updated in Jan 2016Web Landscape - updated in Jan 2016
Web Landscape - updated in Jan 2016
Jack Zheng
 
Evolution Of The Web Platform & Browser Security
Evolution Of The Web Platform & Browser SecurityEvolution Of The Web Platform & Browser Security
Evolution Of The Web Platform & Browser Security
Sanjeev Verma, PhD
 
Web services soap
Web services soapWeb services soap
Web services soap
Khan625
 
Ad

More from Rajkattamuri (20)

Github plugin setup in anypointstudio
Github plugin setup in anypointstudioGithub plugin setup in anypointstudio
Github plugin setup in anypointstudio
Rajkattamuri
 
For each component in mule
For each component in muleFor each component in mule
For each component in mule
Rajkattamuri
 
Filter expression in mule
Filter expression in muleFilter expression in mule
Filter expression in mule
Rajkattamuri
 
File component in mule
File component in muleFile component in mule
File component in mule
Rajkattamuri
 
Database component in mule
Database component in muleDatabase component in mule
Database component in mule
Rajkattamuri
 
Choice component in mule
Choice component in mule Choice component in mule
Choice component in mule
Rajkattamuri
 
Java Basics in Mule
Java Basics in MuleJava Basics in Mule
Java Basics in Mule
Rajkattamuri
 
WebServices Basic Overview
WebServices Basic OverviewWebServices Basic Overview
WebServices Basic Overview
Rajkattamuri
 
Java For Begineers
Java For BegineersJava For Begineers
Java For Begineers
Rajkattamuri
 
Java Basics
Java BasicsJava Basics
Java Basics
Rajkattamuri
 
WebServices Basics
WebServices BasicsWebServices Basics
WebServices Basics
Rajkattamuri
 
Core java
Core javaCore java
Core java
Rajkattamuri
 
Web services wsdl
Web services wsdlWeb services wsdl
Web services wsdl
Rajkattamuri
 
Web services uddi
Web services uddiWeb services uddi
Web services uddi
Rajkattamuri
 
Maven
MavenMaven
Maven
Rajkattamuri
 
Mule esb dataweave
Mule esb dataweaveMule esb dataweave
Mule esb dataweave
Rajkattamuri
 
Mule with drools
Mule with drools Mule with drools
Mule with drools
Rajkattamuri
 
Mule with quartz
Mule with quartz Mule with quartz
Mule with quartz
Rajkattamuri
 
Mule with rabbitmq
Mule with rabbitmqMule with rabbitmq
Mule with rabbitmq
Rajkattamuri
 
Mule with velocity
Mule with velocityMule with velocity
Mule with velocity
Rajkattamuri
 
Github plugin setup in anypointstudio
Github plugin setup in anypointstudioGithub plugin setup in anypointstudio
Github plugin setup in anypointstudio
Rajkattamuri
 
For each component in mule
For each component in muleFor each component in mule
For each component in mule
Rajkattamuri
 
Filter expression in mule
Filter expression in muleFilter expression in mule
Filter expression in mule
Rajkattamuri
 
File component in mule
File component in muleFile component in mule
File component in mule
Rajkattamuri
 
Database component in mule
Database component in muleDatabase component in mule
Database component in mule
Rajkattamuri
 
Choice component in mule
Choice component in mule Choice component in mule
Choice component in mule
Rajkattamuri
 
Java Basics in Mule
Java Basics in MuleJava Basics in Mule
Java Basics in Mule
Rajkattamuri
 
WebServices Basic Overview
WebServices Basic OverviewWebServices Basic Overview
WebServices Basic Overview
Rajkattamuri
 
Java For Begineers
Java For BegineersJava For Begineers
Java For Begineers
Rajkattamuri
 
WebServices Basics
WebServices BasicsWebServices Basics
WebServices Basics
Rajkattamuri
 
Mule esb dataweave
Mule esb dataweaveMule esb dataweave
Mule esb dataweave
Rajkattamuri
 
Mule with rabbitmq
Mule with rabbitmqMule with rabbitmq
Mule with rabbitmq
Rajkattamuri
 
Mule with velocity
Mule with velocityMule with velocity
Mule with velocity
Rajkattamuri
 
Ad

Recently uploaded (20)

How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 

WebServices

  • 2. Outline • Overview of Web Services • SOAP (messaging) • WSDL (service description) • UDDI (registry)
  • 3. A bit of buzz (1) • “By 2006, Web services will take hold as a competitive differentiator in business relationships and product innovation. Enterprises that want to remain competitive will need to use Web services to provide commonly requested data to their partners. It is imperative that enterprises develop a strategy for how to use Web services to develop products, including hard goods, digital goods and services.” Gartner Research, November 2003
  • 4. A bit of buzz (2) • Yankee Group, Nov. 2004 survey (437 entreprises) – 48% have already deployed Web Services – 39% will deploy Web Services within one year – 71% will increase spending on Web Services in 2005 • Jeff Bezos (CEO Amazon), Tech. Review 01/2005 – “Web 1.0 was making the Internet for people; Web 2.0 is making the Internet better for computers”
  • 5. What is a Web Service? • A web service is a network accessible interface to application programs, built using standard Internet technologies. • Clients of web services do NOT need to know how it is implemented. Application client Application program Network Web Service
  • 6. • A Web Service is a URL-addressable software resource that performs functions (or a function). • "Web services are a new breed of Web application. They are self-contained, self-describing, modular applications that can be published, located, and invoked across the Web. Web services perform functions, which can be anything from simple requests to complicated business processes. … Once a Web service is deployed, other applications (and other Web services) can discover and invoke the deployed service.” IBM web service tutorial Web Services: Some Definitions
  • 7. Web Evolution Technology TCP/IP HTML XML Purpose Connectivity Presentation Programmability Applications E-Mail, FTP… Web Pages Web Services Outcome Create the Web Browse the Web Program the Web
  • 8. Web Service Architecture Service provider Service broker Service requestor publish (WSDL) find (UDDI) bind (SOAP) "server" "client""naming service"
  • 9. 9 Web Service Stack • A set of standards for implementing web services Transport: HTTP, SMTP, FTTP, … Messaging: SOAP Service Description: WSDL Publication and Discovery: UDDI extends HTTP extends HTML extends URI
  • 10. Basic Web Service Usage Scenario Web Service Repository (UDDI) publish web service Web Service Provider 1 register WSDL file (manually) (manual) web service lookup 2 http get 3 WSDL file write client application deploy client application 4 SOAP request 5 SOAP response
  • 11. Web Services Implementation • Application Server (web service-enabled) – provides implementation of services and exposes it through WSDL/SOAP – implementation in Java, as EJB, as .NET (C#) etc. • SOAP server – implements the SOAP protocol • HTTP server – standard Web server • SOAP client – implements the SOAP protocol on the client site Requestor (SOAP client) Web Service Provider (endpoint) HTTP server SOAP server application server SOAP messages (http transport)
  • 12. Down to earth example: Amazon Web Services • www.amazon.com/gp/aws/landing.html • Exposes world’s largest product database through Web Services – Counterintuitive strategy? (cf. Google) • Idea: let others figure out how to sell products for us – Associates program enables Web sites to link to Amazon.com and earn referral fees • By November 2004: 65000 developers • Some interesting examples: – www.grokker.com – www.monsoonretail.com
  • 13. 13 • Lightweight messaging framework based on XML • Supports simple messaging and RPC • SOAP consists of – Envelope construct: defines the overall structure of messages – Encoding rules: define the serialization of application data types – SOAP RPC: defines representation of remote procedure calls and responses – Binding framework: binding to protocols such as HTTP, SMTP – Fault handling • Soap supports advanced message processing: – forwarding intermediaries: route messages based on the semantics of message – active intermediaries: do additional processing before forwarding messages, may modify message 2. SOAP – Simple Object Access Protocol
  • 14. SOAP Message • SOAP messages consist of – Envelope: top element of XML message (required) – Header: general information on message such as security (optional) – Body: data exchanged (required) • Header – elements are application-specific – may be processed and changed by intermediaries or recipient • Body – elements are application-specific – processed by recipient only envelope header body
  • 15. Skeleton SOAP Message <?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Header> ... ... </soap:Header> <soap:Body> ... ... <soap:Fault> ... ... </soap:Fault> </soap:Body> </soap:Envelope>
  • 16. 16 <?xml version='1.0' ?> <env:Envelope xmlns:env="http://www.w3.org/2002/12/soap-envelope"> <env:Header> <m:reservation xmlns:m=http://travelcompany.example.org/reservation env:role=http://www.w3.org/2002/12/soap-envelope/role/next env:mustUnderstand="true"> <m:dateAndTime>2001-11-29T13:20:00.000-05:00</m:dateAndTime> </m:reservation> <n:passenger xmlns:n=http://mycompany.example.com/employees env:role=http://www.w3.org/2002/12/soap-envelope/role/next env:mustUnderstand="true"> <n:name>Åke Jógvan Øyvind</n:name> </n:passenger> </env:Header> <env:Body> <p:itinerary xmlns:p="http://travelcompany.example.org/reservation/travel"> <p:departure> <p:departing>New York</p:departing> <p:arriving>Los Angeles</p:arriving> <p:departureDate>2001-12-14</p:departureDate> </p:departure> <p:return> <p:departing>Los Angeles</p:departing> <p:arriving>New York</p:arriving> <p:departureDate>2001-12-20</p:departureDate> </p:return> </p:itinerary> </env:Body> </env:Envelope> Example: SOAP Message Envelope Header Body SOAP attributes SOAP attributes
  • 17. Conversational Message Exchanges in SOAP proposed itinerary alternatives choice travel agency customer
  • 18. SOAP RPC • Encapsulate RPC into SOAP messages – procedure name and arguments – response (return value) – processing instructions (transactional RPC!) • Example: Request message <?xml version='1.0' ?> <env:Envelope xmlns:env="http://www.w3.org/2002/12/soap-envelope" > <env:Header> <t:transaction xmlns:t="http://thirdparty.example.org/transaction" env:encodingStyle="http://example.com/encoding" env:mustUnderstand="true" >5</t:transaction> </env:Header> <env:Body> <m:chargeReservation env:encodingStyle="http://www.w3.org/2002/12/soap-encoding" xmlns:m="http://travelcompany.example.org/"> <m:reservation xmlns:m="http://travelcompany.example.org/reservation"> <m:code>FT35ZBQ</m:code> </m:reservation> <o:creditCard xmlns:o="http://mycompany.example.com/financial"> <n:name xmlns:n="http://mycompany.example.com/employees"> Åke Jógvan Øyvind </n:name> <o:number>123456789099999</o:number> <o:expiration>2005-02</o:expiration> </o:creditCard> </m:chargeReservation> </env:Body> transaction information TID method invocation parameter 1 parameter 2
  • 19. SOAP RPC • Example cntd.: Response message <?xml version='1.0' ?> <env:Envelope xmlns:env="http://www.w3.org/2002/12/soap-envelope" > <env:Header> <t:transaction xmlns:t=http://thirdparty.example.org/transaction env:encodingStyle=http://example.com/encoding env:mustUnderstand="true">5</t:transaction> </env:Header> <env:Body> <m:chargeReservationResponse env:encodingStyle=http://www.w3.org/2002/12/soap-encoding xmlns:m="http://travelcompany.example.org/"> <m:code>FT35ZBQ</m:code> <m:viewAt> http://travelcompany.example.org/reservations?code=FT35ZBQ </m:viewAt> </m:chargeReservationResponse> </env:Body> </env:Envelope> method result output parameters
  • 20. SOAP Processing Model (1) • Elements in the Header may carry SOAP-specific attributes controlling the message processing – attributes from namespace http://www.w3.org/2002/12/soap-envelope – role, mustUnderstand, relay, encodingStyle • "role" attribute – if processing node matches role in header it must process the header – special role "next": receiving node must be capable of processing header – special role "ultimateRceiver: receiving node must be capable of processing body • "mustUnderstand" attribute – processing of header information is mandatory
  • 21. SOAP Processing Model (2) • "relay" attribute – header block must be relayed if it is not processed • " encodingStyle" attribute – Indicates the encoding rules used to serialize parts of a SOAP messages • "http://www.w3.org/2003/05/soap-encoding" – Base64 – date – hexBinary … • "http://example.org/encoding/" • "http://www.w3.org/2003/05/soap-envelope/encoding/none"
  • 22. The Fault element • Carries an error message • If present, must appear as a child of <Body> • Must only appear once • Has the following sub-elements:Sub Element Description <faultcode> A code for identifying the fault (VersionMismatch, MustUnderstand, Client, Server) <faultstring> A human readable explanation of the fault <faultactor> Information about who caused the fault to happen <detail> Holds application specific error information related to the Body element
  • 23. Protocol Binding • Bindings to different protocols possible: HTTP, SMTP • Different HTTP bindings: HTTP POST, HTTP GET – standard HTPP POST for request-response POST /Reservations?code=FT35ZBQ HTTP/1.1 Host: travelcompany.example.org Content-Type: application/soap+xml; charset="utf-8" Content-Length: nnnn <?xml version='1.0' ?> <env:Envelope xmlns:env="http://www.w3.org/2002/12/soap-envelope"> …SOAP request message… </env:Envelope> HTTP/1.1 200 OK Content-Type: application/soap+xml; charset="utf-8" Content-Length: nnnn <?xml version='1.0' ?> <env:Envelope xmlns:env="http://www.w3.org/2002/12/soap-envelope"> … SOAP response message … </env:Envelope> HTTP POST request HTTP response
  • 24. 24 • Description of Web services in XML format – abstract description of operations and their parameters (messages) – binding to a concrete network protocol (e.g. SOAP) – specification of endpoints for accessing the service • Structure of a WSDL document Types: structure of messages Messages: used by operations (abstract) Operations PortType: operations supported by service Binding: concrete protocol Service: collection of related ports Port: Binding and a network address (protocol) Operations abstract concrete 3. WSDL – Web Service Description Language
  • 25. Overview of Defining WSDL Services 1. Define in XML Schema the message types used when invoking the service: MT1, MT2 etc. 2. Define (named) messages by using these types, e.g. • message m1 has type MT1 • message m2 has type MT2 etc. 1. Define Services that consist of one or more operations; each operation is implemented by the exchange of messages • service S offers operation O1; for executing O1 first send a request message m1, then a response message m2 is returned 1. Define a Binding B to a specific protocol, e.g. SOAP • service S is implemented in SOAP; the SOAP messages are constructed from the abstract messages m1 and m2 by, e.g. inlining the message as body of SOAP messages 1. Service S is provided with binding B at the following URI's (called ports)
  • 26. Example: Overall Document Structure <?xml version="1.0"> <definitions name="StockQuote> <types> <schema> definition of types in XML Schema ………… </schema> </types> <message name="GetTradePriceInput"> definition of a message.... </message> <portType name="StockQuotePortType"> <operation name="GetLastTradePrice"> definition of an operation ……… </operation> </portType> <binding name="StockQuoteSoapBinding"> definition of a binding ……… </binding> <service name="StockQuoteService"> <port name="StockQuotePort"> definition of a port ……… </port> </service> </definitions>
  • 28. 28 Example: Definition of Messages and PortType Operation uses these messages
  • 29. 29 Example: Definition of Binding and Service Binding provided at this URI abstract operation GetLastTradePrice of portType StockQuotePortType implemented by these SOAP messages
  • 30. PortTypes • WSDL supports 4 message patterns that an endpoint (=service provider!) can support for an operation – one-way: message is sent to service provider without expecting response – request-response: request is sent to service provider expecting response – solicit-response: provider sends a message and expects response – notification: message is sent by service provider • Message patterns are distinguished by the use of input/output elements – one way: <wsdl:definitions .... > <wsdl:portType .... > * <wsdl:operation name="nmtoken"> <wsdl:input name="nmtoken"? message="qname"/> </wsdl:operation> </wsdl:portType > </wsdl:definitions> – request/response: <wsdl:definitions .... > <wsdl:portType .... > * <wsdl:operation name="nmtoken" parameterOrder="nmtokens"> <wsdl:input name="nmtoken"? message="qname"/> <wsdl:output name="nmtoken"? message="qname"/> <wsdl:fault name="nmtoken" message="qname"/>* </wsdl:operation </wsdl:portType > </wsdl:definitions>
  • 31. 31 • Standard for describing, publishing and finding web services – Still evolving – Use XML-based description files for services • Main components – White pages: basic contact information about an organization – Yellow pages: classification of organization based on industrial categorization – Green pages: technical description of services offered by registered organizations • Access to UDDI Registry – Standard UDDI API (accessible via SOAP) – Web browser • Data Structures (XML) – Business entity: general information + business services – Business services: business level description + binding templates – Binding templates: access point + tModel (service types) – tModel: abstract definition of a web service 4. UDDI – Universal Description Discovery and Integration
  • 32. Registering a WSDL Service in UDDI 1. Register a business 2. Register the abstract service definition (tModel) 3. Register the service implementation definition (BusinessService) • Step 1: Register a business (see demo at https://uddi.ibm.com/testregistry/registry.html/)
  • 33. Step 2: Registering an Abstract WSDL Service Definition <?xml version="1.0"> <definitions name="StockQuote> <types> <schema> definition of types </schema> </types> <message name="GetTradePriceInput"> definition of a message </message> <portType name="StockQuotePortType"> <operation name="GetLastTradePrice"> definition of an operation ……… </operation> </portType> <binding name="StockQuoteSoapBinding"> definition of a binding ……… </binding> <service name="StockQuoteService"> <port name="StockQuotePort"> definition of a port ……… </port> </service> </definitions> <?xml version="1.0"> <tModel tModelKey="…"> <name>StockQuote</name> … <overviewDoc> <overviewURL> http//… </overviewURL> <categoryBag> <keyedReference tmodelKey="…" keyName="uddi-org:types" keyValue="wsdlSpec"> </categoryBag> </tModel> service specified in WSDL
  • 34. Step 3: Registering a Service Implementation<?xml version="1.0"> <definitions name="StockQuote> <binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="GetLastTradePrice"> <soap:operation soapAction= "http://example.com/GetLastTradePrice"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="StockQuoteService"> <documentation>My first service</documentation> <port name="StockQuotePort" binding="tns:StockQuoteBinding"> <soap:address location="http://example.com/stockquote"/> </port> </service> </definitions> <?xml version="1.0"> <businessEntity businessKey="…"> … <businessService serviceKey"…" <name>StockQuote</name> … <bindingTemplates> <bindingTemplate> <accessPoint urlType="http"> http://example.com/stockquote </accessPoint> <tModelInstanceDetails> … <overviewDoc> <overviewURL> http://... </overviewURL> </overviewDoc> … </tModelInstanceDetails> </bindingTemplate> </bindingTemplates> </businessService> </businessEntity>
  • 38. References • Standard documents – http://www.w3.org/2002/ws/ – http://www.w3.org/TR/2002/CR-soap12-part0- 20021219/ (SOAP primer) – http://www.w3.org/TR/SOAP/ – http://www.w3.org/TR/wsdl – http://www.uddi.org

Editor's Notes

  • #7: The notion of web services captures a recent technological development that aims at the possibility to access services (i.e. applications) through the Internet infrastructure (i.e. Web standards). Technologically they represent only a small change as compared to earlier distributed computing standards, but the impact of this new technology is considered as being very high as it facilitates automated distributed computing and information access by taking advantage of the ubiquitously available Web infrastructure. In particular on-demand use of software is considered as one of the important developments Web service technology is going to support.
  • #9: The Web architecture consists of three components The service providers that publish available services and offer bindings for services The service brokers that allow service providers to publish their services (register and categorize). They provide also mechanisms to locate services and their providers The service requestor that uses the service broker to find a service and then invokes (or binds) the service offered by a service provider. Note that this architecture corresponds 1:1 to the CORBA model of server-naming service-client. For each of the three activities the Web services architecture provides specific standards, namely SOAP, WSDL, and UDDI. SOAP and WSDL are W3C standards, whereas UDDI is an OASIS standard.
  • #10: The different standards of the web services architecture establish a communication infrastructure that can be viewed as a high-level protocol stack, where each higher level protocol builds on the lower level protocol: The web service transport layer is responsible for the basic communication between web services and builds on existing Internet (application) protocol standards The messaging layer uses the XML-based Simple Object access Protocol for exchanging messages in a request/reply fashion in a distributed environment The description layer allows describing interfaces of web services – including operations and their parameters. The descriptions are based on the XML-based WSDL standard (Web Service Description Language) The publication and discovery layer provides the mechanisms for the service brokers. This layer is based on the Universal Description, Discovery and Integration (UDDI) standard, a standard that defines XML-based service AND business descriptions, and a SOAP-based standard API to interact with the service broker. On can view each of the three higher layers of this protocol stack as an extension of existing WWW protocols for supporting services instead of simple document access. SOAP extends HTTP allowing not only document requests but also service requests. WSDL extends HTML by allowing to describe services instead of the structure of documents. UDDI extends URI by allowing to locate services instead of documents only.
  • #11: This figure illustrates a (possible) basic Web service usage scenario. A Web service provider registers it&amp;apos;s web service at a UDDI repository. This could be done manually through a Web interface or through a UDDI API. He registers the description of the web service which is given in WSDL. A potential user may, for example, manually look up in the UDDI repository the Web service through http and obtain the WSDL file. This file contains all the information needed in order to access the Web service. Based on this information he/she implements a client application that makes use of the web service. When the client application is executed it accesses the web service by using the SOAP protocol for service invocation.
  • #12: The implementation of web services (in runtime) requires in particular the support of the SOAP protocol on the server and the client site. At the server this support is provided by a SOAP server that uses the HTTP server for transporting SOAP messages. The applications implementing the service can be implemented in any implementation platform, ranging from simple programming languages to application services, that support a web service front-end. It is irrelevant what exactly the interface between the SOAP server and application server is and to which degree exposing applications as web services is automated (e.g. whether web services can be automatically generated from application server components such as EJBs). These solutions are vendor-specific.
  • #14: SOAP defines the protocol by which web services can be invoked. It supports both simple messaging (as in message queuing approaches) and RPC-style communication. It can be used over any transport protocol layer (such as HTTP, SMTP). SOAP defines the basic structure of messages and encoding rules for data types (used as parameters in procedure/method calls) and the encoding of procedure calls and responses. SOAP also defines bindings to specific transport protocols most notably to HTTP and SMTP. SOAP is designed to also allow the implementation of advanced message processing models, in particular the use of intermediaries. Intermediaries both can just route messages, based on the content of the message, or do some additional processing before routing the message.
  • #15: The basic structure of a SOAP message consists of a header and a body, both of which the contents are application specific, i.e. not defined by SOAP. The differentiation is made to distinguish information that is to be processed by all intermediaries (Header) and information that is to be processed at the final destination (Body).
  • #17: We highlight some specificities of the SOAP message model for this example. The envelope is the mandatory top-level element of any SOAP message. The header relates to information on authentication, transaction management, payment etc. needed for processing the message and during transport. Elements in the header contain SOAP-specific attributes (recognizable as belonging to the env namespace) which are used to determine which type of processing is expected by intermediaries and endpoints. This example shows of how the header is used in order transmit certain transactional properties that are required for the service invocation. The body contains the request, which consists of a travel itinerary in this case. That is, this message is not corresponding to a method invocation but to a simple message transfer.
  • #18: Having simple informational messages as in the previous example, using SOAP, one can implement conversational message exchanges such as illustrated in this example. Such exchanges can for example be used to model a negotiation process between a seller and a customer.
  • #19: SOAP also standardizes the way of how request/response interactions are to be represented within a SOAP message. The example shows of how a request is represented: the (application-specific) method name (chargeReservations) occurs as top element in the message Body. The (application-specific) parameters are then to be included as subelements of the method element. SOAP also specifies of how to encode various data types. The Header of the message can be used to include information that is necessary to properly process the request: in this example it is used to state that the message is to be performed as part of a transaction, with a given TID. Note that also the encoding of this processing information is not standardized by SOAP but by the applications, resp. systems, using the SOAP message format.
  • #20: Similarly as the request also the response is encoded. In the response the method result is represented by an application specific top element in the message Body, which again includes one or more output parameters as sub-elements. In order to model functions SOAP provides an alternative representation of response messages allowing to distinguish a function result value as a special element.
  • #21: We now explain in more detail the meaning of the SOAP-specific attributes that are used in the elements occurring in the Header element. The role attribute is considered by the receiver of the message and concerns the capability of the receiver to process the (application-specific) information in the SOAP message. If its value is set to &amp;quot;next&amp;quot; this implies that every receiving node must be capable of processing the header, whereas the value &amp;quot;ultimateReceiver&amp;quot; implies the capability to also process the message body. The &amp;quot;mustUnderstand&amp;quot; attributes can be used to control the processing of the header. Note that being capable of processing the header does not necessarily imply that the header will be processed.
  • #22: The &amp;quot;relay&amp;quot; attribute can in the case processing is not done, require to forward the message to another SOAP node. The encodingStyle attribute information item indicates the encoding rules used to serialize parts of a SOAP message.
  • #23: A SOAP fault is used to carry error information within a SOAP message.
  • #24: SOAP also standardizes the binding of SOAP messages to specific transport protocols, in particular to HTTP. Essentially it prescribes of how the transport protocols are to be used to perform SOAP message exchanges. A possible way of how such a binding looks like for HTTP is given in the example. Specifically this type of binding requires the use of HTTP POST to transmit a request and to use the corresponding HTTP response to transmit the response associated with the request.
  • #25: WSDL describes web services in terms of the services offered and the endpoints that offer the services. Using the WSDL specification of a web service a client is able to construct the necessary SOAP messages in order to access the service, to send the message to the required network location, as well as to correctly interpret the responses. WSDL distinguishes the abstract and concrete specification of a service. The abstract part specifies the type of data used in the parameters, the types of messages exchanged during an operation, and the operations themselves, which might require the exchange of multiple messages. Since a Web service might consists of a set of operations supported (e.g. a travel reservation service might offer operations to check itineraries, book flights and payment) multiple operations can be bundled in so-called portTypes. The concrete specification of the service concerns the transport protocol used and the necessary binding (e.g. to SOAP) and the network addresses where the service is offered (called ports). Again the same service may be offered at multiple physical sites, therefore a set of ports can be specified to define the service. This organization is also reflected in the structure of a WSDL document. The vertical arrows in the figure correspond to references made within a WSDL document through a &amp;quot;name&amp;quot; attribute (thus they are &amp;quot;refersTo&amp;quot; relationship) whereas the horizontal arrows correspond to sub-element relationships in the WSDL document.
  • #26: To better understand the role of the different parts of a WSDL document, we sketch here the typical steps that would be taken in completely defining a Web service using WSDL.
  • #27: This is an overview of the syntactical representation of a service in WSDL. For each of the main parts (data, messages, portTypes, Service) a separate top element is used (outer boxes). Within this subelements represent collections of specifications, such as the set of operations belonging to a portType. These are indicated by the inner boxes.
  • #28: This example shows the type definition of a WSDL specification. The types are defined using the XML Schema language. In this example two data types are defined as complex types. XML document (fragments) corresponding to these types will be used as parameters of the web service.
  • #29: This (fragment of a) WSDL specification refers to the type definitions before. Two messages are defined. The elements of a message allow to associate with the message one or more types that have been defined before in the type specification. Each part obtains an individual name and refers to a type. A portType consists of one or more operations. Each operation requires two messages, one for the request (input) and one for the response. The messages are referred to by their names. This example illustrates of how a WSDL definition can be decomposed into multiple documents: the type definitions from the previous slides are imported into the document using the import element (rather than directly inlined into the document, which also would be possible). Note that all element and attribute names in this example are WSDL-specific, i.e. defined in the WSDL schema (which is given as an XML Schema)
  • #30: This WSDL specification completes the example. It refers to the specification on the previous slide. In the binding element it binds the port type GetLastTradePrice (which is the abstract service) to a concrete protocol, namely the SOAP protocol and thus defines the message format. In the service part the binding StockQuoteBinding (which is the abstract service definition together with a concrete transport protocol) is bound to a specific access point, given as URL, resulting in a port. This single port then constitutes the concrete service. We do not detail the rules of how the binding between the abstract operation specification and its corresponding SOAP operations is established. Essentially using the syntax given above the input/output messages are mapped to SOAP request/response messages, and the SOAP message body is derived from the XML types associated with the messages in the abstract specification.
  • #31: WSDL foresees four different types of operations, corresponding to different message exchange patterns. These patterns are considered as being the most frequently used in practice. These different patterns are distinguished in the specification of the operation by the different use of the input/output elements, as illustrated in the example.
  • #32: The UDDI standard contains a number of different components for describing organizations, classifying them according to their general activities and allowing them to offer registered web services. UDDI also standardizes an access protocol for accessing a UDDI repository. First UDDI repositories are being made publicly or commercially available. These can also be accessed through Web interfaces. A business is described in UDDI by an XML document. UDDI introduces an abstract model to specify web services, the tModel. This seems to be redundant with WSDL, but the purpose is different: UDDI foresees that different abstract service description mechanisms might be used in future. The tModel provides a common framework to include these into UDDI registry entries.
  • #33: Registration of service can be performed interactively at UDDI repositories. The registration of a business requires to capture basic information (like address, areas of activity).
  • #34: Registering a service requires two steps: the registration of the abstract description and the registration of the service implementation-related information. The abstract definition is captured by the so-called tModel (another XML document type). It allows to provide the UDDI registry with the information on the service name (i.e. it&amp;apos;s identification) and it&amp;apos;s abstract specification, by referring to a WSDL document. The figure illustrates of how this association is syntactically represented in XML. UDDI provides for every service representation standard a model for registering the description, though WSDL is apparently the only relevant one at the given time.
  • #35: Similarly, the concrete implementation of the service is registered (as part of the business service description) by referring to a WSDL document. For the registration of the implementation, in particular the physical address at which the service is accessed, which is found in the port definition in the WSDL specification, is included in the UDDI service description as shown in the example. Again the UDDI service description then refers for the details of the service binding to the WSDL document.