Introduction to
Web Services
Abdul Imran Khan
Web Services
 A Web service is a method of communication
between two electronic devices over the World Wide
Web
 In other words, a web service helps to convert your
application into a web-based application.
Why web services?
 Your application can publish its function or message to
the rest of the world.
Department of Information Science Engg
WEB
Services
REST Services
SOAP and
WSDL
REST Services
 Relying on URIs and HTTP verbs
 Usage of 5 big HTTP verbs
POST, HEAD, GET, PUT, DELETE
Nothing more than CRUD concept of the Web
 Ex: Delicious APIs
Delicious is a leading social bookmarking service
Visit: http://www.peej.co.uk/articles/restfully-delicious.html
 Data exchange format
XML, JASON or both
SOAP based services
 Simple Object Access Protocol
 Exclusively use XML as the data format to exchange
info over HTTP.
 A service that needs to be used by another service
needs to specify its usage through a “Service
Description”.
 In this case, we use WSDL – Web Services
Description Language
 Ex: Apache Axis, Apache CXF
 SOAP has nothing to do with SOA – Service Oriented
Architecture
.
• A service is hosted on a “Discovery Service” in the
internet.
• A client which wants to use this service will have to
“discover”
this service (similar to RMI) using the ‘Discovery Service’.
• Once the service is “discovered”, the client asks the service
how it should be invoked. The service replies in WSDL
format.
• The service is now invoked using SOAP. The client issues a
‘SOAP Request’.
A SOAP message is an ordinary XML document
containing the following elements:
• Envelope - identifies the XML document as a SOAP message
o Header - contains information about the request.
o Body
 Message data - contains request and response information
itself.
 Fault (optional) - containing errors and status
information.
<?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:Body
xmlns:m="http://www.example.org/stock">
<m:GetStockPrice>
<m:StockName>IBM</m:StockName>
</m:GetStockPrice>
</soap:Body>
</soap:Envelope>
A SOAP request:
<?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:Body
xmlns:m="http://www.example.org/stock"
>
<m:GetStockPriceResponse>
<m:Price>34.5</m:Price>
</m:GetStockPriceResponse>
</soap:Body>
</soap:Envelope>
The SOAP response:
WSDL
 WSDL stands for Web Services Description
Language
 It is an XML-based language that is used for
describing the functionality offered by a Web
service.
 WSDL file contains info about
o How the service can be called
o What parameter it expects
o What data structure it returns
o Which port the application uses
o Which protocol the web service uses (like https)
Need for stubs (similar to RMI)
What are stubs?
 A stub is a small program routine that substitutes
for a longer program, possibly to be loaded later or
that is located remotely.
 The stub accepts the request and then forwards
it (through another program) to the remote
procedure.
 When that procedure has completed its service, it
returns the results or other status to the stub
which passes it back to the program that made
the request.
Comparision
REST services SOAP services
 Architectural style
 Simply calls services via URL
path
 Lightweight – not a lot of
extra xml markup
 Easy to build – no toolkits
required
 XML-based protocol
 Invokes services by calling
RPC method
 Rigid – type checking,
adheres to a contract
 Development tools – WSDL
Soap analyser tool, oXygen
XML
Introduction to WebServices

Introduction to WebServices