Understanding Web Services

Download Report

Transcript Understanding Web Services

Understanding Web Services
Presented By: Woodas Lai
1
Understanding Web Services




By Jaideep Roy and Anupama Ramanujan
What is Web Services?
Architecture
Core technologies




XML
SOAP
WSDL
UDDI
2
What is Web Services?
 A Web Services is a unit of application
logic providing data and services to other
applications
 They are published to the Web in such a way
that other applications can find and use them
3
Examples of Web Services
a credit card service that
processes credit card transactions
for a given account

a market data service that
provides stock market data
associated with a specified
stock symbol

4
Architecture
5
Core Technologies

Technologies for Web Services




XML
UDDI ( XML Based )
SOAP ( XML Based )
WSDL ( XML Based )
6
SOAP


Simple Object Access Protocol (SOAP)
http://www.w3.org/TR/SOAP/
A lightweight XML communication message
protocol
7
Role of SOAP
.NET
application
Binary
Java
Application
.NET function call
request
Binary Java function call
request
XML (Text Based)
SOAP
Server
SOAP Client
SOAP Message
Perform Serialization or
Marshalling
Perform De-Serialization
or Un-Marshalling
8
SOAP Overview


Describe the messaging format for
machine-to-machine communication
Enable procedure calls on remote objects

Define elements to specify remote function
names, parameters and return types
9
SOAP Overview


Support different Internet protocols, such
as HTTP, SMTP, FTP (Protocol neutral)
SOAP = XML + RPC + HTTP (Typical use)

A SOAP document is an XML document
designed to invoke methods on remote
computers over HTTP
10
SOAP Structure
SOAP Message
Envelope
Header (Optional)
Body (Mandatory)
11
SOAP Example
<env:Envelope xmlns:env="http://www.w3.org/2001/06/soap-envelope" >
<env:Header>
……
</env:Header>
<env:Body>
<m:GetLastTradePrice
env:encodingStyle= "http://www.w3.org/2001/06/soapencoding"
xmlns:m="http://example.org/2001/06/quotes">
<symbol>DIS</symbol>
</m:GetLastTradePrice>
</env:Body>
</env:Envelope>
12
WSDL



Web Services Description Language (WSDL)
http://www.w3.org/TR/wsdl
Description of Web Services via XML-based
standard format
Define the set of functions supported by the
server and the formats a client should be used
to request the service, like IDL in CORBA
13
WSDL

WSDL is used to describe the web
services.
So, how to describe?

WSDL has its own XML vocabulary defined
so as to describe the web service
14
WSDL
WSDL has a well-defined XML vocabulary to answer
the following questions regarding the web service
involved:

What does the service do?


Both in machine and human-readable forms
What language does the service speak?

The format/data structure of the message
exchanged
15
WSDL

How does the client talk to the service?


HTTP/SMTP/FTP
Where is the location of the web service?

The access point (URL)
16
WSDL
<?xml version="1.0" encoding="UTF-8" ?>
<wsdl:definitions
targetNamespace="http://137.189.94.136:8080/axis/echo.jws"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:impl="http://137.189.94.136:8080/axis/echo.jws"
xmlns:intf="http://137.189.94.136:8080/axis/echo.jws"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:message name="echoStringResponse">
<wsdl:part name="echoStringReturn" type="xsd:string" />
</wsdl:message>
<wsdl:message name="echoStringRequest">
<wsdl:part name="str" type="xsd:string" />
</wsdl:message>
17
WSDL
<wsdl:portType name="echo">
<wsdl:operation name="echoString" parameterOrder="str">
<wsdl:input message="intf:echoStringRequest"
name="echoStringRequest" />
<wsdl:output message="intf:echoStringResponse"
name="echoStringResponse" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="echoSoapBinding" type="intf:echo">
<wsdlsoap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"
/>
<wsdl:operation name="echoString">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="echoStringRequest">
<wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://137.189.94.136:8080/axis/echo.jws" use="encoded"
/>
</wsdl:input>
18
WSDL
<wsdl:output name="echoStringResponse">
<wsdlsoap:body
encodingStyle=http://schemas.xmlsoap.org/soap/encoding/
namespace=http://137.189.94.136:8080/axis/echo.jws
use="encoded" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="echoService">
<wsdl:port binding="intf:echoSoapBinding" name="echo">
<wsdlsoap:address
location="http://137.189.94.136:8080/axis/echo.jws" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
19
UDDI



Universal Description, Discovery, and Integration
Specifications for service description and discovery
Open-Standard



Raised By Ariba, IBM and Microsoft
http://www.uddi.org (by Oasis)
XML-based message
20
Service Architecture
UDDI defines a way to publish and discover information about Web services
21
UDDI
White Page
Yellow Page
Green Page
• Information about the business
(company name, company
address ……)
• Categorization of the business and
its services
• Technical information about services
provided by a business (like the URL
to invoke the Web Services)
22
Core Structures of UDDI
• Business Entity
Business Entity
• White Pages information
• Business Services
• Yellow Pages information
• Binding Templates
• Green Pages information
• Contains references to
tModels
• tModels
• Service Type Definitions
• Interface specifications for
a service (WSDL)
Business
Service
Binding
Template
Binding
Template
tModel
tModel
23
Research Challenge



How to secure the Web Services
Invocation?
How to ensure the reliability of the Web
Services?
How to deal with the Quality of Services?
24
Q&A
25