SlideShare a Scribd company logo
Introduction to Web
Introduction to Web
Services
Services
Agenda
Agenda
 Motivation
Motivation
 History
History

Web service model
Web service model
 Web service components
Web service components
 A walkthrough examples
A walkthrough examples
Motivation
Motivation
 The ability to program the Web.
The ability to program the Web.
 Example: Consider an Excel spreadsheet that
Example: Consider an Excel spreadsheet that
summarizes your whole financial picture :
summarizes your whole financial picture :
stocks, bank accounts, loans, etc. If some of
stocks, bank accounts, loans, etc. If some of
this information is available through XML
this information is available through XML
Web services, Excel can update it and
Web services, Excel can update it and
present the update information to the user.
present the update information to the user.
Web Service definition
Web Service definition
A simple definition:
A simple definition:
“
“a Web Service is an application component
a Web Service is an application component
accessible over open protocols
accessible over open protocols”
”.
.
History
History
 Web services evolved from previous
Web services evolved from previous
technologies that served the same purpose
technologies that served the same purpose
such as RPC, ORPC (DCOM, CORBA and
such as RPC, ORPC (DCOM, CORBA and
JAVA RMI).
JAVA RMI).
 Web Services were intended to solve three
Web Services were intended to solve three
main problems:
main problems:
1.
1. Interoperability
Interoperability
2.
2. Firewall traversal
Firewall traversal
3.
3. Complexity
Complexity
Interoperability
Interoperability
 Earlier distributed systems suffered from
Earlier distributed systems suffered from
interoperability issues because each vendor
interoperability issues because each vendor
implemented its own on-wire format for
implemented its own on-wire format for
distributed object messaging.
distributed object messaging.

Development of DCOM apps strictly bound to
Development of DCOM apps strictly bound to
Windows Operating system.
Windows Operating system.

Development of RMI bound to Java
Development of RMI bound to Java
programming language.
programming language.
Firewall traversal
Firewall traversal
 Collaboration across corporations was an issue
Collaboration across corporations was an issue
because distributed systems such as CORBA
because distributed systems such as CORBA
and DCOM used non-standard ports.
and DCOM used non-standard ports.

Web Services use HTTP as a transport
Web Services use HTTP as a transport
protocol and most of the firewalls allow access
protocol and most of the firewalls allow access
though port 80 (HTTP), leading to easier and
though port 80 (HTTP), leading to easier and
dynamic collaboration.
dynamic collaboration.
Complexity
Complexity
 Web Services is a developer-friendly service
Web Services is a developer-friendly service
system.
system.
 Most of the above-mentioned technologies
Most of the above-mentioned technologies
such as RMI, COM, and CORBA involve a
such as RMI, COM, and CORBA involve a
whole learning curve.
whole learning curve.

New technologies and languages have to be
New technologies and languages have to be
learnt to implement these services.
learnt to implement these services.
Web Service definition revisited
Web Service definition revisited
 A more precise definition:
A more precise definition:

an application component that:
an application component that:

Communicates via open protocols (HTTP, SMTP, etc.)
Communicates via open protocols (HTTP, SMTP, etc.)

Processes XML messages framed using SOAP
Processes XML messages framed using SOAP

Describes its messages using XML Schema
Describes its messages using XML Schema

Provides an endpoint description using WSDL
Provides an endpoint description using WSDL

Can be discovered using UDDI
Can be discovered using UDDI
Web Services Components
Web Services Components
 XML
XML –
– eXtensible Markup Language
eXtensible Markup Language –
– A uniform
A uniform
data representation and exchange mechanism.
data representation and exchange mechanism.
 SOAP
SOAP –
– Simple Object Access Protocol
Simple Object Access Protocol –
– A standard
A standard
way for communication.
way for communication.
 UDDI
UDDI –
– Universal Description, Discovery and
Universal Description, Discovery and
Integration specification
Integration specification –
– A mechanism to register
A mechanism to register
and locate WS based application.
and locate WS based application.
 WSDL
WSDL –
– Web Services Description Language
Web Services Description Language –
– A
A
standard meta language to described the services
standard meta language to described the services
offered.
offered.
Example
Example –
– A simple Web Service
A simple Web Service
 A buyer (which might be a simple client) is ordering goods
A buyer (which might be a simple client) is ordering goods
from a seller service.
from a seller service.
 The buyer finds the seller service by searching the UDDI
The buyer finds the seller service by searching the UDDI
directory.
directory.
 The seller service is a Web Service whose interface is defined
The seller service is a Web Service whose interface is defined
using Web Services Description Language (WSDL).
using Web Services Description Language (WSDL).
 The buyer is invoking the order method on the seller service
The buyer is invoking the order method on the seller service
using Simple Object Access Protocol (SOAP) and the WSDL
using Simple Object Access Protocol (SOAP) and the WSDL
definition for the seller service.
definition for the seller service.
 The buyer knows what to expect in the SOAP reply message
The buyer knows what to expect in the SOAP reply message
because this is defined in the WSDL definition for the seller
because this is defined in the WSDL definition for the seller
service.
service.
The Web Service Model
The Web Service Model
 The Web Services architecture is based upon
The Web Services architecture is based upon
the interactions between three roles:
the interactions between three roles:
 Service provider
Service provider
 Service registry
Service registry
 Service requestor
Service requestor
 The interactions involve the:
The interactions involve the:
 Publish operations
Publish operations
 Find operation
Find operation
 Bind operations.
Bind operations.
The Web Service Model (cont)
The Web Service Model (cont)
The Web Services model follows the
The Web Services model follows the publish
publish,
,
find
find, and
, and bind
bind paradigm.
paradigm.
1. publish
1. publish 2. find
2. find
3. bind/invoke
3. bind/invoke
Web Service
Registry
Web Service
Provider
Web Service
Client
XML
XML
 XML stands for E
XML stands for EX
Xtensible
tensible M
Markup
arkup
L
Language.
anguage.
 XML is a
XML is a markup language
markup language much like
much like
HTML.
HTML.
 XML was designed to
XML was designed to describe data
describe data.
.
 XML tags are not predefined. You must
XML tags are not predefined. You must define
define
your own tags.
your own tags.
 The prefect choice for enabling cross-platform
The prefect choice for enabling cross-platform
data communication in Web Services.
data communication in Web Services.
XML vs HTML
XML vs HTML
An HTML example:
An HTML example:
<html>
<html>
<body>
<body>
<h2>John Doe</h2>
<h2>John Doe</h2>
<p>2 Backroads Lane<br>
<p>2 Backroads Lane<br>
New York<br>
New York<br>
045935435<br>
045935435<br>
john.doe@gmail.com<br>
john.doe@gmail.com<br>
</p>
</p>
</body>
</body>
</html>
</html>
XML vs HTML
XML vs HTML
 This will be displayed as:
This will be displayed as:
 HTML specifies how the document is to be displayed,
HTML specifies how the document is to be displayed,
and not what information is contained in the document.
and not what information is contained in the document.
 Hard for machine to extract the embedded information.
Hard for machine to extract the embedded information.
Relatively easy for human.
Relatively easy for human.
John Doe
John Doe
2 Backroads Lane
2 Backroads Lane
New York
New York
045935435
045935435
John.doe@gmail.com
John.doe@gmail.com
XML vs HTML
XML vs HTML
 Now look at the following:
Now look at the following:
 In this case:
In this case:
 The information contained is being marked, but not for
The information contained is being marked, but not for
displaying.
displaying.
 Readable by both human and machines.
Readable by both human and machines.
<?xml version=1.0?>
<?xml version=1.0?>
<contact>
<contact>
<name>John Doe</name>
<name>John Doe</name>
<address>2 Backroads Lane</address>
<address>2 Backroads Lane</address>
<country>New York</country>
<country>New York</country>
<phone>045935435</phone>
<phone>045935435</phone>
<email>john.doe@gmail.com</email>
<email>john.doe@gmail.com</email>
</contact>
</contact>
SOAP
SOAP

SOAP originally stood for "Simple Object Access
SOAP originally stood for "Simple Object Access
Protocol" .
Protocol" .

Web Services expose useful functionality to Web
Web Services expose useful functionality to Web
users through a standard Web protocol called SOAP.
users through a standard Web protocol called SOAP.

Soap is an XML vocabulary standard to enable
Soap is an XML vocabulary standard to enable
programs on separate computers to interact across
programs on separate computers to interact across
any network. SOAP is a simple markup language for
any network. SOAP is a simple markup language for
describing messages between applications.
describing messages between applications.

Soap uses mainly HTTP as a transport protocol. That
Soap uses mainly HTTP as a transport protocol. That
is, HTTP message contains a SOAP message as its
is, HTTP message contains a SOAP message as its
payload section.
payload section.
SOAP Characteristics
SOAP Characteristics
 SOAP has three major characteristics:
SOAP has three major characteristics:

Extensibility
Extensibility –
– security and WS-routing are
security and WS-routing are
among the extensions under development.
among the extensions under development.
 Neutrality - SOAP can be used over any transport
Neutrality - SOAP can be used over any transport
protocol such as HTTP, SMTP or even TCP.
protocol such as HTTP, SMTP or even TCP.
 Independent - SOAP allows for any programming
Independent - SOAP allows for any programming
model .
model .
SOAP Building Blocks
SOAP Building Blocks
A SOAP message is an ordinary XML document
A SOAP message is an ordinary XML document
containing the following elements:
containing the following elements:

A required Envelope element that identifies the XML
A required Envelope element that identifies the XML
document as a SOAP message.
document as a SOAP message.

An optional Header element that contains header
An optional Header element that contains header
information.
information.

A required Body element that contains call and response
A required Body element that contains call and response
information.
information.

An optional Fault element that provides information about
An optional Fault element that provides information about
errors that occurred while processing the message.
errors that occurred while processing the message.
SOAP Request
SOAP Request
POST /InStock HTTP/1.1
POST /InStock HTTP/1.1
Host: www.stock.org
Host: www.stock.org
Content-Type: application/soap+xml; charset=utf-8 Content-Length:
Content-Type: application/soap+xml; charset=utf-8 Content-Length: 150
150
<?xml version="1.0"?>
<?xml version="1.0"?>
<soap:Envelope
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle=http://www.w3.org/2001/12/soap-encoding
soap:encodingStyle=http://www.w3.org/2001/12/soap-encoding”
”>
>
<soap:Body xmlns:m="http://www.stock.org/stock">
<soap:Body xmlns:m="http://www.stock.org/stock">
<m:GetStockPriceRequest>
<m:GetStockPriceRequest>
<m:StockName>IBM</m:StockName>
<m:StockName>IBM</m:StockName>
</m:GetStockPriceRequest>
</m:GetStockPriceRequest>
</soap:Body>
</soap:Body>
</soap:Envelope>
</soap:Envelope>
SOAP Response
SOAP Response
HTTP/1.1 200 OK
HTTP/1.1 200 OK
Content-Type: application/soap; charset=utf-8
Content-Type: application/soap; charset=utf-8
Content-Length:
Content-Length: 126
126
<?xml version="1.0"?>
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body xmlns:m="http://www.stock.org/stock">
<soap:Body xmlns:m="http://www.stock.org/stock">
<m:GetStockPriceResponse>
<m:GetStockPriceResponse>
<m:Price>34.5</m:Price>
<m:Price>34.5</m:Price>
</m:GetStockPriceResponse>
</m:GetStockPriceResponse>
</soap:Body>
</soap:Body>
</soap:Envelope>
</soap:Envelope>
SOAP Security
SOAP Security
 SOAP uses HTTP as a transport protocol and
SOAP uses HTTP as a transport protocol and
hence can use HTTP security mainly HTTP
hence can use HTTP security mainly HTTP
over SSL.
over SSL.

But, since SOAP can run over a number of
But, since SOAP can run over a number of
application protocols (such as SMTP) security
application protocols (such as SMTP) security
had to be considered.
had to be considered.

The
The WS-Security specification defines a
defines a
complete encryption system.
complete encryption system.
WSDL
WSDL
 WSDL stands for Web Services Description Language.
WSDL stands for Web Services Description Language.
 WSDL is an XML vocabulary for describing Web services. It
WSDL is an XML vocabulary for describing Web services. It
allows developers to describe Web Services and their
allows developers to describe Web Services and their
capabilities, in a standard manner.
capabilities, in a standard manner.
 WSDL specifies what a request message must contain and
WSDL specifies what a request message must contain and
what the response message will look like in unambiguous
what the response message will look like in unambiguous
notation. In other words, it is a contract between the XML
notation. In other words, it is a contract between the XML
Web service and the client who wishes to use this service.
Web service and the client who wishes to use this service.
 In addition to describing message contents, WSDL defines
In addition to describing message contents, WSDL defines
where the service is available and what communications
where the service is available and what communications
protocol is used to talk to the service.
protocol is used to talk to the service.
The WSDL Document Structure
The WSDL Document Structure

A WSDL document is just a simple XML
A WSDL document is just a simple XML
document.
document.

It defines a web service using these major
It defines a web service using these major
elements:
elements:

port type
port type - The operations performed by the web
- The operations performed by the web
service.
service.

message -
message - The messages used by the web service.
The messages used by the web service.

types -
types - The data types used by the web service.
The data types used by the web service.

binding
binding -
- The communication protocols used by
The communication protocols used by
the web service.
the web service.
WSDL Document
WSDL Document
<message name="GetStockPriceRequest">
<message name="GetStockPriceRequest">
<part name="stock" type="xs:string"/>
<part name="stock" type="xs:string"/>
</message>
</message>
<message name="GetStockPriceResponse">
<message name="GetStockPriceResponse">
<part name="value" type="xs:string"/>
<part name="value" type="xs:string"/>
</message>
</message>
<portType name=
<portType name=“
“StocksRates">
StocksRates">
<operation name=
<operation name=“
“GetStockPrice">
GetStockPrice">
<input message=
<input message=“
“GetStockPriceRequest"/>
GetStockPriceRequest"/>
<output message=
<output message=“
“GetStockPriceResponse"/>
GetStockPriceResponse"/>
</operation>
</operation>
</portType>
</portType>
UDDI
UDDI
 UDDI stands for Universal Description,
UDDI stands for Universal Description,
Discovery and Integration.
Discovery and Integration.
 UDDI is a directory for storing information
UDDI is a directory for storing information
about web services , like yellow pages.
about web services , like yellow pages.

UDDI is a directory of web service interfaces
UDDI is a directory of web service interfaces
described by WSDL.
described by WSDL.
Resources
Resources
 http://msdn.microsoft.com/webservices/unders
tanding/webservicebasics/default.aspx
 http://www.w3schools.com/
 http://uddi.microsoft.com/Default.aspx
 http://www.developer.com/services/article.php
/2195981

Many more on the web
Many more on the web…
…
Examples
Examples
 Using a Web Service
Using a Web Service
 Creating a new Web Service
Creating a new Web Service
Step by Step
Step by Step –
– using a web service
using a web service
1.
1. Inside Visual Studio .NET Choose File >
Inside Visual Studio .NET Choose File >
New > Project.
New > Project.
2.
2. Choose Visual C# Projects (or Visual Basic
Choose Visual C# Projects (or Visual Basic
Projects if you prefer this language).
Projects if you prefer this language).
3. Choose
3. Choose
ASP.NET
ASP.NET
Web
Web
Application
Application
as your
as your
template
template
Step by Step
Step by Step –
– using a web service
using a web service
 Inside the Location text box enter the name
Inside the Location text box enter the name
of your project after the prefix :
of your project after the prefix :
http://localhost/YourProjectName
http://localhost/YourProjectName
 Press OK.
Press OK.

This makes The Internet Information
This makes The Internet Information
Services installed on your computer create a
Services installed on your computer create a
new directory on the default path: C:
new directory on the default path: C:
InetpubwwwrootFirstExample
InetpubwwwrootFirstExample
Step by Step
Step by Step –
– using a web service
using a web service
 You can open IIS by typing compmgmt.msc s
You can open IIS by typing compmgmt.msc s
in the run command and then choosing
in the run command and then choosing
Services And Application > Internet
Services And Application > Internet
Information Services.
Information Services.

Inside this node you can choose Web Sites
Inside this node you can choose Web Sites
node and then Default Web Site to see all the
node and then Default Web Site to see all the
web sites on your computer.
web sites on your computer.
Step by Step
Step by Step –
– using a web service
using a web service
Step by Step
Step by Step –
– using a web service
using a web service

In the new project you opened in
In the new project you opened in
VS.NET Move to the Solution
VS.NET Move to the Solution
Explorer.
Explorer.
 Right Click on the References
Right Click on the References
folder and Choose Add Web
folder and Choose Add Web
References.
References.
 This Opens the Add Web
This Opens the Add Web
Reference Dialog Box.
Reference Dialog Box.
Step by Step
Step by Step –
– using a web service
using a web service
 Type the Web Service URL and Press Go.
Type the Web Service URL and Press Go.
 It takes a couple of seconds to find the Web
It takes a couple of seconds to find the Web
services and finally all it
services and finally all it’
’s methods appear in
s methods appear in
the list box.
the list box.

The Web Reference name is shown in the
The Web Reference name is shown in the
Dialog Box.
Dialog Box.

Press Add Reference to complete the process.
Press Add Reference to complete the process.
Step by Step
Step by Step –
– using a web service
using a web service
Step by Step
Step by Step –
– using a web service
using a web service

Add a new Web Form.
Add a new Web Form.
Step by Step
Step by Step –
– using a web service
using a web service

Add the following Controls to the Web Form
Add the following Controls to the Web Form
Step by Step
Step by Step –
– using a web service
using a web service

Double Click on the button and insert this code to it
Double Click on the button and insert this code to it’
’s
s
OnClick event handler.
OnClick event handler.
Step by Step
Step by Step –
– using a web service
using a web service
1. Set the Web Form as the Start Page.
2. Build and Run the Program.
3. Try to use the Web Application.
Step By Step
Step By Step –
– Creating a Web Service
Creating a Web Service
 In this Step I will create a new Web Service
In this Step I will create a new Web Service
and write a Simple Program that uses it.
and write a Simple Program that uses it.
 The program will perform various operations
The program will perform various operations
on an array.
on an array.

The client program will be a simple dialog
The client program will be a simple dialog
box that activates those opeartions.
box that activates those opeartions.
Step By Step
Step By Step –
– Creating a Web Service
Creating a Web Service

Create a new Visual C# project with the name
Create a new Visual C# project with the name
RemoteArray. The following screen appears.
RemoteArray. The following screen appears.
Step By Step
Step By Step –
– Creating a Web Service
Creating a Web Service

To see the code Press on the following hyperlink.
To see the code Press on the following hyperlink.
Step By Step
Step By Step –
– Creating a Web Service
Creating a Web Service
 Right Click on the References folder and
Right Click on the References folder and
choose add Reference.
choose add Reference.
 Insert the System.Windows.Forms.dll option
Insert the System.Windows.Forms.dll option
in to this folder.
in to this folder.
Step By Step
Step By Step –
– Creating a Web Service
Creating a Web Service
Step By Step
Step By Step –
– Creating a Web Service
Creating a Web Service
Step By Step
Step By Step –
– Creating a Web Service
Creating a Web Service
 Insert the following code to the .asmx file you
Insert the following code to the .asmx file you’
’ve
ve
created.
created.
Step By Step
Step By Step –
– Creating a Web Service
Creating a Web Service
Step By Step
Step By Step –
– Creating a Web Service
Creating a Web Service
Step By Step
Step By Step –
– Creating a Web Service
Creating a Web Service

Press Ctrl +F5 to Run the Web service.
Press Ctrl +F5 to Run the Web service.
Step By Step
Step By Step –
– Using Remote Array
Using Remote Array

Add a new project to RemoteArray Solution
Add a new project to RemoteArray Solution
Step By Step
Step By Step –
– Using Remote Array
Using Remote Array
 Choose Windows Application from the
Choose Windows Application from the
templates.
templates.
 Add a web reference for the Remote Array
Add a web reference for the Remote Array
Web Service.
Web Service.

Remember that it
Remember that it’
’s inside an asmx file.
s inside an asmx file.
Step By Step
Step By Step –
– Using Remote Array
Using Remote Array
Step By Step
Step By Step –
– Using Remote Array
Using Remote Array

Add the following elements to the Form
Add the following elements to the Form
Step By Step
Step By Step –
– Using Remote Array
Using Remote Array

Create a private RemoteArray object and a private int
Create a private RemoteArray object and a private int
array object to the Form.
array object to the Form.

Insert this code after the Initialize component part.
Insert this code after the Initialize component part.
Step By Step
Step By Step –
– Using Remote Array
Using Remote Array

Insert the following code to controls handler
Insert the following code to controls handler
Step By Step
Step By Step –
– Using Remote Array
Using Remote Array

Set the Windows Application project as the Startup
Set the Windows Application project as the Startup
Step By Step
Step By Step –
– Using Remote Array
Using Remote Array
 Compile and run the application.
Compile and run the application.
 This is an example that an XML Web
This is an example that an XML Web
application can be used over Windows and not
application can be used over Windows and not
only with ASP.NET
only with ASP.NET

More Related Content

PPT
Best Web services tutorial | Websoles Strategic Digital Solutions
PPT
Web services Tutorial /Websoles Strategic Digital Solutions
PPT
Detailed information on webservice by websoles
PPT
Mule webservices in detail
PPTX
Service Oriented Architecture Updated Luqman
DOCX
Web services SOAP Notes
PPT
Web services and SOA
Best Web services tutorial | Websoles Strategic Digital Solutions
Web services Tutorial /Websoles Strategic Digital Solutions
Detailed information on webservice by websoles
Mule webservices in detail
Service Oriented Architecture Updated Luqman
Web services SOAP Notes
Web services and SOA

Similar to Web Services - Lectures and architecture.ppt (20)

PPTX
Web Services
PPTX
Understanding Web Services by software outsourcing company india
PPT
Exposing EJBs As Web Services
PPT
webservices.ppt for website designing ppt
PPTX
Web Services in Cloud Computing.pptx
PDF
Web services concepts, protocols and development
PPTX
Web services
PPT
Dot net training-navimumbai
PDF
Overview of web services
PPS
SOA web services concepts
PPTX
Web Programming
PPTX
Web Service Basics and NWS Setup
PPT
Pollock
PPT
SOA and web services
PPT
Web services and SOA [Modified]
PPT
java web services - soap and rest services
PPTX
UNIT II-WEB SERVICES (WS) AND PRIMITIVE
PPTX
Unit 5 WEB TECHNOLOGIES
PDF
Web Service Implementation Using ASP.NET
PPT
Web Services
Understanding Web Services by software outsourcing company india
Exposing EJBs As Web Services
webservices.ppt for website designing ppt
Web Services in Cloud Computing.pptx
Web services concepts, protocols and development
Web services
Dot net training-navimumbai
Overview of web services
SOA web services concepts
Web Programming
Web Service Basics and NWS Setup
Pollock
SOA and web services
Web services and SOA [Modified]
java web services - soap and rest services
UNIT II-WEB SERVICES (WS) AND PRIMITIVE
Unit 5 WEB TECHNOLOGIES
Web Service Implementation Using ASP.NET
Ad

Recently uploaded (20)

PPTX
UNIT-1 - COAL BASED THERMAL POWER PLANTS
PPTX
Lecture Notes Electrical Wiring System Components
PDF
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
PDF
Operating System & Kernel Study Guide-1 - converted.pdf
PPTX
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
PPTX
CH1 Production IntroductoryConcepts.pptx
PPTX
Lesson 3_Tessellation.pptx finite Mathematics
DOCX
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
PDF
Well-logging-methods_new................
PPTX
Internet of Things (IOT) - A guide to understanding
PPTX
web development for engineering and engineering
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PPTX
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
PPTX
OOP with Java - Java Introduction (Basics)
PDF
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PDF
Digital Logic Computer Design lecture notes
PPTX
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
PPTX
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
UNIT-1 - COAL BASED THERMAL POWER PLANTS
Lecture Notes Electrical Wiring System Components
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
Operating System & Kernel Study Guide-1 - converted.pdf
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
CH1 Production IntroductoryConcepts.pptx
Lesson 3_Tessellation.pptx finite Mathematics
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
Well-logging-methods_new................
Internet of Things (IOT) - A guide to understanding
web development for engineering and engineering
Model Code of Practice - Construction Work - 21102022 .pdf
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
OOP with Java - Java Introduction (Basics)
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
Digital Logic Computer Design lecture notes
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
Ad

Web Services - Lectures and architecture.ppt

  • 1. Introduction to Web Introduction to Web Services Services
  • 2. Agenda Agenda  Motivation Motivation  History History  Web service model Web service model  Web service components Web service components  A walkthrough examples A walkthrough examples
  • 3. Motivation Motivation  The ability to program the Web. The ability to program the Web.  Example: Consider an Excel spreadsheet that Example: Consider an Excel spreadsheet that summarizes your whole financial picture : summarizes your whole financial picture : stocks, bank accounts, loans, etc. If some of stocks, bank accounts, loans, etc. If some of this information is available through XML this information is available through XML Web services, Excel can update it and Web services, Excel can update it and present the update information to the user. present the update information to the user.
  • 4. Web Service definition Web Service definition A simple definition: A simple definition: “ “a Web Service is an application component a Web Service is an application component accessible over open protocols accessible over open protocols” ”. .
  • 5. History History  Web services evolved from previous Web services evolved from previous technologies that served the same purpose technologies that served the same purpose such as RPC, ORPC (DCOM, CORBA and such as RPC, ORPC (DCOM, CORBA and JAVA RMI). JAVA RMI).  Web Services were intended to solve three Web Services were intended to solve three main problems: main problems: 1. 1. Interoperability Interoperability 2. 2. Firewall traversal Firewall traversal 3. 3. Complexity Complexity
  • 6. Interoperability Interoperability  Earlier distributed systems suffered from Earlier distributed systems suffered from interoperability issues because each vendor interoperability issues because each vendor implemented its own on-wire format for implemented its own on-wire format for distributed object messaging. distributed object messaging.  Development of DCOM apps strictly bound to Development of DCOM apps strictly bound to Windows Operating system. Windows Operating system.  Development of RMI bound to Java Development of RMI bound to Java programming language. programming language.
  • 7. Firewall traversal Firewall traversal  Collaboration across corporations was an issue Collaboration across corporations was an issue because distributed systems such as CORBA because distributed systems such as CORBA and DCOM used non-standard ports. and DCOM used non-standard ports.  Web Services use HTTP as a transport Web Services use HTTP as a transport protocol and most of the firewalls allow access protocol and most of the firewalls allow access though port 80 (HTTP), leading to easier and though port 80 (HTTP), leading to easier and dynamic collaboration. dynamic collaboration.
  • 8. Complexity Complexity  Web Services is a developer-friendly service Web Services is a developer-friendly service system. system.  Most of the above-mentioned technologies Most of the above-mentioned technologies such as RMI, COM, and CORBA involve a such as RMI, COM, and CORBA involve a whole learning curve. whole learning curve.  New technologies and languages have to be New technologies and languages have to be learnt to implement these services. learnt to implement these services.
  • 9. Web Service definition revisited Web Service definition revisited  A more precise definition: A more precise definition:  an application component that: an application component that:  Communicates via open protocols (HTTP, SMTP, etc.) Communicates via open protocols (HTTP, SMTP, etc.)  Processes XML messages framed using SOAP Processes XML messages framed using SOAP  Describes its messages using XML Schema Describes its messages using XML Schema  Provides an endpoint description using WSDL Provides an endpoint description using WSDL  Can be discovered using UDDI Can be discovered using UDDI
  • 10. Web Services Components Web Services Components  XML XML – – eXtensible Markup Language eXtensible Markup Language – – A uniform A uniform data representation and exchange mechanism. data representation and exchange mechanism.  SOAP SOAP – – Simple Object Access Protocol Simple Object Access Protocol – – A standard A standard way for communication. way for communication.  UDDI UDDI – – Universal Description, Discovery and Universal Description, Discovery and Integration specification Integration specification – – A mechanism to register A mechanism to register and locate WS based application. and locate WS based application.  WSDL WSDL – – Web Services Description Language Web Services Description Language – – A A standard meta language to described the services standard meta language to described the services offered. offered.
  • 11. Example Example – – A simple Web Service A simple Web Service  A buyer (which might be a simple client) is ordering goods A buyer (which might be a simple client) is ordering goods from a seller service. from a seller service.  The buyer finds the seller service by searching the UDDI The buyer finds the seller service by searching the UDDI directory. directory.  The seller service is a Web Service whose interface is defined The seller service is a Web Service whose interface is defined using Web Services Description Language (WSDL). using Web Services Description Language (WSDL).  The buyer is invoking the order method on the seller service The buyer is invoking the order method on the seller service using Simple Object Access Protocol (SOAP) and the WSDL using Simple Object Access Protocol (SOAP) and the WSDL definition for the seller service. definition for the seller service.  The buyer knows what to expect in the SOAP reply message The buyer knows what to expect in the SOAP reply message because this is defined in the WSDL definition for the seller because this is defined in the WSDL definition for the seller service. service.
  • 12. The Web Service Model The Web Service Model  The Web Services architecture is based upon The Web Services architecture is based upon the interactions between three roles: the interactions between three roles:  Service provider Service provider  Service registry Service registry  Service requestor Service requestor  The interactions involve the: The interactions involve the:  Publish operations Publish operations  Find operation Find operation  Bind operations. Bind operations.
  • 13. The Web Service Model (cont) The Web Service Model (cont) The Web Services model follows the The Web Services model follows the publish publish, , find find, and , and bind bind paradigm. paradigm. 1. publish 1. publish 2. find 2. find 3. bind/invoke 3. bind/invoke Web Service Registry Web Service Provider Web Service Client
  • 14. XML XML  XML stands for E XML stands for EX Xtensible tensible M Markup arkup L Language. anguage.  XML is a XML is a markup language markup language much like much like HTML. HTML.  XML was designed to XML was designed to describe data describe data. .  XML tags are not predefined. You must XML tags are not predefined. You must define define your own tags. your own tags.  The prefect choice for enabling cross-platform The prefect choice for enabling cross-platform data communication in Web Services. data communication in Web Services.
  • 15. XML vs HTML XML vs HTML An HTML example: An HTML example: <html> <html> <body> <body> <h2>John Doe</h2> <h2>John Doe</h2> <p>2 Backroads Lane<br> <p>2 Backroads Lane<br> New York<br> New York<br> 045935435<br> 045935435<br> john.doe@gmail.com<br> john.doe@gmail.com<br> </p> </p> </body> </body> </html> </html>
  • 16. XML vs HTML XML vs HTML  This will be displayed as: This will be displayed as:  HTML specifies how the document is to be displayed, HTML specifies how the document is to be displayed, and not what information is contained in the document. and not what information is contained in the document.  Hard for machine to extract the embedded information. Hard for machine to extract the embedded information. Relatively easy for human. Relatively easy for human. John Doe John Doe 2 Backroads Lane 2 Backroads Lane New York New York 045935435 045935435 John.doe@gmail.com John.doe@gmail.com
  • 17. XML vs HTML XML vs HTML  Now look at the following: Now look at the following:  In this case: In this case:  The information contained is being marked, but not for The information contained is being marked, but not for displaying. displaying.  Readable by both human and machines. Readable by both human and machines. <?xml version=1.0?> <?xml version=1.0?> <contact> <contact> <name>John Doe</name> <name>John Doe</name> <address>2 Backroads Lane</address> <address>2 Backroads Lane</address> <country>New York</country> <country>New York</country> <phone>045935435</phone> <phone>045935435</phone> <email>john.doe@gmail.com</email> <email>john.doe@gmail.com</email> </contact> </contact>
  • 18. SOAP SOAP  SOAP originally stood for "Simple Object Access SOAP originally stood for "Simple Object Access Protocol" . Protocol" .  Web Services expose useful functionality to Web Web Services expose useful functionality to Web users through a standard Web protocol called SOAP. users through a standard Web protocol called SOAP.  Soap is an XML vocabulary standard to enable Soap is an XML vocabulary standard to enable programs on separate computers to interact across programs on separate computers to interact across any network. SOAP is a simple markup language for any network. SOAP is a simple markup language for describing messages between applications. describing messages between applications.  Soap uses mainly HTTP as a transport protocol. That Soap uses mainly HTTP as a transport protocol. That is, HTTP message contains a SOAP message as its is, HTTP message contains a SOAP message as its payload section. payload section.
  • 19. SOAP Characteristics SOAP Characteristics  SOAP has three major characteristics: SOAP has three major characteristics:  Extensibility Extensibility – – security and WS-routing are security and WS-routing are among the extensions under development. among the extensions under development.  Neutrality - SOAP can be used over any transport Neutrality - SOAP can be used over any transport protocol such as HTTP, SMTP or even TCP. protocol such as HTTP, SMTP or even TCP.  Independent - SOAP allows for any programming Independent - SOAP allows for any programming model . model .
  • 20. SOAP Building Blocks SOAP Building Blocks A SOAP message is an ordinary XML document A SOAP message is an ordinary XML document containing the following elements: containing the following elements:  A required Envelope element that identifies the XML A required Envelope element that identifies the XML document as a SOAP message. document as a SOAP message.  An optional Header element that contains header An optional Header element that contains header information. information.  A required Body element that contains call and response A required Body element that contains call and response information. information.  An optional Fault element that provides information about An optional Fault element that provides information about errors that occurred while processing the message. errors that occurred while processing the message.
  • 21. SOAP Request SOAP Request POST /InStock HTTP/1.1 POST /InStock HTTP/1.1 Host: www.stock.org Host: www.stock.org Content-Type: application/soap+xml; charset=utf-8 Content-Length: Content-Type: application/soap+xml; charset=utf-8 Content-Length: 150 150 <?xml version="1.0"?> <?xml version="1.0"?> <soap:Envelope <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle=http://www.w3.org/2001/12/soap-encoding soap:encodingStyle=http://www.w3.org/2001/12/soap-encoding” ”> > <soap:Body xmlns:m="http://www.stock.org/stock"> <soap:Body xmlns:m="http://www.stock.org/stock"> <m:GetStockPriceRequest> <m:GetStockPriceRequest> <m:StockName>IBM</m:StockName> <m:StockName>IBM</m:StockName> </m:GetStockPriceRequest> </m:GetStockPriceRequest> </soap:Body> </soap:Body> </soap:Envelope> </soap:Envelope>
  • 22. SOAP Response SOAP Response HTTP/1.1 200 OK HTTP/1.1 200 OK Content-Type: application/soap; charset=utf-8 Content-Type: application/soap; charset=utf-8 Content-Length: Content-Length: 126 126 <?xml version="1.0"?> <?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body xmlns:m="http://www.stock.org/stock"> <soap:Body xmlns:m="http://www.stock.org/stock"> <m:GetStockPriceResponse> <m:GetStockPriceResponse> <m:Price>34.5</m:Price> <m:Price>34.5</m:Price> </m:GetStockPriceResponse> </m:GetStockPriceResponse> </soap:Body> </soap:Body> </soap:Envelope> </soap:Envelope>
  • 23. SOAP Security SOAP Security  SOAP uses HTTP as a transport protocol and SOAP uses HTTP as a transport protocol and hence can use HTTP security mainly HTTP hence can use HTTP security mainly HTTP over SSL. over SSL.  But, since SOAP can run over a number of But, since SOAP can run over a number of application protocols (such as SMTP) security application protocols (such as SMTP) security had to be considered. had to be considered.  The The WS-Security specification defines a defines a complete encryption system. complete encryption system.
  • 24. WSDL WSDL  WSDL stands for Web Services Description Language. WSDL stands for Web Services Description Language.  WSDL is an XML vocabulary for describing Web services. It WSDL is an XML vocabulary for describing Web services. It allows developers to describe Web Services and their allows developers to describe Web Services and their capabilities, in a standard manner. capabilities, in a standard manner.  WSDL specifies what a request message must contain and WSDL specifies what a request message must contain and what the response message will look like in unambiguous what the response message will look like in unambiguous notation. In other words, it is a contract between the XML notation. In other words, it is a contract between the XML Web service and the client who wishes to use this service. Web service and the client who wishes to use this service.  In addition to describing message contents, WSDL defines In addition to describing message contents, WSDL defines where the service is available and what communications where the service is available and what communications protocol is used to talk to the service. protocol is used to talk to the service.
  • 25. The WSDL Document Structure The WSDL Document Structure  A WSDL document is just a simple XML A WSDL document is just a simple XML document. document.  It defines a web service using these major It defines a web service using these major elements: elements:  port type port type - The operations performed by the web - The operations performed by the web service. service.  message - message - The messages used by the web service. The messages used by the web service.  types - types - The data types used by the web service. The data types used by the web service.  binding binding - - The communication protocols used by The communication protocols used by the web service. the web service.
  • 26. WSDL Document WSDL Document <message name="GetStockPriceRequest"> <message name="GetStockPriceRequest"> <part name="stock" type="xs:string"/> <part name="stock" type="xs:string"/> </message> </message> <message name="GetStockPriceResponse"> <message name="GetStockPriceResponse"> <part name="value" type="xs:string"/> <part name="value" type="xs:string"/> </message> </message> <portType name= <portType name=“ “StocksRates"> StocksRates"> <operation name= <operation name=“ “GetStockPrice"> GetStockPrice"> <input message= <input message=“ “GetStockPriceRequest"/> GetStockPriceRequest"/> <output message= <output message=“ “GetStockPriceResponse"/> GetStockPriceResponse"/> </operation> </operation> </portType> </portType>
  • 27. UDDI UDDI  UDDI stands for Universal Description, UDDI stands for Universal Description, Discovery and Integration. Discovery and Integration.  UDDI is a directory for storing information UDDI is a directory for storing information about web services , like yellow pages. about web services , like yellow pages.  UDDI is a directory of web service interfaces UDDI is a directory of web service interfaces described by WSDL. described by WSDL.
  • 28. Resources Resources  http://msdn.microsoft.com/webservices/unders tanding/webservicebasics/default.aspx  http://www.w3schools.com/  http://uddi.microsoft.com/Default.aspx  http://www.developer.com/services/article.php /2195981  Many more on the web Many more on the web… …
  • 29. Examples Examples  Using a Web Service Using a Web Service  Creating a new Web Service Creating a new Web Service
  • 30. Step by Step Step by Step – – using a web service using a web service 1. 1. Inside Visual Studio .NET Choose File > Inside Visual Studio .NET Choose File > New > Project. New > Project. 2. 2. Choose Visual C# Projects (or Visual Basic Choose Visual C# Projects (or Visual Basic Projects if you prefer this language). Projects if you prefer this language). 3. Choose 3. Choose ASP.NET ASP.NET Web Web Application Application as your as your template template
  • 31. Step by Step Step by Step – – using a web service using a web service  Inside the Location text box enter the name Inside the Location text box enter the name of your project after the prefix : of your project after the prefix : http://localhost/YourProjectName http://localhost/YourProjectName  Press OK. Press OK.  This makes The Internet Information This makes The Internet Information Services installed on your computer create a Services installed on your computer create a new directory on the default path: C: new directory on the default path: C: InetpubwwwrootFirstExample InetpubwwwrootFirstExample
  • 32. Step by Step Step by Step – – using a web service using a web service  You can open IIS by typing compmgmt.msc s You can open IIS by typing compmgmt.msc s in the run command and then choosing in the run command and then choosing Services And Application > Internet Services And Application > Internet Information Services. Information Services.  Inside this node you can choose Web Sites Inside this node you can choose Web Sites node and then Default Web Site to see all the node and then Default Web Site to see all the web sites on your computer. web sites on your computer.
  • 33. Step by Step Step by Step – – using a web service using a web service
  • 34. Step by Step Step by Step – – using a web service using a web service  In the new project you opened in In the new project you opened in VS.NET Move to the Solution VS.NET Move to the Solution Explorer. Explorer.  Right Click on the References Right Click on the References folder and Choose Add Web folder and Choose Add Web References. References.  This Opens the Add Web This Opens the Add Web Reference Dialog Box. Reference Dialog Box.
  • 35. Step by Step Step by Step – – using a web service using a web service  Type the Web Service URL and Press Go. Type the Web Service URL and Press Go.  It takes a couple of seconds to find the Web It takes a couple of seconds to find the Web services and finally all it services and finally all it’ ’s methods appear in s methods appear in the list box. the list box.  The Web Reference name is shown in the The Web Reference name is shown in the Dialog Box. Dialog Box.  Press Add Reference to complete the process. Press Add Reference to complete the process.
  • 36. Step by Step Step by Step – – using a web service using a web service
  • 37. Step by Step Step by Step – – using a web service using a web service  Add a new Web Form. Add a new Web Form.
  • 38. Step by Step Step by Step – – using a web service using a web service  Add the following Controls to the Web Form Add the following Controls to the Web Form
  • 39. Step by Step Step by Step – – using a web service using a web service  Double Click on the button and insert this code to it Double Click on the button and insert this code to it’ ’s s OnClick event handler. OnClick event handler.
  • 40. Step by Step Step by Step – – using a web service using a web service 1. Set the Web Form as the Start Page. 2. Build and Run the Program. 3. Try to use the Web Application.
  • 41. Step By Step Step By Step – – Creating a Web Service Creating a Web Service  In this Step I will create a new Web Service In this Step I will create a new Web Service and write a Simple Program that uses it. and write a Simple Program that uses it.  The program will perform various operations The program will perform various operations on an array. on an array.  The client program will be a simple dialog The client program will be a simple dialog box that activates those opeartions. box that activates those opeartions.
  • 42. Step By Step Step By Step – – Creating a Web Service Creating a Web Service  Create a new Visual C# project with the name Create a new Visual C# project with the name RemoteArray. The following screen appears. RemoteArray. The following screen appears.
  • 43. Step By Step Step By Step – – Creating a Web Service Creating a Web Service  To see the code Press on the following hyperlink. To see the code Press on the following hyperlink.
  • 44. Step By Step Step By Step – – Creating a Web Service Creating a Web Service  Right Click on the References folder and Right Click on the References folder and choose add Reference. choose add Reference.  Insert the System.Windows.Forms.dll option Insert the System.Windows.Forms.dll option in to this folder. in to this folder.
  • 45. Step By Step Step By Step – – Creating a Web Service Creating a Web Service
  • 46. Step By Step Step By Step – – Creating a Web Service Creating a Web Service
  • 47. Step By Step Step By Step – – Creating a Web Service Creating a Web Service  Insert the following code to the .asmx file you Insert the following code to the .asmx file you’ ’ve ve created. created.
  • 48. Step By Step Step By Step – – Creating a Web Service Creating a Web Service
  • 49. Step By Step Step By Step – – Creating a Web Service Creating a Web Service
  • 50. Step By Step Step By Step – – Creating a Web Service Creating a Web Service  Press Ctrl +F5 to Run the Web service. Press Ctrl +F5 to Run the Web service.
  • 51. Step By Step Step By Step – – Using Remote Array Using Remote Array  Add a new project to RemoteArray Solution Add a new project to RemoteArray Solution
  • 52. Step By Step Step By Step – – Using Remote Array Using Remote Array  Choose Windows Application from the Choose Windows Application from the templates. templates.  Add a web reference for the Remote Array Add a web reference for the Remote Array Web Service. Web Service.  Remember that it Remember that it’ ’s inside an asmx file. s inside an asmx file.
  • 53. Step By Step Step By Step – – Using Remote Array Using Remote Array
  • 54. Step By Step Step By Step – – Using Remote Array Using Remote Array  Add the following elements to the Form Add the following elements to the Form
  • 55. Step By Step Step By Step – – Using Remote Array Using Remote Array  Create a private RemoteArray object and a private int Create a private RemoteArray object and a private int array object to the Form. array object to the Form.  Insert this code after the Initialize component part. Insert this code after the Initialize component part.
  • 56. Step By Step Step By Step – – Using Remote Array Using Remote Array  Insert the following code to controls handler Insert the following code to controls handler
  • 57. Step By Step Step By Step – – Using Remote Array Using Remote Array  Set the Windows Application project as the Startup Set the Windows Application project as the Startup
  • 58. Step By Step Step By Step – – Using Remote Array Using Remote Array  Compile and run the application. Compile and run the application.  This is an example that an XML Web This is an example that an XML Web application can be used over Windows and not application can be used over Windows and not only with ASP.NET only with ASP.NET