59
Introduction to Introduction to Web Services Web Services Powered By: Websoles Powered By: Websoles www.websoles.com

Detailed information on webservice by websoles

Embed Size (px)

Citation preview

Page 1: Detailed information on webservice by websoles

Introduction to Web Introduction to Web ServicesServices

Powered By: WebsolesPowered By: Websoleswww.websoles.com

Page 2: Detailed information on webservice by websoles

AgendaAgenda MotivationMotivation HistoryHistory Web service modelWeb service model Web service componentsWeb service components A walkthrough examplesA walkthrough examples

Page 3: Detailed information on webservice by websoles

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.

Page 4: Detailed information on webservice by websoles

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

Page 5: Detailed information on webservice by websoles

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. InteroperabilityInteroperability2.2. Firewall traversalFirewall traversal3.3. ComplexityComplexity

Page 6: Detailed information on webservice by websoles

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.

Page 7: Detailed information on webservice by websoles

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.

Page 8: Detailed information on webservice by websoles

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.

Page 9: Detailed information on webservice by websoles

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

Page 10: Detailed information on webservice by websoles

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.

Page 11: Detailed information on webservice by websoles

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.

Page 12: Detailed information on webservice by websoles

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.

Page 13: Detailed information on webservice by websoles

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 ServiceRegistry

Web Service Provider

Web Service Client

Page 14: Detailed information on webservice by websoles

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.

Page 15: Detailed information on webservice by websoles

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>

Page 16: Detailed information on webservice by websoles

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 LaneNew YorkNew [email protected]@gmail.com

Page 17: Detailed information on webservice by websoles

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>

Page 18: Detailed information on webservice by websoles

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.

Page 19: Detailed information on webservice by websoles

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 .

Page 20: Detailed information on webservice by websoles

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.

Page 21: Detailed information on webservice by websoles

SOAP RequestSOAP RequestPOST /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:Envelopexmlns: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:GetStockPrice> <m:GetStockPrice> <m:StockName>IBM</m:StockName> <m:StockName>IBM</m:StockName>          </m:GetStockPrice></m:GetStockPrice> </soap:Body></soap:Body></soap:Envelope></soap:Envelope>

Page 22: Detailed information on webservice by websoles

SOAP ResponseSOAP ResponseHTTP/1.1 200 OK HTTP/1.1 200 OK Content-Type: application/soap; charset=utf-8Content-Type: application/soap; charset=utf-8Content-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>

Page 23: Detailed information on webservice by websoles

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.

Page 24: Detailed information on webservice by websoles

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.

Page 25: Detailed information on webservice by websoles

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.

Page 26: Detailed information on webservice by websoles

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>

Page 27: Detailed information on webservice by websoles

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.

Page 28: Detailed information on webservice by websoles

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……

Page 29: Detailed information on webservice by websoles

ExamplesExamples Using a Web ServiceUsing a Web Service Creating a new Web ServiceCreating a new Web Service

Page 30: Detailed information on webservice by websoles

Step by Step Step by Step –– using a web service using a web service1.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

Page 31: Detailed information on webservice by websoles

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

Page 32: Detailed information on webservice by websoles

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.

Page 33: Detailed information on webservice by websoles

Step by Step Step by Step –– using a web service using a web service

Page 34: Detailed information on webservice by websoles

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.

Page 35: Detailed information on webservice by websoles

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.

Page 36: Detailed information on webservice by websoles

Step by Step Step by Step –– using a web service using a web service

Page 37: Detailed information on webservice by websoles

Step by Step Step by Step –– using a web service using a web service

Add a new Web Form.Add a new Web Form.

Page 38: Detailed information on webservice by websoles

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

Page 39: Detailed information on webservice by websoles

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.

Page 40: Detailed information on webservice by websoles

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.

Page 41: Detailed information on webservice by websoles

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.

Page 42: Detailed information on webservice by websoles

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.

Page 43: Detailed information on webservice by websoles

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.

Page 44: Detailed information on webservice by websoles

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.

Page 45: Detailed information on webservice by websoles

Step By Step Step By Step –– Creating a Web Service Creating a Web Service

Page 46: Detailed information on webservice by websoles

Step By Step Step By Step –– Creating a Web Service Creating a Web Service

Page 47: Detailed information on webservice by websoles

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.

Page 48: Detailed information on webservice by websoles

Step By Step Step By Step –– Creating a Web Service Creating a Web Service

Page 49: Detailed information on webservice by websoles

Step By Step Step By Step –– Creating a Web Service Creating a Web Service

Page 50: Detailed information on webservice by websoles

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.

Page 51: Detailed information on webservice by websoles

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

Page 52: Detailed information on webservice by websoles

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.

Page 53: Detailed information on webservice by websoles

Step By Step Step By Step –– Using Remote Array Using Remote Array

Page 54: Detailed information on webservice by websoles

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

Page 55: Detailed information on webservice by websoles

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.

Page 56: Detailed information on webservice by websoles

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

Page 57: Detailed information on webservice by websoles

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

Page 58: Detailed information on webservice by websoles

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

Page 59: Detailed information on webservice by websoles

Introduction to Web ServicesIntroduction to Web Services

The EndThe End