Web Services - Lectures and architecture.ppt

memonmukhtiar 12 views 58 slides Sep 30, 2024
Slide 1
Slide 1 of 58
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58

About This Presentation

Web Services - Lectures.ppt


Slide Content

Introduction to Web Introduction to Web
ServicesServices

AgendaAgenda

MotivationMotivation

HistoryHistory

Web service modelWeb service model

Web service componentsWeb service components

A walkthrough examplesA walkthrough examples

MotivationMotivation

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 definitionWeb 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 protocolsaccessible over open protocols””..

HistoryHistory

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.InteroperabilityInteroperability
2.2.Firewall traversalFirewall traversal
3.3.ComplexityComplexity

InteroperabilityInteroperability

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 traversalFirewall 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.

ComplexityComplexity

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 revisitedWeb 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 UDDICan be discovered using UDDI

Web Services ComponentsWeb Services Components

XMLXML –– eXtensible Markup Language eXtensible Markup Language –– A uniform A uniform
data representation and exchange mechanism.data representation and exchange mechanism.

SOAPSOAP –– Simple Object Access Protocol Simple Object Access Protocol –– A standard A standard
way for communication.way for communication.

UDDIUDDI –– 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.

WSDLWSDL –– 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 ModelThe 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 providerService provider

Service registryService registry

Service requestorService requestor

The interactions involve the:The interactions involve the:

Publish operationsPublish operations

Find operationFind 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 publishpublish, ,
findfind, and , and bindbind paradigm. paradigm.

1. publish1. publish 2. find2. find

3. bind/invoke3. bind/invoke
Web Service
Registry
Web Service
Provider
Web Service
Client

XMLXML

XML stands for EXML stands for EXXtensible tensible MMarkup arkup
LLanguage. anguage.

XML is a XML is a markup languagemarkup language much like much like
HTML. HTML.

XML was designed to XML was designed to describe datadescribe 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 HTMLXML 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>
[email protected]<br>[email protected]<br>
</p></p>
</body></body>
</html></html>

XML vs HTMLXML 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 DoeJohn Doe
2 Backroads Lane2 Backroads Lane
New YorkNew York
045935435045935435
[email protected]@gmail.com

XML vs HTMLXML 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>[email protected]</email><email>[email protected]</email>
</contact></contact>

SOAPSOAP

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 CharacteristicsSOAP 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 BlocksSOAP 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 RequestSOAP 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: 150150
<?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-encodingsoap: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 ResponseSOAP Response
HTTP/1.1 200 OK HTTP/1.1 200 OK
Content-Type: application/soap; charset=utf-8Content-Type: application/soap; charset=utf-8
Content-Length: Content-Length: 126126

<?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 SecuritySOAP 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.

WSDLWSDL

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 StructureThe 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 typeport 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.

bindingbinding - - The communication protocols used by The communication protocols used by
the web service.the web service.

WSDL DocumentWSDL 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>

UDDIUDDI

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.

ResourcesResources

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 webMany more on the web……

ExamplesExamples

Using a Web ServiceUsing a Web Service

Creating a new Web ServiceCreating 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
templatetemplate

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/YourProjectNamehttp://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:\
Inetpub\wwwroot\FirstExampleInetpub\wwwroot\FirstExample

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 itservices 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 FormAdd 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 itDouble 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 youInsert 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 SolutionAdd 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 itRemember 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 FormAdd 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 handlerInsert 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.NETonly with ASP.NET
Tags